Skip to content

Commit

Permalink
Added unit test for Email element fix
Browse files Browse the repository at this point in the history
  • Loading branch information
cgmartin committed Aug 9, 2012
1 parent f035cf4 commit 97b505d
Showing 1 changed file with 19 additions and 12 deletions.
31 changes: 19 additions & 12 deletions tests/ZendTest/Form/Element/EmailTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -25,32 +25,39 @@ public function testProvidesInputSpecificationThatIncludesDefaultValidators()
$this->assertArrayHasKey('validators', $inputSpec);
$this->assertInternalType('array', $inputSpec['validators']);

$expectedClasses = array(
$expectedValidators = array(
'Zend\Validator\Regex'
);
foreach ($inputSpec['validators'] as $validator) {
foreach ($inputSpec['validators'] as $i => $validator) {
$class = get_class($validator);
$this->assertTrue(in_array($class, $expectedClasses), $class);
$this->assertEquals($expectedValidators[$i], $class);
}
}

public function testProvidesInputSpecificationThatIncludesValidatorsBasedOnAttributes()
public function emailAttributesDataProvider()
{
return array(
// attributes // expectedValidators
array(array('multiple' => true), array('Zend\Validator\Explode')),
array(array('multiple' => false), array('Zend\Validator\Regex')),
);
}

/**
* @dataProvider emailAttributesDataProvider
*/
public function testProvidesInputSpecificationBasedOnAttributes($attributes, $expectedValidators)
{
$element = new EmailElement();
$element->setAttributes(array(
'multiple' => true
));
$element->setAttributes($attributes);

$inputSpec = $element->getInputSpecification();
$this->assertArrayHasKey('validators', $inputSpec);
$this->assertInternalType('array', $inputSpec['validators']);

$expectedClasses = array(
'Zend\Validator\Explode'
);
foreach ($inputSpec['validators'] as $validator) {
foreach ($inputSpec['validators'] as $i => $validator) {
$class = get_class($validator);
$this->assertTrue(in_array($class, $expectedClasses), $class);
$this->assertEquals($expectedValidators[$i], $class);
switch ($class) {
case 'Zend\Validator\Explode':
$this->assertInstanceOf('Zend\Validator\Regex', $validator->getValidator());
Expand Down

0 comments on commit 97b505d

Please sign in to comment.