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()); |
hiroshige
2015/08/12 06:44:48
isSafeToSendToAnotherThread() would be better.
yhirano
2015/08/12 07:43:42
Done.
|
+ 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)); |
+} |
hiroshige
2015/08/12 06:44:48
Can we add tests for drainAs.*() called after 0-by
yhirano
2015/08/12 07:43:42
Done (only for AsBlobDataConsumerHandle with no ar
|
+ |
} // namespace |
} // namespace blink |