| 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 |