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

Side by Side Diff: chrome/browser/renderer_host/resource_queue_unittest.cc

Issue 5384002: net: Remove typedef net::URLRequest URLRequest; (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: review Created 10 years 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
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 "base/message_loop.h" 5 #include "base/message_loop.h"
6 #include "base/scoped_ptr.h" 6 #include "base/scoped_ptr.h"
7 #include "chrome/browser/browser_thread.h" 7 #include "chrome/browser/browser_thread.h"
8 #include "chrome/browser/renderer_host/global_request_id.h" 8 #include "chrome/browser/renderer_host/global_request_id.h"
9 #include "chrome/browser/renderer_host/resource_dispatcher_host_request_info.h" 9 #include "chrome/browser/renderer_host/resource_dispatcher_host_request_info.h"
10 #include "chrome/browser/renderer_host/resource_handler.h" 10 #include "chrome/browser/renderer_host/resource_handler.h"
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
93 delegate_set.insert(delegate2); 93 delegate_set.insert(delegate2);
94 queue->Initialize(delegate_set); 94 queue->Initialize(delegate_set);
95 } 95 }
96 96
97 class NeverDelayingDelegate : public ResourceQueueDelegate { 97 class NeverDelayingDelegate : public ResourceQueueDelegate {
98 public: 98 public:
99 NeverDelayingDelegate() { 99 NeverDelayingDelegate() {
100 } 100 }
101 101
102 virtual bool ShouldDelayRequest( 102 virtual bool ShouldDelayRequest(
103 URLRequest* request, 103 net::URLRequest* request,
104 const ResourceDispatcherHostRequestInfo& request_info, 104 const ResourceDispatcherHostRequestInfo& request_info,
105 const GlobalRequestID& request_id) { 105 const GlobalRequestID& request_id) {
106 return false; 106 return false;
107 } 107 }
108 108
109 virtual void WillShutdownResourceQueue() { 109 virtual void WillShutdownResourceQueue() {
110 } 110 }
111 111
112 private: 112 private:
113 DISALLOW_COPY_AND_ASSIGN(NeverDelayingDelegate); 113 DISALLOW_COPY_AND_ASSIGN(NeverDelayingDelegate);
114 }; 114 };
115 115
116 class AlwaysDelayingDelegate : public ResourceQueueDelegate { 116 class AlwaysDelayingDelegate : public ResourceQueueDelegate {
117 public: 117 public:
118 explicit AlwaysDelayingDelegate(ResourceQueue* resource_queue) 118 explicit AlwaysDelayingDelegate(ResourceQueue* resource_queue)
119 : resource_queue_(resource_queue) { 119 : resource_queue_(resource_queue) {
120 } 120 }
121 121
122 virtual bool ShouldDelayRequest( 122 virtual bool ShouldDelayRequest(
123 URLRequest* request, 123 net::URLRequest* request,
124 const ResourceDispatcherHostRequestInfo& request_info, 124 const ResourceDispatcherHostRequestInfo& request_info,
125 const GlobalRequestID& request_id) { 125 const GlobalRequestID& request_id) {
126 delayed_requests_.push_back(request_id); 126 delayed_requests_.push_back(request_id);
127 return true; 127 return true;
128 } 128 }
129 129
130 virtual void WillShutdownResourceQueue() { 130 virtual void WillShutdownResourceQueue() {
131 resource_queue_ = NULL; 131 resource_queue_ = NULL;
132 } 132 }
133 133
(...skipping 10 matching lines...) Expand all
144 private: 144 private:
145 typedef std::vector<GlobalRequestID> RequestList; 145 typedef std::vector<GlobalRequestID> RequestList;
146 146
147 ResourceQueue* resource_queue_; 147 ResourceQueue* resource_queue_;
148 148
149 RequestList delayed_requests_; 149 RequestList delayed_requests_;
150 150
151 DISALLOW_COPY_AND_ASSIGN(AlwaysDelayingDelegate); 151 DISALLOW_COPY_AND_ASSIGN(AlwaysDelayingDelegate);
152 }; 152 };
153 153
154 class ResourceQueueTest : public testing::Test, public URLRequest::Delegate { 154 class ResourceQueueTest : public testing::Test,
155 public net::URLRequest::Delegate {
155 public: 156 public:
156 ResourceQueueTest() 157 ResourceQueueTest()
157 : response_started_count_(0), 158 : response_started_count_(0),
158 message_loop_(MessageLoop::TYPE_IO), 159 message_loop_(MessageLoop::TYPE_IO),
159 ui_thread_(BrowserThread::UI, &message_loop_), 160 ui_thread_(BrowserThread::UI, &message_loop_),
160 io_thread_(BrowserThread::IO, &message_loop_) { 161 io_thread_(BrowserThread::IO, &message_loop_) {
161 } 162 }
162 163
163 virtual void OnResponseStarted(URLRequest* request) { 164 virtual void OnResponseStarted(net::URLRequest* request) {
164 response_started_count_++; 165 response_started_count_++;
165 // We're not going to do anything more with the request. Cancel it now 166 // We're not going to do anything more with the request. Cancel it now
166 // to avoid leaking URLRequestJob. 167 // to avoid leaking URLRequestJob.
167 request->Cancel(); 168 request->Cancel();
168 } 169 }
169 170
170 virtual void OnReadCompleted(URLRequest* request, int bytes_read) { 171 virtual void OnReadCompleted(net::URLRequest* request, int bytes_read) {
171 } 172 }
172 173
173 protected: 174 protected:
174 int response_started_count_; 175 int response_started_count_;
175 176
176 private: 177 private:
177 MessageLoop message_loop_; 178 MessageLoop message_loop_;
178 BrowserThread ui_thread_; 179 BrowserThread ui_thread_;
179 BrowserThread io_thread_; 180 BrowserThread io_thread_;
180 }; 181 };
181 182
182 TEST_F(ResourceQueueTest, Basic) { 183 TEST_F(ResourceQueueTest, Basic) {
183 // Test the simplest lifycycle of ResourceQueue. 184 // Test the simplest lifycycle of ResourceQueue.
184 ResourceQueue queue; 185 ResourceQueue queue;
185 queue.Initialize(ResourceQueue::DelegateSet()); 186 queue.Initialize(ResourceQueue::DelegateSet());
186 queue.Shutdown(); 187 queue.Shutdown();
187 } 188 }
188 189
189 TEST_F(ResourceQueueTest, NeverDelayingDelegate) { 190 TEST_F(ResourceQueueTest, NeverDelayingDelegate) {
190 ResourceQueue queue; 191 ResourceQueue queue;
191 192
192 NeverDelayingDelegate delegate; 193 NeverDelayingDelegate delegate;
193 InitializeQueue(&queue, &delegate); 194 InitializeQueue(&queue, &delegate);
194 195
195 URLRequest request(GURL(kTestUrl), this); 196 net::URLRequest request(GURL(kTestUrl), this);
196 scoped_ptr<ResourceDispatcherHostRequestInfo> request_info(GetRequestInfo(0)); 197 scoped_ptr<ResourceDispatcherHostRequestInfo> request_info(GetRequestInfo(0));
197 EXPECT_EQ(0, response_started_count_); 198 EXPECT_EQ(0, response_started_count_);
198 queue.AddRequest(&request, *request_info.get()); 199 queue.AddRequest(&request, *request_info.get());
199 MessageLoop::current()->RunAllPending(); 200 MessageLoop::current()->RunAllPending();
200 EXPECT_EQ(1, response_started_count_); 201 EXPECT_EQ(1, response_started_count_);
201 202
202 queue.Shutdown(); 203 queue.Shutdown();
203 } 204 }
204 205
205 TEST_F(ResourceQueueTest, AlwaysDelayingDelegate) { 206 TEST_F(ResourceQueueTest, AlwaysDelayingDelegate) {
206 ResourceQueue queue; 207 ResourceQueue queue;
207 208
208 AlwaysDelayingDelegate delegate(&queue); 209 AlwaysDelayingDelegate delegate(&queue);
209 InitializeQueue(&queue, &delegate); 210 InitializeQueue(&queue, &delegate);
210 211
211 URLRequest request(GURL(kTestUrl), this); 212 net::URLRequest request(GURL(kTestUrl), this);
212 scoped_ptr<ResourceDispatcherHostRequestInfo> request_info(GetRequestInfo(0)); 213 scoped_ptr<ResourceDispatcherHostRequestInfo> request_info(GetRequestInfo(0));
213 EXPECT_EQ(0, response_started_count_); 214 EXPECT_EQ(0, response_started_count_);
214 queue.AddRequest(&request, *request_info.get()); 215 queue.AddRequest(&request, *request_info.get());
215 MessageLoop::current()->RunAllPending(); 216 MessageLoop::current()->RunAllPending();
216 EXPECT_EQ(0, response_started_count_); 217 EXPECT_EQ(0, response_started_count_);
217 delegate.StartDelayedRequests(); 218 delegate.StartDelayedRequests();
218 MessageLoop::current()->RunAllPending(); 219 MessageLoop::current()->RunAllPending();
219 EXPECT_EQ(1, response_started_count_); 220 EXPECT_EQ(1, response_started_count_);
220 221
221 queue.Shutdown(); 222 queue.Shutdown();
222 } 223 }
223 224
224 TEST_F(ResourceQueueTest, AlwaysDelayingDelegateAfterShutdown) { 225 TEST_F(ResourceQueueTest, AlwaysDelayingDelegateAfterShutdown) {
225 ResourceQueue queue; 226 ResourceQueue queue;
226 227
227 AlwaysDelayingDelegate delegate(&queue); 228 AlwaysDelayingDelegate delegate(&queue);
228 InitializeQueue(&queue, &delegate); 229 InitializeQueue(&queue, &delegate);
229 230
230 URLRequest request(GURL(kTestUrl), this); 231 net::URLRequest request(GURL(kTestUrl), this);
231 scoped_ptr<ResourceDispatcherHostRequestInfo> request_info(GetRequestInfo(0)); 232 scoped_ptr<ResourceDispatcherHostRequestInfo> request_info(GetRequestInfo(0));
232 EXPECT_EQ(0, response_started_count_); 233 EXPECT_EQ(0, response_started_count_);
233 queue.AddRequest(&request, *request_info.get()); 234 queue.AddRequest(&request, *request_info.get());
234 MessageLoop::current()->RunAllPending(); 235 MessageLoop::current()->RunAllPending();
235 EXPECT_EQ(0, response_started_count_); 236 EXPECT_EQ(0, response_started_count_);
236 237
237 queue.Shutdown(); 238 queue.Shutdown();
238 239
239 delegate.StartDelayedRequests(); 240 delegate.StartDelayedRequests();
240 MessageLoop::current()->RunAllPending(); 241 MessageLoop::current()->RunAllPending();
241 EXPECT_EQ(0, response_started_count_); 242 EXPECT_EQ(0, response_started_count_);
242 } 243 }
243 244
244 TEST_F(ResourceQueueTest, TwoDelegates) { 245 TEST_F(ResourceQueueTest, TwoDelegates) {
245 ResourceQueue queue; 246 ResourceQueue queue;
246 247
247 AlwaysDelayingDelegate always_delaying_delegate(&queue); 248 AlwaysDelayingDelegate always_delaying_delegate(&queue);
248 NeverDelayingDelegate never_delaying_delegate; 249 NeverDelayingDelegate never_delaying_delegate;
249 InitializeQueue(&queue, &always_delaying_delegate, &never_delaying_delegate); 250 InitializeQueue(&queue, &always_delaying_delegate, &never_delaying_delegate);
250 251
251 URLRequest request(GURL(kTestUrl), this); 252 net::URLRequest request(GURL(kTestUrl), this);
252 scoped_ptr<ResourceDispatcherHostRequestInfo> request_info(GetRequestInfo(0)); 253 scoped_ptr<ResourceDispatcherHostRequestInfo> request_info(GetRequestInfo(0));
253 EXPECT_EQ(0, response_started_count_); 254 EXPECT_EQ(0, response_started_count_);
254 queue.AddRequest(&request, *request_info.get()); 255 queue.AddRequest(&request, *request_info.get());
255 MessageLoop::current()->RunAllPending(); 256 MessageLoop::current()->RunAllPending();
256 EXPECT_EQ(0, response_started_count_); 257 EXPECT_EQ(0, response_started_count_);
257 always_delaying_delegate.StartDelayedRequests(); 258 always_delaying_delegate.StartDelayedRequests();
258 MessageLoop::current()->RunAllPending(); 259 MessageLoop::current()->RunAllPending();
259 EXPECT_EQ(1, response_started_count_); 260 EXPECT_EQ(1, response_started_count_);
260 261
261 queue.Shutdown(); 262 queue.Shutdown();
262 } 263 }
263 264
264 TEST_F(ResourceQueueTest, RemoveRequest) { 265 TEST_F(ResourceQueueTest, RemoveRequest) {
265 ResourceQueue queue; 266 ResourceQueue queue;
266 267
267 AlwaysDelayingDelegate delegate(&queue); 268 AlwaysDelayingDelegate delegate(&queue);
268 InitializeQueue(&queue, &delegate); 269 InitializeQueue(&queue, &delegate);
269 270
270 URLRequest request(GURL(kTestUrl), this); 271 net::URLRequest request(GURL(kTestUrl), this);
271 scoped_ptr<ResourceDispatcherHostRequestInfo> request_info(GetRequestInfo(0)); 272 scoped_ptr<ResourceDispatcherHostRequestInfo> request_info(GetRequestInfo(0));
272 GlobalRequestID request_id(request_info->child_id(), 273 GlobalRequestID request_id(request_info->child_id(),
273 request_info->request_id()); 274 request_info->request_id());
274 EXPECT_EQ(0, response_started_count_); 275 EXPECT_EQ(0, response_started_count_);
275 queue.AddRequest(&request, *request_info.get()); 276 queue.AddRequest(&request, *request_info.get());
276 MessageLoop::current()->RunAllPending(); 277 MessageLoop::current()->RunAllPending();
277 EXPECT_EQ(0, response_started_count_); 278 EXPECT_EQ(0, response_started_count_);
278 queue.RemoveRequest(request_id); 279 queue.RemoveRequest(request_id);
279 delegate.StartDelayedRequests(); 280 delegate.StartDelayedRequests();
280 MessageLoop::current()->RunAllPending(); 281 MessageLoop::current()->RunAllPending();
281 EXPECT_EQ(0, response_started_count_); 282 EXPECT_EQ(0, response_started_count_);
282 283
283 queue.Shutdown(); 284 queue.Shutdown();
284 285
285 MessageLoop::current()->RunAllPending(); 286 MessageLoop::current()->RunAllPending();
286 EXPECT_EQ(0, response_started_count_); 287 EXPECT_EQ(0, response_started_count_);
287 } 288 }
288 289
289 } // namespace 290 } // namespace
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698