summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/XMLHttpRequest/XMLHttpRequest-withCredentials.any.js
blob: 96e95c90faf0645dfad09c24a80ed4b8cd5a4880 (plain)
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
test(function() {
  var client = new XMLHttpRequest()
  assert_false(client.withCredentials, "withCredentials defaults to false")
  client.withCredentials = true
  assert_true(client.withCredentials, "is true after setting")
}, "default value is false, set value is true")

test(function() {
  var client = new XMLHttpRequest()
  client.open("GET", "resources/delay.py?ms=1000", true)
  client.withCredentials = true
  assert_true(client.withCredentials, "set in OPEN state")
}, "can also be set in OPEN state")

test(function() {
  var client = new XMLHttpRequest()
  client.open("GET", "resources/delay.py?ms=1000", false)
  client.withCredentials = true
  assert_true(client.withCredentials, "set in OPEN state")
}, "setting on synchronous XHR")

async_test(function() {
  var client = new XMLHttpRequest()
  client.open("GET", "resources/delay.py?ms=1000")
  client.send()
  assert_throws("InvalidStateError", function() { client.withCredentials = true })
  client.onreadystatechange = this.step_func(function() {
    assert_throws("InvalidStateError", function() { client.withCredentials = true })
    if (client.readyState === 4) {
      this.done()
    }
  })
}, "setting withCredentials when not in UNSENT, OPENED state (asynchronous)")

test(function() {
  var client = new XMLHttpRequest()
  client.open("GET", "resources/delay.py?ms=1000", false)
  client.send();
  assert_throws("InvalidStateError", function() { client.withCredentials = true })
}, "setting withCredentials when in DONE state (synchronous)")