| <html> | |
| <body> | |
| <p>Test EventSource text/event-stream parsing. Should print a series of PASS messages followed by DONE.</p> | |
| <div id="result"></div> | |
| <script> | |
| function log(msg) { | |
| document.getElementById("result").innerHTML += msg + "<br>"; | |
| } | |
| if (window.testRunner) { | |
| testRunner.dumpAsText(); | |
| testRunner.waitUntilDone(); | |
| } | |
| var count = -1; | |
| var es = new EventSource("resources/event-stream.php"); | |
| es.onopen = function (evt) { | |
| if (!evt.data) | |
| log("PASS: got open event"); | |
| else | |
| log("PASS: got open event from server"); | |
| }; | |
| es.onmessage = function (evt) { | |
| switch(count++) { | |
| case -1: | |
| if (evt.data == "\n\n") | |
| log("PASS: received event with two newlines"); | |
| break; | |
| case 0: | |
| if (evt.data == "simple") | |
| log("PASS: received event with data \"simple\""); | |
| break; | |
| case 1: | |
| if (evt.data == "spanning\nmultiple\n\nlines\n") | |
| log("PASS: received event with data spanning multiple lines"); | |
| break; | |
| case 2: | |
| if (evt.data == "id is 1" && evt.lastEventId == "1") | |
| log("PASS: received event and lastEventId is \"1\""); | |
| break | |
| case 3: | |
| if (evt.data == "id is still 1" && evt.lastEventId == "1") | |
| log("PASS: received event and lastEventId is still \"1\""); | |
| break; | |
| case 4: | |
| if (evt.data == "no id" && evt.lastEventId == "") | |
| log("PASS: received event and lastEventId has been cleared"); | |
| break; | |
| case 5: | |
| if (evt.data == "a message event with the name \"message\"") | |
| log("PASS: received event and the event name has been reset"); | |
| break; | |
| case 6: | |
| if (evt.data == "a line ending with crlf\na line with a : (colon)\na line ending with cr"); | |
| log("PASS: received event with data that contains a colon"); | |
| break; | |
| default: | |
| log("FAIL: got unexpected event"); | |
| es.close(); | |
| } | |
| }; | |
| es.onerror = function () { | |
| es.close(); | |
| if (count != 7) | |
| log("FAIL: got unexpected error event"); | |
| else | |
| log("DONE"); | |
| if (window.testRunner) | |
| testRunner.notifyDone(); | |
| }; | |
| </script> | |
| </body> | |
| </html> |