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

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

Issue 1017453005: Add support for ProxyResolverErrorObserver to ProxyResolverMojo. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 9 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_mojo.h" 5 #include "net/proxy/proxy_resolver_mojo.h"
6 6
7 #include <list> 7 #include <list>
8 #include <map> 8 #include <map>
9 #include <queue> 9 #include <queue>
10 #include <string> 10 #include <string>
11 11
12 #include "base/bind.h" 12 #include "base/bind.h"
13 #include "base/memory/scoped_ptr.h" 13 #include "base/memory/scoped_ptr.h"
14 #include "base/memory/scoped_vector.h" 14 #include "base/memory/scoped_vector.h"
15 #include "base/run_loop.h" 15 #include "base/run_loop.h"
16 #include "base/stl_util.h" 16 #include "base/stl_util.h"
17 #include "mojo/common/common_type_converters.h" 17 #include "mojo/common/common_type_converters.h"
18 #include "net/base/net_errors.h" 18 #include "net/base/net_errors.h"
19 #include "net/base/net_log.h" 19 #include "net/base/net_log.h"
20 #include "net/base/test_completion_callback.h" 20 #include "net/base/test_completion_callback.h"
21 #include "net/dns/mock_host_resolver.h" 21 #include "net/dns/mock_host_resolver.h"
22 #include "net/proxy/mojo_proxy_resolver_factory.h" 22 #include "net/proxy/mojo_proxy_resolver_factory.h"
23 #include "net/proxy/mojo_proxy_type_converters.h" 23 #include "net/proxy/mojo_proxy_type_converters.h"
24 #include "net/proxy/proxy_info.h" 24 #include "net/proxy/proxy_info.h"
25 #include "net/proxy/proxy_resolver_error_observer.h"
25 #include "net/proxy/proxy_resolver_script_data.h" 26 #include "net/proxy/proxy_resolver_script_data.h"
26 #include "testing/gtest/include/gtest/gtest.h" 27 #include "testing/gtest/include/gtest/gtest.h"
27 #include "third_party/mojo/src/mojo/public/cpp/bindings/binding.h" 28 #include "third_party/mojo/src/mojo/public/cpp/bindings/binding.h"
28 #include "third_party/mojo/src/mojo/public/cpp/bindings/error_handler.h" 29 #include "third_party/mojo/src/mojo/public/cpp/bindings/error_handler.h"
29 #include "url/gurl.h" 30 #include "url/gurl.h"
30 31
31 namespace net { 32 namespace net {
32 33
33 namespace { 34 namespace {
34 35
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after
252 WakeWaiter(); 253 WakeWaiter();
253 } 254 }
254 255
255 class TestMojoProxyResolverFactory : public MojoProxyResolverFactory { 256 class TestMojoProxyResolverFactory : public MojoProxyResolverFactory {
256 public: 257 public:
257 TestMojoProxyResolverFactory(); 258 TestMojoProxyResolverFactory();
258 ~TestMojoProxyResolverFactory() override; 259 ~TestMojoProxyResolverFactory() override;
259 260
260 // Overridden from MojoProxyResolverFactory: 261 // Overridden from MojoProxyResolverFactory:
261 void Create(mojo::InterfaceRequest<interfaces::ProxyResolver> req, 262 void Create(mojo::InterfaceRequest<interfaces::ProxyResolver> req,
262 interfaces::HostResolverPtr host_resolver) override; 263 interfaces::HostResolverPtr host_resolver,
264 interfaces::ProxyResolverErrorObserverPtr error_handler) override;
263 265
264 MockMojoProxyResolver& GetMockResolver() { return *mock_proxy_resolver_; } 266 MockMojoProxyResolver& GetMockResolver() { return *mock_proxy_resolver_; }
265 267
266 void AddFuturePacScriptAction(int creation, SetPacScriptAction action); 268 void AddFuturePacScriptAction(int creation, SetPacScriptAction action);
267 void AddFutureGetProxyAction(int creation, GetProxyForUrlAction action); 269 void AddFutureGetProxyAction(int creation, GetProxyForUrlAction action);
268 270
269 int num_create_calls() const { return num_create_calls_; } 271 int num_create_calls() const { return num_create_calls_; }
270 void FailNextCreate() { fail_next_create_ = true; } 272 void FailNextCreate() { fail_next_create_ = true; }
271 273
272 private: 274 private:
273 int num_create_calls_; 275 int num_create_calls_;
274 std::map<int, std::list<SetPacScriptAction>> pac_script_actions_; 276 std::map<int, std::list<SetPacScriptAction>> pac_script_actions_;
275 std::map<int, std::list<GetProxyForUrlAction>> get_proxy_actions_; 277 std::map<int, std::list<GetProxyForUrlAction>> get_proxy_actions_;
276 bool fail_next_create_; 278 bool fail_next_create_;
277 279
278 scoped_ptr<MockMojoProxyResolver> mock_proxy_resolver_; 280 scoped_ptr<MockMojoProxyResolver> mock_proxy_resolver_;
279 }; 281 };
280 282
281 TestMojoProxyResolverFactory::TestMojoProxyResolverFactory() 283 TestMojoProxyResolverFactory::TestMojoProxyResolverFactory()
282 : num_create_calls_(0), fail_next_create_(false) { 284 : num_create_calls_(0), fail_next_create_(false) {
283 } 285 }
284 286
285 TestMojoProxyResolverFactory::~TestMojoProxyResolverFactory() { 287 TestMojoProxyResolverFactory::~TestMojoProxyResolverFactory() {
286 } 288 }
287 289
288 void TestMojoProxyResolverFactory::Create( 290 void TestMojoProxyResolverFactory::Create(
289 mojo::InterfaceRequest<interfaces::ProxyResolver> req, 291 mojo::InterfaceRequest<interfaces::ProxyResolver> req,
290 interfaces::HostResolverPtr host_resolver) { 292 interfaces::HostResolverPtr host_resolver,
293 interfaces::ProxyResolverErrorObserverPtr error_handler) {
291 if (fail_next_create_) { 294 if (fail_next_create_) {
292 req = nullptr; 295 req = nullptr;
293 fail_next_create_ = false; 296 fail_next_create_ = false;
294 } else { 297 } else {
295 mock_proxy_resolver_.reset(new MockMojoProxyResolver(req.Pass())); 298 mock_proxy_resolver_.reset(new MockMojoProxyResolver(req.Pass()));
296 299
297 for (const auto& action : pac_script_actions_[num_create_calls_]) 300 for (const auto& action : pac_script_actions_[num_create_calls_])
298 mock_proxy_resolver_->AddPacScriptAction(action); 301 mock_proxy_resolver_->AddPacScriptAction(action);
299 302
300 for (const auto& action : get_proxy_actions_[num_create_calls_]) 303 for (const auto& action : get_proxy_actions_[num_create_calls_])
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
355 error_ = callback_.WaitForResult(); 358 error_ = callback_.WaitForResult();
356 return error_; 359 return error_;
357 } 360 }
358 361
359 } // namespace 362 } // namespace
360 363
361 class ProxyResolverMojoTest : public testing::Test { 364 class ProxyResolverMojoTest : public testing::Test {
362 public: 365 public:
363 void SetUp() override { 366 void SetUp() override {
364 proxy_resolver_mojo_.reset(new ProxyResolverMojo( 367 proxy_resolver_mojo_.reset(new ProxyResolverMojo(
365 &mojo_proxy_resolver_factory_, &mock_host_resolver_)); 368 &mojo_proxy_resolver_factory_, &mock_host_resolver_, nullptr));
366 } 369 }
367 370
368 scoped_ptr<Request> MakeRequest(const GURL& url) { 371 scoped_ptr<Request> MakeRequest(const GURL& url) {
369 return make_scoped_ptr(new Request(proxy_resolver_mojo_.get(), url)); 372 return make_scoped_ptr(new Request(proxy_resolver_mojo_.get(), url));
370 } 373 }
371 374
372 mojo::Array<interfaces::ProxyServerPtr> ProxyServersFromPacString( 375 mojo::Array<interfaces::ProxyServerPtr> ProxyServersFromPacString(
373 const std::string& pac_string) { 376 const std::string& pac_string) {
374 ProxyInfo proxy_info; 377 ProxyInfo proxy_info;
375 proxy_info.UsePacString(pac_string); 378 proxy_info.UsePacString(pac_string);
(...skipping 350 matching lines...) Expand 10 before | Expand all | Expand 10 after
726 // resolve request. 729 // resolve request.
727 scoped_ptr<Request> request(MakeRequest(GURL(kExampleUrl))); 730 scoped_ptr<Request> request(MakeRequest(GURL(kExampleUrl)));
728 EXPECT_EQ(ERR_IO_PENDING, request->Resolve()); 731 EXPECT_EQ(ERR_IO_PENDING, request->Resolve());
729 EXPECT_EQ(OK, request->WaitForResult()); 732 EXPECT_EQ(OK, request->WaitForResult());
730 EXPECT_EQ("DIRECT", request->results().ToPacString()); 733 EXPECT_EQ("DIRECT", request->results().ToPacString());
731 734
732 EXPECT_EQ(2, mojo_proxy_resolver_factory_.num_create_calls()); 735 EXPECT_EQ(2, mojo_proxy_resolver_factory_.num_create_calls());
733 } 736 }
734 737
735 } // namespace net 738 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698