You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							71 lines
						
					
					
						
							2.1 KiB
						
					
					
				
			
		
		
	
	
							71 lines
						
					
					
						
							2.1 KiB
						
					
					
				| <?php | |
|  | |
| namespace yiiunit\framework\validators; | |
|  | |
| use DateTime; | |
| use yii\validators\DateValidator; | |
| use yiiunit\data\validators\models\FakedValidationModel; | |
| use yiiunit\TestCase; | |
|  | |
|  | |
| class DateValidatorTest extends TestCase | |
| { | |
| 	protected function setUp() | |
| 	{ | |
| 		parent::setUp(); | |
| 		$this->mockApplication(); | |
| 	} | |
|  | |
| 	public function testEnsureMessageIsSet() | |
| 	{ | |
| 		$val = new DateValidator; | |
| 		$this->assertTrue($val->message !== null && strlen($val->message) > 1); | |
| 	} | |
|  | |
| 	public function testValidateValue() | |
| 	{ | |
| 		$val = new DateValidator; | |
| 		$this->assertFalse($val->validate('3232-32-32')); | |
| 		$this->assertTrue($val->validate('2013-09-13')); | |
| 		$this->assertFalse($val->validate('31.7.2013')); | |
| 		$this->assertFalse($val->validate('31-7-2013')); | |
| 		$this->assertFalse($val->validate(time())); | |
| 		$val->format = 'U'; | |
| 		$this->assertTrue($val->validate(time())); | |
| 		$val->format = 'd.m.Y'; | |
| 		$this->assertTrue($val->validate('31.7.2013')); | |
| 		$val->format = 'Y-m-!d H:i:s'; | |
| 		$this->assertTrue($val->validate('2009-02-15 15:16:17')); | |
| 	} | |
|  | |
| 	public function testValidateAttribute() | |
| 	{ | |
| 		// error-array-add | |
| 		$val = new DateValidator; | |
| 		$model = new FakedValidationModel; | |
| 		$model->attr_date = '2013-09-13'; | |
| 		$val->validateAttribute($model, 'attr_date'); | |
| 		$this->assertFalse($model->hasErrors('attr_date')); | |
| 		$model = new FakedValidationModel; | |
| 		$model->attr_date = '1375293913'; | |
| 		$val->validateAttribute($model, 'attr_date'); | |
| 		$this->assertTrue($model->hasErrors('attr_date')); | |
| 		//// timestamp attribute | |
| 		$val = new DateValidator(['timestampAttribute' => 'attr_timestamp']); | |
| 		$model = new FakedValidationModel; | |
| 		$model->attr_date = '2013-09-13'; | |
| 		$model->attr_timestamp = true; | |
| 		$val->validateAttribute($model, 'attr_date'); | |
| 		$this->assertFalse($model->hasErrors('attr_date')); | |
| 		$this->assertFalse($model->hasErrors('attr_timestamp')); | |
| 		$this->assertEquals( | |
| 			DateTime::createFromFormat($val->format, '2013-09-13')->getTimestamp(), | |
| 			$model->attr_timestamp | |
| 		); | |
| 		$val = new DateValidator(); | |
| 		$model = FakedValidationModel::createWithAttributes(['attr_date' => []]); | |
| 		$val->validateAttribute($model, 'attr_date'); | |
| 		$this->assertTrue($model->hasErrors('attr_date')); | |
|  | |
| 	} | |
| }
 | |
| 
 |