File: test_datadome.html

package info (click to toggle)
firefox 145.0.1-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 4,653,528 kB
  • sloc: cpp: 7,594,999; javascript: 6,459,658; ansic: 3,752,909; python: 1,403,455; xml: 629,809; asm: 438,679; java: 186,421; sh: 67,287; makefile: 19,169; objc: 13,086; perl: 12,982; yacc: 4,583; cs: 3,846; pascal: 3,448; lex: 1,720; ruby: 1,003; exp: 762; php: 436; lisp: 258; awk: 247; sql: 66; sed: 54; csh: 10
file content (61 lines) | stat: -rw-r--r-- 2,271 bytes parent folder | download | duplicates (14)
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
<!doctype html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>Datadome Puzzle Detection Test</title>
    <script src="/tests/SimpleTest/SimpleTest.js"></script>
    <link rel="stylesheet" href="/tests/SimpleTest/test.css" />
    <script src="/tests/SimpleTest/GleanTest.js"></script>
    <script src="CaptchaTestingUtils.js"></script>
  </head>
  <body>
    <p id="display"></p>
    <div id="content" style="display: none"></div>
    <pre id="test"></pre>

    <script>
      function simulateMessage(message) {
        info("Simulating message: " + JSON.stringify(message));
        return new Promise(resolve => {
          const iframe = document.createElement("iframe");
          iframe.onload = resolve;
          iframe.src =
            "datadome.html?message=" +
            encodeURIComponent(JSON.stringify(message));
          document.body.appendChild(iframe);
        });
      }

      add_task(async function () {
        await GleanTest.testResetFOG();

        const psMetricSet = CaptchaTestingUtils.waitForMetricSet();
        await simulateMessage({ eventType: "load", responseType: "captcha" });
        await psMetricSet;
        const puzzleShownCount =
          await GleanTest.captchaDetection.datadomePs.testGetValue();
        is(puzzleShownCount, 1, "The puzzle shown count should be 1");

        const blMetricSet = CaptchaTestingUtils.waitForMetricSet();
        await simulateMessage({ eventType: "load", responseType: "hardblock" });
        await blMetricSet;
        const hardBlockCount =
          await GleanTest.captchaDetection.datadomeBl.testGetValue();
        is(hardBlockCount, 1, "The block count should be 1");

        const pcMetricSet = CaptchaTestingUtils.waitForMetricSet();
        await simulateMessage({ eventType: "passed" });
        await pcMetricSet;
        const puzzleCompletedCount =
          await GleanTest.captchaDetection.datadomePc.testGetValue();
        is(puzzleCompletedCount, 1, "The puzzle completed count should be 1");

        const occurredCount =
          await GleanTest.captchaDetection.datadomeOc.testGetValue();
        is(occurredCount, 3, "We should have detected the occurrence");

        await CaptchaTestingUtils.clearPrefs();
      });
    </script>
  </body>
</html>