Bug fix for Argument class - added global $lang in validation methods.

git-svn-id: http://xe-core.googlecode.com/svn/branches/1.5.0@8725 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
ucorina 2011-08-04 18:05:54 +00:00
parent f64e950463
commit da8302fa4a
2 changed files with 67 additions and 31 deletions

View file

@ -97,6 +97,7 @@
function checkFilter($filter_type){
if(isset($this->value) && $this->value != ''){
global $lang;
$val = $this->value;
$key = $this->name;
switch($filter_type) {
@ -146,25 +147,28 @@
function checkMaxLength($length){
if($this->value && (strlen($this->value) > $length)){
global $lang;
$this->isValid = false;
$key = $this->name;
$this->errorMessage = new Object(-1, $lang->filter->outofrange, $lang->{$key} ? $lang->{$key} : $key);
$this->errorMessage = new Object(-1, sprintf($lang->filter->outofrange, $lang->{$key} ? $lang->{$key} : $key));
}
}
function checkMinLength($length){
if($this->value && (strlen($this->value) > $length)){
if($this->value && (strlen($this->value) < $length)){
global $lang;
$this->isValid = false;
$key = $this->name;
$this->errorMessage = new Object(-1, $lang->filter->outofrange, $lang->{$key} ? $lang->{$key} : $key);
$this->errorMessage = new Object(-1, sprintf($lang->filter->outofrange, $lang->{$key} ? $lang->{$key} : $key));
}
}
function checkNotNull(){
if(!isset($this->value)){
global $lang;
$this->isValid = false;
$key = $this->name;
$this->errorMessage = new Object(-1, $lang->filter->isnull, $lang->{$key} ? $lang->{$key} : $key);
$this->errorMessage = new Object(-1, sprintf($lang->filter->isnull, $lang->{$key} ? $lang->{$key} : $key));
}
}
}

View file

@ -6,6 +6,38 @@
*/
class ArgumentTest extends CubridTest {
public function testErrorMessageIsSent_NotNullCheck(){
global $lang;
include(_XE_PATH_.'common/lang/en.lang.php');
$page_argument = new Argument('page', $args->page);
$page_argument->checkNotNull();
$this->assertFalse($page_argument->isValid());
$this->assertEquals("Please input a value for page", $page_argument->getErrorMessage()->message);
}
public function testErrorMessageIsSent_MinLengthCheck(){
global $lang;
include(_XE_PATH_.'common/lang/en.lang.php');
$args->page = '123';
$page_argument = new Argument('page', $args->page);
$page_argument->checkMinLength(6);
$this->assertFalse($page_argument->isValid());
$this->assertEquals("Please align the text length of page", $page_argument->getErrorMessage()->message);
}
public function testErrorMessageIsSent_MaxLengthCheck(){
global $lang;
include(_XE_PATH_.'common/lang/en.lang.php');
$args->page = '123';
$page_argument = new Argument('page', $args->page);
$page_argument->checkMaxLength(2);
$this->assertFalse($page_argument->isValid());
$this->assertEquals("Please align the text length of page", $page_argument->getErrorMessage()->message);
}
/**
* @todo Implement testGetType().
*/
@ -142,7 +174,7 @@ class ArgumentTest extends CubridTest {
public function testCheckNotNullWhenNotNull() {
$member_srl_argument = new ConditionArgument('member_srl', 20, 'equal');
$member_srl_argument->checkNotNull();
$this->assertEquals(true, $member_srl_argument->isValid());
}
@ -152,17 +184,17 @@ class ArgumentTest extends CubridTest {
public function testCheckNotNullWhenNull() {
$member_srl_argument = new ConditionArgument('member_srl', null, 'equal');
$member_srl_argument->checkNotNull();
$this->assertEquals(false, $member_srl_argument->isValid());
}
}
/**
* Checks that argument value stays the same when both user value and default value are given
*/
public function testCheckDefaultValueWhenNotNull() {
$member_srl_argument = new ConditionArgument('member_srl', 20, 'equal');
$member_srl_argument->ensureDefaultValue(25);
$member_srl_argument->ensureDefaultValue(25);
$this->assertEquals(20, $member_srl_argument->getValue());
}
@ -172,41 +204,41 @@ class ArgumentTest extends CubridTest {
public function testCheckDefaultValueWhenNull() {
$member_srl_argument = new ConditionArgument('member_srl', null, 'equal');
$member_srl_argument->ensureDefaultValue(25);
$this->assertEquals(25, $member_srl_argument->getValue());
}
}
/**
* Checks like prefix operation
*/
public function testCreateConditionValue_LikePrefix() {
$member_srl_argument = new ConditionArgument('"mid"', 'forum', 'like_prefix');
$member_srl_argument->createConditionValue();
$this->assertEquals('forum%', $member_srl_argument->getValue());
}
}
/**
* Checks like tail operation
*/
public function testCreateConditionValue_LikeTail() {
$member_srl_argument = new ConditionArgument('"mid"', 'forum', 'like_tail');
$member_srl_argument->createConditionValue();
$this->assertEquals('%forum', $member_srl_argument->getValue());
}
}
/**
* Checks like operation
*/
public function testCreateConditionValue_Like() {
$member_srl_argument = new ConditionArgument('"mid"', 'forum', 'like');
$member_srl_argument->createConditionValue();
$this->assertEquals('%forum%', $member_srl_argument->getValue());
}
}
/**
* Checks in operation
*/
@ -214,10 +246,10 @@ class ArgumentTest extends CubridTest {
$member_srl_argument = new ConditionArgument('"mid"', array('forum', 'board'), 'in');
$member_srl_argument->createConditionValue();
$member_srl_argument->setColumnType('varchar');
$this->assertEquals('(\'forum\',\'board\')', $member_srl_argument->getValue());
}
}
/**
* Checks in operation
*/
@ -225,10 +257,10 @@ class ArgumentTest extends CubridTest {
$member_srl_argument = new ConditionArgument('"module_srl"', array(3, 21), 'in');
$member_srl_argument->setColumnType('number');
$member_srl_argument->createConditionValue();
$this->assertEquals('(3,21)', $member_srl_argument->getValue());
}
}
public function testEnsureDefaultValueWithEmptyString(){
$homepage_argument = new Argument('homepage', '');
$homepage_argument->ensureDefaultValue('');
@ -236,10 +268,10 @@ class ArgumentTest extends CubridTest {
if(!$homepage_argument->isValid()) return $homepage_argument->getErrorMessage();
$homepage_argument->setColumnType('varchar');
$this->assertEquals('\'\'', $homepage_argument->getValue());
}
public function testDefaultValue() {
$default = new DefaultValue("var", '');
$this->assertEquals('\'\'', $default->toString());