File: test_XHR_parameters.html

package info (click to toggle)
wine-gecko-2.21 2.21%2Bdfsg2-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 646,272 kB
  • ctags: 630,086
  • sloc: cpp: 2,895,786; ansic: 1,502,970; python: 156,675; asm: 115,373; java: 111,421; sh: 63,309; xml: 62,872; makefile: 58,685; perl: 19,182; objc: 3,461; yacc: 2,051; lex: 979; pascal: 929; exp: 449; php: 244; lisp: 228; awk: 211; sed: 26; csh: 21; ada: 16; ruby: 3
file content (99 lines) | stat: -rw-r--r-- 2,471 bytes parent folder | download | duplicates (5)
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


<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Test for XMLHttpRequest with system privileges</title>
  <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>
<body onload="runTests();">
<p id="display">
</p>
<div id="content" style="display: none">

</div>
<pre id="test">
<script class="testbody" type="application/javascript;version=1.8">

function runTests() {
  SimpleTest.waitForExplicitFinish();

  let validParameters = [
    undefined,
    null,
    {},
    {mozSystem: ""},
    {mozSystem: 0},
    {mozAnon: 1},
    {mozAnon: []},
    {get mozAnon() { return true; }},
    0,
    7,
    Math.PI,
    "string",
    true,
    false,
  ];

  let invalidParameters = [
    {get mozSystem() { throw "Bla"; } },
  ];

  let havePrivileges = false;

  function testValidParameter(value) {
    let xhr;
    try {
      xhr = new XMLHttpRequest(value);
    } catch (ex) {
      ok(false, "Got unexpected exception: " + ex);
      return;
    }
    ok(xhr instanceof XMLHttpRequest, "passed " + JSON.stringify(value));

    // If the page doesnt have privileges to create a system or anon XHR,
    // these flags will always be false no matter what is passed.
    let expectedAnon = false;
    let expectedSystem = false;
    if (havePrivileges) {
      expectedAnon = Boolean(value && value.mozAnon);
      expectedSystem = Boolean(value && value.mozSystem);
    }
    is(xhr.mozAnon, expectedAnon, "testing mozAnon");
    is(xhr.mozSystem, expectedSystem, "testing mozSystem");
  }

  function testInvalidParameter(value) {
    let expectedError;
    try {
      new XMLHttpRequest(value);
      ok(false, "invalid parameter did not cause exception: " +
         JSON.stringify(value));
    } catch (ex) {
      expectedError = ex;
    }
    ok(expectedError, "invalid parameter raised exception as expected: " +
       JSON.stringify(expectedError))
  }

  // Run the tests once without API privileges...
  validParameters.forEach(testValidParameter);
  invalidParameters.forEach(testInvalidParameter);

  // ...and once with privileges.
  havePrivileges = true;
  SpecialPowers.addPermission("systemXHR", true, document);

  validParameters.forEach(testValidParameter);
  invalidParameters.forEach(testInvalidParameter);
  SpecialPowers.removePermission("systemXHR", document);

  SimpleTest.finish();
}

</script>
</pre>
</body>
</html>