1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 function verifyActiveDevices(output_id, input_id) {
7 chrome.test.callbackPass(function(outputInfo, inputInfo) {
8 var outputFound = false;
9 var inputFound = false;
10 for (var i = 0; i < outputInfo.length; ++i) {
11 if (outputInfo[i].isActive) {
12 chrome.test.assertTrue(outputInfo[i].id == output_id);
16 for (var i = 0; i < inputInfo.length; ++i) {
17 if (inputInfo[i].isActive) {
18 chrome.test.assertTrue(inputInfo[i].id == input_id);
22 chrome.test.assertTrue(outputFound);
23 chrome.test.assertTrue(inputFound);
28 function verifyDeviceProperties(output_id, input_id,
29 output_props, input_props) {
31 chrome.test.callbackPass(function(outputInfo, inputInfo) {
32 var outputFound = false;
33 var inputFound = false;
34 for (var i = 0; i < outputInfo.length; ++i) {
35 if (outputInfo[i].id == output_id) {
36 chrome.test.assertTrue(outputInfo[i].volume == output_props.volume);
37 chrome.test.assertTrue(
38 outputInfo[i].isMuted == output_props.isMuted);
42 for (var i = 0; i < inputInfo.length; ++i) {
43 if (inputInfo[i].id == input_id) {
44 chrome.test.assertTrue(inputInfo[i].gain == input_props.gain);
45 chrome.test.assertTrue(inputInfo[i].isMuted == input_props.isMuted);
49 chrome.test.assertTrue(outputFound);
50 chrome.test.assertTrue(inputFound);
55 function setActiveDevicesAndVerify(output_id, input_id) {
56 chrome.audio.setActiveDevices([output_id, input_id],
57 chrome.test.callbackPass(function() {
58 verifyActiveDevices(output_id, input_id);
62 function setPropertiesAndVerify(outputInfo, inputInfo) {
63 var outputProps = new Object;
64 outputProps.isMuted = true;
65 outputProps.volume = 55;
66 chrome.audio.setProperties(outputInfo.id, outputProps,
67 chrome.test.callbackPass(function() {
68 // Once the output properties have been set, set input properties, then
70 var inputProps = new Object;
71 inputProps.isMuted = true;
73 chrome.audio.setProperties(inputInfo.id, inputProps,
74 chrome.test.callbackPass(function() {
75 verifyDeviceProperties(outputInfo.id, inputInfo.id,
76 outputProps, inputProps);
81 chrome.test.runTests([
82 function getInfoTest() {
84 chrome.test.callbackPass(function(outputInfo, inputInfo) {
88 function setActiveDevicesTest() {
90 chrome.test.callbackPass(function(outputInfo, inputInfo) {
91 setActiveDevicesAndVerify(outputInfo[2].id, inputInfo[1].id);
95 function setPropertiesTest() {
97 chrome.test.callbackPass(function(outputInfo, inputInfo) {
98 setPropertiesAndVerify(outputInfo[0], inputInfo[1]);