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

Side by Side Diff: chrome/browser/net/resolve_proxy_msg_helper_unittest.cc

Issue 165430: Reference count ProxyService.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Sync Created 11 years, 4 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 | Annotate | Revision Log
« no previous file with comments | « chrome/browser/net/resolve_proxy_msg_helper.h ('k') | net/http/http_network_layer.h » ('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) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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 "chrome/browser/net/resolve_proxy_msg_helper.h" 5 #include "chrome/browser/net/resolve_proxy_msg_helper.h"
6 6
7 #include "base/waitable_event.h" 7 #include "base/waitable_event.h"
8 #include "net/base/net_errors.h" 8 #include "net/base/net_errors.h"
9 #include "net/proxy/mock_proxy_resolver.h" 9 #include "net/proxy/mock_proxy_resolver.h"
10 #include "net/proxy/proxy_config_service.h" 10 #include "net/proxy/proxy_config_service.h"
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
47 pending_result_.reset(); 47 pending_result_.reset();
48 } 48 }
49 49
50 private: 50 private:
51 scoped_ptr<PendingResult> pending_result_; 51 scoped_ptr<PendingResult> pending_result_;
52 }; 52 };
53 53
54 // Issue three sequential requests -- each should succeed. 54 // Issue three sequential requests -- each should succeed.
55 TEST(ResolveProxyMsgHelperTest, Sequential) { 55 TEST(ResolveProxyMsgHelperTest, Sequential) {
56 net::MockAsyncProxyResolver* resolver = new net::MockAsyncProxyResolver; 56 net::MockAsyncProxyResolver* resolver = new net::MockAsyncProxyResolver;
57 net::ProxyService service(new MockProxyConfigService, resolver); 57 scoped_refptr<net::ProxyService> service(
58 new net::ProxyService(new MockProxyConfigService, resolver));
58 59
59 MyDelegate delegate; 60 MyDelegate delegate;
60 ResolveProxyMsgHelper helper(&delegate, &service); 61 ResolveProxyMsgHelper helper(&delegate, service);
61 62
62 GURL url1("http://www.google1.com/"); 63 GURL url1("http://www.google1.com/");
63 GURL url2("http://www.google2.com/"); 64 GURL url2("http://www.google2.com/");
64 GURL url3("http://www.google3.com/"); 65 GURL url3("http://www.google3.com/");
65 66
66 scoped_ptr<IPC::Message> msg1(new IPC::Message()); 67 scoped_ptr<IPC::Message> msg1(new IPC::Message());
67 scoped_ptr<IPC::Message> msg2(new IPC::Message()); 68 scoped_ptr<IPC::Message> msg2(new IPC::Message());
68 scoped_ptr<IPC::Message> msg3(new IPC::Message()); 69 scoped_ptr<IPC::Message> msg3(new IPC::Message());
69 70
70 // Execute each request sequentially (so there are never 2 requests 71 // Execute each request sequentially (so there are never 2 requests
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
109 // Check result. 110 // Check result.
110 EXPECT_EQ(msg3.get(), delegate.pending_result()->msg); 111 EXPECT_EQ(msg3.get(), delegate.pending_result()->msg);
111 EXPECT_EQ(net::OK, delegate.pending_result()->error_code); 112 EXPECT_EQ(net::OK, delegate.pending_result()->error_code);
112 EXPECT_EQ("PROXY result3:80", delegate.pending_result()->proxy_list); 113 EXPECT_EQ("PROXY result3:80", delegate.pending_result()->proxy_list);
113 delegate.clear_pending_result(); 114 delegate.clear_pending_result();
114 } 115 }
115 116
116 // Issue a request while one is already in progress -- should be queued. 117 // Issue a request while one is already in progress -- should be queued.
117 TEST(ResolveProxyMsgHelperTest, QueueRequests) { 118 TEST(ResolveProxyMsgHelperTest, QueueRequests) {
118 net::MockAsyncProxyResolver* resolver = new net::MockAsyncProxyResolver; 119 net::MockAsyncProxyResolver* resolver = new net::MockAsyncProxyResolver;
119 net::ProxyService service(new MockProxyConfigService, resolver); 120 scoped_refptr<net::ProxyService> service(
121 new net::ProxyService(new MockProxyConfigService, resolver));
120 122
121 MyDelegate delegate; 123 MyDelegate delegate;
122 ResolveProxyMsgHelper helper(&delegate, &service); 124 ResolveProxyMsgHelper helper(&delegate, service);
123 125
124 GURL url1("http://www.google1.com/"); 126 GURL url1("http://www.google1.com/");
125 GURL url2("http://www.google2.com/"); 127 GURL url2("http://www.google2.com/");
126 GURL url3("http://www.google3.com/"); 128 GURL url3("http://www.google3.com/");
127 129
128 scoped_ptr<IPC::Message> msg1(new IPC::Message()); 130 scoped_ptr<IPC::Message> msg1(new IPC::Message());
129 scoped_ptr<IPC::Message> msg2(new IPC::Message()); 131 scoped_ptr<IPC::Message> msg2(new IPC::Message());
130 scoped_ptr<IPC::Message> msg3(new IPC::Message()); 132 scoped_ptr<IPC::Message> msg3(new IPC::Message());
131 133
132 // Start three requests. Since the proxy resolver is async, all the 134 // Start three requests. Since the proxy resolver is async, all the
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
175 // Check result. 177 // Check result.
176 EXPECT_EQ(msg3.get(), delegate.pending_result()->msg); 178 EXPECT_EQ(msg3.get(), delegate.pending_result()->msg);
177 EXPECT_EQ(net::OK, delegate.pending_result()->error_code); 179 EXPECT_EQ(net::OK, delegate.pending_result()->error_code);
178 EXPECT_EQ("PROXY result3:80", delegate.pending_result()->proxy_list); 180 EXPECT_EQ("PROXY result3:80", delegate.pending_result()->proxy_list);
179 delegate.clear_pending_result(); 181 delegate.clear_pending_result();
180 } 182 }
181 183
182 // Delete the helper while a request is in progress, and others are pending. 184 // Delete the helper while a request is in progress, and others are pending.
183 TEST(ResolveProxyMsgHelperTest, CancelPendingRequests) { 185 TEST(ResolveProxyMsgHelperTest, CancelPendingRequests) {
184 net::MockAsyncProxyResolver* resolver = new net::MockAsyncProxyResolver; 186 net::MockAsyncProxyResolver* resolver = new net::MockAsyncProxyResolver;
185 net::ProxyService service(new MockProxyConfigService, resolver); 187 scoped_refptr<net::ProxyService> service(
188 new net::ProxyService(new MockProxyConfigService, resolver));
186 189
187 MyDelegate delegate; 190 MyDelegate delegate;
188 scoped_ptr<ResolveProxyMsgHelper> helper( 191 scoped_ptr<ResolveProxyMsgHelper> helper(
189 new ResolveProxyMsgHelper(&delegate, &service)); 192 new ResolveProxyMsgHelper(&delegate, service));
190 193
191 GURL url1("http://www.google1.com/"); 194 GURL url1("http://www.google1.com/");
192 GURL url2("http://www.google2.com/"); 195 GURL url2("http://www.google2.com/");
193 GURL url3("http://www.google3.com/"); 196 GURL url3("http://www.google3.com/");
194 197
195 // NOTE: these are not scoped ptr, since they will be deleted by the 198 // NOTE: these are not scoped ptr, since they will be deleted by the
196 // request's cancellation. 199 // request's cancellation.
197 IPC::Message* msg1 = new IPC::Message(); 200 IPC::Message* msg1 = new IPC::Message();
198 IPC::Message* msg2 = new IPC::Message(); 201 IPC::Message* msg2 = new IPC::Message();
199 IPC::Message* msg3 = new IPC::Message(); 202 IPC::Message* msg3 = new IPC::Message();
(...skipping 20 matching lines...) Expand all
220 223
221 // The pending requests sent to the proxy resolver should have been cancelled. 224 // The pending requests sent to the proxy resolver should have been cancelled.
222 225
223 EXPECT_EQ(0u, resolver->pending_requests().size()); 226 EXPECT_EQ(0u, resolver->pending_requests().size());
224 227
225 EXPECT_EQ(NULL, delegate.pending_result()); 228 EXPECT_EQ(NULL, delegate.pending_result());
226 229
227 // It should also be the case that msg1, msg2, msg3 were deleted by the 230 // It should also be the case that msg1, msg2, msg3 were deleted by the
228 // cancellation. (Else will show up as a leak in Purify/Valgrind). 231 // cancellation. (Else will show up as a leak in Purify/Valgrind).
229 } 232 }
OLDNEW
« no previous file with comments | « chrome/browser/net/resolve_proxy_msg_helper.h ('k') | net/http/http_network_layer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698