Example #1
0
 /**
  * Test injecting a custom validator.
  */
 public function testCustomValidator()
 {
     //Inject a one-off custom validator
     $this->assertTrue(PHPMailer::validateAddress('*****@*****.**', function ($address) {
         return strpos($address, '@') !== false;
     }), 'Custom validator false negative');
     $this->assertFalse(PHPMailer::validateAddress('userexample.com', function ($address) {
         return strpos($address, '@') !== false;
     }), 'Custom validator false positive');
     //Set the default validator to an injected function
     PHPMailer::$validator = function ($address) {
         return '*****@*****.**' === $address;
     };
     $this->assertTrue($this->Mail->addAddress('*****@*****.**'), 'Custom default validator false negative');
     $this->assertFalse($this->Mail->addAddress('*****@*****.**'), 'Custom default validator false positive');
     //Set default validator to PHP built-in
     PHPMailer::$validator = 'php';
     $this->assertFalse($this->Mail->addAddress('first.last@example.123'), 'PHP validator not behaving as expected');
 }