Index: third_party/WebKit/Source/modules/mediastream/MediaConstraintsTest.cpp |
diff --git a/third_party/WebKit/Source/modules/mediastream/MediaConstraintsTest.cpp b/third_party/WebKit/Source/modules/mediastream/MediaConstraintsTest.cpp |
index adc955480005b7e7b117f000057c87d81fa87f34..1d5724b858d44a743e3bf181a91f05cfbdfe7c75 100644 |
--- a/third_party/WebKit/Source/modules/mediastream/MediaConstraintsTest.cpp |
+++ b/third_party/WebKit/Source/modules/mediastream/MediaConstraintsTest.cpp |
@@ -2,21 +2,25 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
+#include "modules/mediastream/MediaConstraintsImpl.h" |
+#include "modules/mediastream/MediaTrackConstraints.h" |
#include "public/platform/WebMediaConstraints.h" |
#include "testing/gtest/include/gtest/gtest.h" |
+namespace blink { |
+ |
// The MediaTrackConstraintsTest group tests the types declared in |
// WebKit/public/platform/WebMediaConstraints.h |
TEST(MediaTrackConstraintsTest, LongConstraint) |
{ |
- blink::LongConstraint rangeConstraint(nullptr); |
+ LongConstraint rangeConstraint(nullptr); |
rangeConstraint.setMin(5); |
rangeConstraint.setMax(6); |
EXPECT_TRUE(rangeConstraint.matches(5)); |
EXPECT_TRUE(rangeConstraint.matches(6)); |
EXPECT_FALSE(rangeConstraint.matches(4)); |
EXPECT_FALSE(rangeConstraint.matches(7)); |
- blink::LongConstraint exactConstraint(nullptr); |
+ LongConstraint exactConstraint(nullptr); |
exactConstraint.setExact(5); |
EXPECT_FALSE(exactConstraint.matches(4)); |
EXPECT_TRUE(exactConstraint.matches(5)); |
@@ -25,27 +29,27 @@ TEST(MediaTrackConstraintsTest, LongConstraint) |
TEST(MediaTrackConstraintsTest, DoubleConstraint) |
{ |
- blink::DoubleConstraint rangeConstraint(nullptr); |
+ DoubleConstraint rangeConstraint(nullptr); |
EXPECT_TRUE(rangeConstraint.isEmpty()); |
rangeConstraint.setMin(5.0); |
rangeConstraint.setMax(6.5); |
EXPECT_FALSE(rangeConstraint.isEmpty()); |
// Matching within epsilon |
- EXPECT_TRUE(rangeConstraint.matches(5.0 - blink::DoubleConstraint::kConstraintEpsilon / 2)); |
- EXPECT_TRUE(rangeConstraint.matches(6.5 + blink::DoubleConstraint::kConstraintEpsilon / 2)); |
- blink::DoubleConstraint exactConstraint(nullptr); |
+ EXPECT_TRUE(rangeConstraint.matches(5.0 - DoubleConstraint::kConstraintEpsilon / 2)); |
+ EXPECT_TRUE(rangeConstraint.matches(6.5 + DoubleConstraint::kConstraintEpsilon / 2)); |
+ DoubleConstraint exactConstraint(nullptr); |
exactConstraint.setExact(5.0); |
EXPECT_FALSE(rangeConstraint.isEmpty()); |
EXPECT_FALSE(exactConstraint.matches(4.9)); |
EXPECT_TRUE(exactConstraint.matches(5.0)); |
- EXPECT_TRUE(exactConstraint.matches(5.0 - blink::DoubleConstraint::kConstraintEpsilon / 2)); |
- EXPECT_TRUE(exactConstraint.matches(5.0 + blink::DoubleConstraint::kConstraintEpsilon / 2)); |
+ EXPECT_TRUE(exactConstraint.matches(5.0 - DoubleConstraint::kConstraintEpsilon / 2)); |
+ EXPECT_TRUE(exactConstraint.matches(5.0 + DoubleConstraint::kConstraintEpsilon / 2)); |
EXPECT_FALSE(exactConstraint.matches(5.1)); |
} |
TEST(MediaTrackConstraintsTest, BooleanConstraint) |
{ |
- blink::BooleanConstraint boolConstraint(nullptr); |
+ BooleanConstraint boolConstraint(nullptr); |
EXPECT_TRUE(boolConstraint.isEmpty()); |
EXPECT_TRUE(boolConstraint.matches(false)); |
EXPECT_TRUE(boolConstraint.matches(true)); |
@@ -60,7 +64,7 @@ TEST(MediaTrackConstraintsTest, BooleanConstraint) |
TEST(MediaTrackConstraintsTest, ConstraintSetEmpty) |
{ |
- blink::WebMediaTrackConstraintSet theSet; |
+ WebMediaTrackConstraintSet theSet; |
EXPECT_TRUE(theSet.isEmpty()); |
theSet.echoCancellation.setExact(false); |
EXPECT_FALSE(theSet.isEmpty()); |
@@ -69,13 +73,13 @@ TEST(MediaTrackConstraintsTest, ConstraintSetEmpty) |
TEST(MediaTrackConstraintsTest, ConstraintName) |
{ |
const char* theName = "name"; |
- blink::BooleanConstraint boolConstraint(theName); |
+ BooleanConstraint boolConstraint(theName); |
EXPECT_EQ(theName, boolConstraint.name()); |
} |
TEST(MediaTrackConstraintsTest, MandatoryChecks) |
{ |
- blink::WebMediaTrackConstraintSet theSet; |
+ WebMediaTrackConstraintSet theSet; |
std::string foundName; |
EXPECT_FALSE(theSet.hasMandatory()); |
EXPECT_FALSE(theSet.hasMandatoryOutsideSet({ "width" }, foundName)); |
@@ -93,7 +97,7 @@ TEST(MediaTrackConstraintsTest, MandatoryChecks) |
TEST(MediaTrackConstraintsTest, SetToString) |
{ |
- blink::WebMediaTrackConstraintSet theSet; |
+ WebMediaTrackConstraintSet theSet; |
EXPECT_EQ("", theSet.toString()); |
theSet.width.setMax(240); |
EXPECT_EQ("width: {max: 240}", theSet.toString().utf8()); |
@@ -103,14 +107,98 @@ TEST(MediaTrackConstraintsTest, SetToString) |
TEST(MediaTrackConstraintsTest, ConstraintsToString) |
{ |
- blink::WebMediaConstraints theConstraints; |
- blink::WebMediaTrackConstraintSet basic; |
- blink::WebVector<blink::WebMediaTrackConstraintSet> advanced(static_cast<size_t>(1)); |
+ WebMediaConstraints theConstraints; |
+ WebMediaTrackConstraintSet basic; |
+ WebVector<WebMediaTrackConstraintSet> advanced(static_cast<size_t>(1)); |
basic.width.setMax(240); |
advanced[0].echoCancellation.setExact(true); |
theConstraints.initialize(basic, advanced); |
EXPECT_EQ("{width: {max: 240}, advanced: [{echoCancellation: {exact: true}}]}", theConstraints.toString().utf8()); |
- blink::WebMediaConstraints nullConstraints; |
+ WebMediaConstraints nullConstraints; |
EXPECT_EQ("", nullConstraints.toString().utf8()); |
} |
+ |
+TEST(MediaTrackConstraintsTest, ConvertWebConstraintsBasic) |
+{ |
+ WebMediaConstraints input; |
+ MediaTrackConstraints output; |
+ |
+ MediaConstraintsImpl::convertConstraints(input, output); |
+} |
+ |
+TEST(MediaTrackConstraintsTest, ConvertWebSingleStringConstraint) |
+{ |
+ WebMediaConstraints input; |
+ MediaTrackConstraints output; |
+ |
+ WebMediaTrackConstraintSet basic; |
+ WebVector<WebMediaTrackConstraintSet> advanced; |
+ |
+ basic.facingMode.setIdeal(WebVector<WebString>(&"foo", 1)); |
+ input.initialize(basic, advanced); |
+ MediaConstraintsImpl::convertConstraints(input, output); |
+ ASSERT_TRUE(output.hasFacingMode()); |
+ ASSERT_TRUE(output.facingMode().isString()); |
+ EXPECT_EQ("foo", output.facingMode().getAsString()); |
+} |
+ |
+TEST(MediaTrackConstraintsTest, ConvertWebDoubleStringConstraint) |
+{ |
+ WebMediaConstraints input; |
+ MediaTrackConstraints output; |
+ |
+ WebVector<WebString> buffer(static_cast<size_t>(2u)); |
+ buffer[0] = "foo"; |
+ buffer[1] = "bar"; |
+ |
+ WebMediaTrackConstraintSet basic; |
+ std::vector<WebMediaTrackConstraintSet> advanced; |
+ basic.facingMode.setIdeal(buffer); |
+ input.initialize(basic, advanced); |
+ MediaConstraintsImpl::convertConstraints(input, output); |
+ ASSERT_TRUE(output.hasFacingMode()); |
+ ASSERT_TRUE(output.facingMode().isStringSequence()); |
+ auto outBuffer = output.facingMode().getAsStringSequence(); |
+ EXPECT_EQ("foo", outBuffer[0]); |
+ EXPECT_EQ("bar", outBuffer[1]); |
+} |
+ |
+TEST(MediaTrackConstraintsTest, ConvertBlinkStringConstraint) |
+{ |
+ MediaTrackConstraints input; |
+ WebMediaConstraints output; |
+ StringOrStringSequenceOrConstrainDOMStringParameters parameter; |
+ parameter.setString("foo"); |
+ input.setFacingMode(parameter); |
+ output = MediaConstraintsImpl::convertConstraintsToWeb(input); |
+ ASSERT_TRUE(output.basic().facingMode.hasIdeal()); |
+ ASSERT_EQ(1U, output.basic().facingMode.ideal().size()); |
+ ASSERT_EQ("foo", output.basic().facingMode.ideal()[0]); |
+} |
+ |
+TEST(MediaTrackConstraintsTest, ConvertBlinkComplexStringConstraint) |
+{ |
+ MediaTrackConstraints input; |
+ WebMediaConstraints output; |
+ StringOrStringSequenceOrConstrainDOMStringParameters parameter; |
+ ConstrainDOMStringParameters subparameter; |
+ StringOrStringSequence innerString; |
+ innerString.setString("foo"); |
+ subparameter.setIdeal(innerString); |
+ parameter.setConstrainDOMStringParameters(subparameter); |
+ input.setFacingMode(parameter); |
+ output = MediaConstraintsImpl::convertConstraintsToWeb(input); |
+ ASSERT_TRUE(output.basic().facingMode.hasIdeal()); |
+ ASSERT_EQ(1U, output.basic().facingMode.ideal().size()); |
+ ASSERT_EQ("foo", output.basic().facingMode.ideal()[0]); |
+ |
+ // Convert this back, and see that it appears as a single string. |
+ MediaTrackConstraints recycled; |
+ MediaConstraintsImpl::convertConstraints(output, recycled); |
+ ASSERT_TRUE(recycled.hasFacingMode()); |
+ ASSERT_TRUE(recycled.facingMode().isString()); |
+ ASSERT_EQ("foo", recycled.facingMode().getAsString()); |
+} |
+ |
+} // namespace blink |