Pin Chrome's shortcut to the Win10 Start menu on install and OS upgrade.
[chromium-blink-merge.git] / chrome / test / media_router / resources / common.js
blobf5ff2fc85f265c2dc05aad76097cca1b54b71a2f
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.
5  *
6  * @fileoverview Common APIs for presentation integration tests.
7  *
8  */
10 var startSessionPromise = null;
11 var currentSession = null;
12 var presentation = window.navigator.presentation;
13 var presUrl = "http://www.google.com/#__testprovider__=true";
15 /**
16  * Waits until one device is available.
17  */
18 function waitUntilDeviceAvailable() {
19   presentation.getAvailability(presUrl).then(function(availability) {
20     console.log('availability ' + availability.value + '\n');
21     if (availability.value) {
22       sendResult(true, '');
23     } else {
24       sendResult(false, 'device unavailable');
25     }
26   }).catch(function(){
27     sendResult(false, 'got error');
28   });
31 /**
32  * Starts session.
33  */
34 function startSession() {
35   var presId = Math.random().toFixed(6).substr(2);
36   startSessionPromise = presentation.startSession(presUrl, presId);
37   console.log('start session');
38   sendResult(true, '');
41 /**
42  * Checks if the session has been started successfully.
43  */
44 function checkSession() {
45   if (!startSessionPromise) {
46     sendResult(false, 'Failed to start session');
47   } else {
48     startSessionPromise.then(function (currentSession) {
49       if(!currentSession) {
50         sendResult(false, 'Failed to start session');
51       } else {
52         // set the new session
53         currentSession = currentSession;
54         sendResult(true, '');
55       }
56     }).catch(function() {
57       // close old session if exists
58       currentSession && currentSession.close();
59       sendResult(false, 'Failed to start session');
60     })
61   }
65 /**
66  * Stops current session.
67  */
68 function stopSession() {
69   if (currentSession) {
70     currentSession.close();
71   }
72   sendResult(true, '');
76 /**
77  * Sends the test result back to browser test.
78  * @param passed true if test passes, otherwise false.
79  * @param errorMessage empty string if test passes, error message if test
80  *                      fails.
81  */
82 function sendResult(passed, errorMessage) {
83   window.domAutomationController.send(JSON.stringify({
84     passed: passed,
85     errorMessage: errorMessage
86   }));