diff options
author | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
---|---|---|
committer | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
commit | 5f8de423f190bbb79a62f804151bc24824fa32d8 (patch) | |
tree | 10027f336435511475e392454359edea8e25895d /dom/presentation/tests/mochitest/test_presentation_tcp_receiver_establish_connection_timeout.html | |
parent | 49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff) | |
download | UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip |
Add m-esr52 at 52.6.0
Diffstat (limited to 'dom/presentation/tests/mochitest/test_presentation_tcp_receiver_establish_connection_timeout.html')
-rw-r--r-- | dom/presentation/tests/mochitest/test_presentation_tcp_receiver_establish_connection_timeout.html | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/dom/presentation/tests/mochitest/test_presentation_tcp_receiver_establish_connection_timeout.html b/dom/presentation/tests/mochitest/test_presentation_tcp_receiver_establish_connection_timeout.html new file mode 100644 index 000000000..1dc002644 --- /dev/null +++ b/dom/presentation/tests/mochitest/test_presentation_tcp_receiver_establish_connection_timeout.html @@ -0,0 +1,81 @@ +<!DOCTYPE HTML> +<html> +<!-- Any copyright is dedicated to the Public Domain. + - http://creativecommons.org/publicdomain/zero/1.0/ --> +<head> + <meta charset="utf-8"> + <title>Test for connection establishing timeout of B2G Presentation API at receiver side</title> + <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> + <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> +</head> +<body> +<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1069230">Test for connection establishing timeout of B2G Presentation API at receiver side</a> +<script type="application/javascript;version=1.8"> + +'use strict'; + +var gScript = SpecialPowers.loadChromeScript(SimpleTest.getTestFileURL('PresentationSessionChromeScript.js')); + +var obs = SpecialPowers.Cc["@mozilla.org/observer-service;1"] + .getService(SpecialPowers.Ci.nsIObserverService); + +function setup() { + return new Promise(function(aResolve, aReject) { + gScript.sendAsyncMessage('trigger-device-add'); + + var promise = new Promise(function(aResolve, aReject) { + // In order to trigger timeout, do not resolve the promise. + }); + obs.notifyObservers(promise, 'setup-request-promise', null); + + aResolve(); + }); +} + +function testIncomingSessionRequestReceiverLaunchTimeout() { + return new Promise(function(aResolve, aReject) { + gScript.addMessageListener('receiver-launching', function launchReceiverHandler(aSessionId) { + gScript.removeMessageListener('receiver-launching', launchReceiverHandler); + info("Trying to launch receiver page."); + }); + + gScript.addMessageListener('control-channel-closed', function controlChannelClosedHandler(aReason) { + gScript.removeMessageListener('control-channel-closed', controlChannelClosedHandler); + is(aReason, 0x80530017 /* NS_ERROR_DOM_TIMEOUT_ERR */, "The control channel is closed due to timeout."); + aResolve(); + }); + + gScript.sendAsyncMessage('trigger-incoming-session-request', 'http://example.com'); + }); +} + +function teardown() { + gScript.addMessageListener('teardown-complete', function teardownCompleteHandler() { + gScript.removeMessageListener('teardown-complete', teardownCompleteHandler); + gScript.destroy(); + SimpleTest.finish(); + }); + + gScript.sendAsyncMessage('teardown'); +} + +function runTests() { + setup(). + then(testIncomingSessionRequestReceiverLaunchTimeout). + then(teardown); +} + +SimpleTest.waitForExplicitFinish(); +SpecialPowers.pushPermissions([ + {type: 'presentation-device-manage', allow: false, context: document}, +], function() { + SpecialPowers.pushPrefEnv({ 'set': [["dom.presentation.enabled", true], + ["dom.presentation.receiver.enabled", true], + ["dom.presentation.session_transport.data_channel.enable", false], + ["presentation.receiver.loading.timeout", 10]]}, + runTests); +}); + +</script> +</body> +</html> |