-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtemplate.tpl
More file actions
113 lines (89 loc) · 8.38 KB
/
template.tpl
File metadata and controls
113 lines (89 loc) · 8.38 KB
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
___TERMS_OF_SERVICE___
By creating or modifying this file you agree to Google Tag Manager's Community
Template Gallery Developer Terms of Service available at
https://developers.google.com/tag-manager/gallery-tos (or such other URL as
Google may provide), as modified from time to time.
___INFO___
{
"type": "TAG",
"id": "cvt_temp_public_id",
"version": 1,
"securityGroups": [],
"displayName": "Cside Client-Side Security",
"categories": [
"UTILITY"
],
"brand": {
"id": "brand_cside",
"displayName": "cside",
"thumbnail": "data:image/png;base64,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"
},
"description": "cside monitors third-party scripts running on your website and detects malicious behavior in real time. This tag injects the cside monitoring script.",
"tosAgreed": true,
"containerContexts": [
"WEB"
]
}
___TEMPLATE_PARAMETERS___
[]
___SANDBOXED_JS_FOR_WEB_TEMPLATE___
const injectScript = require('injectScript');
injectScript('https://proxy.csidetm.com/script.js', data.gtmOnSuccess, data.gtmOnFailure, 'cside');
___WEB_PERMISSIONS___
[
{
"instance": {
"key": {
"publicId": "inject_script",
"versionId": "1"
},
"param": [
{
"key": "urls",
"value": {
"type": 2,
"listItem": [
{
"type": 1,
"string": "https://proxy.csidetm.com/*"
}
]
}
}
]
},
"clientAnnotations": {
"isEditedByUser": true
},
"isRequired": true
}
]
___TESTS___
scenarios:
- name: Injects cside script successfully
code: |-
const mockData = {
gtmOnSuccess: () => {},
gtmOnFailure: () => {}
};
mock('injectScript', (url, onSuccess, onFailure, cacheToken) => {
assertThat(url).isEqualTo('https://proxy.csidetm.com/script.js');
assertThat(cacheToken).isEqualTo('cside');
onSuccess();
});
runCode(mockData);
assertApi('gtmOnSuccess').wasCalled();
- name: Calls gtmOnFailure when script fails to load
code: |-
const mockData = {
gtmOnSuccess: () => {},
gtmOnFailure: () => {}
};
mock('injectScript', (url, onSuccess, onFailure, cacheToken) => {
onFailure();
});
runCode(mockData);
assertApi('gtmOnFailure').wasCalled();
___NOTES___
cside - Client-side threat detection and web security.
https://cside.com