File size: 5,339 Bytes
e852054 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 | /*!
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
(function () {
function initAnonymizedTrackers() {
"use strict";
initTrackers(true);
}
function initNotAnonymizedTrackers() {
"use strict";
initTrackers(false);
}
function initTrackers(anonymize) {
"use strict";
piwikUsageTracking.userId = "testuserid";
for (var i = 0; i < piwikUsageTracking.targets.length; i++) {
piwikUsageTracking.targets[i].useAnonymization = anonymize;
}
piwikUsageTracking.initialized = false;
piwikUsageTracking.createTrackersIfNeeded();
}
beforeEach(initAnonymizedTrackers);
describe('AnonymousPiwikUsageMeasurementTracking', function() {
var anonymousDomain = 'http://anonymous.piwikdomain.org';
var trackingDomain = piwikUsageTracking.trackingDomain;
describe('#initialized', function() {
it('should be initialized automatically', function() {
expect(piwikUsageTracking.initialized).to.be.true;
expect(piwikUsageTracking.trackers.length).to.eql(3);
});
it('should be initialized by createTrackers method if not initialized yet', function() {
piwikUsageTracking.initialized = false;
piwikUsageTracking.createTrackersIfNeeded();
expect(piwikUsageTracking.initialized).to.be.true;
expect(piwikUsageTracking.trackers.length).to.eql(3);
});
it('should be initialized by a push method', function() {
piwikUsageTracking.initialized = false;
_paq.push(['getTrackerUrl']);
expect(piwikUsageTracking.initialized).to.be.true;
expect(piwikUsageTracking.trackers.length).to.eql(3);
});
});
describe('#trackers', function() {
it('should have created multiple trackers with correct idSite, domain and custom variables', function() {
var tracker1 = piwikUsageTracking.trackers[0];
var tracker2 = piwikUsageTracking.trackers[1];
var tracker3 = piwikUsageTracking.trackers[2];
expect(tracker1.getTrackerUrl()).to.eql('http://localhost/matomo.php');
expect(tracker1.getSiteId()).to.eql(1);
expect(tracker1.getCustomVariable(1, 'visit')).to.eql(['Access', 'user']);
expect(tracker2.getTrackerUrl()).to.eql('http://127.0.0.1/matomo.php');
expect(tracker2.getSiteId()).to.eql(20);
expect(tracker2.getCustomVariable(1, 'visit')).to.eql(['Access', 'user']);
expect(tracker3.getTrackerUrl()).to.eql('http://localhost/matomo.php');
expect(tracker3.getSiteId()).to.eql(33);
expect(tracker3.getCustomVariable(1, 'visit')).to.eql(['Access', 'user']);
});
it('should anonymize url and referrer by default', function() {
for (var i = 1; i < piwikUsageTracking.trackers.length; i++) {
var tracker = piwikUsageTracking.trackers[i];
var request = tracker.getRequest('');
expect(request).to.contain('&url=http%3A%2F%2Fdemo.matomo.org%2F%3F');
expect(request).to.contain('&_cvar=%7B%221%22%3A%5B%22Access%22%2C%22user%22%5D%7D');
expect(request).to.not.contain('urlref=');
expect(request).to.not.contain('uid=testuserid');
}
});
it('should not anonymize url and referrer', function() {
initNotAnonymizedTrackers();
for (var i = 1; i < piwikUsageTracking.trackers.length; i++) {
var tracker = piwikUsageTracking.trackers[i];
var request = tracker.getRequest('');
expect(request).to.not.contain('&url=http%3A%2F%2Fdemo.matomo.org%2F%3F');
expect(request).to.contain('urlref=');
expect(request).to.contain('uid=testuserid');
}
});
});
describe('_paq.push', function() {
it('should call a method with parameters on all tracker instances', function() {
var tracker1 = piwikUsageTracking.trackers[0];
var tracker2 = piwikUsageTracking.trackers[1];
var tracker3 = piwikUsageTracking.trackers[2];
_paq.push(['setCustomData', 'mykey', 'myvalue']);
expect(tracker1.getCustomData()).to.eql({mykey: 'myvalue'});
expect(tracker2.getCustomData()).to.eql({mykey: 'myvalue'});
expect(tracker3.getCustomData()).to.eql({mykey: 'myvalue'});
});
it('should not fail when calling a non existing tracker method', function() {
_paq.push(['setNotExisTiNGmeThod', 'mykey', 'myvalue']);
});
it('should call a function in the context of tracker', function() {
_paq.push([function () {
expect(this.getSiteId()).to.be.at.least(1);
}]);
});
});
});
})();
|