OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "base/bind.h" | 5 #include "base/bind.h" |
6 #include "media/base/media_log.h" | 6 #include "media/base/media_log.h" |
7 #include "media/base/mock_callback.h" | 7 #include "media/base/mock_callback.h" |
8 #include "media/base/mock_data_source_host.h" | 8 #include "media/base/mock_data_source_host.h" |
9 #include "media/base/mock_filters.h" | 9 #include "media/base/mock_filters.h" |
10 #include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h" | 10 #include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h" |
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
195 EXPECT_CALL(host_, SetTotalBytes(response_generator_.content_length())); | 195 EXPECT_CALL(host_, SetTotalBytes(response_generator_.content_length())); |
196 EXPECT_CALL(host_, SetBufferedBytes(0)); | 196 EXPECT_CALL(host_, SetBufferedBytes(0)); |
197 Respond(response_generator_.Generate206(0)); | 197 Respond(response_generator_.Generate206(0)); |
198 | 198 |
199 EXPECT_TRUE(data_source_->loading()); | 199 EXPECT_TRUE(data_source_->loading()); |
200 Stop(); | 200 Stop(); |
201 } | 201 } |
202 | 202 |
203 TEST_F(BufferedDataSourceTest, Range_NotFound) { | 203 TEST_F(BufferedDataSourceTest, Range_NotFound) { |
204 Initialize(media::PIPELINE_ERROR_NETWORK); | 204 Initialize(media::PIPELINE_ERROR_NETWORK); |
205 | |
206 // It'll try again. | |
207 // | |
208 // TODO(scherkus): don't try again on errors http://crbug.com/105230 | |
209 ExpectCreateResourceLoader(); | |
210 Respond(response_generator_.Generate404()); | |
211 | |
212 // Now it's done and will fail. | |
213 Respond(response_generator_.Generate404()); | 205 Respond(response_generator_.Generate404()); |
214 | 206 |
215 EXPECT_FALSE(data_source_->loading()); | 207 EXPECT_FALSE(data_source_->loading()); |
216 Stop(); | 208 Stop(); |
217 } | 209 } |
218 | 210 |
219 TEST_F(BufferedDataSourceTest, Range_NotSupported) { | 211 TEST_F(BufferedDataSourceTest, Range_NotSupported) { |
220 Initialize(media::PIPELINE_OK); | 212 Initialize(media::PIPELINE_OK); |
221 | |
222 // It'll try again. | |
223 // | |
224 // TODO(scherkus): try to reuse existing connection http://crbug.com/104783 | |
225 ExpectCreateResourceLoader(); | |
226 Respond(response_generator_.Generate200()); | |
227 | |
228 // Now it'll succeed. | |
229 EXPECT_CALL(host_, SetTotalBytes(response_generator_.content_length())); | 213 EXPECT_CALL(host_, SetTotalBytes(response_generator_.content_length())); |
230 EXPECT_CALL(host_, SetBufferedBytes(0)); | 214 EXPECT_CALL(host_, SetBufferedBytes(0)); |
231 Respond(response_generator_.Generate200()); | 215 Respond(response_generator_.Generate200()); |
232 | 216 |
233 EXPECT_TRUE(data_source_->loading()); | 217 EXPECT_TRUE(data_source_->loading()); |
234 EXPECT_TRUE(data_source_->IsStreaming()); | 218 EXPECT_TRUE(data_source_->IsStreaming()); |
235 Stop(); | 219 Stop(); |
236 } | 220 } |
237 | 221 |
238 TEST_F(BufferedDataSourceTest, Range_MissingContentRange) { | 222 TEST_F(BufferedDataSourceTest, Range_MissingContentRange) { |
239 Initialize(media::PIPELINE_ERROR_NETWORK); | 223 Initialize(media::PIPELINE_ERROR_NETWORK); |
240 | |
241 // It'll try again. | |
242 // | |
243 // TODO(scherkus): don't try again on errors http://crbug.com/105230 | |
244 ExpectCreateResourceLoader(); | |
245 Respond(response_generator_.Generate206( | 224 Respond(response_generator_.Generate206( |
246 0, TestResponseGenerator::kNoContentRange)); | 225 0, TestResponseGenerator::kNoContentRange)); |
247 | 226 |
248 // Now it's done and will fail. | |
249 Respond(response_generator_.Generate206( | |
250 0, TestResponseGenerator::kNoContentRange)); | |
251 | |
252 EXPECT_FALSE(data_source_->loading()); | 227 EXPECT_FALSE(data_source_->loading()); |
253 Stop(); | 228 Stop(); |
254 } | 229 } |
255 | 230 |
256 TEST_F(BufferedDataSourceTest, Range_MissingContentLength) { | 231 TEST_F(BufferedDataSourceTest, Range_MissingContentLength) { |
257 Initialize(media::PIPELINE_OK); | 232 Initialize(media::PIPELINE_OK); |
258 | 233 |
259 // It'll manage without a Content-Length response. | 234 // It'll manage without a Content-Length response. |
260 EXPECT_CALL(host_, SetTotalBytes(response_generator_.content_length())); | 235 EXPECT_CALL(host_, SetTotalBytes(response_generator_.content_length())); |
261 EXPECT_CALL(host_, SetBufferedBytes(0)); | 236 EXPECT_CALL(host_, SetBufferedBytes(0)); |
262 Respond(response_generator_.Generate206( | 237 Respond(response_generator_.Generate206( |
263 0, TestResponseGenerator::kNoContentLength)); | 238 0, TestResponseGenerator::kNoContentLength)); |
264 | 239 |
265 EXPECT_TRUE(data_source_->loading()); | 240 EXPECT_TRUE(data_source_->loading()); |
266 Stop(); | 241 Stop(); |
267 } | 242 } |
268 | 243 |
269 TEST_F(BufferedDataSourceTest, Range_WrongContentRange) { | 244 TEST_F(BufferedDataSourceTest, Range_WrongContentRange) { |
270 Initialize(media::PIPELINE_ERROR_NETWORK); | 245 Initialize(media::PIPELINE_ERROR_NETWORK); |
271 | 246 |
272 // It'll try again. | |
273 // | |
274 // TODO(scherkus): don't try again on errors http://crbug.com/105230 | |
275 ExpectCreateResourceLoader(); | |
276 Respond(response_generator_.Generate206(1337)); | |
277 | |
278 // Now it's done and will fail. | 247 // Now it's done and will fail. |
279 Respond(response_generator_.Generate206(1337)); | 248 Respond(response_generator_.Generate206(1337)); |
280 | 249 |
281 EXPECT_FALSE(data_source_->loading()); | 250 EXPECT_FALSE(data_source_->loading()); |
282 Stop(); | 251 Stop(); |
283 } | 252 } |
284 | 253 |
285 // Test the case where the initial response from the server indicates that | 254 // Test the case where the initial response from the server indicates that |
286 // Range requests are supported, but a later request prove otherwise. | 255 // Range requests are supported, but a later request prove otherwise. |
287 TEST_F(BufferedDataSourceTest, Range_ServerLied) { | 256 TEST_F(BufferedDataSourceTest, Range_ServerLied) { |
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
446 | 415 |
447 // During teardown we'll also report our final network status. | 416 // During teardown we'll also report our final network status. |
448 EXPECT_CALL(host_, SetNetworkActivity(false)); | 417 EXPECT_CALL(host_, SetNetworkActivity(false)); |
449 EXPECT_CALL(host_, SetBufferedBytes(kDataSize)); | 418 EXPECT_CALL(host_, SetBufferedBytes(kDataSize)); |
450 | 419 |
451 EXPECT_TRUE(data_source_->loading()); | 420 EXPECT_TRUE(data_source_->loading()); |
452 Stop(); | 421 Stop(); |
453 } | 422 } |
454 | 423 |
455 } // namespace webkit_media | 424 } // namespace webkit_media |
OLD | NEW |