Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(40)

Unified Diff: extensions/test/data/api_test/audio/test.js

Issue 2688773002: Restrict deprecated parts of audio API usage to whitelisted apps (Closed)
Patch Set: . Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « extensions/test/data/api_test/audio/remove_nodes/background.js ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: extensions/test/data/api_test/audio/test.js
diff --git a/extensions/test/data/api_test/audio/test.js b/extensions/test/data/api_test/audio/test.js
index c345507a99a7c50c5fb25f662bd59ef67cba2089..22cfc2b15e928bbaae43f2ff6d2d3730a9094b9c 100644
--- a/extensions/test/data/api_test/audio/test.js
+++ b/extensions/test/data/api_test/audio/test.js
@@ -66,45 +66,30 @@ function getDeviceIds(devices) {
return devices.map(function(device) {return device.id;}).sort();
}
-chrome.test.runTests([
- function getInfoTest() {
- // Test output devices. Maps device ID -> tested device properties.
- var kTestOutputDevices = {
- '30001': {
- id: '30001',
- name: 'Jabra Speaker: Jabra Speaker 1'
- },
- '30002': {
- id: '30002',
- name: 'Jabra Speaker: Jabra Speaker 2'
- },
- '30003': {
- id: '30003',
- name: 'HDMI output: HDA Intel MID'
- }
- };
+function EventListener(targetEvent) {
+ this.targetEvent = targetEvent;
+ this.listener = this.handleEvent.bind(this);
+ this.targetEvent.addListener(this.listener);
+ this.eventCount = 0;
+}
- // Test input devices. Maps device ID -> tested device properties.
- var kTestInputDevices = {
- '40001': {
- id: '40001',
- name: 'Jabra Mic: Jabra Mic 1'
- },
- '40002': {
- id: '40002',
- name: 'Jabra Mic: Jabra Mic 2'
- },
- '40003': {
- id: '40003',
- name: 'Webcam Mic: Logitech Webcam'
- }
- };
+EventListener.prototype.handleEvent = function() {
+ ++this.eventCount;
+}
- chrome.audio.getInfo(chrome.test.callbackPass(
- function(outputInfo, inputInfo) {
- assertDevicesMatch(kTestOutputDevices, outputInfo);
- assertDevicesMatch(kTestInputDevices, inputInfo);
- }));
+EventListener.prototype.reset = function() {
+ this.targetEvent.removeListener(this.listener);
+}
+
+var deviceChangedListener = null;
+
+chrome.test.runTests([
+ // Sets up a listener for audio.onDeviceChanged event -
+ // |verifyNoDeviceChangedEvents| test will later verify that no
+ // onDeviceChanged events have been observed.
+ function startDeviceChangedListener() {
+ deviceChangedListener = new EventListener(chrome.audio.onDeviceChanged);
+ chrome.test.succeed();
},
function getDevicesTest() {
@@ -319,78 +304,6 @@ chrome.test.runTests([
}));
},
- function deprecatedSetActiveDevicesTest() {
- //Test output devices. Maps device ID -> tested device properties.
- var kTestDevices = {
- '30001': {
- id: '30001',
- isActive: false
- },
- '30002': {
- id: '30002',
- isActive: false
- },
- '30003': {
- id: '30003',
- isActive: true
- },
- '40001': {
- id: '40001',
- isActive: false
- },
- '40002': {
- id: '40002',
- isActive: true
- },
- '40003': {
- id: '40003',
- isActive: false
- }
- };
-
- chrome.audio.setActiveDevices([
- '30003',
- '40002'
- ], chrome.test.callbackPass(function() {
- chrome.audio.getDevices(chrome.test.callbackPass(function(devices) {
- assertDevicesMatch(kTestDevices, devices);
- }));
- }));
- },
-
- function deprecatedSetPropertiesTest() {
- chrome.audio.getDevices(chrome.test.callbackPass(function(initial) {
- var expectedDevices = deviceListToExpectedDevicesMap(initial);
-
- // Update expected input devices with values that should be changed in
- // test.
- var updatedInput = expectedDevices['40002'];
- chrome.test.assertFalse(updatedInput.isMuted);
- chrome.test.assertFalse(updatedInput.gain === 55);
- updatedInput.isMuted = true;
- updatedInput.level = 55;
-
- // Update expected output devices with values that should be changed in
- // test.
- var updatedOutput = expectedDevices['30001'];
- chrome.test.assertFalse(updatedOutput.volume === 35);
- updatedOutput.level = 35;
-
- chrome.audio.setProperties('30001', {
- volume: 35
- }, chrome.test.callbackPass(function() {
- chrome.audio.setProperties('40002', {
- isMuted: true,
- gain: 55
- }, chrome.test.callbackPass(function() {
- chrome.audio.getDevices(chrome.test.callbackPass(function(devices) {
- assertDevicesMatch(expectedDevices, devices);
- }));
- }));
- }));
- }));
- },
-
function setPropertiesTest() {
chrome.audio.getDevices(chrome.test.callbackPass(function(initial) {
var expectedDevices = deviceListToExpectedDevicesMap(initial);
@@ -450,30 +363,6 @@ chrome.test.runTests([
});
},
- function setPropertiesInvalidValuesTest() {
- chrome.audio.getDevices(chrome.test.callbackPass(function(initial) {
- var expectedDevices = deviceListToExpectedDevicesMap(initial);
- var expectedError = 'Could not set volume/gain properties';
-
- chrome.audio.setProperties('30001', {
- isMuted: true,
- // Output device - should have volume set.
- gain: 55
- }, chrome.test.callbackFail(expectedError, function() {
- chrome.audio.setProperties('40002', {
- isMuted: true,
- // Input device - should have gain set.
- volume:55
- }, chrome.test.callbackFail(expectedError, function() {
- // Assert that device properties haven't changed.
- chrome.audio.getDevices(chrome.test.callbackPass(function(devices) {
- assertDevicesMatch(expectedDevices, devices);
- }));
- }));
- }));
- }));
- },
-
function setActiveDevicesTest() {
chrome.audio.setActiveDevices({
input: ['40002', '40003'],
@@ -567,4 +456,82 @@ chrome.test.runTests([
}));
}));
},
+
+ function verifyNoDeviceChangedEvents() {
+ chrome.test.assertTrue(!!deviceChangedListener);
+ chrome.test.assertEq(0, deviceChangedListener.eventCount);
+ deviceChangedListener.reset();
+ deviceChangedListener = null;
+ chrome.test.succeed();
+ },
+
+ // Tests verifying the app doesn't have access to deprecated part of the API:
+ function deprecated_GetInfoTest() {
+ chrome.audio.getInfo(chrome.test.callbackFail(
+ 'audio.getInfo is deprecated, use audio.getDevices instead.'));
+ },
+
+ function deprecated_setProperties_isMuted() {
+ chrome.audio.getDevices(chrome.test.callbackPass(function(initial) {
+ var expectedDevices = deviceListToExpectedDevicesMap(initial);
+ var expectedError =
+ '|isMuted| property is deprecated, use |audio.setMute|.';
+
+ chrome.audio.setProperties('30001', {
+ isMuted: true,
+ // Output device - should have volume set.
+ level: 55
+ }, chrome.test.callbackFail(expectedError, function() {
+ // Assert that device properties haven't changed.
+ chrome.audio.getDevices(chrome.test.callbackPass(function(devices) {
+ assertDevicesMatch(expectedDevices, devices);
+ }));
+ }));
+ }));
+ },
+
+ function deprecated_setProperties_volume() {
+ chrome.audio.getDevices(chrome.test.callbackPass(function(initial) {
+ var expectedDevices = deviceListToExpectedDevicesMap(initial);
+ var expectedError = '|volume| property is deprecated, use |level|.';
+
+ chrome.audio.setProperties('30001', {
+ volume: 2,
+ // Output device - should have volume set.
+ level: 55
+ }, chrome.test.callbackFail(expectedError, function() {
+ // Assert that device properties haven't changed.
+ chrome.audio.getDevices(chrome.test.callbackPass(function(devices) {
+ assertDevicesMatch(expectedDevices, devices);
+ }));
+ }));
+ }));
+ },
+
+ function deprecated_setProperties_gain() {
+ chrome.audio.getDevices(chrome.test.callbackPass(function(initial) {
+ var expectedDevices = deviceListToExpectedDevicesMap(initial);
+ var expectedError = '|gain| property is deprecated, use |level|.';
+
+ chrome.audio.setProperties('40001', {
+ gain: 2,
+ // Output device - should have volume set.
+ level: 55
+ }, chrome.test.callbackFail(expectedError, function() {
+ // Assert that device properties haven't changed.
+ chrome.audio.getDevices(chrome.test.callbackPass(function(devices) {
+ assertDevicesMatch(expectedDevices, devices);
+ }));
+ }));
+ }));
+ },
+
+ function deprecated_SetActiveDevicesTest() {
+ var kExpectedError =
+ 'String list |ids| is deprecated, use DeviceIdLists type.';
+ chrome.audio.setActiveDevices([
+ '30003',
+ '40002'
+ ], chrome.test.callbackFail(kExpectedError));
+ },
]);
« no previous file with comments | « extensions/test/data/api_test/audio/remove_nodes/background.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698