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

Side by Side Diff: content/browser/resolve_proxy_msg_helper_unittest.cc

Issue 2299963002: Reland "Change ProxyResolver::GetProxyForURL() to take a unique_ptr<Request>* " (Closed)
Patch Set: remove fields proposed by eroman 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
« no previous file with comments | « no previous file | net/http/http_network_transaction_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "content/browser/resolve_proxy_msg_helper.h" 5 #include "content/browser/resolve_proxy_msg_helper.h"
6 6
7 #include <tuple> 7 #include <tuple>
8 8
9 #include "base/memory/ptr_util.h" 9 #include "base/memory/ptr_util.h"
10 #include "content/browser/browser_thread_impl.h" 10 #include "content/browser/browser_thread_impl.h"
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
121 // Execute each request sequentially (so there are never 2 requests 121 // Execute each request sequentially (so there are never 2 requests
122 // outstanding at the same time). 122 // outstanding at the same time).
123 123
124 helper_->OnResolveProxy(url1, msg1); 124 helper_->OnResolveProxy(url1, msg1);
125 125
126 // Finish ProxyService's initialization. 126 // Finish ProxyService's initialization.
127 ASSERT_EQ(1u, resolver_factory_->pending_requests().size()); 127 ASSERT_EQ(1u, resolver_factory_->pending_requests().size());
128 resolver_factory_->pending_requests()[0]->CompleteNowWithForwarder( 128 resolver_factory_->pending_requests()[0]->CompleteNowWithForwarder(
129 net::OK, &resolver_); 129 net::OK, &resolver_);
130 130
131 ASSERT_EQ(1u, resolver_.pending_requests().size()); 131 ASSERT_EQ(1u, resolver_.pending_jobs().size());
132 EXPECT_EQ(url1, resolver_.pending_requests()[0]->url()); 132 EXPECT_EQ(url1, resolver_.pending_jobs()[0]->url());
133 resolver_.pending_requests()[0]->results()->UseNamedProxy("result1:80"); 133 resolver_.pending_jobs()[0]->results()->UseNamedProxy("result1:80");
134 resolver_.pending_requests()[0]->CompleteNow(net::OK); 134 resolver_.pending_jobs()[0]->CompleteNow(net::OK);
135 135
136 // Check result. 136 // Check result.
137 EXPECT_EQ(true, pending_result()->result); 137 EXPECT_EQ(true, pending_result()->result);
138 EXPECT_EQ("PROXY result1:80", pending_result()->proxy_list); 138 EXPECT_EQ("PROXY result1:80", pending_result()->proxy_list);
139 clear_pending_result(); 139 clear_pending_result();
140 140
141 helper_->OnResolveProxy(url2, msg2); 141 helper_->OnResolveProxy(url2, msg2);
142 142
143 ASSERT_EQ(1u, resolver_.pending_requests().size()); 143 ASSERT_EQ(1u, resolver_.pending_jobs().size());
144 EXPECT_EQ(url2, resolver_.pending_requests()[0]->url()); 144 EXPECT_EQ(url2, resolver_.pending_jobs()[0]->url());
145 resolver_.pending_requests()[0]->results()->UseNamedProxy("result2:80"); 145 resolver_.pending_jobs()[0]->results()->UseNamedProxy("result2:80");
146 resolver_.pending_requests()[0]->CompleteNow(net::OK); 146 resolver_.pending_jobs()[0]->CompleteNow(net::OK);
147 147
148 // Check result. 148 // Check result.
149 EXPECT_EQ(true, pending_result()->result); 149 EXPECT_EQ(true, pending_result()->result);
150 EXPECT_EQ("PROXY result2:80", pending_result()->proxy_list); 150 EXPECT_EQ("PROXY result2:80", pending_result()->proxy_list);
151 clear_pending_result(); 151 clear_pending_result();
152 152
153 helper_->OnResolveProxy(url3, msg3); 153 helper_->OnResolveProxy(url3, msg3);
154 154
155 ASSERT_EQ(1u, resolver_.pending_requests().size()); 155 ASSERT_EQ(1u, resolver_.pending_jobs().size());
156 EXPECT_EQ(url3, resolver_.pending_requests()[0]->url()); 156 EXPECT_EQ(url3, resolver_.pending_jobs()[0]->url());
157 resolver_.pending_requests()[0]->results()->UseNamedProxy("result3:80"); 157 resolver_.pending_jobs()[0]->results()->UseNamedProxy("result3:80");
158 resolver_.pending_requests()[0]->CompleteNow(net::OK); 158 resolver_.pending_jobs()[0]->CompleteNow(net::OK);
159 159
160 // Check result. 160 // Check result.
161 EXPECT_EQ(true, pending_result()->result); 161 EXPECT_EQ(true, pending_result()->result);
162 EXPECT_EQ("PROXY result3:80", pending_result()->proxy_list); 162 EXPECT_EQ("PROXY result3:80", pending_result()->proxy_list);
163 clear_pending_result(); 163 clear_pending_result();
164 } 164 }
165 165
166 // Issue a request while one is already in progress -- should be queued. 166 // Issue a request while one is already in progress -- should be queued.
167 TEST_F(ResolveProxyMsgHelperTest, QueueRequests) { 167 TEST_F(ResolveProxyMsgHelperTest, QueueRequests) {
168 GURL url1("http://www.google1.com/"); 168 GURL url1("http://www.google1.com/");
(...skipping 12 matching lines...) Expand all
181 // Finish ProxyService's initialization. 181 // Finish ProxyService's initialization.
182 ASSERT_EQ(1u, resolver_factory_->pending_requests().size()); 182 ASSERT_EQ(1u, resolver_factory_->pending_requests().size());
183 resolver_factory_->pending_requests()[0]->CompleteNowWithForwarder( 183 resolver_factory_->pending_requests()[0]->CompleteNowWithForwarder(
184 net::OK, &resolver_); 184 net::OK, &resolver_);
185 185
186 helper_->OnResolveProxy(url2, msg2); 186 helper_->OnResolveProxy(url2, msg2);
187 helper_->OnResolveProxy(url3, msg3); 187 helper_->OnResolveProxy(url3, msg3);
188 188
189 // ResolveProxyHelper only keeps 1 request outstanding in ProxyService 189 // ResolveProxyHelper only keeps 1 request outstanding in ProxyService
190 // at a time. 190 // at a time.
191 ASSERT_EQ(1u, resolver_.pending_requests().size()); 191 ASSERT_EQ(1u, resolver_.pending_jobs().size());
192 EXPECT_EQ(url1, resolver_.pending_requests()[0]->url()); 192 EXPECT_EQ(url1, resolver_.pending_jobs()[0]->url());
193 193
194 resolver_.pending_requests()[0]->results()->UseNamedProxy("result1:80"); 194 resolver_.pending_jobs()[0]->results()->UseNamedProxy("result1:80");
195 resolver_.pending_requests()[0]->CompleteNow(net::OK); 195 resolver_.pending_jobs()[0]->CompleteNow(net::OK);
196 196
197 // Check result. 197 // Check result.
198 EXPECT_EQ(true, pending_result()->result); 198 EXPECT_EQ(true, pending_result()->result);
199 EXPECT_EQ("PROXY result1:80", pending_result()->proxy_list); 199 EXPECT_EQ("PROXY result1:80", pending_result()->proxy_list);
200 clear_pending_result(); 200 clear_pending_result();
201 201
202 ASSERT_EQ(1u, resolver_.pending_requests().size()); 202 ASSERT_EQ(1u, resolver_.pending_jobs().size());
203 EXPECT_EQ(url2, resolver_.pending_requests()[0]->url()); 203 EXPECT_EQ(url2, resolver_.pending_jobs()[0]->url());
204 204
205 resolver_.pending_requests()[0]->results()->UseNamedProxy("result2:80"); 205 resolver_.pending_jobs()[0]->results()->UseNamedProxy("result2:80");
206 resolver_.pending_requests()[0]->CompleteNow(net::OK); 206 resolver_.pending_jobs()[0]->CompleteNow(net::OK);
207 207
208 // Check result. 208 // Check result.
209 EXPECT_EQ(true, pending_result()->result); 209 EXPECT_EQ(true, pending_result()->result);
210 EXPECT_EQ("PROXY result2:80", pending_result()->proxy_list); 210 EXPECT_EQ("PROXY result2:80", pending_result()->proxy_list);
211 clear_pending_result(); 211 clear_pending_result();
212 212
213 ASSERT_EQ(1u, resolver_.pending_requests().size()); 213 ASSERT_EQ(1u, resolver_.pending_jobs().size());
214 EXPECT_EQ(url3, resolver_.pending_requests()[0]->url()); 214 EXPECT_EQ(url3, resolver_.pending_jobs()[0]->url());
215 215
216 resolver_.pending_requests()[0]->results()->UseNamedProxy("result3:80"); 216 resolver_.pending_jobs()[0]->results()->UseNamedProxy("result3:80");
217 resolver_.pending_requests()[0]->CompleteNow(net::OK); 217 resolver_.pending_jobs()[0]->CompleteNow(net::OK);
218 218
219 // Check result. 219 // Check result.
220 EXPECT_EQ(true, pending_result()->result); 220 EXPECT_EQ(true, pending_result()->result);
221 EXPECT_EQ("PROXY result3:80", pending_result()->proxy_list); 221 EXPECT_EQ("PROXY result3:80", pending_result()->proxy_list);
222 clear_pending_result(); 222 clear_pending_result();
223 } 223 }
224 224
225 // Delete the helper while a request is in progress, and others are pending. 225 // Delete the helper while a request is in progress, and others are pending.
226 TEST_F(ResolveProxyMsgHelperTest, CancelPendingRequests) { 226 TEST_F(ResolveProxyMsgHelperTest, CancelPendingRequests) {
227 GURL url1("http://www.google1.com/"); 227 GURL url1("http://www.google1.com/");
(...skipping 13 matching lines...) Expand all
241 // Finish ProxyService's initialization. 241 // Finish ProxyService's initialization.
242 ASSERT_EQ(1u, resolver_factory_->pending_requests().size()); 242 ASSERT_EQ(1u, resolver_factory_->pending_requests().size());
243 resolver_factory_->pending_requests()[0]->CompleteNowWithForwarder( 243 resolver_factory_->pending_requests()[0]->CompleteNowWithForwarder(
244 net::OK, &resolver_); 244 net::OK, &resolver_);
245 245
246 helper_->OnResolveProxy(url2, msg2); 246 helper_->OnResolveProxy(url2, msg2);
247 helper_->OnResolveProxy(url3, msg3); 247 helper_->OnResolveProxy(url3, msg3);
248 248
249 // ResolveProxyHelper only keeps 1 request outstanding in ProxyService 249 // ResolveProxyHelper only keeps 1 request outstanding in ProxyService
250 // at a time. 250 // at a time.
251 ASSERT_EQ(1u, resolver_.pending_requests().size()); 251 ASSERT_EQ(1u, resolver_.pending_jobs().size());
252 EXPECT_EQ(url1, resolver_.pending_requests()[0]->url()); 252 EXPECT_EQ(url1, resolver_.pending_jobs()[0]->url());
253 253
254 // Delete the underlying ResolveProxyMsgHelper -- this should cancel all 254 // Delete the underlying ResolveProxyMsgHelper -- this should cancel all
255 // the requests which are outstanding. 255 // the requests which are outstanding.
256 helper_ = NULL; 256 helper_ = NULL;
257 257
258 // The pending requests sent to the proxy resolver should have been cancelled. 258 // The pending requests sent to the proxy resolver should have been cancelled.
259 259
260 EXPECT_EQ(0u, resolver_.pending_requests().size()); 260 EXPECT_EQ(0u, resolver_.pending_jobs().size());
261 261
262 EXPECT_TRUE(pending_result() == NULL); 262 EXPECT_TRUE(pending_result() == NULL);
263 263
264 // It should also be the case that msg1, msg2, msg3 were deleted by the 264 // It should also be the case that msg1, msg2, msg3 were deleted by the
265 // cancellation. (Else will show up as a leak in Valgrind). 265 // cancellation. (Else will show up as a leak in Valgrind).
266 } 266 }
267 267
268 } // namespace content 268 } // namespace content
OLDNEW
« no previous file with comments | « no previous file | net/http/http_network_transaction_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698