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

Unified Diff: blimp/net/blob_channel/blob_channel_sender_unittest.cc

Issue 2056993003: Add Mojo IPC for seeding new Renderer with Browser's cached blob state. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@blobchannel-master
Patch Set: Mojo mapz Created 4 years, 6 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 side-by-side diff with in-line comments
Download patch
Index: blimp/net/blob_channel/blob_channel_sender_unittest.cc
diff --git a/blimp/net/blob_channel/blob_channel_sender_unittest.cc b/blimp/net/blob_channel/blob_channel_sender_unittest.cc
index accf966a48f3344816add8497a7028a116e793c2..ac655258224b411d927e6756d07b5a88755021e5 100644
--- a/blimp/net/blob_channel/blob_channel_sender_unittest.cc
+++ b/blimp/net/blob_channel/blob_channel_sender_unittest.cc
@@ -6,20 +6,23 @@
#include <memory>
#include "base/memory/ptr_util.h"
+#include "blimp/common/blob_cache/id_util.h"
#include "blimp/common/blob_cache/mock_blob_cache.h"
#include "blimp/net/blob_channel/blob_channel_sender_impl.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
-namespace blimp {
-namespace {
-
using testing::_;
using testing::Pointee;
using testing::Return;
+using testing::UnorderedElementsAre;
+
+namespace blimp {
+namespace {
const char kBlobId[] = "blob-1";
const char kBlobPayload[] = "blob-1-payload";
+const char kBlobId2[] = "blob-2";
// Helper function for creating a cache payload vector from a string.
BlobDataPtr CreatePayload(const std::string& input) {
@@ -54,19 +57,19 @@ class BlobChannelSenderTest : public testing::Test {
std::unique_ptr<BlobChannelSender> blob_sender_;
};
-TEST_F(BlobChannelSenderTest, TestPutBlob) {
+TEST_F(BlobChannelSenderTest, PutBlob) {
EXPECT_CALL(*mock_cache_,
Put(kBlobId, BlobDataEqual(CreatePayload(kBlobPayload))));
EXPECT_CALL(*mock_cache_, Contains(kBlobId)).WillOnce(Return(false));
blob_sender_->PutBlob(kBlobId, CreatePayload(kBlobPayload));
}
-TEST_F(BlobChannelSenderTest, TestPutBlobDuplicate) {
+TEST_F(BlobChannelSenderTest, PutBlobDuplicate) {
EXPECT_CALL(*mock_cache_, Contains(kBlobId)).WillOnce(Return(true));
blob_sender_->PutBlob(kBlobId, CreatePayload(kBlobPayload));
}
-TEST_F(BlobChannelSenderTest, TestPush) {
+TEST_F(BlobChannelSenderTest, Push) {
auto payload = CreatePayload(kBlobPayload);
EXPECT_CALL(*mock_delegate_, DeliverBlob(kBlobId, BlobDataEqual(payload)));
EXPECT_CALL(*mock_cache_, Contains(kBlobId))
@@ -78,5 +81,32 @@ TEST_F(BlobChannelSenderTest, TestPush) {
blob_sender_->DeliverBlob(kBlobId);
}
+TEST_F(BlobChannelSenderTest, GetCachedBlobIds) {
+ std::string blob_id1 = CalculateBlobId(kBlobId);
+ std::string blob_id2 = CalculateBlobId(kBlobId2);
+ BlobDataPtr blob_payload1 = CreatePayload(kBlobPayload);
+
+ EXPECT_CALL(*mock_cache_, Contains(blob_id1)).WillOnce(Return(true));
+ EXPECT_CALL(*mock_cache_, Get(blob_id1)).WillOnce(Return(blob_payload1));
+
+ std::vector<BlobId> cache_state;
+ cache_state.push_back(blob_id1);
+ cache_state.push_back(blob_id2);
+ EXPECT_CALL(*mock_cache_, GetCachedBlobIds()).WillOnce(Return(cache_state));
+
+ // Mark one of the blobs as delivered.
+ EXPECT_CALL(*mock_delegate_,
+ DeliverBlob(blob_id1, BlobDataEqual(blob_payload1)));
+ blob_sender_->DeliverBlob(blob_id1);
Wez 2016/07/01 00:30:21 nit: It's strange to group these as a single logic
Kevin M 2016/07/18 16:58:16 Done.
+
+ std::vector<BlobChannelSender::CacheStateEntry> actual =
+ blob_sender_->GetCachedBlobIds();
+ EXPECT_EQ(2u, actual.size());
+ EXPECT_EQ(blob_id1, actual[0].id);
+ EXPECT_TRUE(actual[0].was_delivered);
+ EXPECT_EQ(blob_id2, actual[1].id);
+ EXPECT_FALSE(actual[1].was_delivered);
+}
+
} // namespace
} // namespace blimp

Powered by Google App Engine
This is Rietveld 408576698