fpscanner 0.2.0 → 0.9.2

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 (168) hide show
  1. package/README.md +639 -55
  2. package/bin/cli.js +216 -0
  3. package/dist/crypto-helpers.d.ts +19 -0
  4. package/dist/crypto-helpers.d.ts.map +1 -0
  5. package/dist/detections/hasCDP.d.ts +3 -0
  6. package/dist/detections/hasCDP.d.ts.map +1 -0
  7. package/dist/detections/hasContextMismatch.d.ts +3 -0
  8. package/dist/detections/hasContextMismatch.d.ts.map +1 -0
  9. package/dist/detections/hasHeadlessChromeScreenResolution.d.ts +3 -0
  10. package/dist/detections/hasHeadlessChromeScreenResolution.d.ts.map +1 -0
  11. package/dist/detections/hasHighCPUCount.d.ts +3 -0
  12. package/dist/detections/hasHighCPUCount.d.ts.map +1 -0
  13. package/dist/detections/hasImpossibleDeviceMemory.d.ts +3 -0
  14. package/dist/detections/hasImpossibleDeviceMemory.d.ts.map +1 -0
  15. package/dist/detections/hasMismatchPlatformIframe.d.ts +3 -0
  16. package/dist/detections/hasMismatchPlatformIframe.d.ts.map +1 -0
  17. package/dist/detections/hasMismatchPlatformWorker.d.ts +3 -0
  18. package/dist/detections/hasMismatchPlatformWorker.d.ts.map +1 -0
  19. package/dist/detections/hasMismatchWebGLInWorker.d.ts +3 -0
  20. package/dist/detections/hasMismatchWebGLInWorker.d.ts.map +1 -0
  21. package/dist/detections/hasMissingChromeObject.d.ts +3 -0
  22. package/dist/detections/hasMissingChromeObject.d.ts.map +1 -0
  23. package/dist/detections/hasPlaywright.d.ts +3 -0
  24. package/dist/detections/hasPlaywright.d.ts.map +1 -0
  25. package/dist/detections/hasSeleniumProperty.d.ts +3 -0
  26. package/dist/detections/hasSeleniumProperty.d.ts.map +1 -0
  27. package/dist/detections/hasSwiftshaderRenderer.d.ts +3 -0
  28. package/dist/detections/hasSwiftshaderRenderer.d.ts.map +1 -0
  29. package/dist/detections/hasUTCTimezone.d.ts +3 -0
  30. package/dist/detections/hasUTCTimezone.d.ts.map +1 -0
  31. package/dist/detections/hasWebdriver.d.ts +3 -0
  32. package/dist/detections/hasWebdriver.d.ts.map +1 -0
  33. package/dist/detections/hasWebdriverIframe.d.ts +3 -0
  34. package/dist/detections/hasWebdriverIframe.d.ts.map +1 -0
  35. package/dist/detections/hasWebdriverWorker.d.ts +3 -0
  36. package/dist/detections/hasWebdriverWorker.d.ts.map +1 -0
  37. package/dist/detections/hasWebdriverWritable.d.ts +3 -0
  38. package/dist/detections/hasWebdriverWritable.d.ts.map +1 -0
  39. package/dist/fpScanner.cjs.js +31 -0
  40. package/dist/fpScanner.es.js +1066 -0
  41. package/dist/index.d.ts +39 -0
  42. package/dist/index.d.ts.map +1 -0
  43. package/dist/signals/browserExtensions.d.ts +5 -0
  44. package/dist/signals/browserExtensions.d.ts.map +1 -0
  45. package/dist/signals/browserFeatures.d.ts +14 -0
  46. package/dist/signals/browserFeatures.d.ts.map +1 -0
  47. package/dist/signals/canvas.d.ts +6 -0
  48. package/dist/signals/canvas.d.ts.map +1 -0
  49. package/dist/signals/cdp.d.ts +2 -0
  50. package/dist/signals/cdp.d.ts.map +1 -0
  51. package/dist/signals/cpuCount.d.ts +2 -0
  52. package/dist/signals/cpuCount.d.ts.map +1 -0
  53. package/dist/signals/etsl.d.ts +2 -0
  54. package/dist/signals/etsl.d.ts.map +1 -0
  55. package/dist/signals/highEntropyValues.d.ts +11 -0
  56. package/dist/signals/highEntropyValues.d.ts.map +1 -0
  57. package/dist/signals/iframe.d.ts +9 -0
  58. package/dist/signals/iframe.d.ts.map +1 -0
  59. package/dist/signals/internationalization.d.ts +5 -0
  60. package/dist/signals/internationalization.d.ts.map +1 -0
  61. package/dist/signals/languages.d.ts +5 -0
  62. package/dist/signals/languages.d.ts.map +1 -0
  63. package/dist/signals/maths.d.ts +2 -0
  64. package/dist/signals/maths.d.ts.map +1 -0
  65. package/dist/signals/mediaCodecs.d.ts +11 -0
  66. package/dist/signals/mediaCodecs.d.ts.map +1 -0
  67. package/dist/signals/mediaQueries.d.ts +13 -0
  68. package/dist/signals/mediaQueries.d.ts.map +1 -0
  69. package/dist/signals/memory.d.ts +2 -0
  70. package/dist/signals/memory.d.ts.map +1 -0
  71. package/dist/signals/multimediaDevices.d.ts +2 -0
  72. package/dist/signals/multimediaDevices.d.ts.map +1 -0
  73. package/dist/signals/navigatorPropertyDescriptors.d.ts +2 -0
  74. package/dist/signals/navigatorPropertyDescriptors.d.ts.map +1 -0
  75. package/dist/signals/nonce.d.ts +2 -0
  76. package/dist/signals/nonce.d.ts.map +1 -0
  77. package/dist/signals/platform.d.ts +2 -0
  78. package/dist/signals/platform.d.ts.map +1 -0
  79. package/dist/signals/playwright.d.ts +2 -0
  80. package/dist/signals/playwright.d.ts.map +1 -0
  81. package/dist/signals/plugins.d.ts +9 -0
  82. package/dist/signals/plugins.d.ts.map +1 -0
  83. package/dist/signals/screenResolution.d.ts +12 -0
  84. package/dist/signals/screenResolution.d.ts.map +1 -0
  85. package/dist/signals/seleniumProperties.d.ts +2 -0
  86. package/dist/signals/seleniumProperties.d.ts.map +1 -0
  87. package/dist/signals/time.d.ts +2 -0
  88. package/dist/signals/time.d.ts.map +1 -0
  89. package/dist/signals/toSourceError.d.ts +5 -0
  90. package/dist/signals/toSourceError.d.ts.map +1 -0
  91. package/dist/signals/url.d.ts +2 -0
  92. package/dist/signals/url.d.ts.map +1 -0
  93. package/dist/signals/userAgent.d.ts +2 -0
  94. package/dist/signals/userAgent.d.ts.map +1 -0
  95. package/dist/signals/utils.d.ts +11 -0
  96. package/dist/signals/utils.d.ts.map +1 -0
  97. package/dist/signals/webGL.d.ts +5 -0
  98. package/dist/signals/webGL.d.ts.map +1 -0
  99. package/dist/signals/webdriver.d.ts +2 -0
  100. package/dist/signals/webdriver.d.ts.map +1 -0
  101. package/dist/signals/webdriverWritable.d.ts +2 -0
  102. package/dist/signals/webdriverWritable.d.ts.map +1 -0
  103. package/dist/signals/webgpu.d.ts +7 -0
  104. package/dist/signals/webgpu.d.ts.map +1 -0
  105. package/dist/signals/worker.d.ts +2 -0
  106. package/dist/signals/worker.d.ts.map +1 -0
  107. package/dist/types.d.ts +207 -0
  108. package/dist/types.d.ts.map +1 -0
  109. package/package.json +58 -15
  110. package/scripts/build-custom.js +246 -0
  111. package/src/crypto-helpers.ts +50 -0
  112. package/src/detections/hasCDP.ts +5 -0
  113. package/src/detections/hasContextMismatch.ts +19 -0
  114. package/src/detections/hasHeadlessChromeScreenResolution.ts +10 -0
  115. package/src/detections/hasHighCPUCount.ts +9 -0
  116. package/src/detections/hasImpossibleDeviceMemory.ts +9 -0
  117. package/src/detections/hasMismatchPlatformIframe.ts +10 -0
  118. package/src/detections/hasMismatchPlatformWorker.ts +10 -0
  119. package/src/detections/hasMismatchWebGLInWorker.ts +13 -0
  120. package/src/detections/hasMissingChromeObject.ts +6 -0
  121. package/src/detections/hasPlaywright.ts +5 -0
  122. package/src/detections/hasSeleniumProperty.ts +5 -0
  123. package/src/detections/hasSwiftshaderRenderer.ts +5 -0
  124. package/src/detections/hasUTCTimezone.ts +5 -0
  125. package/src/detections/hasWebdriver.ts +5 -0
  126. package/src/detections/hasWebdriverIframe.ts +5 -0
  127. package/src/detections/hasWebdriverWorker.ts +5 -0
  128. package/src/detections/hasWebdriverWritable.ts +5 -0
  129. package/src/globals.d.ts +10 -0
  130. package/src/index.ts +644 -0
  131. package/src/signals/browserExtensions.ts +57 -0
  132. package/src/signals/browserFeatures.ts +24 -0
  133. package/src/signals/canvas.ts +84 -0
  134. package/src/signals/cdp.ts +18 -0
  135. package/src/signals/cpuCount.ts +5 -0
  136. package/src/signals/etsl.ts +3 -0
  137. package/src/signals/highEntropyValues.ts +48 -0
  138. package/src/signals/iframe.ts +34 -0
  139. package/src/signals/internationalization.ts +24 -0
  140. package/src/signals/languages.ts +6 -0
  141. package/src/signals/maths.ts +30 -0
  142. package/src/signals/mediaCodecs.ts +120 -0
  143. package/src/signals/mediaQueries.ts +85 -0
  144. package/src/signals/memory.ts +5 -0
  145. package/src/signals/multimediaDevices.ts +34 -0
  146. package/src/signals/navigatorPropertyDescriptors.ts +17 -0
  147. package/src/signals/nonce.ts +3 -0
  148. package/src/signals/platform.ts +3 -0
  149. package/src/signals/playwright.ts +3 -0
  150. package/src/signals/plugins.ts +70 -0
  151. package/src/signals/screenResolution.ts +15 -0
  152. package/src/signals/seleniumProperties.ts +40 -0
  153. package/src/signals/time.ts +3 -0
  154. package/src/signals/toSourceError.ts +27 -0
  155. package/src/signals/url.ts +3 -0
  156. package/src/signals/userAgent.ts +3 -0
  157. package/src/signals/utils.ts +29 -0
  158. package/src/signals/webGL.ts +28 -0
  159. package/src/signals/webdriver.ts +3 -0
  160. package/src/signals/webdriverWritable.ts +15 -0
  161. package/src/signals/webgpu.ts +28 -0
  162. package/src/signals/worker.ts +77 -0
  163. package/src/types.ts +237 -0
  164. package/.babelrc +0 -3
  165. package/.travis.yml +0 -17
  166. package/src/fpScanner.js +0 -222
  167. package/test/test.html +0 -11
  168. package/test/test.js +0 -116
package/src/fpScanner.js DELETED
@@ -1,222 +0,0 @@
1
- const parser = require('ua-parser-js');
2
-
3
- const fpscanner = (function () {
4
- const TESTS = {
5
- PHANTOM_UA: 'PHANTOM_UA',
6
- PHANTOM_PROPERTIES: 'PHANTOM_PROPERTIES',
7
- PHANTOM_ETSL: 'PHANTOM_ETSL',
8
- PHANTOM_LANGUAGE: 'PHANTOM_LANGUAGE',
9
- PHANTOM_WEBSOCKET: 'PHANTOM_WEBSOCKET',
10
- MQ_SCREEN: 'MQ_SCREEN',
11
- PHANTOM_OVERFLOW: 'PHANTOM_OVERFLOW',
12
- PHANTOM_WINDOW_HEIGHT: 'PHANTOM_WINDOW_HEIGHT',
13
- HEADCHR_UA: 'HEADCHR_UA',
14
- WEBDRIVER: 'WEBDRIVER',
15
- HEADCHR_CHROME_OBJ: 'HEADCHR_CHROME_OBJ',
16
- HEADCHR_PERMISSIONS: 'HEADCHR_PERMISSIONS',
17
- HEADCHR_PLUGINS: 'HEADCHR_PLUGINS',
18
- HEADCHR_IFRAME: 'HEADCHR_IFRAME',
19
- CHR_DEBUG_TOOLS: 'CHR_DEBUG_TOOLS',
20
- SELENIUM_DRIVER: 'SELENIUM_DRIVER',
21
- CHR_BATTERY: 'CHR_BATTERY',
22
- CHR_MEMORY: 'CHR_MEMORY',
23
- TRANSPARENT_PIXEL: 'TRANSPARENT_PIXEL',
24
- SEQUENTUM: 'SEQUENTUM',
25
- VIDEO_CODECS: 'VIDEO_CODECS'
26
- };
27
-
28
- const VENDORS = {
29
- ONEPLUS: 'OnePlus'
30
- };
31
-
32
- const BROWSERS = {
33
- CHROME: 'Chrome',
34
- CHROMIUM: 'Chromium',
35
- OPERA: 'Opera'
36
- };
37
-
38
- // TODO adds test for memoryDevices > 8 except for 'ONEPLUS'
39
-
40
- const INCONSISTENT = 1;
41
- const UNSURE = 2;
42
- const CONSISTENT = 3;
43
-
44
- const analysisResult = (name, consistent, data) => {
45
- return {name: name, consistent: consistent, data: data};
46
- };
47
-
48
- const analyseFingerprint = (fingerprint) => {
49
- const detectionTests = {};
50
-
51
- const uaParsed = parser(fingerprint.userAgent);
52
- const OS_REF = uaParsed.os.name;
53
- const OS_VERSION_REF = uaParsed.os.version;
54
- const BROWSER_REF = uaParsed.browser.name;
55
- const BROWSER_VERSION_REF = uaParsed.browser.major;
56
- const IS_MOBILE_REF = uaParsed.device.type === parser.DEVICE.MOBILE;
57
- const VENDOR_REF = uaParsed.device.vendor;
58
-
59
- const addTestResult = (fn) => {
60
- let result = fn(fingerprint);
61
- detectionTests[result.name] = result;
62
- };
63
-
64
- // Add tests below:
65
- addTestResult(() => {
66
- const testResult = /PhantomJS/.test(fingerprint.userAgent) ? INCONSISTENT : CONSISTENT;
67
- return analysisResult(TESTS.PHANTOM_UA, testResult, {userAgent: fingerprint.userAgent});
68
- });
69
-
70
- addTestResult(() => {
71
- const testResult = fingerprint.phantomJS.some((val) => {
72
- return val;
73
- }) ? INCONSISTENT : CONSISTENT;
74
- return analysisResult(TESTS.PHANTOM_PROPERTIES, testResult, {attributesFound: fingerprint.phantomJS});
75
- });
76
-
77
- addTestResult(() => {
78
- let testResult = !/Firefox|AppleWebkit/.test(fingerprint.userAgent) &&
79
- fingerprint.etsl === 37 ? INCONSISTENT : CONSISTENT;
80
- return analysisResult(TESTS.PHANTOM_ETSL, testResult, {etsl: fingerprint.etsl});
81
- });
82
-
83
- addTestResult(() => {
84
- let testResult = !/Trident|MSIE|Edge/.test(fingerprint.userAgent) &&
85
- fingerprint.languages === undefined ? INCONSISTENT : CONSISTENT;
86
- return analysisResult(TESTS.PHANTOM_LANGUAGE, testResult, {languages: fingerprint.languages});
87
- });
88
-
89
- addTestResult(() => {
90
- let testResult = /SyntaxError: DOM Exception 12/.test(fingerprint.errorsGenerated[7]) ? INCONSISTENT : CONSISTENT;
91
- return analysisResult(TESTS.PHANTOM_WEBSOCKET, testResult, {error: fingerprint.errorsGenerated[7]});
92
- });
93
-
94
- addTestResult(() => {
95
- let testResult = fingerprint.screenMediaQuery ? INCONSISTENT : CONSISTENT;
96
- return analysisResult(TESTS.MQ_SCREEN, testResult, {});
97
- });
98
-
99
- addTestResult(() => {
100
- let testResult = fingerprint.resOverflow.errorName === 'RangeError' &&
101
- fingerprint.resOverflow.errorMessage === 'Maximum call stack size exceeded.' &&
102
- fingerprint.resOverflow.errorStacklength > 20*fingerprint.resOverflow.depth? INCONSISTENT : CONSISTENT;
103
- return analysisResult(TESTS.PHANTOM_OVERFLOW, testResult, fingerprint.resOverflow)
104
- });
105
-
106
- addTestResult(() => {
107
- let testResult = fingerprint.screen.wOuterHeight < fingerprint.screen.wInnerHeight ? INCONSISTENT : CONSISTENT;
108
- return analysisResult(TESTS.PHANTOM_WINDOW_HEIGHT, testResult, fingerprint.screen);
109
- });
110
-
111
- addTestResult(() => {
112
- let testResult = /HeadlessChrome/.test(fingerprint.userAgent) ? INCONSISTENT : CONSISTENT;
113
- return analysisResult(TESTS.HEADCHR_UA, testResult, {userAgent: fingerprint.userAgent});
114
- });
115
-
116
- addTestResult(() => {
117
- let testResult = fingerprint.webDriver ? INCONSISTENT : CONSISTENT;
118
- return analysisResult(TESTS.WEBDRIVER, testResult, {});
119
- });
120
-
121
- addTestResult(() => {
122
- let testResult = !fingerprint.hasChrome && /Chrome/.test(fingerprint.userAgent) ? INCONSISTENT : CONSISTENT;
123
- return analysisResult(TESTS.HEADCHR_CHROME_OBJ, testResult, {});
124
- });
125
-
126
- addTestResult(() => {
127
- let testResult = fingerprint.permissions.permission === 'denied' &&
128
- fingerprint.permissions.state === 'prompt' ? INCONSISTENT : CONSISTENT;
129
- return analysisResult(TESTS.HEADCHR_PERMISSIONS, testResult, {});
130
- });
131
-
132
- addTestResult(() => {
133
- let testResult = /Chrome/.test(fingerprint.userAgent) &&
134
- fingerprint.plugins.length === 0 ? UNSURE : CONSISTENT;
135
- return analysisResult(TESTS.HEADCHR_PLUGINS, testResult, {plugins: fingerprint.plugins});
136
- });
137
-
138
- addTestResult(() => {
139
- let testResult = /Chrome/.test(fingerprint.userAgent) &&
140
- fingerprint.iframeChrome === 'undefined' ? INCONSISTENT : CONSISTENT;
141
- return analysisResult(TESTS.HEADCHR_IFRAME, testResult, {});
142
- });
143
-
144
- addTestResult(() => {
145
- let testResult = /Chrome/.test(fingerprint.userAgent) &&
146
- fingerprint.debugTool ? UNSURE : CONSISTENT;
147
- return analysisResult(TESTS.CHR_DEBUG_TOOLS, testResult, {});
148
- });
149
-
150
- addTestResult(() => {
151
- const testResult = fingerprint.selenium.some((val) => {
152
- return val;
153
- }) ? INCONSISTENT : CONSISTENT;
154
- return analysisResult(TESTS.SELENIUM_DRIVER, testResult, {attributesFound: fingerprint.selenium});
155
- });
156
-
157
- addTestResult(() => {
158
- let testResult = /Chrome/.test(fingerprint.userAgent) &&
159
- BROWSER_VERSION_REF > 49 && !fingerprint.battery ? INCONSISTENT : CONSISTENT;
160
- return analysisResult(TESTS.CHR_BATTERY, testResult, {});
161
- });
162
-
163
- addTestResult(() => {
164
- let testResult = CONSISTENT;
165
-
166
- if (IS_MOBILE_REF && fingerprint.deviceMemory >= 8 &&
167
- VENDOR_REF !== VENDORS.ONEPLUS) {
168
- // Currently only onePlus has more than 8gb of RAM
169
- testResult = INCONSISTENT;
170
- }
171
-
172
- if (fingerprint.deviceMemory !== 0 &&
173
- !(BROWSER_REF === BROWSERS.CHROME && BROWSER_VERSION_REF >= 63) &&
174
- !(BROWSER_REF === BROWSERS.OPERA && BROWSER_VERSION_REF >= 50)) {
175
- // If deviceMemory != 0 and not recent Chrome or Opera
176
- testResult = INCONSISTENT;
177
- } else if (fingerprint.deviceMemory === 0 &&
178
- (BROWSER_REF === BROWSERS.CHROME && BROWSER_VERSION_REF >= 63) ||
179
- (BROWSER_REF === BROWSERS.OPERA && BROWSER_VERSION_REF >= 50)) {
180
- // If deviceMemory = 0 and recent Chrome or Opera
181
- testResult = INCONSISTENT;
182
- }
183
-
184
- return analysisResult(TESTS.CHR_MEMORY, testResult, {});
185
- });
186
-
187
- addTestResult(() => {
188
- let testResult = fingerprint.tpCanvas !== 'error' &&
189
- fingerprint.tpCanvas[0] === 0 &&
190
- fingerprint.tpCanvas[1] === 0 &&
191
- fingerprint.tpCanvas[2] === 0 &&
192
- fingerprint.tpCanvas[3] === 0 ? CONSISTENT : UNSURE;
193
- return analysisResult(TESTS.TRANSPARENT_PIXEL, testResult, fingerprint.tpCanvas);
194
- });
195
-
196
- addTestResult(() => {
197
- let testResult = fingerprint.sequentum ? INCONSISTENT : CONSISTENT;
198
- return analysisResult(TESTS.SEQUENTUM, testResult, {});
199
- });
200
-
201
-
202
- // TODO: do more tests on Windows and Mac OS to change UNSURE to INCONSISTENT
203
- addTestResult(() => {
204
- let testResult = (BROWSER_REF === BROWSERS.CHROME || BROWSER_REF === BROWSERS.CHROMIUM) &&
205
- fingerprint.videoCodecs.h264 !== 'probably' ? UNSURE : CONSISTENT;
206
- return analysisResult(TESTS.VIDEO_CODECS, testResult, {h264: fingerprint.videoCodecs.h264});
207
- });
208
-
209
- return detectionTests;
210
- };
211
-
212
- return {
213
- analyseFingerprint: analyseFingerprint,
214
- CONSISTENT: CONSISTENT,
215
- UNSURE: UNSURE,
216
- INCONSISTENT: INCONSISTENT,
217
- TESTS: TESTS
218
- }
219
- })();
220
-
221
- module.exports = fpscanner;
222
-
package/test/test.html DELETED
@@ -1,11 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8">
5
- <title>Title</title>
6
- </head>
7
- <body>
8
-
9
- <script src='../node_modules/fpcollect/dist/fpcollect.js'></script>
10
- </body>
11
- </html>
package/test/test.js DELETED
@@ -1,116 +0,0 @@
1
- const {expect} = require('chai');
2
- const puppeteer = require('puppeteer');
3
- const path = require('path');
4
- const scanner = require('../src/fpScanner');
5
-
6
-
7
- describe('Bot scanner', async function () {
8
- let browser;
9
- let page;
10
- let scannerResult;
11
-
12
- before(async function () {
13
- browser = await puppeteer.launch();
14
- page = await browser.newPage();
15
- await page.goto('file://' + path.resolve(__dirname, 'test.html'), {
16
- waitUntil: 'load'
17
- });
18
- const fingerprint = await page.evaluate(async () => {
19
- return await fpCollect.generateFingerprint();
20
- });
21
-
22
- scannerResult = scanner.analyseFingerprint(fingerprint);
23
- });
24
-
25
- after(async function () {
26
- await browser.close();
27
- });
28
-
29
- it('PHANTOM_UA should be consistent', async () => {
30
- expect(scannerResult[scanner.TESTS.PHANTOM_UA].consistent).to.equal(scanner.CONSISTENT);
31
- });
32
-
33
- it('PHANTOM_PROPERTIES should be consistent', async () => {
34
- expect(scannerResult[scanner.TESTS.PHANTOM_PROPERTIES].consistent).to.equal(scanner.CONSISTENT);
35
- });
36
-
37
- it('PHANTOM_ETSL should be consistent', async () => {
38
- expect(scannerResult[scanner.TESTS.PHANTOM_ETSL].consistent).to.equal(scanner.CONSISTENT);
39
- });
40
-
41
- it('PHANTOM_LANGUAGE should be consistent', async () => {
42
- expect(scannerResult[scanner.TESTS.PHANTOM_LANGUAGE].consistent).to.equal(scanner.CONSISTENT);
43
- });
44
-
45
- it('PHANTOM_WEBSOCKET should be consistent', async () => {
46
- expect(scannerResult[scanner.TESTS.PHANTOM_WEBSOCKET].consistent).to.equal(scanner.CONSISTENT);
47
- });
48
-
49
- it('MQ_SCREEN should not be consistent', async () => {
50
- expect(scannerResult[scanner.TESTS.MQ_SCREEN].consistent).to.equal(scanner.INCONSISTENT);
51
- });
52
-
53
- it('PHANTOM_OVERFLOW should not be consistent', async () => {
54
- expect(scannerResult[scanner.TESTS.PHANTOM_OVERFLOW].consistent).to.equal(scanner.CONSISTENT);
55
- });
56
-
57
- it('PHANTOM_WINDOW_HEIGHT should not be consistent', async () => {
58
- expect(scannerResult[scanner.TESTS.PHANTOM_WINDOW_HEIGHT].consistent).to.equal(scanner.CONSISTENT);
59
- });
60
-
61
- it('HEADCHR_UA should not be consistent', async () => {
62
- expect(scannerResult[scanner.TESTS.HEADCHR_UA].consistent).to.equal(scanner.INCONSISTENT);
63
- });
64
-
65
- it('WEBDRIVER should not be consistent', async () => {
66
- expect(scannerResult[scanner.TESTS.WEBDRIVER].consistent).to.equal(scanner.INCONSISTENT);
67
- });
68
-
69
- it('HEADCHR_CHROME_OBJ should not be consistent', async () => {
70
- expect(scannerResult[scanner.TESTS.HEADCHR_CHROME_OBJ].consistent).to.equal(scanner.INCONSISTENT);
71
- });
72
-
73
- it('HEADCHR_PERMISSIONS should not be consistent', async () => {
74
- expect(scannerResult[scanner.TESTS.HEADCHR_PERMISSIONS].consistent).to.equal(scanner.INCONSISTENT);
75
- });
76
-
77
- it('HEADCHR_PLUGINS should be unsure', async () => {
78
- expect(scannerResult[scanner.TESTS.HEADCHR_PLUGINS].consistent).to.equal(scanner.UNSURE);
79
- });
80
-
81
- it('HEADCHR_IFRAME should be inconsistent', async () => {
82
- expect(scannerResult[scanner.TESTS.HEADCHR_IFRAME].consistent).to.equal(scanner.INCONSISTENT);
83
- });
84
-
85
- it('CHR_DEBUG_TOOLS should be unsure', async () => {
86
- expect(scannerResult[scanner.TESTS.CHR_DEBUG_TOOLS].consistent).to.equal(scanner.UNSURE);
87
- });
88
-
89
- it('SELENIUM_DRIVER should be consistent', async () => {
90
- expect(scannerResult[scanner.TESTS.SELENIUM_DRIVER].consistent).to.equal(scanner.CONSISTENT);
91
- });
92
-
93
- it('CHR_BATTERY should be consistent', async () => {
94
- expect(scannerResult[scanner.TESTS.CHR_BATTERY].consistent).to.equal(scanner.CONSISTENT);
95
- });
96
-
97
- it('CHR_MEMORY should be inconsistent', async () => {
98
- expect(scannerResult[scanner.TESTS.CHR_MEMORY].consistent).to.equal(scanner.INCONSISTENT);
99
- });
100
-
101
- it('TRANSPARENT_PIXEL should be consistent', async () => {
102
- expect(scannerResult[scanner.TESTS.TRANSPARENT_PIXEL].consistent).to.equal(scanner.CONSISTENT);
103
- });
104
-
105
- it('SEQUENTUM should be consistent', async () => {
106
- expect(scannerResult[scanner.TESTS.SEQUENTUM].consistent).to.equal(scanner.CONSISTENT);
107
- });
108
-
109
- // It may seem counter intuitive to have this test consistent with Chrome headless
110
- // The reason is that the the test will be inconsistent only when Chrome headless decides
111
- // to spoof its identity by changing its user agent
112
- it('VIDEO_CODECS should be consistent', async () => {
113
- expect(scannerResult[scanner.TESTS.VIDEO_CODECS].consistent).to.equal(scanner.CONSISTENT);
114
- });
115
-
116
- });