Browse Source

ZF-10959 Now setting a default zend_nav pagetype works through zend_app

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@24113 44c647ce-9c0f-0410-b52a-842ac1e357ba
freak 14 years ago
parent
commit
6e7bf81d26

+ 3 - 2
library/Zend/Application/Resource/Navigation.php

@@ -56,12 +56,13 @@ class Zend_Application_Resource_Navigation
     {
         if (!$this->_container) {
             $options = $this->getOptions();
-            $pages = isset($options['pages']) ? $options['pages'] : array();
-            $this->_container = new Zend_Navigation($pages);
 
             if(isset($options['defaultPageType'])) {
                 Zend_Navigation_Page::setDefaultPageType($options['defaultPageType']);
             }
+            
+            $pages = isset($options['pages']) ? $options['pages'] : array();
+            $this->_container = new Zend_Navigation($pages);
         }
 
         $this->store();

+ 27 - 1
tests/Zend/Application/Resource/NavigationTest.php

@@ -93,7 +93,7 @@ class Zend_Application_Resource_NavigationTest extends PHPUnit_Framework_TestCas
 
     public function testInitializationReturnsNavigationObject()
     {
-           $this->bootstrap->registerPluginResource('view');
+        $this->bootstrap->registerPluginResource('view');
         $resource = new Zend_Application_Resource_Navigation(array());
         $resource->setBootstrap($this->bootstrap);
         $test = $resource->init();
@@ -148,6 +148,32 @@ class Zend_Application_Resource_NavigationTest extends PHPUnit_Framework_TestCas
 
          $this->assertEquals($view->setInMethodByTest,true);
     }
+    
+    /**
+     * @group ZF-10959
+     */
+    public function testDefaultPageTypeIsSet()
+    {
+        $this->bootstrap->registerPluginResource('view');
+        $this->bootstrap->getPluginResource('view')->getView();
+
+        $options = array('defaultPageType' => 'foobar',
+                         'pages'=> array(array(
+            			 'action'     => 'index',
+                         'controller' => 'index')));
+
+        $results = array();
+        $resource = new Zend_Application_Resource_Navigation($options);
+        
+        try {
+            $resource->setBootstrap($this->bootstrap)->init();
+            $this->fail('An exception should have been thrown but wasn\'t');
+        } catch(Zend_Exception $e) {
+            $this->assertTrue(true);
+        }
+        
+        $this->bootstrap->unregisterPluginResource('view');
+    }
 
     /**
      * @group ZF-7461