| <p>Test for <a href="http://bugs.webkit.org/show_bug.cgi?id=13075">bug 13075</a>: | |
| XMLHttpRequest with failed authentication should set status to 401.</p> | |
| <ol> | |
| <li>Sync, no credentials: | |
| <li>Sync, incorrect credentials: | |
| <li>Async, no credentials: | |
| <li>Async, incorrect credentials: | |
| </ol> | |
| <script> | |
| function checkResult(n, code) { | |
| document.getElementsByTagName("li")[n - 1].firstChild.nodeValue += | |
| ((code == 401) ? " OK" : (" " + code + " != 401")); | |
| } | |
| function log(n, message) { | |
| document.getElementsByTagName("li")[n - 1].firstChild.nodeValue += | |
| " " + message; | |
| } | |
| if (window.testRunner) { | |
| testRunner.dumpAsText(); | |
| testRunner.waitUntilDone(); | |
| } else { | |
| alert("Please cancel all authentication dialogs that will appear"); | |
| } | |
| try { | |
| var r = new XMLHttpRequest(); | |
| r.open("GET", "resources/basic-auth/basic-auth.php?uid=login1", false); | |
| r.send(); | |
| checkResult(1, r.status); | |
| } catch (ex) { | |
| log(1, ex); | |
| } | |
| try { | |
| var r = new XMLHttpRequest(); | |
| r.open("GET", "resources/basic-auth/basic-auth.php?uid=login2", false, "badname", "passpw"); | |
| r.send(); | |
| checkResult(2, r.status); | |
| } catch (ex) { | |
| log(2, ex); | |
| } | |
| try { | |
| var r = new XMLHttpRequest(); | |
| r.open("GET", "resources/basic-auth/basic-auth.php?uid=login3", true); | |
| r.onreadystatechange = function() { | |
| if (r.readyState == 4) { | |
| checkResult(3, r.status); | |
| test4(); | |
| } | |
| }; | |
| r.send(); | |
| } catch (ex) { | |
| log(3, ex); | |
| test4(); | |
| } | |
| function test4() { | |
| try { | |
| var r = new XMLHttpRequest(); | |
| r.open("GET", "resources/basic-auth/basic-auth.php?uid=login4", true, "badname", "passpw"); | |
| r.onreadystatechange = function() { | |
| if (r.readyState == 4) { | |
| checkResult(4, r.status); | |
| testRunner.notifyDone(); | |
| } | |
| }; | |
| r.send(); | |
| } catch (ex) { | |
| log(4, ex); | |
| testRunner.notifyDone(); | |
| } | |
| } | |
| </script> |