OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/BodyStreamBuffer.h" | 5 #include "modules/fetch/BodyStreamBuffer.h" |
6 | 6 |
7 #include "core/html/FormData.h" | 7 #include "core/html/FormData.h" |
8 #include "core/testing/DummyPageHolder.h" | 8 #include "core/testing/DummyPageHolder.h" |
9 #include "modules/fetch/DataConsumerHandleTestUtil.h" | 9 #include "modules/fetch/DataConsumerHandleTestUtil.h" |
10 #include "modules/fetch/FetchBlobDataConsumerHandle.h" | 10 #include "modules/fetch/FetchBlobDataConsumerHandle.h" |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
75 if (block.HasCaught()) { | 75 if (block.HasCaught()) { |
76 ADD_FAILURE() << toCoreString(block.Exception()->ToString(getScriptS
tate()->isolate())).utf8().data(); | 76 ADD_FAILURE() << toCoreString(block.Exception()->ToString(getScriptS
tate()->isolate())).utf8().data(); |
77 block.ReThrow(); | 77 block.ReThrow(); |
78 } | 78 } |
79 return r; | 79 return r; |
80 } | 80 } |
81 }; | 81 }; |
82 | 82 |
83 TEST_F(BodyStreamBufferTest, Tee) | 83 TEST_F(BodyStreamBufferTest, Tee) |
84 { | 84 { |
| 85 ScriptState::Scope scope(getScriptState()); |
85 Checkpoint checkpoint; | 86 Checkpoint checkpoint; |
86 MockFetchDataLoaderClient* client1 = MockFetchDataLoaderClient::create(); | 87 MockFetchDataLoaderClient* client1 = MockFetchDataLoaderClient::create(); |
87 MockFetchDataLoaderClient* client2 = MockFetchDataLoaderClient::create(); | 88 MockFetchDataLoaderClient* client2 = MockFetchDataLoaderClient::create(); |
88 | 89 |
89 InSequence s; | 90 InSequence s; |
90 EXPECT_CALL(checkpoint, Call(1)); | 91 EXPECT_CALL(checkpoint, Call(1)); |
91 EXPECT_CALL(*client1, didFetchDataLoadedString(String("hello, world"))); | 92 EXPECT_CALL(*client1, didFetchDataLoadedString(String("hello, world"))); |
92 EXPECT_CALL(checkpoint, Call(2)); | 93 EXPECT_CALL(checkpoint, Call(2)); |
93 EXPECT_CALL(checkpoint, Call(3)); | 94 EXPECT_CALL(checkpoint, Call(3)); |
94 EXPECT_CALL(*client2, didFetchDataLoadedString(String("hello, world"))); | 95 EXPECT_CALL(*client2, didFetchDataLoadedString(String("hello, world"))); |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
167 checkpoint.Call(2); | 168 checkpoint.Call(2); |
168 | 169 |
169 new2->startLoading(FetchDataLoader::createLoaderAsString(), client2); | 170 new2->startLoading(FetchDataLoader::createLoaderAsString(), client2); |
170 checkpoint.Call(3); | 171 checkpoint.Call(3); |
171 testing::runPendingTasks(); | 172 testing::runPendingTasks(); |
172 checkpoint.Call(4); | 173 checkpoint.Call(4); |
173 } | 174 } |
174 | 175 |
175 TEST_F(BodyStreamBufferTest, DrainAsBlobDataHandle) | 176 TEST_F(BodyStreamBufferTest, DrainAsBlobDataHandle) |
176 { | 177 { |
| 178 ScriptState::Scope scope(getScriptState()); |
177 std::unique_ptr<BlobData> data = BlobData::create(); | 179 std::unique_ptr<BlobData> data = BlobData::create(); |
178 data->appendText("hello", false); | 180 data->appendText("hello", false); |
179 auto size = data->length(); | 181 auto size = data->length(); |
180 RefPtr<BlobDataHandle> blobDataHandle = BlobDataHandle::create(std::move(dat
a), size); | 182 RefPtr<BlobDataHandle> blobDataHandle = BlobDataHandle::create(std::move(dat
a), size); |
181 BodyStreamBuffer* buffer = new BodyStreamBuffer(getScriptState(), FetchBlobD
ataConsumerHandle::create(getExecutionContext(), blobDataHandle, new FakeLoaderF
actory)); | 183 BodyStreamBuffer* buffer = new BodyStreamBuffer(getScriptState(), FetchBlobD
ataConsumerHandle::create(getExecutionContext(), blobDataHandle, new FakeLoaderF
actory)); |
182 | 184 |
183 EXPECT_FALSE(buffer->isStreamLocked()); | 185 EXPECT_FALSE(buffer->isStreamLocked()); |
184 EXPECT_FALSE(buffer->isStreamDisturbed()); | 186 EXPECT_FALSE(buffer->isStreamDisturbed()); |
185 EXPECT_FALSE(buffer->hasPendingActivity()); | 187 EXPECT_FALSE(buffer->hasPendingActivity()); |
186 RefPtr<BlobDataHandle> outputBlobDataHandle = buffer->drainAsBlobDataHandle(
FetchDataConsumerHandle::Reader::AllowBlobWithInvalidSize); | 188 RefPtr<BlobDataHandle> outputBlobDataHandle = buffer->drainAsBlobDataHandle(
FetchDataConsumerHandle::Reader::AllowBlobWithInvalidSize); |
187 | 189 |
188 EXPECT_TRUE(buffer->isStreamLocked()); | 190 EXPECT_TRUE(buffer->isStreamLocked()); |
189 EXPECT_TRUE(buffer->isStreamDisturbed()); | 191 EXPECT_TRUE(buffer->isStreamDisturbed()); |
190 EXPECT_FALSE(buffer->hasPendingActivity()); | 192 EXPECT_FALSE(buffer->hasPendingActivity()); |
191 EXPECT_EQ(blobDataHandle, outputBlobDataHandle); | 193 EXPECT_EQ(blobDataHandle, outputBlobDataHandle); |
192 } | 194 } |
193 | 195 |
194 TEST_F(BodyStreamBufferTest, DrainAsBlobDataHandleReturnsNull) | 196 TEST_F(BodyStreamBufferTest, DrainAsBlobDataHandleReturnsNull) |
195 { | 197 { |
| 198 ScriptState::Scope scope(getScriptState()); |
196 // This handle is not drainable. | 199 // This handle is not drainable. |
197 std::unique_ptr<FetchDataConsumerHandle> handle = createFetchDataConsumerHan
dleFromWebHandle(createWaitingDataConsumerHandle()); | 200 std::unique_ptr<FetchDataConsumerHandle> handle = createFetchDataConsumerHan
dleFromWebHandle(createWaitingDataConsumerHandle()); |
198 BodyStreamBuffer* buffer = new BodyStreamBuffer(getScriptState(), std::move(
handle)); | 201 BodyStreamBuffer* buffer = new BodyStreamBuffer(getScriptState(), std::move(
handle)); |
199 | 202 |
200 EXPECT_FALSE(buffer->isStreamLocked()); | 203 EXPECT_FALSE(buffer->isStreamLocked()); |
201 EXPECT_FALSE(buffer->isStreamDisturbed()); | 204 EXPECT_FALSE(buffer->isStreamDisturbed()); |
202 EXPECT_FALSE(buffer->hasPendingActivity()); | 205 EXPECT_FALSE(buffer->hasPendingActivity()); |
203 | 206 |
204 EXPECT_FALSE(buffer->drainAsBlobDataHandle(FetchDataConsumerHandle::Reader::
AllowBlobWithInvalidSize)); | 207 EXPECT_FALSE(buffer->drainAsBlobDataHandle(FetchDataConsumerHandle::Reader::
AllowBlobWithInvalidSize)); |
205 | 208 |
(...skipping 16 matching lines...) Expand all Loading... |
222 EXPECT_FALSE(buffer->drainAsBlobDataHandle(FetchDataConsumerHandle::Reader::
AllowBlobWithInvalidSize)); | 225 EXPECT_FALSE(buffer->drainAsBlobDataHandle(FetchDataConsumerHandle::Reader::
AllowBlobWithInvalidSize)); |
223 | 226 |
224 EXPECT_FALSE(buffer->hasPendingActivity()); | 227 EXPECT_FALSE(buffer->hasPendingActivity()); |
225 EXPECT_FALSE(buffer->isStreamLocked()); | 228 EXPECT_FALSE(buffer->isStreamLocked()); |
226 EXPECT_FALSE(buffer->isStreamDisturbed()); | 229 EXPECT_FALSE(buffer->isStreamDisturbed()); |
227 EXPECT_TRUE(buffer->isStreamReadable()); | 230 EXPECT_TRUE(buffer->isStreamReadable()); |
228 } | 231 } |
229 | 232 |
230 TEST_F(BodyStreamBufferTest, DrainAsFormData) | 233 TEST_F(BodyStreamBufferTest, DrainAsFormData) |
231 { | 234 { |
| 235 ScriptState::Scope scope(getScriptState()); |
232 FormData* data = FormData::create(UTF8Encoding()); | 236 FormData* data = FormData::create(UTF8Encoding()); |
233 data->append("name1", "value1"); | 237 data->append("name1", "value1"); |
234 data->append("name2", "value2"); | 238 data->append("name2", "value2"); |
235 RefPtr<EncodedFormData> inputFormData = data->encodeMultiPartFormData(); | 239 RefPtr<EncodedFormData> inputFormData = data->encodeMultiPartFormData(); |
236 | 240 |
237 BodyStreamBuffer* buffer = new BodyStreamBuffer(getScriptState(), FetchFormD
ataConsumerHandle::create(getExecutionContext(), inputFormData)); | 241 BodyStreamBuffer* buffer = new BodyStreamBuffer(getScriptState(), FetchFormD
ataConsumerHandle::create(getExecutionContext(), inputFormData)); |
238 | 242 |
239 EXPECT_FALSE(buffer->isStreamLocked()); | 243 EXPECT_FALSE(buffer->isStreamLocked()); |
240 EXPECT_FALSE(buffer->isStreamDisturbed()); | 244 EXPECT_FALSE(buffer->isStreamDisturbed()); |
241 EXPECT_FALSE(buffer->hasPendingActivity()); | 245 EXPECT_FALSE(buffer->hasPendingActivity()); |
242 RefPtr<EncodedFormData> outputFormData = buffer->drainAsFormData(); | 246 RefPtr<EncodedFormData> outputFormData = buffer->drainAsFormData(); |
243 | 247 |
244 EXPECT_TRUE(buffer->isStreamLocked()); | 248 EXPECT_TRUE(buffer->isStreamLocked()); |
245 EXPECT_TRUE(buffer->isStreamDisturbed()); | 249 EXPECT_TRUE(buffer->isStreamDisturbed()); |
246 EXPECT_FALSE(buffer->hasPendingActivity()); | 250 EXPECT_FALSE(buffer->hasPendingActivity()); |
247 EXPECT_EQ(outputFormData->flattenToString(), inputFormData->flattenToString(
)); | 251 EXPECT_EQ(outputFormData->flattenToString(), inputFormData->flattenToString(
)); |
248 } | 252 } |
249 | 253 |
250 TEST_F(BodyStreamBufferTest, DrainAsFormDataReturnsNull) | 254 TEST_F(BodyStreamBufferTest, DrainAsFormDataReturnsNull) |
251 { | 255 { |
| 256 ScriptState::Scope scope(getScriptState()); |
252 // This handle is not drainable. | 257 // This handle is not drainable. |
253 std::unique_ptr<FetchDataConsumerHandle> handle = createFetchDataConsumerHan
dleFromWebHandle(createWaitingDataConsumerHandle()); | 258 std::unique_ptr<FetchDataConsumerHandle> handle = createFetchDataConsumerHan
dleFromWebHandle(createWaitingDataConsumerHandle()); |
254 BodyStreamBuffer* buffer = new BodyStreamBuffer(getScriptState(), std::move(
handle)); | 259 BodyStreamBuffer* buffer = new BodyStreamBuffer(getScriptState(), std::move(
handle)); |
255 | 260 |
256 EXPECT_FALSE(buffer->isStreamLocked()); | 261 EXPECT_FALSE(buffer->isStreamLocked()); |
257 EXPECT_FALSE(buffer->isStreamDisturbed()); | 262 EXPECT_FALSE(buffer->isStreamDisturbed()); |
258 EXPECT_FALSE(buffer->hasPendingActivity()); | 263 EXPECT_FALSE(buffer->hasPendingActivity()); |
259 | 264 |
260 EXPECT_FALSE(buffer->drainAsFormData()); | 265 EXPECT_FALSE(buffer->drainAsFormData()); |
261 | 266 |
(...skipping 16 matching lines...) Expand all Loading... |
278 EXPECT_FALSE(buffer->drainAsFormData()); | 283 EXPECT_FALSE(buffer->drainAsFormData()); |
279 | 284 |
280 EXPECT_FALSE(buffer->hasPendingActivity()); | 285 EXPECT_FALSE(buffer->hasPendingActivity()); |
281 EXPECT_FALSE(buffer->isStreamLocked()); | 286 EXPECT_FALSE(buffer->isStreamLocked()); |
282 EXPECT_FALSE(buffer->isStreamDisturbed()); | 287 EXPECT_FALSE(buffer->isStreamDisturbed()); |
283 EXPECT_TRUE(buffer->isStreamReadable()); | 288 EXPECT_TRUE(buffer->isStreamReadable()); |
284 } | 289 } |
285 | 290 |
286 TEST_F(BodyStreamBufferTest, LoadBodyStreamBufferAsArrayBuffer) | 291 TEST_F(BodyStreamBufferTest, LoadBodyStreamBufferAsArrayBuffer) |
287 { | 292 { |
| 293 ScriptState::Scope scope(getScriptState()); |
288 Checkpoint checkpoint; | 294 Checkpoint checkpoint; |
289 MockFetchDataLoaderClient* client = MockFetchDataLoaderClient::create(); | 295 MockFetchDataLoaderClient* client = MockFetchDataLoaderClient::create(); |
290 DOMArrayBuffer* arrayBuffer = nullptr; | 296 DOMArrayBuffer* arrayBuffer = nullptr; |
291 | 297 |
292 InSequence s; | 298 InSequence s; |
293 EXPECT_CALL(checkpoint, Call(1)); | 299 EXPECT_CALL(checkpoint, Call(1)); |
294 EXPECT_CALL(*client, didFetchDataLoadedArrayBufferMock(_)).WillOnce(SaveArg<
0>(&arrayBuffer)); | 300 EXPECT_CALL(*client, didFetchDataLoadedArrayBufferMock(_)).WillOnce(SaveArg<
0>(&arrayBuffer)); |
295 EXPECT_CALL(checkpoint, Call(2)); | 301 EXPECT_CALL(checkpoint, Call(2)); |
296 | 302 |
297 std::unique_ptr<ReplayingHandle> handle = ReplayingHandle::create(); | 303 std::unique_ptr<ReplayingHandle> handle = ReplayingHandle::create(); |
(...skipping 12 matching lines...) Expand all Loading... |
310 | 316 |
311 EXPECT_TRUE(buffer->isStreamLocked()); | 317 EXPECT_TRUE(buffer->isStreamLocked()); |
312 EXPECT_TRUE(buffer->isStreamDisturbed()); | 318 EXPECT_TRUE(buffer->isStreamDisturbed()); |
313 EXPECT_FALSE(buffer->hasPendingActivity()); | 319 EXPECT_FALSE(buffer->hasPendingActivity()); |
314 ASSERT_TRUE(arrayBuffer); | 320 ASSERT_TRUE(arrayBuffer); |
315 EXPECT_EQ("hello", String(static_cast<const char*>(arrayBuffer->data()), arr
ayBuffer->byteLength())); | 321 EXPECT_EQ("hello", String(static_cast<const char*>(arrayBuffer->data()), arr
ayBuffer->byteLength())); |
316 } | 322 } |
317 | 323 |
318 TEST_F(BodyStreamBufferTest, LoadBodyStreamBufferAsBlob) | 324 TEST_F(BodyStreamBufferTest, LoadBodyStreamBufferAsBlob) |
319 { | 325 { |
| 326 ScriptState::Scope scope(getScriptState()); |
320 Checkpoint checkpoint; | 327 Checkpoint checkpoint; |
321 MockFetchDataLoaderClient* client = MockFetchDataLoaderClient::create(); | 328 MockFetchDataLoaderClient* client = MockFetchDataLoaderClient::create(); |
322 RefPtr<BlobDataHandle> blobDataHandle; | 329 RefPtr<BlobDataHandle> blobDataHandle; |
323 | 330 |
324 InSequence s; | 331 InSequence s; |
325 EXPECT_CALL(checkpoint, Call(1)); | 332 EXPECT_CALL(checkpoint, Call(1)); |
326 EXPECT_CALL(*client, didFetchDataLoadedBlobHandleMock(_)).WillOnce(SaveArg<0
>(&blobDataHandle)); | 333 EXPECT_CALL(*client, didFetchDataLoadedBlobHandleMock(_)).WillOnce(SaveArg<0
>(&blobDataHandle)); |
327 EXPECT_CALL(checkpoint, Call(2)); | 334 EXPECT_CALL(checkpoint, Call(2)); |
328 | 335 |
329 std::unique_ptr<ReplayingHandle> handle = ReplayingHandle::create(); | 336 std::unique_ptr<ReplayingHandle> handle = ReplayingHandle::create(); |
(...skipping 11 matching lines...) Expand all Loading... |
341 checkpoint.Call(2); | 348 checkpoint.Call(2); |
342 | 349 |
343 EXPECT_TRUE(buffer->isStreamLocked()); | 350 EXPECT_TRUE(buffer->isStreamLocked()); |
344 EXPECT_TRUE(buffer->isStreamDisturbed()); | 351 EXPECT_TRUE(buffer->isStreamDisturbed()); |
345 EXPECT_FALSE(buffer->hasPendingActivity()); | 352 EXPECT_FALSE(buffer->hasPendingActivity()); |
346 EXPECT_EQ(5u, blobDataHandle->size()); | 353 EXPECT_EQ(5u, blobDataHandle->size()); |
347 } | 354 } |
348 | 355 |
349 TEST_F(BodyStreamBufferTest, LoadBodyStreamBufferAsString) | 356 TEST_F(BodyStreamBufferTest, LoadBodyStreamBufferAsString) |
350 { | 357 { |
| 358 ScriptState::Scope scope(getScriptState()); |
351 Checkpoint checkpoint; | 359 Checkpoint checkpoint; |
352 MockFetchDataLoaderClient* client = MockFetchDataLoaderClient::create(); | 360 MockFetchDataLoaderClient* client = MockFetchDataLoaderClient::create(); |
353 | 361 |
354 InSequence s; | 362 InSequence s; |
355 EXPECT_CALL(checkpoint, Call(1)); | 363 EXPECT_CALL(checkpoint, Call(1)); |
356 EXPECT_CALL(*client, didFetchDataLoadedString(String("hello"))); | 364 EXPECT_CALL(*client, didFetchDataLoadedString(String("hello"))); |
357 EXPECT_CALL(checkpoint, Call(2)); | 365 EXPECT_CALL(checkpoint, Call(2)); |
358 | 366 |
359 std::unique_ptr<ReplayingHandle> handle = ReplayingHandle::create(); | 367 std::unique_ptr<ReplayingHandle> handle = ReplayingHandle::create(); |
360 handle->add(Command(Command::Data, "hello")); | 368 handle->add(Command(Command::Data, "hello")); |
361 handle->add(Command(Command::Done)); | 369 handle->add(Command(Command::Done)); |
362 BodyStreamBuffer* buffer = new BodyStreamBuffer(getScriptState(), createFetc
hDataConsumerHandleFromWebHandle(std::move(handle))); | 370 BodyStreamBuffer* buffer = new BodyStreamBuffer(getScriptState(), createFetc
hDataConsumerHandleFromWebHandle(std::move(handle))); |
363 buffer->startLoading(FetchDataLoader::createLoaderAsString(), client); | 371 buffer->startLoading(FetchDataLoader::createLoaderAsString(), client); |
364 | 372 |
365 EXPECT_TRUE(buffer->isStreamLocked()); | 373 EXPECT_TRUE(buffer->isStreamLocked()); |
366 EXPECT_TRUE(buffer->isStreamDisturbed()); | 374 EXPECT_TRUE(buffer->isStreamDisturbed()); |
367 EXPECT_TRUE(buffer->hasPendingActivity()); | 375 EXPECT_TRUE(buffer->hasPendingActivity()); |
368 | 376 |
369 checkpoint.Call(1); | 377 checkpoint.Call(1); |
370 testing::runPendingTasks(); | 378 testing::runPendingTasks(); |
371 checkpoint.Call(2); | 379 checkpoint.Call(2); |
372 | 380 |
373 EXPECT_TRUE(buffer->isStreamLocked()); | 381 EXPECT_TRUE(buffer->isStreamLocked()); |
374 EXPECT_TRUE(buffer->isStreamDisturbed()); | 382 EXPECT_TRUE(buffer->isStreamDisturbed()); |
375 EXPECT_FALSE(buffer->hasPendingActivity()); | 383 EXPECT_FALSE(buffer->hasPendingActivity()); |
376 } | 384 } |
377 | 385 |
378 TEST_F(BodyStreamBufferTest, LoadClosedHandle) | 386 TEST_F(BodyStreamBufferTest, LoadClosedHandle) |
379 { | 387 { |
| 388 ScriptState::Scope scope(getScriptState()); |
380 Checkpoint checkpoint; | 389 Checkpoint checkpoint; |
381 MockFetchDataLoaderClient* client = MockFetchDataLoaderClient::create(); | 390 MockFetchDataLoaderClient* client = MockFetchDataLoaderClient::create(); |
382 | 391 |
383 InSequence s; | 392 InSequence s; |
384 EXPECT_CALL(checkpoint, Call(1)); | 393 EXPECT_CALL(checkpoint, Call(1)); |
385 EXPECT_CALL(*client, didFetchDataLoadedString(String(""))); | 394 EXPECT_CALL(*client, didFetchDataLoadedString(String(""))); |
386 EXPECT_CALL(checkpoint, Call(2)); | 395 EXPECT_CALL(checkpoint, Call(2)); |
387 | 396 |
388 BodyStreamBuffer* buffer = new BodyStreamBuffer(getScriptState(), createFetc
hDataConsumerHandleFromWebHandle(createDoneDataConsumerHandle())); | 397 BodyStreamBuffer* buffer = new BodyStreamBuffer(getScriptState(), createFetc
hDataConsumerHandleFromWebHandle(createDoneDataConsumerHandle())); |
389 | 398 |
(...skipping 14 matching lines...) Expand all Loading... |
404 testing::runPendingTasks(); | 413 testing::runPendingTasks(); |
405 checkpoint.Call(2); | 414 checkpoint.Call(2); |
406 | 415 |
407 EXPECT_TRUE(buffer->isStreamLocked()); | 416 EXPECT_TRUE(buffer->isStreamLocked()); |
408 EXPECT_TRUE(buffer->isStreamDisturbed()); | 417 EXPECT_TRUE(buffer->isStreamDisturbed()); |
409 EXPECT_FALSE(buffer->hasPendingActivity()); | 418 EXPECT_FALSE(buffer->hasPendingActivity()); |
410 } | 419 } |
411 | 420 |
412 TEST_F(BodyStreamBufferTest, LoadErroredHandle) | 421 TEST_F(BodyStreamBufferTest, LoadErroredHandle) |
413 { | 422 { |
| 423 ScriptState::Scope scope(getScriptState()); |
414 Checkpoint checkpoint; | 424 Checkpoint checkpoint; |
415 MockFetchDataLoaderClient* client = MockFetchDataLoaderClient::create(); | 425 MockFetchDataLoaderClient* client = MockFetchDataLoaderClient::create(); |
416 | 426 |
417 InSequence s; | 427 InSequence s; |
418 EXPECT_CALL(checkpoint, Call(1)); | 428 EXPECT_CALL(checkpoint, Call(1)); |
419 EXPECT_CALL(*client, didFetchDataLoadFailed()); | 429 EXPECT_CALL(*client, didFetchDataLoadFailed()); |
420 EXPECT_CALL(checkpoint, Call(2)); | 430 EXPECT_CALL(checkpoint, Call(2)); |
421 | 431 |
422 BodyStreamBuffer* buffer = new BodyStreamBuffer(getScriptState(), createFetc
hDataConsumerHandleFromWebHandle(createUnexpectedErrorDataConsumerHandle())); | 432 BodyStreamBuffer* buffer = new BodyStreamBuffer(getScriptState(), createFetc
hDataConsumerHandleFromWebHandle(createUnexpectedErrorDataConsumerHandle())); |
423 | 433 |
(...skipping 13 matching lines...) Expand all Loading... |
437 testing::runPendingTasks(); | 447 testing::runPendingTasks(); |
438 checkpoint.Call(2); | 448 checkpoint.Call(2); |
439 | 449 |
440 EXPECT_TRUE(buffer->isStreamLocked()); | 450 EXPECT_TRUE(buffer->isStreamLocked()); |
441 EXPECT_TRUE(buffer->isStreamDisturbed()); | 451 EXPECT_TRUE(buffer->isStreamDisturbed()); |
442 EXPECT_FALSE(buffer->hasPendingActivity()); | 452 EXPECT_FALSE(buffer->hasPendingActivity()); |
443 } | 453 } |
444 | 454 |
445 TEST_F(BodyStreamBufferTest, LoaderShouldBeKeptAliveByBodyStreamBuffer) | 455 TEST_F(BodyStreamBufferTest, LoaderShouldBeKeptAliveByBodyStreamBuffer) |
446 { | 456 { |
| 457 ScriptState::Scope scope(getScriptState()); |
447 Checkpoint checkpoint; | 458 Checkpoint checkpoint; |
448 MockFetchDataLoaderClient* client = MockFetchDataLoaderClient::create(); | 459 MockFetchDataLoaderClient* client = MockFetchDataLoaderClient::create(); |
449 | 460 |
450 InSequence s; | 461 InSequence s; |
451 EXPECT_CALL(checkpoint, Call(1)); | 462 EXPECT_CALL(checkpoint, Call(1)); |
452 EXPECT_CALL(*client, didFetchDataLoadedString(String("hello"))); | 463 EXPECT_CALL(*client, didFetchDataLoadedString(String("hello"))); |
453 EXPECT_CALL(checkpoint, Call(2)); | 464 EXPECT_CALL(checkpoint, Call(2)); |
454 | 465 |
455 std::unique_ptr<ReplayingHandle> handle = ReplayingHandle::create(); | 466 std::unique_ptr<ReplayingHandle> handle = ReplayingHandle::create(); |
456 handle->add(Command(Command::Data, "hello")); | 467 handle->add(Command(Command::Data, "hello")); |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
500 BodyStreamBuffer* buffer = new BodyStreamBuffer(getScriptState(), std::move(
handle)); | 511 BodyStreamBuffer* buffer = new BodyStreamBuffer(getScriptState(), std::move(
handle)); |
501 checkpoint.Call(1); | 512 checkpoint.Call(1); |
502 ScriptValue reason(getScriptState(), v8String(getScriptState()->isolate(), "
reason")); | 513 ScriptValue reason(getScriptState(), v8String(getScriptState()->isolate(), "
reason")); |
503 buffer->cancelSource(getScriptState(), reason); | 514 buffer->cancelSource(getScriptState(), reason); |
504 checkpoint.Call(2); | 515 checkpoint.Call(2); |
505 } | 516 } |
506 | 517 |
507 } // namespace | 518 } // namespace |
508 | 519 |
509 } // namespace blink | 520 } // namespace blink |
OLD | NEW |