From 951dbcba07571b9864e34626f57729bc6b0af154 Mon Sep 17 00:00:00 2001 From: mattab Date: Wed, 30 Mar 2016 15:04:35 +1300 Subject: Fix the integration test, until next time - Refs #9977 --- libs/Zend/Validate/Hostname.php | 250 ++++++++++++----------- tests/PHPUnit/Integration/EmailValidatorTest.php | 4 +- 2 files changed, 129 insertions(+), 125 deletions(-) diff --git a/libs/Zend/Validate/Hostname.php b/libs/Zend/Validate/Hostname.php index 5dc6e818d7..49e72dd1aa 100644 --- a/libs/Zend/Validate/Hostname.php +++ b/libs/Zend/Validate/Hostname.php @@ -57,6 +57,7 @@ class Zend_Validate_Hostname extends Zend_Validate_Abstract const LOCAL_NAME_NOT_ALLOWED = 'hostnameLocalNameNotAllowed'; const UNDECIPHERABLE_TLD = 'hostnameUndecipherableTld'; const UNKNOWN_TLD = 'hostnameUnknownTld'; + const VALID_UNICODE_DOMAIN = '/^[\p{L}\p{M}]{1,63}$/iu'; /** * @var array @@ -363,130 +364,131 @@ class Zend_Validate_Hostname extends Zend_Validate_Abstract '中国' => 'Hostname/Cn.php', '公司' => 'Hostname/Cn.php', '网络' => 'Hostname/Cn.php', - 'कॉम' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'セール' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - '佛山' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - '慈善' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - '集团' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - '在线' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - '한국' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - '点看' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'คอม' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'ভারত' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - '八卦' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'موقع' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - '公益' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - '公司' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - '移动' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - '我爱你' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'москва' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'қаз' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'онлайн' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'сайт' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - '联通' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'срб' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'бел' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'קום' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - '时尚' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - '淡马锡' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'ファッション' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'орг' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'नेट' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'ストア' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - '삼성' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'சிங்கப்பூர்' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - '商标' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - '商店' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - '商城' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'дети' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'мкд' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'ею' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'ポイント' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - '新闻' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - '工行' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'كوم' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - '中文网' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - '中信' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - '中国' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - '中國' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - '娱乐' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - '谷歌' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'భారత్' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'ලංකා' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - '购物' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'クラウド' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'ભારત' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'भारत' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - '网店' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'संगठन' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - '餐厅' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - '网络' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'ком' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'укр' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - '香港' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - '诺基亚' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - '食品' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - '飞利浦' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - '台湾' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - '台灣' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - '手表' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - '手机' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'мон' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'الجزائر' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'عمان' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'ارامكو' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'ایران' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'امارات' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'بازار' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'الاردن' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'موبايلي' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'بھارت' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'المغرب' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'السعودية' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'سودان' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'همراه' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'عراق' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'مليسيا' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - '澳門' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - '닷컴' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - '政府' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'شبكة' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'بيتك' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'გე' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - '机构' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - '组织机构' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - '健康' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'ไทย' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'سورية' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'рус' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'рф' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - '珠宝' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'تونس' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - '大拿' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'みんな' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'グーグル' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'ελ' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - '世界' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - '書籍' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'ਭਾਰਤ' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - '网址' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - '닷넷' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'コム' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - '游戏' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'VERMöGENSBERATER' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'VERMöGENSBERATUNG' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - '企业' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - '信息' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - '嘉里大酒店' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'مصر' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'قطر' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - '广东' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'இலங்கை' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'இந்தியா' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'հայ' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - '新加坡' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - 'فلسطين' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu'), - '政务' => array(1 => '/^[\p{L}\p{M}]{1,63}$/iu') + 'कॉम' => array(1 => self::VALID_UNICODE_DOMAIN), + 'セール' => array(1 => self::VALID_UNICODE_DOMAIN), + '佛山' => array(1 => self::VALID_UNICODE_DOMAIN), + '慈善' => array(1 => self::VALID_UNICODE_DOMAIN), + '集团' => array(1 => self::VALID_UNICODE_DOMAIN), + '在线' => array(1 => self::VALID_UNICODE_DOMAIN), + '한국' => array(1 => self::VALID_UNICODE_DOMAIN), + '点看' => array(1 => self::VALID_UNICODE_DOMAIN), + 'คอม' => array(1 => self::VALID_UNICODE_DOMAIN), + 'ভারত' => array(1 => self::VALID_UNICODE_DOMAIN), + '八卦' => array(1 => self::VALID_UNICODE_DOMAIN), + 'موقع' => array(1 => self::VALID_UNICODE_DOMAIN), + '公益' => array(1 => self::VALID_UNICODE_DOMAIN), + '公司' => array(1 => self::VALID_UNICODE_DOMAIN), + '移动' => array(1 => self::VALID_UNICODE_DOMAIN), + '我爱你' => array(1 => self::VALID_UNICODE_DOMAIN), + 'москва' => array(1 => self::VALID_UNICODE_DOMAIN), + 'қаз' => array(1 => self::VALID_UNICODE_DOMAIN), + 'онлайн' => array(1 => self::VALID_UNICODE_DOMAIN), + 'сайт' => array(1 => self::VALID_UNICODE_DOMAIN), + '联通' => array(1 => self::VALID_UNICODE_DOMAIN), + 'срб' => array(1 => self::VALID_UNICODE_DOMAIN), + 'бел' => array(1 => self::VALID_UNICODE_DOMAIN), + 'קום' => array(1 => self::VALID_UNICODE_DOMAIN), + '时尚' => array(1 => self::VALID_UNICODE_DOMAIN), + '淡马锡' => array(1 => self::VALID_UNICODE_DOMAIN), + 'ファッション' => array(1 => self::VALID_UNICODE_DOMAIN), + 'орг' => array(1 => self::VALID_UNICODE_DOMAIN), + 'नेट' => array(1 => self::VALID_UNICODE_DOMAIN), + 'ストア' => array(1 => self::VALID_UNICODE_DOMAIN), + '삼성' => array(1 => self::VALID_UNICODE_DOMAIN), + 'சிங்கப்பூர்' => array(1 => self::VALID_UNICODE_DOMAIN), + '商标' => array(1 => self::VALID_UNICODE_DOMAIN), + '商店' => array(1 => self::VALID_UNICODE_DOMAIN), + '商城' => array(1 => self::VALID_UNICODE_DOMAIN), + 'дети' => array(1 => self::VALID_UNICODE_DOMAIN), + 'мкд' => array(1 => self::VALID_UNICODE_DOMAIN), + 'ею' => array(1 => self::VALID_UNICODE_DOMAIN), + 'ポイント' => array(1 => self::VALID_UNICODE_DOMAIN), + '新闻' => array(1 => self::VALID_UNICODE_DOMAIN), + '工行' => array(1 => self::VALID_UNICODE_DOMAIN), + 'كوم' => array(1 => self::VALID_UNICODE_DOMAIN), + '中文网' => array(1 => self::VALID_UNICODE_DOMAIN), + '中信' => array(1 => self::VALID_UNICODE_DOMAIN), + '中国' => array(1 => self::VALID_UNICODE_DOMAIN), + '中國' => array(1 => self::VALID_UNICODE_DOMAIN), + '娱乐' => array(1 => self::VALID_UNICODE_DOMAIN), + '谷歌' => array(1 => self::VALID_UNICODE_DOMAIN), + 'భారత్' => array(1 => self::VALID_UNICODE_DOMAIN), + 'ලංකා' => array(1 => self::VALID_UNICODE_DOMAIN), + '购物' => array(1 => self::VALID_UNICODE_DOMAIN), + 'クラウド' => array(1 => self::VALID_UNICODE_DOMAIN), + 'ભારત' => array(1 => self::VALID_UNICODE_DOMAIN), + 'भारत' => array(1 => self::VALID_UNICODE_DOMAIN), + '网店' => array(1 => self::VALID_UNICODE_DOMAIN), + 'संगठन' => array(1 => self::VALID_UNICODE_DOMAIN), + '餐厅' => array(1 => self::VALID_UNICODE_DOMAIN), + '网络' => array(1 => self::VALID_UNICODE_DOMAIN), + 'ком' => array(1 => self::VALID_UNICODE_DOMAIN), + 'укр' => array(1 => self::VALID_UNICODE_DOMAIN), + '香港' => array(1 => self::VALID_UNICODE_DOMAIN), + '诺基亚' => array(1 => self::VALID_UNICODE_DOMAIN), + '食品' => array(1 => self::VALID_UNICODE_DOMAIN), + '飞利浦' => array(1 => self::VALID_UNICODE_DOMAIN), + '台湾' => array(1 => self::VALID_UNICODE_DOMAIN), + '台灣' => array(1 => self::VALID_UNICODE_DOMAIN), + '手表' => array(1 => self::VALID_UNICODE_DOMAIN), + '手机' => array(1 => self::VALID_UNICODE_DOMAIN), + 'мон' => array(1 => self::VALID_UNICODE_DOMAIN), + 'الجزائر' => array(1 => self::VALID_UNICODE_DOMAIN), + 'عمان' => array(1 => self::VALID_UNICODE_DOMAIN), + 'ارامكو' => array(1 => self::VALID_UNICODE_DOMAIN), + 'ایران' => array(1 => self::VALID_UNICODE_DOMAIN), + 'امارات' => array(1 => self::VALID_UNICODE_DOMAIN), + 'بازار' => array(1 => self::VALID_UNICODE_DOMAIN), + 'الاردن' => array(1 => self::VALID_UNICODE_DOMAIN), + 'موبايلي' => array(1 => self::VALID_UNICODE_DOMAIN), + 'بھارت' => array(1 => self::VALID_UNICODE_DOMAIN), + 'المغرب' => array(1 => self::VALID_UNICODE_DOMAIN), + 'السعودية' => array(1 => self::VALID_UNICODE_DOMAIN), + 'سودان' => array(1 => self::VALID_UNICODE_DOMAIN), + 'همراه' => array(1 => self::VALID_UNICODE_DOMAIN), + 'عراق' => array(1 => self::VALID_UNICODE_DOMAIN), + 'مليسيا' => array(1 => self::VALID_UNICODE_DOMAIN), + '澳門' => array(1 => self::VALID_UNICODE_DOMAIN), + '닷컴' => array(1 => self::VALID_UNICODE_DOMAIN), + '政府' => array(1 => self::VALID_UNICODE_DOMAIN), + 'شبكة' => array(1 => self::VALID_UNICODE_DOMAIN), + 'بيتك' => array(1 => self::VALID_UNICODE_DOMAIN), + 'გე' => array(1 => self::VALID_UNICODE_DOMAIN), + '机构' => array(1 => self::VALID_UNICODE_DOMAIN), + '组织机构' => array(1 => self::VALID_UNICODE_DOMAIN), + '健康' => array(1 => self::VALID_UNICODE_DOMAIN), + 'ไทย' => array(1 => self::VALID_UNICODE_DOMAIN), + 'سورية' => array(1 => self::VALID_UNICODE_DOMAIN), + 'рус' => array(1 => self::VALID_UNICODE_DOMAIN), + 'рф' => array(1 => self::VALID_UNICODE_DOMAIN), + '珠宝' => array(1 => self::VALID_UNICODE_DOMAIN), + 'تونس' => array(1 => self::VALID_UNICODE_DOMAIN), + '大拿' => array(1 => self::VALID_UNICODE_DOMAIN), + 'みんな' => array(1 => self::VALID_UNICODE_DOMAIN), + 'グーグル' => array(1 => self::VALID_UNICODE_DOMAIN), + 'ελ' => array(1 => self::VALID_UNICODE_DOMAIN), + '世界' => array(1 => self::VALID_UNICODE_DOMAIN), + '書籍' => array(1 => self::VALID_UNICODE_DOMAIN), + 'ਭਾਰਤ' => array(1 => self::VALID_UNICODE_DOMAIN), + '网址' => array(1 => self::VALID_UNICODE_DOMAIN), + '닷넷' => array(1 => self::VALID_UNICODE_DOMAIN), + 'コム' => array(1 => self::VALID_UNICODE_DOMAIN), + '游戏' => array(1 => self::VALID_UNICODE_DOMAIN), + 'VERMöGENSBERATER' => array(1 => self::VALID_UNICODE_DOMAIN), + 'VERMöGENSBERATUNG' => array(1 => self::VALID_UNICODE_DOMAIN), + '企业' => array(1 => self::VALID_UNICODE_DOMAIN), + '信息' => array(1 => self::VALID_UNICODE_DOMAIN), + '嘉里大酒店' => array(1 => self::VALID_UNICODE_DOMAIN), + 'مصر' => array(1 => self::VALID_UNICODE_DOMAIN), + 'قطر' => array(1 => self::VALID_UNICODE_DOMAIN), + '广东' => array(1 => self::VALID_UNICODE_DOMAIN), + 'இலங்கை' => array(1 => self::VALID_UNICODE_DOMAIN), + 'இந்தியா' => array(1 => self::VALID_UNICODE_DOMAIN), + 'հայ' => array(1 => self::VALID_UNICODE_DOMAIN), + '新加坡' => array(1 => self::VALID_UNICODE_DOMAIN), + 'فلسطين' => array(1 => self::VALID_UNICODE_DOMAIN), + '政务' => array(1 => self::VALID_UNICODE_DOMAIN), + '家電' => array(1 => self::VALID_UNICODE_DOMAIN), ); diff --git a/tests/PHPUnit/Integration/EmailValidatorTest.php b/tests/PHPUnit/Integration/EmailValidatorTest.php index 262baab9e0..22c95f86ee 100644 --- a/tests/PHPUnit/Integration/EmailValidatorTest.php +++ b/tests/PHPUnit/Integration/EmailValidatorTest.php @@ -47,8 +47,10 @@ class EmailValidatorTest extends \PHPUnit_Framework_TestCase if (strpos(mb_strtolower($tld), 'xn--') !== 0) { $tld = mb_strtolower($tld); } + $email = 'test@example.' . idn_to_utf8($tld); $this->assertTrue( - $this->isValid('test@example.' . idn_to_utf8($tld)) + $this->isValid($email), + "email $email is not valid, but expected to be valid. Add this domain extension to libs/Zend/Validate/Hostname.php" ); } } -- cgit v1.2.3