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 <memory> | 5 #include <memory> |
6 #include <utility> | 6 #include <utility> |
7 | 7 |
8 #include "base/memory/ptr_util.h" | 8 #include "base/memory/ptr_util.h" |
9 #include "base/run_loop.h" | 9 #include "base/run_loop.h" |
10 #include "build/build_config.h" | 10 #include "build/build_config.h" |
(...skipping 4612 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4623 // M - Medium length (between C & U). | 4623 // M - Medium length (between C & U). |
4624 // S - Small length (smaller than both C & U). | 4624 // S - Small length (smaller than both C & U). |
4625 const char test_parameters[] = "CULMS"; | 4625 const char test_parameters[] = "CULMS"; |
4626 const int num_tests = arraysize(test_parameters)- 1; // Skip NULL. | 4626 const int num_tests = arraysize(test_parameters)- 1; // Skip NULL. |
4627 // C & U should be OK. | 4627 // C & U should be OK. |
4628 // L & M are larger than the data sent, and show an error. | 4628 // L & M are larger than the data sent, and show an error. |
4629 // S has too little data, but we seem to accept it. | 4629 // S has too little data, but we seem to accept it. |
4630 const bool test_expect_success[num_tests] = | 4630 const bool test_expect_success[num_tests] = |
4631 { true, true, false, false, true }; | 4631 { true, true, false, false, true }; |
4632 | 4632 |
4633 for (int i = 0; i < num_tests ; i++) { | 4633 base::FilePath file_path; |
| 4634 PathService::Get(base::DIR_SOURCE_ROOT, &file_path); |
| 4635 file_path = file_path.Append(kTestFilePath); |
| 4636 file_path = file_path.Append(FILE_PATH_LITERAL("BullRunSpeech.txt")); |
| 4637 std::string expected_content; |
| 4638 ASSERT_TRUE(base::ReadFileToString(file_path, &expected_content)); |
| 4639 |
| 4640 for (int i = 0; i < num_tests; i++) { |
4634 TestDelegate d; | 4641 TestDelegate d; |
4635 { | 4642 { |
4636 std::string test_file = base::StringPrintf( | 4643 std::string test_file = base::StringPrintf( |
4637 "compressedfiles/BullRunSpeech.txt?%c", test_parameters[i]); | 4644 "compressedfiles/BullRunSpeech.txt?%c", test_parameters[i]); |
4638 | 4645 |
4639 TestNetworkDelegate network_delegate; // Must outlive URLRequest. | 4646 TestNetworkDelegate network_delegate; // Must outlive URLRequest. |
4640 TestURLRequestContext context(true); | 4647 TestURLRequestContext context(true); |
4641 context.set_network_delegate(&network_delegate); | 4648 context.set_network_delegate(&network_delegate); |
4642 context.Init(); | 4649 context.Init(); |
4643 | 4650 |
4644 std::unique_ptr<URLRequest> r(context.CreateRequest( | 4651 std::unique_ptr<URLRequest> r(context.CreateRequest( |
4645 test_server.GetURL(test_file), DEFAULT_PRIORITY, &d)); | 4652 test_server.GetURL(test_file), DEFAULT_PRIORITY, &d)); |
4646 r->Start(); | 4653 r->Start(); |
4647 EXPECT_TRUE(r->is_pending()); | 4654 EXPECT_TRUE(r->is_pending()); |
4648 | 4655 |
4649 base::RunLoop().Run(); | 4656 base::RunLoop().Run(); |
4650 | 4657 |
4651 EXPECT_EQ(1, d.response_started_count()); | 4658 EXPECT_EQ(1, d.response_started_count()); |
4652 EXPECT_FALSE(d.received_data_before_response()); | 4659 EXPECT_FALSE(d.received_data_before_response()); |
4653 VLOG(1) << " Received " << d.bytes_received() << " bytes" | 4660 VLOG(1) << " Received " << d.bytes_received() << " bytes" |
4654 << " status = " << r->status().status() | 4661 << " status = " << r->status().status() |
4655 << " error = " << r->status().error(); | 4662 << " error = " << r->status().error(); |
4656 if (test_expect_success[i]) { | 4663 if (test_expect_success[i]) { |
4657 EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status()) | 4664 EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status()) |
4658 << " Parameter = \"" << test_file << "\""; | 4665 << " Parameter = \"" << test_file << "\""; |
| 4666 if (test_parameters[i] == 'S') { |
| 4667 // When content length is smaller than both compressed length and |
| 4668 // uncompressed length, HttpStreamParser might not read the full |
| 4669 // response body. |
| 4670 continue; |
| 4671 } |
| 4672 EXPECT_EQ(expected_content, d.data_received()); |
4659 } else { | 4673 } else { |
4660 EXPECT_EQ(URLRequestStatus::FAILED, r->status().status()); | 4674 EXPECT_EQ(URLRequestStatus::FAILED, r->status().status()); |
4661 EXPECT_EQ(ERR_CONTENT_LENGTH_MISMATCH, r->status().error()) | 4675 EXPECT_EQ(ERR_CONTENT_LENGTH_MISMATCH, r->status().error()) |
4662 << " Parameter = \"" << test_file << "\""; | 4676 << " Parameter = \"" << test_file << "\""; |
4663 } | 4677 } |
4664 } | 4678 } |
4665 } | 4679 } |
4666 } | 4680 } |
4667 #endif // !defined(OS_IOS) | 4681 #endif // !defined(OS_IOS) |
4668 | 4682 |
(...skipping 5174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
9843 AddTestInterceptor()->set_main_intercept_job(std::move(job)); | 9857 AddTestInterceptor()->set_main_intercept_job(std::move(job)); |
9844 | 9858 |
9845 req->Start(); | 9859 req->Start(); |
9846 req->Cancel(); | 9860 req->Cancel(); |
9847 base::RunLoop().RunUntilIdle(); | 9861 base::RunLoop().RunUntilIdle(); |
9848 EXPECT_EQ(URLRequestStatus::CANCELED, req->status().status()); | 9862 EXPECT_EQ(URLRequestStatus::CANCELED, req->status().status()); |
9849 EXPECT_EQ(0, d.received_redirect_count()); | 9863 EXPECT_EQ(0, d.received_redirect_count()); |
9850 } | 9864 } |
9851 | 9865 |
9852 } // namespace net | 9866 } // namespace net |
OLD | NEW |