piwik_basic.test in Piwik Web Analytics 6
Test file for Piwik module.
File
tests/piwik_basic.testView source
<?php
/**
* @file
* Test file for Piwik module.
*/
class PiwikBasicTest extends DrupalWebTestCase {
public static function getInfo() {
return array(
'name' => t('Piwik basic tests'),
'desc' => t('Test basic Piwik module functionality.'),
'group' => 'Piwik',
);
}
function setUp() {
parent::setUp('piwik');
$permissions = array(
'administer piwik',
);
// User to set up google_analytics.
$user = $this
->drupalCreateUser($permissions);
$this
->drupalLogin($user);
}
function testPiwik() {
// Check for setting page's presence.
$this
->drupalGet('admin/settings/piwik');
$this
->assertRaw(t('Piwik site ID'), "[testPiwik]: Settings page displayed.");
// Check for account code validation.
$edit['piwik_site_id'] = $this
->randomName(2);
$this
->drupalPost('admin/settings/piwik', $edit, 'Save configuration');
$this
->assertRaw(t('A valid Piwik site ID is an integer only.'), "[testPiwik]: Account number validated.");
}
function testPiwikTracking() {
// Set visibility to hide tracking code on admin page only,
// track authenticated users.
variable_set('piwik_visibility', 0);
variable_set('piwik_pages', "admin*");
variable_set('piwik_roles', array(
DRUPAL_AUTHENTICATED_RID => DRUPAL_AUTHENTICATED_RID,
));
$ua_code = '1';
variable_set('piwik_account', $ua_code);
// Check tracking code visibility.
$this
->drupalGet('');
$this
->assertRaw($ua_code, '[testPiwikTracking]: Tracking code is displayed for authenticated.');
/* Sample JS code as added to page:
<script type="text/javascript">
var pkBaseURL = (("https:" == document.location.protocol) ? "https://{$piwikUrl}" : "http://{$piwikUrl}");
document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E"));
</script><script type="text/javascript">
try {
var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", {$idSite});
piwikTracker.trackPageView();
piwikTracker.enableLinkTracking();
} catch(err) {}
</script>
*/
// Test whether tracking code uses latest JS.
$this
->drupalGet('');
$this
->assertRaw('/piwik.php', '[testPiwikTracking]: Tracking code found.');
// Test whether tracking code display is properly flipped.
variable_set('piwik_visibility', 1);
$this
->drupalGet('admin');
$this
->assertRaw($ua_code, '[testPiwikTracking]: Tracking code is displayed on admin page.');
$this
->drupalGet('admin/settings/piwik');
// Checking for tracking code URI here, as $ua_code is displayed in the form.
$this
->assertRaw('/piwik.php', '[testPiwikTracking]: Tracking code is displayed on admin subpage.');
$this
->drupalGet('');
$this
->assertNoRaw('/piwik.php', '[testPiwikTracking]: Tracking code is not displayed on front page.');
// Test whether tracking code is not display for anonymous.
$this
->drupalGet('logout');
$this
->drupalGet('');
$this
->assertNoRaw('/piwik.php', '[testPiwikTracking]: Tracking code is not displayed for anonymous.');
}
}
Classes
Name | Description |
---|---|
PiwikBasicTest | @file Test file for Piwik module. |