/** * Return the validator instance. * * @return \Titon\Utility\Validator */ public function getValidator() { if (!$this->_validator) { $this->setValidator(Validator::makeFromShorthand([], $this->validate)); } return $this->_validator; }
/** * 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()); }