/** * @dataProvider useHiddenAttributeDataProvider */ public function testProvidesInputSpecificationThatIncludesValidatorsBasedOnAttributes($useHiddenElement) { $element = new MultiCheckboxElement(); $options = array('1' => 'Option 1', '2' => 'Option 2', '3' => 'Option 3'); $element->setAttributes(array('options' => $options)); $element->setUseHiddenElement($useHiddenElement); $inputSpec = $element->getInputSpecification(); $this->assertArrayHasKey('validators', $inputSpec); $this->assertInternalType('array', $inputSpec['validators']); $expectedClasses = array('Zend\\Validator\\Explode'); foreach ($inputSpec['validators'] as $validator) { $class = get_class($validator); $this->assertTrue(in_array($class, $expectedClasses), $class); switch ($class) { case 'Zend\\Validator\\Explode': $inArrayValidator = $validator->getValidator(); $this->assertInstanceOf('Zend\\Validator\\InArray', $inArrayValidator); $values = array_values($options); if ($element->useHiddenElement()) { $values[] = $element->getUncheckedValue(); } $this->assertEquals($values, $inArrayValidator->getHaystack()); break; default: break; } } }
/** * Testing that InArray Validator Haystack is Updated if the Options * are added after the validator is attached * * @dataProvider multiCheckboxOptionsDataProvider */ public function testInArrayValidatorHaystakIsUpdated($valueTests, $options) { $element = new MultiCheckboxElement('my-checkbox'); $inputSpec = $element->getInputSpecification(); $inArrayValidator = $inputSpec['validators'][0]->getValidator(); $element->setAttributes(array('options' => $options)); $haystack = $inArrayValidator->getHaystack(); $this->assertCount(count($options), $haystack); }
/** * @dataProvider multiCheckboxOptionsDataProvider */ public function testInArrayValidationOfOptions($valueTests, $options) { $element = new MultiCheckboxElement('my-checkbox'); $element->setAttributes(array('options' => $options)); $inputSpec = $element->getInputSpecification(); $this->assertArrayHasKey('validators', $inputSpec); $explodeValidator = $inputSpec['validators'][0]; $this->assertInstanceOf('Zend\\Validator\\Explode', $explodeValidator); $this->assertTrue($explodeValidator->isValid($valueTests)); }
public function testDisableInputSpecification() { $element = new MultiCheckboxElement(); $element->setValueOptions(array('Option 1' => 'option1', 'Option 2' => 'option2', 'Option 3' => 'option3')); $element->setDisableInArrayValidator(true); $inputSpec = $element->getInputSpecification(); $this->assertArrayNotHasKey('validators', $inputSpec); }