From 95d04c02a4ebd302086d0eb5b8f4f318e9ac4bf1 Mon Sep 17 00:00:00 2001 From: Tomoaki Kosugi Date: Fri, 31 Oct 2014 20:44:15 +0900 Subject: [PATCH 1/6] Fix zendframework/zf2#4517 --- src/AbstractContainer.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/AbstractContainer.php b/src/AbstractContainer.php index 421343c..081104f 100644 --- a/src/AbstractContainer.php +++ b/src/AbstractContainer.php @@ -484,7 +484,7 @@ public function valid() */ public function hasChildren() { - return $this->hasPages(); + return $this->current()->hasPages(); } /** From 83d584dca7b6e8d992b1252bb55ab4da90810c18 Mon Sep 17 00:00:00 2001 From: Tomoaki Kosugi Date: Sat, 1 Nov 2014 13:54:45 +0900 Subject: [PATCH 2/6] Update tests from foreach to iterator --- test/ContainerTest.php | 16 ++++++++-------- test/TestAsset/RecursiveIteratorIterator.php | 10 ++-------- 2 files changed, 10 insertions(+), 16 deletions(-) diff --git a/test/ContainerTest.php b/test/ContainerTest.php index 5bc8b65..214cf8e 100644 --- a/test/ContainerTest.php +++ b/test/ContainerTest.php @@ -320,7 +320,6 @@ public function testDetailedRecursiveIteration() ) )); - $actual = array(); $expected = array( 'beginIteration', 'Page 1', @@ -340,13 +339,14 @@ public function testDetailedRecursiveIteration() 'endIteration', ); - $iterator = new \ZendTest\Navigation\TestAsset\RecursiveIteratorIterator($nav, - \RecursiveIteratorIterator::SELF_FIRST); - $logger = new \ArrayObject(array()); - $iterator->setLogger($logger); - foreach ($iterator as $page) {} - $actual = $logger->getArrayCopy(); - $this->assertEquals($expected, $actual); + $iterator = new TestAsset\RecursiveIteratorIterator($nav, \RecursiveIteratorIterator::SELF_FIRST); + $iterator->logger = array(); + $iterator->rewind(); + while ($iterator->valid()) { + $iterator->current(); + $iterator->next(); + } + $this->assertEquals($expected, $iterator->logger); } public function testSettingPageOrderShouldUpdateContainerOrder() diff --git a/test/TestAsset/RecursiveIteratorIterator.php b/test/TestAsset/RecursiveIteratorIterator.php index 034784f..863bcc8 100644 --- a/test/TestAsset/RecursiveIteratorIterator.php +++ b/test/TestAsset/RecursiveIteratorIterator.php @@ -13,14 +13,9 @@ class RecursiveIteratorIterator extends \RecursiveIteratorIterator { /** * - * @var \ArrayObject + * @var \ArrayAccess|array */ - protected $logger; - - public function setLogger($logger) - { - $this->logger = $logger; - } + public $logger; public function beginIteration() { @@ -46,5 +41,4 @@ public function current() { $this->logger[] = parent::current()->getLabel(); } - } From f63debebe5716060095963f442daa4cfa79439e1 Mon Sep 17 00:00:00 2001 From: Tomoaki Kosugi Date: Sat, 1 Nov 2014 21:39:09 +0900 Subject: [PATCH 3/6] Add to check valid --- src/AbstractContainer.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/AbstractContainer.php b/src/AbstractContainer.php index 081104f..71e00f7 100644 --- a/src/AbstractContainer.php +++ b/src/AbstractContainer.php @@ -484,7 +484,7 @@ public function valid() */ public function hasChildren() { - return $this->current()->hasPages(); + return ($this->valid() && $this->current()->hasPages()); } /** From 6e2059a85db5024409851d0d0b420e8e0caaa844 Mon Sep 17 00:00:00 2001 From: Tomoaki Kosugi Date: Sat, 1 Nov 2014 21:40:03 +0900 Subject: [PATCH 4/6] Update tests for zendframework/zf2#4517 --- test/ContainerTest.php | 1 + test/TestAsset/RecursiveIteratorIterator.php | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/test/ContainerTest.php b/test/ContainerTest.php index 214cf8e..ce5a6a1 100644 --- a/test/ContainerTest.php +++ b/test/ContainerTest.php @@ -342,6 +342,7 @@ public function testDetailedRecursiveIteration() $iterator = new TestAsset\RecursiveIteratorIterator($nav, \RecursiveIteratorIterator::SELF_FIRST); $iterator->logger = array(); $iterator->rewind(); + //#4517 logging with walking through RecursiveIterator while ($iterator->valid()) { $iterator->current(); $iterator->next(); diff --git a/test/TestAsset/RecursiveIteratorIterator.php b/test/TestAsset/RecursiveIteratorIterator.php index 863bcc8..4265f36 100644 --- a/test/TestAsset/RecursiveIteratorIterator.php +++ b/test/TestAsset/RecursiveIteratorIterator.php @@ -15,7 +15,7 @@ class RecursiveIteratorIterator extends \RecursiveIteratorIterator * * @var \ArrayAccess|array */ - public $logger; + public $logger = array(); public function beginIteration() { From 287c4d9572a8e6815d88ef98ad67d1f1cc5d20c2 Mon Sep 17 00:00:00 2001 From: Marco Pivetta Date: Sat, 22 Nov 2014 09:09:05 +0100 Subject: [PATCH 5/6] zendframework/zf2#6825 - minor CS fixes (removing unneeded parenthetical) --- src/AbstractContainer.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/AbstractContainer.php b/src/AbstractContainer.php index 71e00f7..1308803 100644 --- a/src/AbstractContainer.php +++ b/src/AbstractContainer.php @@ -484,7 +484,7 @@ public function valid() */ public function hasChildren() { - return ($this->valid() && $this->current()->hasPages()); + return $this->valid() && $this->current()->hasPages(); } /** From c5d55c39e18919b55df82da3b4d5a9968e55ccc1 Mon Sep 17 00:00:00 2001 From: Marco Pivetta Date: Sat, 22 Nov 2014 09:10:40 +0100 Subject: [PATCH 6/6] zendframework/zf2#6825 - adding missing `@group` annotations for newly introduced tests --- test/ContainerTest.php | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/test/ContainerTest.php b/test/ContainerTest.php index ce5a6a1..bbdb3c9 100644 --- a/test/ContainerTest.php +++ b/test/ContainerTest.php @@ -224,8 +224,11 @@ public function testRecursiveIteration() } /** + * @group 6825 + * @group 4517 + * @group 3211 * - * @see https://github.com/zendframework/zf2/issues/3211 + * @link https://github.com/zendframework/zf2/issues/3211 */ public function testHasChildrenCompatibility() { @@ -277,6 +280,11 @@ public function testHasChildrenCompatibility() $this->assertFalse($page2->hasChildren(), "page2's first child doesn't have children"); } + /** + * @group 6825 + * @group 4517 + * @group 3211 + */ public function testDetailedRecursiveIteration() { $nav = new Navigation\Navigation(array(