Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(239)

Side by Side Diff: net/proxy/mojo_proxy_resolver_impl_unittest.cc

Issue 1157163003: Remove ProxyResolver::(Cancel)SetPacScript and LegacyProxyResolverFactory. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@v8-proxy-resolver-refactor
Patch Set: Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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/mojo_proxy_resolver_impl.h" 5 #include "net/proxy/mojo_proxy_resolver_impl.h"
6 6
7 #include <string> 7 #include <string>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/run_loop.h" 10 #include "base/run_loop.h"
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
85 85
86 void TestRequestClient::LoadStateChanged(int32_t load_state) { 86 void TestRequestClient::LoadStateChanged(int32_t load_state) {
87 event_waiter_.NotifyEvent(LOAD_STATE_CHANGED); 87 event_waiter_.NotifyEvent(LOAD_STATE_CHANGED);
88 load_state_ = static_cast<LoadState>(load_state); 88 load_state_ = static_cast<LoadState>(load_state);
89 } 89 }
90 90
91 void TestRequestClient::OnConnectionError() { 91 void TestRequestClient::OnConnectionError() {
92 event_waiter_.NotifyEvent(CONNECTION_ERROR); 92 event_waiter_.NotifyEvent(CONNECTION_ERROR);
93 } 93 }
94 94
95 class CallbackMockProxyResolver : public MockAsyncProxyResolverExpectsBytes { 95 class CallbackMockProxyResolver : public MockAsyncProxyResolver {
96 public: 96 public:
97 CallbackMockProxyResolver() {} 97 CallbackMockProxyResolver() {}
98 ~CallbackMockProxyResolver() override; 98 ~CallbackMockProxyResolver() override;
99 99
100 // MockAsyncProxyResolverExpectsBytes overrides. 100 // MockAsyncProxyResolver overrides.
101 int GetProxyForURL(const GURL& url, 101 int GetProxyForURL(const GURL& url,
102 ProxyInfo* results, 102 ProxyInfo* results,
103 const CompletionCallback& callback, 103 const CompletionCallback& callback,
104 RequestHandle* request_handle, 104 RequestHandle* request_handle,
105 const BoundNetLog& net_log) override; 105 const BoundNetLog& net_log) override;
106 void CancelRequest(RequestHandle request_handle) override; 106 void CancelRequest(RequestHandle request_handle) override;
107 107
108 // Wait until the mock resolver has received a CancelRequest call. 108 // Wait until the mock resolver has received a CancelRequest call.
109 void WaitForCancel(); 109 void WaitForCancel();
110 110
(...skipping 13 matching lines...) Expand all
124 const GURL& url, 124 const GURL& url,
125 ProxyInfo* results, 125 ProxyInfo* results,
126 const CompletionCallback& callback, 126 const CompletionCallback& callback,
127 RequestHandle* request_handle, 127 RequestHandle* request_handle,
128 const BoundNetLog& net_log) { 128 const BoundNetLog& net_log) {
129 if (sync_result_) { 129 if (sync_result_) {
130 *results = *sync_result_; 130 *results = *sync_result_;
131 sync_result_.reset(); 131 sync_result_.reset();
132 return OK; 132 return OK;
133 } 133 }
134 return MockAsyncProxyResolverExpectsBytes::GetProxyForURL( 134 return MockAsyncProxyResolver::GetProxyForURL(url, results, callback,
135 url, results, callback, request_handle, net_log); 135 request_handle, net_log);
136 } 136 }
137 137
138 void CallbackMockProxyResolver::CancelRequest(RequestHandle request_handle) { 138 void CallbackMockProxyResolver::CancelRequest(RequestHandle request_handle) {
139 MockAsyncProxyResolverExpectsBytes::CancelRequest(request_handle); 139 MockAsyncProxyResolver::CancelRequest(request_handle);
140 if (!cancel_callback_.is_null()) { 140 if (!cancel_callback_.is_null()) {
141 cancel_callback_.Run(); 141 cancel_callback_.Run();
142 cancel_callback_.Reset(); 142 cancel_callback_.Reset();
143 } 143 }
144 } 144 }
145 145
146 void CallbackMockProxyResolver::WaitForCancel() { 146 void CallbackMockProxyResolver::WaitForCancel() {
147 while (cancelled_requests().empty()) { 147 while (cancelled_requests().empty()) {
148 base::RunLoop run_loop; 148 base::RunLoop run_loop;
149 cancel_callback_ = run_loop.QuitClosure(); 149 cancel_callback_ = run_loop.QuitClosure();
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
184 interfaces::ProxyResolver* resolver_; 184 interfaces::ProxyResolver* resolver_;
185 ProxyResolver::LoadStateChangedCallback load_state_changed_callback_; 185 ProxyResolver::LoadStateChangedCallback load_state_changed_callback_;
186 }; 186 };
187 187
188 TEST_F(MojoProxyResolverImplTest, GetProxyForUrl) { 188 TEST_F(MojoProxyResolverImplTest, GetProxyForUrl) {
189 interfaces::ProxyResolverRequestClientPtr client_ptr; 189 interfaces::ProxyResolverRequestClientPtr client_ptr;
190 TestRequestClient client(mojo::GetProxy(&client_ptr)); 190 TestRequestClient client(mojo::GetProxy(&client_ptr));
191 191
192 resolver_->GetProxyForUrl("http://example.com", client_ptr.Pass()); 192 resolver_->GetProxyForUrl("http://example.com", client_ptr.Pass());
193 ASSERT_EQ(1u, mock_proxy_resolver_->pending_requests().size()); 193 ASSERT_EQ(1u, mock_proxy_resolver_->pending_requests().size());
194 scoped_refptr<MockAsyncProxyResolverBase::Request> request = 194 scoped_refptr<MockAsyncProxyResolver::Request> request =
195 mock_proxy_resolver_->pending_requests()[0]; 195 mock_proxy_resolver_->pending_requests()[0];
196 EXPECT_EQ(GURL("http://example.com"), request->url()); 196 EXPECT_EQ(GURL("http://example.com"), request->url());
197 197
198 ASSERT_FALSE(load_state_changed_callback_.is_null()); 198 ASSERT_FALSE(load_state_changed_callback_.is_null());
199 load_state_changed_callback_.Run(request.get(), 199 load_state_changed_callback_.Run(request.get(),
200 LOAD_STATE_RESOLVING_HOST_IN_PROXY_SCRIPT); 200 LOAD_STATE_RESOLVING_HOST_IN_PROXY_SCRIPT);
201 client.event_waiter().WaitForEvent(TestRequestClient::LOAD_STATE_CHANGED); 201 client.event_waiter().WaitForEvent(TestRequestClient::LOAD_STATE_CHANGED);
202 EXPECT_EQ(LOAD_STATE_RESOLVING_HOST_IN_PROXY_SCRIPT, client.load_state()); 202 EXPECT_EQ(LOAD_STATE_RESOLVING_HOST_IN_PROXY_SCRIPT, client.load_state());
203 203
204 request->results()->UsePacString( 204 request->results()->UsePacString(
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
256 ProxyServer& server = proxy_servers[0]; 256 ProxyServer& server = proxy_servers[0];
257 EXPECT_TRUE(server.is_direct()); 257 EXPECT_TRUE(server.is_direct());
258 } 258 }
259 259
260 TEST_F(MojoProxyResolverImplTest, GetProxyForUrlFailure) { 260 TEST_F(MojoProxyResolverImplTest, GetProxyForUrlFailure) {
261 interfaces::ProxyResolverRequestClientPtr client_ptr; 261 interfaces::ProxyResolverRequestClientPtr client_ptr;
262 TestRequestClient client(mojo::GetProxy(&client_ptr)); 262 TestRequestClient client(mojo::GetProxy(&client_ptr));
263 263
264 resolver_->GetProxyForUrl("http://example.com", client_ptr.Pass()); 264 resolver_->GetProxyForUrl("http://example.com", client_ptr.Pass());
265 ASSERT_EQ(1u, mock_proxy_resolver_->pending_requests().size()); 265 ASSERT_EQ(1u, mock_proxy_resolver_->pending_requests().size());
266 scoped_refptr<MockAsyncProxyResolverBase::Request> request = 266 scoped_refptr<MockAsyncProxyResolver::Request> request =
267 mock_proxy_resolver_->pending_requests()[0]; 267 mock_proxy_resolver_->pending_requests()[0];
268 EXPECT_EQ(GURL("http://example.com"), request->url()); 268 EXPECT_EQ(GURL("http://example.com"), request->url());
269 request->CompleteNow(ERR_FAILED); 269 request->CompleteNow(ERR_FAILED);
270 client.WaitForResult(); 270 client.WaitForResult();
271 271
272 EXPECT_EQ(ERR_FAILED, client.error()); 272 EXPECT_EQ(ERR_FAILED, client.error());
273 std::vector<ProxyServer> proxy_servers = 273 std::vector<ProxyServer> proxy_servers =
274 client.results().To<std::vector<ProxyServer>>(); 274 client.results().To<std::vector<ProxyServer>>();
275 EXPECT_TRUE(proxy_servers.empty()); 275 EXPECT_TRUE(proxy_servers.empty());
276 } 276 }
277 277
278 TEST_F(MojoProxyResolverImplTest, GetProxyForUrlMultiple) { 278 TEST_F(MojoProxyResolverImplTest, GetProxyForUrlMultiple) {
279 interfaces::ProxyResolverRequestClientPtr client_ptr1; 279 interfaces::ProxyResolverRequestClientPtr client_ptr1;
280 TestRequestClient client1(mojo::GetProxy(&client_ptr1)); 280 TestRequestClient client1(mojo::GetProxy(&client_ptr1));
281 interfaces::ProxyResolverRequestClientPtr client_ptr2; 281 interfaces::ProxyResolverRequestClientPtr client_ptr2;
282 TestRequestClient client2(mojo::GetProxy(&client_ptr2)); 282 TestRequestClient client2(mojo::GetProxy(&client_ptr2));
283 283
284 resolver_->GetProxyForUrl("http://example.com", client_ptr1.Pass()); 284 resolver_->GetProxyForUrl("http://example.com", client_ptr1.Pass());
285 resolver_->GetProxyForUrl("https://example.com", client_ptr2.Pass()); 285 resolver_->GetProxyForUrl("https://example.com", client_ptr2.Pass());
286 ASSERT_EQ(2u, mock_proxy_resolver_->pending_requests().size()); 286 ASSERT_EQ(2u, mock_proxy_resolver_->pending_requests().size());
287 scoped_refptr<MockAsyncProxyResolverBase::Request> request1 = 287 scoped_refptr<MockAsyncProxyResolver::Request> request1 =
288 mock_proxy_resolver_->pending_requests()[0]; 288 mock_proxy_resolver_->pending_requests()[0];
289 EXPECT_EQ(GURL("http://example.com"), request1->url()); 289 EXPECT_EQ(GURL("http://example.com"), request1->url());
290 scoped_refptr<MockAsyncProxyResolverBase::Request> request2 = 290 scoped_refptr<MockAsyncProxyResolver::Request> request2 =
291 mock_proxy_resolver_->pending_requests()[1]; 291 mock_proxy_resolver_->pending_requests()[1];
292 EXPECT_EQ(GURL("https://example.com"), request2->url()); 292 EXPECT_EQ(GURL("https://example.com"), request2->url());
293 request1->results()->UsePacString("HTTPS proxy.example.com:12345"); 293 request1->results()->UsePacString("HTTPS proxy.example.com:12345");
294 request1->CompleteNow(OK); 294 request1->CompleteNow(OK);
295 request2->results()->UsePacString("SOCKS5 another-proxy.example.com:6789"); 295 request2->results()->UsePacString("SOCKS5 another-proxy.example.com:6789");
296 request2->CompleteNow(OK); 296 request2->CompleteNow(OK);
297 client1.WaitForResult(); 297 client1.WaitForResult();
298 client2.WaitForResult(); 298 client2.WaitForResult();
299 299
300 EXPECT_EQ(OK, client1.error()); 300 EXPECT_EQ(OK, client1.error());
(...skipping 15 matching lines...) Expand all
316 EXPECT_EQ(6789, server2.host_port_pair().port()); 316 EXPECT_EQ(6789, server2.host_port_pair().port());
317 } 317 }
318 318
319 TEST_F(MojoProxyResolverImplTest, DestroyClient) { 319 TEST_F(MojoProxyResolverImplTest, DestroyClient) {
320 interfaces::ProxyResolverRequestClientPtr client_ptr; 320 interfaces::ProxyResolverRequestClientPtr client_ptr;
321 scoped_ptr<TestRequestClient> client( 321 scoped_ptr<TestRequestClient> client(
322 new TestRequestClient(mojo::GetProxy(&client_ptr))); 322 new TestRequestClient(mojo::GetProxy(&client_ptr)));
323 323
324 resolver_->GetProxyForUrl("http://example.com", client_ptr.Pass()); 324 resolver_->GetProxyForUrl("http://example.com", client_ptr.Pass());
325 ASSERT_EQ(1u, mock_proxy_resolver_->pending_requests().size()); 325 ASSERT_EQ(1u, mock_proxy_resolver_->pending_requests().size());
326 scoped_refptr<MockAsyncProxyResolverBase::Request> request = 326 scoped_refptr<MockAsyncProxyResolver::Request> request =
327 mock_proxy_resolver_->pending_requests()[0]; 327 mock_proxy_resolver_->pending_requests()[0];
328 EXPECT_EQ(GURL("http://example.com"), request->url()); 328 EXPECT_EQ(GURL("http://example.com"), request->url());
329 request->results()->UsePacString("PROXY proxy.example.com:8080"); 329 request->results()->UsePacString("PROXY proxy.example.com:8080");
330 client.reset(); 330 client.reset();
331 mock_proxy_resolver_->WaitForCancel(); 331 mock_proxy_resolver_->WaitForCancel();
332 } 332 }
333 333
334 TEST_F(MojoProxyResolverImplTest, DestroyService) { 334 TEST_F(MojoProxyResolverImplTest, DestroyService) {
335 interfaces::ProxyResolverRequestClientPtr client_ptr; 335 interfaces::ProxyResolverRequestClientPtr client_ptr;
336 TestRequestClient client(mojo::GetProxy(&client_ptr)); 336 TestRequestClient client(mojo::GetProxy(&client_ptr));
337 337
338 resolver_->GetProxyForUrl("http://example.com", client_ptr.Pass()); 338 resolver_->GetProxyForUrl("http://example.com", client_ptr.Pass());
339 ASSERT_EQ(1u, mock_proxy_resolver_->pending_requests().size()); 339 ASSERT_EQ(1u, mock_proxy_resolver_->pending_requests().size());
340 scoped_refptr<MockAsyncProxyResolverBase::Request> request = 340 scoped_refptr<MockAsyncProxyResolver::Request> request =
341 mock_proxy_resolver_->pending_requests()[0]; 341 mock_proxy_resolver_->pending_requests()[0];
342 resolver_impl_.reset(); 342 resolver_impl_.reset();
343 client.event_waiter().WaitForEvent(TestRequestClient::CONNECTION_ERROR); 343 client.event_waiter().WaitForEvent(TestRequestClient::CONNECTION_ERROR);
344 } 344 }
345 345
346 } // namespace net 346 } // namespace net
OLDNEW
« no previous file with comments | « net/proxy/mojo_proxy_resolver_factory_impl_unittest.cc ('k') | net/proxy/multi_threaded_proxy_resolver.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698