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.');
  }
}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc