/** * 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'); }