59123e30ee8e20b45a34a96a07375df84a39fae0
[WebKit-https.git] / LayoutTests / http / tests / xmlhttprequest / failed-auth.html
1 <p>Test for <a href="http://bugs.webkit.org/show_bug.cgi?id=13075">bug 13075</a>:
2 XMLHttpRequest with failed authentication should set status to 401.</p>
3 <ol>
4   <li>Sync, no credentials:
5   <li>Sync, incorrect credentials:
6   <li>Async, no credentials: [test disabled]
7   <li>Async, incorrect credentials: [test disabled]
8 </ol>
9 <script>
10 function checkResult(n, code) {
11     document.getElementsByTagName("li")[n - 1].firstChild.nodeValue += 
12         ((code == 401) ? " OK" : (" " + code + " != 401"));
13 }
14
15 function log(n, message) {
16     document.getElementsByTagName("li")[n - 1].firstChild.nodeValue += 
17         " " + message;
18 }
19
20
21 if (window.layoutTestController) {
22     layoutTestController.dumpAsText();
23 //    layoutTestController.waitUntilDone();
24 } else {
25     alert("Please cancel all authentication dialogs that will appear");
26 }
27
28 try {
29     var r = new XMLHttpRequest();
30     r.open("GET", "resources/basic-auth/basic-auth.php?uid=login1", false);
31     r.send();
32     checkResult(1, r.status);
33 } catch (ex) {
34     log(1, ex);
35 }
36
37 try {
38     var r = new XMLHttpRequest();
39     r.open("GET", "resources/basic-auth/basic-auth.php?uid=login2", false, "badname", "passpw");
40     r.send();
41     checkResult(2, r.status);
42 } catch (ex) {
43     log(2, ex);
44 }
45
46 /*
47 try {
48     var r = new XMLHttpRequest();
49     r.open("GET", "resources/basic-auth/basic-auth.php?uid=login3", true);
50     r.onreadystatechange = function() {
51       if (r.readyState == 4) {
52         checkResult(3, r.status);
53         test4();
54       }
55     };
56     r.send();
57 } catch (ex) {
58     log(3, ex);
59     test4();
60 }
61
62 function test4() {
63     try {
64         var r = new XMLHttpRequest();
65         r.open("GET", "resources/basic-auth/basic-auth.php?uid=login4", true, "badname", "passpw");
66         r.onreadystatechange = function() {
67           if (r.readyState == 4) {
68             checkResult(4, r.status);
69             layoutTestController.notifyDone();
70           }
71         };
72         r.send();
73     } catch (ex) {
74         log(4, ex);
75         layoutTestController.notifyDone();
76     }
77 }
78 */
79 </script>