lithium\tests\cases\util\ValidatorTest::testEvents PHP Method

testEvents() public method

Tests that event flags applied to rules only trigger when the corresponding event is passed in the $options parameter of check().
public testEvents ( )
    public function testEvents()
    {
        $rules = array('number' => array('numeric', 'message' => 'Badness!'));
        $expected = array('number' => array('Badness!'));
        $result = Validator::check(array('number' => 'o'), $rules);
        $this->assertEqual($expected, $result);
        $rules['number']['on'] = 'foo';
        $result = Validator::check(array('number' => 'o'), $rules, array('events' => 'foo'));
        $this->assertEqual($expected, $result);
        $result = Validator::check(array('number' => 'o'), $rules, array('events' => 'bar'));
        $this->assertEqual(array(), $result);
        $result = Validator::check(array('number' => 'o'), $rules, array('events' => array('foo', 'bar')));
        $this->assertEqual($expected, $result);
        $result = Validator::check(array('number' => 'o'), $rules, array('events' => array('bar', 'baz')));
        $this->assertEqual(array(), $result);
        unset($rules['number']['on']);
        $result = Validator::check(array('number' => 'o'), $rules, array('events' => 'foo'));
        $this->assertEqual($expected, $result);
    }