Example #1
0
 /**
  * Test that shorthand splitting works.
  */
 public function testSplitShorthand()
 {
     // only a rule
     $this->assertEquals(array('rule' => 'boolean', 'message' => '', 'options' => array()), $this->object->splitShorthand('boolean'));
     // rule with 1 param
     $this->assertEquals(array('rule' => 'decimal', 'message' => '', 'options' => array(1)), $this->object->splitShorthand('decimal:1'));
     // rule with 2 params
     $this->assertEquals(array('rule' => 'between', 'message' => '', 'options' => array(1, 10)), $this->object->splitShorthand('between:1,10'));
     // only a rule and message
     $this->assertEquals(array('rule' => 'boolean', 'message' => 'Must be a boolean!', 'options' => array()), $this->object->splitShorthand('boolean::Must be a boolean!'));
     // rule with 2 params and message
     $this->assertEquals(array('rule' => 'between', 'message' => 'Must be between 1:10!', 'options' => array(1, 10)), $this->object->splitShorthand('between:1,10:Must be between 1:10!'));
 }
Example #2
0
 /**
  * Return the validator instance.
  *
  * @return \Titon\Utility\Validator
  */
 public function getValidator()
 {
     if (!$this->_validator) {
         $this->setValidator(Validator::makeFromShorthand([], $this->validate));
     }
     return $this->_validator;
 }
Example #3
0
 /**
  * Test that shorthand validation rules get parsed correctly.
  */
 public function testMakeFromShorthand()
 {
     // simple rule
     $obj = Validator::makeFromShorthand(array(), array('field' => 'alphaNumeric'));
     $this->assertEquals(array('field' => array('alphaNumeric' => array('message' => '', 'options' => array()))), $obj->getRules());
     // simple 2 rules
     $obj = Validator::makeFromShorthand(array(), array('field' => 'alphaNumeric|boolean'));
     $this->assertEquals(array('field' => array('alphaNumeric' => array('message' => '', 'options' => array()), 'boolean' => array('message' => '', 'options' => array()))), $obj->getRules());
     // simple 2 rules with options
     $obj = Validator::makeFromShorthand(array(), array('field' => 'between:5,10|equal:7'));
     $this->assertEquals(array('field' => array('between' => array('message' => '', 'options' => array(5, 10)), 'equal' => array('message' => '', 'options' => array(7)))), $obj->getRules());
     // split 2 rules
     $obj = Validator::makeFromShorthand(array(), array('field' => array('between:5,10', 'equal:7')));
     $this->assertEquals(array('field' => array('between' => array('message' => '', 'options' => array(5, 10)), 'equal' => array('message' => '', 'options' => array(7)))), $obj->getRules());
     // nested 2 rules
     $obj = Validator::makeFromShorthand(array(), array('field' => array('title' => 'Field', 'rules' => 'between:5,10|equal:7')));
     $this->assertEquals(array('field' => array('between' => array('message' => '', 'options' => array(5, 10)), 'equal' => array('message' => '', 'options' => array(7)))), $obj->getRules());
     // nested split 2 rules
     $obj = Validator::makeFromShorthand(array(), array('field' => array('title' => 'Field', 'rules' => array('between:5,10', 'equal:7'))));
     $this->assertEquals(array('field' => array('between' => array('message' => '', 'options' => array(5, 10)), 'equal' => array('message' => '', 'options' => array(7)))), $obj->getRules());
     // advanced multiple rules
     $obj = Validator::makeFromShorthand(array(), array('field' => array('rules' => array('phone::Invalid phone number', 'email::Please provide an email', 'ext:txt:Valid extensions are txt, pdf', 'ip:' . Validate::IPV4 . ':Please provide an IPv4'))));
     $this->assertEquals(array('field' => array('phone' => array('message' => 'Invalid phone number', 'options' => array()), 'email' => array('message' => 'Please provide an email', 'options' => array()), 'ext' => array('message' => 'Valid extensions are txt, pdf', 'options' => array('txt')), 'ip' => array('message' => 'Please provide an IPv4', 'options' => array(Validate::IPV4)))), $obj->getRules());
 }
Example #4
0
 public function testGetValidator()
 {
     $validator = new Validator();
     $validator->addField('username', 'username', ['between' => [5, 25], 'alphaNumeric']);
     $validator->addField('firstName', 'firstName', ['alpha']);
     $validator->addField('lastName', 'lastName', ['numeric']);
     $this->assertEquals($validator, $this->object->getValidator());
 }