Implement InputDeviceInfo.getCapabilities() for audio devices
Bug: 817769
Change-Id: Iae2abc17aee26c5586c38412140f18fbacc66568
Reviewed-on: https://chromium-review.googlesource.com/945590
Reviewed-by: Philip Jägenstedt <foolip@chromium.org>
Reviewed-by: Guido Urdaneta <guidou@chromium.org>
Commit-Queue: Chandan Padhi <c.padhi@samsung.com>
Cr-Commit-Position: refs/heads/master@{#542312}
diff --git a/mediacapture-streams/MediaDevices-enumerateDevices.https.html b/mediacapture-streams/MediaDevices-enumerateDevices.https.html
index c623aec..83604b1 100644
--- a/mediacapture-streams/MediaDevices-enumerateDevices.https.html
+++ b/mediacapture-streams/MediaDevices-enumerateDevices.https.html
@@ -16,28 +16,30 @@
<script>
"use strict";
//NOTE ALEX: for completion, a test for ondevicechange event is missing.
-test(function () {
+promise_test(function() {
assert_true(undefined !== navigator.mediaDevices.enumerateDevices, "navigator.mediaDevices.enumerateDevices exists");
- var p = navigator.mediaDevices.enumerateDevices()
- p.then(function(list){
+ return navigator.mediaDevices.enumerateDevices().then(function(list) {
for (let mediainfo of list) {
assert_true(undefined !== mediainfo.deviceId, "mediaInfo's deviceId should exist.");
assert_true(undefined !== mediainfo.kind, "mediaInfo's kind should exist.");
assert_true(undefined !== mediainfo.label, "mediaInfo's label should exist.");
assert_true(undefined !== mediainfo.groupId, "mediaInfo's groupId should exist.");
// TODO the values of some of those fields should be empty string by default if no permission has been requested.
- if ( mediainfo.kind == "audioinput" ||
- mediainfo.kind == "videoinput") {
+ if ( mediainfo.kind == "audioinput" || mediainfo.kind == "videoinput") {
assert_true(mediainfo instanceof InputDeviceInfo);
+ var capabilities = mediainfo.getCapabilities();
+ assert_equals(typeof capabilities, "object", "capabilities must be an object.");
+ assert_equals(typeof capabilities.deviceId, "string", "deviceId must be a string.");
+ assert_equals(typeof capabilities.groupId, "string", "groupId must be a string.");
+ if (mediainfo.kind == "audioinput") {
+ assert_equals(typeof capabilities.echoCancellation, "object", "echoCancellation must be an object.");
+ }
} else if ( mediainfo.kind == "audiooutput" ) {
assert_true(mediainfo instanceof MediaDeviceInfo);
} else {
assert_unreached("mediainfo.kind should be one of 'audioinput', 'videoinput', or 'audiooutput'.")
}
}
- })
- p.catch(function(err){
- assert_unreached("A call to enumerateDevices() should never fail.");
});
}, "mediaDevices.enumerateDevices() is present and working on navigator");
</script>