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

Fix for ZF-6637

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@16026 44c647ce-9c0f-0410-b52a-842ac1e357ba
doctorrock83 16 лет назад
Родитель
Сommit
199e2f5f8d
2 измененных файлов с 18 добавлено и 1 удалено
  1. 6 1
      library/Zend/View/Helper/HeadMeta.php
  2. 12 0
      tests/Zend/View/Helper/HeadMetaTest.php

+ 6 - 1
library/Zend/View/Helper/HeadMeta.php

@@ -330,8 +330,13 @@ class Zend_View_Helper_HeadMeta extends Zend_View_Helper_Placeholder_Container_S
 
         $items = array();
         $this->getContainer()->ksort();
-        foreach ($this as $item) {
+        try {
+            foreach ($this as $item) {
             $items[] = $this->itemToString($item);
+            }
+        } catch (Zend_View_Exception $e) {
+            trigger_error($e->getMessage(), E_USER_WARNING);
+            return '';
         }
         return $indent . implode($this->_escape($this->getSeparator()) . $indent, $items);
     }

+ 12 - 0
tests/Zend/View/Helper/HeadMetaTest.php

@@ -276,6 +276,18 @@ class Zend_View_Helper_HeadMetaTest extends PHPUnit_Framework_TestCase
         $this->assertNotContains('unused', $string);
         $this->assertContains('name="title" content="boo bah"', $string);
     }
+    
+    /**
+     * @group #ZF-6637
+     */
+    public function testToStringWhenInvalidKeyProvidedShouldConvertThrownException()
+    {
+        $this->helper->headMeta('some-content', 'tag value', 'not allowed key');
+        $string = @$this->helper->toString();
+        $this->assertEquals('', $string);
+        $errors = error_get_last();
+        $this->assertNotEquals(0, count($errors));
+    }
 
     public function testHeadMetaHelperCreatesItemEntry()
     {