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.
		
		
		
		
		
			
		
			
				
					
					
						
							108 lines
						
					
					
						
							4.3 KiB
						
					
					
				
			
		
		
	
	
							108 lines
						
					
					
						
							4.3 KiB
						
					
					
				| <?php | |
| namespace yiiunit\framework\validators; | |
|  | |
| use yii\validators\EmailValidator; | |
| use yiiunit\data\validators\models\FakedValidationModel; | |
| use yiiunit\TestCase; | |
|  | |
| /** | |
|  * EmailValidatorTest | |
|  * @group validators | |
|  */ | |
| class EmailValidatorTest extends TestCase | |
| { | |
| 	protected function setUp() | |
| 	{ | |
| 		parent::setUp(); | |
| 		$this->mockApplication(); | |
| 	} | |
|  | |
| 	public function testValidateValue() | |
| 	{ | |
| 		$validator = new EmailValidator(); | |
|  | |
| 		$this->assertTrue($validator->validate('sam@rmcreative.ru')); | |
| 		$this->assertTrue($validator->validate('5011@gmail.com')); | |
| 		$this->assertFalse($validator->validate('rmcreative.ru')); | |
| 		$this->assertFalse($validator->validate('Carsten Brandt <mail@cebe.cc>')); | |
| 		$this->assertFalse($validator->validate('"Carsten Brandt" <mail@cebe.cc>')); | |
| 		$this->assertFalse($validator->validate('<mail@cebe.cc>')); | |
| 		$this->assertFalse($validator->validate('info@örtliches.de')); | |
| 		$this->assertFalse($validator->validate('sam@рмкреатиф.ru')); | |
|  | |
| 		$validator->allowName = true; | |
|  | |
| 		$this->assertTrue($validator->validate('sam@rmcreative.ru')); | |
| 		$this->assertTrue($validator->validate('5011@gmail.com')); | |
| 		$this->assertFalse($validator->validate('rmcreative.ru')); | |
| 		$this->assertTrue($validator->validate('Carsten Brandt <mail@cebe.cc>')); | |
| 		$this->assertTrue($validator->validate('"Carsten Brandt" <mail@cebe.cc>')); | |
| 		$this->assertTrue($validator->validate('<mail@cebe.cc>')); | |
| 		$this->assertFalse($validator->validate('info@örtliches.de')); | |
| 		$this->assertFalse($validator->validate('sam@рмкреатиф.ru')); | |
| 		$this->assertFalse($validator->validate('Informtation info@oertliches.de')); | |
| 		$this->assertTrue($validator->validate('test@example.com')); | |
| 		$this->assertTrue($validator->validate('John Smith <john.smith@example.com>')); | |
| 		$this->assertFalse($validator->validate('John Smith <example.com>')); | |
| 	} | |
|  | |
| 	public function testValidateValueIdn() | |
| 	{ | |
| 		if (!function_exists('idn_to_ascii')) { | |
| 			$this->markTestSkipped('Intl extension required'); | |
| 			return; | |
| 		} | |
| 		$validator = new EmailValidator(); | |
| 		$validator->enableIDN = true; | |
|  | |
| 		$this->assertTrue($validator->validate('5011@example.com')); | |
| 		$this->assertTrue($validator->validate('example@äüößìà.de')); | |
| 		$this->assertTrue($validator->validate('example@xn--zcack7ayc9a.de')); | |
| 		$this->assertTrue($validator->validate('info@örtliches.de')); | |
| 		$this->assertTrue($validator->validate('sam@рмкреатиф.ru')); | |
| 		$this->assertTrue($validator->validate('sam@rmcreative.ru')); | |
| 		$this->assertTrue($validator->validate('5011@gmail.com')); | |
| 		$this->assertFalse($validator->validate('rmcreative.ru')); | |
| 		$this->assertFalse($validator->validate('Carsten Brandt <mail@cebe.cc>')); | |
| 		$this->assertFalse($validator->validate('"Carsten Brandt" <mail@cebe.cc>')); | |
| 		$this->assertFalse($validator->validate('<mail@cebe.cc>')); | |
|  | |
| 		$validator->allowName = true; | |
|  | |
| 		$this->assertTrue($validator->validate('info@örtliches.de')); | |
| 		$this->assertTrue($validator->validate('Informtation <info@örtliches.de>')); | |
| 		$this->assertFalse($validator->validate('Informtation info@örtliches.de')); | |
| 		$this->assertTrue($validator->validate('sam@рмкреатиф.ru')); | |
| 		$this->assertTrue($validator->validate('sam@rmcreative.ru')); | |
| 		$this->assertTrue($validator->validate('5011@gmail.com')); | |
| 		$this->assertFalse($validator->validate('rmcreative.ru')); | |
| 		$this->assertTrue($validator->validate('Carsten Brandt <mail@cebe.cc>')); | |
| 		$this->assertTrue($validator->validate('"Carsten Brandt" <mail@cebe.cc>')); | |
| 		$this->assertTrue($validator->validate('<mail@cebe.cc>')); | |
| 		$this->assertTrue($validator->validate('test@example.com')); | |
| 		$this->assertTrue($validator->validate('John Smith <john.smith@example.com>')); | |
| 		$this->assertFalse($validator->validate('John Smith <example.com>')); | |
| 	} | |
|  | |
| 	public function testValidateValueMx() | |
| 	{ | |
| 		$validator = new EmailValidator(); | |
|  | |
| 		$validator->checkDNS = true; | |
| 		$this->assertTrue($validator->validate('5011@gmail.com')); | |
|  | |
| 		$validator->checkDNS = false; | |
| 		$this->assertTrue($validator->validate('test@nonexistingsubdomain.example.com')); | |
| 		$validator->checkDNS = true; | |
| 		$this->assertFalse($validator->validate('test@nonexistingsubdomain.example.com')); | |
| 	} | |
|  | |
| 	public function testValidateAttribute() | |
| 	{ | |
| 		$val = new EmailValidator(); | |
| 		$model = new FakedValidationModel(); | |
| 		$model->attr_email = '5011@gmail.com'; | |
| 		$val->validateAttribute($model, 'attr_email'); | |
| 		$this->assertFalse($model->hasErrors('attr_email')); | |
| 	} | |
| }
 | |
| 
 |