mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-08 03:01:43 +09:00
issue 18 : Done for writing the ruleset compiler
git-svn-id: http://xe-core.googlecode.com/svn/branches/1.5.0@8454 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
2770b28ee9
commit
23453c0aac
4 changed files with 410 additions and 18 deletions
101
tests/classes/validator/ValidatorTest.php
Normal file
101
tests/classes/validator/ValidatorTest.php
Normal file
|
|
@ -0,0 +1,101 @@
|
|||
<?php
|
||||
|
||||
define('__DEBUG__', 1);
|
||||
require dirname(__FILE__).'/../../../classes/xml/XmlParser.class.php';
|
||||
require dirname(__FILE__).'/../../../classes/handler/Handler.class.php';
|
||||
require dirname(__FILE__).'/../../../classes/file/FileHandler.class.php';
|
||||
require dirname(__FILE__).'/../../../classes/validator/Validator.class.php';
|
||||
|
||||
error_reporting(E_ALL & ~E_NOTICE);
|
||||
|
||||
class ValidatorTest extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
public function _testRequired() {
|
||||
$vd = new Validator();
|
||||
$vd->addFilter('userid', array('required'=>'true'));
|
||||
|
||||
// given data
|
||||
$this->assertFalse( $vd->validate(array('no-userid'=>'hello')) );
|
||||
$this->assertTrue( $vd->validate(array('userid'=>'myuserid')) );
|
||||
$this->assertFalse( $vd->validate(array('userid'=>'')) );
|
||||
|
||||
// context data
|
||||
$this->assertFalse( $vd->validate() );
|
||||
Context::set('userid', '');
|
||||
$this->assertFalse( $vd->validate() );
|
||||
Context::set('userid', 'myuserid');
|
||||
$this->assertTrue( $vd->validate() );
|
||||
$vd->removeFilter('userid');
|
||||
$this->assertTrue( $vd->validate() );
|
||||
}
|
||||
|
||||
public function testDefault() {
|
||||
global $mock_vars;
|
||||
|
||||
$vd = new Validator();
|
||||
$vd->addFilter('userid', array('default'=>'ididid'));
|
||||
|
||||
// given data
|
||||
$arr = array('no-userid'=>'');
|
||||
$vd->validate($arr);
|
||||
$this->assertEquals( $arr, array('no-userid'=>'') );
|
||||
|
||||
$arr = array('userid'=>'');
|
||||
$vd->validate(&$arr); // pass-by-reference
|
||||
$this->assertEquals( $arr, array('userid'=>'ididid') );
|
||||
|
||||
$arr = array('userid'=>'ownid');
|
||||
$vd->validate(&$arr);
|
||||
$this->assertEquals( $arr, array('userid'=>'ownid') );
|
||||
|
||||
// context data
|
||||
$mock_vars = array(); // empty context variables
|
||||
$vd->validate();
|
||||
$this->assertEquals( 'ididid', Context::get('userid') );
|
||||
|
||||
$vd->load(dirname(__FILE__).'/login.xml');
|
||||
|
||||
Context::set('userid', '');
|
||||
$vd->validate();
|
||||
$this->assertEquals( 'idididid', Context::get('userid') );
|
||||
}
|
||||
|
||||
public function testCustomRule() {
|
||||
}
|
||||
|
||||
public function testJSCompile() {
|
||||
}
|
||||
}
|
||||
|
||||
$mock_vars = array();
|
||||
|
||||
class Context
|
||||
{
|
||||
public function gets() {
|
||||
global $mock_vars;
|
||||
|
||||
$args = func_get_args();
|
||||
$output = new stdClass;
|
||||
|
||||
foreach($args as $name) {
|
||||
if(array_key_exists($name, $mock_vars)) $output->{$name} = $mock_vars[$name];
|
||||
}
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
public function get($name) {
|
||||
global $mock_vars;
|
||||
return array_key_exists($name, $mock_vars)?$mock_vars[$name]:'';
|
||||
}
|
||||
|
||||
public function set($name, $value) {
|
||||
global $mock_vars;
|
||||
|
||||
$mock_vars[$name] = $value;
|
||||
}
|
||||
|
||||
public function getLangType() {
|
||||
return 'en';
|
||||
}
|
||||
}
|
||||
7
tests/classes/validator/login.xml
Normal file
7
tests/classes/validator/login.xml
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ruleset>
|
||||
<fields>
|
||||
<field name="userid" required="true" length="5:10" rule="userid" default="idididid" />
|
||||
<field name="password" required="true" />
|
||||
</fields>
|
||||
</ruleset>
|
||||
Loading…
Add table
Add a link
Reference in a new issue