summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/eventsource/eventsource-reconnect.htm
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/eventsource/eventsource-reconnect.htm')
-rw-r--r--testing/web-platform/tests/eventsource/eventsource-reconnect.htm58
1 files changed, 58 insertions, 0 deletions
diff --git a/testing/web-platform/tests/eventsource/eventsource-reconnect.htm b/testing/web-platform/tests/eventsource/eventsource-reconnect.htm
new file mode 100644
index 000000000..a23885f08
--- /dev/null
+++ b/testing/web-platform/tests/eventsource/eventsource-reconnect.htm
@@ -0,0 +1,58 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>EventSource: reconnection</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ </head>
+ <body>
+ <div id="log"></div>
+ <script>
+ function doReconn(url, title) {
+ var test = async_test(document.title + " " + title)
+ test.step(function() {
+ var source = new EventSource(url)
+ source.onmessage = test.step_func(function(e) {
+ assert_equals(e.data, "data")
+ source.close()
+ test.done()
+ })
+ })
+ }
+
+ doReconn("resources/status-reconnect.py?status=200",
+ "200")
+
+
+ var t = async_test(document.title + ", test reconnection events", { timeout: 9000 });
+ t.step(function() {
+ var opened = false, reconnected = false,
+ source = new EventSource("resources/status-reconnect.py?status=200&ok_first&id=2");
+
+ source.onerror = t.step_func(function(e) {
+ assert_equals(e.type, 'error');
+ assert_equals(source.readyState, source.CONNECTING, "readyState");
+ assert_true(opened, "connection is opened earlier");
+
+ reconnected = true;
+ });
+
+ source.onmessage = t.step_func(function(e) {
+ if (!opened) {
+ opened = true;
+ assert_false(reconnected, "have reconnected before first message");
+ assert_equals(e.data, "ok");
+ }
+ else {
+ assert_true(reconnected, "Got reconnection event");
+ assert_equals(e.data, "data");
+ source.close()
+ t.done()
+ }
+ });
+ });
+
+ </script>
+ </body>
+</html>
+