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

Commit

Permalink
Merge branch 'hotfix/6412' into develop
Browse files Browse the repository at this point in the history
  • Loading branch information
weierophinney committed Aug 7, 2014
11 parents 2f86ba8 + 406d77e + 0f3cda8 + 3b2126c + 51c8f86 + 38cd8d2 + 1821648 + 8790ff5 + 9676012 + bbb9b80 + d68fc57 commit a56f709
Showing 1 changed file with 78 additions and 4 deletions.
82 changes: 78 additions & 4 deletions test/CollectionInputFilterTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
use Zend\InputFilter\BaseInputFilter;
use Zend\InputFilter\CollectionInputFilter;
use Zend\InputFilter\Input;
use Zend\InputFilter\InputFilter;
use Zend\Validator;

class CollectionInputFilterTest extends TestCase
Expand Down Expand Up @@ -643,16 +644,16 @@ public function testNestedCollectionWhereChildDataIsNotOverwritten()
->add(new Input(), 'type');
$items = new CollectionInputFilter();
$items->setInputFilter($items_inputfilter);

$groups_inputfilter = new BaseInputFilter();
$groups_inputfilter->add(new Input(), 'group_class')
->add($items, 'items');
$groups = new CollectionInputFilter();
$groups->setInputFilter($groups_inputfilter);

$inputFilter = new BaseInputFilter();
$inputFilter->add($groups, 'groups');

$data = array(
'groups' => array(
array(
Expand Down Expand Up @@ -691,10 +692,83 @@ public function testNestedCollectionWhereChildDataIsNotOverwritten()
),
),
);

$inputFilter->setData($data);
$inputFilter->isValid();
$values = $inputFilter->getValues();
$this->assertEquals($data, $values);
}

public function dataNestingCollection()
{
return array(
'count not specified' => array(
'count' => null,
'isValid' => true
),
'count = 1' => array(
'count' => 1,
'isValid' => true
),
'count = 2' => array(
'count' => 2,
'isValid' => false
),
'count = 3' => array(
'count' => 3,
'isValid' => false
)
);
}

/**
* @dataProvider dataNestingCollection
*/
public function testNestingCollectionCountCached($count, $expectedIsValid)
{
$firstInputFilter = new InputFilter();

$firstCollection = new CollectionInputFilter();
$firstCollection->setInputFilter($firstInputFilter);

$someInput = new Input('input');
$secondInputFilter = new InputFilter();
$secondInputFilter->add($someInput, 'input');

$secondCollection = new CollectionInputFilter();
$secondCollection->setInputFilter($secondInputFilter);
if (!is_null($count)) {
$secondCollection->setCount($count);
}

$firstInputFilter->add($secondCollection, 'second_collection');

$mainInputFilter = new InputFilter();
$mainInputFilter->add($firstCollection, 'first_collection');

$data = array(
'first_collection' => array(
array(
'second_collection' => array(
array(
'input' => 'some value'
),
array(
'input' => 'some value'
)
)
),
array(
'second_collection' => array(
array(
'input' => 'some value'
),
)
)
)
);

$mainInputFilter->setData($data);
$this->assertSame($expectedIsValid, $mainInputFilter->isValid());
}
}

0 comments on commit a56f709

Please sign in to comment.