Commit e8d8e75b authored by Takumi Fujimoto's avatar Takumi Fujimoto Committed by Commit Bot

[Cast MRP] Allow media status TimeDeltas to be doubles or ints

Accept media status current_time and duration values that are ints.

Bug: 10962766, b/159253654
Change-Id: I3ca514b91e3f0c7e1ac6c2178d81cc68de55ae22
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2253279Reviewed-by: default avatarBrandon Tolsch <btolsch@chromium.org>
Commit-Queue: Takumi Fujimoto <takumif@chromium.org>
Cr-Commit-Position: refs/heads/master@{#780902}
parent 7484c173
......@@ -44,8 +44,13 @@ void SetIfValid(bool* out, const base::Value* value) {
*out = value->GetBool();
}
void SetIfValid(base::TimeDelta* out, const base::Value* value) {
if (value && value->is_double())
*out = base::TimeDelta::FromSeconds(value->GetDouble());
if (!value)
return;
if (value->is_double()) {
*out = base::TimeDelta::FromSecondsD(value->GetDouble());
} else if (value->is_int()) {
*out = base::TimeDelta::FromSeconds(value->GetInt());
}
}
// If |value| has "width" and "height" fields with positive values, it gets
......
......@@ -307,6 +307,22 @@ TEST_F(CastMediaControllerTest, UpdateMediaStatus) {
VerifyAndClearExpectations();
}
TEST_F(CastMediaControllerTest, UpdateMediaStatusWithDoubleDurations) {
mojom::MediaStatusPtr expected_status = CreateSampleMediaStatus();
expected_status->duration = base::TimeDelta::FromSecondsD(30.5);
expected_status->current_time = base::TimeDelta::FromSecondsD(12.9);
EXPECT_CALL(*status_observer_, OnMediaStatusUpdated(_))
.WillOnce([&](mojom::MediaStatusPtr status) {
EXPECT_DOUBLE_EQ(expected_status->duration.InSecondsF(),
status->duration.InSecondsF());
EXPECT_DOUBLE_EQ(expected_status->current_time.InSecondsF(),
status->current_time.InSecondsF());
});
SetMediaStatus(*expected_status);
VerifyAndClearExpectations();
}
TEST_F(CastMediaControllerTest, UpdateMediaImages) {
mojom::MediaStatusPtr expected_status = CreateSampleMediaStatus();
expected_status->images.emplace_back(
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment