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

Side by Side Diff: third_party/WebKit/LayoutTests/imagecapture/MediaStreamTrack-getCapabilities.html

Issue 2747573002: Image Capture: MediaStreamTrack::getCapabilities() (Closed)
Patch Set: haraken@ and reillyg@s comments Created 3 years, 9 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 unified diff | Download patch
OLDNEW
(Empty)
1 <!DOCTYPE html>
2 <script src="../resources/testharness.js"></script>
3 <script src="../resources/testharnessreport.js"></script>
4 <script src="../resources/mojo-helpers.js"></script>
5 <script src="resources/mock-imagecapture.js"></script>
6 <body>
7 <canvas id='canvas' width=10 height=10/>
8 </body>
9 <script>
10
11 const meteringModeNames = ["none", "manual", "single-shot", "continuous"];
12 const fillLightModeNames = ["none", "off", "auto", "flash", "torch"];
13
14 // This test verifies that MediaTrackCapabilities are returned upon
15 // MediaStreamTrack.getCapabilities(), with a mock Mojo service implementation.
16
17 async_test(function(t) {
18 var canvas = document.getElementById('canvas');
19 var context = canvas.getContext("2d");
20 context.fillStyle = "red";
21 context.fillRect(0, 0, 10, 10);
22
23 var mock_capabilities;
24 mockImageCaptureReady
25 .then(mock => {
26 mock_capabilities = mock.capabilities();
27
28 // |stream| must be created _after_ |mock| is constructed to give the
29 // latter time to override the bindings.
30 var stream = canvas.captureStream();
31 assert_equals(stream.getAudioTracks().length, 0);
32 assert_equals(stream.getVideoTracks().length, 1);
33
34 var videoTrack = stream.getVideoTracks()[0];
35 assert_equals(typeof videoTrack.getCapabilities, 'function');
36
37 // |videoTrack|s capabilities, just like the actual capture, is a process
38 // kicked right after creation, we introduce a small delay to allow for
39 // those to be collected.
40 setTimeout(() => {
41 capabilities = videoTrack.getCapabilities();
42 assert_equals(typeof capabilities, 'object');
43
44 // TODO(mcasas): Change the following checks when the supported modes
45 // are changed to a list: https://crbug.com/700607.
46 assert_equals(capabilities.focusMode[0],
47 meteringModeNames[mock_capabilities.focus_mode], 'focusMode');
48
49 assert_equals(capabilities.exposureMode[0],
50 meteringModeNames[mock_capabilities.exposure_mode], 'exposureMode;') ;
51
52 assert_equals(capabilities.whiteBalanceMode[0],
53 meteringModeNames[mock_capabilities.white_balance_mode],
54 'whiteBalanceMode');
55
56 assert_true(capabilities.exposureCompensation instanceof
57 MediaSettingsRange);
58 assert_equals(capabilities.exposureCompensation.max,
59 mock_capabilities.exposure_compensation.max);
60 assert_equals(capabilities.exposureCompensation.min,
61 mock_capabilities.exposure_compensation.min);
62 assert_equals(capabilities.exposureCompensation.current,
63 mock_capabilities.exposure_compensation.current);
64 assert_equals(capabilities.exposureCompensation.step,
65 mock_capabilities.exposure_compensation.step);
66
67 assert_true(capabilities.colorTemperature instanceof MediaSettingsRange) ;
68 assert_equals(capabilities.colorTemperature.max,
69 mock_capabilities.color_temperature.max);
70 assert_equals(capabilities.colorTemperature.min,
71 mock_capabilities.color_temperature.min);
72 assert_equals(capabilities.colorTemperature.current,
73 mock_capabilities.color_temperature.current);
74 assert_equals(capabilities.colorTemperature.step,
75 mock_capabilities.color_temperature.step);
76
77 assert_true(capabilities.iso instanceof MediaSettingsRange);
78 assert_equals(capabilities.iso.max, mock_capabilities.iso.max);
79 assert_equals(capabilities.iso.min, mock_capabilities.iso.min);
80 assert_equals(capabilities.iso.current, mock_capabilities.iso.current);
81 assert_equals(capabilities.iso.step, mock_capabilities.iso.step);
82
83 assert_true(capabilities.brightness instanceof MediaSettingsRange);
84 assert_equals(capabilities.brightness.max,
85 mock_capabilities.brightness.max);
86 assert_equals(capabilities.brightness.min,
87 mock_capabilities.brightness.min);
88 assert_equals(capabilities.brightness.current,
89 mock_capabilities.brightness.current);
90 assert_equals(capabilities.brightness.step,
91 mock_capabilities.brightness.step);
92
93 assert_true(capabilities.contrast instanceof MediaSettingsRange);
94 assert_equals(capabilities.contrast.max, mock_capabilities.contrast.max) ;
95 assert_equals(capabilities.contrast.min, mock_capabilities.contrast.min) ;
96 assert_equals(capabilities.contrast.current,
97 mock_capabilities.contrast.current);
98 assert_equals(capabilities.contrast.step,
99 mock_capabilities.contrast.step);
100
101 assert_true(capabilities.saturation instanceof MediaSettingsRange);
102 assert_equals(capabilities.saturation.max,
103 mock_capabilities.saturation.max);
104 assert_equals(capabilities.saturation.min,
105 mock_capabilities.saturation.min);
106 assert_equals(capabilities.saturation.current,
107 mock_capabilities.saturation.current);
108 assert_equals(capabilities.saturation.step,
109 mock_capabilities.saturation.step);
110
111 assert_true(capabilities.sharpness instanceof MediaSettingsRange);
112 assert_equals(capabilities.sharpness.max,
113 mock_capabilities.sharpness.max);
114 assert_equals(capabilities.sharpness.min,
115 mock_capabilities.sharpness.min);
116 assert_equals(capabilities.sharpness.current,
117 mock_capabilities.sharpness.current);
118 assert_equals(capabilities.sharpness.step,
119 mock_capabilities.sharpness.step);
120
121 assert_true(capabilities.zoom instanceof MediaSettingsRange);
122 assert_equals(capabilities.zoom.max, mock_capabilities.zoom.max);
123 assert_equals(capabilities.zoom.min, mock_capabilities.zoom.min);
124 assert_equals(capabilities.zoom.current, mock_capabilities.zoom.current) ;
125 assert_equals(capabilities.zoom.step, mock_capabilities.zoom.step);
126
127 // TODO(mcasas): check |torch| when the mojom interface is updated,
128 // https://crbug.com/700607.
129
130 t.done();
131 }, 100);
132 })
133 .catch(error => {
134 assert_unreached("Error creating MockImageCapture: " + error);
135 })
136
137 }, 'exercises the retrieval of MediaTrackCapabilities');
138
139 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698