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

Side by Side Diff: net/proxy/mojo_proxy_resolver_factory_impl_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, 7 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_factory_impl.h" 5 #include "net/proxy/mojo_proxy_resolver_factory_impl.h"
6 6
7 #include "base/strings/utf_string_conversions.h" 7 #include "base/strings/utf_string_conversions.h"
8 #include "net/base/test_completion_callback.h" 8 #include "net/base/test_completion_callback.h"
9 #include "net/proxy/mock_proxy_resolver.h" 9 #include "net/proxy/mock_proxy_resolver.h"
10 #include "net/proxy/proxy_resolver_error_observer.h"
10 #include "net/test/event_waiter.h" 11 #include "net/test/event_waiter.h"
11 #include "testing/gtest/include/gtest/gtest.h" 12 #include "testing/gtest/include/gtest/gtest.h"
12 #include "third_party/mojo/src/mojo/public/cpp/bindings/binding.h" 13 #include "third_party/mojo/src/mojo/public/cpp/bindings/binding.h"
13 #include "third_party/mojo/src/mojo/public/cpp/bindings/error_handler.h" 14 #include "third_party/mojo/src/mojo/public/cpp/bindings/error_handler.h"
14 15
15 namespace net { 16 namespace net {
16 namespace { 17 namespace {
17 18
18 const char kScriptData[] = "FooBarBaz"; 19 const char kScriptData[] = "FooBarBaz";
19 20
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
68 base::Unretained(this)), 69 base::Unretained(this)),
69 mojo::GetProxy(&factory_)); 70 mojo::GetProxy(&factory_));
70 mock_factory_owner_.reset(new TestProxyResolverFactory(&waiter_)); 71 mock_factory_owner_.reset(new TestProxyResolverFactory(&waiter_));
71 mock_factory_ = mock_factory_owner_.get(); 72 mock_factory_ = mock_factory_owner_.get();
72 } 73 }
73 74
74 void OnConnectionError() override { waiter_.NotifyEvent(CONNECTION_ERROR); } 75 void OnConnectionError() override { waiter_.NotifyEvent(CONNECTION_ERROR); }
75 76
76 scoped_ptr<ProxyResolverFactory> CreateFakeProxyResolverFactory( 77 scoped_ptr<ProxyResolverFactory> CreateFakeProxyResolverFactory(
77 HostResolver* host_resolver, 78 HostResolver* host_resolver,
79 scoped_ptr<ProxyResolverErrorObserver> error_observer,
78 const ProxyResolver::LoadStateChangedCallback& callback) { 80 const ProxyResolver::LoadStateChangedCallback& callback) {
79 EXPECT_TRUE(host_resolver); 81 EXPECT_TRUE(host_resolver);
80 EXPECT_FALSE(callback.is_null()); 82 EXPECT_FALSE(callback.is_null());
81 DCHECK(mock_factory_owner_); 83 DCHECK(mock_factory_owner_);
82 return mock_factory_owner_.Pass(); 84 return mock_factory_owner_.Pass();
83 } 85 }
84 86
85 void OnFakeProxyInstanceDestroyed() { 87 void OnFakeProxyInstanceDestroyed() {
86 instances_destroyed_++; 88 instances_destroyed_++;
87 waiter_.NotifyEvent(RESOLVER_DESTROYED); 89 waiter_.NotifyEvent(RESOLVER_DESTROYED);
(...skipping 10 matching lines...) Expand all
98 CompletionCallback create_callback_; 100 CompletionCallback create_callback_;
99 101
100 EventWaiter<Event> waiter_; 102 EventWaiter<Event> waiter_;
101 }; 103 };
102 104
103 TEST_F(MojoProxyResolverFactoryImplTest, DisconnectHostResolver) { 105 TEST_F(MojoProxyResolverFactoryImplTest, DisconnectHostResolver) {
104 interfaces::ProxyResolverPtr proxy_resolver; 106 interfaces::ProxyResolverPtr proxy_resolver;
105 interfaces::HostResolverPtr host_resolver; 107 interfaces::HostResolverPtr host_resolver;
106 mojo::InterfaceRequest<interfaces::HostResolver> host_resolver_request = 108 mojo::InterfaceRequest<interfaces::HostResolver> host_resolver_request =
107 mojo::GetProxy(&host_resolver); 109 mojo::GetProxy(&host_resolver);
110 interfaces::ProxyResolverErrorObserverPtr error_observer;
111 mojo::GetProxy(&error_observer);
108 interfaces::ProxyResolverFactoryRequestClientPtr client_ptr; 112 interfaces::ProxyResolverFactoryRequestClientPtr client_ptr;
109 mojo::Binding<ProxyResolverFactoryRequestClient> client_binding( 113 mojo::Binding<ProxyResolverFactoryRequestClient> client_binding(
110 this, mojo::GetProxy(&client_ptr)); 114 this, mojo::GetProxy(&client_ptr));
111 factory_->CreateResolver(mojo::String::From(kScriptData), 115 factory_->CreateResolver(
112 mojo::GetProxy(&proxy_resolver), 116 mojo::String::From(kScriptData), mojo::GetProxy(&proxy_resolver),
113 host_resolver.Pass(), client_ptr.Pass()); 117 host_resolver.Pass(), error_observer.Pass(), client_ptr.Pass());
114 proxy_resolver.set_error_handler(this); 118 proxy_resolver.set_error_handler(this);
115 waiter_.WaitForEvent(RESOLVER_CREATED); 119 waiter_.WaitForEvent(RESOLVER_CREATED);
116 EXPECT_EQ(0, instances_destroyed_); 120 EXPECT_EQ(0, instances_destroyed_);
117 ASSERT_EQ(1u, mock_factory_->pending_requests().size()); 121 ASSERT_EQ(1u, mock_factory_->pending_requests().size());
118 EXPECT_EQ(base::ASCIIToUTF16(kScriptData), 122 EXPECT_EQ(base::ASCIIToUTF16(kScriptData),
119 mock_factory_->pending_requests()[0]->script_data()->utf16()); 123 mock_factory_->pending_requests()[0]->script_data()->utf16());
120 TestCompletionCallback create_callback; 124 TestCompletionCallback create_callback;
121 create_callback_ = create_callback.callback(); 125 create_callback_ = create_callback.callback();
122 mock_factory_->pending_requests()[0]->CompleteNow( 126 mock_factory_->pending_requests()[0]->CompleteNow(
123 OK, make_scoped_ptr(new FakeProxyResolver(base::Bind( 127 OK, make_scoped_ptr(new FakeProxyResolver(base::Bind(
124 &MojoProxyResolverFactoryImplTest::OnFakeProxyInstanceDestroyed, 128 &MojoProxyResolverFactoryImplTest::OnFakeProxyInstanceDestroyed,
125 base::Unretained(this))))); 129 base::Unretained(this)))));
126 EXPECT_EQ(OK, create_callback.WaitForResult()); 130 EXPECT_EQ(OK, create_callback.WaitForResult());
127 host_resolver_request = mojo::InterfaceRequest<interfaces::HostResolver>(); 131 host_resolver_request = mojo::InterfaceRequest<interfaces::HostResolver>();
128 waiter_.WaitForEvent(CONNECTION_ERROR); 132 waiter_.WaitForEvent(CONNECTION_ERROR);
129 EXPECT_EQ(1, instances_destroyed_); 133 EXPECT_EQ(1, instances_destroyed_);
130 } 134 }
131 135
132 TEST_F(MojoProxyResolverFactoryImplTest, DisconnectProxyResolverClient) { 136 TEST_F(MojoProxyResolverFactoryImplTest, DisconnectProxyResolverClient) {
133 interfaces::ProxyResolverPtr proxy_resolver; 137 interfaces::ProxyResolverPtr proxy_resolver;
134 interfaces::HostResolverPtr host_resolver; 138 interfaces::HostResolverPtr host_resolver;
135 mojo::InterfaceRequest<interfaces::HostResolver> host_resolver_request = 139 mojo::InterfaceRequest<interfaces::HostResolver> host_resolver_request =
136 mojo::GetProxy(&host_resolver); 140 mojo::GetProxy(&host_resolver);
137 mojo::Binding<interfaces::HostResolver> binding(nullptr, &host_resolver); 141 mojo::Binding<interfaces::HostResolver> binding(nullptr, &host_resolver);
138 binding.set_error_handler(this); 142 binding.set_error_handler(this);
143 interfaces::ProxyResolverErrorObserverPtr error_observer;
144 mojo::GetProxy(&error_observer);
139 interfaces::ProxyResolverFactoryRequestClientPtr client_ptr; 145 interfaces::ProxyResolverFactoryRequestClientPtr client_ptr;
140 mojo::Binding<ProxyResolverFactoryRequestClient> client_binding( 146 mojo::Binding<ProxyResolverFactoryRequestClient> client_binding(
141 this, mojo::GetProxy(&client_ptr)); 147 this, mojo::GetProxy(&client_ptr));
142 factory_->CreateResolver(mojo::String::From(kScriptData), 148 factory_->CreateResolver(
143 mojo::GetProxy(&proxy_resolver), 149 mojo::String::From(kScriptData), mojo::GetProxy(&proxy_resolver),
144 host_resolver.Pass(), client_ptr.Pass()); 150 host_resolver.Pass(), error_observer.Pass(), client_ptr.Pass());
145 proxy_resolver.set_error_handler(this); 151 proxy_resolver.set_error_handler(this);
146 waiter_.WaitForEvent(RESOLVER_CREATED); 152 waiter_.WaitForEvent(RESOLVER_CREATED);
147 EXPECT_EQ(0, instances_destroyed_); 153 EXPECT_EQ(0, instances_destroyed_);
148 ASSERT_EQ(1u, mock_factory_->pending_requests().size()); 154 ASSERT_EQ(1u, mock_factory_->pending_requests().size());
149 EXPECT_EQ(base::ASCIIToUTF16(kScriptData), 155 EXPECT_EQ(base::ASCIIToUTF16(kScriptData),
150 mock_factory_->pending_requests()[0]->script_data()->utf16()); 156 mock_factory_->pending_requests()[0]->script_data()->utf16());
151 TestCompletionCallback create_callback; 157 TestCompletionCallback create_callback;
152 create_callback_ = create_callback.callback(); 158 create_callback_ = create_callback.callback();
153 mock_factory_->pending_requests()[0]->CompleteNow( 159 mock_factory_->pending_requests()[0]->CompleteNow(
154 OK, make_scoped_ptr(new FakeProxyResolver(base::Bind( 160 OK, make_scoped_ptr(new FakeProxyResolver(base::Bind(
155 &MojoProxyResolverFactoryImplTest::OnFakeProxyInstanceDestroyed, 161 &MojoProxyResolverFactoryImplTest::OnFakeProxyInstanceDestroyed,
156 base::Unretained(this))))); 162 base::Unretained(this)))));
157 EXPECT_EQ(OK, create_callback.WaitForResult()); 163 EXPECT_EQ(OK, create_callback.WaitForResult());
158 proxy_resolver.reset(); 164 proxy_resolver.reset();
159 waiter_.WaitForEvent(CONNECTION_ERROR); 165 waiter_.WaitForEvent(CONNECTION_ERROR);
160 EXPECT_EQ(1, instances_destroyed_); 166 EXPECT_EQ(1, instances_destroyed_);
161 } 167 }
162 168
163 TEST_F(MojoProxyResolverFactoryImplTest, DisconnectBoth) { 169 TEST_F(MojoProxyResolverFactoryImplTest, DisconnectBoth) {
164 interfaces::ProxyResolverPtr proxy_resolver; 170 interfaces::ProxyResolverPtr proxy_resolver;
165 interfaces::HostResolverPtr host_resolver; 171 interfaces::HostResolverPtr host_resolver;
166 mojo::InterfaceRequest<interfaces::HostResolver> host_resolver_request = 172 mojo::InterfaceRequest<interfaces::HostResolver> host_resolver_request =
167 mojo::GetProxy(&host_resolver); 173 mojo::GetProxy(&host_resolver);
174 interfaces::ProxyResolverErrorObserverPtr error_observer;
175 mojo::GetProxy(&error_observer);
168 interfaces::ProxyResolverFactoryRequestClientPtr client_ptr; 176 interfaces::ProxyResolverFactoryRequestClientPtr client_ptr;
169 mojo::Binding<ProxyResolverFactoryRequestClient> client_binding( 177 mojo::Binding<ProxyResolverFactoryRequestClient> client_binding(
170 this, mojo::GetProxy(&client_ptr)); 178 this, mojo::GetProxy(&client_ptr));
171 factory_->CreateResolver(mojo::String::From(kScriptData), 179 factory_->CreateResolver(
172 mojo::GetProxy(&proxy_resolver), 180 mojo::String::From(kScriptData), mojo::GetProxy(&proxy_resolver),
173 host_resolver.Pass(), client_ptr.Pass()); 181 host_resolver.Pass(), error_observer.Pass(), client_ptr.Pass());
174 proxy_resolver.set_error_handler(this); 182 proxy_resolver.set_error_handler(this);
175 waiter_.WaitForEvent(RESOLVER_CREATED); 183 waiter_.WaitForEvent(RESOLVER_CREATED);
176 EXPECT_EQ(0, instances_destroyed_); 184 EXPECT_EQ(0, instances_destroyed_);
177 ASSERT_EQ(1u, mock_factory_->pending_requests().size()); 185 ASSERT_EQ(1u, mock_factory_->pending_requests().size());
178 EXPECT_EQ(base::ASCIIToUTF16(kScriptData), 186 EXPECT_EQ(base::ASCIIToUTF16(kScriptData),
179 mock_factory_->pending_requests()[0]->script_data()->utf16()); 187 mock_factory_->pending_requests()[0]->script_data()->utf16());
180 TestCompletionCallback create_callback; 188 TestCompletionCallback create_callback;
181 create_callback_ = create_callback.callback(); 189 create_callback_ = create_callback.callback();
182 mock_factory_->pending_requests()[0]->CompleteNow( 190 mock_factory_->pending_requests()[0]->CompleteNow(
183 OK, make_scoped_ptr(new FakeProxyResolver(base::Bind( 191 OK, make_scoped_ptr(new FakeProxyResolver(base::Bind(
184 &MojoProxyResolverFactoryImplTest::OnFakeProxyInstanceDestroyed, 192 &MojoProxyResolverFactoryImplTest::OnFakeProxyInstanceDestroyed,
185 base::Unretained(this))))); 193 base::Unretained(this)))));
186 EXPECT_EQ(OK, create_callback.WaitForResult()); 194 EXPECT_EQ(OK, create_callback.WaitForResult());
187 proxy_resolver.reset(); 195 proxy_resolver.reset();
188 host_resolver_request = mojo::InterfaceRequest<interfaces::HostResolver>(); 196 host_resolver_request = mojo::InterfaceRequest<interfaces::HostResolver>();
189 waiter_.WaitForEvent(RESOLVER_DESTROYED); 197 waiter_.WaitForEvent(RESOLVER_DESTROYED);
190 EXPECT_EQ(1, instances_destroyed_); 198 EXPECT_EQ(1, instances_destroyed_);
191 } 199 }
192 200
193 TEST_F(MojoProxyResolverFactoryImplTest, Error) { 201 TEST_F(MojoProxyResolverFactoryImplTest, Error) {
194 interfaces::ProxyResolverPtr proxy_resolver; 202 interfaces::ProxyResolverPtr proxy_resolver;
195 interfaces::HostResolverPtr host_resolver; 203 interfaces::HostResolverPtr host_resolver;
196 mojo::InterfaceRequest<interfaces::HostResolver> host_resolver_request = 204 mojo::InterfaceRequest<interfaces::HostResolver> host_resolver_request =
197 mojo::GetProxy(&host_resolver); 205 mojo::GetProxy(&host_resolver);
206 interfaces::ProxyResolverErrorObserverPtr error_observer;
207 mojo::GetProxy(&error_observer);
198 interfaces::ProxyResolverFactoryRequestClientPtr client_ptr; 208 interfaces::ProxyResolverFactoryRequestClientPtr client_ptr;
199 mojo::Binding<ProxyResolverFactoryRequestClient> client_binding( 209 mojo::Binding<ProxyResolverFactoryRequestClient> client_binding(
200 this, mojo::GetProxy(&client_ptr)); 210 this, mojo::GetProxy(&client_ptr));
201 factory_->CreateResolver(mojo::String::From(kScriptData), 211 factory_->CreateResolver(
202 mojo::GetProxy(&proxy_resolver), 212 mojo::String::From(kScriptData), mojo::GetProxy(&proxy_resolver),
203 host_resolver.Pass(), client_ptr.Pass()); 213 host_resolver.Pass(), error_observer.Pass(), client_ptr.Pass());
204 proxy_resolver.set_error_handler(this); 214 proxy_resolver.set_error_handler(this);
205 waiter_.WaitForEvent(RESOLVER_CREATED); 215 waiter_.WaitForEvent(RESOLVER_CREATED);
206 EXPECT_EQ(0, instances_destroyed_); 216 EXPECT_EQ(0, instances_destroyed_);
207 ASSERT_EQ(1u, mock_factory_->pending_requests().size()); 217 ASSERT_EQ(1u, mock_factory_->pending_requests().size());
208 EXPECT_EQ(base::ASCIIToUTF16(kScriptData), 218 EXPECT_EQ(base::ASCIIToUTF16(kScriptData),
209 mock_factory_->pending_requests()[0]->script_data()->utf16()); 219 mock_factory_->pending_requests()[0]->script_data()->utf16());
210 TestCompletionCallback create_callback; 220 TestCompletionCallback create_callback;
211 create_callback_ = create_callback.callback(); 221 create_callback_ = create_callback.callback();
212 mock_factory_->pending_requests()[0]->CompleteNow(ERR_PAC_SCRIPT_FAILED, 222 mock_factory_->pending_requests()[0]->CompleteNow(ERR_PAC_SCRIPT_FAILED,
213 nullptr); 223 nullptr);
214 EXPECT_EQ(ERR_PAC_SCRIPT_FAILED, create_callback.WaitForResult()); 224 EXPECT_EQ(ERR_PAC_SCRIPT_FAILED, create_callback.WaitForResult());
215 } 225 }
216 226
217 TEST_F(MojoProxyResolverFactoryImplTest, 227 TEST_F(MojoProxyResolverFactoryImplTest,
218 DisconnectHostResolverDuringResolveCreation) { 228 DisconnectHostResolverDuringResolveCreation) {
219 interfaces::ProxyResolverPtr proxy_resolver; 229 interfaces::ProxyResolverPtr proxy_resolver;
220 interfaces::HostResolverPtr host_resolver; 230 interfaces::HostResolverPtr host_resolver;
221 mojo::InterfaceRequest<interfaces::HostResolver> host_resolver_request = 231 mojo::InterfaceRequest<interfaces::HostResolver> host_resolver_request =
222 mojo::GetProxy(&host_resolver); 232 mojo::GetProxy(&host_resolver);
233 interfaces::ProxyResolverErrorObserverPtr error_observer;
234 mojo::GetProxy(&error_observer);
223 interfaces::ProxyResolverFactoryRequestClientPtr client_ptr; 235 interfaces::ProxyResolverFactoryRequestClientPtr client_ptr;
224 mojo::Binding<ProxyResolverFactoryRequestClient> client_binding( 236 mojo::Binding<ProxyResolverFactoryRequestClient> client_binding(
225 this, mojo::GetProxy(&client_ptr)); 237 this, mojo::GetProxy(&client_ptr));
226 factory_->CreateResolver(mojo::String::From(kScriptData), 238 factory_->CreateResolver(
227 mojo::GetProxy(&proxy_resolver), 239 mojo::String::From(kScriptData), mojo::GetProxy(&proxy_resolver),
228 host_resolver.Pass(), client_ptr.Pass()); 240 host_resolver.Pass(), error_observer.Pass(), client_ptr.Pass());
229 proxy_resolver.set_error_handler(this); 241 proxy_resolver.set_error_handler(this);
230 waiter_.WaitForEvent(RESOLVER_CREATED); 242 waiter_.WaitForEvent(RESOLVER_CREATED);
231 EXPECT_EQ(0, instances_destroyed_); 243 EXPECT_EQ(0, instances_destroyed_);
232 ASSERT_EQ(1u, mock_factory_->pending_requests().size()); 244 ASSERT_EQ(1u, mock_factory_->pending_requests().size());
233 EXPECT_EQ(base::ASCIIToUTF16(kScriptData), 245 EXPECT_EQ(base::ASCIIToUTF16(kScriptData),
234 mock_factory_->pending_requests()[0]->script_data()->utf16()); 246 mock_factory_->pending_requests()[0]->script_data()->utf16());
235 host_resolver_request = mojo::InterfaceRequest<interfaces::HostResolver>(); 247 host_resolver_request = mojo::InterfaceRequest<interfaces::HostResolver>();
236 TestCompletionCallback create_callback; 248 TestCompletionCallback create_callback;
237 create_callback_ = create_callback.callback(); 249 create_callback_ = create_callback.callback();
238 waiter_.WaitForEvent(CONNECTION_ERROR); 250 waiter_.WaitForEvent(CONNECTION_ERROR);
239 EXPECT_EQ(ERR_PAC_SCRIPT_TERMINATED, create_callback.WaitForResult()); 251 EXPECT_EQ(ERR_PAC_SCRIPT_TERMINATED, create_callback.WaitForResult());
240 } 252 }
241 253
242 TEST_F(MojoProxyResolverFactoryImplTest, 254 TEST_F(MojoProxyResolverFactoryImplTest,
243 DisconnectClientDuringResolverCreation) { 255 DisconnectClientDuringResolverCreation) {
244 interfaces::ProxyResolverPtr proxy_resolver; 256 interfaces::ProxyResolverPtr proxy_resolver;
245 interfaces::HostResolverPtr host_resolver; 257 interfaces::HostResolverPtr host_resolver;
246 mojo::InterfaceRequest<interfaces::HostResolver> host_resolver_request = 258 mojo::InterfaceRequest<interfaces::HostResolver> host_resolver_request =
247 mojo::GetProxy(&host_resolver); 259 mojo::GetProxy(&host_resolver);
248 mojo::Binding<interfaces::HostResolver> binding(nullptr, &host_resolver); 260 mojo::Binding<interfaces::HostResolver> binding(nullptr, &host_resolver);
249 binding.set_error_handler(this); 261 binding.set_error_handler(this);
262 interfaces::ProxyResolverErrorObserverPtr error_observer;
263 mojo::GetProxy(&error_observer);
250 interfaces::ProxyResolverFactoryRequestClientPtr client_ptr; 264 interfaces::ProxyResolverFactoryRequestClientPtr client_ptr;
251 mojo::Binding<ProxyResolverFactoryRequestClient> client_binding( 265 mojo::Binding<ProxyResolverFactoryRequestClient> client_binding(
252 this, mojo::GetProxy(&client_ptr)); 266 this, mojo::GetProxy(&client_ptr));
253 factory_->CreateResolver(mojo::String::From(kScriptData), 267 factory_->CreateResolver(
254 mojo::GetProxy(&proxy_resolver), 268 mojo::String::From(kScriptData), mojo::GetProxy(&proxy_resolver),
255 host_resolver.Pass(), client_ptr.Pass()); 269 host_resolver.Pass(), error_observer.Pass(), client_ptr.Pass());
256 proxy_resolver.set_error_handler(this); 270 proxy_resolver.set_error_handler(this);
257 waiter_.WaitForEvent(RESOLVER_CREATED); 271 waiter_.WaitForEvent(RESOLVER_CREATED);
258 EXPECT_EQ(0, instances_destroyed_); 272 EXPECT_EQ(0, instances_destroyed_);
259 ASSERT_EQ(1u, mock_factory_->pending_requests().size()); 273 ASSERT_EQ(1u, mock_factory_->pending_requests().size());
260 EXPECT_EQ(base::ASCIIToUTF16(kScriptData), 274 EXPECT_EQ(base::ASCIIToUTF16(kScriptData),
261 mock_factory_->pending_requests()[0]->script_data()->utf16()); 275 mock_factory_->pending_requests()[0]->script_data()->utf16());
262 client_binding.Close(); 276 client_binding.Close();
263 waiter_.WaitForEvent(CONNECTION_ERROR); 277 waiter_.WaitForEvent(CONNECTION_ERROR);
264 } 278 }
265 279
266 TEST_F(MojoProxyResolverFactoryImplTest, 280 TEST_F(MojoProxyResolverFactoryImplTest,
267 DisconnectFactoryDuringResolverCreation) { 281 DisconnectFactoryDuringResolverCreation) {
268 interfaces::ProxyResolverPtr proxy_resolver; 282 interfaces::ProxyResolverPtr proxy_resolver;
269 interfaces::HostResolverPtr host_resolver; 283 interfaces::HostResolverPtr host_resolver;
270 mojo::InterfaceRequest<interfaces::HostResolver> host_resolver_request = 284 mojo::InterfaceRequest<interfaces::HostResolver> host_resolver_request =
271 mojo::GetProxy(&host_resolver); 285 mojo::GetProxy(&host_resolver);
272 mojo::Binding<interfaces::HostResolver> binding(nullptr, &host_resolver); 286 mojo::Binding<interfaces::HostResolver> binding(nullptr, &host_resolver);
273 binding.set_error_handler(this); 287 binding.set_error_handler(this);
288 interfaces::ProxyResolverErrorObserverPtr error_observer;
289 mojo::GetProxy(&error_observer);
274 interfaces::ProxyResolverFactoryRequestClientPtr client_ptr; 290 interfaces::ProxyResolverFactoryRequestClientPtr client_ptr;
275 mojo::Binding<ProxyResolverFactoryRequestClient> client_binding( 291 mojo::Binding<ProxyResolverFactoryRequestClient> client_binding(
276 this, mojo::GetProxy(&client_ptr)); 292 this, mojo::GetProxy(&client_ptr));
277 factory_->CreateResolver(mojo::String::From(kScriptData), 293 factory_->CreateResolver(
278 mojo::GetProxy(&proxy_resolver), 294 mojo::String::From(kScriptData), mojo::GetProxy(&proxy_resolver),
279 host_resolver.Pass(), client_ptr.Pass()); 295 host_resolver.Pass(), error_observer.Pass(), client_ptr.Pass());
280 proxy_resolver.set_error_handler(this); 296 proxy_resolver.set_error_handler(this);
281 client_binding.set_error_handler(this); 297 client_binding.set_error_handler(this);
282 waiter_.WaitForEvent(RESOLVER_CREATED); 298 waiter_.WaitForEvent(RESOLVER_CREATED);
283 EXPECT_EQ(0, instances_destroyed_); 299 EXPECT_EQ(0, instances_destroyed_);
284 ASSERT_EQ(1u, mock_factory_->pending_requests().size()); 300 ASSERT_EQ(1u, mock_factory_->pending_requests().size());
285 EXPECT_EQ(base::ASCIIToUTF16(kScriptData), 301 EXPECT_EQ(base::ASCIIToUTF16(kScriptData),
286 mock_factory_->pending_requests()[0]->script_data()->utf16()); 302 mock_factory_->pending_requests()[0]->script_data()->utf16());
287 factory_.reset(); 303 factory_.reset();
288 waiter_.WaitForEvent(CONNECTION_ERROR); 304 waiter_.WaitForEvent(CONNECTION_ERROR);
289 } 305 }
290 306
291 } // namespace net 307 } // namespace net
OLDNEW
« no previous file with comments | « net/proxy/mojo_proxy_resolver_factory_impl.cc ('k') | net/proxy/proxy_resolver_error_observer_mojo.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698