diff options
Diffstat (limited to 'dom/presentation/tests/mochitest/file_presentation_receiver_establish_connection_error.html')
-rw-r--r-- | dom/presentation/tests/mochitest/file_presentation_receiver_establish_connection_error.html | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/dom/presentation/tests/mochitest/file_presentation_receiver_establish_connection_error.html b/dom/presentation/tests/mochitest/file_presentation_receiver_establish_connection_error.html new file mode 100644 index 000000000..6b1f2152f --- /dev/null +++ b/dom/presentation/tests/mochitest/file_presentation_receiver_establish_connection_error.html @@ -0,0 +1,79 @@ +<!DOCTYPE HTML> +<html> +<head> + <meta charset="utf-8"> + <title>Test for connection establishing errors of B2G Presentation API at receiver side</title> +</head> +<body> +<div id="content"></div> +<script type="application/javascript;version=1.7"> + +"use strict"; + +function is(a, b, msg) { + if (a === b) { + alert('OK ' + msg); + } else { + alert('KO ' + msg + ' | reason: ' + a + ' != ' + b); + } +} + +function ok(a, msg) { + alert((a ? 'OK ' : 'KO ') + msg); +} + +function info(msg) { + alert('INFO ' + msg); +} + +function command(name, data) { + alert('COMMAND ' + JSON.stringify({name: name, data: data})); +} + +function finish() { + alert('DONE'); +} + +function testConnectionAvailable() { + return new Promise(function(aResolve, aReject) { + ok(navigator.presentation, "navigator.presentation should be available."); + ok(navigator.presentation.receiver, "navigator.presentation.receiver should be available."); + aResolve(); + }); +} + +function testUnexpectedControlChannelClose() { + // Trigger the control channel to be closed with error code. + command({ name: 'trigger-control-channel-close', data: 0x80004004 /* NS_ERROR_ABORT */ }); + + return new Promise(function(aResolve, aReject) { + return Promise.race([ + navigator.presentation.receiver.connectionList.then( + (aList) => { + ok(false, "Should not get a connection list.") + aReject(); + }, + (aError) => { + ok(false, "Error occurred when getting the connection list: " + aError); + aReject(); + } + ), + new Promise( + () => { + setTimeout(() => { + ok(true, "Not getting a conenction list."); + aResolve(); + }, 3000); + } + ), + ]); + }); +} + +testConnectionAvailable(). +then(testUnexpectedControlChannelClose). +then(finish); + +</script> +</body> +</html> |