| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/appcache/appcache_url_request_job.h" | 5 #include "content/browser/appcache/appcache_url_request_job.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 #include <string.h> | 8 #include <string.h> |
| 9 | 9 |
| 10 #include <memory> | 10 #include <memory> |
| (...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 241 test_finished_event_.reset(new base::WaitableEvent( | 241 test_finished_event_.reset(new base::WaitableEvent( |
| 242 base::WaitableEvent::ResetPolicy::AUTOMATIC, | 242 base::WaitableEvent::ResetPolicy::AUTOMATIC, |
| 243 base::WaitableEvent::InitialState::NOT_SIGNALED)); | 243 base::WaitableEvent::InitialState::NOT_SIGNALED)); |
| 244 io_thread_->task_runner()->PostTask( | 244 io_thread_->task_runner()->PostTask( |
| 245 FROM_HERE, base::Bind(&AppCacheURLRequestJobTest::MethodWrapper<Method>, | 245 FROM_HERE, base::Bind(&AppCacheURLRequestJobTest::MethodWrapper<Method>, |
| 246 base::Unretained(this), method)); | 246 base::Unretained(this), method)); |
| 247 test_finished_event_->Wait(); | 247 test_finished_event_->Wait(); |
| 248 } | 248 } |
| 249 | 249 |
| 250 void SetUpTest() { | 250 void SetUpTest() { |
| 251 DCHECK(io_thread_->task_runner()->BelongsToCurrentThread()); | 251 DCHECK(base::MessageLoop::current() == io_thread_->message_loop()); |
| 252 DCHECK(task_stack_.empty()); | 252 DCHECK(task_stack_.empty()); |
| 253 | 253 |
| 254 storage_delegate_.reset(new MockStorageDelegate(this)); | 254 storage_delegate_.reset(new MockStorageDelegate(this)); |
| 255 service_.reset(new MockAppCacheService()); | 255 service_.reset(new MockAppCacheService()); |
| 256 expected_read_result_ = 0; | 256 expected_read_result_ = 0; |
| 257 expected_write_result_ = 0; | 257 expected_write_result_ = 0; |
| 258 written_response_id_ = 0; | 258 written_response_id_ = 0; |
| 259 reader_deletion_count_down_ = 0; | 259 reader_deletion_count_down_ = 0; |
| 260 writer_deletion_count_down_ = 0; | 260 writer_deletion_count_down_ = 0; |
| 261 | 261 |
| 262 restart_callback_invoked_ = false; | 262 restart_callback_invoked_ = false; |
| 263 | 263 |
| 264 url_request_delegate_.reset(new MockURLRequestDelegate(this)); | 264 url_request_delegate_.reset(new MockURLRequestDelegate(this)); |
| 265 job_factory_.reset(new MockURLRequestJobFactory()); | 265 job_factory_.reset(new MockURLRequestJobFactory()); |
| 266 empty_context_.reset(new net::URLRequestContext()); | 266 empty_context_.reset(new net::URLRequestContext()); |
| 267 empty_context_->set_job_factory(job_factory_.get()); | 267 empty_context_->set_job_factory(job_factory_.get()); |
| 268 } | 268 } |
| 269 | 269 |
| 270 void TearDownTest() { | 270 void TearDownTest() { |
| 271 DCHECK(io_thread_->task_runner()->BelongsToCurrentThread()); | 271 DCHECK(base::MessageLoop::current() == io_thread_->message_loop()); |
| 272 request_.reset(); | 272 request_.reset(); |
| 273 | 273 |
| 274 while (!task_stack_.empty()) | 274 while (!task_stack_.empty()) |
| 275 task_stack_.pop(); | 275 task_stack_.pop(); |
| 276 | 276 |
| 277 reader_.reset(); | 277 reader_.reset(); |
| 278 read_buffer_ = NULL; | 278 read_buffer_ = NULL; |
| 279 read_info_buffer_ = NULL; | 279 read_info_buffer_ = NULL; |
| 280 writer_.reset(); | 280 writer_.reset(); |
| 281 write_buffer_ = NULL; | 281 write_buffer_ = NULL; |
| 282 write_info_buffer_ = NULL; | 282 write_info_buffer_ = NULL; |
| 283 storage_delegate_.reset(); | 283 storage_delegate_.reset(); |
| 284 service_.reset(); | 284 service_.reset(); |
| 285 | 285 |
| 286 DCHECK(!job_factory_->has_job()); | 286 DCHECK(!job_factory_->has_job()); |
| 287 empty_context_.reset(); | 287 empty_context_.reset(); |
| 288 job_factory_.reset(); | 288 job_factory_.reset(); |
| 289 url_request_delegate_.reset(); | 289 url_request_delegate_.reset(); |
| 290 } | 290 } |
| 291 | 291 |
| 292 void TestFinished() { | 292 void TestFinished() { |
| 293 // We unwind the stack prior to finishing up to let stack | 293 // We unwind the stack prior to finishing up to let stack |
| 294 // based objects get deleted. | 294 // based objects get deleted. |
| 295 DCHECK(io_thread_->task_runner()->BelongsToCurrentThread()); | 295 DCHECK(base::MessageLoop::current() == io_thread_->message_loop()); |
| 296 base::ThreadTaskRunnerHandle::Get()->PostTask( | 296 base::ThreadTaskRunnerHandle::Get()->PostTask( |
| 297 FROM_HERE, base::Bind(&AppCacheURLRequestJobTest::TestFinishedUnwound, | 297 FROM_HERE, base::Bind(&AppCacheURLRequestJobTest::TestFinishedUnwound, |
| 298 base::Unretained(this))); | 298 base::Unretained(this))); |
| 299 } | 299 } |
| 300 | 300 |
| 301 void TestFinishedUnwound() { | 301 void TestFinishedUnwound() { |
| 302 TearDownTest(); | 302 TearDownTest(); |
| 303 test_finished_event_->Signal(); | 303 test_finished_event_->Signal(); |
| 304 } | 304 } |
| 305 | 305 |
| 306 void PushNextTask(const base::Closure& task) { | 306 void PushNextTask(const base::Closure& task) { |
| 307 task_stack_.push(std::pair<base::Closure, bool>(task, false)); | 307 task_stack_.push(std::pair<base::Closure, bool>(task, false)); |
| 308 } | 308 } |
| 309 | 309 |
| 310 void PushNextTaskAsImmediate(const base::Closure& task) { | 310 void PushNextTaskAsImmediate(const base::Closure& task) { |
| 311 task_stack_.push(std::pair<base::Closure, bool>(task, true)); | 311 task_stack_.push(std::pair<base::Closure, bool>(task, true)); |
| 312 } | 312 } |
| 313 | 313 |
| 314 void ScheduleNextTask() { | 314 void ScheduleNextTask() { |
| 315 DCHECK(io_thread_->task_runner()->BelongsToCurrentThread()); | 315 DCHECK(base::MessageLoop::current() == io_thread_->message_loop()); |
| 316 if (task_stack_.empty()) { | 316 if (task_stack_.empty()) { |
| 317 TestFinished(); | 317 TestFinished(); |
| 318 return; | 318 return; |
| 319 } | 319 } |
| 320 base::Closure task =task_stack_.top().first; | 320 base::Closure task =task_stack_.top().first; |
| 321 bool immediate = task_stack_.top().second; | 321 bool immediate = task_stack_.top().second; |
| 322 task_stack_.pop(); | 322 task_stack_.pop(); |
| 323 if (immediate) | 323 if (immediate) |
| 324 task.Run(); | 324 task.Run(); |
| 325 else | 325 else |
| (...skipping 567 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 893 | 893 |
| 894 TEST_F(AppCacheURLRequestJobTest, CancelRequest) { | 894 TEST_F(AppCacheURLRequestJobTest, CancelRequest) { |
| 895 RunTestOnIOThread(&AppCacheURLRequestJobTest::CancelRequest); | 895 RunTestOnIOThread(&AppCacheURLRequestJobTest::CancelRequest); |
| 896 } | 896 } |
| 897 | 897 |
| 898 TEST_F(AppCacheURLRequestJobTest, CancelRequestWithIOPending) { | 898 TEST_F(AppCacheURLRequestJobTest, CancelRequestWithIOPending) { |
| 899 RunTestOnIOThread(&AppCacheURLRequestJobTest::CancelRequestWithIOPending); | 899 RunTestOnIOThread(&AppCacheURLRequestJobTest::CancelRequestWithIOPending); |
| 900 } | 900 } |
| 901 | 901 |
| 902 } // namespace content | 902 } // namespace content |
| OLD | NEW |