| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "net/proxy/proxy_resolver_factory_mojo.h" | 5 #include "net/proxy/proxy_resolver_factory_mojo.h" |
| 6 | 6 |
| 7 #include <list> | 7 #include <list> |
| 8 #include <map> | 8 #include <map> |
| 9 #include <memory> | 9 #include <memory> |
| 10 #include <queue> | 10 #include <queue> |
| (...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 185 | 185 |
| 186 void WaitForNextRequest(); | 186 void WaitForNextRequest(); |
| 187 | 187 |
| 188 void ClearBlockedClients(); | 188 void ClearBlockedClients(); |
| 189 | 189 |
| 190 void AddConnection(mojo::InterfaceRequest<interfaces::ProxyResolver> req); | 190 void AddConnection(mojo::InterfaceRequest<interfaces::ProxyResolver> req); |
| 191 | 191 |
| 192 private: | 192 private: |
| 193 // Overridden from interfaces::ProxyResolver: | 193 // Overridden from interfaces::ProxyResolver: |
| 194 void GetProxyForUrl( | 194 void GetProxyForUrl( |
| 195 const mojo::String& url, | 195 const GURL& url, |
| 196 interfaces::ProxyResolverRequestClientPtr client) override; | 196 interfaces::ProxyResolverRequestClientPtr client) override; |
| 197 | 197 |
| 198 void WakeWaiter(); | 198 void WakeWaiter(); |
| 199 | 199 |
| 200 std::string pac_script_data_; | 200 std::string pac_script_data_; |
| 201 | 201 |
| 202 std::queue<GetProxyForUrlAction> get_proxy_actions_; | 202 std::queue<GetProxyForUrlAction> get_proxy_actions_; |
| 203 | 203 |
| 204 base::Closure quit_closure_; | 204 base::Closure quit_closure_; |
| 205 | 205 |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 237 } | 237 } |
| 238 | 238 |
| 239 void MockMojoProxyResolver::AddConnection( | 239 void MockMojoProxyResolver::AddConnection( |
| 240 mojo::InterfaceRequest<interfaces::ProxyResolver> req) { | 240 mojo::InterfaceRequest<interfaces::ProxyResolver> req) { |
| 241 if (binding_.is_bound()) | 241 if (binding_.is_bound()) |
| 242 binding_.Close(); | 242 binding_.Close(); |
| 243 binding_.Bind(std::move(req)); | 243 binding_.Bind(std::move(req)); |
| 244 } | 244 } |
| 245 | 245 |
| 246 void MockMojoProxyResolver::GetProxyForUrl( | 246 void MockMojoProxyResolver::GetProxyForUrl( |
| 247 const mojo::String& url, | 247 const GURL& url, |
| 248 interfaces::ProxyResolverRequestClientPtr client) { | 248 interfaces::ProxyResolverRequestClientPtr client) { |
| 249 ASSERT_FALSE(get_proxy_actions_.empty()); | 249 ASSERT_FALSE(get_proxy_actions_.empty()); |
| 250 GetProxyForUrlAction action = get_proxy_actions_.front(); | 250 GetProxyForUrlAction action = get_proxy_actions_.front(); |
| 251 get_proxy_actions_.pop(); | 251 get_proxy_actions_.pop(); |
| 252 | 252 |
| 253 EXPECT_EQ(action.expected_url.spec(), url.To<std::string>()); | 253 EXPECT_EQ(action.expected_url, url); |
| 254 client->Alert(url); | 254 client->Alert(url.spec()); |
| 255 client->OnError(12345, url); | 255 client->OnError(12345, url.spec()); |
| 256 switch (action.action) { | 256 switch (action.action) { |
| 257 case GetProxyForUrlAction::COMPLETE: { | 257 case GetProxyForUrlAction::COMPLETE: { |
| 258 client->ReportResult(action.error, std::move(action.proxy_servers)); | 258 client->ReportResult(action.error, std::move(action.proxy_servers)); |
| 259 break; | 259 break; |
| 260 } | 260 } |
| 261 case GetProxyForUrlAction::DROP: { | 261 case GetProxyForUrlAction::DROP: { |
| 262 client.reset(); | 262 client.reset(); |
| 263 break; | 263 break; |
| 264 } | 264 } |
| 265 case GetProxyForUrlAction::DISCONNECT: { | 265 case GetProxyForUrlAction::DISCONNECT: { |
| 266 binding_.Close(); | 266 binding_.Close(); |
| 267 break; | 267 break; |
| 268 } | 268 } |
| 269 case GetProxyForUrlAction::WAIT_FOR_CLIENT_DISCONNECT: { | 269 case GetProxyForUrlAction::WAIT_FOR_CLIENT_DISCONNECT: { |
| 270 ASSERT_FALSE(client.WaitForIncomingResponse()); | 270 ASSERT_FALSE(client.WaitForIncomingResponse()); |
| 271 break; | 271 break; |
| 272 } | 272 } |
| 273 case GetProxyForUrlAction::MAKE_DNS_REQUEST: { | 273 case GetProxyForUrlAction::MAKE_DNS_REQUEST: { |
| 274 interfaces::HostResolverRequestInfoPtr request( | 274 interfaces::HostResolverRequestInfoPtr request( |
| 275 interfaces::HostResolverRequestInfo::New()); | 275 interfaces::HostResolverRequestInfo::New()); |
| 276 request->host = url; | 276 request->host = url.spec(); |
| 277 request->port = 12345; | 277 request->port = 12345; |
| 278 interfaces::HostResolverRequestClientPtr dns_client; | 278 interfaces::HostResolverRequestClientPtr dns_client; |
| 279 mojo::GetProxy(&dns_client); | 279 mojo::GetProxy(&dns_client); |
| 280 client->ResolveDns(std::move(request), std::move(dns_client)); | 280 client->ResolveDns(std::move(request), std::move(dns_client)); |
| 281 blocked_clients_.push_back(base::WrapUnique( | 281 blocked_clients_.push_back(base::WrapUnique( |
| 282 new interfaces::ProxyResolverRequestClientPtr(std::move(client)))); | 282 new interfaces::ProxyResolverRequestClientPtr(std::move(client)))); |
| 283 break; | 283 break; |
| 284 } | 284 } |
| 285 } | 285 } |
| 286 WakeWaiter(); | 286 WakeWaiter(); |
| (...skipping 604 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 891 mock_proxy_resolver_.ClearBlockedClients(); | 891 mock_proxy_resolver_.ClearBlockedClients(); |
| 892 request->WaitForResult(); | 892 request->WaitForResult(); |
| 893 } | 893 } |
| 894 | 894 |
| 895 TEST_F(ProxyResolverFactoryMojoTest, DeleteResolver) { | 895 TEST_F(ProxyResolverFactoryMojoTest, DeleteResolver) { |
| 896 CreateProxyResolver(); | 896 CreateProxyResolver(); |
| 897 proxy_resolver_mojo_.reset(); | 897 proxy_resolver_mojo_.reset(); |
| 898 on_delete_callback_.WaitForResult(); | 898 on_delete_callback_.WaitForResult(); |
| 899 } | 899 } |
| 900 } // namespace net | 900 } // namespace net |
| OLD | NEW |