コード例 #1
0
 public function testSendSingleEmail()
 {
     $mocks = $this->getMockSetup();
     $mocks['baseTemplateMock']->expects($this->exactly(2))->method('renderBlock')->will($this->returnCallback(array($this, 'renderBlockCallback')));
     $mocks['translator']->expects($this->once())->method('getLocale')->will($this->returnValue("en"));
     $mocks['router']->expects($this->exactly(12))->method('generate')->will($this->returnCallback(array($this, 'generateCallback')));
     $azineMailer = new AzineTwigSwiftMailer($mocks['mailer'], $mocks['router'], $mocks['twig'], $mocks['logger'], $mocks['translator'], $mocks['templateProvider'], $mocks['entityManager'], $mocks['parameters']);
     $to = "*****@*****.**";
     $toName = "ToName";
     $params = array("aKey" => "aValue", 'contentItems' => array(array(AzineTemplateProvider::CONTENT_ITEM_MESSAGE_TEMPLATE => array('someOtherKey' => 'someOtherValue'))));
     $template = AzineTemplateProvider::NEWSLETTER_TEMPLATE . ".txt.twig";
     $emailLocale = "en";
     $subject = "custom subject";
     $azineMailer->sendSingleEmail($to, $toName, $subject, $params, $template, $emailLocale);
 }
コード例 #2
0
 public function testSendSingleEmailFails()
 {
     $mocks = array();
     $mocks['mailer'] = $this->getMockBuilder("\\Swift_Mailer")->disableOriginalConstructor()->getMock();
     $mocks['mailer']->expects($this->once())->method('send')->will($this->returnCallback(array($this, 'returnZeroWithFailedAddress')));
     $mocks['router'] = $this->getMockBuilder("Symfony\\Component\\Routing\\Generator\\UrlGeneratorInterface")->disableOriginalConstructor()->getMock();
     $mocks['twig'] = $this->getMockBuilder("\\Twig_Environment")->disableOriginalConstructor()->getMock();
     $mocks['baseTemplateMock'] = $this->getMockBuilder("\\Twig_Template")->disableOriginalConstructor()->setMethods(array('renderBlock'))->getMockForAbstractClass();
     $mocks['twig']->expects($this->once())->method('loadTemplate')->will($this->returnValue($mocks['baseTemplateMock']));
     $mocks['translator'] = $this->getMockBuilder("Symfony\\Bundle\\FrameworkBundle\\Translation\\Translator")->disableOriginalConstructor()->getMock();
     $mocks['translator']->expects($this->any())->method('trans')->will($this->returnValue("azine.translation.mock"));
     $imagesDir = realpath(__DIR__ . "/../../Resources/htmlTemplateImages/");
     $mocks['templateProvider'] = new AzineTemplateProvider($mocks['router'], $mocks['translator'], array(AzineEmailExtension::ALLOWED_IMAGES_FOLDERS => array($imagesDir), AzineEmailExtension::TEMPLATE_IMAGE_DIR => $imagesDir, AzineEmailExtension::TRACKING_PARAM_CAMPAIGN_NAME => "utm_campaign", AzineEmailExtension::TRACKING_PARAM_CAMPAIGN_TERM => "utm_term", AzineEmailExtension::TRACKING_PARAM_CAMPAIGN_SOURCE => "utm_source", AzineEmailExtension::TRACKING_PARAM_CAMPAIGN_MEDIUM => "utm_medium", AzineEmailExtension::TRACKING_PARAM_CAMPAIGN_CONTENT => "utm_content"));
     $this->getMockBuilder("Azine\\EmailBundle\\Services\\AzineTemplateProvider")->disableOriginalConstructor()->getMock();
     $mocks['entityManager'] = $this->getMockBuilder("Doctrine\\ORM\\EntityManager")->disableOriginalConstructor()->getMock();
     $mocks['managerRegistry'] = $this->getMockBuilder("Doctrine\\Common\\Persistence\\ManagerRegistry")->disableOriginalConstructor()->getMock();
     $mocks['managerRegistry']->expects($this->any())->method("getManager")->will($this->returnValue($mocks['entityManager']));
     $mocks['parameters'] = array(AzineEmailExtension::NO_REPLY => array(AzineEmailExtension::NO_REPLY_EMAIL_ADDRESS => '*****@*****.**', AzineEmailExtension::NO_REPLY_EMAIL_NAME => 'no-reply-name'), AzineTemplateProvider::CONTENT_ITEMS => array(0 => array(AzineTemplateProvider::CONTENT_ITEM_MESSAGE_TEMPLATE => array('notification' => array('title' => 'some title', 'created' => new \DateTime('2 hours ago'), 'content' => "some content"))), 1 => array(AzineTemplateProvider::CONTENT_ITEM_MESSAGE_TEMPLATE => array('notification' => array('title' => 'some other title', 'created' => new \DateTime('1 hours ago'), 'content' => "some other content")))), 'logo_png' => $imagesDir . "/logo.png", 'noFile_png' => $imagesDir . "/../../../unallowedFolder/logo.png", 'not_allowed_png' => $imagesDir . "/inexistentFile.png");
     $requestContext = $this->getMockBuilder("Symfony\\Component\\Routing\\RequestContext")->disableOriginalConstructor()->getMock();
     $requestContext->expects($this->once())->method("getHost")->will($this->returnValue("azine.test.host"));
     $mocks['router']->expects($this->once())->method('getContext')->will($this->returnValue($requestContext));
     $mocks['trackingCodeImgBuilder'] = $this->getMockBuilder("Azine\\EmailBundle\\Services\\AzineEmailOpenTrackingCodeBuilder")->setConstructorArgs(array("https://www.google-analytics.com/?tid=blabla", array(AzineEmailExtension::ALLOWED_IMAGES_FOLDERS => array($imagesDir), AzineEmailExtension::TRACKING_PARAM_CAMPAIGN_NAME => "utm_campaign", AzineEmailExtension::TRACKING_PARAM_CAMPAIGN_TERM => "utm_term", AzineEmailExtension::TRACKING_PARAM_CAMPAIGN_SOURCE => "utm_source", AzineEmailExtension::TRACKING_PARAM_CAMPAIGN_MEDIUM => "utm_medium", AzineEmailExtension::TRACKING_PARAM_CAMPAIGN_CONTENT => "utm_content")))->getMock();
     $mocks['baseTemplateMock']->expects($this->exactly(2))->method('renderBlock')->will($this->returnCallback(array($this, 'renderBlockCallback')));
     $mocks['translator']->expects($this->once())->method('getLocale')->will($this->returnValue("en"));
     $mocks['emailTwigExtension'] = $this->getMockBuilder("Azine\\EmailBundle\\Services\\AzineEmailTwigExtension")->disableOriginalConstructor()->getMock();
     $mocks['emailTwigExtension']->expects($this->exactly(1))->method("addCampaignParamsToAllUrls")->will($this->returnArgument(0));
     $azineMailer = new AzineTwigSwiftMailer($mocks['mailer'], $mocks['router'], $mocks['twig'], $mocks['translator'], $mocks['templateProvider'], $mocks['managerRegistry'], $mocks['trackingCodeImgBuilder'], $mocks['emailTwigExtension'], $mocks['parameters']);
     $to = "*****@*****.**";
     $toName = "ToName";
     $params = array("aKey" => "aValue", 'contentItems' => array(array(AzineTemplateProvider::CONTENT_ITEM_MESSAGE_TEMPLATE => array('someOtherKey' => 'someOtherValue'))));
     $template = AzineTemplateProvider::NEWSLETTER_TEMPLATE . ".txt.twig";
     $emailLocale = "en";
     $subject = "custom subject";
     $result = $azineMailer->sendSingleEmail($to, $toName, $subject, $params, $template, $emailLocale);
     $this->assertFalse($result, "expected send to fail");
 }