Revert "Add sbox tests related to warming up of locales."
[chromium-blink-merge.git] / chrome / test / media_router / resources / common.js
blobef984f07528ff5dee5790d0663c6a5640f1f997c
1 /**
2 * Copyright 2015 The Chromium Authors. All rights reserved.
3 * Use of this source code is governed by a BSD-style license that can be
4 * found in the LICENSE file.
6 * @fileoverview Common APIs for presentation integration tests.
8 */
10 var startSessionPromise = null;
11 var startedSession = null;
12 var reconnectedSession = null;
13 var presentationUrl = "http://www.google.com/#__testprovider__=true";
14 var startSessionRequest = new PresentationRequest(presentationUrl);
15 var defaultRequestSessionId = null;
17 window.navigator.presentation.defaultRequest = startSessionRequest;
18 window.navigator.presentation.defaultRequest.onsessionconnect = function(e) {
19 defaultRequestSessionId = e.session.id;
22 /**
23 * Waits until one device is available.
25 function waitUntilDeviceAvailable() {
26 startSessionRequest.getAvailability(presentationUrl).then(
27 function(availability) {
28 console.log('availability ' + availability.value + '\n');
29 if (availability.value) {
30 sendResult(true, '');
31 } else {
32 sendResult(false, 'device unavailable');
34 }).catch(function(){
35 sendResult(false, 'got error');
36 });
39 /**
40 * Starts session.
42 function startSession() {
43 startSessionPromise = startSessionRequest.start();
44 console.log('start session');
45 sendResult(true, '');
48 /**
49 * Checks if the session has been started successfully.
51 function checkSession() {
52 if (!startSessionPromise) {
53 sendResult(false, 'Failed to start session');
54 } else {
55 startSessionPromise.then(function(session) {
56 if(!session) {
57 sendResult(false, 'Failed to start session');
58 } else {
59 // set the new session
60 startedSession = session;
61 sendResult(true, '');
63 }).catch(function() {
64 // close old session if exists
65 startedSession && startedSession.close();
66 sendResult(false, 'Failed to start session');
72 /**
73 * Stops current session.
75 function stopSession() {
76 if (startedSession) {
77 startedSession.close();
79 sendResult(true, '');
83 /**
84 * Reconnects to |sessionId| and verifies that it succeeds.
85 * @param {!string} sessionId ID of session to reconnect.
87 function reconnectSession(sessionId) {
88 var reconnectSessionRequest = new PresentationRequest(presentationUrl);
89 reconnectSessionRequest.reconnect(sessionId).then(function(session) {
90 if (!session) {
91 sendResult(false, 'reconnectSession returned null session');
92 } else {
93 reconnectedSession = session;
94 sendResult(true, '');
96 }).catch(function(error) {
97 sendResult(false, 'reconnectSession failed: ' + error.message);
98 });
102 * Calls reconnect(sessionId) and verifies that it fails.
103 * @param {!string} sessionId ID of session to reconnect.
104 * @param {!string} expectedErrorMessage
106 function reconnectSessionAndExpectFailure(sessionId, expectedErrorMessage) {
107 var reconnectSessionRequest = new PresentationRequest(presentationUrl);
108 reconnectSessionRequest.reconnect(sessionId).then(function(session) {
109 sendResult(false, 'reconnect() unexpectedly succeeded.');
110 }).catch(function(error) {
111 if (error.message.indexOf(expectedErrorMessage) > -1) {
112 sendResult(true, '');
113 } else {
114 sendResult(false,
115 'Error message mismatch. Expected: ' + expectedErrorMessage +
116 ', actual: ' + error.message);
122 * Sends the test result back to browser test.
123 * @param passed true if test passes, otherwise false.
124 * @param errorMessage empty string if test passes, error message if test
125 * fails.
127 function sendResult(passed, errorMessage) {
128 window.domAutomationController.send(JSON.stringify({
129 passed: passed,
130 errorMessage: errorMessage
131 }));