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

Side by Side Diff: content/browser/blob_storage/blob_async_builder_host_unittest.cc

Issue 1853333003: [BlobAsync] Faster shortcuttin, make renderer controller leaky & alive. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: comment Created 4 years, 8 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
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "storage/browser/blob/blob_async_builder_host.h" 5 #include "storage/browser/blob/blob_async_builder_host.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 #include <string.h> 9 #include <string.h>
10 10
(...skipping 508 matching lines...) Expand 10 before | Expand all | Expand 10 after
519 {kBlob1}, &context_)); 519 {kBlob1}, &context_));
520 EXPECT_EQ(BlobTransportResult::DONE, 520 EXPECT_EQ(BlobTransportResult::DONE,
521 host_.RegisterBlobUUID(kBlob2, kContentType, kContentDisposition, 521 host_.RegisterBlobUUID(kBlob2, kContentType, kContentDisposition,
522 {kGoodBlob}, &context_)); 522 {kGoodBlob}, &context_));
523 EXPECT_EQ(BlobTransportResult::DONE, 523 EXPECT_EQ(BlobTransportResult::DONE,
524 host_.RegisterBlobUUID(kBlob3, kContentType, kContentDisposition, 524 host_.RegisterBlobUUID(kBlob3, kContentType, kContentDisposition,
525 std::set<std::string>(), &context_)); 525 std::set<std::string>(), &context_));
526 526
527 // The first blob shouldn't be building anymore. 527 // The first blob shouldn't be building anymore.
528 EXPECT_FALSE(host_.IsBeingBuilt(kBlob1)); 528 EXPECT_FALSE(host_.IsBeingBuilt(kBlob1));
529 // Test we get BAD_IPC.
530 std::vector<DataElement> descriptions;
531 AddShortcutMemoryItem(2, &descriptions);
532 DataElement element;
533 element.SetToBlob(kBlob1);
534 descriptions.push_back(element);
535 EXPECT_EQ(BlobTransportResult::BAD_IPC,
536 host_.StartBuildingBlob(
537 kBlob1, descriptions, 2, &context_,
538 base::Bind(&BlobAsyncBuilderHostTest::RequestMemoryCallback,
539 base::Unretained(this))));
540 529
541 // Try to finish the second one, without a reference to the first. 530 // Try to finish the second one, without a reference to the first.
542 descriptions.clear(); 531 std::vector<DataElement> descriptions;
543 AddShortcutMemoryItem(2, &descriptions); 532 AddShortcutMemoryItem(2, &descriptions);
544 EXPECT_EQ(BlobTransportResult::BAD_IPC, 533 EXPECT_EQ(BlobTransportResult::BAD_IPC,
545 host_.StartBuildingBlob( 534 host_.StartBuildingBlob(
546 kBlob2, descriptions, 2, &context_, 535 kBlob2, descriptions, 2, &context_,
547 base::Bind(&BlobAsyncBuilderHostTest::RequestMemoryCallback, 536 base::Bind(&BlobAsyncBuilderHostTest::RequestMemoryCallback,
548 base::Unretained(this)))); 537 base::Unretained(this))));
549 EXPECT_FALSE(host_.IsBeingBuilt(kBlob2)); 538 EXPECT_FALSE(host_.IsBeingBuilt(kBlob2));
550 539
551 // Try to finish the third one with the reference we didn't declare earlier. 540 // Try to finish the third one with the reference we didn't declare earlier.
552 descriptions.clear(); 541 descriptions.clear();
553 AddShortcutMemoryItem(2, &descriptions); 542 AddShortcutMemoryItem(2, &descriptions);
543 DataElement element;
554 element.SetToBlob(kGoodBlob); 544 element.SetToBlob(kGoodBlob);
555 descriptions.push_back(element); 545 descriptions.push_back(element);
556 EXPECT_EQ(BlobTransportResult::BAD_IPC, 546 EXPECT_EQ(BlobTransportResult::BAD_IPC,
557 host_.StartBuildingBlob( 547 host_.StartBuildingBlob(
558 kBlob3, descriptions, 2, &context_, 548 kBlob3, descriptions, 2, &context_,
559 base::Bind(&BlobAsyncBuilderHostTest::RequestMemoryCallback, 549 base::Bind(&BlobAsyncBuilderHostTest::RequestMemoryCallback,
560 base::Unretained(this)))); 550 base::Unretained(this))));
561 EXPECT_FALSE(host_.IsBeingBuilt(kBlob3)); 551 EXPECT_FALSE(host_.IsBeingBuilt(kBlob3));
562 }; 552 };
563 553
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
613 host_.RegisterBlobUUID(kBlob1, kContentType, kContentDisposition, 603 host_.RegisterBlobUUID(kBlob1, kContentType, kContentDisposition,
614 std::set<std::string>(), &context_)); 604 std::set<std::string>(), &context_));
615 host_.CancelBuildingBlob(kBlob1, IPCBlobCreationCancelCode::UNKNOWN, 605 host_.CancelBuildingBlob(kBlob1, IPCBlobCreationCancelCode::UNKNOWN,
616 &context_); 606 &context_);
617 EXPECT_EQ(BlobTransportResult::CANCEL_REFERENCED_BLOB_BROKEN, 607 EXPECT_EQ(BlobTransportResult::CANCEL_REFERENCED_BLOB_BROKEN,
618 host_.RegisterBlobUUID(kBlob2, kContentType, kContentDisposition, 608 host_.RegisterBlobUUID(kBlob2, kContentType, kContentDisposition,
619 {kBlob1}, &context_)); 609 {kBlob1}, &context_));
620 EXPECT_FALSE(host_.IsBeingBuilt(kBlob2)); 610 EXPECT_FALSE(host_.IsBeingBuilt(kBlob2));
621 EXPECT_FALSE(IsBeingBuiltInContext(kBlob2)); 611 EXPECT_FALSE(IsBeingBuiltInContext(kBlob2));
622 EXPECT_TRUE(context_.GetBlobDataFromUUID(kBlob2)->IsBroken()); 612 EXPECT_TRUE(context_.GetBlobDataFromUUID(kBlob2)->IsBroken());
623
624 // Try to finish the second one, but we should get a BAD_IPC, as we are no
625 // longer being constructed.
626 std::vector<DataElement> descriptions;
627 AddShortcutMemoryItem(2, &descriptions);
628 DataElement element;
629 element.SetToBlob(kBlob1);
630 descriptions.push_back(element);
631 EXPECT_EQ(BlobTransportResult::BAD_IPC,
632 host_.StartBuildingBlob(
633 kBlob2, descriptions, 2, &context_,
634 base::Bind(&BlobAsyncBuilderHostTest::RequestMemoryCallback,
635 base::Unretained(this))));
636 EXPECT_FALSE(request_called_);
637 EXPECT_TRUE(context_.GetBlobDataFromUUID(kBlob2)->IsBroken());
638 }; 613 };
639 614
640 } // namespace storage 615 } // namespace storage
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698