Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(50)

Side by Side Diff: media/base/download_rate_monitor_unittest.cc

Issue 8661002: Fire CanPlayThrough immediately for local and streaming media files (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix media/event-attributes.html Created 9 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "media/base/download_rate_monitor.h" 5 #include "media/base/download_rate_monitor.h"
6 6
7 #include "testing/gmock/include/gmock/gmock.h" 7 #include "testing/gmock/include/gmock/gmock.h"
8 #include "testing/gtest/include/gtest/gtest.h" 8 #include "testing/gtest/include/gtest/gtest.h"
9 9
10 using ::testing::Mock; 10 using ::testing::Mock;
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 static const int media_bitrate = 1024 * 1024 * 8; 113 static const int media_bitrate = 1024 * 1024 * 8;
114 114
115 // Simulate downloading at half the media's bitrate. 115 // Simulate downloading at half the media's bitrate.
116 EXPECT_CALL(*this, CanPlayThrough()) 116 EXPECT_CALL(*this, CanPlayThrough())
117 .Times(0); 117 .Times(0);
118 monitor_.Start(base::Bind(&DownloadRateMonitorTest::CanPlayThrough, 118 monitor_.Start(base::Bind(&DownloadRateMonitorTest::CanPlayThrough,
119 base::Unretained(this)), media_bitrate); 119 base::Unretained(this)), media_bitrate);
120 SimulateNetwork(1, 0, media_bitrate / 8 / 2, 1000, 10); 120 SimulateNetwork(1, 0, media_bitrate / 8 / 2, 1000, 10);
121 } 121 }
122 122
123 TEST_F(DownloadRateMonitorTest, MediaIsLoaded) { 123 TEST_F(DownloadRateMonitorTest, MediaSourceIsLocal) {
124 static const int media_bitrate = 1024 * 1024 * 8; 124 static const int media_bitrate = 1024 * 1024 * 8;
125 125
126 monitor_.set_loaded(true); 126 monitor_.set_local_source(true);
127 127
128 // Simulate no data downloaded (source is already loaded). 128 // Simulate no data downloaded.
129 EXPECT_CALL(*this, CanPlayThrough()); 129 EXPECT_CALL(*this, CanPlayThrough());
130 monitor_.Start(base::Bind(&DownloadRateMonitorTest::CanPlayThrough, 130 monitor_.Start(base::Bind(&DownloadRateMonitorTest::CanPlayThrough,
131 base::Unretained(this)), media_bitrate); 131 base::Unretained(this)), media_bitrate);
132 SimulateNetwork(1, 0, 0, 1000, 10); 132 }
133
134 TEST_F(DownloadRateMonitorTest, MediaSourceIsStreaming) {
135 static const int media_bitrate = 1024 * 1024 * 8;
136
137 monitor_.set_streaming(true);
138
139 // Simulate downloading at the media's bitrate while streaming.
140 EXPECT_CALL(*this, CanPlayThrough());
141 monitor_.Start(base::Bind(&DownloadRateMonitorTest::CanPlayThrough,
142 base::Unretained(this)), media_bitrate);
143 SimulateNetwork(1, 0, media_bitrate / 8, 1000, 10);
133 } 144 }
134 145
135 TEST_F(DownloadRateMonitorTest, VeryFastDownloadRate) { 146 TEST_F(DownloadRateMonitorTest, VeryFastDownloadRate) {
136 static const int media_bitrate = 1024 * 1024 * 8; 147 static const int media_bitrate = 1024 * 1024 * 8;
137 148
138 // Simulate downloading half the video very quickly in one chunk. 149 // Simulate downloading half the video very quickly in one chunk.
139 monitor_.Start(base::Bind(&DownloadRateMonitorTest::CanPlayThrough, 150 monitor_.Start(base::Bind(&DownloadRateMonitorTest::CanPlayThrough,
140 base::Unretained(this)), media_bitrate); 151 base::Unretained(this)), media_bitrate);
141 EXPECT_CALL(*this, CanPlayThrough()); 152 EXPECT_CALL(*this, CanPlayThrough());
142 SimulateNetwork(1, 0, kMediaSizeInBytes / 2, 10, 1); 153 SimulateNetwork(1, 0, kMediaSizeInBytes / 2, 10, 1);
143 } 154 }
144 155
145 TEST_F(DownloadRateMonitorTest, DownloadEntireVideo) { 156 TEST_F(DownloadRateMonitorTest, DownloadEntireVideo) {
146 static const int seconds_of_data = 20; 157 static const int seconds_of_data = 20;
147 static const int media_bitrate = kMediaSizeInBytes * 8 / seconds_of_data; 158 static const int media_bitrate = kMediaSizeInBytes * 8 / seconds_of_data;
148 159
149 // Simulate downloading entire video at half the bitrate of the video. 160 // Simulate downloading entire video at half the bitrate of the video.
150 monitor_.Start(base::Bind(&DownloadRateMonitorTest::CanPlayThrough, 161 monitor_.Start(base::Bind(&DownloadRateMonitorTest::CanPlayThrough,
151 base::Unretained(this)), media_bitrate); 162 base::Unretained(this)), media_bitrate);
152 EXPECT_CALL(*this, CanPlayThrough()); 163 EXPECT_CALL(*this, CanPlayThrough());
153 SimulateNetwork(1, 0, media_bitrate / 8 / 2, 1000, seconds_of_data * 2); 164 SimulateNetwork(1, 0, media_bitrate / 8 / 2, 1000, seconds_of_data * 2);
154 } 165 }
155 166
156 } // namespace media 167 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698