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

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

Issue 2083463002: Replace //net TypeConverters with StructTraits. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@type-converter-cleanup--gurl
Patch Set: rebase Created 4 years, 2 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/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 10 matching lines...) Expand all
21 #include "mojo/common/common_type_converters.h" 21 #include "mojo/common/common_type_converters.h"
22 #include "mojo/public/cpp/bindings/binding.h" 22 #include "mojo/public/cpp/bindings/binding.h"
23 #include "net/base/load_states.h" 23 #include "net/base/load_states.h"
24 #include "net/base/net_errors.h" 24 #include "net/base/net_errors.h"
25 #include "net/base/test_completion_callback.h" 25 #include "net/base/test_completion_callback.h"
26 #include "net/dns/host_resolver.h" 26 #include "net/dns/host_resolver.h"
27 #include "net/log/net_log_event_type.h" 27 #include "net/log/net_log_event_type.h"
28 #include "net/log/net_log_with_source.h" 28 #include "net/log/net_log_with_source.h"
29 #include "net/log/test_net_log.h" 29 #include "net/log/test_net_log.h"
30 #include "net/proxy/mojo_proxy_resolver_factory.h" 30 #include "net/proxy/mojo_proxy_resolver_factory.h"
31 #include "net/proxy/mojo_proxy_type_converters.h"
32 #include "net/proxy/proxy_info.h" 31 #include "net/proxy/proxy_info.h"
33 #include "net/proxy/proxy_resolver.h" 32 #include "net/proxy/proxy_resolver.h"
34 #include "net/proxy/proxy_resolver_error_observer.h" 33 #include "net/proxy/proxy_resolver_error_observer.h"
35 #include "net/proxy/proxy_resolver_script_data.h" 34 #include "net/proxy/proxy_resolver_script_data.h"
36 #include "net/test/event_waiter.h" 35 #include "net/test/event_waiter.h"
37 #include "net/test/gtest_util.h" 36 #include "net/test/gtest_util.h"
38 #include "testing/gmock/include/gmock/gmock.h" 37 #include "testing/gmock/include/gmock/gmock.h"
39 #include "testing/gtest/include/gtest/gtest.h" 38 #include "testing/gtest/include/gtest/gtest.h"
40 #include "url/gurl.h" 39 #include "url/gurl.h"
41 40
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
120 DROP, 119 DROP,
121 // Disconnect the service. 120 // Disconnect the service.
122 DISCONNECT, 121 DISCONNECT,
123 // Wait for the client pipe to be disconnected. 122 // Wait for the client pipe to be disconnected.
124 WAIT_FOR_CLIENT_DISCONNECT, 123 WAIT_FOR_CLIENT_DISCONNECT,
125 // Make a DNS request. 124 // Make a DNS request.
126 MAKE_DNS_REQUEST, 125 MAKE_DNS_REQUEST,
127 }; 126 };
128 127
129 GetProxyForUrlAction() {} 128 GetProxyForUrlAction() {}
130 GetProxyForUrlAction(const GetProxyForUrlAction& old) { 129 GetProxyForUrlAction(const GetProxyForUrlAction& other) = default;
131 action = old.action;
132 error = old.error;
133 expected_url = old.expected_url;
134 proxy_servers = old.proxy_servers.Clone();
135 }
136 130
137 static GetProxyForUrlAction ReturnError(const GURL& url, Error error) { 131 static GetProxyForUrlAction ReturnError(const GURL& url, Error error) {
138 GetProxyForUrlAction result; 132 GetProxyForUrlAction result;
139 result.expected_url = url; 133 result.expected_url = url;
140 result.error = error; 134 result.error = error;
141 return result; 135 return result;
142 } 136 }
143 137
144 static GetProxyForUrlAction ReturnServers( 138 static GetProxyForUrlAction ReturnServers(const GURL& url,
145 const GURL& url, 139 const ProxyInfo& proxy_info) {
146 const mojo::Array<interfaces::ProxyServerPtr>& proxy_servers) {
147 GetProxyForUrlAction result; 140 GetProxyForUrlAction result;
148 result.expected_url = url; 141 result.expected_url = url;
149 result.proxy_servers = proxy_servers.Clone(); 142 result.proxy_info = proxy_info;
150 return result; 143 return result;
151 } 144 }
152 145
153 static GetProxyForUrlAction DropRequest(const GURL& url) { 146 static GetProxyForUrlAction DropRequest(const GURL& url) {
154 GetProxyForUrlAction result; 147 GetProxyForUrlAction result;
155 result.expected_url = url; 148 result.expected_url = url;
156 result.action = DROP; 149 result.action = DROP;
157 return result; 150 return result;
158 } 151 }
159 152
(...skipping 13 matching lines...) Expand all
173 166
174 static GetProxyForUrlAction MakeDnsRequest(const GURL& url) { 167 static GetProxyForUrlAction MakeDnsRequest(const GURL& url) {
175 GetProxyForUrlAction result; 168 GetProxyForUrlAction result;
176 result.expected_url = url; 169 result.expected_url = url;
177 result.action = MAKE_DNS_REQUEST; 170 result.action = MAKE_DNS_REQUEST;
178 return result; 171 return result;
179 } 172 }
180 173
181 Action action = COMPLETE; 174 Action action = COMPLETE;
182 Error error = OK; 175 Error error = OK;
183 mojo::Array<interfaces::ProxyServerPtr> proxy_servers; 176 ProxyInfo proxy_info;
184 GURL expected_url; 177 GURL expected_url;
185 }; 178 };
186 179
187 class MockMojoProxyResolver : public interfaces::ProxyResolver { 180 class MockMojoProxyResolver : public interfaces::ProxyResolver {
188 public: 181 public:
189 MockMojoProxyResolver(); 182 MockMojoProxyResolver();
190 ~MockMojoProxyResolver() override; 183 ~MockMojoProxyResolver() override;
191 184
192 void AddGetProxyAction(GetProxyForUrlAction action); 185 void AddGetProxyAction(GetProxyForUrlAction action);
193 186
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
256 interfaces::ProxyResolverRequestClientPtr client) { 249 interfaces::ProxyResolverRequestClientPtr client) {
257 ASSERT_FALSE(get_proxy_actions_.empty()); 250 ASSERT_FALSE(get_proxy_actions_.empty());
258 GetProxyForUrlAction action = get_proxy_actions_.front(); 251 GetProxyForUrlAction action = get_proxy_actions_.front();
259 get_proxy_actions_.pop(); 252 get_proxy_actions_.pop();
260 253
261 EXPECT_EQ(action.expected_url, url); 254 EXPECT_EQ(action.expected_url, url);
262 client->Alert(url.spec()); 255 client->Alert(url.spec());
263 client->OnError(12345, url.spec()); 256 client->OnError(12345, url.spec());
264 switch (action.action) { 257 switch (action.action) {
265 case GetProxyForUrlAction::COMPLETE: { 258 case GetProxyForUrlAction::COMPLETE: {
266 client->ReportResult(action.error, std::move(action.proxy_servers)); 259 client->ReportResult(action.error, action.proxy_info);
267 break; 260 break;
268 } 261 }
269 case GetProxyForUrlAction::DROP: { 262 case GetProxyForUrlAction::DROP: {
270 client.reset(); 263 client.reset();
271 break; 264 break;
272 } 265 }
273 case GetProxyForUrlAction::DISCONNECT: { 266 case GetProxyForUrlAction::DISCONNECT: {
274 binding_.Close(); 267 binding_.Close();
275 break; 268 break;
276 } 269 }
277 case GetProxyForUrlAction::WAIT_FOR_CLIENT_DISCONNECT: { 270 case GetProxyForUrlAction::WAIT_FOR_CLIENT_DISCONNECT: {
278 base::MessageLoop::ScopedNestableTaskAllower nestable_allower( 271 base::MessageLoop::ScopedNestableTaskAllower nestable_allower(
279 base::MessageLoop::current()); 272 base::MessageLoop::current());
280 base::RunLoop run_loop; 273 base::RunLoop run_loop;
281 client.set_connection_error_handler(run_loop.QuitClosure()); 274 client.set_connection_error_handler(run_loop.QuitClosure());
282 run_loop.Run(); 275 run_loop.Run();
283 ASSERT_TRUE(client.encountered_error()); 276 ASSERT_TRUE(client.encountered_error());
284 break; 277 break;
285 } 278 }
286 case GetProxyForUrlAction::MAKE_DNS_REQUEST: { 279 case GetProxyForUrlAction::MAKE_DNS_REQUEST: {
287 interfaces::HostResolverRequestInfoPtr request( 280 auto request = base::MakeUnique<HostResolver::RequestInfo>(
288 interfaces::HostResolverRequestInfo::New()); 281 HostPortPair(url.spec(), 12345));
289 request->host = url.spec();
290 request->port = 12345;
291 interfaces::HostResolverRequestClientPtr dns_client; 282 interfaces::HostResolverRequestClientPtr dns_client;
292 mojo::GetProxy(&dns_client); 283 mojo::GetProxy(&dns_client);
293 client->ResolveDns(std::move(request), std::move(dns_client)); 284 client->ResolveDns(std::move(request), std::move(dns_client));
294 blocked_clients_.push_back( 285 blocked_clients_.push_back(
295 base::MakeUnique<interfaces::ProxyResolverRequestClientPtr>( 286 base::MakeUnique<interfaces::ProxyResolverRequestClientPtr>(
296 std::move(client))); 287 std::move(client)));
297 break; 288 break;
298 } 289 }
299 } 290 }
300 WakeWaiter(); 291 WakeWaiter();
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
446 case CreateProxyResolverAction::WAIT_FOR_CLIENT_DISCONNECT: { 437 case CreateProxyResolverAction::WAIT_FOR_CLIENT_DISCONNECT: {
447 base::MessageLoop::ScopedNestableTaskAllower nestable_allower( 438 base::MessageLoop::ScopedNestableTaskAllower nestable_allower(
448 base::MessageLoop::current()); 439 base::MessageLoop::current());
449 base::RunLoop run_loop; 440 base::RunLoop run_loop;
450 client.set_connection_error_handler(run_loop.QuitClosure()); 441 client.set_connection_error_handler(run_loop.QuitClosure());
451 run_loop.Run(); 442 run_loop.Run();
452 ASSERT_TRUE(client.encountered_error()); 443 ASSERT_TRUE(client.encountered_error());
453 break; 444 break;
454 } 445 }
455 case CreateProxyResolverAction::MAKE_DNS_REQUEST: { 446 case CreateProxyResolverAction::MAKE_DNS_REQUEST: {
456 interfaces::HostResolverRequestInfoPtr request( 447 auto request = base::MakeUnique<HostResolver::RequestInfo>(
457 interfaces::HostResolverRequestInfo::New()); 448 HostPortPair(pac_script, 12345));
458 request->host = pac_script;
459 request->port = 12345;
460 interfaces::HostResolverRequestClientPtr dns_client; 449 interfaces::HostResolverRequestClientPtr dns_client;
461 mojo::GetProxy(&dns_client); 450 mojo::GetProxy(&dns_client);
462 client->ResolveDns(std::move(request), std::move(dns_client)); 451 client->ResolveDns(std::move(request), std::move(dns_client));
463 blocked_clients_.push_back( 452 blocked_clients_.push_back(
464 base::MakeUnique<interfaces::ProxyResolverFactoryRequestClientPtr>( 453 base::MakeUnique<interfaces::ProxyResolverFactoryRequestClientPtr>(
465 std::move(client))); 454 std::move(client)));
466 break; 455 break;
467 } 456 }
468 } 457 }
469 WakeWaiter(); 458 WakeWaiter();
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
547 536
548 std::unique_ptr<base::ScopedClosureRunner> CreateResolver( 537 std::unique_ptr<base::ScopedClosureRunner> CreateResolver(
549 const mojo::String& pac_script, 538 const mojo::String& pac_script,
550 mojo::InterfaceRequest<interfaces::ProxyResolver> req, 539 mojo::InterfaceRequest<interfaces::ProxyResolver> req,
551 interfaces::ProxyResolverFactoryRequestClientPtr client) override { 540 interfaces::ProxyResolverFactoryRequestClientPtr client) override {
552 factory_ptr_->CreateResolver(pac_script, std::move(req), std::move(client)); 541 factory_ptr_->CreateResolver(pac_script, std::move(req), std::move(client));
553 return base::MakeUnique<base::ScopedClosureRunner>( 542 return base::MakeUnique<base::ScopedClosureRunner>(
554 on_delete_callback_.closure()); 543 on_delete_callback_.closure());
555 } 544 }
556 545
557 mojo::Array<interfaces::ProxyServerPtr> ProxyServersFromPacString( 546 ProxyInfo ProxyServersFromPacString(const std::string& pac_string) {
558 const std::string& pac_string) {
559 ProxyInfo proxy_info; 547 ProxyInfo proxy_info;
560 proxy_info.UsePacString(pac_string); 548 proxy_info.UsePacString(pac_string);
561 549 return proxy_info;
562 return mojo::Array<interfaces::ProxyServerPtr>::From(
563 proxy_info.proxy_list().GetAll());
564 } 550 }
565 551
566 void CreateProxyResolver() { 552 void CreateProxyResolver() {
567 mock_proxy_resolver_factory_->AddCreateProxyResolverAction( 553 mock_proxy_resolver_factory_->AddCreateProxyResolverAction(
568 CreateProxyResolverAction::ReturnResult(kScriptData, OK)); 554 CreateProxyResolverAction::ReturnResult(kScriptData, OK));
569 TestCompletionCallback callback; 555 TestCompletionCallback callback;
570 scoped_refptr<ProxyResolverScriptData> pac_script( 556 scoped_refptr<ProxyResolverScriptData> pac_script(
571 ProxyResolverScriptData::FromUTF8(kScriptData)); 557 ProxyResolverScriptData::FromUTF8(kScriptData));
572 std::unique_ptr<ProxyResolverFactory::Request> request; 558 std::unique_ptr<ProxyResolverFactory::Request> request;
573 ASSERT_EQ( 559 ASSERT_EQ(
(...skipping 337 matching lines...) Expand 10 before | Expand all | Expand 10 after
911 mock_proxy_resolver_.ClearBlockedClients(); 897 mock_proxy_resolver_.ClearBlockedClients();
912 request->WaitForResult(); 898 request->WaitForResult();
913 } 899 }
914 900
915 TEST_F(ProxyResolverFactoryMojoTest, DeleteResolver) { 901 TEST_F(ProxyResolverFactoryMojoTest, DeleteResolver) {
916 CreateProxyResolver(); 902 CreateProxyResolver();
917 proxy_resolver_mojo_.reset(); 903 proxy_resolver_mojo_.reset();
918 on_delete_callback_.WaitForResult(); 904 on_delete_callback_.WaitForResult();
919 } 905 }
920 } // namespace net 906 } // namespace net
OLDNEW
« net/proxy/mojo_proxy_struct_traits.cc ('K') | « net/proxy/proxy_resolver_factory_mojo.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698