Skip to content
This repository has been archived by the owner on Jan 8, 2020. It is now read-only.

View: correctly validate input in PartialLoop #4546

Closed
wants to merge 4 commits into from
Closed

View: correctly validate input in PartialLoop #4546

wants to merge 4 commits into from

Conversation

ghost
Copy link

@ghost ghost commented May 27, 2013

Change the condition to be more safe and intuitive.

Closes #4545

} else if (is_object($values) && method_exists($values, 'toArray')) {
$values = $values->toArray();
} else {
throw new Exception\InvalidArgumentException('PartialLoop helper requires iterable data');
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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');
    }
}

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That makes sense. Updated.

@weierophinney
Copy link
Member

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).

@ghost
Copy link
Author

ghost commented Jun 9, 2013

@weierophinney done

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

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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
View: correctly validate input in PartialLoop
weierophinney added a commit that referenced this pull request Jun 10, 2013
- to use setExpectedException()
weierophinney added a commit to zendframework/zend-view that referenced this pull request May 15, 2015
…x/4545

View: correctly validate input in PartialLoop
weierophinney added a commit to zendframework/zend-view that referenced this pull request May 15, 2015
- 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 subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

PartialLoop: fail to validate input $values
3 participants