blob: 41cb360bb1d330181652e9a38eeb2b21cc5ad634 [file] [log] [blame]
<!doctype html>
<meta charset="utf-8">
<title>Calling "reconnect" with a wrong presentation ID fails with a NotFoundError exception</title>
<link rel="author" title="Franck William Taffo" href="http://www.fokus.fraunhofer.de">
<link rel="author" title="Louay Bassbouss" href="http://www.fokus.fraunhofer.de">
<link rel="author" title="Tomoyuki Shimizu" href="https://github.com/tomoyukilabs">
<link rel="help" href="http://w3c.github.io/presentation-api/#dom-presentationrequest-reconnect">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="common.js"></script>
<p>Click the button below to start the manual test. Select a presentation device after the selection dialog is prompted.
The test assumes that at least one presentation device is available. The test passes if a "PASS" result appears.</p>
<button id="startBtn">Start Test</button>
<script>
promise_test(async t => {
const startBtn = document.getElementById('startBtn');
const wrongPresentationId = "wrongPresentationId";
const request1 = new PresentationRequest(presentationUrls);
const request2 = new PresentationRequest('https://www.w3.org');
let connection1, eventWatcher1;
t.add_cleanup(() => {
if (connection1) {
connection1.onconnect = () => { connection1.terminate(); }
if (connection1.state === 'closed')
request1.reconnect(connection1.id);
else
connection1.terminate();
}
});
await promise_rejects(t, 'NotFoundError', request1.reconnect(wrongPresentationId),
'Reconnecting with an unknown presentation ID fails with a NotFoundError exception.');
setup({explicit_timeout: true});
const clickWatcher = new EventWatcher(t, startBtn, 'click');
await clickWatcher.wait_for('click');
connection1 = await request1.start();
t.step_timeout(() => {
t.force_timeout();
t.done();
}, 5000);
startBtn.disabled = true;
eventWatcher1 = new EventWatcher(t, connection1, ['connect', 'close', 'terminate']);
await eventWatcher1.wait_for('connect');
connection1.close();
await eventWatcher1.wait_for('close');
await promise_rejects(t, 'NotFoundError', request2.reconnect(connection1.id),
'Reconnecting with a presentation ID on a presentation request with a different URL fails with a NotFoundError exception.');
await request1.reconnect(connection1.id);
await eventWatcher1.wait_for('connect');
connection1.terminate();
await eventWatcher1.wait_for('terminate');
});
</script>