OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 <stddef.h> | 5 #include <stddef.h> |
6 #include <stdint.h> | 6 #include <stdint.h> |
7 | 7 |
8 #include "base/bind.h" | 8 #include "base/bind.h" |
9 #include "base/macros.h" | 9 #include "base/macros.h" |
10 #include "base/message_loop/message_loop.h" | 10 #include "base/message_loop/message_loop.h" |
(...skipping 306 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
317 base::RunLoop().RunUntilIdle(); | 317 base::RunLoop().RunUntilIdle(); |
318 } | 318 } |
319 | 319 |
320 void ReceiveData(int size) { | 320 void ReceiveData(int size) { |
321 EXPECT_TRUE(url_loader()); | 321 EXPECT_TRUE(url_loader()); |
322 if (!url_loader()) | 322 if (!url_loader()) |
323 return; | 323 return; |
324 std::unique_ptr<char[]> data(new char[size]); | 324 std::unique_ptr<char[]> data(new char[size]); |
325 memset(data.get(), 0xA5, size); // Arbitrary non-zero value. | 325 memset(data.get(), 0xA5, size); // Arbitrary non-zero value. |
326 | 326 |
327 data_provider()->didReceiveData(url_loader(), data.get(), size, size); | 327 data_provider()->didReceiveData(url_loader(), data.get(), size, size, size); |
328 base::RunLoop().RunUntilIdle(); | 328 base::RunLoop().RunUntilIdle(); |
329 } | 329 } |
330 | 330 |
331 void FinishLoading() { | 331 void FinishLoading() { |
332 EXPECT_TRUE(url_loader()); | 332 EXPECT_TRUE(url_loader()); |
333 if (!url_loader()) | 333 if (!url_loader()) |
334 return; | 334 return; |
335 data_provider()->didFinishLoading(url_loader(), 0, -1); | 335 data_provider()->didFinishLoading(url_loader(), 0, -1); |
336 base::RunLoop().RunUntilIdle(); | 336 base::RunLoop().RunUntilIdle(); |
337 } | 337 } |
(...skipping 1009 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1347 ReadAt(kDataSize + 10, kDataSize - 10); | 1347 ReadAt(kDataSize + 10, kDataSize - 10); |
1348 base::RunLoop run_loop; | 1348 base::RunLoop run_loop; |
1349 data_provider()->didFail(url_loader(), response_generator_->GenerateError()); | 1349 data_provider()->didFail(url_loader(), response_generator_->GenerateError()); |
1350 data_provider()->RunOnStart(run_loop.QuitClosure()); | 1350 data_provider()->RunOnStart(run_loop.QuitClosure()); |
1351 run_loop.Run(); | 1351 run_loop.Run(); |
1352 | 1352 |
1353 // Server responds with a redirect. | 1353 // Server responds with a redirect. |
1354 blink::WebURLRequest request((GURL(kHttpDifferentPathUrl))); | 1354 blink::WebURLRequest request((GURL(kHttpDifferentPathUrl))); |
1355 blink::WebURLResponse response((GURL(kHttpUrl))); | 1355 blink::WebURLResponse response((GURL(kHttpUrl))); |
1356 response.setHTTPStatusCode(307); | 1356 response.setHTTPStatusCode(307); |
1357 data_provider()->willFollowRedirect(url_loader(), request, response); | 1357 data_provider()->willFollowRedirect(url_loader(), request, response, 0); |
1358 Respond(response_generator_->Generate206(kDataSize)); | 1358 Respond(response_generator_->Generate206(kDataSize)); |
1359 ReceiveData(kDataSize); | 1359 ReceiveData(kDataSize); |
1360 EXPECT_CALL(host_, AddBufferedByteRange(0, kDataSize * 3)); | 1360 EXPECT_CALL(host_, AddBufferedByteRange(0, kDataSize * 3)); |
1361 FinishLoading(); | 1361 FinishLoading(); |
1362 EXPECT_FALSE(loading()); | 1362 EXPECT_FALSE(loading()); |
1363 Stop(); | 1363 Stop(); |
1364 } | 1364 } |
1365 | 1365 |
1366 TEST_F(MultibufferDataSourceTest, Http_NotStreamingAfterRedirect) { | 1366 TEST_F(MultibufferDataSourceTest, Http_NotStreamingAfterRedirect) { |
1367 Initialize(kHttpUrl, true); | 1367 Initialize(kHttpUrl, true); |
1368 | 1368 |
1369 // Server responds with a redirect. | 1369 // Server responds with a redirect. |
1370 blink::WebURLRequest request((GURL(kHttpDifferentPathUrl))); | 1370 blink::WebURLRequest request((GURL(kHttpDifferentPathUrl))); |
1371 blink::WebURLResponse response((GURL(kHttpUrl))); | 1371 blink::WebURLResponse response((GURL(kHttpUrl))); |
1372 response.setHTTPStatusCode(307); | 1372 response.setHTTPStatusCode(307); |
1373 data_provider()->willFollowRedirect(url_loader(), request, response); | 1373 data_provider()->willFollowRedirect(url_loader(), request, response, 0); |
1374 | 1374 |
1375 EXPECT_CALL(host_, SetTotalBytes(response_generator_->content_length())); | 1375 EXPECT_CALL(host_, SetTotalBytes(response_generator_->content_length())); |
1376 Respond(response_generator_->Generate206(0)); | 1376 Respond(response_generator_->Generate206(0)); |
1377 | 1377 |
1378 EXPECT_CALL(host_, AddBufferedByteRange(0, kDataSize)); | 1378 EXPECT_CALL(host_, AddBufferedByteRange(0, kDataSize)); |
1379 ReceiveData(kDataSize); | 1379 ReceiveData(kDataSize); |
1380 | 1380 |
1381 EXPECT_FALSE(data_source_->IsStreaming()); | 1381 EXPECT_FALSE(data_source_->IsStreaming()); |
1382 | 1382 |
1383 FinishLoading(); | 1383 FinishLoading(); |
1384 EXPECT_FALSE(loading()); | 1384 EXPECT_FALSE(loading()); |
1385 Stop(); | 1385 Stop(); |
1386 } | 1386 } |
1387 | 1387 |
1388 TEST_F(MultibufferDataSourceTest, Http_RangeNotSatisfiableAfterRedirect) { | 1388 TEST_F(MultibufferDataSourceTest, Http_RangeNotSatisfiableAfterRedirect) { |
1389 Initialize(kHttpUrl, true); | 1389 Initialize(kHttpUrl, true); |
1390 | 1390 |
1391 // Server responds with a redirect. | 1391 // Server responds with a redirect. |
1392 blink::WebURLRequest request((GURL(kHttpDifferentPathUrl))); | 1392 blink::WebURLRequest request((GURL(kHttpDifferentPathUrl))); |
1393 blink::WebURLResponse response((GURL(kHttpUrl))); | 1393 blink::WebURLResponse response((GURL(kHttpUrl))); |
1394 response.setHTTPStatusCode(307); | 1394 response.setHTTPStatusCode(307); |
1395 data_provider()->willFollowRedirect(url_loader(), request, response); | 1395 data_provider()->willFollowRedirect(url_loader(), request, response, 0); |
1396 | 1396 |
1397 EXPECT_CALL(host_, AddBufferedByteRange(0, kDataSize)); | 1397 EXPECT_CALL(host_, AddBufferedByteRange(0, kDataSize)); |
1398 Respond(response_generator_->GenerateResponse(416)); | 1398 Respond(response_generator_->GenerateResponse(416)); |
1399 Stop(); | 1399 Stop(); |
1400 } | 1400 } |
1401 | 1401 |
1402 TEST_F(MultibufferDataSourceTest, LengthKnownAtEOF) { | 1402 TEST_F(MultibufferDataSourceTest, LengthKnownAtEOF) { |
1403 Initialize(kHttpUrl, true); | 1403 Initialize(kHttpUrl, true); |
1404 // Server responds without content-length. | 1404 // Server responds without content-length. |
1405 WebURLResponse response = response_generator_->Generate200(); | 1405 WebURLResponse response = response_generator_->Generate200(); |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1442 ReceiveData(kDataSize / 2); | 1442 ReceiveData(kDataSize / 2); |
1443 FinishLoading(); | 1443 FinishLoading(); |
1444 | 1444 |
1445 int64_t len = 0; | 1445 int64_t len = 0; |
1446 EXPECT_TRUE(data_source_->GetSize(&len)); | 1446 EXPECT_TRUE(data_source_->GetSize(&len)); |
1447 EXPECT_EQ(kDataSize / 2, len); | 1447 EXPECT_EQ(kDataSize / 2, len); |
1448 Stop(); | 1448 Stop(); |
1449 } | 1449 } |
1450 | 1450 |
1451 } // namespace media | 1451 } // namespace media |
OLD | NEW |