Chromium Code Reviews| 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 |