Chromium Code Reviews| 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()); | |
|
haraken
2016/07/14 04:46:55
Ditto.
yhirano
2016/07/14 05:02:51
Done.
| |
| 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 |