/** * testValidates method * * @return void */ public function testValidates() { $TestModel = new TestValidate(); $TestModel->validate = array('user_id' => 'numeric', 'title' => array('allowEmpty' => false, 'rule' => 'notEmpty'), 'body' => 'notEmpty'); $data = array('TestValidate' => array('user_id' => '1', 'title' => '', 'body' => 'body')); $result = $TestModel->create($data); $this->assertEquals($result, $data); $result = $TestModel->validates(); $this->assertFalse($result); $data = array('TestValidate' => array('user_id' => '1', 'title' => 'title', 'body' => 'body')); $result = $TestModel->create($data) && $TestModel->validates(); $this->assertTrue($result); $data = array('TestValidate' => array('user_id' => '1', 'title' => '0', 'body' => 'body')); $result = $TestModel->create($data); $this->assertEquals($result, $data); $result = $TestModel->validates(); $this->assertTrue($result); $data = array('TestValidate' => array('user_id' => '1', 'title' => 0, 'body' => 'body')); $result = $TestModel->create($data); $this->assertEquals($result, $data); $result = $TestModel->validates(); $this->assertTrue($result); $TestModel->validate['modified'] = array('allowEmpty' => true, 'rule' => 'date'); $data = array('TestValidate' => array('user_id' => '1', 'title' => 0, 'body' => 'body', 'modified' => '')); $result = $TestModel->create($data); $this->assertEquals($result, $data); $result = $TestModel->validates(); $this->assertTrue($result); $data = array('TestValidate' => array('user_id' => '1', 'title' => 0, 'body' => 'body', 'modified' => '2007-05-01')); $result = $TestModel->create($data); $this->assertEquals($result, $data); $result = $TestModel->validates(); $this->assertTrue($result); $data = array('TestValidate' => array('user_id' => '1', 'title' => 0, 'body' => 'body', 'modified' => 'invalid-date-here')); $result = $TestModel->create($data); $this->assertEquals($result, $data); $result = $TestModel->validates(); $this->assertFalse($result); $data = array('TestValidate' => array('user_id' => '1', 'title' => 0, 'body' => 'body', 'modified' => 0)); $result = $TestModel->create($data); $this->assertEquals($result, $data); $result = $TestModel->validates(); $this->assertFalse($result); $data = array('TestValidate' => array('user_id' => '1', 'title' => 0, 'body' => 'body', 'modified' => '0')); $result = $TestModel->create($data); $this->assertEquals($result, $data); $result = $TestModel->validates(); $this->assertFalse($result); $TestModel->validate['modified'] = array('allowEmpty' => false, 'rule' => 'date'); $data = array('TestValidate' => array('modified' => null)); $result = $TestModel->create($data); $this->assertEquals($result, $data); $result = $TestModel->validates(); $this->assertFalse($result); $data = array('TestValidate' => array('modified' => false)); $result = $TestModel->create($data); $this->assertEquals($result, $data); $result = $TestModel->validates(); $this->assertFalse($result); $data = array('TestValidate' => array('modified' => '')); $result = $TestModel->create($data); $this->assertEquals($result, $data); $result = $TestModel->validates(); $this->assertFalse($result); $data = array('TestValidate' => array('modified' => '2007-05-01')); $result = $TestModel->create($data); $this->assertEquals($result, $data); $result = $TestModel->validates(); $this->assertTrue($result); $TestModel->validate['slug'] = array('allowEmpty' => false, 'rule' => array('maxLength', 45)); $data = array('TestValidate' => array('user_id' => '1', 'title' => 0, 'body' => 'body', 'slug' => '')); $result = $TestModel->create($data); $this->assertEquals($result, $data); $result = $TestModel->validates(); $this->assertFalse($result); $data = array('TestValidate' => array('user_id' => '1', 'title' => 0, 'body' => 'body', 'slug' => 'slug-right-here')); $result = $TestModel->create($data); $this->assertEquals($result, $data); $result = $TestModel->validates(); $this->assertTrue($result); $data = array('TestValidate' => array('user_id' => '1', 'title' => 0, 'body' => 'body', 'slug' => 'abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz')); $result = $TestModel->create($data); $this->assertEquals($result, $data); $result = $TestModel->validates(); $this->assertFalse($result); $TestModel->validate = array('number' => array('rule' => 'validateNumber', 'min' => 3, 'max' => 5), 'title' => array('allowEmpty' => false, 'rule' => 'notEmpty')); $data = array('TestValidate' => array('title' => 'title', 'number' => '0')); $result = $TestModel->create($data); $this->assertEquals($result, $data); $result = $TestModel->validates(); $this->assertFalse($result); $data = array('TestValidate' => array('title' => 'title', 'number' => 0)); $result = $TestModel->create($data); $this->assertEquals($result, $data); $result = $TestModel->validates(); $this->assertFalse($result); $data = array('TestValidate' => array('title' => 'title', 'number' => '3')); $result = $TestModel->create($data); $this->assertEquals($result, $data); $result = $TestModel->validates(); $this->assertTrue($result); $data = array('TestValidate' => array('title' => 'title', 'number' => 3)); $result = $TestModel->create($data); $this->assertEquals($result, $data); $result = $TestModel->validates(); $this->assertTrue($result); $TestModel->validate = array('number' => array('rule' => 'validateNumber', 'min' => 5, 'max' => 10), 'title' => array('allowEmpty' => false, 'rule' => 'notEmpty')); $data = array('TestValidate' => array('title' => 'title', 'number' => '3')); $result = $TestModel->create($data); $this->assertEquals($result, $data); $result = $TestModel->validates(); $this->assertFalse($result); $data = array('TestValidate' => array('title' => 'title', 'number' => 3)); $result = $TestModel->create($data); $this->assertEquals($result, $data); $result = $TestModel->validates(); $this->assertFalse($result); $TestModel->validate = array('title' => array('allowEmpty' => false, 'rule' => 'validateTitle')); $data = array('TestValidate' => array('title' => '')); $result = $TestModel->create($data); $this->assertEquals($result, $data); $result = $TestModel->validates(); $this->assertFalse($result); $data = array('TestValidate' => array('title' => 'new title')); $result = $TestModel->create($data); $this->assertEquals($result, $data); $result = $TestModel->validates(); $this->assertFalse($result); $data = array('TestValidate' => array('title' => 'title-new')); $result = $TestModel->create($data); $this->assertEquals($result, $data); $result = $TestModel->validates(); $this->assertTrue($result); $TestModel->validate = array('title' => array('allowEmpty' => true, 'rule' => 'validateTitle')); $data = array('TestValidate' => array('title' => '')); $result = $TestModel->create($data); $this->assertEquals($result, $data); $result = $TestModel->validates(); $this->assertTrue($result); $TestModel->validate = array('title' => array('length' => array('allowEmpty' => true, 'rule' => array('maxLength', 10)))); $data = array('TestValidate' => array('title' => '')); $result = $TestModel->create($data); $this->assertEquals($result, $data); $result = $TestModel->validates(); $this->assertTrue($result); $TestModel->validate = array('title' => array('rule' => array('userDefined', 'Article', 'titleDuplicate'))); $data = array('TestValidate' => array('title' => 'My Article Title')); $result = $TestModel->create($data); $this->assertEquals($result, $data); $result = $TestModel->validates(); $this->assertFalse($result); $data = array('TestValidate' => array('title' => 'My Article With a Different Title')); $result = $TestModel->create($data); $this->assertEquals($result, $data); $result = $TestModel->validates(); $this->assertTrue($result); $TestModel->validate = array('title' => array('tooShort' => array('rule' => array('minLength', 50)), 'onlyLetters' => array('rule' => '/^[a-z]+$/i'))); $data = array('TestValidate' => array('title' => 'I am a short string')); $TestModel->create($data); $result = $TestModel->validates(); $this->assertFalse($result); $result = $TestModel->validationErrors; $expected = array('title' => array('tooShort')); $this->assertEquals($expected, $result); $TestModel->validate = array('title' => array('tooShort' => array('rule' => array('minLength', 50), 'last' => false), 'onlyLetters' => array('rule' => '/^[a-z]+$/i'))); $data = array('TestValidate' => array('title' => 'I am a short string')); $TestModel->create($data); $result = $TestModel->validates(); $this->assertFalse($result); $result = $TestModel->validationErrors; $expected = array('title' => array('tooShort', 'onlyLetters')); $this->assertEquals($expected, $result); }
/** * Test to ensure custom validation methods work with CakeValidationSet * * @return void */ public function testCustomMethodsWithCakeValidationSet() { $TestModel = new TestValidate(); $Validator = $TestModel->validator(); $Validator->add('title', 'validateTitle', array('rule' => 'validateTitle', 'message' => 'That aint right')); $data = array('title' => 'notatitle'); $result = $Validator->getField('title')->validate($data); $expected = array(0 => 'That aint right'); $this->assertEquals($expected, $result); $data = array('title' => 'title-is-good'); $result = $Validator->getField('title')->validate($data); $expected = array(); $this->assertEquals($expected, $result); }
/** * Constructs the test case. */ public function __construct() { // TODO Auto-generated constructor self::$ch = curl_init(); }