Author: Fabien Potencier
Inheritance: implements Swift_Events_SendListener
 public function testArrayOfRecipientsCanBeExplicitlyDefined()
 {
     $message = Swift_Message::newInstance()->setSubject('...')->setFrom(array('*****@*****.**' => 'John Doe'))->setTo(array('*****@*****.**' => 'Fabien', '*****@*****.**' => 'Chris (To)', '*****@*****.**' => 'Lars (To)'))->setCc(array('*****@*****.**' => 'Fabien', '*****@*****.**' => 'Chris (Cc)', '*****@*****.**' => 'Lars (Cc)'))->setBcc(array('*****@*****.**' => 'Fabien', '*****@*****.**' => 'Chris (Bcc)', '*****@*****.**' => 'John (Bcc)'))->setBody('...');
     $recipients = array('*****@*****.**', '*****@*****.**');
     $patterns = array('/^.*@internal.[a-z]+$/');
     $plugin = new Swift_Plugins_RedirectingPlugin($recipients, $patterns);
     $evt = $this->_createSendEvent($message);
     $plugin->beforeSendPerformed($evt);
     $this->assertEquals($message->getTo(), array('*****@*****.**' => 'Fabien', '*****@*****.**' => 'Lars (To)', '*****@*****.**' => null));
     $this->assertEquals($message->getCc(), array('*****@*****.**' => 'Fabien', '*****@*****.**' => 'Lars (Cc)'));
     $this->assertEquals($message->getBcc(), array('*****@*****.**' => 'Fabien'));
 }
 public function testPluginChangesRecipients()
 {
     $message = Swift_Message::newInstance()->setSubject('...')->setFrom(array('*****@*****.**' => 'John Doe'))->setTo($to = array('*****@*****.**' => 'Fabien (To)', '*****@*****.**' => 'Chris (To)'))->setCc($cc = array('*****@*****.**' => 'Fabien (Cc)', '*****@*****.**' => 'Chris (Cc)'))->setBcc($bcc = array('*****@*****.**' => 'Fabien (Bcc)', '*****@*****.**' => 'Chris (Bcc)'))->setBody('...');
     $plugin = new Swift_Plugins_RedirectingPlugin('*****@*****.**');
     $evt = $this->_createSendEvent($message);
     $plugin->beforeSendPerformed($evt);
     $this->assertEqual($message->getTo(), array('*****@*****.**' => ''));
     $this->assertEqual($message->getCc(), array());
     $this->assertEqual($message->getBcc(), array());
     $plugin->sendPerformed($evt);
     $this->assertEqual($message->getTo(), $to);
     $this->assertEqual($message->getCc(), $cc);
     $this->assertEqual($message->getBcc(), $bcc);
 }
 public function testPluginRespectsAWhitelistOfPatterns()
 {
     $message = Swift_Message::newInstance()->setSubject('...')->setFrom(array('*****@*****.**' => 'John Doe'))->setTo($to = array('*****@*****.**' => 'Fabien (To)', '*****@*****.**' => 'Chris (To)', '*****@*****.**' => 'Lars (To)'))->setCc($cc = array('*****@*****.**' => 'Fabien (Cc)', '*****@*****.**' => 'Chris (Cc)', '*****@*****.**' => 'Lars (Cc)'))->setBcc($bcc = array('*****@*****.**' => 'Fabien (Bcc)', '*****@*****.**' => 'Chris (Bcc)', '*****@*****.**' => 'John (Bcc)'))->setBody('...');
     $recipient = '*****@*****.**';
     $patterns = array('/^.*@internal.[a-z]+$/', '/^john-.*$/');
     $plugin = new Swift_Plugins_RedirectingPlugin($recipient, $patterns);
     $this->assertEqual($recipient, $plugin->getRecipient());
     $this->assertEqual($plugin->getWhitelist(), $patterns);
     $evt = $this->_createSendEvent($message);
     $plugin->beforeSendPerformed($evt);
     $this->assertEqual($message->getTo(), array('*****@*****.**' => 'Lars (To)', '*****@*****.**' => null));
     $this->assertEqual($message->getCc(), array('*****@*****.**' => 'Lars (Cc)'));
     $this->assertEqual($message->getBcc(), array('*****@*****.**' => 'John (Bcc)'));
     $plugin->sendPerformed($evt);
     $this->assertEqual($message->getTo(), $to);
     $this->assertEqual($message->getCc(), $cc);
     $this->assertEqual($message->getBcc(), $bcc);
 }