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

Fix for #ZF-11072: Zend_Locale handling of '0' values

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@23732 44c647ce-9c0f-0410-b52a-842ac1e357ba
dragonbe 15 лет назад
Родитель
Сommit
ea84f1d33f
2 измененных файлов с 12 добавлено и 1 удалено
  1. 1 1
      library/Zend/Locale.php
  2. 11 0
      tests/Zend/LocaleTest.php

+ 1 - 1
library/Zend/Locale.php

@@ -666,7 +666,7 @@ class Zend_Locale
         require_once 'Zend/Locale/Data.php';
         $locale = self::findLocale($locale);
         $result = Zend_Locale_Data::getContent($locale, $path, $value);
-        if (empty($result) === true) {
+        if (empty($result) === true && '0' !== $result) {
             return false;
         }
 

+ 11 - 0
tests/Zend/LocaleTest.php

@@ -849,6 +849,17 @@ class Zend_LocaleTest extends PHPUnit_Framework_TestCase
         $value = new Zend_Locale('TR');
         $this->assertEquals('tr_TR', $value->toString());
     }
+    /**
+     * @group ZF-11072
+     */
+    public function testTranslationReturnsZeroAsNumber()
+    {
+        $this->assertFalse(Zend_Locale::getTranslation('USD', 'CurrencyFraction'));
+        $this->assertEquals('0', Zend_Locale::getTranslation('JPY', 'CurrencyFraction'));
+		$this->assertEquals('2', Zend_Locale::getTranslation('CHF', 'CurrencyFraction'));
+		$this->assertEquals('3', Zend_Locale::getTranslation('BHD', 'CurrencyFraction'));
+		$this->assertEquals('2', Zend_Locale::getTranslation('DEFAULT', 'CurrencyFraction'));
+    }
 
     /**
      * Ignores a raised PHP error when in effect, but throws a flag to indicate an error occurred