Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2)

Side by Side Diff: third_party/WebKit/Source/modules/fetch/BodyStreamBufferTest.cpp

Issue 2229313002: Make FetchDataLoader accept BytesConsumer (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@remove-c++-rs
Patch Set: fix Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 "bindings/core/v8/V8BindingForTesting.h" 7 #include "bindings/core/v8/V8BindingForTesting.h"
8 #include "core/html/FormData.h" 8 #include "core/html/FormData.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 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 { 74 {
75 V8TestingScope scope; 75 V8TestingScope scope;
76 Checkpoint checkpoint; 76 Checkpoint checkpoint;
77 MockFetchDataLoaderClient* client1 = MockFetchDataLoaderClient::create(); 77 MockFetchDataLoaderClient* client1 = MockFetchDataLoaderClient::create();
78 MockFetchDataLoaderClient* client2 = MockFetchDataLoaderClient::create(); 78 MockFetchDataLoaderClient* client2 = MockFetchDataLoaderClient::create();
79 79
80 InSequence s; 80 InSequence s;
81 EXPECT_CALL(checkpoint, Call(1)); 81 EXPECT_CALL(checkpoint, Call(1));
82 EXPECT_CALL(*client1, didFetchDataLoadedString(String("hello, world"))); 82 EXPECT_CALL(*client1, didFetchDataLoadedString(String("hello, world")));
83 EXPECT_CALL(checkpoint, Call(2)); 83 EXPECT_CALL(checkpoint, Call(2));
84 EXPECT_CALL(*client2, didFetchDataLoadedString(String("hello, world")));
84 EXPECT_CALL(checkpoint, Call(3)); 85 EXPECT_CALL(checkpoint, Call(3));
85 EXPECT_CALL(*client2, didFetchDataLoadedString(String("hello, world")));
86 EXPECT_CALL(checkpoint, Call(4)); 86 EXPECT_CALL(checkpoint, Call(4));
87 87
88 std::unique_ptr<DataConsumerHandleTestUtil::ReplayingHandle> handle = DataCo nsumerHandleTestUtil::ReplayingHandle::create(); 88 std::unique_ptr<DataConsumerHandleTestUtil::ReplayingHandle> handle = DataCo nsumerHandleTestUtil::ReplayingHandle::create();
89 handle->add(DataConsumerHandleTestUtil::Command(DataConsumerHandleTestUtil:: Command::Data, "hello, ")); 89 handle->add(DataConsumerHandleTestUtil::Command(DataConsumerHandleTestUtil:: Command::Data, "hello, "));
90 handle->add(DataConsumerHandleTestUtil::Command(DataConsumerHandleTestUtil:: Command::Data, "world")); 90 handle->add(DataConsumerHandleTestUtil::Command(DataConsumerHandleTestUtil:: Command::Data, "world"));
91 handle->add(DataConsumerHandleTestUtil::Command(DataConsumerHandleTestUtil:: Command::Done)); 91 handle->add(DataConsumerHandleTestUtil::Command(DataConsumerHandleTestUtil:: Command::Done));
92 BodyStreamBuffer* buffer = new BodyStreamBuffer(scope.getScriptState(), crea teFetchDataConsumerHandleFromWebHandle(std::move(handle))); 92 BodyStreamBuffer* buffer = new BodyStreamBuffer(scope.getScriptState(), crea teFetchDataConsumerHandleFromWebHandle(std::move(handle)));
93 93
94 BodyStreamBuffer* new1; 94 BodyStreamBuffer* new1;
95 BodyStreamBuffer* new2; 95 BodyStreamBuffer* new2;
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after
285 Checkpoint checkpoint; 285 Checkpoint checkpoint;
286 MockFetchDataLoaderClient* client = MockFetchDataLoaderClient::create(); 286 MockFetchDataLoaderClient* client = MockFetchDataLoaderClient::create();
287 DOMArrayBuffer* arrayBuffer = nullptr; 287 DOMArrayBuffer* arrayBuffer = nullptr;
288 288
289 InSequence s; 289 InSequence s;
290 EXPECT_CALL(checkpoint, Call(1)); 290 EXPECT_CALL(checkpoint, Call(1));
291 EXPECT_CALL(*client, didFetchDataLoadedArrayBufferMock(_)).WillOnce(SaveArg< 0>(&arrayBuffer)); 291 EXPECT_CALL(*client, didFetchDataLoadedArrayBufferMock(_)).WillOnce(SaveArg< 0>(&arrayBuffer));
292 EXPECT_CALL(checkpoint, Call(2)); 292 EXPECT_CALL(checkpoint, Call(2));
293 293
294 std::unique_ptr<ReplayingHandle> handle = ReplayingHandle::create(); 294 std::unique_ptr<ReplayingHandle> handle = ReplayingHandle::create();
295 handle->add(Command(Command::Wait));
295 handle->add(Command(Command::Data, "hello")); 296 handle->add(Command(Command::Data, "hello"));
296 handle->add(Command(Command::Done)); 297 handle->add(Command(Command::Done));
297 BodyStreamBuffer* buffer = new BodyStreamBuffer(scope.getScriptState(), crea teFetchDataConsumerHandleFromWebHandle(std::move(handle))); 298 BodyStreamBuffer* buffer = new BodyStreamBuffer(scope.getScriptState(), crea teFetchDataConsumerHandleFromWebHandle(std::move(handle)));
298 buffer->startLoading(FetchDataLoader::createLoaderAsArrayBuffer(), client); 299 buffer->startLoading(FetchDataLoader::createLoaderAsArrayBuffer(), client);
299 300
300 EXPECT_TRUE(buffer->isStreamLocked()); 301 EXPECT_TRUE(buffer->isStreamLocked());
301 EXPECT_TRUE(buffer->isStreamDisturbed()); 302 EXPECT_TRUE(buffer->isStreamDisturbed());
302 EXPECT_TRUE(buffer->hasPendingActivity()); 303 EXPECT_TRUE(buffer->hasPendingActivity());
303 304
304 checkpoint.Call(1); 305 checkpoint.Call(1);
(...skipping 13 matching lines...) Expand all
318 Checkpoint checkpoint; 319 Checkpoint checkpoint;
319 MockFetchDataLoaderClient* client = MockFetchDataLoaderClient::create(); 320 MockFetchDataLoaderClient* client = MockFetchDataLoaderClient::create();
320 RefPtr<BlobDataHandle> blobDataHandle; 321 RefPtr<BlobDataHandle> blobDataHandle;
321 322
322 InSequence s; 323 InSequence s;
323 EXPECT_CALL(checkpoint, Call(1)); 324 EXPECT_CALL(checkpoint, Call(1));
324 EXPECT_CALL(*client, didFetchDataLoadedBlobHandleMock(_)).WillOnce(SaveArg<0 >(&blobDataHandle)); 325 EXPECT_CALL(*client, didFetchDataLoadedBlobHandleMock(_)).WillOnce(SaveArg<0 >(&blobDataHandle));
325 EXPECT_CALL(checkpoint, Call(2)); 326 EXPECT_CALL(checkpoint, Call(2));
326 327
327 std::unique_ptr<ReplayingHandle> handle = ReplayingHandle::create(); 328 std::unique_ptr<ReplayingHandle> handle = ReplayingHandle::create();
329 handle->add(Command(Command::Wait));
328 handle->add(Command(Command::Data, "hello")); 330 handle->add(Command(Command::Data, "hello"));
329 handle->add(Command(Command::Done)); 331 handle->add(Command(Command::Done));
330 BodyStreamBuffer* buffer = new BodyStreamBuffer(scope.getScriptState(), crea teFetchDataConsumerHandleFromWebHandle(std::move(handle))); 332 BodyStreamBuffer* buffer = new BodyStreamBuffer(scope.getScriptState(), crea teFetchDataConsumerHandleFromWebHandle(std::move(handle)));
331 buffer->startLoading(FetchDataLoader::createLoaderAsBlobHandle("text/plain") , client); 333 buffer->startLoading(FetchDataLoader::createLoaderAsBlobHandle("text/plain") , client);
332 334
333 EXPECT_TRUE(buffer->isStreamLocked()); 335 EXPECT_TRUE(buffer->isStreamLocked());
334 EXPECT_TRUE(buffer->isStreamDisturbed()); 336 EXPECT_TRUE(buffer->isStreamDisturbed());
335 EXPECT_TRUE(buffer->hasPendingActivity()); 337 EXPECT_TRUE(buffer->hasPendingActivity());
336 338
337 checkpoint.Call(1); 339 checkpoint.Call(1);
(...skipping 11 matching lines...) Expand all
349 V8TestingScope scope; 351 V8TestingScope scope;
350 Checkpoint checkpoint; 352 Checkpoint checkpoint;
351 MockFetchDataLoaderClient* client = MockFetchDataLoaderClient::create(); 353 MockFetchDataLoaderClient* client = MockFetchDataLoaderClient::create();
352 354
353 InSequence s; 355 InSequence s;
354 EXPECT_CALL(checkpoint, Call(1)); 356 EXPECT_CALL(checkpoint, Call(1));
355 EXPECT_CALL(*client, didFetchDataLoadedString(String("hello"))); 357 EXPECT_CALL(*client, didFetchDataLoadedString(String("hello")));
356 EXPECT_CALL(checkpoint, Call(2)); 358 EXPECT_CALL(checkpoint, Call(2));
357 359
358 std::unique_ptr<ReplayingHandle> handle = ReplayingHandle::create(); 360 std::unique_ptr<ReplayingHandle> handle = ReplayingHandle::create();
361 handle->add(Command(Command::Wait));
359 handle->add(Command(Command::Data, "hello")); 362 handle->add(Command(Command::Data, "hello"));
360 handle->add(Command(Command::Done)); 363 handle->add(Command(Command::Done));
361 BodyStreamBuffer* buffer = new BodyStreamBuffer(scope.getScriptState(), crea teFetchDataConsumerHandleFromWebHandle(std::move(handle))); 364 BodyStreamBuffer* buffer = new BodyStreamBuffer(scope.getScriptState(), crea teFetchDataConsumerHandleFromWebHandle(std::move(handle)));
362 buffer->startLoading(FetchDataLoader::createLoaderAsString(), client); 365 buffer->startLoading(FetchDataLoader::createLoaderAsString(), client);
363 366
364 EXPECT_TRUE(buffer->isStreamLocked()); 367 EXPECT_TRUE(buffer->isStreamLocked());
365 EXPECT_TRUE(buffer->isStreamDisturbed()); 368 EXPECT_TRUE(buffer->isStreamDisturbed());
366 EXPECT_TRUE(buffer->hasPendingActivity()); 369 EXPECT_TRUE(buffer->hasPendingActivity());
367 370
368 checkpoint.Call(1); 371 checkpoint.Call(1);
(...skipping 19 matching lines...) Expand all
388 BodyStreamBuffer* buffer = new BodyStreamBuffer(scope.getScriptState(), crea teFetchDataConsumerHandleFromWebHandle(createDoneDataConsumerHandle())); 391 BodyStreamBuffer* buffer = new BodyStreamBuffer(scope.getScriptState(), crea teFetchDataConsumerHandleFromWebHandle(createDoneDataConsumerHandle()));
389 392
390 EXPECT_TRUE(buffer->isStreamReadable()); 393 EXPECT_TRUE(buffer->isStreamReadable());
391 testing::runPendingTasks(); 394 testing::runPendingTasks();
392 EXPECT_TRUE(buffer->isStreamClosed()); 395 EXPECT_TRUE(buffer->isStreamClosed());
393 396
394 EXPECT_FALSE(buffer->isStreamLocked()); 397 EXPECT_FALSE(buffer->isStreamLocked());
395 EXPECT_FALSE(buffer->isStreamDisturbed()); 398 EXPECT_FALSE(buffer->isStreamDisturbed());
396 EXPECT_FALSE(buffer->hasPendingActivity()); 399 EXPECT_FALSE(buffer->hasPendingActivity());
397 400
401 checkpoint.Call(1);
398 buffer->startLoading(FetchDataLoader::createLoaderAsString(), client); 402 buffer->startLoading(FetchDataLoader::createLoaderAsString(), client);
399 EXPECT_TRUE(buffer->isStreamLocked());
400 EXPECT_TRUE(buffer->isStreamDisturbed());
401 EXPECT_TRUE(buffer->hasPendingActivity());
402
403 checkpoint.Call(1);
404 testing::runPendingTasks();
405 checkpoint.Call(2); 403 checkpoint.Call(2);
406 404
407 EXPECT_TRUE(buffer->isStreamLocked()); 405 EXPECT_TRUE(buffer->isStreamLocked());
408 EXPECT_TRUE(buffer->isStreamDisturbed()); 406 EXPECT_TRUE(buffer->isStreamDisturbed());
409 EXPECT_FALSE(buffer->hasPendingActivity()); 407 EXPECT_FALSE(buffer->hasPendingActivity());
410 } 408 }
411 409
412 TEST_F(BodyStreamBufferTest, LoadErroredHandle) 410 TEST_F(BodyStreamBufferTest, LoadErroredHandle)
413 { 411 {
414 V8TestingScope scope; 412 V8TestingScope scope;
415 Checkpoint checkpoint; 413 Checkpoint checkpoint;
416 MockFetchDataLoaderClient* client = MockFetchDataLoaderClient::create(); 414 MockFetchDataLoaderClient* client = MockFetchDataLoaderClient::create();
417 415
418 InSequence s; 416 InSequence s;
419 EXPECT_CALL(checkpoint, Call(1)); 417 EXPECT_CALL(checkpoint, Call(1));
420 EXPECT_CALL(*client, didFetchDataLoadFailed()); 418 EXPECT_CALL(*client, didFetchDataLoadFailed());
421 EXPECT_CALL(checkpoint, Call(2)); 419 EXPECT_CALL(checkpoint, Call(2));
422 420
423 BodyStreamBuffer* buffer = new BodyStreamBuffer(scope.getScriptState(), crea teFetchDataConsumerHandleFromWebHandle(createUnexpectedErrorDataConsumerHandle() )); 421 BodyStreamBuffer* buffer = new BodyStreamBuffer(scope.getScriptState(), crea teFetchDataConsumerHandleFromWebHandle(createUnexpectedErrorDataConsumerHandle() ));
424 422
425 EXPECT_TRUE(buffer->isStreamReadable()); 423 EXPECT_TRUE(buffer->isStreamReadable());
426 testing::runPendingTasks(); 424 testing::runPendingTasks();
427 EXPECT_TRUE(buffer->isStreamErrored()); 425 EXPECT_TRUE(buffer->isStreamErrored());
428 426
429 EXPECT_FALSE(buffer->isStreamLocked()); 427 EXPECT_FALSE(buffer->isStreamLocked());
430 EXPECT_FALSE(buffer->isStreamDisturbed()); 428 EXPECT_FALSE(buffer->isStreamDisturbed());
431 EXPECT_FALSE(buffer->hasPendingActivity()); 429 EXPECT_FALSE(buffer->hasPendingActivity());
432 buffer->startLoading(FetchDataLoader::createLoaderAsString(), client);
433 EXPECT_TRUE(buffer->isStreamLocked());
434 EXPECT_TRUE(buffer->isStreamDisturbed());
435 EXPECT_TRUE(buffer->hasPendingActivity());
436 430
437 checkpoint.Call(1); 431 checkpoint.Call(1);
438 testing::runPendingTasks(); 432 buffer->startLoading(FetchDataLoader::createLoaderAsString(), client);
439 checkpoint.Call(2); 433 checkpoint.Call(2);
440 434
441 EXPECT_TRUE(buffer->isStreamLocked()); 435 EXPECT_TRUE(buffer->isStreamLocked());
442 EXPECT_TRUE(buffer->isStreamDisturbed()); 436 EXPECT_TRUE(buffer->isStreamDisturbed());
443 EXPECT_FALSE(buffer->hasPendingActivity()); 437 EXPECT_FALSE(buffer->hasPendingActivity());
444 } 438 }
445 439
446 TEST_F(BodyStreamBufferTest, LoaderShouldBeKeptAliveByBodyStreamBuffer) 440 TEST_F(BodyStreamBufferTest, LoaderShouldBeKeptAliveByBodyStreamBuffer)
447 { 441 {
448 V8TestingScope scope; 442 V8TestingScope scope;
449 Checkpoint checkpoint; 443 Checkpoint checkpoint;
450 MockFetchDataLoaderClient* client = MockFetchDataLoaderClient::create(); 444 MockFetchDataLoaderClient* client = MockFetchDataLoaderClient::create();
451 445
452 InSequence s; 446 InSequence s;
453 EXPECT_CALL(checkpoint, Call(1)); 447 EXPECT_CALL(checkpoint, Call(1));
454 EXPECT_CALL(*client, didFetchDataLoadedString(String("hello"))); 448 EXPECT_CALL(*client, didFetchDataLoadedString(String("hello")));
455 EXPECT_CALL(checkpoint, Call(2)); 449 EXPECT_CALL(checkpoint, Call(2));
456 450
457 std::unique_ptr<ReplayingHandle> handle = ReplayingHandle::create(); 451 std::unique_ptr<ReplayingHandle> handle = ReplayingHandle::create();
452 handle->add(Command(Command::Wait));
458 handle->add(Command(Command::Data, "hello")); 453 handle->add(Command(Command::Data, "hello"));
459 handle->add(Command(Command::Done)); 454 handle->add(Command(Command::Done));
460 Persistent<BodyStreamBuffer> buffer = new BodyStreamBuffer(scope.getScriptSt ate(), createFetchDataConsumerHandleFromWebHandle(std::move(handle))); 455 Persistent<BodyStreamBuffer> buffer = new BodyStreamBuffer(scope.getScriptSt ate(), createFetchDataConsumerHandleFromWebHandle(std::move(handle)));
461 buffer->startLoading(FetchDataLoader::createLoaderAsString(), client); 456 buffer->startLoading(FetchDataLoader::createLoaderAsString(), client);
462 457
463 ThreadHeap::collectAllGarbage(); 458 ThreadHeap::collectAllGarbage();
464 checkpoint.Call(1); 459 checkpoint.Call(1);
465 testing::runPendingTasks(); 460 testing::runPendingTasks();
466 checkpoint.Call(2); 461 checkpoint.Call(2);
467 } 462 }
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
500 BodyStreamBuffer* buffer = new BodyStreamBuffer(scope.getScriptState(), std: :move(handle)); 495 BodyStreamBuffer* buffer = new BodyStreamBuffer(scope.getScriptState(), std: :move(handle));
501 checkpoint.Call(1); 496 checkpoint.Call(1);
502 ScriptValue reason(scope.getScriptState(), v8String(scope.getScriptState()-> isolate(), "reason")); 497 ScriptValue reason(scope.getScriptState(), v8String(scope.getScriptState()-> isolate(), "reason"));
503 buffer->cancel(scope.getScriptState(), reason); 498 buffer->cancel(scope.getScriptState(), reason);
504 checkpoint.Call(2); 499 checkpoint.Call(2);
505 } 500 }
506 501
507 } // namespace 502 } // namespace
508 503
509 } // namespace blink 504 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/modules/fetch/BodyStreamBuffer.cpp ('k') | third_party/WebKit/Source/modules/fetch/BytesConsumer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698