| Index: media/filters/ffmpeg_demuxer_unittest.cc
|
| diff --git a/media/filters/ffmpeg_demuxer_unittest.cc b/media/filters/ffmpeg_demuxer_unittest.cc
|
| index 1e9024e557b17bc36f8242e3ad9b563404e4dc3a..8e2ad97c6f34559d3d2e167944e0819fe6349505 100644
|
| --- a/media/filters/ffmpeg_demuxer_unittest.cc
|
| +++ b/media/filters/ffmpeg_demuxer_unittest.cc
|
| @@ -1401,4 +1401,54 @@ TEST_F(FFmpegDemuxerTest, Read_Webm_Media_Track_Info) {
|
| EXPECT_EQ(audio_track.language(), "");
|
| }
|
|
|
| +// UTCDateToTime_* tests here assume FFmpegDemuxer's ExtractTimelineOffset
|
| +// helper uses base::Time::FromUTCString() for conversion.
|
| +TEST_F(FFmpegDemuxerTest, UTCDateToTime_Valid) {
|
| + base::Time result;
|
| + EXPECT_TRUE(
|
| + base::Time::FromUTCString("2012-11-10T12:34:56.987654Z", &result));
|
| +
|
| + base::Time::Exploded exploded;
|
| + result.UTCExplode(&exploded);
|
| + EXPECT_TRUE(exploded.HasValidValues());
|
| + EXPECT_EQ(2012, exploded.year);
|
| + EXPECT_EQ(11, exploded.month);
|
| + EXPECT_EQ(6, exploded.day_of_week);
|
| + EXPECT_EQ(10, exploded.day_of_month);
|
| + EXPECT_EQ(12, exploded.hour);
|
| + EXPECT_EQ(34, exploded.minute);
|
| + EXPECT_EQ(56, exploded.second);
|
| + EXPECT_EQ(987, exploded.millisecond);
|
| +
|
| + // base::Time exploding operations round fractional milliseconds down, so
|
| + // verify fractional milliseconds using a base::TimeDelta.
|
| + base::Time without_fractional_ms;
|
| + EXPECT_TRUE(base::Time::FromUTCExploded(exploded, &without_fractional_ms));
|
| + base::TimeDelta delta = result - without_fractional_ms;
|
| + EXPECT_EQ(654, delta.InMicroseconds());
|
| +}
|
| +
|
| +TEST_F(FFmpegDemuxerTest, UTCDateToTime_Invalid) {
|
| + const char* invalid_date_strings[] = {
|
| + "",
|
| + "12:34:56",
|
| + "-- ::",
|
| + "2012-11- 12:34:56",
|
| + "2012--10 12:34:56",
|
| + "-11-10 12:34:56",
|
| + "2012-11 12:34:56",
|
| + "ABCD-11-10 12:34:56",
|
| + "2012-EF-10 12:34:56",
|
| + "2012-11-GH 12:34:56",
|
| + "2012-11-1012:34:56",
|
| + };
|
| +
|
| + for (size_t i = 0; i < arraysize(invalid_date_strings); ++i) {
|
| + const char* date_string = invalid_date_strings[i];
|
| + base::Time result;
|
| + EXPECT_FALSE(base::Time::FromUTCString(date_string, &result))
|
| + << "date_string '" << date_string << "'";
|
| + }
|
| +}
|
| +
|
| } // namespace media
|
|
|