debian-mirror-gitlab/snowplow-javascript-tracker/tests/pages/integration-template.html

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

158 lines
4.2 KiB
HTML
Raw Permalink Normal View History

2020-04-13 14:06:41 +05:30
<!DOCTYPE html>
<html>
<head>
<title>Integration test page</title>
</head>
<body>
<p id="title">Page for sending requests to request_recorder</p>
<script>
document.body.className += ' loaded';
</script>
<script>
;(function(p,l,o,w,i,n,g){if(!p[i]){p.GlobalSnowplowNamespace=p.GlobalSnowplowNamespace||[];
p.GlobalSnowplowNamespace.push(i);p[i]=function(){(p[i].q=p[i].q||[]).push(arguments)
};p[i].q=p[i].q||[];n=l.createElement(o);g=l.getElementsByTagName(o)[0];n.async=1;
n.src=w;g.parentNode.insertBefore(n,g)}}(window,document,"script","./snowplow.js","snowplow"));
// Taken from a random environment variable
var collector_endpoint = '<%= subdomain %>' + '.ngrok.io';
window.snowplow('newTracker', 'cf', collector_endpoint, {
encodeBase64: true,
appId: 'CFe23a',
platform: 'mob',
contexts: {
webPage: true
}
});
// Add a global context
var geolocationContext = {
schema: 'iglu:com.snowplowanalytics.snowplow/geolocation_context/jsonschema/1-1-0',
data: {
'latitude': 40.0,
'longitude' : 55.1
}
};
function eventTypeContextGenerator(args) {
var context = {};
context['schema'] = 'iglu:com.snowplowanalytics.snowplow/mobile_context/jsonschema/1-0-1';
context['data'] = {};
context['data']['osType'] = 'ubuntu';
context['data']['osVersion'] = '2018.04';
context['data']['deviceManufacturer'] = 'ASUS';
context['data']['deviceModel'] = String(args['eventType']);
return context;
}
// A filter that will only attach contexts to structured events
function structuredEventFilter(args) {
return args['eventType'] === 'se';
}
function erroneousContextGenerator(args) {
return {};
}
window.snowplow('addGlobalContexts', [erroneousContextGenerator]);
window.snowplow('addGlobalContexts', [[structuredEventFilter, [eventTypeContextGenerator, geolocationContext]]]);
window.snowplow('setUserId', 'Malcolm');
window.snowplow('trackPageView', 'My Title', [ // Auto-set page title; add page context
{
schema: "iglu:com.example_company/user/jsonschema/2-0-0",
data: {
userType: 'tester'
}
}
]);
// This should have different pageViewId in web_page context
window.snowplow('trackPageView');
window.snowplow('trackStructEvent', 'Mixes', 'Play', 'MRC/fabric-0503-mix', '', '0.0');
window.snowplow('trackUnstructEvent', {
schema: 'iglu:com.acme_company/viewed_product/jsonschema/5-0-0',
data: {
productId: 'ASO01043'
}
}, [], {type: 'ttm', value: 1477401868});
var orderId = 'order-123';
window.snowplow('addTrans',
orderId,
'acme',
'8000',
'100',
'50',
'phoenix',
'arizona',
'USA',
'JPY'
);
// addItem might be called for each item in the shopping cart,
// or not at all.
window.snowplow('addItem',
orderId,
'1001',
'Blue t-shirt',
'clothing',
'2000',
'2',
'JPY'
);
// trackTrans sends the transaction to Snowplow tracking servers.
// Must be called last to commit the transaction.
window.snowplow('trackTrans');
var testAcceptRuleSet = {
accept: ['iglu:com.acme_company/*/jsonschema/*-*-*']
};
var testRejectRuleSet = {
reject: ['iglu:com.acme_company/*/jsonschema/*-*-*']
};
// test context rulesets
window.snowplow('addGlobalContexts', [[testAcceptRuleSet, [eventTypeContextGenerator, geolocationContext]]]);
window.snowplow('trackUnstructEvent', {
schema: 'iglu:com.acme_company/viewed_product/jsonschema/5-0-0',
data: {
productId: 'ASO01042'
}
}, [], {type: 'ttm', value: 1477401869});
window.snowplow('removeGlobalContexts', [[testAcceptRuleSet, [eventTypeContextGenerator, geolocationContext]]]);
window.snowplow('addGlobalContexts', [[testRejectRuleSet, [eventTypeContextGenerator, geolocationContext]]]);
window.snowplow('trackUnstructEvent', {
schema: 'iglu:com.acme_company/viewed_product/jsonschema/5-0-0',
data: {
productId: 'ASO01041'
}
}, [], {type: 'ttm', value: 1477401868});
// track unhandled exception
window.snowplow("enableErrorTracking");
// Test for exception handling
function raiseException() {
notExistentObject.notExistentProperty();
}
setTimeout(raiseException, 2500);
</script>
</body>
</html>