mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-22 12:49:55 +09:00
merge from 1.5.3 (~r10943)
git-svn-id: http://xe-core.googlecode.com/svn/trunk@10951 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
7aa4798373
commit
54e3a72065
334 changed files with 13011 additions and 5561 deletions
|
|
@ -114,6 +114,63 @@ class ValidatorTest extends PHPUnit_Framework_TestCase
|
|||
}
|
||||
|
||||
public function testCustomRule() {
|
||||
// regex
|
||||
$vd = new Validator();
|
||||
$customRules['regex_rule']['type'] = 'regex';
|
||||
$customRules['regex_rule']['test'] = '/^[a-z]+$/';
|
||||
$vd->addRule($customRules);
|
||||
$vd->addFilter('regex_field', array('rule' => 'regex_rule'));
|
||||
|
||||
$this->assertTrue($vd->validate(array('regex_field' => 'abc')));
|
||||
$this->assertFalse($vd->validate(array('regex_field' => 'ABC')));
|
||||
|
||||
// enum
|
||||
$vd = new Validator();
|
||||
$customRules['enum_rule']['type'] = 'enum';
|
||||
$customRules['enum_rule']['test'] = 'a,b,c';
|
||||
$vd->addRule($customRules);
|
||||
$vd->addFilter('enum_field', array('rule' => 'enum_rule'));
|
||||
|
||||
$this->assertTrue($vd->validate(array('enum_field' => 'a')));
|
||||
$this->assertFalse($vd->validate(array('enum_field' => 'd')));
|
||||
|
||||
// enum with custom delimiter
|
||||
$vd = new Validator();
|
||||
$customRules['enum_rule2']['type'] = 'enum';
|
||||
$customRules['enum_rule2']['test'] = 'a@b@c';
|
||||
$customRules['enum_rule2']['delim'] = '@';
|
||||
$vd->addRule($customRules);
|
||||
$vd->addFilter('enum_field2', array('rule' => 'enum_rule2'));
|
||||
|
||||
$this->assertTrue($vd->validate(array('enum_field2' => 'a')));
|
||||
$this->assertFalse($vd->validate(array('enum_field2' => 'd')));
|
||||
|
||||
// expr
|
||||
$vd = new Validator();
|
||||
$customRules['expr_rule']['type'] = 'expr';
|
||||
$customRules['expr_rule']['test'] = '$$ < 10';
|
||||
$vd->addRule($customRules);
|
||||
$vd->addFilter('expr_field', array('rule' => 'expr_rule'));
|
||||
|
||||
$this->assertTrue($vd->validate(array('expr_field' => '5')));
|
||||
$this->assertFalse($vd->validate(array('expr_field' => '15')));
|
||||
}
|
||||
|
||||
public function testCustomRuleXml()
|
||||
{
|
||||
$vd = new Validator(dirname(__FILE__).'/customrule.xml');
|
||||
|
||||
$this->assertTrue($vd->validate(array('regex_field' => 'abc')));
|
||||
$this->assertFalse($vd->validate(array('regex_field' => 'ABC')));
|
||||
|
||||
$this->assertTrue($vd->validate(array('enum_field' => 'a')));
|
||||
$this->assertFalse($vd->validate(array('enum_field' => 'd')));
|
||||
|
||||
$this->assertTrue($vd->validate(array('enum_field2' => 'a')));
|
||||
$this->assertFalse($vd->validate(array('enum_field2' => 'd')));
|
||||
|
||||
$this->assertTrue($vd->validate(array('expr_field' => '5')));
|
||||
$this->assertFalse($vd->validate(array('expr_field' => '15')));
|
||||
}
|
||||
|
||||
public function testCondition() {
|
||||
|
|
|
|||
15
tests/classes/validator/customrule.xml
Normal file
15
tests/classes/validator/customrule.xml
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ruleset version="1.5.0">
|
||||
<customrules>
|
||||
<rule name="regex_rule" type="regex" test="/^[a-z]+$/" />
|
||||
<rule name="enum_rule" type="enum" test="a,b,c" />
|
||||
<rule name="enum_rule2" type="enum" test="a@b@c" delim="@" />
|
||||
<rule name="expr_rule" type="expr" test="$$ < 10" />
|
||||
</customrules>
|
||||
<fields>
|
||||
<field name="regex_field" rule="regex_rule" />
|
||||
<field name="enum_field" rule="enum_rule" />
|
||||
<field name="enum_field2" rule="enum_rule2" />
|
||||
<field name="expr_field" rule="expr_rule" />
|
||||
</fields>
|
||||
</ruleset>
|
||||
Loading…
Add table
Add a link
Reference in a new issue