View: correctly validate input in PartialLoop #4546

Closed
wants to merge 4 commits into
from

Conversation

Projects
None yet
3 participants
Contributor

mercuriev commented May 27, 2013

Change the condition to be more safe and intuitive.

Closes #4545

library/Zend/View/Helper/PartialLoop.php
+ } else if (is_object($values) && method_exists($values, 'toArray')) {
+ $values = $values->toArray();
+ } else {
+ throw new Exception\InvalidArgumentException('PartialLoop helper requires iterable data');
}
@samsonasik

samsonasik May 27, 2013

Contributor

maybe wrap with if (!is_array($values)) {

if (!is_array($values)) {
    if ($values instanceof Traversable) {
        $values = ArrayUtils::iteratorToArray($values);
    } else if (is_object($values) && method_exists($values, 'toArray')) {
        $values = $values->toArray();
    } else {
        throw new Exception\InvalidArgumentException('PartialLoop helper requires iterable data');
    }
}
@mercuriev

mercuriev May 27, 2013

Contributor

That makes sense. Updated.

Owner

weierophinney commented Jun 7, 2013

Please add a unit test to ensure we don't have a regression in the future (i.e., ensure the exception gets thrown under the right conditions).

Contributor

mercuriev commented Jun 9, 2013

+ try {
+ $result = $this->helper->__invoke('partialLoop.phtml', null);
+ $this->fail('PartialLoop should throw exception when passed null data.');
+ } catch (\Zend\View\Exception\InvalidArgumentException $e) {
@weierophinney

weierophinney Jun 10, 2013

Owner

Use $this->setExpectedException() here instead of a try/catch. I'll do this when merging.

@ghost ghost assigned weierophinney Jun 10, 2013

weierophinney added a commit that referenced this pull request Jun 10, 2013

Merge pull request #4546 from yogipw/hotfix/4545
View: correctly validate input in PartialLoop

weierophinney added a commit that referenced this pull request Jun 10, 2013

[#4546] Updated test
- to use setExpectedException()

weierophinney added a commit to zendframework/zend-view that referenced this pull request May 15, 2015

Merge pull request zendframework/zendframework#4546 from yogipw/hotfi…
…x/4545

View: correctly validate input in PartialLoop

weierophinney added a commit to zendframework/zend-view that referenced this pull request May 15, 2015

[zendframework/zendframework#4546] Updated test
- to use setExpectedException()

weierophinney added a commit to zendframework/zend-view that referenced this pull request May 15, 2015

weierophinney added a commit to zendframework/zend-view that referenced this pull request May 15, 2015

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment