| OLD | NEW | 
|---|
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 "content/browser/loader/url_loader_factory_impl.h" | 5 #include "content/browser/loader/url_loader_factory_impl.h" | 
| 6 | 6 | 
| 7 #include <memory> | 7 #include <memory> | 
| 8 #include <string> | 8 #include <string> | 
| 9 #include <utility> | 9 #include <utility> | 
| 10 | 10 | 
| (...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 128   scoped_refptr<ResourceMessageFilter> resource_message_filter_; | 128   scoped_refptr<ResourceMessageFilter> resource_message_filter_; | 
| 129   mojom::URLLoaderFactoryPtr factory_; | 129   mojom::URLLoaderFactoryPtr factory_; | 
| 130 | 130 | 
| 131   DISALLOW_COPY_AND_ASSIGN(URLLoaderFactoryImplTest); | 131   DISALLOW_COPY_AND_ASSIGN(URLLoaderFactoryImplTest); | 
| 132 }; | 132 }; | 
| 133 | 133 | 
| 134 TEST_P(URLLoaderFactoryImplTest, GetResponse) { | 134 TEST_P(URLLoaderFactoryImplTest, GetResponse) { | 
| 135   constexpr int32_t kRoutingId = 81; | 135   constexpr int32_t kRoutingId = 81; | 
| 136   constexpr int32_t kRequestId = 28; | 136   constexpr int32_t kRequestId = 28; | 
| 137   NavigationResourceThrottle::set_ui_checks_always_succeed_for_testing(true); | 137   NavigationResourceThrottle::set_ui_checks_always_succeed_for_testing(true); | 
| 138   mojom::URLLoaderPtr loader; | 138   mojom::URLLoaderAssociatedPtr loader; | 
| 139   base::FilePath root; | 139   base::FilePath root; | 
| 140   PathService::Get(DIR_TEST_DATA, &root); | 140   PathService::Get(DIR_TEST_DATA, &root); | 
| 141   net::URLRequestMockHTTPJob::AddUrlHandlers(root, | 141   net::URLRequestMockHTTPJob::AddUrlHandlers(root, | 
| 142                                              BrowserThread::GetBlockingPool()); | 142                                              BrowserThread::GetBlockingPool()); | 
| 143   ResourceRequest request; | 143   ResourceRequest request; | 
| 144   TestURLLoaderClient client; | 144   TestURLLoaderClient client; | 
| 145   // Assume the file contents is small enough to be stored in the data pipe. | 145   // Assume the file contents is small enough to be stored in the data pipe. | 
| 146   request.url = net::URLRequestMockHTTPJob::GetMockUrl("hello.html"); | 146   request.url = net::URLRequestMockHTTPJob::GetMockUrl("hello.html"); | 
| 147   request.method = "GET"; | 147   request.method = "GET"; | 
| 148   request.is_main_frame = true; | 148   request.is_main_frame = true; | 
| 149   factory_->CreateLoaderAndStart(mojo::GetProxy(&loader), kRoutingId, | 149   factory_->CreateLoaderAndStart( | 
| 150                                  kRequestId, request, | 150       mojo::GetProxy(&loader, factory_.associated_group()), kRoutingId, | 
| 151                                  client.CreateInterfacePtrAndBind()); | 151       kRequestId, request, | 
|  | 152       client.CreateRemoteAssociatedPtrInfo(factory_.associated_group())); | 
| 152 | 153 | 
| 153   ASSERT_FALSE(client.has_received_response()); | 154   ASSERT_FALSE(client.has_received_response()); | 
| 154   ASSERT_FALSE(client.response_body().is_valid()); | 155   ASSERT_FALSE(client.response_body().is_valid()); | 
| 155   ASSERT_FALSE(client.has_received_completion()); | 156   ASSERT_FALSE(client.has_received_completion()); | 
| 156 | 157 | 
| 157   client.RunUntilResponseReceived(); | 158   client.RunUntilResponseReceived(); | 
| 158 | 159 | 
| 159   net::URLRequest* url_request = | 160   net::URLRequest* url_request = | 
| 160       rdh_.GetURLRequest(GlobalRequestID(kChildId, kRequestId)); | 161       rdh_.GetURLRequest(GlobalRequestID(kChildId, kRequestId)); | 
| 161   ASSERT_TRUE(url_request); | 162   ASSERT_TRUE(url_request); | 
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 196     contents += std::string(buffer, read_size); | 197     contents += std::string(buffer, read_size); | 
| 197   } | 198   } | 
| 198   std::string expected; | 199   std::string expected; | 
| 199   base::ReadFileToString( | 200   base::ReadFileToString( | 
| 200       root.Append(base::FilePath(FILE_PATH_LITERAL("hello.html"))), &expected); | 201       root.Append(base::FilePath(FILE_PATH_LITERAL("hello.html"))), &expected); | 
| 201   EXPECT_EQ(expected, contents); | 202   EXPECT_EQ(expected, contents); | 
| 202 } | 203 } | 
| 203 | 204 | 
| 204 TEST_P(URLLoaderFactoryImplTest, GetFailedResponse) { | 205 TEST_P(URLLoaderFactoryImplTest, GetFailedResponse) { | 
| 205   NavigationResourceThrottle::set_ui_checks_always_succeed_for_testing(true); | 206   NavigationResourceThrottle::set_ui_checks_always_succeed_for_testing(true); | 
| 206   mojom::URLLoaderPtr loader; | 207   mojom::URLLoaderAssociatedPtr loader; | 
| 207   ResourceRequest request; | 208   ResourceRequest request; | 
| 208   TestURLLoaderClient client; | 209   TestURLLoaderClient client; | 
| 209   net::URLRequestFailedJob::AddUrlHandler(); | 210   net::URLRequestFailedJob::AddUrlHandler(); | 
| 210   request.url = net::URLRequestFailedJob::GetMockHttpUrlWithFailurePhase( | 211   request.url = net::URLRequestFailedJob::GetMockHttpUrlWithFailurePhase( | 
| 211       net::URLRequestFailedJob::START, net::ERR_TIMED_OUT); | 212       net::URLRequestFailedJob::START, net::ERR_TIMED_OUT); | 
| 212   request.method = "GET"; | 213   request.method = "GET"; | 
| 213   factory_->CreateLoaderAndStart(mojo::GetProxy(&loader), 2, 1, request, | 214   factory_->CreateLoaderAndStart( | 
| 214                                  client.CreateInterfacePtrAndBind()); | 215       mojo::GetProxy(&loader, factory_.associated_group()), 2, 1, request, | 
|  | 216       client.CreateRemoteAssociatedPtrInfo(factory_.associated_group())); | 
| 215 | 217 | 
| 216   client.RunUntilComplete(); | 218   client.RunUntilComplete(); | 
| 217   ASSERT_FALSE(client.has_received_response()); | 219   ASSERT_FALSE(client.has_received_response()); | 
| 218   ASSERT_FALSE(client.response_body().is_valid()); | 220   ASSERT_FALSE(client.response_body().is_valid()); | 
| 219 | 221 | 
| 220   EXPECT_EQ(net::ERR_TIMED_OUT, client.completion_status().error_code); | 222   EXPECT_EQ(net::ERR_TIMED_OUT, client.completion_status().error_code); | 
| 221 } | 223 } | 
| 222 | 224 | 
| 223 // This test tests a case where resource loading is cancelled before started. | 225 // This test tests a case where resource loading is cancelled before started. | 
| 224 TEST_P(URLLoaderFactoryImplTest, InvalidURL) { | 226 TEST_P(URLLoaderFactoryImplTest, InvalidURL) { | 
| 225   mojom::URLLoaderPtr loader; | 227   mojom::URLLoaderAssociatedPtr loader; | 
| 226   ResourceRequest request; | 228   ResourceRequest request; | 
| 227   TestURLLoaderClient client; | 229   TestURLLoaderClient client; | 
| 228   request.url = GURL(); | 230   request.url = GURL(); | 
| 229   request.method = "GET"; | 231   request.method = "GET"; | 
| 230   ASSERT_FALSE(request.url.is_valid()); | 232   ASSERT_FALSE(request.url.is_valid()); | 
| 231   factory_->CreateLoaderAndStart(mojo::GetProxy(&loader), 2, 1, request, | 233   factory_->CreateLoaderAndStart( | 
| 232                                  client.CreateInterfacePtrAndBind()); | 234       mojo::GetProxy(&loader, factory_.associated_group()), 2, 1, request, | 
|  | 235       client.CreateRemoteAssociatedPtrInfo(factory_.associated_group())); | 
| 233 | 236 | 
| 234   client.RunUntilComplete(); | 237   client.RunUntilComplete(); | 
| 235   ASSERT_FALSE(client.has_received_response()); | 238   ASSERT_FALSE(client.has_received_response()); | 
| 236   ASSERT_FALSE(client.response_body().is_valid()); | 239   ASSERT_FALSE(client.response_body().is_valid()); | 
| 237 | 240 | 
| 238   EXPECT_EQ(net::ERR_ABORTED, client.completion_status().error_code); | 241   EXPECT_EQ(net::ERR_ABORTED, client.completion_status().error_code); | 
| 239 } | 242 } | 
| 240 | 243 | 
| 241 // This test tests a case where resource loading is cancelled before started. | 244 // This test tests a case where resource loading is cancelled before started. | 
| 242 TEST_P(URLLoaderFactoryImplTest, ShouldNotRequestURL) { | 245 TEST_P(URLLoaderFactoryImplTest, ShouldNotRequestURL) { | 
| 243   mojom::URLLoaderPtr loader; | 246   mojom::URLLoaderAssociatedPtr loader; | 
| 244   RejectingResourceDispatcherHostDelegate rdh_delegate; | 247   RejectingResourceDispatcherHostDelegate rdh_delegate; | 
| 245   rdh_.SetDelegate(&rdh_delegate); | 248   rdh_.SetDelegate(&rdh_delegate); | 
| 246   ResourceRequest request; | 249   ResourceRequest request; | 
| 247   TestURLLoaderClient client; | 250   TestURLLoaderClient client; | 
| 248   request.url = GURL("http://localhost/"); | 251   request.url = GURL("http://localhost/"); | 
| 249   request.method = "GET"; | 252   request.method = "GET"; | 
| 250   factory_->CreateLoaderAndStart(mojo::GetProxy(&loader), 2, 1, request, | 253   factory_->CreateLoaderAndStart( | 
| 251                                  client.CreateInterfacePtrAndBind()); | 254       mojo::GetProxy(&loader, factory_.associated_group()), 2, 1, request, | 
|  | 255       client.CreateRemoteAssociatedPtrInfo(factory_.associated_group())); | 
| 252 | 256 | 
| 253   client.RunUntilComplete(); | 257   client.RunUntilComplete(); | 
| 254   rdh_.SetDelegate(nullptr); | 258   rdh_.SetDelegate(nullptr); | 
| 255 | 259 | 
| 256   ASSERT_FALSE(client.has_received_response()); | 260   ASSERT_FALSE(client.has_received_response()); | 
| 257   ASSERT_FALSE(client.response_body().is_valid()); | 261   ASSERT_FALSE(client.response_body().is_valid()); | 
| 258 | 262 | 
| 259   EXPECT_EQ(net::ERR_ABORTED, client.completion_status().error_code); | 263   EXPECT_EQ(net::ERR_ABORTED, client.completion_status().error_code); | 
| 260 } | 264 } | 
| 261 | 265 | 
| 262 INSTANTIATE_TEST_CASE_P(URLLoaderFactoryImplTest, | 266 INSTANTIATE_TEST_CASE_P(URLLoaderFactoryImplTest, | 
| 263                         URLLoaderFactoryImplTest, | 267                         URLLoaderFactoryImplTest, | 
| 264                         ::testing::Values(128, 32 * 1024)); | 268                         ::testing::Values(128, 32 * 1024)); | 
| 265 | 269 | 
| 266 }  // namespace | 270 }  // namespace | 
| 267 | 271 | 
| 268 }  // namespace content | 272 }  // namespace content | 
| OLD | NEW | 
|---|