[limb-svn] r6482 - in 3.x/trunk/limb/validation: src/rule tests/cases/rule
svn at limb-project.com
svn at limb-project.com
Fri Nov 2 10:59:36 MSK 2007
Author: serega
Date: 2007-11-02 10:59:36 +0300 (Fri, 02 Nov 2007)
New Revision: 6482
URL: http://fisheye.limb-project.com/changelog/limb/?cs=6482
Added:
3.x/trunk/limb/validation/src/rule/lmbNotInArrayRule.class.php
3.x/trunk/limb/validation/tests/cases/rule/.setup.php
3.x/trunk/limb/validation/tests/cases/rule/lmbNotInArrayRuleTest.class.php
Modified:
3.x/trunk/limb/validation/tests/cases/rule/lmbAtleastOneFieldRequiredRuleTest.class.php
3.x/trunk/limb/validation/tests/cases/rule/lmbBaseValidationRuleTest.class.php
3.x/trunk/limb/validation/tests/cases/rule/lmbCallbackRuleTest.class.php
3.x/trunk/limb/validation/tests/cases/rule/lmbDateRuleTest.class.php
3.x/trunk/limb/validation/tests/cases/rule/lmbDomainRuleTest.class.php
3.x/trunk/limb/validation/tests/cases/rule/lmbEmailRuleTest.class.php
3.x/trunk/limb/validation/tests/cases/rule/lmbI18NSizeRangeTest.class.php
3.x/trunk/limb/validation/tests/cases/rule/lmbIdentifierRuleTest.class.php
3.x/trunk/limb/validation/tests/cases/rule/lmbInvalidValueRuleTest.class.php
3.x/trunk/limb/validation/tests/cases/rule/lmbLocaleDateRuleTest.class.php
3.x/trunk/limb/validation/tests/cases/rule/lmbMatchRuleTest.class.php
3.x/trunk/limb/validation/tests/cases/rule/lmbNumericPrecisionRuleTest.class.php
3.x/trunk/limb/validation/tests/cases/rule/lmbNumericValueRangeRuleTest.class.php
3.x/trunk/limb/validation/tests/cases/rule/lmbPatternRuleTest.class.php
3.x/trunk/limb/validation/tests/cases/rule/lmbRequiredObjectRuleTest.class.php
3.x/trunk/limb/validation/tests/cases/rule/lmbRequiredRuleTest.class.php
3.x/trunk/limb/validation/tests/cases/rule/lmbSizeRangeRuleTest.class.php
3.x/trunk/limb/validation/tests/cases/rule/lmbUrlRuleTest.class.php
Log:
-- new lmbNotInArrayRule validation rule added
-- minor refactoring in validation rules tests
Added: 3.x/trunk/limb/validation/src/rule/lmbNotInArrayRule.class.php
===================================================================
--- 3.x/trunk/limb/validation/src/rule/lmbNotInArrayRule.class.php (rev 0)
+++ 3.x/trunk/limb/validation/src/rule/lmbNotInArrayRule.class.php 2007-11-02 07:59:36 UTC (rev 6482)
@@ -0,0 +1,47 @@
+<?php
+/*
+ * Limb PHP Framework
+ *
+ * @link http://limb-project.com
+ * @copyright Copyright © 2004-2007 BIT(http://bit-creative.com)
+ * @license LGPL http://www.gnu.org/copyleft/lesser.html
+ */
+lmb_require('limb/validation/src/rule/lmbSingleFieldRule.class.php');
+
+/**
+ * Checks that field is not not in a list of restricted values
+ * Example of usage:
+ * <code>
+ * lmb_require('limb/validation/src/rule/lmbNotInArrayRule.class.php');
+ * $validator->addRule(new lmbMatchRule('login', array('www', 'mail', 'smtp')));
+ * </code>
+ * @package validation
+ * @version $Id$
+ */
+class lmbNotInArrayRule extends lmbSingleFieldRule
+{
+ /**
+ * @var array A list of not allowed values
+ */
+ protected $restricted_values = array();
+
+ /**
+ * Constructor.
+ * @param string Field name
+ * @param array List of restricted values
+ * @param string Custom error message
+ */
+ function __construct($field_name, $restricted_values, $custom_error = '')
+ {
+ parent :: __construct($field_name, $custom_error);
+
+ $this->restricted_values = $restricted_values;
+ }
+
+ function check($value)
+ {
+ if(in_array($value, $this->restricted_values))
+ $this->error('{Field} has not allowed value.');
+ }
+}
+
Added: 3.x/trunk/limb/validation/tests/cases/rule/.setup.php
===================================================================
--- 3.x/trunk/limb/validation/tests/cases/rule/.setup.php (rev 0)
+++ 3.x/trunk/limb/validation/tests/cases/rule/.setup.php 2007-11-02 07:59:36 UTC (rev 6482)
@@ -0,0 +1,4 @@
+<?php
+require_once(dirname(__FILE__) . '/lmbValidationRuleTestCase.class.php');
+
+?>
Modified: 3.x/trunk/limb/validation/tests/cases/rule/lmbAtleastOneFieldRequiredRuleTest.class.php
===================================================================
--- 3.x/trunk/limb/validation/tests/cases/rule/lmbAtleastOneFieldRequiredRuleTest.class.php 2007-11-01 14:17:34 UTC (rev 6481)
+++ 3.x/trunk/limb/validation/tests/cases/rule/lmbAtleastOneFieldRequiredRuleTest.class.php 2007-11-02 07:59:36 UTC (rev 6482)
@@ -6,7 +6,6 @@
* @copyright Copyright © 2004-2007 BIT(http://bit-creative.com)
* @license LGPL http://www.gnu.org/copyleft/lesser.html
*/
-require_once(dirname(__FILE__) . '/lmbValidationRuleTestCase.class.php');
lmb_require('limb/validation/src/rule/lmbAtleastOneFieldRequiredRule.class.php');
class lmbAtleastOneFieldRequiredRuleTest extends lmbValidationRuleTestCase
Modified: 3.x/trunk/limb/validation/tests/cases/rule/lmbBaseValidationRuleTest.class.php
===================================================================
--- 3.x/trunk/limb/validation/tests/cases/rule/lmbBaseValidationRuleTest.class.php 2007-11-01 14:17:34 UTC (rev 6481)
+++ 3.x/trunk/limb/validation/tests/cases/rule/lmbBaseValidationRuleTest.class.php 2007-11-02 07:59:36 UTC (rev 6482)
@@ -6,7 +6,6 @@
* @copyright Copyright © 2004-2007 BIT(http://bit-creative.com)
* @license LGPL http://www.gnu.org/copyleft/lesser.html
*/
-lmb_require(dirname(__FILE__) . '/lmbValidationRuleTestCase.class.php');
lmb_require('limb/validation/src/rule/lmbBaseValidationRule.class.php');
lmb_require('limb/validation/src/rule/lmbValidationRule.interface.php');
lmb_require('limb/validation/src/lmbValidator.class.php');
Modified: 3.x/trunk/limb/validation/tests/cases/rule/lmbCallbackRuleTest.class.php
===================================================================
--- 3.x/trunk/limb/validation/tests/cases/rule/lmbCallbackRuleTest.class.php 2007-11-01 14:17:34 UTC (rev 6481)
+++ 3.x/trunk/limb/validation/tests/cases/rule/lmbCallbackRuleTest.class.php 2007-11-02 07:59:36 UTC (rev 6482)
@@ -6,7 +6,6 @@
* @copyright Copyright © 2004-2007 BIT(http://bit-creative.com)
* @license LGPL http://www.gnu.org/copyleft/lesser.html
*/
-lmb_require(dirname(__FILE__) . '/lmbValidationRuleTestCase.class.php');
lmb_require('limb/validation/src/rule/lmbCallbackRule.class.php');
class lmbCallbackRuleTest extends lmbValidationRuleTestCase
Modified: 3.x/trunk/limb/validation/tests/cases/rule/lmbDateRuleTest.class.php
===================================================================
--- 3.x/trunk/limb/validation/tests/cases/rule/lmbDateRuleTest.class.php 2007-11-01 14:17:34 UTC (rev 6481)
+++ 3.x/trunk/limb/validation/tests/cases/rule/lmbDateRuleTest.class.php 2007-11-02 07:59:36 UTC (rev 6482)
@@ -6,7 +6,6 @@
* @copyright Copyright © 2004-2007 BIT(http://bit-creative.com)
* @license LGPL http://www.gnu.org/copyleft/lesser.html
*/
-require_once(dirname(__FILE__) . '/lmbValidationRuleTestCase.class.php');
lmb_require('limb/validation/src/rule/lmbDateRule.class.php');
class lmbDateRuleTest extends lmbValidationRuleTestCase
Modified: 3.x/trunk/limb/validation/tests/cases/rule/lmbDomainRuleTest.class.php
===================================================================
--- 3.x/trunk/limb/validation/tests/cases/rule/lmbDomainRuleTest.class.php 2007-11-01 14:17:34 UTC (rev 6481)
+++ 3.x/trunk/limb/validation/tests/cases/rule/lmbDomainRuleTest.class.php 2007-11-02 07:59:36 UTC (rev 6482)
@@ -6,7 +6,6 @@
* @copyright Copyright © 2004-2007 BIT(http://bit-creative.com)
* @license LGPL http://www.gnu.org/copyleft/lesser.html
*/
-lmb_require(dirname(__FILE__) . '/lmbValidationRuleTestCase.class.php');
lmb_require('limb/validation/src/rule/lmbDomainRule.class.php');
class lmbDomainRuleTest extends lmbValidationRuleTestCase
Modified: 3.x/trunk/limb/validation/tests/cases/rule/lmbEmailRuleTest.class.php
===================================================================
--- 3.x/trunk/limb/validation/tests/cases/rule/lmbEmailRuleTest.class.php 2007-11-01 14:17:34 UTC (rev 6481)
+++ 3.x/trunk/limb/validation/tests/cases/rule/lmbEmailRuleTest.class.php 2007-11-02 07:59:36 UTC (rev 6482)
@@ -6,7 +6,6 @@
* @copyright Copyright © 2004-2007 BIT(http://bit-creative.com)
* @license LGPL http://www.gnu.org/copyleft/lesser.html
*/
-require_once(dirname(__FILE__) . '/lmbValidationRuleTestCase.class.php');
lmb_require('limb/validation/src/rule/lmbEmailRule.class.php');
class lmbEmailRuleTest extends lmbValidationRuleTestCase
Modified: 3.x/trunk/limb/validation/tests/cases/rule/lmbI18NSizeRangeTest.class.php
===================================================================
--- 3.x/trunk/limb/validation/tests/cases/rule/lmbI18NSizeRangeTest.class.php 2007-11-01 14:17:34 UTC (rev 6481)
+++ 3.x/trunk/limb/validation/tests/cases/rule/lmbI18NSizeRangeTest.class.php 2007-11-02 07:59:36 UTC (rev 6482)
@@ -7,7 +7,6 @@
* @license LGPL http://www.gnu.org/copyleft/lesser.html
*/
lmb_require('limb/validation/src/rule/lmbI18NSizeRangeRule.class.php');
-lmb_require('limb/validation/tests/cases/rule/lmbValidationRuleTestCase.class.php');
class lmbI18NSizeRangeTest extends lmbValidationRuleTestCase
{
Modified: 3.x/trunk/limb/validation/tests/cases/rule/lmbIdentifierRuleTest.class.php
===================================================================
--- 3.x/trunk/limb/validation/tests/cases/rule/lmbIdentifierRuleTest.class.php 2007-11-01 14:17:34 UTC (rev 6481)
+++ 3.x/trunk/limb/validation/tests/cases/rule/lmbIdentifierRuleTest.class.php 2007-11-02 07:59:36 UTC (rev 6482)
@@ -6,7 +6,6 @@
* @copyright Copyright © 2004-2007 BIT(http://bit-creative.com)
* @license LGPL http://www.gnu.org/copyleft/lesser.html
*/
-lmb_require(dirname(__FILE__) . '/lmbValidationRuleTestCase.class.php');
lmb_require('limb/validation/src/rule/lmbIdentifierRule.class.php');
class lmbIdentifierRuleTest extends lmbValidationRuleTestCase
Modified: 3.x/trunk/limb/validation/tests/cases/rule/lmbInvalidValueRuleTest.class.php
===================================================================
--- 3.x/trunk/limb/validation/tests/cases/rule/lmbInvalidValueRuleTest.class.php 2007-11-01 14:17:34 UTC (rev 6481)
+++ 3.x/trunk/limb/validation/tests/cases/rule/lmbInvalidValueRuleTest.class.php 2007-11-02 07:59:36 UTC (rev 6482)
@@ -6,7 +6,6 @@
* @copyright Copyright © 2004-2007 BIT(http://bit-creative.com)
* @license LGPL http://www.gnu.org/copyleft/lesser.html
*/
-require_once(dirname(__FILE__) . '/lmbValidationRuleTestCase.class.php');
lmb_require('limb/validation/src/rule/lmbInvalidValueRule.class.php');
class lmbInvalidValueRuleTest extends lmbValidationRuleTestCase
Modified: 3.x/trunk/limb/validation/tests/cases/rule/lmbLocaleDateRuleTest.class.php
===================================================================
--- 3.x/trunk/limb/validation/tests/cases/rule/lmbLocaleDateRuleTest.class.php 2007-11-01 14:17:34 UTC (rev 6481)
+++ 3.x/trunk/limb/validation/tests/cases/rule/lmbLocaleDateRuleTest.class.php 2007-11-02 07:59:36 UTC (rev 6482)
@@ -7,7 +7,6 @@
* @license LGPL http://www.gnu.org/copyleft/lesser.html
*/
lmb_require('limb/validation/src/rule/lmbLocaleDateRule.class.php');
-lmb_require('limb/validation/tests/cases/rule/lmbValidationRuleTestCase.class.php');
class lmbLocaleDateRuleTest extends lmbValidationRuleTestCase
{
Modified: 3.x/trunk/limb/validation/tests/cases/rule/lmbMatchRuleTest.class.php
===================================================================
--- 3.x/trunk/limb/validation/tests/cases/rule/lmbMatchRuleTest.class.php 2007-11-01 14:17:34 UTC (rev 6481)
+++ 3.x/trunk/limb/validation/tests/cases/rule/lmbMatchRuleTest.class.php 2007-11-02 07:59:36 UTC (rev 6482)
@@ -6,7 +6,6 @@
* @copyright Copyright © 2004-2007 BIT(http://bit-creative.com)
* @license LGPL http://www.gnu.org/copyleft/lesser.html
*/
-require_once(dirname(__FILE__) . '/lmbValidationRuleTestCase.class.php');
lmb_require('limb/validation/src/rule/lmbMatchRule.class.php');
class lmbMatchRuleTest extends lmbValidationRuleTestCase
Added: 3.x/trunk/limb/validation/tests/cases/rule/lmbNotInArrayRuleTest.class.php
===================================================================
--- 3.x/trunk/limb/validation/tests/cases/rule/lmbNotInArrayRuleTest.class.php (rev 0)
+++ 3.x/trunk/limb/validation/tests/cases/rule/lmbNotInArrayRuleTest.class.php 2007-11-02 07:59:36 UTC (rev 6482)
@@ -0,0 +1,55 @@
+<?php
+/*
+ * Limb PHP Framework
+ *
+ * @link http://limb-project.com
+ * @copyright Copyright © 2004-2007 BIT(http://bit-creative.com)
+ * @license LGPL http://www.gnu.org/copyleft/lesser.html
+ */
+lmb_require('limb/validation/src/rule/lmbNotInArrayRule.class.php');
+
+class lmbNotInArrayRuleTest extends lmbValidationRuleTestCase
+{
+ function testNotInArrayOk()
+ {
+ $rule = new lmbNotInArrayRule('testfield', array('www', 'ftp', 'smtp', 'mail'));
+
+ $data = new lmbSet();
+ $data->set('testfield', 'peaches');
+
+ $this->error_list->expectNever('addError');
+
+ $rule->validate($data, $this->error_list);
+ }
+
+ function testInArrayError()
+ {
+ $rule = new lmbNotInArrayRule('testfield', array('www', 'ftp', 'smtp', 'mail'));
+
+ $data = new lmbSet();
+ $data->set('testfield', 'www');
+
+ $this->error_list->expectOnce('addError',
+ array(lmb_i18n('{Field} has not allowed value.', 'validation'),
+ array('Field'=>'testfield'),
+ array()));
+
+ $rule->validate($data, $this->error_list);
+ }
+
+ function testInArrayCustomError()
+ {
+ $rule = new lmbNotInArrayRule('testfield', array('www', 'ftp', 'smtp', 'mail'), $error = 'my_custom_error');
+
+ $data = new lmbSet();
+ $data->set('testfield', 'www');
+
+ $this->error_list->expectOnce('addError',
+ array($error,
+ array('Field'=>'testfield'),
+ array()));
+
+ $rule->validate($data, $this->error_list);
+ }
+}
+
Modified: 3.x/trunk/limb/validation/tests/cases/rule/lmbNumericPrecisionRuleTest.class.php
===================================================================
--- 3.x/trunk/limb/validation/tests/cases/rule/lmbNumericPrecisionRuleTest.class.php 2007-11-01 14:17:34 UTC (rev 6481)
+++ 3.x/trunk/limb/validation/tests/cases/rule/lmbNumericPrecisionRuleTest.class.php 2007-11-02 07:59:36 UTC (rev 6482)
@@ -6,7 +6,6 @@
* @copyright Copyright © 2004-2007 BIT(http://bit-creative.com)
* @license LGPL http://www.gnu.org/copyleft/lesser.html
*/
-require_once(dirname(__FILE__) . '/lmbValidationRuleTestCase.class.php');
lmb_require('limb/validation/src/rule/lmbNumericPrecisionRule.class.php');
class lmbNumericPrecisionRuleTest extends lmbValidationRuleTestCase
Modified: 3.x/trunk/limb/validation/tests/cases/rule/lmbNumericValueRangeRuleTest.class.php
===================================================================
--- 3.x/trunk/limb/validation/tests/cases/rule/lmbNumericValueRangeRuleTest.class.php 2007-11-01 14:17:34 UTC (rev 6481)
+++ 3.x/trunk/limb/validation/tests/cases/rule/lmbNumericValueRangeRuleTest.class.php 2007-11-02 07:59:36 UTC (rev 6482)
@@ -6,7 +6,6 @@
* @copyright Copyright © 2004-2007 BIT(http://bit-creative.com)
* @license LGPL http://www.gnu.org/copyleft/lesser.html
*/
-require_once(dirname(__FILE__) . '/lmbValidationRuleTestCase.class.php');
lmb_require('limb/validation/src/rule/lmbNumericValueRangeRule.class.php');
class lmbNumericValueRangeRuleTest extends lmbValidationRuleTestCase
Modified: 3.x/trunk/limb/validation/tests/cases/rule/lmbPatternRuleTest.class.php
===================================================================
--- 3.x/trunk/limb/validation/tests/cases/rule/lmbPatternRuleTest.class.php 2007-11-01 14:17:34 UTC (rev 6481)
+++ 3.x/trunk/limb/validation/tests/cases/rule/lmbPatternRuleTest.class.php 2007-11-02 07:59:36 UTC (rev 6482)
@@ -6,7 +6,6 @@
* @copyright Copyright © 2004-2007 BIT(http://bit-creative.com)
* @license LGPL http://www.gnu.org/copyleft/lesser.html
*/
-require_once(dirname(__FILE__) . '/lmbValidationRuleTestCase.class.php');
lmb_require('limb/validation/src/rule/lmbPatternRule.class.php');
class lmbPatternRuleTest extends lmbValidationRuleTestCase
Modified: 3.x/trunk/limb/validation/tests/cases/rule/lmbRequiredObjectRuleTest.class.php
===================================================================
--- 3.x/trunk/limb/validation/tests/cases/rule/lmbRequiredObjectRuleTest.class.php 2007-11-01 14:17:34 UTC (rev 6481)
+++ 3.x/trunk/limb/validation/tests/cases/rule/lmbRequiredObjectRuleTest.class.php 2007-11-02 07:59:36 UTC (rev 6482)
@@ -6,7 +6,6 @@
* @copyright Copyright © 2004-2007 BIT(http://bit-creative.com)
* @license LGPL http://www.gnu.org/copyleft/lesser.html
*/
-lmb_require(dirname(__FILE__) . '/lmbValidationRuleTestCase.class.php');
lmb_require('limb/validation/src/rule/lmbRequiredObjectRule.class.php');
class TestObjectForThisRule{}
Modified: 3.x/trunk/limb/validation/tests/cases/rule/lmbRequiredRuleTest.class.php
===================================================================
--- 3.x/trunk/limb/validation/tests/cases/rule/lmbRequiredRuleTest.class.php 2007-11-01 14:17:34 UTC (rev 6481)
+++ 3.x/trunk/limb/validation/tests/cases/rule/lmbRequiredRuleTest.class.php 2007-11-02 07:59:36 UTC (rev 6482)
@@ -6,7 +6,6 @@
* @copyright Copyright © 2004-2007 BIT(http://bit-creative.com)
* @license LGPL http://www.gnu.org/copyleft/lesser.html
*/
-require_once(dirname(__FILE__) . '/lmbValidationRuleTestCase.class.php');
lmb_require('limb/validation/src/rule/lmbRequiredRule.class.php');
class lmbRequiredRuleTest extends lmbValidationRuleTestCase
Modified: 3.x/trunk/limb/validation/tests/cases/rule/lmbSizeRangeRuleTest.class.php
===================================================================
--- 3.x/trunk/limb/validation/tests/cases/rule/lmbSizeRangeRuleTest.class.php 2007-11-01 14:17:34 UTC (rev 6481)
+++ 3.x/trunk/limb/validation/tests/cases/rule/lmbSizeRangeRuleTest.class.php 2007-11-02 07:59:36 UTC (rev 6482)
@@ -6,7 +6,6 @@
* @copyright Copyright © 2004-2007 BIT(http://bit-creative.com)
* @license LGPL http://www.gnu.org/copyleft/lesser.html
*/
-require_once(dirname(__FILE__) . '/lmbValidationRuleTestCase.class.php');
lmb_require('limb/validation/src/rule/lmbSizeRangeRule.class.php');
class lmbSizeRangeRuleTest extends lmbValidationRuleTestCase
Modified: 3.x/trunk/limb/validation/tests/cases/rule/lmbUrlRuleTest.class.php
===================================================================
--- 3.x/trunk/limb/validation/tests/cases/rule/lmbUrlRuleTest.class.php 2007-11-01 14:17:34 UTC (rev 6481)
+++ 3.x/trunk/limb/validation/tests/cases/rule/lmbUrlRuleTest.class.php 2007-11-02 07:59:36 UTC (rev 6482)
@@ -6,7 +6,6 @@
* @copyright Copyright © 2004-2007 BIT(http://bit-creative.com)
* @license LGPL http://www.gnu.org/copyleft/lesser.html
*/
-require_once(dirname(__FILE__) . '/lmbValidationRuleTestCase.class.php');
lmb_require('limb/validation/src/rule/lmbUrlRule.class.php');
class lmbUrlRuleTest extends lmbValidationRuleTestCase
More information about the limb-svn
mailing list