public function getInputSpecification() { $spec = parent::getInputSpecification(); $spec['allow_empty'] = true; $spec['filters'] = [new NullFilter(NullFilter::TYPE_STRING)]; return $spec; }
/** * @dataProvider selectOptionsDataProvider */ public function testInArrayValidationOfOptions($valueTests, $options) { $element = new SelectElement('my-select'); $element->setAttributes(array('options' => $options)); $inputSpec = $element->getInputSpecification(); $this->assertArrayHasKey('validators', $inputSpec); $inArrayValidator = $inputSpec['validators'][0]; $this->assertInstanceOf('Zend\\Validator\\InArray', $inArrayValidator); foreach ($valueTests as $valueToTest) { $this->assertTrue($inArrayValidator->isValid($valueToTest)); } }
public function testProvidesInputSpecificationForMultipleSelect() { $element = new SelectElement(); $element->setAttributes(array('multiple' => true, 'options' => array('Option 1' => 'option1', 'Option 2' => 'option2', 'Option 3' => 'option3'))); $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': $this->assertInstanceOf('Zend\\Validator\\InArray', $validator->getValidator()); break; default: break; } } }
public function testProvidesInputSpecificationThatIncludesValidatorsBasedOnAttributes() { $element = new SelectElement(); $element->setAttribute('options', array('Option 1' => 'option1', 'Option 2' => 'option2', 'Option 3' => 'option3')); $inputSpec = $element->getInputSpecification(); $this->assertArrayHasKey('validators', $inputSpec); $this->assertInternalType('array', $inputSpec['validators']); $expectedClasses = array('Zend\\Validator\\InArray'); foreach ($inputSpec['validators'] as $validator) { $class = get_class($validator); $this->assertTrue(in_array($class, $expectedClasses), $class); switch ($class) { case 'Zend\\Validator\\InArray': $this->assertEquals($element->getAttribute('options'), $validator->getHaystack()); break; default: break; } } }
public function testDisableInputSpecification() { $element = new SelectElement(); $element->setValueOptions(array('Option 1' => 'option1', 'Option 2' => 'option2', 'Option 3' => 'option3')); $element->setDisableInArrayValidator(true); $inputSpec = $element->getInputSpecification(); $this->assertArrayNotHasKey('validators', $inputSpec); }
/** * Testing that InArray Validator Haystack is Updated if the Options * are added after the validator is attached * * @dataProvider selectOptionsDataProvider */ public function testInArrayValidatorHaystakIsUpdated($valueTests, $options) { $element = new SelectElement('my-select'); $inputSpec = $element->getInputSpecification(); $inArrayValidator = $inputSpec['validators'][0]; $this->assertInstanceOf('Zend\\Validator\\InArray', $inArrayValidator); $element->setValueOptions($options); $haystack = $inArrayValidator->getHaystack(); $this->assertCount(count($options), $haystack); }
public function testProvidesInputSpecificationForMultipleSelectWithUseHiddenElement() { $element = new SelectElement(); $element->setUseHiddenElement(true)->setAttributes(array('multiple' => true)); $inputSpec = $element->getInputSpecification(); $this->assertArrayHasKey('allow_empty', $inputSpec); $this->assertTrue($inputSpec['allow_empty']); $this->assertArrayHasKey('continue_if_empty', $inputSpec); $this->assertTrue($inputSpec['continue_if_empty']); }
/** * {@inheritDoc} */ public function getInputSpecification() { $inputSpec = parent::getInputSpecification(); $defaultFilters = [['name' => 'StringTrim']]; if (isset($inputSpec['filters'])) { array_unshift($inputSpec['filters'], $defaultFilters); } else { $inputSpec['filters'] = $defaultFilters; } return $inputSpec; }