コード例 #1
0
ファイル: ClientTest.php プロジェクト: NicolasSchmutz/cm
 public function testAddSale()
 {
     $googleAnalytics = new CMService_GoogleAnalytics_Client('');
     $environment = new CM_Frontend_Environment();
     $js = $googleAnalytics->getJs($environment);
     $this->assertNotContains('ga("require", "ecommerce")', $js);
     $this->assertNotContains('ecommerce:addTransaction', $js);
     $this->assertNotContains('ecommerce:addItem', $js);
     $this->assertNotContains('ecommerce:send', $js);
     $googleAnalytics->addSale('t123', 'p123', 1.23);
     $js = $googleAnalytics->getJs($environment);
     $this->assertContains('ga("require", "ecommerce")', $js);
     $this->assertSame(1, substr_count($js, 'ga("ecommerce:addTransaction"'));
     $this->assertSame(1, substr_count($js, 'ga("ecommerce:addItem"'));
     $this->assertSame(1, substr_count($js, 'ga("ecommerce:send");'));
     $this->assertContains('ga("ecommerce:addTransaction", {"id":"t123","revenue":1.23});', $js);
     $this->assertContains('ga("ecommerce:addItem", {"id":"t123","name":"product-p123","sku":"p123","price":1.23,"quantity":1});', $js);
     $googleAnalytics->addSale('t123', 'p456', 4.56);
     $js = $googleAnalytics->getJs($environment);
     $this->assertSame(1, substr_count($js, 'ga("ecommerce:addTransaction"'));
     $this->assertSame(2, substr_count($js, 'ga("ecommerce:addItem"'));
     $this->assertSame(1, substr_count($js, 'ga("ecommerce:send");'));
     $this->assertContains('ga("ecommerce:addTransaction", {"id":"t123","revenue":5.79});', $js);
     $this->assertContains('ga("ecommerce:addItem", {"id":"t123","name":"product-p123","sku":"p123","price":1.23,"quantity":1});', $js);
     $this->assertContains('ga("ecommerce:addItem", {"id":"t123","name":"product-p456","sku":"p456","price":4.56,"quantity":1});', $js);
     $googleAnalytics->addSale('t789', 'p789', 7.89);
     $js = $googleAnalytics->getJs($environment);
     $this->assertSame(2, substr_count($js, 'ga("ecommerce:addTransaction"'));
     $this->assertSame(3, substr_count($js, 'ga("ecommerce:addItem"'));
     $this->assertSame(1, substr_count($js, 'ga("ecommerce:send");'));
     $this->assertContains('ga("ecommerce:addTransaction", {"id":"t123","revenue":5.79});', $js);
     $this->assertContains('ga("ecommerce:addItem", {"id":"t123","name":"product-p123","sku":"p123","price":1.23,"quantity":1});', $js);
     $this->assertContains('ga("ecommerce:addItem", {"id":"t123","name":"product-p456","sku":"p456","price":4.56,"quantity":1});', $js);
     $this->assertContains('ga("ecommerce:addTransaction", {"id":"t789","revenue":7.89});', $js);
     $this->assertContains('ga("ecommerce:addItem", {"id":"t789","name":"product-p789","sku":"p789","price":7.89,"quantity":1});', $js);
 }