From 951dbcba07571b9864e34626f57729bc6b0af154 Mon Sep 17 00:00:00 2001
From: mattab <matthieu.aubry@gmail.com>
Date: Wed, 30 Mar 2016 15:04:35 +1300
Subject: [PATCH] Fix the integration test, until next time - Refs #9977

---
 libs/Zend/Validate/Hostname.php               | 250 +++++++++---------
 .../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"
             );
         }
     }
-- 
GitLab