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_dom("InvalidStateError", function() { client.withCredentials = true }) client.onreadystatechange = this.step_func(function() { assert_throws_dom("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_dom("InvalidStateError", function() { client.withCredentials = true }) }, "setting withCredentials when in DONE state (synchronous)")