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(base::MessageLoop::current() == io_thread_->message_loop()); | 251 DCHECK(io_thread_->task_runner()->BelongsToCurrentThread()); |
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(base::MessageLoop::current() == io_thread_->message_loop()); | 271 DCHECK(io_thread_->task_runner()->BelongsToCurrentThread()); |
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(base::MessageLoop::current() == io_thread_->message_loop()); | 295 DCHECK(io_thread_->task_runner()->BelongsToCurrentThread()); |
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(base::MessageLoop::current() == io_thread_->message_loop()); | 315 DCHECK(io_thread_->task_runner()->BelongsToCurrentThread()); |
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 |