/** * Test that 'required' and 'on' are not conflicting * * @return void */ public function testOnRequiredConflictValidation() { $this->loadFixtures('Article'); $Article = new Article(); // no title field present $data = array('Article' => array('body' => 'Extra Fields Body', 'published' => '1')); $Article->validate = array('title' => array('notempty' => array('rule' => 'notEmpty', 'required' => 'create', 'on' => 'create'))); $Article->create($data); $this->assertFalse($Article->validates()); $Article->validate = array('title' => array('notempty' => array('rule' => 'notEmpty', 'required' => 'update', 'on' => 'create'))); $Article->create($data); $this->assertTrue($Article->validates()); $Article->validate = array('title' => array('notempty' => array('rule' => 'notEmpty', 'required' => 'create', 'on' => 'update'))); $Article->create($data); $this->assertTrue($Article->validates()); $Article->validate = array('title' => array('notempty' => array('rule' => 'notEmpty', 'required' => 'update', 'on' => 'update'))); $Article->create($data); $this->assertTrue($Article->validates()); $Article->validate = array('title' => array('notempty' => array('rule' => 'notEmpty', 'required' => 'create', 'on' => 'create'))); $Article->save(null, array('validate' => false)); $data['Article']['id'] = $Article->id; $Article->set($data); $this->assertTrue($Article->validates()); $Article->validate = array('title' => array('notempty' => array('rule' => 'notEmpty', 'required' => 'update', 'on' => 'create'))); $Article->set($data); $this->assertTrue($Article->validates()); $Article->validate = array('title' => array('notempty' => array('rule' => 'notEmpty', 'required' => 'create', 'on' => 'update'))); $Article->set($data); $this->assertTrue($Article->validates()); $Article->validate = array('title' => array('notempty' => array('rule' => 'notEmpty', 'required' => 'update', 'on' => 'update'))); $Article->set($data); $this->assertFalse($Article->validates()); }
/** * Test for 'on' => [create|update] in validation rules. * * @return void */ function testStateValidation() { $this->loadFixtures('Article'); $Article = new Article(); $data = array('Article' => array('title' => '', 'body' => 'Extra Fields Body', 'published' => '1')); $Article->validate = array('title' => array('notempty' => array('rule' => 'notEmpty', 'on' => 'create'))); $Article->create($data); $this->assertFalse($Article->validates()); $Article->save(null, array('validate' => false)); $data['Article']['id'] = $Article->id; $Article->set($data); $this->assertTrue($Article->validates()); unset($data['Article']['id']); $Article->validate = array('title' => array('notempty' => array('rule' => 'notEmpty', 'on' => 'update'))); $Article->create($data); $this->assertTrue($Article->validates()); $Article->save(null, array('validate' => false)); $data['Article']['id'] = $Article->id; $Article->set($data); $this->assertFalse($Article->validates()); }