public function testProvidesInputSpecificationThatIncludesValidatorsBasedOnAttributes() { $element = new TimeElement('foo'); $element->setAttributes(array('inclusive' => true, 'min' => '00:00:00', 'max' => '00:01:00', 'step' => '60')); $inputSpec = $element->getInputSpecification(); $this->assertArrayHasKey('validators', $inputSpec); $this->assertInternalType('array', $inputSpec['validators']); $expectedClasses = array('Zend\\Validator\\Date', 'Zend\\Validator\\GreaterThan', 'Zend\\Validator\\LessThan', 'Zend\\Validator\\DateStep'); foreach ($inputSpec['validators'] as $validator) { $class = get_class($validator); $this->assertTrue(in_array($class, $expectedClasses), $class); switch ($class) { case 'Zend\\Validator\\Date': $this->assertEquals('H:i:s', $validator->getFormat()); break; case 'Zend\\Validator\\GreaterThan': $this->assertTrue($validator->getInclusive()); $this->assertEquals('00:00:00', $validator->getMin()); break; case 'Zend\\Validator\\LessThan': $this->assertTrue($validator->getInclusive()); $this->assertEquals('00:01:00', $validator->getMax()); break; case 'Zend\\Validator\\DateStep': $dateInterval = new \DateInterval('PT60S'); $this->assertEquals($dateInterval, $validator->getStep()); break; default: break; } } }
public function indexAction() { $form = new Form(); // Элемент Date/Time $dateTime = new Element\DateTime('element-date-time'); $dateTime->setLabel('Date/Time Element')->setAttributes(array('min' => '2000-01-01T00:00:00Z', 'max' => '2020-01-01T00:00:00Z', 'step' => '1')); $form->add($dateTime); // Элемент Date/Time Local $dateTime = new Element\DateTimeLocal('element-date-time-local'); $dateTime->setLabel('Date/Time Local Element')->setAttributes(array('min' => '2000-01-01T00:00:00Z', 'max' => '2020-01-01T00:00:00Z', 'step' => '1')); $form->add($dateTime); // Элемент Time $time = new Element\Time('element-time'); $time->setLabel('Time Element'); $form->add($time); // Элемент Date $date = new Element\Date('element-date'); $date->setLabel('Date Element')->setAttributes(array('min' => '2000-01-01', 'max' => '2020-01-01', 'step' => '1')); $form->add($date); // Элемент Week $week = new Element\Week('element-week'); $week->setLabel('Week Element'); $form->add($week); // Элемент Month $month = new Element\Month('element-month'); $month->setLabel('Month Element'); $form->add($month); // Элемент Email $email = new Element\Email('element-email'); $email->setLabel('Email Element'); $form->add($email); // Элемент URL $url = new Element\Url('element-url'); $url->setLabel('URL Element'); $form->add($url); // Элемент Number // $number = new Element\Number('element-number'); // $number->setLabel('Number Element'); // $form->add($number); // Элемент Range // $range = new Element\Range('element-range'); // $range->setLabel('Range Element'); // $form->add($range); // Элемент Color $color = new Element\Color('element-color'); $color->setLabel('Color Element'); $form->add($color); return array('form' => $form); }