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

Side by Side Diff: third_party/WebKit/Source/modules/mediastream/MediaConstraintsTest.cpp

Issue 2569233002: Make naked values in constraint behave right in "advanced" (Closed)
Patch Set: Update layout test for getConstraints Created 4 years 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
« no previous file with comments | « third_party/WebKit/Source/modules/mediastream/MediaConstraintsImpl.cpp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "modules/mediastream/MediaConstraintsImpl.h" 5 #include "modules/mediastream/MediaConstraintsImpl.h"
6 #include "modules/mediastream/MediaTrackConstraints.h" 6 #include "modules/mediastream/MediaTrackConstraints.h"
7 #include "public/platform/WebMediaConstraints.h" 7 #include "public/platform/WebMediaConstraints.h"
8 #include "testing/gtest/include/gtest/gtest.h" 8 #include "testing/gtest/include/gtest/gtest.h"
9 9
10 namespace blink { 10 namespace blink {
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after
188 ASSERT_EQ("foo", output.basic().facingMode.ideal()[0]); 188 ASSERT_EQ("foo", output.basic().facingMode.ideal()[0]);
189 189
190 // Convert this back, and see that it appears as a single string. 190 // Convert this back, and see that it appears as a single string.
191 MediaTrackConstraints recycled; 191 MediaTrackConstraints recycled;
192 MediaConstraintsImpl::convertConstraints(output, recycled); 192 MediaConstraintsImpl::convertConstraints(output, recycled);
193 ASSERT_TRUE(recycled.hasFacingMode()); 193 ASSERT_TRUE(recycled.hasFacingMode());
194 ASSERT_TRUE(recycled.facingMode().isString()); 194 ASSERT_TRUE(recycled.facingMode().isString());
195 ASSERT_EQ("foo", recycled.facingMode().getAsString()); 195 ASSERT_EQ("foo", recycled.facingMode().getAsString());
196 } 196 }
197 197
198 TEST(MediaTrackConstraintsTest, NakedIsExactInAdvanced) {
199 MediaTrackConstraints input;
200 WebMediaConstraints output;
201 StringOrStringSequenceOrConstrainDOMStringParameters parameter;
202 parameter.setString("foo");
203 input.setFacingMode(parameter);
204 HeapVector<MediaTrackConstraintSet> advanced(1);
205 advanced[0].setFacingMode(parameter);
206 input.setAdvanced(advanced);
207 output = MediaConstraintsImpl::convertConstraintsToWeb(input);
208
209 ASSERT_TRUE(output.basic().facingMode.hasIdeal());
210 ASSERT_FALSE(output.basic().facingMode.hasExact());
211 ASSERT_EQ(1U, output.basic().facingMode.ideal().size());
212 ASSERT_EQ("foo", output.basic().facingMode.ideal()[0]);
213
214 ASSERT_FALSE(output.advanced()[0].facingMode.hasIdeal());
215 ASSERT_TRUE(output.advanced()[0].facingMode.hasExact());
216 ASSERT_EQ(1U, output.advanced()[0].facingMode.exact().size());
217 ASSERT_EQ("foo", output.advanced()[0].facingMode.exact()[0]);
218 }
219
220 TEST(MediaTrackConstraintsTest, IdealAndExactConvertToNaked) {
221 WebMediaConstraints input;
222 MediaTrackConstraints output;
223
224 WebVector<WebString> buffer(static_cast<size_t>(1u));
225
226 WebMediaTrackConstraintSet basic;
227 WebMediaTrackConstraintSet advancedElement1;
228 WebMediaTrackConstraintSet advancedElement2;
229 buffer[0] = "ideal";
230 basic.facingMode.setIdeal(buffer);
231 advancedElement1.facingMode.setIdeal(buffer);
232 buffer[0] = "exact";
233 advancedElement2.facingMode.setExact(buffer);
234 std::vector<WebMediaTrackConstraintSet> advanced;
235 advanced.push_back(advancedElement1);
236 advanced.push_back(advancedElement2);
237 input.initialize(basic, advanced);
238 MediaConstraintsImpl::convertConstraints(input, output);
239 // The first element should return a ConstrainDOMStringParameters
240 // with an "ideal" value containing a String value of "ideal".
241 // The second element should return a ConstrainDOMStringParameters
242 // with a String value of "exact".
243 ASSERT_TRUE(output.hasAdvanced());
244 ASSERT_EQ(2U, output.advanced().size());
245 MediaTrackConstraintSet element1 = output.advanced()[0];
246 MediaTrackConstraintSet element2 = output.advanced()[1];
247
248 ASSERT_TRUE(output.hasFacingMode());
249 ASSERT_TRUE(output.facingMode().isString());
250 EXPECT_EQ("ideal", output.facingMode().getAsString());
251
252 ASSERT_TRUE(element1.hasFacingMode());
253 ASSERT_TRUE(element1.facingMode().isConstrainDOMStringParameters());
254 EXPECT_EQ("ideal", element1.facingMode()
255 .getAsConstrainDOMStringParameters()
256 .ideal()
257 .getAsString());
258
259 ASSERT_TRUE(element2.hasFacingMode());
260 ASSERT_TRUE(element2.facingMode().isString());
261 EXPECT_EQ("exact", element2.facingMode().getAsString());
262 }
263
198 } // namespace blink 264 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/modules/mediastream/MediaConstraintsImpl.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698