Kaynağa Gözat

ZF-7742: getOption() and hasOption() should be case insensitive

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@18273 44c647ce-9c0f-0410-b52a-842ac1e357ba
matthew 16 yıl önce
ebeveyn
işleme
9c6578bd4a

+ 1 - 1
library/Zend/Application.php

@@ -200,7 +200,7 @@ class Zend_Application
      */
     public function hasOption($key)
     {
-        return in_array($key, $this->_optionKeys);
+        return in_array(strtolower($key), $this->_optionKeys);
     }
 
     /**

+ 22 - 0
tests/Zend/Application/ApplicationTest.php

@@ -414,6 +414,28 @@ class Zend_Application_ApplicationTest extends PHPUnit_Framework_TestCase
         $actual     = $autoloader->getZfPath();
         $this->assertContains($latest, $actual);
     }
+
+    /**
+     * @group ZF-7742
+     */
+    public function testHasOptionShouldTreatOptionKeysAsCaseInsensitive()
+    {
+        $application = new Zend_Application('production', array(
+            'fooBar' => 'baz',
+        ));
+        $this->assertTrue($application->hasOption('FooBar'));
+    }
+
+    /**
+     * @group ZF-7742
+     */
+    public function testGetOptionShouldTreatOptionKeysAsCaseInsensitive()
+    {
+        $application = new Zend_Application('production', array(
+            'fooBar' => 'baz',
+        ));
+        $this->assertEquals('baz', $application->getOption('FooBar'));
+    }
 }
 
 if (PHPUnit_MAIN_METHOD == 'Zend_Application_ApplicationTest::main') {