| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "modules/fetch/FetchDataLoader.h" | 5 #include "modules/fetch/FetchDataLoader.h" |
| 6 | 6 |
| 7 #include "modules/fetch/DataConsumerHandleTestUtil.h" | 7 #include "modules/fetch/DataConsumerHandleTestUtil.h" |
| 8 #include "testing/gmock/include/gmock/gmock.h" | 8 #include "testing/gmock/include/gmock/gmock.h" |
| 9 #include "testing/gtest/include/gtest/gtest.h" | 9 #include "testing/gtest/include/gtest/gtest.h" |
| 10 #include <memory> | 10 #include <memory> |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 45 | 45 |
| 46 // |reader| will be adopted by |obtainFetchDataReader|. | 46 // |reader| will be adopted by |obtainFetchDataReader|. |
| 47 MockReader* reader = MockReader::create().release(); | 47 MockReader* reader = MockReader::create().release(); |
| 48 | 48 |
| 49 FetchDataLoader* fetchDataLoader = FetchDataLoader::createLoaderAsBlobHandle
("text/test"); | 49 FetchDataLoader* fetchDataLoader = FetchDataLoader::createLoaderAsBlobHandle
("text/test"); |
| 50 MockFetchDataLoaderClient* fetchDataLoaderClient = MockFetchDataLoaderClient
::create(); | 50 MockFetchDataLoaderClient* fetchDataLoaderClient = MockFetchDataLoaderClient
::create(); |
| 51 RefPtr<BlobDataHandle> blobDataHandle; | 51 RefPtr<BlobDataHandle> blobDataHandle; |
| 52 | 52 |
| 53 InSequence s; | 53 InSequence s; |
| 54 EXPECT_CALL(checkpoint, Call(1)); | 54 EXPECT_CALL(checkpoint, Call(1)); |
| 55 EXPECT_CALL(*handle, obtainFetchDataReader(_)).WillOnce(DoAll(SaveArg<0>(&cl
ient), Return(ByMove(WTF::wrapUnique(reader))))); | 55 EXPECT_CALL(*handle, obtainFetchDataReaderMock(_)).WillOnce(DoAll(SaveArg<0>
(&client), Return(ByMove(WTF::wrapUnique(reader))))); |
| 56 EXPECT_CALL(*reader, drainAsBlobDataHandle(kDisallowBlobWithInvalidSize)).Wi
llOnce(Return(nullptr)); | 56 EXPECT_CALL(*reader, drainAsBlobDataHandle(kDisallowBlobWithInvalidSize)).Wi
llOnce(Return(nullptr)); |
| 57 EXPECT_CALL(checkpoint, Call(2)); | 57 EXPECT_CALL(checkpoint, Call(2)); |
| 58 EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(DoAll(SetArgPointee<0>
(static_cast<const void*>(kQuickBrownFox)), SetArgPointee<2>(kQuickBrownFoxLengt
hWithTerminatingNull), Return(kOk))); | 58 EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(DoAll(SetArgPointee<0>
(static_cast<const void*>(kQuickBrownFox)), SetArgPointee<2>(kQuickBrownFoxLengt
hWithTerminatingNull), Return(kOk))); |
| 59 EXPECT_CALL(*reader, endRead(kQuickBrownFoxLengthWithTerminatingNull)).WillO
nce(Return(kOk)); | 59 EXPECT_CALL(*reader, endRead(kQuickBrownFoxLengthWithTerminatingNull)).WillO
nce(Return(kOk)); |
| 60 EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(Return(kDone)); | 60 EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(Return(kDone)); |
| 61 EXPECT_CALL(*reader, destruct()); | 61 EXPECT_CALL(*reader, destruct()); |
| 62 EXPECT_CALL(*fetchDataLoaderClient, didFetchDataLoadedBlobHandleMock(_)).Wil
lOnce(SaveArg<0>(&blobDataHandle)); | 62 EXPECT_CALL(*fetchDataLoaderClient, didFetchDataLoadedBlobHandleMock(_)).Wil
lOnce(SaveArg<0>(&blobDataHandle)); |
| 63 EXPECT_CALL(checkpoint, Call(3)); | 63 EXPECT_CALL(checkpoint, Call(3)); |
| 64 EXPECT_CALL(checkpoint, Call(4)); | 64 EXPECT_CALL(checkpoint, Call(4)); |
| 65 | 65 |
| 66 checkpoint.Call(1); | 66 checkpoint.Call(1); |
| 67 fetchDataLoader->start(handle.get(), fetchDataLoaderClient); | 67 fetchDataLoader->start(handle.get(), fetchDataLoaderClient, getCurrentTaskRu
nner()); |
| 68 checkpoint.Call(2); | 68 checkpoint.Call(2); |
| 69 ASSERT_TRUE(client); | 69 ASSERT_TRUE(client); |
| 70 client->didGetReadable(); | 70 client->didGetReadable(); |
| 71 checkpoint.Call(3); | 71 checkpoint.Call(3); |
| 72 fetchDataLoader->cancel(); | 72 fetchDataLoader->cancel(); |
| 73 checkpoint.Call(4); | 73 checkpoint.Call(4); |
| 74 | 74 |
| 75 ASSERT_TRUE(blobDataHandle); | 75 ASSERT_TRUE(blobDataHandle); |
| 76 EXPECT_EQ(kQuickBrownFoxLengthWithTerminatingNull, blobDataHandle->size()); | 76 EXPECT_EQ(kQuickBrownFoxLengthWithTerminatingNull, blobDataHandle->size()); |
| 77 EXPECT_EQ(String("text/test"), blobDataHandle->type()); | 77 EXPECT_EQ(String("text/test"), blobDataHandle->type()); |
| 78 } | 78 } |
| 79 | 79 |
| 80 TEST(FetchDataLoaderTest, LoadAsBlobFailed) | 80 TEST(FetchDataLoaderTest, LoadAsBlobFailed) |
| 81 { | 81 { |
| 82 WebDataConsumerHandle::Client *client = nullptr; | 82 WebDataConsumerHandle::Client *client = nullptr; |
| 83 Checkpoint checkpoint; | 83 Checkpoint checkpoint; |
| 84 | 84 |
| 85 std::unique_ptr<MockHandle> handle = MockHandle::create(); | 85 std::unique_ptr<MockHandle> handle = MockHandle::create(); |
| 86 | 86 |
| 87 // |reader| is adopted by |obtainFetchDataReader|. | 87 // |reader| is adopted by |obtainFetchDataReader|. |
| 88 MockReader* reader = MockReader::create().release(); | 88 MockReader* reader = MockReader::create().release(); |
| 89 | 89 |
| 90 FetchDataLoader* fetchDataLoader = FetchDataLoader::createLoaderAsBlobHandle
("text/test"); | 90 FetchDataLoader* fetchDataLoader = FetchDataLoader::createLoaderAsBlobHandle
("text/test"); |
| 91 MockFetchDataLoaderClient* fetchDataLoaderClient = MockFetchDataLoaderClient
::create(); | 91 MockFetchDataLoaderClient* fetchDataLoaderClient = MockFetchDataLoaderClient
::create(); |
| 92 | 92 |
| 93 InSequence s; | 93 InSequence s; |
| 94 EXPECT_CALL(checkpoint, Call(1)); | 94 EXPECT_CALL(checkpoint, Call(1)); |
| 95 EXPECT_CALL(*handle, obtainFetchDataReader(_)).WillOnce(DoAll(SaveArg<0>(&cl
ient), Return(ByMove(WTF::wrapUnique(reader))))); | 95 EXPECT_CALL(*handle, obtainFetchDataReaderMock(_)).WillOnce(DoAll(SaveArg<0>
(&client), Return(ByMove(WTF::wrapUnique(reader))))); |
| 96 EXPECT_CALL(*reader, drainAsBlobDataHandle(kDisallowBlobWithInvalidSize)).Wi
llOnce(Return(nullptr)); | 96 EXPECT_CALL(*reader, drainAsBlobDataHandle(kDisallowBlobWithInvalidSize)).Wi
llOnce(Return(nullptr)); |
| 97 EXPECT_CALL(checkpoint, Call(2)); | 97 EXPECT_CALL(checkpoint, Call(2)); |
| 98 EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(DoAll(SetArgPointee<0>
(static_cast<const void*>(kQuickBrownFox)), SetArgPointee<2>(kQuickBrownFoxLengt
hWithTerminatingNull), Return(kOk))); | 98 EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(DoAll(SetArgPointee<0>
(static_cast<const void*>(kQuickBrownFox)), SetArgPointee<2>(kQuickBrownFoxLengt
hWithTerminatingNull), Return(kOk))); |
| 99 EXPECT_CALL(*reader, endRead(kQuickBrownFoxLengthWithTerminatingNull)).WillO
nce(Return(kOk)); | 99 EXPECT_CALL(*reader, endRead(kQuickBrownFoxLengthWithTerminatingNull)).WillO
nce(Return(kOk)); |
| 100 EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(Return(kUnexpectedErro
r)); | 100 EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(Return(kUnexpectedErro
r)); |
| 101 EXPECT_CALL(*reader, destruct()); | 101 EXPECT_CALL(*reader, destruct()); |
| 102 EXPECT_CALL(*fetchDataLoaderClient, didFetchDataLoadFailed()); | 102 EXPECT_CALL(*fetchDataLoaderClient, didFetchDataLoadFailed()); |
| 103 EXPECT_CALL(checkpoint, Call(3)); | 103 EXPECT_CALL(checkpoint, Call(3)); |
| 104 EXPECT_CALL(checkpoint, Call(4)); | 104 EXPECT_CALL(checkpoint, Call(4)); |
| 105 | 105 |
| 106 checkpoint.Call(1); | 106 checkpoint.Call(1); |
| 107 fetchDataLoader->start(handle.get(), fetchDataLoaderClient); | 107 fetchDataLoader->start(handle.get(), fetchDataLoaderClient, getCurrentTaskRu
nner()); |
| 108 checkpoint.Call(2); | 108 checkpoint.Call(2); |
| 109 ASSERT_TRUE(client); | 109 ASSERT_TRUE(client); |
| 110 client->didGetReadable(); | 110 client->didGetReadable(); |
| 111 checkpoint.Call(3); | 111 checkpoint.Call(3); |
| 112 fetchDataLoader->cancel(); | 112 fetchDataLoader->cancel(); |
| 113 checkpoint.Call(4); | 113 checkpoint.Call(4); |
| 114 } | 114 } |
| 115 | 115 |
| 116 TEST(FetchDataLoaderTest, LoadAsBlobCancel) | 116 TEST(FetchDataLoaderTest, LoadAsBlobCancel) |
| 117 { | 117 { |
| 118 Checkpoint checkpoint; | 118 Checkpoint checkpoint; |
| 119 | 119 |
| 120 std::unique_ptr<MockHandle> handle = MockHandle::create(); | 120 std::unique_ptr<MockHandle> handle = MockHandle::create(); |
| 121 | 121 |
| 122 // |reader| will be adopted by |obtainFetchDataReader|. | 122 // |reader| will be adopted by |obtainFetchDataReader|. |
| 123 MockReader* reader = MockReader::create().release(); | 123 MockReader* reader = MockReader::create().release(); |
| 124 | 124 |
| 125 FetchDataLoader* fetchDataLoader = FetchDataLoader::createLoaderAsBlobHandle
("text/test"); | 125 FetchDataLoader* fetchDataLoader = FetchDataLoader::createLoaderAsBlobHandle
("text/test"); |
| 126 MockFetchDataLoaderClient* fetchDataLoaderClient = MockFetchDataLoaderClient
::create(); | 126 MockFetchDataLoaderClient* fetchDataLoaderClient = MockFetchDataLoaderClient
::create(); |
| 127 | 127 |
| 128 InSequence s; | 128 InSequence s; |
| 129 EXPECT_CALL(checkpoint, Call(1)); | 129 EXPECT_CALL(checkpoint, Call(1)); |
| 130 EXPECT_CALL(*handle, obtainFetchDataReader(_)).WillOnce(Return(ByMove(WTF::w
rapUnique(reader)))); | 130 EXPECT_CALL(*handle, obtainFetchDataReaderMock(_)).WillOnce(Return(ByMove(WT
F::wrapUnique(reader)))); |
| 131 EXPECT_CALL(*reader, drainAsBlobDataHandle(kDisallowBlobWithInvalidSize)).Wi
llOnce(Return(nullptr)); | 131 EXPECT_CALL(*reader, drainAsBlobDataHandle(kDisallowBlobWithInvalidSize)).Wi
llOnce(Return(nullptr)); |
| 132 EXPECT_CALL(checkpoint, Call(2)); | 132 EXPECT_CALL(checkpoint, Call(2)); |
| 133 EXPECT_CALL(*reader, destruct()); | 133 EXPECT_CALL(*reader, destruct()); |
| 134 EXPECT_CALL(checkpoint, Call(3)); | 134 EXPECT_CALL(checkpoint, Call(3)); |
| 135 | 135 |
| 136 checkpoint.Call(1); | 136 checkpoint.Call(1); |
| 137 fetchDataLoader->start(handle.get(), fetchDataLoaderClient); | 137 fetchDataLoader->start(handle.get(), fetchDataLoaderClient, getCurrentTaskRu
nner()); |
| 138 checkpoint.Call(2); | 138 checkpoint.Call(2); |
| 139 fetchDataLoader->cancel(); | 139 fetchDataLoader->cancel(); |
| 140 checkpoint.Call(3); | 140 checkpoint.Call(3); |
| 141 } | 141 } |
| 142 | 142 |
| 143 TEST(FetchDataLoaderTest, LoadAsBlobViaDrainAsBlobDataHandleWithSameContentType) | 143 TEST(FetchDataLoaderTest, LoadAsBlobViaDrainAsBlobDataHandleWithSameContentType) |
| 144 { | 144 { |
| 145 std::unique_ptr<BlobData> blobData = BlobData::create(); | 145 std::unique_ptr<BlobData> blobData = BlobData::create(); |
| 146 blobData->appendBytes(kQuickBrownFox, kQuickBrownFoxLengthWithTerminatingNul
l); | 146 blobData->appendBytes(kQuickBrownFox, kQuickBrownFoxLengthWithTerminatingNul
l); |
| 147 blobData->setContentType("text/test"); | 147 blobData->setContentType("text/test"); |
| 148 RefPtr<BlobDataHandle> inputBlobDataHandle = BlobDataHandle::create(std::mov
e(blobData), kQuickBrownFoxLengthWithTerminatingNull); | 148 RefPtr<BlobDataHandle> inputBlobDataHandle = BlobDataHandle::create(std::mov
e(blobData), kQuickBrownFoxLengthWithTerminatingNull); |
| 149 | 149 |
| 150 Checkpoint checkpoint; | 150 Checkpoint checkpoint; |
| 151 | 151 |
| 152 std::unique_ptr<MockHandle> handle = MockHandle::create(); | 152 std::unique_ptr<MockHandle> handle = MockHandle::create(); |
| 153 | 153 |
| 154 // |reader| will be adopted by |obtainFetchDataReader|. | 154 // |reader| will be adopted by |obtainFetchDataReader|. |
| 155 MockReader* reader = MockReader::create().release(); | 155 MockReader* reader = MockReader::create().release(); |
| 156 | 156 |
| 157 FetchDataLoader* fetchDataLoader = FetchDataLoader::createLoaderAsBlobHandle
("text/test"); | 157 FetchDataLoader* fetchDataLoader = FetchDataLoader::createLoaderAsBlobHandle
("text/test"); |
| 158 MockFetchDataLoaderClient* fetchDataLoaderClient = MockFetchDataLoaderClient
::create(); | 158 MockFetchDataLoaderClient* fetchDataLoaderClient = MockFetchDataLoaderClient
::create(); |
| 159 RefPtr<BlobDataHandle> blobDataHandle; | 159 RefPtr<BlobDataHandle> blobDataHandle; |
| 160 | 160 |
| 161 InSequence s; | 161 InSequence s; |
| 162 EXPECT_CALL(checkpoint, Call(1)); | 162 EXPECT_CALL(checkpoint, Call(1)); |
| 163 EXPECT_CALL(*handle, obtainFetchDataReader(_)).WillOnce(Return(ByMove(WTF::w
rapUnique(reader)))); | 163 EXPECT_CALL(*handle, obtainFetchDataReaderMock(_)).WillOnce(Return(ByMove(WT
F::wrapUnique(reader)))); |
| 164 EXPECT_CALL(*reader, drainAsBlobDataHandle(kDisallowBlobWithInvalidSize)).Wi
llOnce(Return(inputBlobDataHandle)); | 164 EXPECT_CALL(*reader, drainAsBlobDataHandle(kDisallowBlobWithInvalidSize)).Wi
llOnce(Return(inputBlobDataHandle)); |
| 165 EXPECT_CALL(*reader, destruct()); | 165 EXPECT_CALL(*reader, destruct()); |
| 166 EXPECT_CALL(*fetchDataLoaderClient, didFetchDataLoadedBlobHandleMock(_)).Wil
lOnce(SaveArg<0>(&blobDataHandle)); | 166 EXPECT_CALL(*fetchDataLoaderClient, didFetchDataLoadedBlobHandleMock(_)).Wil
lOnce(SaveArg<0>(&blobDataHandle)); |
| 167 EXPECT_CALL(checkpoint, Call(2)); | 167 EXPECT_CALL(checkpoint, Call(2)); |
| 168 EXPECT_CALL(checkpoint, Call(3)); | 168 EXPECT_CALL(checkpoint, Call(3)); |
| 169 | 169 |
| 170 checkpoint.Call(1); | 170 checkpoint.Call(1); |
| 171 fetchDataLoader->start(handle.get(), fetchDataLoaderClient); | 171 fetchDataLoader->start(handle.get(), fetchDataLoaderClient, getCurrentTaskRu
nner()); |
| 172 checkpoint.Call(2); | 172 checkpoint.Call(2); |
| 173 fetchDataLoader->cancel(); | 173 fetchDataLoader->cancel(); |
| 174 checkpoint.Call(3); | 174 checkpoint.Call(3); |
| 175 | 175 |
| 176 ASSERT_TRUE(blobDataHandle); | 176 ASSERT_TRUE(blobDataHandle); |
| 177 EXPECT_EQ(inputBlobDataHandle, blobDataHandle); | 177 EXPECT_EQ(inputBlobDataHandle, blobDataHandle); |
| 178 EXPECT_EQ(kQuickBrownFoxLengthWithTerminatingNull, blobDataHandle->size()); | 178 EXPECT_EQ(kQuickBrownFoxLengthWithTerminatingNull, blobDataHandle->size()); |
| 179 EXPECT_EQ(String("text/test"), blobDataHandle->type()); | 179 EXPECT_EQ(String("text/test"), blobDataHandle->type()); |
| 180 } | 180 } |
| 181 | 181 |
| (...skipping 10 matching lines...) Expand all Loading... |
| 192 | 192 |
| 193 // |reader| will be adopted by |obtainFetchDataReader|. | 193 // |reader| will be adopted by |obtainFetchDataReader|. |
| 194 MockReader* reader = MockReader::create().release(); | 194 MockReader* reader = MockReader::create().release(); |
| 195 | 195 |
| 196 FetchDataLoader* fetchDataLoader = FetchDataLoader::createLoaderAsBlobHandle
("text/test"); | 196 FetchDataLoader* fetchDataLoader = FetchDataLoader::createLoaderAsBlobHandle
("text/test"); |
| 197 MockFetchDataLoaderClient* fetchDataLoaderClient = MockFetchDataLoaderClient
::create(); | 197 MockFetchDataLoaderClient* fetchDataLoaderClient = MockFetchDataLoaderClient
::create(); |
| 198 RefPtr<BlobDataHandle> blobDataHandle; | 198 RefPtr<BlobDataHandle> blobDataHandle; |
| 199 | 199 |
| 200 InSequence s; | 200 InSequence s; |
| 201 EXPECT_CALL(checkpoint, Call(1)); | 201 EXPECT_CALL(checkpoint, Call(1)); |
| 202 EXPECT_CALL(*handle, obtainFetchDataReader(_)).WillOnce(Return(ByMove(WTF::w
rapUnique(reader)))); | 202 EXPECT_CALL(*handle, obtainFetchDataReaderMock(_)).WillOnce(Return(ByMove(WT
F::wrapUnique(reader)))); |
| 203 EXPECT_CALL(*reader, drainAsBlobDataHandle(kDisallowBlobWithInvalidSize)).Wi
llOnce(Return(inputBlobDataHandle)); | 203 EXPECT_CALL(*reader, drainAsBlobDataHandle(kDisallowBlobWithInvalidSize)).Wi
llOnce(Return(inputBlobDataHandle)); |
| 204 EXPECT_CALL(*reader, destruct()); | 204 EXPECT_CALL(*reader, destruct()); |
| 205 EXPECT_CALL(*fetchDataLoaderClient, didFetchDataLoadedBlobHandleMock(_)).Wil
lOnce(SaveArg<0>(&blobDataHandle)); | 205 EXPECT_CALL(*fetchDataLoaderClient, didFetchDataLoadedBlobHandleMock(_)).Wil
lOnce(SaveArg<0>(&blobDataHandle)); |
| 206 EXPECT_CALL(checkpoint, Call(2)); | 206 EXPECT_CALL(checkpoint, Call(2)); |
| 207 EXPECT_CALL(checkpoint, Call(3)); | 207 EXPECT_CALL(checkpoint, Call(3)); |
| 208 | 208 |
| 209 checkpoint.Call(1); | 209 checkpoint.Call(1); |
| 210 fetchDataLoader->start(handle.get(), fetchDataLoaderClient); | 210 fetchDataLoader->start(handle.get(), fetchDataLoaderClient, getCurrentTaskRu
nner()); |
| 211 checkpoint.Call(2); | 211 checkpoint.Call(2); |
| 212 fetchDataLoader->cancel(); | 212 fetchDataLoader->cancel(); |
| 213 checkpoint.Call(3); | 213 checkpoint.Call(3); |
| 214 | 214 |
| 215 ASSERT_TRUE(blobDataHandle); | 215 ASSERT_TRUE(blobDataHandle); |
| 216 EXPECT_NE(inputBlobDataHandle, blobDataHandle); | 216 EXPECT_NE(inputBlobDataHandle, blobDataHandle); |
| 217 EXPECT_EQ(kQuickBrownFoxLengthWithTerminatingNull, blobDataHandle->size()); | 217 EXPECT_EQ(kQuickBrownFoxLengthWithTerminatingNull, blobDataHandle->size()); |
| 218 EXPECT_EQ(String("text/test"), blobDataHandle->type()); | 218 EXPECT_EQ(String("text/test"), blobDataHandle->type()); |
| 219 } | 219 } |
| 220 | 220 |
| 221 TEST(FetchDataLoaderTest, LoadAsArrayBuffer) | 221 TEST(FetchDataLoaderTest, LoadAsArrayBuffer) |
| 222 { | 222 { |
| 223 WebDataConsumerHandle::Client *client = nullptr; | 223 WebDataConsumerHandle::Client *client = nullptr; |
| 224 Checkpoint checkpoint; | 224 Checkpoint checkpoint; |
| 225 | 225 |
| 226 std::unique_ptr<MockHandle> handle = MockHandle::create(); | 226 std::unique_ptr<MockHandle> handle = MockHandle::create(); |
| 227 | 227 |
| 228 // |reader| will be adopted by |obtainFetchDataReader|. | 228 // |reader| will be adopted by |obtainFetchDataReader|. |
| 229 MockReader* reader = MockReader::create().release(); | 229 MockReader* reader = MockReader::create().release(); |
| 230 | 230 |
| 231 FetchDataLoader* fetchDataLoader = FetchDataLoader::createLoaderAsArrayBuffe
r(); | 231 FetchDataLoader* fetchDataLoader = FetchDataLoader::createLoaderAsArrayBuffe
r(); |
| 232 MockFetchDataLoaderClient* fetchDataLoaderClient = MockFetchDataLoaderClient
::create(); | 232 MockFetchDataLoaderClient* fetchDataLoaderClient = MockFetchDataLoaderClient
::create(); |
| 233 DOMArrayBuffer* arrayBuffer = nullptr; | 233 DOMArrayBuffer* arrayBuffer = nullptr; |
| 234 | 234 |
| 235 InSequence s; | 235 InSequence s; |
| 236 EXPECT_CALL(checkpoint, Call(1)); | 236 EXPECT_CALL(checkpoint, Call(1)); |
| 237 EXPECT_CALL(*handle, obtainFetchDataReader(_)).WillOnce(DoAll(SaveArg<0>(&cl
ient), Return(ByMove(WTF::wrapUnique(reader))))); | 237 EXPECT_CALL(*handle, obtainFetchDataReaderMock(_)).WillOnce(DoAll(SaveArg<0>
(&client), Return(ByMove(WTF::wrapUnique(reader))))); |
| 238 EXPECT_CALL(checkpoint, Call(2)); | 238 EXPECT_CALL(checkpoint, Call(2)); |
| 239 EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(DoAll(SetArgPointee<0>
(static_cast<const void*>(kQuickBrownFox)), SetArgPointee<2>(kQuickBrownFoxLengt
hWithTerminatingNull), Return(kOk))); | 239 EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(DoAll(SetArgPointee<0>
(static_cast<const void*>(kQuickBrownFox)), SetArgPointee<2>(kQuickBrownFoxLengt
hWithTerminatingNull), Return(kOk))); |
| 240 EXPECT_CALL(*reader, endRead(kQuickBrownFoxLengthWithTerminatingNull)).WillO
nce(Return(kOk)); | 240 EXPECT_CALL(*reader, endRead(kQuickBrownFoxLengthWithTerminatingNull)).WillO
nce(Return(kOk)); |
| 241 EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(Return(kDone)); | 241 EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(Return(kDone)); |
| 242 EXPECT_CALL(*reader, destruct()); | 242 EXPECT_CALL(*reader, destruct()); |
| 243 EXPECT_CALL(*fetchDataLoaderClient, didFetchDataLoadedArrayBufferMock(_)).Wi
llOnce(SaveArg<0>(&arrayBuffer)); | 243 EXPECT_CALL(*fetchDataLoaderClient, didFetchDataLoadedArrayBufferMock(_)).Wi
llOnce(SaveArg<0>(&arrayBuffer)); |
| 244 EXPECT_CALL(checkpoint, Call(3)); | 244 EXPECT_CALL(checkpoint, Call(3)); |
| 245 EXPECT_CALL(checkpoint, Call(4)); | 245 EXPECT_CALL(checkpoint, Call(4)); |
| 246 | 246 |
| 247 checkpoint.Call(1); | 247 checkpoint.Call(1); |
| 248 fetchDataLoader->start(handle.get(), fetchDataLoaderClient); | 248 fetchDataLoader->start(handle.get(), fetchDataLoaderClient, getCurrentTaskRu
nner()); |
| 249 checkpoint.Call(2); | 249 checkpoint.Call(2); |
| 250 ASSERT_TRUE(client); | 250 ASSERT_TRUE(client); |
| 251 client->didGetReadable(); | 251 client->didGetReadable(); |
| 252 checkpoint.Call(3); | 252 checkpoint.Call(3); |
| 253 fetchDataLoader->cancel(); | 253 fetchDataLoader->cancel(); |
| 254 checkpoint.Call(4); | 254 checkpoint.Call(4); |
| 255 | 255 |
| 256 ASSERT_TRUE(arrayBuffer); | 256 ASSERT_TRUE(arrayBuffer); |
| 257 ASSERT_EQ(kQuickBrownFoxLengthWithTerminatingNull, arrayBuffer->byteLength()
); | 257 ASSERT_EQ(kQuickBrownFoxLengthWithTerminatingNull, arrayBuffer->byteLength()
); |
| 258 EXPECT_STREQ(kQuickBrownFox, static_cast<const char*>(arrayBuffer->data())); | 258 EXPECT_STREQ(kQuickBrownFox, static_cast<const char*>(arrayBuffer->data())); |
| 259 } | 259 } |
| 260 | 260 |
| 261 TEST(FetchDataLoaderTest, LoadAsArrayBufferFailed) | 261 TEST(FetchDataLoaderTest, LoadAsArrayBufferFailed) |
| 262 { | 262 { |
| 263 WebDataConsumerHandle::Client *client = nullptr; | 263 WebDataConsumerHandle::Client *client = nullptr; |
| 264 Checkpoint checkpoint; | 264 Checkpoint checkpoint; |
| 265 | 265 |
| 266 std::unique_ptr<MockHandle> handle = MockHandle::create(); | 266 std::unique_ptr<MockHandle> handle = MockHandle::create(); |
| 267 | 267 |
| 268 // |reader| will be adopted by |obtainFetchDataReader|. | 268 // |reader| will be adopted by |obtainFetchDataReader|. |
| 269 MockReader* reader = MockReader::create().release(); | 269 MockReader* reader = MockReader::create().release(); |
| 270 | 270 |
| 271 FetchDataLoader* fetchDataLoader = FetchDataLoader::createLoaderAsArrayBuffe
r(); | 271 FetchDataLoader* fetchDataLoader = FetchDataLoader::createLoaderAsArrayBuffe
r(); |
| 272 MockFetchDataLoaderClient* fetchDataLoaderClient = MockFetchDataLoaderClient
::create(); | 272 MockFetchDataLoaderClient* fetchDataLoaderClient = MockFetchDataLoaderClient
::create(); |
| 273 | 273 |
| 274 InSequence s; | 274 InSequence s; |
| 275 EXPECT_CALL(checkpoint, Call(1)); | 275 EXPECT_CALL(checkpoint, Call(1)); |
| 276 EXPECT_CALL(*handle, obtainFetchDataReader(_)).WillOnce(DoAll(SaveArg<0>(&cl
ient), Return(ByMove(WTF::wrapUnique(reader))))); | 276 EXPECT_CALL(*handle, obtainFetchDataReaderMock(_)).WillOnce(DoAll(SaveArg<0>
(&client), Return(ByMove(WTF::wrapUnique(reader))))); |
| 277 EXPECT_CALL(checkpoint, Call(2)); | 277 EXPECT_CALL(checkpoint, Call(2)); |
| 278 EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(DoAll(SetArgPointee<0>
(static_cast<const void*>(kQuickBrownFox)), SetArgPointee<2>(kQuickBrownFoxLengt
hWithTerminatingNull), Return(kOk))); | 278 EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(DoAll(SetArgPointee<0>
(static_cast<const void*>(kQuickBrownFox)), SetArgPointee<2>(kQuickBrownFoxLengt
hWithTerminatingNull), Return(kOk))); |
| 279 EXPECT_CALL(*reader, endRead(kQuickBrownFoxLengthWithTerminatingNull)).WillO
nce(Return(kOk)); | 279 EXPECT_CALL(*reader, endRead(kQuickBrownFoxLengthWithTerminatingNull)).WillO
nce(Return(kOk)); |
| 280 EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(Return(kUnexpectedErro
r)); | 280 EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(Return(kUnexpectedErro
r)); |
| 281 EXPECT_CALL(*reader, destruct()); | 281 EXPECT_CALL(*reader, destruct()); |
| 282 EXPECT_CALL(*fetchDataLoaderClient, didFetchDataLoadFailed()); | 282 EXPECT_CALL(*fetchDataLoaderClient, didFetchDataLoadFailed()); |
| 283 EXPECT_CALL(checkpoint, Call(3)); | 283 EXPECT_CALL(checkpoint, Call(3)); |
| 284 EXPECT_CALL(checkpoint, Call(4)); | 284 EXPECT_CALL(checkpoint, Call(4)); |
| 285 | 285 |
| 286 checkpoint.Call(1); | 286 checkpoint.Call(1); |
| 287 fetchDataLoader->start(handle.get(), fetchDataLoaderClient); | 287 fetchDataLoader->start(handle.get(), fetchDataLoaderClient, getCurrentTaskRu
nner()); |
| 288 checkpoint.Call(2); | 288 checkpoint.Call(2); |
| 289 ASSERT_TRUE(client); | 289 ASSERT_TRUE(client); |
| 290 client->didGetReadable(); | 290 client->didGetReadable(); |
| 291 checkpoint.Call(3); | 291 checkpoint.Call(3); |
| 292 fetchDataLoader->cancel(); | 292 fetchDataLoader->cancel(); |
| 293 checkpoint.Call(4); | 293 checkpoint.Call(4); |
| 294 } | 294 } |
| 295 | 295 |
| 296 TEST(FetchDataLoaderTest, LoadAsArrayBufferCancel) | 296 TEST(FetchDataLoaderTest, LoadAsArrayBufferCancel) |
| 297 { | 297 { |
| 298 Checkpoint checkpoint; | 298 Checkpoint checkpoint; |
| 299 | 299 |
| 300 std::unique_ptr<MockHandle> handle = MockHandle::create(); | 300 std::unique_ptr<MockHandle> handle = MockHandle::create(); |
| 301 | 301 |
| 302 // |reader| will be adopted by |obtainFetchDataReader|. | 302 // |reader| will be adopted by |obtainFetchDataReader|. |
| 303 MockReader* reader = MockReader::create().release(); | 303 MockReader* reader = MockReader::create().release(); |
| 304 FetchDataLoader* fetchDataLoader = FetchDataLoader::createLoaderAsArrayBuffe
r(); | 304 FetchDataLoader* fetchDataLoader = FetchDataLoader::createLoaderAsArrayBuffe
r(); |
| 305 MockFetchDataLoaderClient* fetchDataLoaderClient = MockFetchDataLoaderClient
::create(); | 305 MockFetchDataLoaderClient* fetchDataLoaderClient = MockFetchDataLoaderClient
::create(); |
| 306 | 306 |
| 307 InSequence s; | 307 InSequence s; |
| 308 EXPECT_CALL(checkpoint, Call(1)); | 308 EXPECT_CALL(checkpoint, Call(1)); |
| 309 EXPECT_CALL(*handle, obtainFetchDataReader(_)).WillOnce(Return(ByMove(WTF::w
rapUnique(reader)))); | 309 EXPECT_CALL(*handle, obtainFetchDataReaderMock(_)).WillOnce(Return(ByMove(WT
F::wrapUnique(reader)))); |
| 310 EXPECT_CALL(checkpoint, Call(2)); | 310 EXPECT_CALL(checkpoint, Call(2)); |
| 311 EXPECT_CALL(*reader, destruct()); | 311 EXPECT_CALL(*reader, destruct()); |
| 312 EXPECT_CALL(checkpoint, Call(3)); | 312 EXPECT_CALL(checkpoint, Call(3)); |
| 313 | 313 |
| 314 checkpoint.Call(1); | 314 checkpoint.Call(1); |
| 315 fetchDataLoader->start(handle.get(), fetchDataLoaderClient); | 315 fetchDataLoader->start(handle.get(), fetchDataLoaderClient, getCurrentTaskRu
nner()); |
| 316 checkpoint.Call(2); | 316 checkpoint.Call(2); |
| 317 fetchDataLoader->cancel(); | 317 fetchDataLoader->cancel(); |
| 318 checkpoint.Call(3); | 318 checkpoint.Call(3); |
| 319 } | 319 } |
| 320 | 320 |
| 321 TEST(FetchDataLoaderTest, LoadAsString) | 321 TEST(FetchDataLoaderTest, LoadAsString) |
| 322 { | 322 { |
| 323 WebDataConsumerHandle::Client *client = nullptr; | 323 WebDataConsumerHandle::Client *client = nullptr; |
| 324 Checkpoint checkpoint; | 324 Checkpoint checkpoint; |
| 325 | 325 |
| 326 std::unique_ptr<MockHandle> handle = MockHandle::create(); | 326 std::unique_ptr<MockHandle> handle = MockHandle::create(); |
| 327 | 327 |
| 328 // |reader| will be adopted by |obtainFetchDataReader|. | 328 // |reader| will be adopted by |obtainFetchDataReader|. |
| 329 MockReader* reader = MockReader::create().release(); | 329 MockReader* reader = MockReader::create().release(); |
| 330 | 330 |
| 331 FetchDataLoader* fetchDataLoader = FetchDataLoader::createLoaderAsString(); | 331 FetchDataLoader* fetchDataLoader = FetchDataLoader::createLoaderAsString(); |
| 332 MockFetchDataLoaderClient* fetchDataLoaderClient = MockFetchDataLoaderClient
::create(); | 332 MockFetchDataLoaderClient* fetchDataLoaderClient = MockFetchDataLoaderClient
::create(); |
| 333 | 333 |
| 334 InSequence s; | 334 InSequence s; |
| 335 EXPECT_CALL(checkpoint, Call(1)); | 335 EXPECT_CALL(checkpoint, Call(1)); |
| 336 EXPECT_CALL(*handle, obtainFetchDataReader(_)).WillOnce(DoAll(SaveArg<0>(&cl
ient), Return(ByMove(WTF::wrapUnique(reader))))); | 336 EXPECT_CALL(*handle, obtainFetchDataReaderMock(_)).WillOnce(DoAll(SaveArg<0>
(&client), Return(ByMove(WTF::wrapUnique(reader))))); |
| 337 EXPECT_CALL(checkpoint, Call(2)); | 337 EXPECT_CALL(checkpoint, Call(2)); |
| 338 EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(DoAll(SetArgPointee<0>
(static_cast<const void*>(kQuickBrownFox)), SetArgPointee<2>(kQuickBrownFoxLengt
h), Return(kOk))); | 338 EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(DoAll(SetArgPointee<0>
(static_cast<const void*>(kQuickBrownFox)), SetArgPointee<2>(kQuickBrownFoxLengt
h), Return(kOk))); |
| 339 EXPECT_CALL(*reader, endRead(kQuickBrownFoxLength)).WillOnce(Return(kOk)); | 339 EXPECT_CALL(*reader, endRead(kQuickBrownFoxLength)).WillOnce(Return(kOk)); |
| 340 EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(Return(kDone)); | 340 EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(Return(kDone)); |
| 341 EXPECT_CALL(*reader, destruct()); | 341 EXPECT_CALL(*reader, destruct()); |
| 342 EXPECT_CALL(*fetchDataLoaderClient, didFetchDataLoadedString(String(kQuickBr
ownFox))); | 342 EXPECT_CALL(*fetchDataLoaderClient, didFetchDataLoadedString(String(kQuickBr
ownFox))); |
| 343 EXPECT_CALL(checkpoint, Call(3)); | 343 EXPECT_CALL(checkpoint, Call(3)); |
| 344 EXPECT_CALL(checkpoint, Call(4)); | 344 EXPECT_CALL(checkpoint, Call(4)); |
| 345 | 345 |
| 346 checkpoint.Call(1); | 346 checkpoint.Call(1); |
| 347 fetchDataLoader->start(handle.get(), fetchDataLoaderClient); | 347 fetchDataLoader->start(handle.get(), fetchDataLoaderClient, getCurrentTaskRu
nner()); |
| 348 checkpoint.Call(2); | 348 checkpoint.Call(2); |
| 349 ASSERT_TRUE(client); | 349 ASSERT_TRUE(client); |
| 350 client->didGetReadable(); | 350 client->didGetReadable(); |
| 351 checkpoint.Call(3); | 351 checkpoint.Call(3); |
| 352 fetchDataLoader->cancel(); | 352 fetchDataLoader->cancel(); |
| 353 checkpoint.Call(4); | 353 checkpoint.Call(4); |
| 354 } | 354 } |
| 355 | 355 |
| 356 TEST(FetchDataLoaderTest, LoadAsStringWithNullBytes) | 356 TEST(FetchDataLoaderTest, LoadAsStringWithNullBytes) |
| 357 { | 357 { |
| 358 WebDataConsumerHandle::Client *client = nullptr; | 358 WebDataConsumerHandle::Client *client = nullptr; |
| 359 Checkpoint checkpoint; | 359 Checkpoint checkpoint; |
| 360 | 360 |
| 361 std::unique_ptr<MockHandle> handle = MockHandle::create(); | 361 std::unique_ptr<MockHandle> handle = MockHandle::create(); |
| 362 | 362 |
| 363 // |reader| will be adopted by |obtainFetchDataReader|. | 363 // |reader| will be adopted by |obtainFetchDataReader|. |
| 364 MockReader* reader = MockReader::create().release(); | 364 MockReader* reader = MockReader::create().release(); |
| 365 | 365 |
| 366 FetchDataLoader* fetchDataLoader = FetchDataLoader::createLoaderAsString(); | 366 FetchDataLoader* fetchDataLoader = FetchDataLoader::createLoaderAsString(); |
| 367 MockFetchDataLoaderClient* fetchDataLoaderClient = MockFetchDataLoaderClient
::create(); | 367 MockFetchDataLoaderClient* fetchDataLoaderClient = MockFetchDataLoaderClient
::create(); |
| 368 | 368 |
| 369 InSequence s; | 369 InSequence s; |
| 370 EXPECT_CALL(checkpoint, Call(1)); | 370 EXPECT_CALL(checkpoint, Call(1)); |
| 371 EXPECT_CALL(*handle, obtainFetchDataReader(_)).WillOnce(DoAll(SaveArg<0>(&cl
ient), Return(ByMove(WTF::wrapUnique(reader))))); | 371 EXPECT_CALL(*handle, obtainFetchDataReaderMock(_)).WillOnce(DoAll(SaveArg<0>
(&client), Return(ByMove(WTF::wrapUnique(reader))))); |
| 372 EXPECT_CALL(checkpoint, Call(2)); | 372 EXPECT_CALL(checkpoint, Call(2)); |
| 373 EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(DoAll(SetArgPointee<0>
(static_cast<const void*>("Quick\0brown\0fox")), SetArgPointee<2>(16), Return(kO
k))); | 373 EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(DoAll(SetArgPointee<0>
(static_cast<const void*>("Quick\0brown\0fox")), SetArgPointee<2>(16), Return(kO
k))); |
| 374 EXPECT_CALL(*reader, endRead(kQuickBrownFoxLengthWithTerminatingNull)).WillO
nce(Return(kOk)); | 374 EXPECT_CALL(*reader, endRead(kQuickBrownFoxLengthWithTerminatingNull)).WillO
nce(Return(kOk)); |
| 375 EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(Return(kDone)); | 375 EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(Return(kDone)); |
| 376 EXPECT_CALL(*reader, destruct()); | 376 EXPECT_CALL(*reader, destruct()); |
| 377 EXPECT_CALL(*fetchDataLoaderClient, didFetchDataLoadedString(String("Quick\0
brown\0fox", 16))); | 377 EXPECT_CALL(*fetchDataLoaderClient, didFetchDataLoadedString(String("Quick\0
brown\0fox", 16))); |
| 378 EXPECT_CALL(checkpoint, Call(3)); | 378 EXPECT_CALL(checkpoint, Call(3)); |
| 379 EXPECT_CALL(checkpoint, Call(4)); | 379 EXPECT_CALL(checkpoint, Call(4)); |
| 380 | 380 |
| 381 checkpoint.Call(1); | 381 checkpoint.Call(1); |
| 382 fetchDataLoader->start(handle.get(), fetchDataLoaderClient); | 382 fetchDataLoader->start(handle.get(), fetchDataLoaderClient, getCurrentTaskRu
nner()); |
| 383 checkpoint.Call(2); | 383 checkpoint.Call(2); |
| 384 ASSERT_TRUE(client); | 384 ASSERT_TRUE(client); |
| 385 client->didGetReadable(); | 385 client->didGetReadable(); |
| 386 checkpoint.Call(3); | 386 checkpoint.Call(3); |
| 387 fetchDataLoader->cancel(); | 387 fetchDataLoader->cancel(); |
| 388 checkpoint.Call(4); | 388 checkpoint.Call(4); |
| 389 } | 389 } |
| 390 | 390 |
| 391 TEST(FetchDataLoaderTest, LoadAsStringError) | 391 TEST(FetchDataLoaderTest, LoadAsStringError) |
| 392 { | 392 { |
| 393 WebDataConsumerHandle::Client *client = nullptr; | 393 WebDataConsumerHandle::Client *client = nullptr; |
| 394 Checkpoint checkpoint; | 394 Checkpoint checkpoint; |
| 395 | 395 |
| 396 std::unique_ptr<MockHandle> handle = MockHandle::create(); | 396 std::unique_ptr<MockHandle> handle = MockHandle::create(); |
| 397 | 397 |
| 398 // |reader| will be adopted by |obtainFetchDataReader|. | 398 // |reader| will be adopted by |obtainFetchDataReader|. |
| 399 MockReader* reader = MockReader::create().release(); | 399 MockReader* reader = MockReader::create().release(); |
| 400 | 400 |
| 401 FetchDataLoader* fetchDataLoader = FetchDataLoader::createLoaderAsString(); | 401 FetchDataLoader* fetchDataLoader = FetchDataLoader::createLoaderAsString(); |
| 402 MockFetchDataLoaderClient* fetchDataLoaderClient = MockFetchDataLoaderClient
::create(); | 402 MockFetchDataLoaderClient* fetchDataLoaderClient = MockFetchDataLoaderClient
::create(); |
| 403 | 403 |
| 404 InSequence s; | 404 InSequence s; |
| 405 EXPECT_CALL(checkpoint, Call(1)); | 405 EXPECT_CALL(checkpoint, Call(1)); |
| 406 EXPECT_CALL(*handle, obtainFetchDataReader(_)).WillOnce(DoAll(SaveArg<0>(&cl
ient), Return(ByMove(WTF::wrapUnique(reader))))); | 406 EXPECT_CALL(*handle, obtainFetchDataReaderMock(_)).WillOnce(DoAll(SaveArg<0>
(&client), Return(ByMove(WTF::wrapUnique(reader))))); |
| 407 EXPECT_CALL(checkpoint, Call(2)); | 407 EXPECT_CALL(checkpoint, Call(2)); |
| 408 EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(DoAll(SetArgPointee<0>
(static_cast<const void*>(kQuickBrownFox)), SetArgPointee<2>(kQuickBrownFoxLengt
h), Return(kOk))); | 408 EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(DoAll(SetArgPointee<0>
(static_cast<const void*>(kQuickBrownFox)), SetArgPointee<2>(kQuickBrownFoxLengt
h), Return(kOk))); |
| 409 EXPECT_CALL(*reader, endRead(kQuickBrownFoxLength)).WillOnce(Return(kOk)); | 409 EXPECT_CALL(*reader, endRead(kQuickBrownFoxLength)).WillOnce(Return(kOk)); |
| 410 EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(Return(kUnexpectedErro
r)); | 410 EXPECT_CALL(*reader, beginRead(_, kNone, _)).WillOnce(Return(kUnexpectedErro
r)); |
| 411 EXPECT_CALL(*reader, destruct()); | 411 EXPECT_CALL(*reader, destruct()); |
| 412 EXPECT_CALL(*fetchDataLoaderClient, didFetchDataLoadFailed()); | 412 EXPECT_CALL(*fetchDataLoaderClient, didFetchDataLoadFailed()); |
| 413 EXPECT_CALL(checkpoint, Call(3)); | 413 EXPECT_CALL(checkpoint, Call(3)); |
| 414 EXPECT_CALL(checkpoint, Call(4)); | 414 EXPECT_CALL(checkpoint, Call(4)); |
| 415 | 415 |
| 416 checkpoint.Call(1); | 416 checkpoint.Call(1); |
| 417 fetchDataLoader->start(handle.get(), fetchDataLoaderClient); | 417 fetchDataLoader->start(handle.get(), fetchDataLoaderClient, getCurrentTaskRu
nner()); |
| 418 checkpoint.Call(2); | 418 checkpoint.Call(2); |
| 419 ASSERT_TRUE(client); | 419 ASSERT_TRUE(client); |
| 420 client->didGetReadable(); | 420 client->didGetReadable(); |
| 421 checkpoint.Call(3); | 421 checkpoint.Call(3); |
| 422 fetchDataLoader->cancel(); | 422 fetchDataLoader->cancel(); |
| 423 checkpoint.Call(4); | 423 checkpoint.Call(4); |
| 424 } | 424 } |
| 425 | 425 |
| 426 TEST(FetchDataLoaderTest, LoadAsStringCancel) | 426 TEST(FetchDataLoaderTest, LoadAsStringCancel) |
| 427 { | 427 { |
| 428 Checkpoint checkpoint; | 428 Checkpoint checkpoint; |
| 429 | 429 |
| 430 std::unique_ptr<MockHandle> handle = MockHandle::create(); | 430 std::unique_ptr<MockHandle> handle = MockHandle::create(); |
| 431 | 431 |
| 432 // |reader| will be adopted by |obtainFetchDataReader|. | 432 // |reader| will be adopted by |obtainFetchDataReader|. |
| 433 MockReader* reader = MockReader::create().release(); | 433 MockReader* reader = MockReader::create().release(); |
| 434 | 434 |
| 435 FetchDataLoader* fetchDataLoader = FetchDataLoader::createLoaderAsString(); | 435 FetchDataLoader* fetchDataLoader = FetchDataLoader::createLoaderAsString(); |
| 436 MockFetchDataLoaderClient* fetchDataLoaderClient = MockFetchDataLoaderClient
::create(); | 436 MockFetchDataLoaderClient* fetchDataLoaderClient = MockFetchDataLoaderClient
::create(); |
| 437 | 437 |
| 438 InSequence s; | 438 InSequence s; |
| 439 EXPECT_CALL(checkpoint, Call(1)); | 439 EXPECT_CALL(checkpoint, Call(1)); |
| 440 EXPECT_CALL(*handle, obtainFetchDataReader(_)).WillOnce(Return(ByMove(WTF::w
rapUnique(reader)))); | 440 EXPECT_CALL(*handle, obtainFetchDataReaderMock(_)).WillOnce(Return(ByMove(WT
F::wrapUnique(reader)))); |
| 441 EXPECT_CALL(checkpoint, Call(2)); | 441 EXPECT_CALL(checkpoint, Call(2)); |
| 442 EXPECT_CALL(*reader, destruct()); | 442 EXPECT_CALL(*reader, destruct()); |
| 443 EXPECT_CALL(checkpoint, Call(3)); | 443 EXPECT_CALL(checkpoint, Call(3)); |
| 444 | 444 |
| 445 checkpoint.Call(1); | 445 checkpoint.Call(1); |
| 446 fetchDataLoader->start(handle.get(), fetchDataLoaderClient); | 446 fetchDataLoader->start(handle.get(), fetchDataLoaderClient, getCurrentTaskRu
nner()); |
| 447 checkpoint.Call(2); | 447 checkpoint.Call(2); |
| 448 fetchDataLoader->cancel(); | 448 fetchDataLoader->cancel(); |
| 449 checkpoint.Call(3); | 449 checkpoint.Call(3); |
| 450 } | 450 } |
| 451 | 451 |
| 452 } // namespace | 452 } // namespace |
| 453 | 453 |
| 454 } // namespace blink | 454 } // namespace blink |
| OLD | NEW |