mirror of
https://github.com/roytam1/palemoon27.git
synced 2026-06-02 08:09:36 +00:00
46 lines
1.7 KiB
HTML
46 lines
1.7 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<title>EventSource: request cancellation</title>
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
</head>
|
|
<body>
|
|
<div id="log"></div>
|
|
<script>
|
|
var test = async_test(null, {timeout: 5000});
|
|
var url = "resources/message.py?sleep=1000&message=" + encodeURIComponent("retry:1000\ndata:abc\n\n");
|
|
var es = new EventSource(url);
|
|
var lastEventTime = 0;
|
|
var lastEventType = "";
|
|
var readyStateAtLastEvent = -1;
|
|
es.onmessage =
|
|
es.onerror =
|
|
es.onopen = function (event) {
|
|
lastEventTime = (new Date()).getTime();
|
|
lastEventType = event.type;
|
|
readyStateAtLastEvent = es.readyState;
|
|
};
|
|
setTimeout(function () {
|
|
if (typeof window.stop === "function") {
|
|
window.stop();
|
|
}
|
|
}, 100);
|
|
setTimeout(function () {
|
|
test.step(function () {
|
|
var isActive = ((new Date()).getTime() - lastEventTime) < 2500;
|
|
if (es.readyState === EventSource.CLOSED) {
|
|
assert_true(!isActive, "In case EventSource was stopped, it should not be active");
|
|
assert_equals(lastEventType, "error", "In case EventSource was stopped, the last event should be an error event");
|
|
assert_equals(readyStateAtLastEvent, EventSource.CLOSED, "In case EventSource was stopped, readyState at last event should be closed");
|
|
} else {
|
|
assert_true(isActive, "EventSource is active, but readyState is not EventSource.CLOSED.");
|
|
}
|
|
});
|
|
es.close();
|
|
test.done();
|
|
}, 4000);
|
|
</script>
|
|
</body>
|
|
</html>
|