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

Side by Side Diff: webkit/appcache/appcache_request_handler_unittest.cc

Issue 8515019: base::Bind: Convert most of webkit/appcache. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Remove unused include. Created 9 years, 1 month 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 | « no previous file | webkit/appcache/appcache_response_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 <stack> 5 #include <stack>
6 #include <string> 6 #include <string>
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/bind.h"
10 #include "base/bind_helpers.h"
11 #include "base/callback.h"
9 #include "base/message_loop.h" 12 #include "base/message_loop.h"
13 #include "base/task.h"
10 #include "base/threading/thread.h" 14 #include "base/threading/thread.h"
11 #include "base/synchronization/waitable_event.h" 15 #include "base/synchronization/waitable_event.h"
12 #include "net/base/net_errors.h" 16 #include "net/base/net_errors.h"
13 #include "net/http/http_response_headers.h" 17 #include "net/http/http_response_headers.h"
14 #include "net/url_request/url_request.h" 18 #include "net/url_request/url_request.h"
15 #include "net/url_request/url_request_error_job.h" 19 #include "net/url_request/url_request_error_job.h"
16 #include "testing/gtest/include/gtest/gtest.h" 20 #include "testing/gtest/include/gtest/gtest.h"
17 #include "webkit/appcache/appcache.h" 21 #include "webkit/appcache/appcache.h"
18 #include "webkit/appcache/appcache_backend_impl.h" 22 #include "webkit/appcache/appcache_backend_impl.h"
19 #include "webkit/appcache/appcache_request_handler.h" 23 #include "webkit/appcache/appcache_request_handler.h"
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after
197 mock_frontend_.reset(); 201 mock_frontend_.reset();
198 mock_service_.reset(); 202 mock_service_.reset();
199 mock_policy_.reset(); 203 mock_policy_.reset();
200 host_ = NULL; 204 host_ = NULL;
201 } 205 }
202 206
203 void TestFinished() { 207 void TestFinished() {
204 // We unwind the stack prior to finishing up to let stack 208 // We unwind the stack prior to finishing up to let stack
205 // based objects get deleted. 209 // based objects get deleted.
206 DCHECK(MessageLoop::current() == io_thread_->message_loop()); 210 DCHECK(MessageLoop::current() == io_thread_->message_loop());
207 MessageLoop::current()->PostTask(FROM_HERE, NewRunnableMethod( 211 MessageLoop::current()->PostTask(
208 this, &AppCacheRequestHandlerTest::TestFinishedUnwound)); 212 FROM_HERE,
213 base::Bind(&AppCacheRequestHandlerTest::TestFinishedUnwound,
214 base::Unretained(this)));
209 } 215 }
210 216
211 void TestFinishedUnwound() { 217 void TestFinishedUnwound() {
212 TearDownTest(); 218 TearDownTest();
213 test_finished_event_->Signal(); 219 test_finished_event_->Signal();
214 } 220 }
215 221
216 void PushNextTask(Task* task) { 222 void PushNextTask(const base::Closure& task) {
217 task_stack_.push(task); 223 task_stack_.push(task);
218 } 224 }
219 225
220 void ScheduleNextTask() { 226 void ScheduleNextTask() {
221 DCHECK(MessageLoop::current() == io_thread_->message_loop()); 227 DCHECK(MessageLoop::current() == io_thread_->message_loop());
222 if (task_stack_.empty()) { 228 if (task_stack_.empty()) {
223 TestFinished(); 229 TestFinished();
224 return; 230 return;
225 } 231 }
226 MessageLoop::current()->PostTask(FROM_HERE, task_stack_.top()); 232 MessageLoop::current()->PostTask(FROM_HERE, task_stack_.top());
227 task_stack_.pop(); 233 task_stack_.pop();
228 } 234 }
229 235
230 // MainResource_Miss -------------------------------------------------- 236 // MainResource_Miss --------------------------------------------------
231 237
232 void MainResource_Miss() { 238 void MainResource_Miss() {
233 PushNextTask(NewRunnableMethod( 239 PushNextTask(
234 this, &AppCacheRequestHandlerTest::Verify_MainResource_Miss)); 240 base::Bind(&AppCacheRequestHandlerTest::Verify_MainResource_Miss,
241 base::Unretained(this)));
235 242
236 request_.reset(new MockURLRequest(GURL("http://blah/"))); 243 request_.reset(new MockURLRequest(GURL("http://blah/")));
237 handler_.reset(host_->CreateRequestHandler(request_.get(), 244 handler_.reset(host_->CreateRequestHandler(request_.get(),
238 ResourceType::MAIN_FRAME)); 245 ResourceType::MAIN_FRAME));
239 EXPECT_TRUE(handler_.get()); 246 EXPECT_TRUE(handler_.get());
240 247
241 job_ = handler_->MaybeLoadResource(request_.get()); 248 job_ = handler_->MaybeLoadResource(request_.get());
242 EXPECT_TRUE(job_.get()); 249 EXPECT_TRUE(job_.get());
243 EXPECT_TRUE(job_->is_waiting()); 250 EXPECT_TRUE(job_->is_waiting());
244 251
(...skipping 20 matching lines...) Expand all
265 EXPECT_FALSE(fallback_job); 272 EXPECT_FALSE(fallback_job);
266 273
267 EXPECT_TRUE(host_->preferred_manifest_url().is_empty()); 274 EXPECT_TRUE(host_->preferred_manifest_url().is_empty());
268 275
269 TestFinished(); 276 TestFinished();
270 } 277 }
271 278
272 // MainResource_Hit -------------------------------------------------- 279 // MainResource_Hit --------------------------------------------------
273 280
274 void MainResource_Hit() { 281 void MainResource_Hit() {
275 PushNextTask(NewRunnableMethod( 282 PushNextTask(
276 this, &AppCacheRequestHandlerTest::Verify_MainResource_Hit)); 283 base::Bind(&AppCacheRequestHandlerTest::Verify_MainResource_Hit,
284 base::Unretained(this)));
277 285
278 request_.reset(new MockURLRequest(GURL("http://blah/"))); 286 request_.reset(new MockURLRequest(GURL("http://blah/")));
279 handler_.reset(host_->CreateRequestHandler(request_.get(), 287 handler_.reset(host_->CreateRequestHandler(request_.get(),
280 ResourceType::MAIN_FRAME)); 288 ResourceType::MAIN_FRAME));
281 EXPECT_TRUE(handler_.get()); 289 EXPECT_TRUE(handler_.get());
282 290
283 mock_storage()->SimulateFindMainResource( 291 mock_storage()->SimulateFindMainResource(
284 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), 292 AppCacheEntry(AppCacheEntry::EXPLICIT, 1),
285 GURL(), AppCacheEntry(), 293 GURL(), AppCacheEntry(),
286 1, 2, GURL("http://blah/manifest/")); 294 1, 2, GURL("http://blah/manifest/"));
(...skipping 23 matching lines...) Expand all
310 318
311 EXPECT_EQ(GURL("http://blah/manifest/"), 319 EXPECT_EQ(GURL("http://blah/manifest/"),
312 host_->preferred_manifest_url()); 320 host_->preferred_manifest_url());
313 321
314 TestFinished(); 322 TestFinished();
315 } 323 }
316 324
317 // MainResource_Fallback -------------------------------------------------- 325 // MainResource_Fallback --------------------------------------------------
318 326
319 void MainResource_Fallback() { 327 void MainResource_Fallback() {
320 PushNextTask(NewRunnableMethod( 328 PushNextTask(
321 this, &AppCacheRequestHandlerTest::Verify_MainResource_Fallback)); 329 base::Bind(&AppCacheRequestHandlerTest::Verify_MainResource_Fallback,
330 base::Unretained(this)));
322 331
323 request_.reset(new MockURLRequest(GURL("http://blah/"))); 332 request_.reset(new MockURLRequest(GURL("http://blah/")));
324 handler_.reset(host_->CreateRequestHandler(request_.get(), 333 handler_.reset(host_->CreateRequestHandler(request_.get(),
325 ResourceType::MAIN_FRAME)); 334 ResourceType::MAIN_FRAME));
326 EXPECT_TRUE(handler_.get()); 335 EXPECT_TRUE(handler_.get());
327 336
328 mock_storage()->SimulateFindMainResource( 337 mock_storage()->SimulateFindMainResource(
329 AppCacheEntry(), 338 AppCacheEntry(),
330 GURL("http://blah/fallbackurl"), 339 GURL("http://blah/fallbackurl"),
331 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), 340 AppCacheEntry(AppCacheEntry::EXPLICIT, 1),
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
366 375
367 EXPECT_EQ(GURL("http://blah/manifest/"), 376 EXPECT_EQ(GURL("http://blah/manifest/"),
368 host_->preferred_manifest_url()); 377 host_->preferred_manifest_url());
369 378
370 TestFinished(); 379 TestFinished();
371 } 380 }
372 381
373 // MainResource_FallbackOverride -------------------------------------------- 382 // MainResource_FallbackOverride --------------------------------------------
374 383
375 void MainResource_FallbackOverride() { 384 void MainResource_FallbackOverride() {
376 PushNextTask(NewRunnableMethod( 385 PushNextTask(base::Bind(
377 this, 386 &AppCacheRequestHandlerTest::Verify_MainResource_FallbackOverride,
378 &AppCacheRequestHandlerTest::Verify_MainResource_FallbackOverride)); 387 base::Unretained(this)));
379 388
380 request_.reset(new MockURLRequest(GURL("http://blah/fallback-override"))); 389 request_.reset(new MockURLRequest(GURL("http://blah/fallback-override")));
381 handler_.reset(host_->CreateRequestHandler(request_.get(), 390 handler_.reset(host_->CreateRequestHandler(request_.get(),
382 ResourceType::MAIN_FRAME)); 391 ResourceType::MAIN_FRAME));
383 EXPECT_TRUE(handler_.get()); 392 EXPECT_TRUE(handler_.get());
384 393
385 mock_storage()->SimulateFindMainResource( 394 mock_storage()->SimulateFindMainResource(
386 AppCacheEntry(), 395 AppCacheEntry(),
387 GURL("http://blah/fallbackurl"), 396 GURL("http://blah/fallbackurl"),
388 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), 397 AppCacheEntry(AppCacheEntry::EXPLICIT, 1),
(...skipping 349 matching lines...) Expand 10 before | Expand all | Expand 10 after
738 handler_.reset(worker_host->CreateRequestHandler( 747 handler_.reset(worker_host->CreateRequestHandler(
739 request_.get(), ResourceType::SHARED_WORKER)); 748 request_.get(), ResourceType::SHARED_WORKER));
740 EXPECT_FALSE(handler_.get()); 749 EXPECT_FALSE(handler_.get());
741 750
742 TestFinished(); 751 TestFinished();
743 } 752 }
744 753
745 // MainResource_Blocked -------------------------------------------------- 754 // MainResource_Blocked --------------------------------------------------
746 755
747 void MainResource_Blocked() { 756 void MainResource_Blocked() {
748 PushNextTask(NewRunnableMethod( 757 PushNextTask(
749 this, &AppCacheRequestHandlerTest::Verify_MainResource_Blocked)); 758 base::Bind(&AppCacheRequestHandlerTest::Verify_MainResource_Blocked,
759 base::Unretained(this)));
750 760
751 request_.reset(new MockURLRequest(GURL("http://blah/"))); 761 request_.reset(new MockURLRequest(GURL("http://blah/")));
752 handler_.reset(host_->CreateRequestHandler(request_.get(), 762 handler_.reset(host_->CreateRequestHandler(request_.get(),
753 ResourceType::MAIN_FRAME)); 763 ResourceType::MAIN_FRAME));
754 EXPECT_TRUE(handler_.get()); 764 EXPECT_TRUE(handler_.get());
755 765
756 mock_policy_->can_load_return_value_ = false; 766 mock_policy_->can_load_return_value_ = false;
757 mock_storage()->SimulateFindMainResource( 767 mock_storage()->SimulateFindMainResource(
758 AppCacheEntry(AppCacheEntry::EXPLICIT, 1), 768 AppCacheEntry(AppCacheEntry::EXPLICIT, 1),
759 GURL(), AppCacheEntry(), 769 GURL(), AppCacheEntry(),
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
794 return cache; 804 return cache;
795 } 805 }
796 806
797 MockAppCacheStorage* mock_storage() { 807 MockAppCacheStorage* mock_storage() {
798 return reinterpret_cast<MockAppCacheStorage*>(mock_service_->storage()); 808 return reinterpret_cast<MockAppCacheStorage*>(mock_service_->storage());
799 } 809 }
800 810
801 // Data members -------------------------------------------------- 811 // Data members --------------------------------------------------
802 812
803 scoped_ptr<base::WaitableEvent> test_finished_event_; 813 scoped_ptr<base::WaitableEvent> test_finished_event_;
804 std::stack<Task*> task_stack_; 814 std::stack<base::Closure> task_stack_;
805 scoped_ptr<MockAppCacheService> mock_service_; 815 scoped_ptr<MockAppCacheService> mock_service_;
806 scoped_ptr<AppCacheBackendImpl> backend_impl_; 816 scoped_ptr<AppCacheBackendImpl> backend_impl_;
807 scoped_ptr<MockFrontend> mock_frontend_; 817 scoped_ptr<MockFrontend> mock_frontend_;
808 scoped_ptr<MockAppCachePolicy> mock_policy_; 818 scoped_ptr<MockAppCachePolicy> mock_policy_;
809 AppCacheHost* host_; 819 AppCacheHost* host_;
810 scoped_ptr<MockURLRequest> request_; 820 scoped_ptr<MockURLRequest> request_;
811 scoped_ptr<AppCacheRequestHandler> handler_; 821 scoped_ptr<AppCacheRequestHandler> handler_;
812 scoped_refptr<AppCacheURLRequestJob> job_; 822 scoped_refptr<AppCacheURLRequestJob> job_;
813 net::URLRequest::ProtocolFactory* orig_http_factory_; 823 net::URLRequest::ProtocolFactory* orig_http_factory_;
814 824
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
888 898
889 TEST_F(AppCacheRequestHandlerTest, WorkerRequest) { 899 TEST_F(AppCacheRequestHandlerTest, WorkerRequest) {
890 RunTestOnIOThread(&AppCacheRequestHandlerTest::WorkerRequest); 900 RunTestOnIOThread(&AppCacheRequestHandlerTest::WorkerRequest);
891 } 901 }
892 902
893 TEST_F(AppCacheRequestHandlerTest, MainResource_Blocked) { 903 TEST_F(AppCacheRequestHandlerTest, MainResource_Blocked) {
894 RunTestOnIOThread(&AppCacheRequestHandlerTest::MainResource_Blocked); 904 RunTestOnIOThread(&AppCacheRequestHandlerTest::MainResource_Blocked);
895 } 905 }
896 906
897 } // namespace appcache 907 } // namespace appcache
898
899 // AppCacheRequestHandlerTest is expected to always live longer than the
900 // runnable methods. This lets us call NewRunnableMethod on its instances.
901 DISABLE_RUNNABLE_METHOD_REFCOUNT(appcache::AppCacheRequestHandlerTest);
OLDNEW
« no previous file with comments | « no previous file | webkit/appcache/appcache_response_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698