Index: media/cast/test/end2end_unittest.cc |
diff --git a/media/cast/test/end2end_unittest.cc b/media/cast/test/end2end_unittest.cc |
index bfd9faba897a39ddebee9346541e454cdf5f8c2d..fab33f47a6932de5dab53763b67dc3b95984fb26 100644 |
--- a/media/cast/test/end2end_unittest.cc |
+++ b/media/cast/test/end2end_unittest.cc |
@@ -1454,6 +1454,39 @@ TEST_F(End2EndTest, EvilNetwork) { |
EXPECT_LT((video_ticks_.back().second - test_end).InMilliseconds(), 1000); |
} |
+TEST_F(End2EndTest, OldPacketNetwork) { |
+ Configure(CODEC_VIDEO_FAKE, CODEC_AUDIO_PCM16, 32000, 1); |
+ sender_to_receiver_.SetPacketPipe(test::NewRandomDrop(0.01)); |
+ scoped_ptr<test::PacketPipe> echo_chamber( |
+ test::NewDuplicateAndDelay(1, 10 * kFrameTimerMs)); |
+ echo_chamber->AppendToPipe( |
+ test::NewDuplicateAndDelay(1, 20 * kFrameTimerMs)); |
+ echo_chamber->AppendToPipe( |
+ test::NewDuplicateAndDelay(1, 40 * kFrameTimerMs)); |
+ echo_chamber->AppendToPipe( |
+ test::NewDuplicateAndDelay(1, 80 * kFrameTimerMs)); |
+ echo_chamber->AppendToPipe( |
+ test::NewDuplicateAndDelay(1, 160 * kFrameTimerMs)); |
+ |
+ receiver_to_sender_.SetPacketPipe(echo_chamber.Pass()); |
+ Create(); |
+ StartBasicPlayer(); |
+ |
+ SetExpectedVideoPlayoutSmoothness( |
+ base::TimeDelta::FromMilliseconds(kFrameTimerMs) * 90 / 100, |
+ base::TimeDelta::FromMilliseconds(kFrameTimerMs) * 110 / 100, |
+ base::TimeDelta::FromMilliseconds(kFrameTimerMs) / 10); |
+ |
+ int frames_counter = 0; |
+ for (; frames_counter < 10000; ++frames_counter) { |
+ SendFakeVideoFrame(testing_clock_sender_->NowTicks()); |
+ RunTasks(kFrameTimerMs); |
+ } |
+ RunTasks(100 * kFrameTimerMs + 1); // Empty the pipeline. |
+ |
+ EXPECT_EQ(10000ul, video_ticks_.size()); |
+} |
+ |
// TODO(pwestin): Add repeatable packet loss test. |
// TODO(pwestin): Add test for misaligned send get calls. |
// TODO(pwestin): Add more tests that does not resample. |