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

Fixes #363 - Zend_Locale_Data::disableCache(true) is always reset

Frank Brückner 11 лет назад
Родитель
Сommit
fd027b2362
2 измененных файлов с 27 добавлено и 2 удалено
  1. 4 2
      library/Zend/Locale/Format.php
  2. 23 0
      tests/Zend/Locale/FormatTest.php

+ 4 - 2
library/Zend/Locale/Format.php

@@ -42,7 +42,7 @@ class Zend_Locale_Format
                                      'fix_date'      => false,
                                      'locale'        => null,
                                      'cache'         => null,
-                                     'disableCache'  => false,
+                                     'disableCache'  => null,
                                      'precision'     => null);
 
     /**
@@ -152,7 +152,9 @@ class Zend_Locale_Format
                     break;
 
                 case 'disablecache' :
-                    Zend_Locale_Data::disableCache($value);
+                    if (null !== $value) {
+                        Zend_Locale_Data::disableCache($value);
+                    }
                     break;
 
                 case 'precision' :

+ 23 - 0
tests/Zend/Locale/FormatTest.php

@@ -50,6 +50,8 @@ class Zend_Locale_FormatTest extends PHPUnit_Framework_TestCase
         } else if (defined('TESTS_ZEND_LOCALE_FORMAT_SETLOCALE')) {
             setlocale(LC_ALL, TESTS_ZEND_LOCALE_FORMAT_SETLOCALE);
         }
+
+        Zend_Locale_Data::removeCache();
     }
 
     /**
@@ -1114,4 +1116,25 @@ class Zend_Locale_FormatTest extends PHPUnit_Framework_TestCase
             $this->fail('Zend_Locale_Format::checkDateFormat emitted unexpected E_NOTICE');
         }
     }
+
+    /**
+     * @group GH-363
+     */
+    public function testByDefaultCacheShouldBeUsed()
+    {
+        $value = Zend_Locale_Format::getDate('2014-01-01');
+
+        $this->assertTrue(Zend_Locale_Data::hasCache());
+    }
+
+    /**
+     * @group GH-363
+     */
+    public function testZendLocaleDisableCacheShouldNotOverwritten()
+    {
+        Zend_Locale::disableCache(true);
+        $value = Zend_Locale_Format::getDate('2014-01-01');
+
+        $this->assertFalse(Zend_Locale_Data::hasCache());
+    }
 }