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

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

Issue 2177243002: Use per-frame TaskRunner instead of thread's default in DataConsumerHandle (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@data_consumer_handle_unique_ptr
Patch Set: update 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 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
70 } 70 }
71 }; 71 };
72 72
73 TEST_F(BodyStreamBufferTest, Tee) 73 TEST_F(BodyStreamBufferTest, Tee)
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 WebTaskRunner* taskRunner = Platform::current()->currentThread()->getWebTask Runner();
81 EXPECT_CALL(*client1, getTaskRunner()).WillRepeatedly(Return(taskRunner));
82 EXPECT_CALL(*client2, getTaskRunner()).WillRepeatedly(Return(taskRunner));
83
80 InSequence s; 84 InSequence s;
81 EXPECT_CALL(checkpoint, Call(1)); 85 EXPECT_CALL(checkpoint, Call(1));
82 EXPECT_CALL(*client1, didFetchDataLoadedString(String("hello, world"))); 86 EXPECT_CALL(*client1, didFetchDataLoadedString(String("hello, world")));
83 EXPECT_CALL(checkpoint, Call(2)); 87 EXPECT_CALL(checkpoint, Call(2));
84 EXPECT_CALL(checkpoint, Call(3)); 88 EXPECT_CALL(checkpoint, Call(3));
85 EXPECT_CALL(*client2, didFetchDataLoadedString(String("hello, world"))); 89 EXPECT_CALL(*client2, didFetchDataLoadedString(String("hello, world")));
86 EXPECT_CALL(checkpoint, Call(4)); 90 EXPECT_CALL(checkpoint, Call(4));
87 91
88 std::unique_ptr<DataConsumerHandleTestUtil::ReplayingHandle> handle = DataCo nsumerHandleTestUtil::ReplayingHandle::create(); 92 std::unique_ptr<DataConsumerHandleTestUtil::ReplayingHandle> handle = DataCo nsumerHandleTestUtil::ReplayingHandle::create();
89 handle->add(DataConsumerHandleTestUtil::Command(DataConsumerHandleTestUtil:: Command::Data, "hello, ")); 93 handle->add(DataConsumerHandleTestUtil::Command(DataConsumerHandleTestUtil:: Command::Data, "hello, "));
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after
279 EXPECT_TRUE(buffer->isStreamReadable()); 283 EXPECT_TRUE(buffer->isStreamReadable());
280 } 284 }
281 285
282 TEST_F(BodyStreamBufferTest, LoadBodyStreamBufferAsArrayBuffer) 286 TEST_F(BodyStreamBufferTest, LoadBodyStreamBufferAsArrayBuffer)
283 { 287 {
284 V8TestingScope scope; 288 V8TestingScope scope;
285 Checkpoint checkpoint; 289 Checkpoint checkpoint;
286 MockFetchDataLoaderClient* client = MockFetchDataLoaderClient::create(); 290 MockFetchDataLoaderClient* client = MockFetchDataLoaderClient::create();
287 DOMArrayBuffer* arrayBuffer = nullptr; 291 DOMArrayBuffer* arrayBuffer = nullptr;
288 292
293 WebTaskRunner* taskRunner = Platform::current()->currentThread()->getWebTask Runner();
294 EXPECT_CALL(*client, getTaskRunner()).WillRepeatedly(Return(taskRunner));
295
289 InSequence s; 296 InSequence s;
290 EXPECT_CALL(checkpoint, Call(1)); 297 EXPECT_CALL(checkpoint, Call(1));
291 EXPECT_CALL(*client, didFetchDataLoadedArrayBufferMock(_)).WillOnce(SaveArg< 0>(&arrayBuffer)); 298 EXPECT_CALL(*client, didFetchDataLoadedArrayBufferMock(_)).WillOnce(SaveArg< 0>(&arrayBuffer));
292 EXPECT_CALL(checkpoint, Call(2)); 299 EXPECT_CALL(checkpoint, Call(2));
293 300
294 std::unique_ptr<ReplayingHandle> handle = ReplayingHandle::create(); 301 std::unique_ptr<ReplayingHandle> handle = ReplayingHandle::create();
295 handle->add(Command(Command::Data, "hello")); 302 handle->add(Command(Command::Data, "hello"));
296 handle->add(Command(Command::Done)); 303 handle->add(Command(Command::Done));
297 BodyStreamBuffer* buffer = new BodyStreamBuffer(scope.getScriptState(), crea teFetchDataConsumerHandleFromWebHandle(std::move(handle))); 304 BodyStreamBuffer* buffer = new BodyStreamBuffer(scope.getScriptState(), crea teFetchDataConsumerHandleFromWebHandle(std::move(handle)));
298 buffer->startLoading(FetchDataLoader::createLoaderAsArrayBuffer(), client); 305 buffer->startLoading(FetchDataLoader::createLoaderAsArrayBuffer(), client);
(...skipping 13 matching lines...) Expand all
312 EXPECT_EQ("hello", String(static_cast<const char*>(arrayBuffer->data()), arr ayBuffer->byteLength())); 319 EXPECT_EQ("hello", String(static_cast<const char*>(arrayBuffer->data()), arr ayBuffer->byteLength()));
313 } 320 }
314 321
315 TEST_F(BodyStreamBufferTest, LoadBodyStreamBufferAsBlob) 322 TEST_F(BodyStreamBufferTest, LoadBodyStreamBufferAsBlob)
316 { 323 {
317 V8TestingScope scope; 324 V8TestingScope scope;
318 Checkpoint checkpoint; 325 Checkpoint checkpoint;
319 MockFetchDataLoaderClient* client = MockFetchDataLoaderClient::create(); 326 MockFetchDataLoaderClient* client = MockFetchDataLoaderClient::create();
320 RefPtr<BlobDataHandle> blobDataHandle; 327 RefPtr<BlobDataHandle> blobDataHandle;
321 328
329 WebTaskRunner* taskRunner = Platform::current()->currentThread()->getWebTask Runner();
330 EXPECT_CALL(*client, getTaskRunner()).WillRepeatedly(Return(taskRunner));
331
322 InSequence s; 332 InSequence s;
323 EXPECT_CALL(checkpoint, Call(1)); 333 EXPECT_CALL(checkpoint, Call(1));
324 EXPECT_CALL(*client, didFetchDataLoadedBlobHandleMock(_)).WillOnce(SaveArg<0 >(&blobDataHandle)); 334 EXPECT_CALL(*client, didFetchDataLoadedBlobHandleMock(_)).WillOnce(SaveArg<0 >(&blobDataHandle));
325 EXPECT_CALL(checkpoint, Call(2)); 335 EXPECT_CALL(checkpoint, Call(2));
326 336
327 std::unique_ptr<ReplayingHandle> handle = ReplayingHandle::create(); 337 std::unique_ptr<ReplayingHandle> handle = ReplayingHandle::create();
328 handle->add(Command(Command::Data, "hello")); 338 handle->add(Command(Command::Data, "hello"));
329 handle->add(Command(Command::Done)); 339 handle->add(Command(Command::Done));
330 BodyStreamBuffer* buffer = new BodyStreamBuffer(scope.getScriptState(), crea teFetchDataConsumerHandleFromWebHandle(std::move(handle))); 340 BodyStreamBuffer* buffer = new BodyStreamBuffer(scope.getScriptState(), crea teFetchDataConsumerHandleFromWebHandle(std::move(handle)));
331 buffer->startLoading(FetchDataLoader::createLoaderAsBlobHandle("text/plain") , client); 341 buffer->startLoading(FetchDataLoader::createLoaderAsBlobHandle("text/plain") , client);
(...skipping 11 matching lines...) Expand all
343 EXPECT_FALSE(buffer->hasPendingActivity()); 353 EXPECT_FALSE(buffer->hasPendingActivity());
344 EXPECT_EQ(5u, blobDataHandle->size()); 354 EXPECT_EQ(5u, blobDataHandle->size());
345 } 355 }
346 356
347 TEST_F(BodyStreamBufferTest, LoadBodyStreamBufferAsString) 357 TEST_F(BodyStreamBufferTest, LoadBodyStreamBufferAsString)
348 { 358 {
349 V8TestingScope scope; 359 V8TestingScope scope;
350 Checkpoint checkpoint; 360 Checkpoint checkpoint;
351 MockFetchDataLoaderClient* client = MockFetchDataLoaderClient::create(); 361 MockFetchDataLoaderClient* client = MockFetchDataLoaderClient::create();
352 362
363 WebTaskRunner* taskRunner = Platform::current()->currentThread()->getWebTask Runner();
364 EXPECT_CALL(*client, getTaskRunner()).WillRepeatedly(Return(taskRunner));
365
353 InSequence s; 366 InSequence s;
354 EXPECT_CALL(checkpoint, Call(1)); 367 EXPECT_CALL(checkpoint, Call(1));
355 EXPECT_CALL(*client, didFetchDataLoadedString(String("hello"))); 368 EXPECT_CALL(*client, didFetchDataLoadedString(String("hello")));
356 EXPECT_CALL(checkpoint, Call(2)); 369 EXPECT_CALL(checkpoint, Call(2));
357 370
358 std::unique_ptr<ReplayingHandle> handle = ReplayingHandle::create(); 371 std::unique_ptr<ReplayingHandle> handle = ReplayingHandle::create();
359 handle->add(Command(Command::Data, "hello")); 372 handle->add(Command(Command::Data, "hello"));
360 handle->add(Command(Command::Done)); 373 handle->add(Command(Command::Done));
361 BodyStreamBuffer* buffer = new BodyStreamBuffer(scope.getScriptState(), crea teFetchDataConsumerHandleFromWebHandle(std::move(handle))); 374 BodyStreamBuffer* buffer = new BodyStreamBuffer(scope.getScriptState(), crea teFetchDataConsumerHandleFromWebHandle(std::move(handle)));
362 buffer->startLoading(FetchDataLoader::createLoaderAsString(), client); 375 buffer->startLoading(FetchDataLoader::createLoaderAsString(), client);
(...skipping 10 matching lines...) Expand all
373 EXPECT_TRUE(buffer->isStreamDisturbed()); 386 EXPECT_TRUE(buffer->isStreamDisturbed());
374 EXPECT_FALSE(buffer->hasPendingActivity()); 387 EXPECT_FALSE(buffer->hasPendingActivity());
375 } 388 }
376 389
377 TEST_F(BodyStreamBufferTest, LoadClosedHandle) 390 TEST_F(BodyStreamBufferTest, LoadClosedHandle)
378 { 391 {
379 V8TestingScope scope; 392 V8TestingScope scope;
380 Checkpoint checkpoint; 393 Checkpoint checkpoint;
381 MockFetchDataLoaderClient* client = MockFetchDataLoaderClient::create(); 394 MockFetchDataLoaderClient* client = MockFetchDataLoaderClient::create();
382 395
396 WebTaskRunner* taskRunner = Platform::current()->currentThread()->getWebTask Runner();
397 EXPECT_CALL(*client, getTaskRunner()).WillRepeatedly(Return(taskRunner));
398
383 InSequence s; 399 InSequence s;
384 EXPECT_CALL(checkpoint, Call(1)); 400 EXPECT_CALL(checkpoint, Call(1));
385 EXPECT_CALL(*client, didFetchDataLoadedString(String(""))); 401 EXPECT_CALL(*client, didFetchDataLoadedString(String("")));
386 EXPECT_CALL(checkpoint, Call(2)); 402 EXPECT_CALL(checkpoint, Call(2));
387 403
388 BodyStreamBuffer* buffer = new BodyStreamBuffer(scope.getScriptState(), crea teFetchDataConsumerHandleFromWebHandle(createDoneDataConsumerHandle())); 404 BodyStreamBuffer* buffer = new BodyStreamBuffer(scope.getScriptState(), crea teFetchDataConsumerHandleFromWebHandle(createDoneDataConsumerHandle()));
389 405
390 EXPECT_TRUE(buffer->isStreamReadable()); 406 EXPECT_TRUE(buffer->isStreamReadable());
391 testing::runPendingTasks(); 407 testing::runPendingTasks();
392 EXPECT_TRUE(buffer->isStreamClosed()); 408 EXPECT_TRUE(buffer->isStreamClosed());
(...skipping 15 matching lines...) Expand all
408 EXPECT_TRUE(buffer->isStreamDisturbed()); 424 EXPECT_TRUE(buffer->isStreamDisturbed());
409 EXPECT_FALSE(buffer->hasPendingActivity()); 425 EXPECT_FALSE(buffer->hasPendingActivity());
410 } 426 }
411 427
412 TEST_F(BodyStreamBufferTest, LoadErroredHandle) 428 TEST_F(BodyStreamBufferTest, LoadErroredHandle)
413 { 429 {
414 V8TestingScope scope; 430 V8TestingScope scope;
415 Checkpoint checkpoint; 431 Checkpoint checkpoint;
416 MockFetchDataLoaderClient* client = MockFetchDataLoaderClient::create(); 432 MockFetchDataLoaderClient* client = MockFetchDataLoaderClient::create();
417 433
434 WebTaskRunner* taskRunner = Platform::current()->currentThread()->getWebTask Runner();
435 EXPECT_CALL(*client, getTaskRunner()).WillRepeatedly(Return(taskRunner));
436
418 InSequence s; 437 InSequence s;
419 EXPECT_CALL(checkpoint, Call(1)); 438 EXPECT_CALL(checkpoint, Call(1));
420 EXPECT_CALL(*client, didFetchDataLoadFailed()); 439 EXPECT_CALL(*client, didFetchDataLoadFailed());
421 EXPECT_CALL(checkpoint, Call(2)); 440 EXPECT_CALL(checkpoint, Call(2));
422 441
423 BodyStreamBuffer* buffer = new BodyStreamBuffer(scope.getScriptState(), crea teFetchDataConsumerHandleFromWebHandle(createUnexpectedErrorDataConsumerHandle() )); 442 BodyStreamBuffer* buffer = new BodyStreamBuffer(scope.getScriptState(), crea teFetchDataConsumerHandleFromWebHandle(createUnexpectedErrorDataConsumerHandle() ));
424 443
425 EXPECT_TRUE(buffer->isStreamReadable()); 444 EXPECT_TRUE(buffer->isStreamReadable());
426 testing::runPendingTasks(); 445 testing::runPendingTasks();
427 EXPECT_TRUE(buffer->isStreamErrored()); 446 EXPECT_TRUE(buffer->isStreamErrored());
(...skipping 13 matching lines...) Expand all
441 EXPECT_TRUE(buffer->isStreamLocked()); 460 EXPECT_TRUE(buffer->isStreamLocked());
442 EXPECT_TRUE(buffer->isStreamDisturbed()); 461 EXPECT_TRUE(buffer->isStreamDisturbed());
443 EXPECT_FALSE(buffer->hasPendingActivity()); 462 EXPECT_FALSE(buffer->hasPendingActivity());
444 } 463 }
445 464
446 TEST_F(BodyStreamBufferTest, LoaderShouldBeKeptAliveByBodyStreamBuffer) 465 TEST_F(BodyStreamBufferTest, LoaderShouldBeKeptAliveByBodyStreamBuffer)
447 { 466 {
448 V8TestingScope scope; 467 V8TestingScope scope;
449 Checkpoint checkpoint; 468 Checkpoint checkpoint;
450 MockFetchDataLoaderClient* client = MockFetchDataLoaderClient::create(); 469 MockFetchDataLoaderClient* client = MockFetchDataLoaderClient::create();
470 WebTaskRunner* taskRunner = Platform::current()->currentThread()->getWebTask Runner();
471 EXPECT_CALL(*client, getTaskRunner()).WillRepeatedly(Return(taskRunner));
451 472
452 InSequence s; 473 InSequence s;
453 EXPECT_CALL(checkpoint, Call(1)); 474 EXPECT_CALL(checkpoint, Call(1));
454 EXPECT_CALL(*client, didFetchDataLoadedString(String("hello"))); 475 EXPECT_CALL(*client, didFetchDataLoadedString(String("hello")));
455 EXPECT_CALL(checkpoint, Call(2)); 476 EXPECT_CALL(checkpoint, Call(2));
456 477
457 std::unique_ptr<ReplayingHandle> handle = ReplayingHandle::create(); 478 std::unique_ptr<ReplayingHandle> handle = ReplayingHandle::create();
458 handle->add(Command(Command::Data, "hello")); 479 handle->add(Command(Command::Data, "hello"));
459 handle->add(Command(Command::Done)); 480 handle->add(Command(Command::Done));
460 Persistent<BodyStreamBuffer> buffer = new BodyStreamBuffer(scope.getScriptSt ate(), createFetchDataConsumerHandleFromWebHandle(std::move(handle))); 481 Persistent<BodyStreamBuffer> buffer = new BodyStreamBuffer(scope.getScriptSt ate(), createFetchDataConsumerHandleFromWebHandle(std::move(handle)));
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
500 BodyStreamBuffer* buffer = new BodyStreamBuffer(scope.getScriptState(), std: :move(handle)); 521 BodyStreamBuffer* buffer = new BodyStreamBuffer(scope.getScriptState(), std: :move(handle));
501 checkpoint.Call(1); 522 checkpoint.Call(1);
502 ScriptValue reason(scope.getScriptState(), v8String(scope.getScriptState()-> isolate(), "reason")); 523 ScriptValue reason(scope.getScriptState(), v8String(scope.getScriptState()-> isolate(), "reason"));
503 buffer->cancelSource(scope.getScriptState(), reason); 524 buffer->cancelSource(scope.getScriptState(), reason);
504 checkpoint.Call(2); 525 checkpoint.Call(2);
505 } 526 }
506 527
507 } // namespace 528 } // namespace
508 529
509 } // namespace blink 530 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698