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

Unified Diff: Source/modules/fetch/FetchBlobDataConsumerHandleTest.cpp

Issue 1265413002: Introduce FetchFormDataConsumerHandle. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 5 years, 4 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: Source/modules/fetch/FetchBlobDataConsumerHandleTest.cpp
diff --git a/Source/modules/fetch/FetchBlobDataConsumerHandleTest.cpp b/Source/modules/fetch/FetchBlobDataConsumerHandleTest.cpp
index 83ac968f6b004d2a2d6c0010a32e6e8e86a8b2fb..c0f1a92fef9d8da3db56c068f9dfe6ec786b128a 100644
--- a/Source/modules/fetch/FetchBlobDataConsumerHandleTest.cpp
+++ b/Source/modules/fetch/FetchBlobDataConsumerHandleTest.cpp
@@ -341,5 +341,41 @@ TEST_F(FetchBlobDataConsumerHandleTest, BodyLoadErrorTest)
EXPECT_EQ(kUnexpectedError, r->result());
}
+TEST_F(FetchBlobDataConsumerHandleTest, drainAsBlobDataHandle)
+{
+ auto factory = new StrictMock<MockLoaderFactory>;
+
+ RefPtr<BlobDataHandle> blobDataHandle = createBlobDataHandle("Once upon a time");
+ OwnPtr<FetchDataConsumerHandle> handle
+ = FetchBlobDataConsumerHandle::create(&document(), blobDataHandle, factory);
+
+ size_t size = 0;
+ EXPECT_EQ(blobDataHandle, handle->obtainReader(nullptr)->drainAsBlobDataHandle());
+ EXPECT_FALSE(handle->obtainReader(nullptr)->drainAsFormData());
+
+ EXPECT_EQ(kDone, handle->obtainReader(nullptr)->read(nullptr, 0, kNone, &size));
+}
+
+TEST_F(FetchBlobDataConsumerHandleTest, drainAsFormData)
+{
+ auto factory = new StrictMock<MockLoaderFactory>;
+
+ RefPtr<BlobDataHandle> blobDataHandle = createBlobDataHandle("Once upon a time");
+ OwnPtr<FetchDataConsumerHandle> handle
+ = FetchBlobDataConsumerHandle::create(&document(), blobDataHandle, factory);
+
+ RefPtr<FormData> formData = handle->obtainReader(nullptr)->drainAsFormData();
+ ASSERT_TRUE(formData);
+ EXPECT_TRUE(formData->hasOneRef());
+ ASSERT_EQ(1u, formData->elements().size());
+ EXPECT_EQ(FormDataElement::encodedBlob, formData->elements()[0].m_type);
+ EXPECT_EQ(blobDataHandle->uuid(), formData->elements()[0].m_blobUUID);
+ EXPECT_EQ(blobDataHandle, formData->elements()[0].m_optionalBlobDataHandle);
+
+ EXPECT_FALSE(handle->obtainReader(nullptr)->drainAsBlobDataHandle());
+ size_t size;
+ EXPECT_EQ(kDone, handle->obtainReader(nullptr)->read(nullptr, 0, kNone, &size));
+}
+
} // namespace
} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698