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

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

Issue 8343018: More groundwork for flat file based response storage. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 2 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 | « webkit/appcache/appcache_response.cc ('k') | webkit/appcache/appcache_service.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) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 <utility> 7 #include <utility>
8 8
9 #include "base/compiler_specific.h" 9 #include "base/compiler_specific.h"
10 #include "base/pickle.h" 10 #include "base/pickle.h"
(...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after
299 // Most of the individual tests involve multiple async steps. Each test 299 // Most of the individual tests involve multiple async steps. Each test
300 // is delineated with a section header. 300 // is delineated with a section header.
301 301
302 302
303 // ReadNonExistentResponse ------------------------------------------- 303 // ReadNonExistentResponse -------------------------------------------
304 void ReadNonExistentResponse() { 304 void ReadNonExistentResponse() {
305 // 1. Attempt to ReadInfo 305 // 1. Attempt to ReadInfo
306 // 2. Attempt to ReadData 306 // 2. Attempt to ReadData
307 307
308 reader_.reset(service_->storage()->CreateResponseReader( 308 reader_.reset(service_->storage()->CreateResponseReader(
309 GURL(), kNoSuchResponseId)); 309 GURL(), 0, kNoSuchResponseId));
310 310
311 // Push tasks in reverse order 311 // Push tasks in reverse order
312 PushNextTask(NewRunnableMethod( 312 PushNextTask(NewRunnableMethod(
313 this, &AppCacheResponseTest::ReadNonExistentData)); 313 this, &AppCacheResponseTest::ReadNonExistentData));
314 PushNextTask(NewRunnableMethod( 314 PushNextTask(NewRunnableMethod(
315 this, &AppCacheResponseTest::ReadNonExistentInfo)); 315 this, &AppCacheResponseTest::ReadNonExistentInfo));
316 ScheduleNextTask(); 316 ScheduleNextTask();
317 } 317 }
318 318
319 void ReadNonExistentInfo() { 319 void ReadNonExistentInfo() {
320 EXPECT_FALSE(reader_->IsReadPending()); 320 EXPECT_FALSE(reader_->IsReadPending());
321 read_info_buffer_ = new HttpResponseInfoIOBuffer(); 321 read_info_buffer_ = new HttpResponseInfoIOBuffer();
322 reader_->ReadInfo(read_info_buffer_, &read_info_callback_); 322 reader_->ReadInfo(read_info_buffer_, &read_info_callback_);
323 EXPECT_TRUE(reader_->IsReadPending()); 323 EXPECT_TRUE(reader_->IsReadPending());
324 expected_read_result_ = net::ERR_CACHE_MISS; 324 expected_read_result_ = net::ERR_CACHE_MISS;
325 } 325 }
326 326
327 void ReadNonExistentData() { 327 void ReadNonExistentData() {
328 EXPECT_FALSE(reader_->IsReadPending()); 328 EXPECT_FALSE(reader_->IsReadPending());
329 read_buffer_ = new IOBuffer(kBlockSize); 329 read_buffer_ = new IOBuffer(kBlockSize);
330 reader_->ReadData(read_buffer_, kBlockSize, &read_callback_); 330 reader_->ReadData(read_buffer_, kBlockSize, &read_callback_);
331 EXPECT_TRUE(reader_->IsReadPending()); 331 EXPECT_TRUE(reader_->IsReadPending());
332 expected_read_result_ = net::ERR_CACHE_MISS; 332 expected_read_result_ = net::ERR_CACHE_MISS;
333 } 333 }
334 334
335 // LoadResponseInfo_Miss ---------------------------------------------------- 335 // LoadResponseInfo_Miss ----------------------------------------------------
336 void LoadResponseInfo_Miss() { 336 void LoadResponseInfo_Miss() {
337 PushNextTask(NewRunnableMethod( 337 PushNextTask(NewRunnableMethod(
338 this, &AppCacheResponseTest::LoadResponseInfo_Miss_Verify)); 338 this, &AppCacheResponseTest::LoadResponseInfo_Miss_Verify));
339 service_->storage()->LoadResponseInfo(GURL(), kNoSuchResponseId, 339 service_->storage()->LoadResponseInfo(GURL(), 0, kNoSuchResponseId,
340 storage_delegate_.get()); 340 storage_delegate_.get());
341 } 341 }
342 342
343 void LoadResponseInfo_Miss_Verify() { 343 void LoadResponseInfo_Miss_Verify() {
344 EXPECT_EQ(kNoSuchResponseId, storage_delegate_->loaded_info_id_); 344 EXPECT_EQ(kNoSuchResponseId, storage_delegate_->loaded_info_id_);
345 EXPECT_TRUE(!storage_delegate_->loaded_info_.get()); 345 EXPECT_TRUE(!storage_delegate_->loaded_info_.get());
346 TestFinished(); 346 TestFinished();
347 } 347 }
348 348
349 // LoadResponseInfo_Hit ---------------------------------------------------- 349 // LoadResponseInfo_Hit ----------------------------------------------------
350 void LoadResponseInfo_Hit() { 350 void LoadResponseInfo_Hit() {
351 // This tests involves multiple async steps. 351 // This tests involves multiple async steps.
352 // 1. Write a response headers and body to storage 352 // 1. Write a response headers and body to storage
353 // a. headers 353 // a. headers
354 // b. body 354 // b. body
355 // 2. Use LoadResponseInfo to read the response headers back out 355 // 2. Use LoadResponseInfo to read the response headers back out
356 PushNextTask(NewRunnableMethod( 356 PushNextTask(NewRunnableMethod(
357 this, &AppCacheResponseTest::LoadResponseInfo_Hit_Step2)); 357 this, &AppCacheResponseTest::LoadResponseInfo_Hit_Step2));
358 writer_.reset(service_->storage()->CreateResponseWriter(GURL())); 358 writer_.reset(service_->storage()->CreateResponseWriter(GURL(), 0));
359 written_response_id_ = writer_->response_id(); 359 written_response_id_ = writer_->response_id();
360 WriteBasicResponse(); 360 WriteBasicResponse();
361 } 361 }
362 362
363 void LoadResponseInfo_Hit_Step2() { 363 void LoadResponseInfo_Hit_Step2() {
364 writer_.reset(); 364 writer_.reset();
365 PushNextTask(NewRunnableMethod( 365 PushNextTask(NewRunnableMethod(
366 this, &AppCacheResponseTest::LoadResponseInfo_Hit_Verify)); 366 this, &AppCacheResponseTest::LoadResponseInfo_Hit_Verify));
367 service_->storage()->LoadResponseInfo(GURL(), written_response_id_, 367 service_->storage()->LoadResponseInfo(GURL(), 0, written_response_id_,
368 storage_delegate_.get()); 368 storage_delegate_.get());
369 } 369 }
370 370
371 void LoadResponseInfo_Hit_Verify() { 371 void LoadResponseInfo_Hit_Verify() {
372 EXPECT_EQ(written_response_id_, storage_delegate_->loaded_info_id_); 372 EXPECT_EQ(written_response_id_, storage_delegate_->loaded_info_id_);
373 EXPECT_TRUE(storage_delegate_->loaded_info_.get()); 373 EXPECT_TRUE(storage_delegate_->loaded_info_.get());
374 EXPECT_TRUE(CompareHttpResponseInfos( 374 EXPECT_TRUE(CompareHttpResponseInfos(
375 write_info_buffer_->http_info.get(), 375 write_info_buffer_->http_info.get(),
376 storage_delegate_->loaded_info_->http_response_info())); 376 storage_delegate_->loaded_info_->http_response_info()));
377 EXPECT_EQ(basic_response_size(), 377 EXPECT_EQ(basic_response_size(),
(...skipping 15 matching lines...) Expand all
393 PushNextTask(NewRunnableMethod( 393 PushNextTask(NewRunnableMethod(
394 this, &AppCacheResponseTest::Verify_AmountWritten, 394 this, &AppCacheResponseTest::Verify_AmountWritten,
395 expected_amount_written)); 395 expected_amount_written));
396 for (int i = 0; i < kNumBlocks; ++i) { 396 for (int i = 0; i < kNumBlocks; ++i) {
397 PushNextTask(NewRunnableMethod( 397 PushNextTask(NewRunnableMethod(
398 this, &AppCacheResponseTest::WriteOneBlock, kNumBlocks - i)); 398 this, &AppCacheResponseTest::WriteOneBlock, kNumBlocks - i));
399 } 399 }
400 PushNextTask(NewRunnableMethod( 400 PushNextTask(NewRunnableMethod(
401 this, &AppCacheResponseTest::WriteResponseHead, head)); 401 this, &AppCacheResponseTest::WriteResponseHead, head));
402 402
403 writer_.reset(service_->storage()->CreateResponseWriter(GURL())); 403 writer_.reset(service_->storage()->CreateResponseWriter(GURL(), 0));
404 written_response_id_ = writer_->response_id(); 404 written_response_id_ = writer_->response_id();
405 ScheduleNextTask(); 405 ScheduleNextTask();
406 } 406 }
407 407
408 void Verify_AmountWritten(int expected_amount_written) { 408 void Verify_AmountWritten(int expected_amount_written) {
409 EXPECT_EQ(expected_amount_written, writer_->amount_written()); 409 EXPECT_EQ(expected_amount_written, writer_->amount_written());
410 TestFinished(); 410 TestFinished();
411 } 411 }
412 412
413 413
(...skipping 25 matching lines...) Expand all
439 PushNextTask(NewRunnableMethod( 439 PushNextTask(NewRunnableMethod(
440 this, &AppCacheResponseTest::ReadInBlocks)); 440 this, &AppCacheResponseTest::ReadInBlocks));
441 PushNextTask(NewRunnableMethod( 441 PushNextTask(NewRunnableMethod(
442 this, &AppCacheResponseTest::WriteOutBlocks)); 442 this, &AppCacheResponseTest::WriteOutBlocks));
443 443
444 // Get them going. 444 // Get them going.
445 ScheduleNextTask(); 445 ScheduleNextTask();
446 } 446 }
447 447
448 void WriteOutBlocks() { 448 void WriteOutBlocks() {
449 writer_.reset(service_->storage()->CreateResponseWriter(GURL())); 449 writer_.reset(service_->storage()->CreateResponseWriter(GURL(), 0));
450 written_response_id_ = writer_->response_id(); 450 written_response_id_ = writer_->response_id();
451 for (int i = 0; i < kNumBlocks; ++i) { 451 for (int i = 0; i < kNumBlocks; ++i) {
452 PushNextTask(NewRunnableMethod( 452 PushNextTask(NewRunnableMethod(
453 this, &AppCacheResponseTest::WriteOneBlock, kNumBlocks - i)); 453 this, &AppCacheResponseTest::WriteOneBlock, kNumBlocks - i));
454 } 454 }
455 ScheduleNextTask(); 455 ScheduleNextTask();
456 } 456 }
457 457
458 void WriteOneBlock(int block_number) { 458 void WriteOneBlock(int block_number) {
459 scoped_refptr<IOBuffer> io_buffer( 459 scoped_refptr<IOBuffer> io_buffer(
460 new IOBuffer(kBlockSize)); 460 new IOBuffer(kBlockSize));
461 FillData(block_number, io_buffer->data(), kBlockSize); 461 FillData(block_number, io_buffer->data(), kBlockSize);
462 WriteResponseBody(io_buffer, kBlockSize); 462 WriteResponseBody(io_buffer, kBlockSize);
463 } 463 }
464 464
465 void ReadInBlocks() { 465 void ReadInBlocks() {
466 writer_.reset(); 466 writer_.reset();
467 reader_.reset(service_->storage()->CreateResponseReader( 467 reader_.reset(service_->storage()->CreateResponseReader(
468 GURL(), written_response_id_)); 468 GURL(), 0, written_response_id_));
469 for (int i = 0; i < kNumBlocks; ++i) { 469 for (int i = 0; i < kNumBlocks; ++i) {
470 PushNextTask(NewRunnableMethod( 470 PushNextTask(NewRunnableMethod(
471 this, &AppCacheResponseTest::ReadOneBlock, kNumBlocks - i)); 471 this, &AppCacheResponseTest::ReadOneBlock, kNumBlocks - i));
472 } 472 }
473 ScheduleNextTask(); 473 ScheduleNextTask();
474 } 474 }
475 475
476 void ReadOneBlock(int block_number) { 476 void ReadOneBlock(int block_number) {
477 PushNextTask(NewRunnableMethod( 477 PushNextTask(NewRunnableMethod(
478 this, &AppCacheResponseTest::VerifyOneBlock, block_number)); 478 this, &AppCacheResponseTest::VerifyOneBlock, block_number));
479 ReadResponseBody(new IOBuffer(kBlockSize), kBlockSize); 479 ReadResponseBody(new IOBuffer(kBlockSize), kBlockSize);
480 } 480 }
481 481
482 void VerifyOneBlock(int block_number) { 482 void VerifyOneBlock(int block_number) {
483 EXPECT_TRUE(CheckData(block_number, read_buffer_->data(), kBlockSize)); 483 EXPECT_TRUE(CheckData(block_number, read_buffer_->data(), kBlockSize));
484 ScheduleNextTask(); 484 ScheduleNextTask();
485 } 485 }
486 486
487 void ReadAllAtOnce() { 487 void ReadAllAtOnce() {
488 PushNextTask(NewRunnableMethod( 488 PushNextTask(NewRunnableMethod(
489 this, &AppCacheResponseTest::VerifyAllAtOnce)); 489 this, &AppCacheResponseTest::VerifyAllAtOnce));
490 reader_.reset(service_->storage()->CreateResponseReader( 490 reader_.reset(service_->storage()->CreateResponseReader(
491 GURL(), written_response_id_)); 491 GURL(), 0, written_response_id_));
492 int big_size = kNumBlocks * kBlockSize; 492 int big_size = kNumBlocks * kBlockSize;
493 ReadResponseBody(new IOBuffer(big_size), big_size); 493 ReadResponseBody(new IOBuffer(big_size), big_size);
494 } 494 }
495 495
496 void VerifyAllAtOnce() { 496 void VerifyAllAtOnce() {
497 char* p = read_buffer_->data(); 497 char* p = read_buffer_->data();
498 for (int i = 0; i < kNumBlocks; ++i, p += kBlockSize) 498 for (int i = 0; i < kNumBlocks; ++i, p += kBlockSize)
499 EXPECT_TRUE(CheckData(i + 1, p, kBlockSize)); 499 EXPECT_TRUE(CheckData(i + 1, p, kBlockSize));
500 ScheduleNextTask(); 500 ScheduleNextTask();
501 } 501 }
502 502
503 void ReadPastEOF() { 503 void ReadPastEOF() {
504 EXPECT_FALSE(reader_->IsReadPending()); 504 EXPECT_FALSE(reader_->IsReadPending());
505 read_buffer_ = new IOBuffer(kBlockSize); 505 read_buffer_ = new IOBuffer(kBlockSize);
506 expected_read_result_ = 0; 506 expected_read_result_ = 0;
507 reader_->ReadData( 507 reader_->ReadData(
508 read_buffer_, kBlockSize, &read_callback_); 508 read_buffer_, kBlockSize, &read_callback_);
509 } 509 }
510 510
511 void ReadRange() { 511 void ReadRange() {
512 PushNextTask(NewRunnableMethod( 512 PushNextTask(NewRunnableMethod(
513 this, &AppCacheResponseTest::VerifyRange)); 513 this, &AppCacheResponseTest::VerifyRange));
514 reader_.reset(service_->storage()->CreateResponseReader( 514 reader_.reset(service_->storage()->CreateResponseReader(
515 GURL(), written_response_id_)); 515 GURL(), 0, written_response_id_));
516 reader_->SetReadRange(kBlockSize, kBlockSize); 516 reader_->SetReadRange(kBlockSize, kBlockSize);
517 ReadResponseBody(new IOBuffer(kBlockSize), kBlockSize); 517 ReadResponseBody(new IOBuffer(kBlockSize), kBlockSize);
518 } 518 }
519 519
520 void VerifyRange() { 520 void VerifyRange() {
521 EXPECT_TRUE(CheckData(2, read_buffer_->data(), kBlockSize)); 521 EXPECT_TRUE(CheckData(2, read_buffer_->data(), kBlockSize));
522 ScheduleNextTask(); // ReadPastEOF is scheduled next 522 ScheduleNextTask(); // ReadPastEOF is scheduled next
523 } 523 }
524 524
525 void ReadRangePartiallyBeyondEOF() { 525 void ReadRangePartiallyBeyondEOF() {
526 PushNextTask(NewRunnableMethod( 526 PushNextTask(NewRunnableMethod(
527 this, &AppCacheResponseTest::VerifyRangeBeyondEOF)); 527 this, &AppCacheResponseTest::VerifyRangeBeyondEOF));
528 reader_.reset(service_->storage()->CreateResponseReader( 528 reader_.reset(service_->storage()->CreateResponseReader(
529 GURL(), written_response_id_)); 529 GURL(), 0, written_response_id_));
530 reader_->SetReadRange(kBlockSize, kNumBlocks * kBlockSize); 530 reader_->SetReadRange(kBlockSize, kNumBlocks * kBlockSize);
531 ReadResponseBody(new IOBuffer(kNumBlocks * kBlockSize), 531 ReadResponseBody(new IOBuffer(kNumBlocks * kBlockSize),
532 kNumBlocks * kBlockSize); 532 kNumBlocks * kBlockSize);
533 expected_read_result_ = (kNumBlocks - 1) * kBlockSize; 533 expected_read_result_ = (kNumBlocks - 1) * kBlockSize;
534 } 534 }
535 535
536 void VerifyRangeBeyondEOF() { 536 void VerifyRangeBeyondEOF() {
537 // Just verify the first 1k 537 // Just verify the first 1k
538 VerifyRange(); 538 VerifyRange();
539 } 539 }
540 540
541 void ReadRangeFullyBeyondEOF() { 541 void ReadRangeFullyBeyondEOF() {
542 reader_.reset(service_->storage()->CreateResponseReader( 542 reader_.reset(service_->storage()->CreateResponseReader(
543 GURL(), written_response_id_)); 543 GURL(), 0, written_response_id_));
544 reader_->SetReadRange((kNumBlocks * kBlockSize) + 1, kBlockSize); 544 reader_->SetReadRange((kNumBlocks * kBlockSize) + 1, kBlockSize);
545 ReadResponseBody(new IOBuffer(kBlockSize), kBlockSize); 545 ReadResponseBody(new IOBuffer(kBlockSize), kBlockSize);
546 expected_read_result_ = 0; 546 expected_read_result_ = 0;
547 } 547 }
548 548
549 // IOChaining ------------------------------------------- 549 // IOChaining -------------------------------------------
550 void IOChaining() { 550 void IOChaining() {
551 // 1. Write several blocks out initiating the subsequent write 551 // 1. Write several blocks out initiating the subsequent write
552 // from within the completion callback of the previous write. 552 // from within the completion callback of the previous write.
553 // 2. Read and verify several blocks in similarly chaining reads. 553 // 2. Read and verify several blocks in similarly chaining reads.
554 554
555 // Push tasks in reverse order 555 // Push tasks in reverse order
556 PushNextTaskAsImmediate(NewRunnableMethod( 556 PushNextTaskAsImmediate(NewRunnableMethod(
557 this, &AppCacheResponseTest::ReadInBlocksImmediately)); 557 this, &AppCacheResponseTest::ReadInBlocksImmediately));
558 PushNextTaskAsImmediate(NewRunnableMethod( 558 PushNextTaskAsImmediate(NewRunnableMethod(
559 this, &AppCacheResponseTest::WriteOutBlocksImmediately)); 559 this, &AppCacheResponseTest::WriteOutBlocksImmediately));
560 560
561 // Get them going. 561 // Get them going.
562 ScheduleNextTask(); 562 ScheduleNextTask();
563 } 563 }
564 564
565 void WriteOutBlocksImmediately() { 565 void WriteOutBlocksImmediately() {
566 writer_.reset(service_->storage()->CreateResponseWriter(GURL())); 566 writer_.reset(service_->storage()->CreateResponseWriter(GURL(), 0));
567 written_response_id_ = writer_->response_id(); 567 written_response_id_ = writer_->response_id();
568 for (int i = 0; i < kNumBlocks; ++i) { 568 for (int i = 0; i < kNumBlocks; ++i) {
569 PushNextTaskAsImmediate(NewRunnableMethod( 569 PushNextTaskAsImmediate(NewRunnableMethod(
570 this, &AppCacheResponseTest::WriteOneBlock, kNumBlocks - i)); 570 this, &AppCacheResponseTest::WriteOneBlock, kNumBlocks - i));
571 } 571 }
572 ScheduleNextTask(); 572 ScheduleNextTask();
573 } 573 }
574 574
575 void ReadInBlocksImmediately() { 575 void ReadInBlocksImmediately() {
576 writer_.reset(); 576 writer_.reset();
577 reader_.reset(service_->storage()->CreateResponseReader( 577 reader_.reset(service_->storage()->CreateResponseReader(
578 GURL(), written_response_id_)); 578 GURL(), 0, written_response_id_));
579 for (int i = 0; i < kNumBlocks; ++i) { 579 for (int i = 0; i < kNumBlocks; ++i) {
580 PushNextTaskAsImmediate(NewRunnableMethod( 580 PushNextTaskAsImmediate(NewRunnableMethod(
581 this, &AppCacheResponseTest::ReadOneBlockImmediately, 581 this, &AppCacheResponseTest::ReadOneBlockImmediately,
582 kNumBlocks - i)); 582 kNumBlocks - i));
583 } 583 }
584 ScheduleNextTask(); 584 ScheduleNextTask();
585 } 585 }
586 586
587 void ReadOneBlockImmediately(int block_number) { 587 void ReadOneBlockImmediately(int block_number) {
588 PushNextTaskAsImmediate(NewRunnableMethod( 588 PushNextTaskAsImmediate(NewRunnableMethod(
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
627 write_callback_was_called_ = false; 627 write_callback_was_called_ = false;
628 WriteOneBlock(5); 628 WriteOneBlock(5);
629 EXPECT_TRUE(writer_->IsWritePending()); 629 EXPECT_TRUE(writer_->IsWritePending());
630 writer_.reset(); 630 writer_.reset();
631 ScheduleNextTask(); 631 ScheduleNextTask();
632 } 632 }
633 633
634 void ReadThenDelete() { 634 void ReadThenDelete() {
635 read_callback_was_called_ = false; 635 read_callback_was_called_ = false;
636 reader_.reset(service_->storage()->CreateResponseReader( 636 reader_.reset(service_->storage()->CreateResponseReader(
637 GURL(), written_response_id_)); 637 GURL(), 0, written_response_id_));
638 ReadResponseBody(new IOBuffer(kBlockSize), kBlockSize); 638 ReadResponseBody(new IOBuffer(kBlockSize), kBlockSize);
639 EXPECT_TRUE(reader_->IsReadPending()); 639 EXPECT_TRUE(reader_->IsReadPending());
640 reader_.reset(); 640 reader_.reset();
641 641
642 // Wait a moment to verify no callbacks. 642 // Wait a moment to verify no callbacks.
643 MessageLoop::current()->PostDelayedTask(FROM_HERE, 643 MessageLoop::current()->PostDelayedTask(FROM_HERE,
644 NewRunnableMethod(this, &AppCacheResponseTest::VerifyNoCallbacks), 644 NewRunnableMethod(this, &AppCacheResponseTest::VerifyNoCallbacks),
645 10); 645 10);
646 } 646 }
647 647
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
715 715
716 TEST_F(AppCacheResponseTest, DeleteWithIOPending) { 716 TEST_F(AppCacheResponseTest, DeleteWithIOPending) {
717 RunTestOnIOThread(&AppCacheResponseTest::DeleteWithIOPending); 717 RunTestOnIOThread(&AppCacheResponseTest::DeleteWithIOPending);
718 } 718 }
719 719
720 } // namespace appcache 720 } // namespace appcache
721 721
722 // AppCacheResponseTest is expected to always live longer than the 722 // AppCacheResponseTest is expected to always live longer than the
723 // runnable methods. This lets us call NewRunnableMethod on its instances. 723 // runnable methods. This lets us call NewRunnableMethod on its instances.
724 DISABLE_RUNNABLE_METHOD_REFCOUNT(appcache::AppCacheResponseTest); 724 DISABLE_RUNNABLE_METHOD_REFCOUNT(appcache::AppCacheResponseTest);
OLDNEW
« no previous file with comments | « webkit/appcache/appcache_response.cc ('k') | webkit/appcache/appcache_service.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698