diff options
Diffstat (limited to 'cast/streaming/answer_messages_unittest.cc')
-rw-r--r-- | cast/streaming/answer_messages_unittest.cc | 125 |
1 files changed, 45 insertions, 80 deletions
diff --git a/cast/streaming/answer_messages_unittest.cc b/cast/streaming/answer_messages_unittest.cc index e4ec82f4..3d618828 100644 --- a/cast/streaming/answer_messages_unittest.cc +++ b/cast/streaming/answer_messages_unittest.cc @@ -37,7 +37,7 @@ constexpr char kValidAnswerJson[] = R"({ }, "video": { "maxPixelsPerSecond": 62208000, - "minDimensions": { + "minResolution": { "width": 320, "height": 180, "frameRate": 0 @@ -63,7 +63,6 @@ constexpr char kValidAnswerJson[] = R"({ }, "receiverRtcpEventLog": [0, 1], "receiverRtcpDscp": [234, 567], - "receiverGetStatus": true, "rtpExtensions": ["adaptive_playout_delay"] })"; @@ -81,34 +80,22 @@ const Answer kValidAnswer{ }, // audio VideoConstraints{ 40000.0, // max_pixels_per_second - absl::optional<Dimensions>(Dimensions{ - 320, // width - 480, // height - SimpleFraction{15000, 101} // frame_rate - }), // min_dimensions - Dimensions{ - 1920, // width - 1080, // height - SimpleFraction{288, 2} // frame_rate - }, + absl::optional<Dimensions>( + Dimensions{320, 480, SimpleFraction{15000, 101}}), + Dimensions{1920, 1080, SimpleFraction{288, 2}}, 300000, // min_bit_rate 144000000, // max_bit_rate milliseconds(3000) // max_delay } // video }), // constraints absl::optional<DisplayDescription>(DisplayDescription{ - absl::optional<Dimensions>(Dimensions{ - 640, // width - 480, // height - SimpleFraction{30, 1} // frame_rate - }), + absl::optional<Dimensions>(Dimensions{640, 480, SimpleFraction{30, 1}}), absl::optional<AspectRatio>(AspectRatio{16, 9}), // aspect_ratio absl::optional<AspectRatioConstraint>( AspectRatioConstraint::kFixed), // scaling }), std::vector<int>{7, 8, 9}, // receiver_rtcp_event_log std::vector<int>{11, 12, 13}, // receiver_rtcp_dscp - true, // receiver_get_status std::vector<std::string>{"foo", "bar"} // rtp_extensions }; @@ -137,10 +124,10 @@ void ExpectEqualsValidAnswerJson(const Answer& answer) { const VideoConstraints& video = answer.constraints->video; EXPECT_EQ(62208000, video.max_pixels_per_second); - ASSERT_TRUE(video.min_dimensions.has_value()); - EXPECT_EQ(320, video.min_dimensions->width); - EXPECT_EQ(180, video.min_dimensions->height); - EXPECT_EQ((SimpleFraction{0, 1}), video.min_dimensions->frame_rate); + ASSERT_TRUE(video.min_resolution.has_value()); + EXPECT_EQ(320, video.min_resolution->width); + EXPECT_EQ(180, video.min_resolution->height); + EXPECT_EQ((SimpleFraction{0, 1}), video.min_resolution->frame_rate); EXPECT_EQ(1920, video.max_dimensions.width); EXPECT_EQ(1080, video.max_dimensions.height); EXPECT_EQ((SimpleFraction{60, 1}), video.max_dimensions.frame_rate); @@ -160,7 +147,6 @@ void ExpectEqualsValidAnswerJson(const Answer& answer) { EXPECT_THAT(answer.receiver_rtcp_event_log, ElementsAre(0, 1)); EXPECT_THAT(answer.receiver_rtcp_dscp, ElementsAre(234, 567)); - EXPECT_TRUE(answer.supports_wifi_status_reporting); EXPECT_THAT(answer.rtp_extensions, ElementsAre("adaptive_playout_delay")); } @@ -170,7 +156,7 @@ void ExpectFailureOnParse(absl::string_view raw_json) { ASSERT_TRUE(root.is_value()); Answer answer; - EXPECT_FALSE(Answer::ParseAndValidate(std::move(root.value()), &answer)); + EXPECT_FALSE(Answer::TryParse(std::move(root.value()), &answer)); EXPECT_FALSE(answer.IsValid()); } @@ -182,7 +168,7 @@ void ExpectSuccessOnParse(absl::string_view raw_json, Answer* out = nullptr) { ASSERT_TRUE(root.is_value()); Answer answer; - ASSERT_TRUE(Answer::ParseAndValidate(std::move(root.value()), &answer)); + ASSERT_TRUE(Answer::TryParse(std::move(root.value()), &answer)); EXPECT_TRUE(answer.IsValid()); if (out) { *out = std::move(answer); @@ -223,11 +209,11 @@ TEST(AnswerMessagesTest, ProperlyPopulatedAnswerSerializesProperly) { EXPECT_EQ(video["maxBitRate"], 144000000); EXPECT_EQ(video["maxDelay"], 3000); - Json::Value min_dimensions = std::move(video["minDimensions"]); - EXPECT_EQ(min_dimensions.type(), Json::ValueType::objectValue); - EXPECT_EQ(min_dimensions["width"], 320); - EXPECT_EQ(min_dimensions["height"], 480); - EXPECT_EQ(min_dimensions["frameRate"], "15000/101"); + Json::Value min_resolution = std::move(video["minResolution"]); + EXPECT_EQ(min_resolution.type(), Json::ValueType::objectValue); + EXPECT_EQ(min_resolution["width"], 320); + EXPECT_EQ(min_resolution["height"], 480); + EXPECT_EQ(min_resolution["frameRate"], "15000/101"); Json::Value max_dimensions = std::move(video["maxDimensions"]); EXPECT_EQ(max_dimensions.type(), Json::ValueType::objectValue); @@ -258,8 +244,6 @@ TEST(AnswerMessagesTest, ProperlyPopulatedAnswerSerializesProperly) { EXPECT_EQ(receiver_rtcp_dscp[1], 12); EXPECT_EQ(receiver_rtcp_dscp[2], 13); - EXPECT_EQ(root["receiverGetStatus"], true); - Json::Value rtp_extensions = std::move(root["rtpExtensions"]); EXPECT_EQ(rtp_extensions.type(), Json::ValueType::arrayValue); EXPECT_EQ(rtp_extensions[0], "foo"); @@ -330,8 +314,7 @@ TEST(AnswerMessagesTest, SucceedsWithMissingRtpFields) { ExpectSuccessOnParse(R"({ "udpPort": 1234, "sendIndexes": [1, 3], - "ssrcs": [1233324, 2234222], - "receiverGetStatus": true + "ssrcs": [1233324, 2234222] })"); } @@ -342,37 +325,22 @@ TEST(AnswerMessagesTest, ErrorOnEmptyAnswer) { TEST(AnswerMessagesTest, ErrorOnMissingUdpPort) { ExpectFailureOnParse(R"({ "sendIndexes": [1, 3], - "ssrcs": [1233324, 2234222], - "receiverGetStatus": true + "ssrcs": [1233324, 2234222] })"); } TEST(AnswerMessagesTest, ErrorOnMissingSsrcs) { ExpectFailureOnParse(R"({ "udpPort": 1234, - "sendIndexes": [1, 3], - "receiverGetStatus": true + "sendIndexes": [1, 3] })"); } TEST(AnswerMessagesTest, ErrorOnMissingSendIndexes) { ExpectFailureOnParse(R"({ "udpPort": 1234, - "ssrcs": [1233324, 2234222], - "receiverGetStatus": true - })"); -} - -TEST(AnswerMessagesTest, AssumesNoReportingIfGetStatusFalse) { - Answer answer; - ExpectSuccessOnParse(R"({ - "udpPort": 1234, - "sendIndexes": [1, 3], "ssrcs": [1233324, 2234222] - })", - &answer); - - EXPECT_FALSE(answer.supports_wifi_status_reporting); + })"); } TEST(AnswerMessagesTest, AllowsReceiverSideScaling) { @@ -420,8 +388,7 @@ TEST(AnswerMessagesTest, AssumesMinBitRateIfOmitted) { "maxBitRate": 10000000, "maxDelay": 5000 } - }, - "receiverGetStatus": true + } })", &answer); @@ -476,8 +443,8 @@ TEST(AnswerMessagesTest, VideoConstraintsIsValid) { VideoConstraints invalid_max_pixels_per_second = kValidVideoConstraints; invalid_max_pixels_per_second.max_pixels_per_second = 0; - VideoConstraints invalid_min_dimensions = kValidVideoConstraints; - invalid_min_dimensions.min_dimensions->width = 0; + VideoConstraints invalid_min_resolution = kValidVideoConstraints; + invalid_min_resolution.min_resolution->width = 0; VideoConstraints invalid_max_dimensions = kValidVideoConstraints; invalid_max_dimensions.max_dimensions.height = 0; @@ -493,7 +460,7 @@ TEST(AnswerMessagesTest, VideoConstraintsIsValid) { EXPECT_TRUE(kValidVideoConstraints.IsValid()); EXPECT_FALSE(invalid_max_pixels_per_second.IsValid()); - EXPECT_FALSE(invalid_min_dimensions.IsValid()); + EXPECT_FALSE(invalid_min_resolution.IsValid()); EXPECT_FALSE(invalid_max_dimensions.IsValid()); EXPECT_FALSE(invalid_min_bit_rate.IsValid()); EXPECT_FALSE(invalid_max_bit_rate.IsValid()); @@ -528,7 +495,7 @@ TEST(AnswerMessagesTest, AspectRatioIsValid) { EXPECT_FALSE(kInvalidHeight.IsValid()); } -TEST(AnswerMessagesTest, AspectRatioParseAndValidate) { +TEST(AnswerMessagesTest, AspectRatioTryParse) { const Json::Value kValid = "16:9"; const Json::Value kWrongDelimiter = "16-9"; const Json::Value kTooManyFields = "16:9:3"; @@ -543,24 +510,24 @@ TEST(AnswerMessagesTest, AspectRatioParseAndValidate) { const Json::Value kZeroHeight = "16:0"; AspectRatio out; - EXPECT_TRUE(AspectRatio::ParseAndValidate(kValid, &out)); + EXPECT_TRUE(AspectRatio::TryParse(kValid, &out)); EXPECT_EQ(out.width, 16); EXPECT_EQ(out.height, 9); - EXPECT_FALSE(AspectRatio::ParseAndValidate(kWrongDelimiter, &out)); - EXPECT_FALSE(AspectRatio::ParseAndValidate(kTooManyFields, &out)); - EXPECT_FALSE(AspectRatio::ParseAndValidate(kTooFewFields, &out)); - EXPECT_FALSE(AspectRatio::ParseAndValidate(kWrongDelimiter, &out)); - EXPECT_FALSE(AspectRatio::ParseAndValidate(kNoDelimiter, &out)); - EXPECT_FALSE(AspectRatio::ParseAndValidate(kNegativeWidth, &out)); - EXPECT_FALSE(AspectRatio::ParseAndValidate(kNegativeHeight, &out)); - EXPECT_FALSE(AspectRatio::ParseAndValidate(kNegativeBoth, &out)); - EXPECT_FALSE(AspectRatio::ParseAndValidate(kNonNumberWidth, &out)); - EXPECT_FALSE(AspectRatio::ParseAndValidate(kNonNumberHeight, &out)); - EXPECT_FALSE(AspectRatio::ParseAndValidate(kZeroWidth, &out)); - EXPECT_FALSE(AspectRatio::ParseAndValidate(kZeroHeight, &out)); + EXPECT_FALSE(AspectRatio::TryParse(kWrongDelimiter, &out)); + EXPECT_FALSE(AspectRatio::TryParse(kTooManyFields, &out)); + EXPECT_FALSE(AspectRatio::TryParse(kTooFewFields, &out)); + EXPECT_FALSE(AspectRatio::TryParse(kWrongDelimiter, &out)); + EXPECT_FALSE(AspectRatio::TryParse(kNoDelimiter, &out)); + EXPECT_FALSE(AspectRatio::TryParse(kNegativeWidth, &out)); + EXPECT_FALSE(AspectRatio::TryParse(kNegativeHeight, &out)); + EXPECT_FALSE(AspectRatio::TryParse(kNegativeBoth, &out)); + EXPECT_FALSE(AspectRatio::TryParse(kNonNumberWidth, &out)); + EXPECT_FALSE(AspectRatio::TryParse(kNonNumberHeight, &out)); + EXPECT_FALSE(AspectRatio::TryParse(kZeroWidth, &out)); + EXPECT_FALSE(AspectRatio::TryParse(kZeroHeight, &out)); } -TEST(AnswerMessagesTest, DisplayDescriptionParseAndValidate) { +TEST(AnswerMessagesTest, DisplayDescriptionTryParse) { Json::Value valid_scaling; valid_scaling["scaling"] = "receiver"; Json::Value invalid_scaling; @@ -586,25 +553,23 @@ TEST(AnswerMessagesTest, DisplayDescriptionParseAndValidate) { aspect_ratio_and_constraint["aspectRatio"] = "4:3"; DisplayDescription out; - ASSERT_TRUE(DisplayDescription::ParseAndValidate(valid_scaling, &out)); + ASSERT_TRUE(DisplayDescription::TryParse(valid_scaling, &out)); ASSERT_TRUE(out.aspect_ratio_constraint.has_value()); EXPECT_EQ(out.aspect_ratio_constraint.value(), AspectRatioConstraint::kVariable); - EXPECT_FALSE(DisplayDescription::ParseAndValidate(invalid_scaling, &out)); - EXPECT_TRUE( - DisplayDescription::ParseAndValidate(invalid_scaling_valid_ratio, &out)); + EXPECT_FALSE(DisplayDescription::TryParse(invalid_scaling, &out)); + EXPECT_TRUE(DisplayDescription::TryParse(invalid_scaling_valid_ratio, &out)); - ASSERT_TRUE(DisplayDescription::ParseAndValidate(valid_dimensions, &out)); + ASSERT_TRUE(DisplayDescription::TryParse(valid_dimensions, &out)); ASSERT_TRUE(out.dimensions.has_value()); EXPECT_EQ(1920, out.dimensions->width); EXPECT_EQ(1080, out.dimensions->height); EXPECT_EQ((SimpleFraction{30, 1}), out.dimensions->frame_rate); - EXPECT_FALSE(DisplayDescription::ParseAndValidate(invalid_dimensions, &out)); + EXPECT_FALSE(DisplayDescription::TryParse(invalid_dimensions, &out)); - ASSERT_TRUE( - DisplayDescription::ParseAndValidate(aspect_ratio_and_constraint, &out)); + ASSERT_TRUE(DisplayDescription::TryParse(aspect_ratio_and_constraint, &out)); EXPECT_EQ(AspectRatioConstraint::kFixed, out.aspect_ratio_constraint.value()); } |