public function testTrackPageView() { $viewer = CMTest_TH::createUser(); $environment = new CM_Frontend_Environment(CM_Site_Abstract::factory(), $viewer); $client = new CMService_AdWords_Client(); $pushConversion = new ReflectionMethod($client, '_pushConversion'); $pushConversion->setAccessible(true); $pushConversion->invoke($client, $viewer, CMService_AdWords_Conversion::fromJson('{"google_conversion_id":123456,"google_conversion_language":"en","google_conversion_format":"1","google_conversion_color":"666666","google_conversion_label":"label","google_remarketing_only":true,"google_conversion_value":123,"google_conversion_currency":"USD","google_custom_params":{"a":1,"b":2}}')); $pushConversion->invoke($client, $viewer, CMService_AdWords_Conversion::fromJson('{"google_conversion_id":789}')); $this->assertSame('', $client->getJs()); $this->assertSame(<<<EOD <script type="text/javascript" src="//www.googleadservices.com/pagead/conversion_async.js" charset="utf-8"></script> EOD , $client->getHtml($environment)); $client->trackPageView($environment, '/'); $this->assertSame(<<<EOD window.google_trackConversion({"google_conversion_id":123456,"google_conversion_language":"en","google_conversion_format":"1","google_conversion_color":"666666","google_conversion_label":"label","google_remarketing_only":true,"google_conversion_value":123,"google_conversion_currency":"USD","google_custom_params":{"a":1,"b":2}});window.google_trackConversion({"google_conversion_id":789}); EOD , $client->getJs()); $this->assertSame(<<<EOD <script type="text/javascript" src="//www.googleadservices.com/pagead/conversion_async.js" charset="utf-8"></script><script type="text/javascript"> /* <![CDATA[ */ window.google_trackConversion({"google_conversion_id":123456,"google_conversion_language":"en","google_conversion_format":"1","google_conversion_color":"666666","google_conversion_label":"label","google_remarketing_only":true,"google_conversion_value":123,"google_conversion_currency":"USD","google_custom_params":{"a":1,"b":2}});window.google_trackConversion({"google_conversion_id":789}); //]]> </script> EOD , $client->getHtml($environment)); }
/** * @param CM_Model_User $user * @param CMService_AdWords_Conversion $conversion */ protected function _pushConversion(CM_Model_User $user, CMService_AdWords_Conversion $conversion) { $conversionJson = $conversion->toJson(); $this->_pushTrackingData($user, ['conversion' => $conversionJson]); }
/** * @param array $conversionData * @return CMService_AdWords_Conversion */ public static function fromArray(array $conversionData) { $conversion = new CMService_AdWords_Conversion(); $conversion->setId(isset($conversionData['google_conversion_id']) ? $conversionData['google_conversion_id'] : null); $conversion->setLanguage(isset($conversionData['google_conversion_language']) ? $conversionData['google_conversion_language'] : null); $conversion->setFormat(isset($conversionData['google_conversion_format']) ? $conversionData['google_conversion_format'] : null); $conversion->setColor(isset($conversionData['google_conversion_color']) ? $conversionData['google_conversion_color'] : null); $conversion->setLabel(isset($conversionData['google_conversion_label']) ? $conversionData['google_conversion_label'] : null); $conversion->setRemarketingOnly(isset($conversionData['google_remarketing_only']) ? $conversionData['google_remarketing_only'] : null); $conversion->setConversionValue(isset($conversionData['google_conversion_value']) ? $conversionData['google_conversion_value'] : null); $conversion->setConversionCurrency(isset($conversionData['google_conversion_currency']) ? $conversionData['google_conversion_currency'] : null); $conversion->setCustomParameterList(isset($conversionData['google_custom_params']) ? $conversionData['google_custom_params'] : null); return $conversion; }
public function testFromJson() { $conversion = CMService_AdWords_Conversion::fromJson('{}'); $this->assertSame(null, $conversion->getId()); $this->assertSame(null, $conversion->getLanguage()); $this->assertSame(null, $conversion->getFormat()); $this->assertSame(null, $conversion->getColor()); $this->assertSame(null, $conversion->getLabel()); $this->assertSame(null, $conversion->getRemarketingOnly()); $this->assertSame(null, $conversion->getConversionValue()); $this->assertSame(null, $conversion->getConversionCurrency()); $this->assertSame(null, $conversion->getCustomParameterList()); $conversion = CMService_AdWords_Conversion::fromJson(<<<EOD { "google_conversion_id": 123456, "google_conversion_language": "en", "google_conversion_format": "1", "google_conversion_color": "666666", "google_conversion_label": "label", "google_remarketing_only": true, "google_conversion_value": 123, "google_conversion_currency": "USD", "google_custom_params": { "a": 1, "b": 2 } } EOD ); $this->assertSame(123456, $conversion->getId()); $this->assertSame('en', $conversion->getLanguage()); $this->assertSame('1', $conversion->getFormat()); $this->assertSame('666666', $conversion->getColor()); $this->assertSame('label', $conversion->getLabel()); $this->assertSame(true, $conversion->getRemarketingOnly()); $this->assertSame(123.0, $conversion->getConversionValue()); $this->assertSame('USD', $conversion->getConversionCurrency()); $this->assertSame(['a' => 1, 'b' => 2], $conversion->getCustomParameterList()); }