示例#1
0
 /**
  * @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;
         }
     }
 }
示例#2
0
 /**
  * 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);
 }
示例#3
0
 /**
  * @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));
 }
示例#4
0
 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);
 }