Index: third_party/WebKit/Source/modules/fetch/FetchDataLoaderTest.cpp |
diff --git a/third_party/WebKit/Source/modules/fetch/FetchDataLoaderTest.cpp b/third_party/WebKit/Source/modules/fetch/FetchDataLoaderTest.cpp |
index 169f07182e03932c38b836ce98f59b02d1222fca..6fe70056643752e33713bb255f60c210386d9ca6 100644 |
--- a/third_party/WebKit/Source/modules/fetch/FetchDataLoaderTest.cpp |
+++ b/third_party/WebKit/Source/modules/fetch/FetchDataLoaderTest.cpp |
@@ -4,6 +4,7 @@ |
#include "modules/fetch/FetchDataLoader.h" |
+#include "modules/fetch/BytesConsumerForDataConsumerHandle.h" |
#include "modules/fetch/DataConsumerHandleTestUtil.h" |
#include "testing/gmock/include/gmock/gmock.h" |
#include "testing/gtest/include/gtest/gtest.h" |
@@ -26,15 +27,16 @@ using MockFetchDataLoaderClient = DataConsumerHandleTestUtil::MockFetchDataLoade |
using MockHandle = DataConsumerHandleTestUtil::MockFetchDataConsumerHandle; |
using MockReader = DataConsumerHandleTestUtil::MockFetchDataConsumerReader; |
-const WebDataConsumerHandle::Result kOk = WebDataConsumerHandle::Ok; |
-const WebDataConsumerHandle::Result kUnexpectedError = WebDataConsumerHandle::UnexpectedError; |
-const WebDataConsumerHandle::Result kDone = WebDataConsumerHandle::Done; |
-const WebDataConsumerHandle::Flags kNone = WebDataConsumerHandle::FlagNone; |
-const FetchDataConsumerHandle::Reader::BlobSizePolicy kDisallowBlobWithInvalidSize = FetchDataConsumerHandle::Reader::DisallowBlobWithInvalidSize; |
+constexpr WebDataConsumerHandle::Result kOk = WebDataConsumerHandle::Ok; |
+constexpr WebDataConsumerHandle::Result kUnexpectedError = WebDataConsumerHandle::UnexpectedError; |
+constexpr WebDataConsumerHandle::Result kShouldWait = WebDataConsumerHandle::ShouldWait; |
+constexpr WebDataConsumerHandle::Result kDone = WebDataConsumerHandle::Done; |
+constexpr WebDataConsumerHandle::Flags kNone = WebDataConsumerHandle::FlagNone; |
+constexpr FetchDataConsumerHandle::Reader::BlobSizePolicy kDisallowBlobWithInvalidSize = FetchDataConsumerHandle::Reader::DisallowBlobWithInvalidSize; |
-const char kQuickBrownFox[] = "Quick brown fox"; |
-const size_t kQuickBrownFoxLength = 15; |
-const size_t kQuickBrownFoxLengthWithTerminatingNull = 16; |
+constexpr char kQuickBrownFox[] = "Quick brown fox"; |
+constexpr size_t kQuickBrownFoxLength = 15; |
+constexpr size_t kQuickBrownFoxLengthWithTerminatingNull = 16; |
TEST(FetchDataLoaderTest, LoadAsBlob) |
{ |
@@ -54,7 +56,9 @@ TEST(FetchDataLoaderTest, LoadAsBlob) |
EXPECT_CALL(checkpoint, Call(1)); |
EXPECT_CALL(*handle, obtainFetchDataReader(_)).WillOnce(DoAll(SaveArg<0>(&client), Return(ByMove(WTF::wrapUnique(reader))))); |
EXPECT_CALL(*reader, drainAsBlobDataHandle(kDisallowBlobWithInvalidSize)).WillOnce(Return(nullptr)); |
+ EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(DoAll(SetArgPointee<0>(nullptr), SetArgPointee<2>(0), Return(kShouldWait))); |
EXPECT_CALL(checkpoint, Call(2)); |
+ EXPECT_CALL(*reader, read(nullptr, kNone, 0, _)).WillOnce(DoAll(SetArgPointee<3>(0), Return(kShouldWait))); |
EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(DoAll(SetArgPointee<0>(static_cast<const void*>(kQuickBrownFox)), SetArgPointee<2>(kQuickBrownFoxLengthWithTerminatingNull), Return(kOk))); |
EXPECT_CALL(*reader, endRead(kQuickBrownFoxLengthWithTerminatingNull)).WillOnce(Return(kOk)); |
EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(Return(kDone)); |
@@ -64,7 +68,7 @@ TEST(FetchDataLoaderTest, LoadAsBlob) |
EXPECT_CALL(checkpoint, Call(4)); |
checkpoint.Call(1); |
- fetchDataLoader->start(handle.get(), fetchDataLoaderClient); |
+ fetchDataLoader->start(new BytesConsumerForDataConsumerHandle(std::move(handle)), fetchDataLoaderClient); |
checkpoint.Call(2); |
ASSERT_TRUE(client); |
client->didGetReadable(); |
@@ -94,7 +98,9 @@ TEST(FetchDataLoaderTest, LoadAsBlobFailed) |
EXPECT_CALL(checkpoint, Call(1)); |
EXPECT_CALL(*handle, obtainFetchDataReader(_)).WillOnce(DoAll(SaveArg<0>(&client), Return(ByMove(WTF::wrapUnique(reader))))); |
EXPECT_CALL(*reader, drainAsBlobDataHandle(kDisallowBlobWithInvalidSize)).WillOnce(Return(nullptr)); |
+ EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(DoAll(SetArgPointee<0>(nullptr), SetArgPointee<2>(0), Return(kShouldWait))); |
EXPECT_CALL(checkpoint, Call(2)); |
+ EXPECT_CALL(*reader, read(nullptr, kNone, 0, _)).WillOnce(DoAll(SetArgPointee<3>(0), Return(kShouldWait))); |
EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(DoAll(SetArgPointee<0>(static_cast<const void*>(kQuickBrownFox)), SetArgPointee<2>(kQuickBrownFoxLengthWithTerminatingNull), Return(kOk))); |
EXPECT_CALL(*reader, endRead(kQuickBrownFoxLengthWithTerminatingNull)).WillOnce(Return(kOk)); |
EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(Return(kUnexpectedError)); |
@@ -104,7 +110,7 @@ TEST(FetchDataLoaderTest, LoadAsBlobFailed) |
EXPECT_CALL(checkpoint, Call(4)); |
checkpoint.Call(1); |
- fetchDataLoader->start(handle.get(), fetchDataLoaderClient); |
+ fetchDataLoader->start(new BytesConsumerForDataConsumerHandle(std::move(handle)), fetchDataLoaderClient); |
checkpoint.Call(2); |
ASSERT_TRUE(client); |
client->didGetReadable(); |
@@ -129,12 +135,13 @@ TEST(FetchDataLoaderTest, LoadAsBlobCancel) |
EXPECT_CALL(checkpoint, Call(1)); |
EXPECT_CALL(*handle, obtainFetchDataReader(_)).WillOnce(Return(ByMove(WTF::wrapUnique(reader)))); |
EXPECT_CALL(*reader, drainAsBlobDataHandle(kDisallowBlobWithInvalidSize)).WillOnce(Return(nullptr)); |
+ EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(DoAll(SetArgPointee<0>(nullptr), SetArgPointee<2>(0), Return(kShouldWait))); |
EXPECT_CALL(checkpoint, Call(2)); |
EXPECT_CALL(*reader, destruct()); |
EXPECT_CALL(checkpoint, Call(3)); |
checkpoint.Call(1); |
- fetchDataLoader->start(handle.get(), fetchDataLoaderClient); |
+ fetchDataLoader->start(new BytesConsumerForDataConsumerHandle(std::move(handle)), fetchDataLoaderClient); |
checkpoint.Call(2); |
fetchDataLoader->cancel(); |
checkpoint.Call(3); |
@@ -168,7 +175,7 @@ TEST(FetchDataLoaderTest, LoadAsBlobViaDrainAsBlobDataHandleWithSameContentType) |
EXPECT_CALL(checkpoint, Call(3)); |
checkpoint.Call(1); |
- fetchDataLoader->start(handle.get(), fetchDataLoaderClient); |
+ fetchDataLoader->start(new BytesConsumerForDataConsumerHandle(std::move(handle)), fetchDataLoaderClient); |
checkpoint.Call(2); |
fetchDataLoader->cancel(); |
checkpoint.Call(3); |
@@ -207,7 +214,7 @@ TEST(FetchDataLoaderTest, LoadAsBlobViaDrainAsBlobDataHandleWithDifferentContent |
EXPECT_CALL(checkpoint, Call(3)); |
checkpoint.Call(1); |
- fetchDataLoader->start(handle.get(), fetchDataLoaderClient); |
+ fetchDataLoader->start(new BytesConsumerForDataConsumerHandle(std::move(handle)), fetchDataLoaderClient); |
checkpoint.Call(2); |
fetchDataLoader->cancel(); |
checkpoint.Call(3); |
@@ -235,7 +242,9 @@ TEST(FetchDataLoaderTest, LoadAsArrayBuffer) |
InSequence s; |
EXPECT_CALL(checkpoint, Call(1)); |
EXPECT_CALL(*handle, obtainFetchDataReader(_)).WillOnce(DoAll(SaveArg<0>(&client), Return(ByMove(WTF::wrapUnique(reader))))); |
+ EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(DoAll(SetArgPointee<0>(nullptr), SetArgPointee<2>(0), Return(kShouldWait))); |
EXPECT_CALL(checkpoint, Call(2)); |
+ EXPECT_CALL(*reader, read(nullptr, kNone, 0, _)).WillOnce(DoAll(SetArgPointee<3>(0), Return(kShouldWait))); |
EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(DoAll(SetArgPointee<0>(static_cast<const void*>(kQuickBrownFox)), SetArgPointee<2>(kQuickBrownFoxLengthWithTerminatingNull), Return(kOk))); |
EXPECT_CALL(*reader, endRead(kQuickBrownFoxLengthWithTerminatingNull)).WillOnce(Return(kOk)); |
EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(Return(kDone)); |
@@ -245,7 +254,7 @@ TEST(FetchDataLoaderTest, LoadAsArrayBuffer) |
EXPECT_CALL(checkpoint, Call(4)); |
checkpoint.Call(1); |
- fetchDataLoader->start(handle.get(), fetchDataLoaderClient); |
+ fetchDataLoader->start(new BytesConsumerForDataConsumerHandle(std::move(handle)), fetchDataLoaderClient); |
checkpoint.Call(2); |
ASSERT_TRUE(client); |
client->didGetReadable(); |
@@ -274,7 +283,9 @@ TEST(FetchDataLoaderTest, LoadAsArrayBufferFailed) |
InSequence s; |
EXPECT_CALL(checkpoint, Call(1)); |
EXPECT_CALL(*handle, obtainFetchDataReader(_)).WillOnce(DoAll(SaveArg<0>(&client), Return(ByMove(WTF::wrapUnique(reader))))); |
+ EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(DoAll(SetArgPointee<0>(nullptr), SetArgPointee<2>(0), Return(kShouldWait))); |
EXPECT_CALL(checkpoint, Call(2)); |
+ EXPECT_CALL(*reader, read(nullptr, kNone, 0, _)).WillOnce(DoAll(SetArgPointee<3>(0), Return(kShouldWait))); |
EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(DoAll(SetArgPointee<0>(static_cast<const void*>(kQuickBrownFox)), SetArgPointee<2>(kQuickBrownFoxLengthWithTerminatingNull), Return(kOk))); |
EXPECT_CALL(*reader, endRead(kQuickBrownFoxLengthWithTerminatingNull)).WillOnce(Return(kOk)); |
EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(Return(kUnexpectedError)); |
@@ -284,7 +295,7 @@ TEST(FetchDataLoaderTest, LoadAsArrayBufferFailed) |
EXPECT_CALL(checkpoint, Call(4)); |
checkpoint.Call(1); |
- fetchDataLoader->start(handle.get(), fetchDataLoaderClient); |
+ fetchDataLoader->start(new BytesConsumerForDataConsumerHandle(std::move(handle)), fetchDataLoaderClient); |
checkpoint.Call(2); |
ASSERT_TRUE(client); |
client->didGetReadable(); |
@@ -307,12 +318,13 @@ TEST(FetchDataLoaderTest, LoadAsArrayBufferCancel) |
InSequence s; |
EXPECT_CALL(checkpoint, Call(1)); |
EXPECT_CALL(*handle, obtainFetchDataReader(_)).WillOnce(Return(ByMove(WTF::wrapUnique(reader)))); |
+ EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(DoAll(SetArgPointee<0>(nullptr), SetArgPointee<2>(0), Return(kShouldWait))); |
EXPECT_CALL(checkpoint, Call(2)); |
EXPECT_CALL(*reader, destruct()); |
EXPECT_CALL(checkpoint, Call(3)); |
checkpoint.Call(1); |
- fetchDataLoader->start(handle.get(), fetchDataLoaderClient); |
+ fetchDataLoader->start(new BytesConsumerForDataConsumerHandle(std::move(handle)), fetchDataLoaderClient); |
checkpoint.Call(2); |
fetchDataLoader->cancel(); |
checkpoint.Call(3); |
@@ -334,7 +346,9 @@ TEST(FetchDataLoaderTest, LoadAsString) |
InSequence s; |
EXPECT_CALL(checkpoint, Call(1)); |
EXPECT_CALL(*handle, obtainFetchDataReader(_)).WillOnce(DoAll(SaveArg<0>(&client), Return(ByMove(WTF::wrapUnique(reader))))); |
+ EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(DoAll(SetArgPointee<0>(nullptr), SetArgPointee<2>(0), Return(kShouldWait))); |
EXPECT_CALL(checkpoint, Call(2)); |
+ EXPECT_CALL(*reader, read(nullptr, kNone, 0, _)).WillOnce(DoAll(SetArgPointee<3>(0), Return(kShouldWait))); |
EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(DoAll(SetArgPointee<0>(static_cast<const void*>(kQuickBrownFox)), SetArgPointee<2>(kQuickBrownFoxLength), Return(kOk))); |
EXPECT_CALL(*reader, endRead(kQuickBrownFoxLength)).WillOnce(Return(kOk)); |
EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(Return(kDone)); |
@@ -344,7 +358,7 @@ TEST(FetchDataLoaderTest, LoadAsString) |
EXPECT_CALL(checkpoint, Call(4)); |
checkpoint.Call(1); |
- fetchDataLoader->start(handle.get(), fetchDataLoaderClient); |
+ fetchDataLoader->start(new BytesConsumerForDataConsumerHandle(std::move(handle)), fetchDataLoaderClient); |
checkpoint.Call(2); |
ASSERT_TRUE(client); |
client->didGetReadable(); |
@@ -369,7 +383,9 @@ TEST(FetchDataLoaderTest, LoadAsStringWithNullBytes) |
InSequence s; |
EXPECT_CALL(checkpoint, Call(1)); |
EXPECT_CALL(*handle, obtainFetchDataReader(_)).WillOnce(DoAll(SaveArg<0>(&client), Return(ByMove(WTF::wrapUnique(reader))))); |
+ EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(DoAll(SetArgPointee<0>(nullptr), SetArgPointee<2>(0), Return(kShouldWait))); |
EXPECT_CALL(checkpoint, Call(2)); |
+ EXPECT_CALL(*reader, read(nullptr, kNone, 0, _)).WillOnce(DoAll(SetArgPointee<3>(0), Return(kShouldWait))); |
EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(DoAll(SetArgPointee<0>(static_cast<const void*>("Quick\0brown\0fox")), SetArgPointee<2>(16), Return(kOk))); |
EXPECT_CALL(*reader, endRead(kQuickBrownFoxLengthWithTerminatingNull)).WillOnce(Return(kOk)); |
EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(Return(kDone)); |
@@ -379,7 +395,7 @@ TEST(FetchDataLoaderTest, LoadAsStringWithNullBytes) |
EXPECT_CALL(checkpoint, Call(4)); |
checkpoint.Call(1); |
- fetchDataLoader->start(handle.get(), fetchDataLoaderClient); |
+ fetchDataLoader->start(new BytesConsumerForDataConsumerHandle(std::move(handle)), fetchDataLoaderClient); |
checkpoint.Call(2); |
ASSERT_TRUE(client); |
client->didGetReadable(); |
@@ -404,7 +420,9 @@ TEST(FetchDataLoaderTest, LoadAsStringError) |
InSequence s; |
EXPECT_CALL(checkpoint, Call(1)); |
EXPECT_CALL(*handle, obtainFetchDataReader(_)).WillOnce(DoAll(SaveArg<0>(&client), Return(ByMove(WTF::wrapUnique(reader))))); |
+ EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(DoAll(SetArgPointee<0>(nullptr), SetArgPointee<2>(0), Return(kShouldWait))); |
EXPECT_CALL(checkpoint, Call(2)); |
+ EXPECT_CALL(*reader, read(nullptr, kNone, 0, _)).WillOnce(DoAll(SetArgPointee<3>(0), Return(kShouldWait))); |
EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(DoAll(SetArgPointee<0>(static_cast<const void*>(kQuickBrownFox)), SetArgPointee<2>(kQuickBrownFoxLength), Return(kOk))); |
EXPECT_CALL(*reader, endRead(kQuickBrownFoxLength)).WillOnce(Return(kOk)); |
EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(Return(kUnexpectedError)); |
@@ -414,7 +432,7 @@ TEST(FetchDataLoaderTest, LoadAsStringError) |
EXPECT_CALL(checkpoint, Call(4)); |
checkpoint.Call(1); |
- fetchDataLoader->start(handle.get(), fetchDataLoaderClient); |
+ fetchDataLoader->start(new BytesConsumerForDataConsumerHandle(std::move(handle)), fetchDataLoaderClient); |
checkpoint.Call(2); |
ASSERT_TRUE(client); |
client->didGetReadable(); |
@@ -438,12 +456,13 @@ TEST(FetchDataLoaderTest, LoadAsStringCancel) |
InSequence s; |
EXPECT_CALL(checkpoint, Call(1)); |
EXPECT_CALL(*handle, obtainFetchDataReader(_)).WillOnce(Return(ByMove(WTF::wrapUnique(reader)))); |
+ EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(DoAll(SetArgPointee<0>(nullptr), SetArgPointee<2>(0), Return(kShouldWait))); |
EXPECT_CALL(checkpoint, Call(2)); |
EXPECT_CALL(*reader, destruct()); |
EXPECT_CALL(checkpoint, Call(3)); |
checkpoint.Call(1); |
- fetchDataLoader->start(handle.get(), fetchDataLoaderClient); |
+ fetchDataLoader->start(new BytesConsumerForDataConsumerHandle(std::move(handle)), fetchDataLoaderClient); |
checkpoint.Call(2); |
fetchDataLoader->cancel(); |
checkpoint.Call(3); |