/** * @covers ::getCampaign * @covers ::setCampaign * @covers ::__construct * @covers ::getAdditionalCampaigns * @covers ::setAdditionalCampaigns */ public function test_construct_getters_and_setters($value = '') { $google_campaign = new GoogleCampaignPlugin(['utm_campaign' => 'newsletter', 'utm_source' => 'clippings', 'utm_medium' => 'email', 'utm_content' => 'main']); $this->assertEquals(['utm_campaign' => 'newsletter', 'utm_source' => 'clippings', 'utm_medium' => 'email', 'utm_content' => 'main'], $google_campaign->getCampaign()); $google_campaign->setCampaign(['utm_source' => 'my_general_source']); $this->assertEquals(['utm_source' => 'my_general_source'], $google_campaign->getCampaign()); $google_campaign->setAdditionalCampaigns(['share' => ['utm_source' => 'my_source']]); $this->assertEquals(['share' => ['utm_source' => 'my_source']], $google_campaign->getAdditionalCampaigns()); }
/** * * @param Swift_Events_SendEvent $event */ public function beforeSendPerformed(Swift_Events_SendEvent $event) { $message = $event->getMessage(); if ($message->getContentType() === 'text/html') { $html = GoogleCampaignPlugin::embedCampaigns($message->getBody(), $this->getCampaign(), $this->getAdditionalCampaigns()); $message->setBody($html); } foreach ($message->getChildren() as $part) { if (strpos($part->getContentType(), 'text/html') !== false) { $html = GoogleCampaignPlugin::embedCampaigns($part->getBody(), $this->getCampaign(), $this->getAdditionalCampaigns()); $part->setBody($html); } } }