config = new FakeConfig(['General' => array('piwik_professional_support_ads_enabled' => '1')]); $this->pluginManager = new Manager(); $this->advertising = $this->buildAdvertising($this->config); } public function testAreAdsForProfessionalServicesEnabledActuallyEnabled() { $enabled = $this->advertising->areAdsForProfessionalServicesEnabled(); $this->assertTrue($enabled); } public function testAreAdsForProfessionalServicesEnabledDisabled() { $this->config->General = ['piwik_professional_support_ads_enabled' => '0']; $enabled = $this->advertising->areAdsForProfessionalServicesEnabled(); $this->assertFalse($enabled); } public function testAreAdsForProfessionalServicesEnabledUsingPreviousSettingName() { $this->config->General = ['piwik_pro_ads_enabled' => '1']; $enabled = $this->advertising->areAdsForProfessionalServicesEnabled(); $this->assertTrue($enabled); } public function testShouldBeEnabledByDefault() { $enabled = $this->buildAdvertising(Config::getInstance()); $this->assertTrue($enabled->areAdsForProfessionalServicesEnabled()); } public function testAddPromoCampaignParametersToUrlWithoutContentWithoutQuery() { $link = $this->advertising->addPromoCampaignParametersToUrl($this->exampleUrl, 'MyName', 'Installation_Start', '', 'MySource'); $this->assertSame($this->exampleUrl . '?mtm_campaign=MyName&mtm_source=MySource&mtm_medium=Installation_Start', $link); } public function testAddPromoCampaignParametersToUrlWithContentWithoutQuery() { $link = $this->advertising->addPromoCampaignParametersToUrl( $this->exampleUrl, 'MyName', 'Installation_Start', 'MyContent', 'MySource' ); $this->assertSame($this->exampleUrl . '?mtm_campaign=MyName&mtm_source=MySource&mtm_medium=Installation_Start.MyContent', $link); } public function testAddPromoCampaignParametersToUrlWithQuery() { $url = $this->exampleUrl . '?foo=bar'; $link = $this->advertising->addPromoCampaignParametersToUrl($url, 'MyName', 'Installation_Start', '', 'MySource'); $this->assertSame($url . '&mtm_campaign=MyName&mtm_source=MySource&mtm_medium=Installation_Start', $link); } private function buildAdvertising($config) { return new Advertising($this->pluginManager, $config); } }