Example #1
0
 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);
 }