baidu_tongji-8.x-1.x-dev/src/BaiduAnalyticsLinksTrackingTest.php
src/BaiduAnalyticsLinksTrackingTest.php
<?php namespace Drupal\baidu_analytics; /** * Test Baidu Analytics tracking of links: download, outbound or email links. */ class BaiduAnalyticsLinksTrackingTest extends BaiduAnalyticsTestCase { /** * Implements DrupalWebTestCase::getInfo(). */ public static function getInfo() { return array( 'name' => 'Baidu Analytics links tracking tests', 'description' => 'Test link tracking configuration settings and ensure the expected Baidu Analytics JavaScript code is generated to allow tracking for <em>download</em>, <em>outbound</em> or <em>email</em> links.', 'group' => 'Baidu Analytics', ); } /** * Ensure expected JavaScript code is generated for tracking links. */ public function testBaiduAnalyticsLinksTracking() { // Initially, all links tracking should be enabled. $this->drupalGet(''); // Ensure baidu_analytics.js is included. $this->assertTrue($this->xpath("//head/script[contains(@src,'baidu_analytics.js')]"), '[testBaiduAnalyticsLinksTracking]: Tracking of links is enabled: baidu_analytics.js is not included in the page.'); // Check download links tracking setting code is displayed correctly. $this->assertRaw('"trackDownload":true,"trackDownloadExtensions":"', '[testBaiduAnalyticsLinksTracking]: Download link tracking and files extensions settings code is correctly displayed.'); $this->assertRaw('"trackDownloadExtensions":"' . BAIDU_ANALYTICS_TRACKFILES_EXTENSIONS . '"', '[testBaiduAnalyticsLinksTracking]: Download extensions setting code is displayed correctly with <em>default list</em> of extensions.'); // Change the list of extensions to be tracked for download links. variable_set('baidu_analytics_trackfiles_extensions', 'test1|test2'); $this->drupalGet(''); $this->assertRaw('"trackDownloadExtensions":"test1|test2"', '[testBaiduAnalyticsLinksTracking]: Download extensions setting code is displayed correctly with <em>overridden list</em> of custom file extensions.'); // Disable tracking of download links. variable_set('baidu_analytics_trackfiles', FALSE); $this->drupalGet(''); // Check download links tracking setting code is not displayed. $this->assertNoRaw('"trackDownload":true', '[testBaiduAnalyticsLinksTracking]: Download link tracking is disabled and settings code is not displayed.'); $this->assertNoRaw('"trackDownloadExtensions":', '[testBaiduAnalyticsLinksTracking]: Download extensions setting code is not displayed because tracking of downloads is disabled.'); // Check email links tracking setting code is displayed correctly. $this->assertRaw('"trackMailto":true', '[testBaiduAnalyticsLinksTracking]: Email links tracking setting code is correctly displayed.'); // Disable tracking of email links. variable_set('baidu_analytics_trackmailto', FALSE); $this->drupalGet(''); // Check email links tracking setting code is not displayed. $this->assertNoRaw('"trackMailto":true', '[testBaiduAnalyticsLinksTracking]: Email links tracking setting code is not displayed because it is disabled.'); // Check outbound links tracking setting code is displayed correctly. $this->assertRaw('"trackOutbound":true', '[testBaiduAnalyticsLinksTracking]: Outbound links tracking setting code is correctly displayed.'); // Check download links tracking setting code is not displayed. $this->assertNoRaw('"trackDownloadExtensions":', '[testBaiduAnalyticsLinksTracking]: Download extensions setting code is not displayed because tracking of downloads is disabled.'); // Disable tracking of outbound links: Link tracking completely disabled. variable_set('baidu_analytics_trackoutbound', FALSE); $this->drupalGet(''); // Check outbound links tracking setting code is not displayed. $this->assertNoRaw('"trackOutbound":true', '[testBaiduAnalyticsLinksTracking]: Outbound links tracking setting code is not displayed because outbound links tracking is disabled.'); // Check email links tracking setting code is displayed correctly. $this->assertNoRaw('"trackDownloadExtensions":', '[testBaiduAnalyticsLinksTracking]: Download extensions setting code is not displayed because tracking of downloads is disabled.'); // Ensure the baidu_analytics.js JavaScript file is not included. $this->drupalGet(''); $this->assertFalse($this->xpath("//head/script[contains(@src,'baidu_analytics.js')]"), '[testBaiduAnalyticsLinksTracking]: Tracking of links is disabled: baidu_analytics.js is not included in the page.'); } }