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

Unified Diff: content/browser/fileapi/blob_storage_context_unittest.cc

Issue 810403004: [Storage] Blob Storage Refactoring pt 1 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed copyright Created 5 years, 11 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: content/browser/fileapi/blob_storage_context_unittest.cc
diff --git a/content/browser/fileapi/blob_storage_context_unittest.cc b/content/browser/fileapi/blob_storage_context_unittest.cc
index 6ac1832894c3a22d66d3b1f11b202a40a1ceac7e..dccc86966c2702c2ca418daa222153744019b7d6 100644
--- a/content/browser/fileapi/blob_storage_context_unittest.cc
+++ b/content/browser/fileapi/blob_storage_context_unittest.cc
@@ -9,18 +9,24 @@
#include "base/run_loop.h"
#include "base/time/time.h"
#include "content/browser/fileapi/blob_storage_host.h"
+#include "storage/browser/blob/blob_data_builder.h"
#include "storage/browser/blob/blob_data_handle.h"
+#include "storage/browser/blob/blob_data_snapshot.h"
#include "storage/browser/blob/blob_storage_context.h"
#include "testing/gtest/include/gtest/gtest.h"
+using storage::BlobDataBuilder;
using storage::BlobDataHandle;
+using storage::BlobDataSnapshot;
+using storage::BlobStorageContext;
+using storage::DataElement;
namespace content {
namespace {
void SetupBasicBlob(BlobStorageHost* host, const std::string& id) {
EXPECT_TRUE(host->StartBuildingBlob(id));
- BlobData::Item item;
+ DataElement item;
item.SetToBytes("1", 1);
EXPECT_TRUE(host->AppendBlobDataItem(id, item));
EXPECT_TRUE(host->FinishBuildingBlob(id, "text/plain"));
@@ -66,6 +72,22 @@ TEST(BlobStorageContextTest, IncrementDecrementRef) {
EXPECT_FALSE(host.IncrementBlobRefCount(kId));
}
+TEST(BlobStorageContextTest, CancelBuildingBlob) {
+ BlobStorageContext context;
+ BlobStorageHost host(&context);
+ base::MessageLoop fake_io_message_loop;
+
+ // Build up a basic blob.
+ const std::string kId("id");
+ EXPECT_TRUE(host.StartBuildingBlob(kId));
+ DataElement item;
+ item.SetToBytes("1", 1);
+ EXPECT_TRUE(host.AppendBlobDataItem(kId, item));
+ EXPECT_TRUE(host.CancelBuildingBlob(kId));
+ EXPECT_FALSE(host.FinishBuildingBlob(kId, "text/plain"));
+ EXPECT_TRUE(host.StartBuildingBlob(kId));
+}
+
TEST(BlobStorageContextTest, BlobDataHandle) {
BlobStorageContext context;
BlobStorageHost host(&context);
@@ -111,19 +133,20 @@ TEST(BlobStorageContextTest, CompoundBlobs) {
base::Time::FromString("Tue, 15 Nov 1994, 12:45:26 GMT", &time1);
base::Time::FromString("Mon, 14 Nov 1994, 11:30:49 GMT", &time2);
- scoped_refptr<BlobData> blob_data1(new BlobData(kId1));
+ scoped_ptr<BlobDataBuilder> blob_data1(new BlobDataBuilder(kId1));
blob_data1->AppendData("Data1");
blob_data1->AppendData("Data2");
blob_data1->AppendFile(base::FilePath(FILE_PATH_LITERAL("File1.txt")),
10, 1024, time1);
- scoped_refptr<BlobData> blob_data2(new BlobData(kId2));
+ scoped_ptr<BlobDataBuilder> blob_data2(new BlobDataBuilder(kId2));
blob_data2->AppendData("Data3");
blob_data2->AppendBlob(kId1, 8, 100);
blob_data2->AppendFile(base::FilePath(FILE_PATH_LITERAL("File2.txt")),
0, 20, time2);
- scoped_refptr<BlobData> canonicalized_blob_data2(new BlobData(kId2Prime));
+ scoped_ptr<BlobDataBuilder> canonicalized_blob_data2(
+ new BlobDataBuilder(kId2Prime));
canonicalized_blob_data2->AppendData("Data3");
canonicalized_blob_data2->AppendData("a2___", 2);
canonicalized_blob_data2->AppendFile(
@@ -136,14 +159,18 @@ TEST(BlobStorageContextTest, CompoundBlobs) {
scoped_ptr<BlobDataHandle> blob_data_handle;
// Test a blob referring to only data and a file.
- blob_data_handle = context.AddFinishedBlob(blob_data1.get());
- ASSERT_TRUE(blob_data_handle.get());
- EXPECT_TRUE(*(blob_data_handle->data()) == *blob_data1.get());
+ blob_data_handle = context.AddFinishedBlob(*blob_data1.get());
+ ASSERT_TRUE(blob_data_handle);
+ scoped_ptr<BlobDataSnapshot> data = blob_data_handle->CreateSnapshot();
+ ASSERT_TRUE(blob_data_handle);
+ EXPECT_EQ(*data, *blob_data1);
// Test a blob composed in part with another blob.
- blob_data_handle = context.AddFinishedBlob(blob_data2.get());
- ASSERT_TRUE(blob_data_handle.get());
- EXPECT_TRUE(*(blob_data_handle->data()) == *canonicalized_blob_data2.get());
+ blob_data_handle = context.AddFinishedBlob(*blob_data2.get());
+ data = blob_data_handle->CreateSnapshot();
+ ASSERT_TRUE(blob_data_handle);
+ ASSERT_TRUE(data);
+ EXPECT_EQ(*data, *canonicalized_blob_data2);
blob_data_handle.reset();
{ // Clean up for ASAN
@@ -167,7 +194,8 @@ TEST(BlobStorageContextTest, PublicBlobUrls) {
scoped_ptr<BlobDataHandle> blob_data_handle =
context.GetBlobDataFromPublicURL(kUrl);
ASSERT_TRUE(blob_data_handle.get());
- EXPECT_EQ(kId, blob_data_handle->data()->uuid());
+ EXPECT_EQ(kId, blob_data_handle->uuid());
+ scoped_ptr<BlobDataSnapshot> data = blob_data_handle->CreateSnapshot();
blob_data_handle.reset();
{ // Clean up for ASAN
base::RunLoop run_loop;
@@ -222,7 +250,7 @@ TEST(BlobStorageContextTest, EarlyContextDeletion) {
const std::string kId("id");
GURL kUrl("blob:id");
EXPECT_FALSE(host.StartBuildingBlob(kId));
- BlobData::Item item;
+ DataElement item;
item.SetToBytes("1", 1);
EXPECT_FALSE(host.AppendBlobDataItem(kId, item));
EXPECT_FALSE(host.FinishBuildingBlob(kId, "text/plain"));

Powered by Google App Engine
This is Rietveld 408576698