Jelajahi Sumber

Merge r25212 to 1.12 release branch

git-svn-id: http://framework.zend.com/svn/framework/standard/branches/release-1.12@25213 44c647ce-9c0f-0410-b52a-842ac1e357ba
frosch 13 tahun lalu
induk
melakukan
f12d6b49f7

+ 1 - 1
library/Zend/Navigation/Page/Mvc.php

@@ -198,7 +198,7 @@ class Zend_Navigation_Page_Mvc extends Zend_Navigation_Page
             }
 
             foreach($myParams as $key => $value) {
-                if($value == null) {
+                if(null === $value) {
                     unset($myParams[$key]);
                 }
             }

+ 6 - 6
tests/Zend/Navigation/ContainerTest.php

@@ -767,7 +767,7 @@ class Zend_Navigation_ContainerTest extends PHPUnit_Framework_TestCase
         $nav = $this->_getFindByNavigation();
 
         $found = $nav->findOneBy('page2', 'page2');
-        $this->assertType('Zend_Navigation_Page', $found);
+        $this->assertTrue($found instanceof Zend_Navigation_Page);
         $this->assertEquals('Page 2', $found->getLabel());
     }
 
@@ -776,7 +776,7 @@ class Zend_Navigation_ContainerTest extends PHPUnit_Framework_TestCase
         $nav = $this->_getFindByNavigation();
 
         $found = $nav->findOneBy('id', 'page_2_and_3');
-        $this->assertType('Zend_Navigation_Page', $found);
+        $this->assertTrue($found instanceof Zend_Navigation_Page);
         $this->assertEquals('Page 2', $found->getLabel());
     }
 
@@ -820,7 +820,7 @@ class Zend_Navigation_ContainerTest extends PHPUnit_Framework_TestCase
         $nav = $this->_getFindByNavigation();
 
         $found = $nav->findBy('id', 'page_2_and_3');
-        $this->assertType('Zend_Navigation_Page', $found);
+        $this->assertTrue($found instanceof Zend_Navigation_Page);
     }
 
     public function testFindOneByMagicMethodNativeProperty()
@@ -828,7 +828,7 @@ class Zend_Navigation_ContainerTest extends PHPUnit_Framework_TestCase
         $nav = $this->_getFindByNavigation();
 
         $found = $nav->findOneById('page_2_and_3');
-        $this->assertType('Zend_Navigation_Page', $found);
+        $this->assertTrue($found instanceof Zend_Navigation_Page);
         $this->assertEquals('Page 2', $found->getLabel());
     }
 
@@ -837,7 +837,7 @@ class Zend_Navigation_ContainerTest extends PHPUnit_Framework_TestCase
         $nav = $this->_getFindByNavigation();
 
         $found = $nav->findOneBypage2('page2');
-        $this->assertType('Zend_Navigation_Page', $found);
+        $this->assertTrue($found instanceof Zend_Navigation_Page);
         $this->assertEquals('Page 2', $found->getLabel());
     }
 
@@ -894,7 +894,7 @@ class Zend_Navigation_ContainerTest extends PHPUnit_Framework_TestCase
         $nav = $this->_getFindByNavigation();
 
         $found = $nav->findById('page_2_and_3');
-        $this->assertType('Zend_Navigation_Page', $found);
+        $this->assertTrue($found instanceof Zend_Navigation_Page);
         $this->assertEquals('Page 2', $found->getLabel());
     }
 

+ 57 - 0
tests/Zend/Navigation/Page/MvcTest.php

@@ -763,4 +763,61 @@ class Zend_Navigation_Page_MvcTest extends PHPUnit_Framework_TestCase
 
         $this->assertEquals(true, $page->isActive());
     }
+
+    /**
+     * @group ZF-12414
+     */
+    public function testNullValueInParameters()
+    {
+        // Create pages
+        $pages         = array();
+        $pages['home'] = new Zend_Navigation_Page_Mvc(
+            array(
+                 'label'      => 'Home',
+                 'route'      => 'page',
+                 'params'     => array(
+                     'slug' => '',
+                 ),
+            )
+        );
+        $pages['news'] = new Zend_Navigation_Page_Mvc(
+            array(
+                 'label'      => 'News',
+                 'route'      => 'page',
+                 'params'     => array(
+                     'slug' => 'news',
+                 ),
+            )
+        );
+
+        // Add route
+        $this->_front->getRouter()->addRoute(
+            'page',
+            new Zend_Controller_Router_Route_Regex(
+                '((?!(admin|page)).*)',
+                array(
+                    'module'     => 'page',
+                    'controller' => 'index',
+                    'action'     => 'index',
+                ),
+                array(
+                    1 => 'slug',
+                ),
+                '%s'
+            )
+        );
+
+        // Set request
+        $this->_front->getRequest()->setParams(
+            array(
+                 'module'     => 'page',
+                 'controller' => 'index',
+                 'action'     => 'index',
+                 'slug'       => 'news',
+            )
+        );
+
+        $this->assertTrue($pages['news']->isActive());
+        $this->assertFalse($pages['home']->isActive());
+    }
 }