[ Index ]

PHP Cross Reference of Limb3

title

Body

[close]

/validation/tests/cases/rule/ -> lmbDomainRuleTest.class.php (source)

   1  <?php
   2  /*
   3   * Limb PHP Framework
   4   *
   5   * @link http://limb-project.com 
   6   * @copyright  Copyright &copy; 2004-2007 BIT(http://bit-creative.com)
   7   * @license    LGPL http://www.gnu.org/copyleft/lesser.html 
   8   */
   9  lmb_require(dirname(__FILE__) . '/lmbValidationRuleTestCase.class.php');
  10  lmb_require('limb/validation/src/rule/lmbDomainRule.class.php');
  11  
  12  class lmbDomainRuleTest extends lmbValidationRuleTestCase
  13  {
  14    function testDomainRule()
  15    {
  16      $rule = new lmbDomainRule('testfield');
  17  
  18      $dataspace = new lmbSet(array('testfield' => 'sourceforge.net'));
  19  
  20      $this->error_list->expectNever('addError');
  21  
  22      $rule->validate($dataspace, $this->error_list);
  23    }
  24  
  25    function testDomainRuleBlank()
  26    {
  27      $rule = new lmbDomainRule('testfield');
  28  
  29      $dataspace = new lmbSet(array('testfield' => ''));
  30  
  31      $this->error_list->expectNever('addError');
  32  
  33      $rule->validate($dataspace, $this->error_list);
  34    }
  35  
  36    function testDomainRuleBadCharacters()
  37    {
  38      $rule = new lmbDomainRule('testfield');
  39  
  40      $dataspace = new lmbSet(array('testfield' => 'source#&%forge.net'));
  41  
  42      $this->error_list->expectOnce('addError',
  43                                    array(lmb_i18n('{Field} must contain only letters, numbers, hyphens, and periods.', 'validation'),
  44                                          array('Field'=>'testfield'),
  45                                          array()));
  46  
  47      $rule->validate($dataspace, $this->error_list);
  48    }
  49  
  50    function testDomainRuleDoubleHyphens()
  51    {
  52      $rule = new lmbDomainRule('testfield');
  53  
  54      $dataspace = new lmbSet(array('testfield' => 'source--forge.net'));
  55  
  56      $this->error_list->expectOnce('addError',
  57                                    array(lmb_i18n('{Field} may not contain double hyphens (--).', 'validation'),
  58                                          array('Field'=>'testfield'),
  59                                          array()));
  60  
  61      $rule->validate($dataspace, $this->error_list);
  62    }
  63  
  64    function testDomainRuleTooLarge()
  65    {
  66      $rule = new lmbDomainRule('testfield');
  67  
  68      $segment = "abcdefg-hijklmnop-qrs-tuv-wx-yz-ABCDEFG-HIJKLMNOP-QRS-TUV-WX-YZ-0123456789";
  69  
  70      $dataspace = new lmbSet();
  71      $dataspace->set('testfield', $segment . '.net');
  72  
  73      $this->error_list->expectOnce('addError',
  74                                    array(lmb_i18n('{Field} segment {segment} is too large (it must be 63 characters or less).', 'validation'),
  75                                          array('Field'=>'testfield'),
  76                                          array('segment'=>$segment)));
  77  
  78      $rule->validate($dataspace, $this->error_list);
  79    }
  80  
  81    function testDomainHyphenBegin()
  82    {
  83      $rule = new lmbDomainRule('testfield');
  84  
  85      $segment = "-sourceforge";
  86  
  87      $dataspace = new lmbSet();
  88      $dataspace->set('testfield', $segment . '.net');
  89  
  90      $this->error_list->expectOnce('addError',
  91                                    array(lmb_i18n('{Field} segment {segment} may not begin or end with a hyphen.', 'validation'),
  92                                          array('Field'=>'testfield'),
  93                                          array('segment'=>$segment)));
  94  
  95      $rule->validate($dataspace, $this->error_list);
  96    }
  97  
  98    function testDomainRuleHyphenEnd()
  99    {
 100      $rule = new lmbDomainRule('testfield');
 101  
 102      $segment = "sourceforge-";
 103  
 104      $dataspace = new lmbSet();
 105      $dataspace->set('testfield', $segment . '.net');
 106  
 107      $this->error_list->expectOnce('addError',
 108                                    array(lmb_i18n('{Field} segment {segment} may not begin or end with a hyphen.', 'validation'),
 109                                          array('Field'=>'testfield'),
 110                                          array('segment'=>$segment)));
 111  
 112      $rule->validate($dataspace, $this->error_list);
 113    }
 114  
 115    function testDomainRuleCombination()
 116    {
 117      $rule = new lmbDomainRule('testfield');
 118  
 119      $dataspace = new lmbSet();
 120      $dataspace->set('testfield', '.n..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.');
 121  
 122      $this->error_list->expectCallCount('addError', 4);
 123  
 124      $this->error_list->expectArgumentsAt(0,
 125                                          'addError',
 126                                           array(lmb_i18n('{Field} cannot start with a period.', 'validation'),
 127                                                 array('Field'=>'testfield'),
 128                                                 array()));
 129  
 130      $this->error_list->expectArgumentsAt(1,
 131                                          'addError',
 132                                           array(lmb_i18n('{Field} cannot end with a period.', 'validation'),
 133                                                 array('Field'=>'testfield'),
 134                                                 array()));
 135  
 136      $this->error_list->expectArgumentsAt(2,
 137                                          'addError',
 138                                           array(lmb_i18n('{Field} may not contain double periods (..).', 'validation'),
 139                                                 array('Field'=>'testfield'),
 140                                                 array()));
 141  
 142      $this->error_list->expectArgumentsAt(3,
 143                                          'addError',
 144                                          array(lmb_i18n('{Field} segment {segment} is too large (it must be 63 characters or less).', 'validation'),
 145                                                array('Field'=>'testfield'),
 146                                                array('segment' => 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')));
 147  
 148      $rule->validate($dataspace, $this->error_list);
 149    }
 150  
 151    function testDomainRuleDoubleDomain()
 152    {
 153      $rule = new lmbDomainRule('testfield');
 154  
 155      $dataspace = new lmbSet();
 156      $dataspace->set('testfield', 'microsoft.co.uk');
 157  
 158      $this->error_list->expectNever('addError');
 159  
 160      $rule->validate($dataspace, $this->error_list);
 161    }
 162  
 163    function testDomainRuleLocalDomain()
 164    {
 165      $rule = new lmbDomainRule('testfield');
 166  
 167      $dataspace = new lmbSet();
 168      $dataspace->set('testfield', 'localhost');
 169  
 170      $this->error_list->expectNever('addError');
 171  
 172      $rule->validate($dataspace, $this->error_list);
 173    }
 174  }
 175  ?>


Generated: Tue Dec 2 03:54:09 2008 Cross-referenced by PHPXref 0.7