Suralc
11 years ago
2 changed files with 115 additions and 0 deletions
@ -0,0 +1,110 @@
|
||||
<?php |
||||
|
||||
namespace yiiunit\framework\validators; |
||||
|
||||
|
||||
use yii\validators\StringValidator; |
||||
use yiiunit\TestCase; |
||||
|
||||
class StringValidatorTest extends TestCase |
||||
{ |
||||
public function setUp() |
||||
{ |
||||
parent::setUp(); |
||||
$this->mockApplication(); |
||||
} |
||||
|
||||
public function testValidateValue() |
||||
{ |
||||
$val = new StringValidator(); |
||||
$this->assertFalse($val->validateValue(array('not a string'))); |
||||
$this->assertTrue($val->validateValue('Just some string')); |
||||
} |
||||
|
||||
public function testValidateValueLength() |
||||
{ |
||||
$val = new StringValidator(array('length' => 25)); |
||||
$this->assertTrue($val->validateValue(str_repeat('x', 25))); |
||||
$this->assertTrue($val->validateValue(str_repeat('€', 25))); |
||||
$this->assertFalse($val->validateValue(str_repeat('x', 125))); |
||||
$this->assertFalse($val->validateValue('')); |
||||
$val = new StringValidator(array('length' => array(25))); |
||||
$this->assertTrue($val->validateValue(str_repeat('x', 25))); |
||||
$this->assertTrue($val->validateValue(str_repeat('x', 1250))); |
||||
$this->assertFalse($val->validateValue(str_repeat('Ä', 24))); |
||||
$this->assertFalse($val->validateValue('')); |
||||
$val = new StringValidator(array('length' => array(10, 20))); |
||||
$this->assertTrue($val->validateValue(str_repeat('x', 15))); |
||||
$this->assertTrue($val->validateValue(str_repeat('x', 10))); |
||||
$this->assertTrue($val->validateValue(str_repeat('x', 20))); |
||||
$this->assertFalse($val->validateValue(str_repeat('x', 5))); |
||||
$this->assertFalse($val->validateValue(str_repeat('x', 25))); |
||||
$this->assertFalse($val->validateValue('')); |
||||
// make sure min/max are overridden |
||||
$val = new StringValidator(array('length' => array(10, 20), 'min' => 25, 'max' => 35)); |
||||
$this->assertTrue($val->validateValue(str_repeat('x', 15))); |
||||
$this->assertFalse($val->validateValue(str_repeat('x', 30))); |
||||
} |
||||
|
||||
public function testValidateValueMinMax() |
||||
{ |
||||
$val = new StringValidator(array('min' => 10)); |
||||
$this->assertTrue($val->validateValue(str_repeat('x', 10))); |
||||
$this->assertFalse($val->validateValue('xxxx')); |
||||
$val = new StringValidator(array('max' => 10)); |
||||
$this->assertTrue($val->validateValue('xxxx')); |
||||
$this->assertFalse($val->validateValue(str_repeat('y', 20))); |
||||
$val = new StringValidator(array('min' => 10, 'max' => 20)); |
||||
$this->assertTrue($val->validateValue(str_repeat('y', 15))); |
||||
$this->assertFalse($val->validateValue('abc')); |
||||
$this->assertFalse($val->validateValue(str_repeat('b', 25))); |
||||
} |
||||
|
||||
public function testValidateAttribute() |
||||
{ |
||||
$val = new StringValidator(); |
||||
$model = new FakedValidationModel(); |
||||
$model->attr_string = 'a tet string'; |
||||
$val->validateAttribute($model, 'attr_string'); |
||||
$this->assertFalse($model->hasErrors()); |
||||
$val = new StringValidator(array('length' => 20)); |
||||
$model = new FakedValidationModel(); |
||||
$model->attr_string = str_repeat('x', 20); |
||||
$val->validateAttribute($model, 'attr_string'); |
||||
$this->assertFalse($model->hasErrors()); |
||||
$model = new FakedValidationModel(); |
||||
$model->attr_string = 'abc'; |
||||
$val->validateAttribute($model, 'attr_string'); |
||||
$this->assertTrue($model->hasErrors('attr_string')); |
||||
$val = new StringValidator(array('max' => 2)); |
||||
$model = new FakedValidationModel(); |
||||
$model->attr_string = 'a'; |
||||
$val->validateAttribute($model, 'attr_string'); |
||||
$this->assertFalse($model->hasErrors()); |
||||
$model = new FakedValidationModel(); |
||||
$model->attr_string = 'abc'; |
||||
$val->validateAttribute($model, 'attr_string'); |
||||
$this->assertTrue($model->hasErrors('attr_string')); |
||||
} |
||||
|
||||
public function testEnsureMessagesOnInit() |
||||
{ |
||||
$val = new StringValidator(array('min' => 1, 'max' => 2)); |
||||
$this->assertTrue(is_string($val->message)); |
||||
$this->assertTrue(is_string($val->tooLong)); |
||||
$this->assertTrue(is_string($val->tooShort)); |
||||
} |
||||
|
||||
public function testCustomErrorMessageInValidateAttribute() |
||||
{ |
||||
$val = new StringValidator(array( |
||||
'min' => 5, |
||||
'tooShort' => '{attribute} to short. Min is {min}', |
||||
)); |
||||
$model = new FakedValidationModel(); |
||||
$model->attr_string = 'abc'; |
||||
$val->validateAttribute($model, 'attr_string'); |
||||
$this->assertTrue($model->hasErrors('attr_string')); |
||||
$this->assertEquals('attr_string to short. Min is 5', $model->getErrors('attr_string')[0]); |
||||
} |
||||
} |
Loading…
Reference in new issue