@duckduckgo/autoconsent 14.67.0 → 14.69.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/AGENTS.md +36 -11
  2. package/CHANGELOG.md +39 -0
  3. package/data/coverage.json +5846 -2663
  4. package/dist/addon-firefox/background.bundle.js +0 -2
  5. package/dist/addon-firefox/compact-rules.json +1 -1
  6. package/dist/addon-firefox/content.bundle.js +17 -5
  7. package/dist/addon-firefox/manifest.json +1 -1
  8. package/dist/addon-firefox/rules.json +1 -1
  9. package/dist/addon-mv3/background.bundle.js +0 -2
  10. package/dist/addon-mv3/compact-rules.json +1 -1
  11. package/dist/addon-mv3/content.bundle.js +17 -5
  12. package/dist/addon-mv3/manifest.json +1 -1
  13. package/dist/addon-mv3/rules.json +1 -1
  14. package/dist/autoconsent.cjs.js +17 -5
  15. package/dist/autoconsent.esm.js +17 -5
  16. package/dist/autoconsent.extra.cjs.js +17 -5
  17. package/dist/autoconsent.extra.esm.js +17 -5
  18. package/dist/autoconsent.playwright.js +17 -5
  19. package/dist/types/eval-snippets.d.ts +0 -2
  20. package/dist/types/heuristics.d.ts +1 -0
  21. package/docs/rule-syntax.md +32 -1
  22. package/lib/eval-snippets.ts +0 -3
  23. package/lib/heuristics.ts +18 -3
  24. package/package.json +1 -1
  25. package/rules/autoconsent/elsevier-pure.json +31 -0
  26. package/rules/autoconsent/facebook.json +21 -7
  27. package/rules/autoconsent/fullertonhotels.com.json +37 -0
  28. package/rules/autoconsent/geni.com.json +8 -5
  29. package/rules/autoconsent/remarkable.com.json +6 -27
  30. package/rules/autoconsent/unicourt.json +5 -5
  31. package/rules/compact-rules.json +1 -1
  32. package/rules/generated/auto_AU_flysaa.com_qsm.json +10 -9
  33. package/rules/generated/auto_DE_immobilien.sparkasse.de_zj7.json +10 -10
  34. package/rules/generated/auto_GB_www2.hm.com_0.json +15 -6
  35. package/rules/rules.json +1 -1
  36. package/tests/elsevier-pure.spec.ts +11 -0
  37. package/tests/fullertonhotels.com.spec.ts +6 -0
  38. package/tests/generated/auto_GB_www2.hm.com_0.spec.ts +16 -0
  39. package/tests-wtr/heuristics/get-actionable-popups.html +24 -0
  40. package/tests-wtr/heuristics/get-actionable-popups.ts +36 -0
  41. package/tests-wtr/heuristics/heuristics-utils.test.ts +43 -0
  42. package/rules/autoconsent/mediavine.json +0 -17
  43. package/rules/autoconsent/national-lottery-co-uk.json +0 -11
  44. package/rules/autoconsent/ouraring.json +0 -36
  45. package/rules/generated/auto_AU_discover.utas.edu.au_k2n.json +0 -37
  46. package/rules/generated/auto_AU_experts.deakin.edu.au_0kw.json +0 -40
  47. package/rules/generated/auto_AU_experts.griffith.edu.au_oi0.json +0 -37
  48. package/rules/generated/auto_AU_fullertonhotels.com_y46.json +0 -40
  49. package/rules/generated/auto_AU_profiles.uts.edu.au_ouv.json +0 -37
  50. package/rules/generated/auto_AU_scholars.latrobe.edu.au_li6.json +0 -40
  51. package/rules/generated/auto_CA_discover.research.utoronto.ca_vtf.json +0 -40
  52. package/rules/generated/auto_CA_remarkable.com_kt9.json +0 -40
  53. package/rules/generated/auto_DE_www2.hm.com_beo.json +0 -40
  54. package/rules/generated/auto_GB_profiles.ucl.ac.uk_lpo.json +0 -40
  55. package/tests/generated/auto_AU_discover.utas.edu.au_k2n.spec.ts +0 -6
  56. package/tests/generated/auto_AU_experts.deakin.edu.au_0kw.spec.ts +0 -6
  57. package/tests/generated/auto_AU_experts.griffith.edu.au_oi0.spec.ts +0 -6
  58. package/tests/generated/auto_AU_fullertonhotels.com_y46.spec.ts +0 -6
  59. package/tests/generated/auto_AU_profiles.uts.edu.au_ouv.spec.ts +0 -6
  60. package/tests/generated/auto_AU_scholars.latrobe.edu.au_li6.spec.ts +0 -6
  61. package/tests/generated/auto_CA_discover.research.utoronto.ca_vtf.spec.ts +0 -6
  62. package/tests/generated/auto_CA_remarkable.com_kt9.spec.ts +0 -2
  63. package/tests/generated/auto_DE_www2.hm.com_beo.spec.ts +0 -6
  64. package/tests/generated/auto_GB_profiles.ucl.ac.uk_lpo.spec.ts +0 -6
  65. package/tests/mediavine.spec.ts +0 -5
  66. package/tests/national-lottery.spec.ts +0 -5
  67. package/tests/ouraring.spec.ts +0 -3
@@ -0,0 +1,11 @@
1
+ import generateCMPTests from '../playwright/runner';
2
+
3
+ generateCMPTests('elsevier-pure', [
4
+ 'https://discover.utas.edu.au/',
5
+ 'https://experts.deakin.edu.au/',
6
+ 'https://experts.griffith.edu.au/',
7
+ 'https://profiles.uts.edu.au/',
8
+ 'https://scholars.latrobe.edu.au/',
9
+ 'https://profiles.ucl.ac.uk/',
10
+ 'https://discover.research.utoronto.ca/',
11
+ ]);
@@ -0,0 +1,6 @@
1
+ import generateCMPTests from '../playwright/runner';
2
+ generateCMPTests('fullertonhotels.com', ['https://www.fullertonhotels.com/', 'https://marriottsalalahresort.com/'], {
3
+ testOptIn: false,
4
+ testSelfTest: false,
5
+ onlyRegions: ['AU'],
6
+ });
@@ -4,3 +4,19 @@ generateCMPTests('auto_GB_www2.hm.com_0', ['https://www2.hm.com/en_gb/index.html
4
4
  testSelfTest: false,
5
5
  onlyRegions: ['GB'],
6
6
  });
7
+ generateCMPTests('auto_GB_www2.hm.com_0', ['https://www2.hm.com/de_de/index.html'], {
8
+ testOptIn: false,
9
+ testSelfTest: false,
10
+ onlyRegions: ['DE'],
11
+ });
12
+ generateCMPTests('auto_GB_www2.hm.com_0', ['https://www2.hm.com/en_us/index.html'], {
13
+ testOptIn: false,
14
+ testSelfTest: false,
15
+ onlyRegions: ['US'],
16
+ });
17
+ generateCMPTests('auto_GB_www2.hm.com_0', ['https://www2.hm.com/en_us/index.html'], {
18
+ testOptIn: false,
19
+ testSelfTest: false,
20
+ onlyRegions: ['US'],
21
+ mobile: true,
22
+ });
@@ -20,6 +20,12 @@
20
20
  position: sticky;
21
21
  top: 0;
22
22
  }
23
+ .popup.dialog-pos {
24
+ position: absolute;
25
+ }
26
+ dialog.popup {
27
+ position: absolute;
28
+ }
23
29
  </style>
24
30
  </head>
25
31
  <body>
@@ -68,5 +74,23 @@
68
74
  <button>Settings</button>
69
75
  <button>Learn More</button>
70
76
  </div>
77
+
78
+ <div id="popup-role-dialog" class="popup dialog-pos" role="dialog">
79
+ <p>We use cookies to improve your experience.</p>
80
+ <button>Accept All</button>
81
+ <button>Reject All</button>
82
+ </div>
83
+
84
+ <div id="popup-aria-modal" class="popup dialog-pos" aria-modal="true">
85
+ <p>We use cookies to improve your experience.</p>
86
+ <button>Accept All</button>
87
+ <button>Reject All</button>
88
+ </div>
89
+
90
+ <dialog id="popup-dialog-element" class="popup">
91
+ <p>We use cookies to improve your experience.</p>
92
+ <button>Accept All</button>
93
+ <button>Reject All</button>
94
+ </dialog>
71
95
  </body>
72
96
  </html>
@@ -67,6 +67,42 @@ describe('getActionablePopups', () => {
67
67
 
68
68
  expect(popups.length).to.equal(0);
69
69
  });
70
+
71
+ it('finds popup with role="dialog"', () => {
72
+ showPopup('popup-role-dialog');
73
+
74
+ const popups = getActionablePopups();
75
+
76
+ expect(popups.length).to.equal(1);
77
+ });
78
+
79
+ it('finds popup with aria-modal="true"', () => {
80
+ showPopup('popup-aria-modal');
81
+
82
+ const popups = getActionablePopups();
83
+
84
+ expect(popups.length).to.equal(1);
85
+ });
86
+
87
+ it('finds open <dialog> element', () => {
88
+ const dialog = document.getElementById('popup-dialog-element') as HTMLDialogElement;
89
+ dialog.show();
90
+ dialog.classList.add('visible');
91
+
92
+ const popups = getActionablePopups();
93
+
94
+ expect(popups.length).to.equal(1);
95
+ dialog.close();
96
+ });
97
+
98
+ it('ignores closed <dialog> element', () => {
99
+ const dialog = document.getElementById('popup-dialog-element') as HTMLDialogElement;
100
+ dialog.classList.add('visible');
101
+
102
+ const popups = getActionablePopups();
103
+
104
+ expect(popups.length).to.equal(0);
105
+ });
70
106
  });
71
107
 
72
108
  describe('button classification', () => {
@@ -7,6 +7,7 @@ import {
7
7
  isDisabled,
8
8
  excludeContainers,
9
9
  getButtonData,
10
+ isDialogLikeElement,
10
11
  } from '../../lib/heuristics';
11
12
 
12
13
  describe('checkHeuristicPatterns', () => {
@@ -151,6 +152,48 @@ describe('isDisabled', () => {
151
152
  });
152
153
  });
153
154
 
155
+ describe('isDialogLikeElement', () => {
156
+ it('returns true for open dialog element', () => {
157
+ const dialog = document.createElement('dialog');
158
+ dialog.setAttribute('open', '');
159
+ expect(isDialogLikeElement(dialog)).to.be.true;
160
+ });
161
+
162
+ it('returns false for closed dialog element', () => {
163
+ const dialog = document.createElement('dialog');
164
+ expect(isDialogLikeElement(dialog)).to.be.false;
165
+ });
166
+
167
+ it('returns true for element with role="dialog"', () => {
168
+ const div = document.createElement('div');
169
+ div.setAttribute('role', 'dialog');
170
+ expect(isDialogLikeElement(div)).to.be.true;
171
+ });
172
+
173
+ it('returns true for element with aria-modal="true"', () => {
174
+ const div = document.createElement('div');
175
+ div.setAttribute('aria-modal', 'true');
176
+ expect(isDialogLikeElement(div)).to.be.true;
177
+ });
178
+
179
+ it('returns false for aria-modal="false"', () => {
180
+ const div = document.createElement('div');
181
+ div.setAttribute('aria-modal', 'false');
182
+ expect(isDialogLikeElement(div)).to.be.false;
183
+ });
184
+
185
+ it('returns false for plain div', () => {
186
+ const div = document.createElement('div');
187
+ expect(isDialogLikeElement(div)).to.be.false;
188
+ });
189
+
190
+ it('returns false for element with unrelated role', () => {
191
+ const div = document.createElement('div');
192
+ div.setAttribute('role', 'button');
193
+ expect(isDialogLikeElement(div)).to.be.false;
194
+ });
195
+ });
196
+
154
197
  describe('excludeContainers', () => {
155
198
  it('returns empty array for empty input', () => {
156
199
  expect(excludeContainers([])).to.have.length(0);
@@ -1,17 +0,0 @@
1
- {
2
- "name": "Mediavine",
3
- "prehideSelectors": ["[data-name=\"mediavine-gdpr-cmp\"]"],
4
- "detectCmp": [{ "exists": "[data-name=\"mediavine-gdpr-cmp\"]" }],
5
- "detectPopup": [{ "wait": 500 }, { "visible": "[data-name=\"mediavine-gdpr-cmp\"]" }],
6
- "optIn": [
7
- {
8
- "waitForThenClick": "[data-name=\"mediavine-gdpr-cmp\"] [format=\"primary\"]"
9
- }
10
- ],
11
- "optOut": [
12
- { "waitForThenClick": "[data-name=\"mediavine-gdpr-cmp\"] [data-view=\"manageSettings\"]" },
13
- { "waitFor": "[data-name=\"mediavine-gdpr-cmp\"] input[type=checkbox]" },
14
- { "eval": "EVAL_MEDIAVINE_0", "optional": true },
15
- { "click": "[data-name=\"mediavine-gdpr-cmp\"] [format=\"secondary\"]" }
16
- ]
17
- }
@@ -1,11 +0,0 @@
1
- {
2
- "name": "national-lottery.co.uk",
3
- "detectCmp": [{ "exists": ".cuk_cookie_consent" }],
4
- "detectPopup": [{ "visible": ".cuk_cookie_consent", "check": "any" }],
5
- "optOut": [
6
- { "click": ".cuk_cookie_consent_manage_pref" },
7
- { "click": ".cuk_cookie_consent_save_pref" },
8
- { "click": ".cuk_cookie_consent_close" }
9
- ],
10
- "optIn": [{ "click": ".cuk_cookie_consent_accept_all" }]
11
- }
@@ -1,36 +0,0 @@
1
- {
2
- "name": "ouraring",
3
- "cosmetic": false,
4
- "runContext": {
5
- "main": true,
6
- "frame": false,
7
- "urlPattern": "^https://ouraring\\.com"
8
- },
9
- "prehideSelectors": [],
10
- "detectCmp": [
11
- {
12
- "exists": "[data-cy=\"consent-manager-banner\"]"
13
- }
14
- ],
15
- "detectPopup": [
16
- {
17
- "visible": "[data-cy=\"consent-manager-banner\"]"
18
- }
19
- ],
20
- "optIn": [
21
- {
22
- "waitForThenClick": "[data-cy=\"manage_cookies\"]"
23
- },
24
- {
25
- "waitForThenClick": "[data-cy=\"consent-manager-preferences-allow-all\"]"
26
- }
27
- ],
28
- "optOut": [
29
- {
30
- "waitForThenClick": "[data-cy=\"manage_cookies\"]"
31
- },
32
- {
33
- "waitForThenClick": "[data-cy=\"consent-manager-preferences-deny-all\"]"
34
- }
35
- ]
36
- }
@@ -1,37 +0,0 @@
1
- {
2
- "name": "auto_AU_discover.utas.edu.au_k2n",
3
- "cosmetic": false,
4
- "runContext": {
5
- "main": true,
6
- "frame": false,
7
- "urlPattern": "^https?://(www\\.)?discover\\.utas\\.edu\\.au/"
8
- },
9
- "prehideSelectors": [],
10
- "detectCmp": [
11
- {
12
- "exists": "body > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(2):not([id])"
13
- }
14
- ],
15
- "detectPopup": [
16
- {
17
- "visible": "body > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(2):not([id])"
18
- }
19
- ],
20
- "optIn": [],
21
- "optOut": [
22
- {
23
- "wait": 500
24
- },
25
- {
26
- "waitForThenClick": "body > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(2):not([id])",
27
- "comment": "Reject"
28
- }
29
- ],
30
- "test": [
31
- {
32
- "waitForVisible": "body > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(2):not([id])",
33
- "timeout": 1000,
34
- "check": "none"
35
- }
36
- ]
37
- }
@@ -1,40 +0,0 @@
1
- {
2
- "name": "auto_AU_experts.deakin.edu.au_0kw",
3
- "cosmetic": false,
4
- "_metadata": {
5
- "vendorUrl": "http://experts.deakin.edu.au/"
6
- },
7
- "runContext": {
8
- "main": true,
9
- "frame": false,
10
- "urlPattern": "^https?://(www\\.)?experts\\.deakin\\.edu\\.au/"
11
- },
12
- "prehideSelectors": [],
13
- "detectCmp": [
14
- {
15
- "exists": "body > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(2):not([id])"
16
- }
17
- ],
18
- "detectPopup": [
19
- {
20
- "visible": "body > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(2):not([id])"
21
- }
22
- ],
23
- "optIn": [],
24
- "optOut": [
25
- {
26
- "wait": 500
27
- },
28
- {
29
- "waitForThenClick": "body > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(2):not([id])",
30
- "comment": "Reject"
31
- }
32
- ],
33
- "test": [
34
- {
35
- "waitForVisible": "body > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(2):not([id])",
36
- "timeout": 1000,
37
- "check": "none"
38
- }
39
- ]
40
- }
@@ -1,37 +0,0 @@
1
- {
2
- "name": "auto_AU_experts.griffith.edu.au_oi0",
3
- "cosmetic": false,
4
- "runContext": {
5
- "main": true,
6
- "frame": false,
7
- "urlPattern": "^https?://(www\\.)?experts\\.griffith\\.edu\\.au/"
8
- },
9
- "prehideSelectors": [],
10
- "detectCmp": [
11
- {
12
- "exists": "body > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(2):not([id])"
13
- }
14
- ],
15
- "detectPopup": [
16
- {
17
- "visible": "body > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(2):not([id])"
18
- }
19
- ],
20
- "optIn": [],
21
- "optOut": [
22
- {
23
- "wait": 500
24
- },
25
- {
26
- "waitForThenClick": "body > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(2):not([id])",
27
- "comment": "Reject"
28
- }
29
- ],
30
- "test": [
31
- {
32
- "waitForVisible": "body > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(2):not([id])",
33
- "timeout": 1000,
34
- "check": "none"
35
- }
36
- ]
37
- }
@@ -1,40 +0,0 @@
1
- {
2
- "name": "auto_AU_fullertonhotels.com_y46",
3
- "cosmetic": false,
4
- "_metadata": {
5
- "vendorUrl": "http://www.fullertonhotels.com/"
6
- },
7
- "runContext": {
8
- "main": false,
9
- "frame": true,
10
- "urlPattern": "^https?://(www\\.)?fullertonhotels\\.com/"
11
- },
12
- "prehideSelectors": [],
13
- "detectCmp": [
14
- {
15
- "exists": "body > div#banner-0 > div:nth-child(1)#grouped-pageload-Banner > div:not([id]) > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(3):not([id])"
16
- }
17
- ],
18
- "detectPopup": [
19
- {
20
- "visible": "body > div#banner-0 > div:nth-child(1)#grouped-pageload-Banner > div:not([id]) > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(3):not([id])"
21
- }
22
- ],
23
- "optIn": [],
24
- "optOut": [
25
- {
26
- "wait": 500
27
- },
28
- {
29
- "waitForThenClick": "body > div#banner-0 > div:nth-child(1)#grouped-pageload-Banner > div:not([id]) > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(3):not([id])",
30
- "comment": "Decline"
31
- }
32
- ],
33
- "test": [
34
- {
35
- "waitForVisible": "body > div#banner-0 > div:nth-child(1)#grouped-pageload-Banner > div:not([id]) > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(3):not([id])",
36
- "timeout": 1000,
37
- "check": "none"
38
- }
39
- ]
40
- }
@@ -1,37 +0,0 @@
1
- {
2
- "name": "auto_AU_profiles.uts.edu.au_ouv",
3
- "cosmetic": false,
4
- "runContext": {
5
- "main": true,
6
- "frame": false,
7
- "urlPattern": "^https?://(www\\.)?profiles\\.uts\\.edu\\.au/"
8
- },
9
- "prehideSelectors": [],
10
- "detectCmp": [
11
- {
12
- "exists": "body > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(2):not([id])"
13
- }
14
- ],
15
- "detectPopup": [
16
- {
17
- "visible": "body > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(2):not([id])"
18
- }
19
- ],
20
- "optIn": [],
21
- "optOut": [
22
- {
23
- "wait": 500
24
- },
25
- {
26
- "waitForThenClick": "body > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(2):not([id])",
27
- "comment": "Reject"
28
- }
29
- ],
30
- "test": [
31
- {
32
- "waitForVisible": "body > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(2):not([id])",
33
- "timeout": 1000,
34
- "check": "none"
35
- }
36
- ]
37
- }
@@ -1,40 +0,0 @@
1
- {
2
- "name": "auto_AU_scholars.latrobe.edu.au_li6",
3
- "cosmetic": false,
4
- "_metadata": {
5
- "vendorUrl": "http://scholars.latrobe.edu.au/"
6
- },
7
- "runContext": {
8
- "main": true,
9
- "frame": false,
10
- "urlPattern": "^https?://(www\\.)?scholars\\.latrobe\\.edu\\.au/"
11
- },
12
- "prehideSelectors": [],
13
- "detectCmp": [
14
- {
15
- "exists": "body > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(2):not([id])"
16
- }
17
- ],
18
- "detectPopup": [
19
- {
20
- "visible": "body > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(2):not([id])"
21
- }
22
- ],
23
- "optIn": [],
24
- "optOut": [
25
- {
26
- "wait": 500
27
- },
28
- {
29
- "waitForThenClick": "body > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(2):not([id])",
30
- "comment": "Reject"
31
- }
32
- ],
33
- "test": [
34
- {
35
- "waitForVisible": "body > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(2):not([id])",
36
- "timeout": 1000,
37
- "check": "none"
38
- }
39
- ]
40
- }
@@ -1,40 +0,0 @@
1
- {
2
- "name": "auto_CA_discover.research.utoronto.ca_vtf",
3
- "cosmetic": false,
4
- "_metadata": {
5
- "vendorUrl": "http://discover.research.utoronto.ca/"
6
- },
7
- "runContext": {
8
- "main": true,
9
- "frame": false,
10
- "urlPattern": "^https?://(www\\.)?discover\\.research\\.utoronto\\.ca/"
11
- },
12
- "prehideSelectors": [],
13
- "detectCmp": [
14
- {
15
- "exists": "body > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(2):not([id])"
16
- }
17
- ],
18
- "detectPopup": [
19
- {
20
- "visible": "body > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(2):not([id])"
21
- }
22
- ],
23
- "optIn": [],
24
- "optOut": [
25
- {
26
- "wait": 500
27
- },
28
- {
29
- "waitForThenClick": "body > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(2):not([id])",
30
- "comment": "Reject"
31
- }
32
- ],
33
- "test": [
34
- {
35
- "waitForVisible": "body > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(2):not([id])",
36
- "timeout": 1000,
37
- "check": "none"
38
- }
39
- ]
40
- }
@@ -1,40 +0,0 @@
1
- {
2
- "name": "auto_CA_remarkable.com_kt9",
3
- "cosmetic": false,
4
- "_metadata": {
5
- "vendorUrl": "http://remarkable.com/"
6
- },
7
- "runContext": {
8
- "main": true,
9
- "frame": false,
10
- "urlPattern": "^https?://(www\\.)?remarkable\\.com/"
11
- },
12
- "prehideSelectors": [],
13
- "detectCmp": [
14
- {
15
- "exists": "body > dialog:not([id]) > div:not([id]) > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(1):not([id])"
16
- }
17
- ],
18
- "detectPopup": [
19
- {
20
- "visible": "body > dialog:not([id]) > div:not([id]) > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(1):not([id])"
21
- }
22
- ],
23
- "optIn": [],
24
- "optOut": [
25
- {
26
- "wait": 500
27
- },
28
- {
29
- "waitForThenClick": "body > dialog:not([id]) > div:not([id]) > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(1):not([id])",
30
- "comment": "Only necessary"
31
- }
32
- ],
33
- "test": [
34
- {
35
- "waitForVisible": "body > dialog:not([id]) > div:not([id]) > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(1):not([id])",
36
- "timeout": 1000,
37
- "check": "none"
38
- }
39
- ]
40
- }
@@ -1,40 +0,0 @@
1
- {
2
- "name": "auto_DE_www2.hm.com_beo",
3
- "cosmetic": false,
4
- "_metadata": {
5
- "vendorUrl": "http://www2.hm.com/"
6
- },
7
- "runContext": {
8
- "main": true,
9
- "frame": false,
10
- "urlPattern": "^https?://(www\\.)?www2\\.hm\\.com/"
11
- },
12
- "prehideSelectors": [],
13
- "detectCmp": [
14
- {
15
- "exists": "body > div:not([id]) > dialog:nth-child(1):not([id]) > div:nth-child(2):not([id]) > div:not([id]) > div:nth-child(1):not([id]) > button:nth-child(2)#banner-reject-btn"
16
- }
17
- ],
18
- "detectPopup": [
19
- {
20
- "visible": "body > div:not([id]) > dialog:nth-child(1):not([id]) > div:nth-child(2):not([id]) > div:not([id]) > div:nth-child(1):not([id]) > button:nth-child(2)#banner-reject-btn"
21
- }
22
- ],
23
- "optIn": [],
24
- "optOut": [
25
- {
26
- "wait": 500
27
- },
28
- {
29
- "waitForThenClick": "body > div:not([id]) > dialog:nth-child(1):not([id]) > div:nth-child(2):not([id]) > div:not([id]) > div:nth-child(1):not([id]) > button:nth-child(2)#banner-reject-btn",
30
- "comment": "NUR ERFORDERLICHE COOKIES"
31
- }
32
- ],
33
- "test": [
34
- {
35
- "waitForVisible": "body > div:not([id]) > dialog:nth-child(1):not([id]) > div:nth-child(2):not([id]) > div:not([id]) > div:nth-child(1):not([id]) > button:nth-child(2)#banner-reject-btn",
36
- "timeout": 1000,
37
- "check": "none"
38
- }
39
- ]
40
- }
@@ -1,40 +0,0 @@
1
- {
2
- "name": "auto_GB_profiles.ucl.ac.uk_lpo",
3
- "cosmetic": false,
4
- "_metadata": {
5
- "vendorUrl": "http://profiles.ucl.ac.uk/"
6
- },
7
- "runContext": {
8
- "main": true,
9
- "frame": false,
10
- "urlPattern": "^https?://(www\\.)?profiles\\.ucl\\.ac\\.uk/"
11
- },
12
- "prehideSelectors": [],
13
- "detectCmp": [
14
- {
15
- "exists": "body > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(2):not([id])"
16
- }
17
- ],
18
- "detectPopup": [
19
- {
20
- "visible": "body > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(2):not([id])"
21
- }
22
- ],
23
- "optIn": [],
24
- "optOut": [
25
- {
26
- "wait": 500
27
- },
28
- {
29
- "waitForThenClick": "body > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(2):not([id])",
30
- "comment": "Reject"
31
- }
32
- ],
33
- "test": [
34
- {
35
- "waitForVisible": "body > div:not([id]) > div:not([id]) > div:nth-child(3):not([id]) > button:nth-child(2):not([id])",
36
- "timeout": 1000,
37
- "check": "none"
38
- }
39
- ]
40
- }
@@ -1,6 +0,0 @@
1
- import generateCMPTests from '../../playwright/runner';
2
- generateCMPTests('auto_AU_discover.utas.edu.au_k2n', ['https://discover.utas.edu.au/'], {
3
- testOptIn: false,
4
- testSelfTest: true,
5
- onlyRegions: ['AU'],
6
- });
@@ -1,6 +0,0 @@
1
- import generateCMPTests from '../../playwright/runner';
2
- generateCMPTests('auto_AU_experts.deakin.edu.au_0kw', ['https://experts.deakin.edu.au/'], {
3
- testOptIn: false,
4
- testSelfTest: true,
5
- onlyRegions: ['AU'],
6
- });
@@ -1,6 +0,0 @@
1
- import generateCMPTests from '../../playwright/runner';
2
- generateCMPTests('auto_AU_experts.griffith.edu.au_oi0', ['https://experts.griffith.edu.au/'], {
3
- testOptIn: false,
4
- testSelfTest: true,
5
- onlyRegions: ['AU'],
6
- });