Index: LayoutTests/http/tests/eventsource/script-tests/eventsource-cors-with-credentials.js |
diff --git a/LayoutTests/http/tests/eventsource/script-tests/eventsource-cors-with-credentials.js b/LayoutTests/http/tests/eventsource/script-tests/eventsource-cors-with-credentials.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..b346b92471b19af094f8d899678ee28df480055a |
--- /dev/null |
+++ b/LayoutTests/http/tests/eventsource/script-tests/eventsource-cors-with-credentials.js |
@@ -0,0 +1,38 @@ |
+if (self.importScripts) |
+ importScripts("/js-test-resources/js-test.js"); |
+ |
+description("Test that EventSource cross-origin requests with credentials fail until the correct CORS headers are sent."); |
+ |
+self.jsTestIsAsync = true; |
+ |
+var count = 1; |
+var es, evt; |
+ |
+function runTest() { |
+ shouldNotThrow("es = new EventSource(\"http://127.0.0.1:8080/eventsource/resources/es-cors-credentials.php?count=" + count + "\", {'withCredentials': true})"); |
+ shouldBeTrue("es.withCredentials"); |
+ es.onerror = function () { |
+ if (es.readyState == es.CLOSED) { |
+ shouldBeTrue("count != 4 && count != 5"); |
+ count++; |
+ setTimeout(runTest); |
+ return; |
+ } |
+ shouldBe("count", "5"); |
+ }; |
+ es.onmessage = function (arg) { |
+ evt = arg; |
+ shouldBeTrue("evt.origin.indexOf('http://127.0.0.1:8080') === 0"); |
+ if (count == 4) { |
+ shouldBeEqualToString("evt.data", "DATA1"); |
+ shouldBeEqualToString("evt.lastEventId", "77"); |
+ count++; |
+ return; |
+ } |
+ shouldBe("count", "5"); |
+ shouldBeEqualToString("evt.data", "DATA2"); |
+ es.close(); |
+ finishJSTest(); |
+ }; |
+} |
+runTest(); |