Просмотр исходного кода

Merge pull request #338 from froschdesign/hotfix/337

Fix Zend_Locale::isLocale to accept alias locales (Fixes #337)
Rob Allen 11 лет назад
Родитель
Сommit
1afac3370a
2 измененных файлов с 23 добавлено и 0 удалено
  1. 5 0
      library/Zend/Locale.php
  2. 18 0
      tests/Zend/LocaleTest.php

+ 5 - 0
library/Zend/Locale.php

@@ -1639,6 +1639,11 @@ class Zend_Locale
             return true;
         }
 
+        // Is it an alias?
+        if (is_string($locale) && array_key_exists($locale, self::$_localeAliases)) {
+            return true;
+        }
+
         if (($locale === null) || (!is_string($locale) and !is_array($locale))) {
             return false;
         }

+ 18 - 0
tests/Zend/LocaleTest.php

@@ -110,6 +110,24 @@ class Zend_LocaleTest extends PHPUnit_Framework_TestCase
     }
 
     /**
+     * @group GH-337
+     */
+    public function testIsLocaleMethodWithAliases()
+    {
+        $this->assertEquals(true, Zend_Locale::isLocale('zh_CN'));
+        $this->assertEquals(true, Zend_Locale::isLocale('zh_CN', false, false));
+        $this->assertEquals(true, Zend_Locale::isLocale('zh_CN', true, true));
+        $this->assertEquals(true, Zend_Locale::isLocale('zh_CN', false, true));
+        $this->assertEquals(true, Zend_Locale::isLocale('zh_CN', true, false));
+
+        $this->assertEquals(true, Zend_Locale::isLocale('zh_Hans_CN'));
+        $this->assertEquals(true, Zend_Locale::isLocale('zh_Hans_CN', false, false));
+        $this->assertEquals(true, Zend_Locale::isLocale('zh_Hans_CN', true, true));
+        $this->assertEquals(true, Zend_Locale::isLocale('zh_Hans_CN', false, true));
+        $this->assertEquals(true, Zend_Locale::isLocale('zh_Hans_CN', true, false));
+    }
+
+    /**
      * test for object creation
      * expected object instance
      */