| 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 "config.h" | 5 #include "config.h" |
| 6 #include "modules/fetch/BodyStreamBuffer.h" | 6 #include "modules/fetch/BodyStreamBuffer.h" |
| 7 | 7 |
| 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 "platform/testing/UnitTestHelpers.h" | 10 #include "platform/testing/UnitTestHelpers.h" |
| (...skipping 22 matching lines...) Expand all Loading... |
| 33 } | 33 } |
| 34 ~BodyStreamBufferTest() override {} | 34 ~BodyStreamBufferTest() override {} |
| 35 | 35 |
| 36 protected: | 36 protected: |
| 37 ScriptState* scriptState() { return ScriptState::forMainWorld(m_page->docume
nt().frame()); } | 37 ScriptState* scriptState() { return ScriptState::forMainWorld(m_page->docume
nt().frame()); } |
| 38 ExecutionContext* executionContext() { return &m_page->document(); } | 38 ExecutionContext* executionContext() { return &m_page->document(); } |
| 39 | 39 |
| 40 OwnPtr<DummyPageHolder> m_page; | 40 OwnPtr<DummyPageHolder> m_page; |
| 41 }; | 41 }; |
| 42 | 42 |
| 43 TEST_F(BodyStreamBufferTest, LockBodyStreamBuffer) | 43 TEST_F(BodyStreamBufferTest, ReleaseHandle) |
| 44 { | 44 { |
| 45 OwnPtr<FetchDataConsumerHandle> handle = createFetchDataConsumerHandleFromWe
bHandle(createWaitingDataConsumerHandle()); | 45 OwnPtr<FetchDataConsumerHandle> handle = createFetchDataConsumerHandleFromWe
bHandle(createWaitingDataConsumerHandle()); |
| 46 FetchDataConsumerHandle* rawHandle = handle.get(); | 46 FetchDataConsumerHandle* rawHandle = handle.get(); |
| 47 BodyStreamBuffer* buffer = new BodyStreamBuffer(handle.release()); | 47 BodyStreamBuffer* buffer = new BodyStreamBuffer(handle.release()); |
| 48 | 48 |
| 49 EXPECT_FALSE(buffer->isLocked()); | |
| 50 EXPECT_FALSE(buffer->hasPendingActivity()); | 49 EXPECT_FALSE(buffer->hasPendingActivity()); |
| 50 EXPECT_FALSE(buffer->stream()->isLocked()); |
| 51 EXPECT_FALSE(buffer->stream()->isDisturbed()); |
| 52 EXPECT_EQ(ReadableStream::Readable, buffer->stream()->stateInternal()); |
| 51 | 53 |
| 52 OwnPtr<FetchDataConsumerHandle> handle2 = buffer->lock(executionContext()); | 54 OwnPtr<FetchDataConsumerHandle> handle2 = buffer->releaseHandle(executionCon
text()); |
| 53 | 55 |
| 54 ASSERT_EQ(rawHandle, handle2.get()); | 56 ASSERT_EQ(rawHandle, handle2.get()); |
| 55 EXPECT_TRUE(buffer->isLocked()); | 57 EXPECT_TRUE(buffer->stream()->isLocked()); |
| 56 EXPECT_TRUE(buffer->hasPendingActivity()); | 58 EXPECT_TRUE(buffer->stream()->isDisturbed()); |
| 59 EXPECT_EQ(ReadableStream::Closed, buffer->stream()->stateInternal()); |
| 57 } | 60 } |
| 58 | 61 |
| 59 TEST_F(BodyStreamBufferTest, LoadBodyStreamBufferAsArrayBuffer) | 62 TEST_F(BodyStreamBufferTest, LoadBodyStreamBufferAsArrayBuffer) |
| 60 { | 63 { |
| 61 Checkpoint checkpoint; | 64 Checkpoint checkpoint; |
| 62 MockFetchDataLoaderClient* client = MockFetchDataLoaderClient::create(); | 65 MockFetchDataLoaderClient* client = MockFetchDataLoaderClient::create(); |
| 63 RefPtr<DOMArrayBuffer> arrayBuffer; | 66 RefPtr<DOMArrayBuffer> arrayBuffer; |
| 64 | 67 |
| 65 InSequence s; | 68 InSequence s; |
| 66 EXPECT_CALL(checkpoint, Call(1)); | 69 EXPECT_CALL(checkpoint, Call(1)); |
| 67 EXPECT_CALL(*client, didFetchDataLoadedArrayBufferMock(_)).WillOnce(SaveArg<
0>(&arrayBuffer)); | 70 EXPECT_CALL(*client, didFetchDataLoadedArrayBufferMock(_)).WillOnce(SaveArg<
0>(&arrayBuffer)); |
| 68 EXPECT_CALL(checkpoint, Call(2)); | 71 EXPECT_CALL(checkpoint, Call(2)); |
| 69 | 72 |
| 70 OwnPtr<ReplayingHandle> handle = ReplayingHandle::create(); | 73 OwnPtr<ReplayingHandle> handle = ReplayingHandle::create(); |
| 71 handle->add(Command(Command::Data, "hello")); | 74 handle->add(Command(Command::Data, "hello")); |
| 72 handle->add(Command(Command::Done)); | 75 handle->add(Command(Command::Done)); |
| 73 BodyStreamBuffer* buffer = new BodyStreamBuffer(createFetchDataConsumerHandl
eFromWebHandle(handle.release())); | 76 BodyStreamBuffer* buffer = new BodyStreamBuffer(createFetchDataConsumerHandl
eFromWebHandle(handle.release())); |
| 74 buffer->startLoading(executionContext(), FetchDataLoader::createLoaderAsArra
yBuffer(), client); | 77 buffer->startLoading(executionContext(), FetchDataLoader::createLoaderAsArra
yBuffer(), client); |
| 75 | 78 |
| 76 EXPECT_TRUE(buffer->isLocked()); | 79 EXPECT_TRUE(buffer->stream()->isLocked()); |
| 80 EXPECT_TRUE(buffer->stream()->isDisturbed()); |
| 77 EXPECT_TRUE(buffer->hasPendingActivity()); | 81 EXPECT_TRUE(buffer->hasPendingActivity()); |
| 78 | 82 |
| 79 checkpoint.Call(1); | 83 checkpoint.Call(1); |
| 80 testing::runPendingTasks(); | 84 testing::runPendingTasks(); |
| 81 checkpoint.Call(2); | 85 checkpoint.Call(2); |
| 82 | 86 |
| 83 EXPECT_FALSE(buffer->isLocked()); | 87 EXPECT_TRUE(buffer->stream()->isLocked()); |
| 88 EXPECT_TRUE(buffer->stream()->isDisturbed()); |
| 84 EXPECT_FALSE(buffer->hasPendingActivity()); | 89 EXPECT_FALSE(buffer->hasPendingActivity()); |
| 90 ASSERT_TRUE(arrayBuffer); |
| 85 EXPECT_EQ("hello", String(static_cast<const char*>(arrayBuffer->data()), arr
ayBuffer->byteLength())); | 91 EXPECT_EQ("hello", String(static_cast<const char*>(arrayBuffer->data()), arr
ayBuffer->byteLength())); |
| 86 } | 92 } |
| 87 | 93 |
| 88 TEST_F(BodyStreamBufferTest, LoadBodyStreamBufferAsBlob) | 94 TEST_F(BodyStreamBufferTest, LoadBodyStreamBufferAsBlob) |
| 89 { | 95 { |
| 90 Checkpoint checkpoint; | 96 Checkpoint checkpoint; |
| 91 MockFetchDataLoaderClient* client = MockFetchDataLoaderClient::create(); | 97 MockFetchDataLoaderClient* client = MockFetchDataLoaderClient::create(); |
| 92 RefPtr<BlobDataHandle> blobDataHandle; | 98 RefPtr<BlobDataHandle> blobDataHandle; |
| 93 | 99 |
| 94 InSequence s; | 100 InSequence s; |
| 95 EXPECT_CALL(checkpoint, Call(1)); | 101 EXPECT_CALL(checkpoint, Call(1)); |
| 96 EXPECT_CALL(*client, didFetchDataLoadedBlobHandleMock(_)).WillOnce(SaveArg<0
>(&blobDataHandle)); | 102 EXPECT_CALL(*client, didFetchDataLoadedBlobHandleMock(_)).WillOnce(SaveArg<0
>(&blobDataHandle)); |
| 97 EXPECT_CALL(checkpoint, Call(2)); | 103 EXPECT_CALL(checkpoint, Call(2)); |
| 98 | 104 |
| 99 OwnPtr<ReplayingHandle> handle = ReplayingHandle::create(); | 105 OwnPtr<ReplayingHandle> handle = ReplayingHandle::create(); |
| 100 handle->add(Command(Command::Data, "hello")); | 106 handle->add(Command(Command::Data, "hello")); |
| 101 handle->add(Command(Command::Done)); | 107 handle->add(Command(Command::Done)); |
| 102 BodyStreamBuffer* buffer = new BodyStreamBuffer(createFetchDataConsumerHandl
eFromWebHandle(handle.release())); | 108 BodyStreamBuffer* buffer = new BodyStreamBuffer(createFetchDataConsumerHandl
eFromWebHandle(handle.release())); |
| 103 buffer->startLoading(executionContext(), FetchDataLoader::createLoaderAsBlob
Handle("text/plain"), client); | 109 buffer->startLoading(executionContext(), FetchDataLoader::createLoaderAsBlob
Handle("text/plain"), client); |
| 104 | 110 |
| 105 EXPECT_TRUE(buffer->isLocked()); | 111 EXPECT_TRUE(buffer->stream()->isLocked()); |
| 112 EXPECT_TRUE(buffer->stream()->isDisturbed()); |
| 106 EXPECT_TRUE(buffer->hasPendingActivity()); | 113 EXPECT_TRUE(buffer->hasPendingActivity()); |
| 107 | 114 |
| 108 checkpoint.Call(1); | 115 checkpoint.Call(1); |
| 109 testing::runPendingTasks(); | 116 testing::runPendingTasks(); |
| 110 checkpoint.Call(2); | 117 checkpoint.Call(2); |
| 111 | 118 |
| 112 EXPECT_FALSE(buffer->isLocked()); | 119 EXPECT_TRUE(buffer->stream()->isLocked()); |
| 120 EXPECT_TRUE(buffer->stream()->isDisturbed()); |
| 113 EXPECT_FALSE(buffer->hasPendingActivity()); | 121 EXPECT_FALSE(buffer->hasPendingActivity()); |
| 114 EXPECT_EQ(5u, blobDataHandle->size()); | 122 EXPECT_EQ(5u, blobDataHandle->size()); |
| 115 } | 123 } |
| 116 | 124 |
| 117 TEST_F(BodyStreamBufferTest, LoadBodyStreamBufferAsString) | 125 TEST_F(BodyStreamBufferTest, LoadBodyStreamBufferAsString) |
| 118 { | 126 { |
| 119 Checkpoint checkpoint; | 127 Checkpoint checkpoint; |
| 120 MockFetchDataLoaderClient* client = MockFetchDataLoaderClient::create(); | 128 MockFetchDataLoaderClient* client = MockFetchDataLoaderClient::create(); |
| 121 | 129 |
| 122 InSequence s; | 130 InSequence s; |
| 123 EXPECT_CALL(checkpoint, Call(1)); | 131 EXPECT_CALL(checkpoint, Call(1)); |
| 124 EXPECT_CALL(*client, didFetchDataLoadedString(String("hello"))); | 132 EXPECT_CALL(*client, didFetchDataLoadedString(String("hello"))); |
| 125 EXPECT_CALL(checkpoint, Call(2)); | 133 EXPECT_CALL(checkpoint, Call(2)); |
| 126 | 134 |
| 127 OwnPtr<ReplayingHandle> handle = ReplayingHandle::create(); | 135 OwnPtr<ReplayingHandle> handle = ReplayingHandle::create(); |
| 128 handle->add(Command(Command::Data, "hello")); | 136 handle->add(Command(Command::Data, "hello")); |
| 129 handle->add(Command(Command::Done)); | 137 handle->add(Command(Command::Done)); |
| 130 BodyStreamBuffer* buffer = new BodyStreamBuffer(createFetchDataConsumerHandl
eFromWebHandle(handle.release())); | 138 BodyStreamBuffer* buffer = new BodyStreamBuffer(createFetchDataConsumerHandl
eFromWebHandle(handle.release())); |
| 131 buffer->startLoading(executionContext(), FetchDataLoader::createLoaderAsStri
ng(), client); | 139 buffer->startLoading(executionContext(), FetchDataLoader::createLoaderAsStri
ng(), client); |
| 132 | 140 |
| 133 EXPECT_TRUE(buffer->isLocked()); | 141 EXPECT_TRUE(buffer->stream()->isLocked()); |
| 142 EXPECT_TRUE(buffer->stream()->isDisturbed()); |
| 134 EXPECT_TRUE(buffer->hasPendingActivity()); | 143 EXPECT_TRUE(buffer->hasPendingActivity()); |
| 135 | 144 |
| 136 checkpoint.Call(1); | 145 checkpoint.Call(1); |
| 137 testing::runPendingTasks(); | 146 testing::runPendingTasks(); |
| 138 checkpoint.Call(2); | 147 checkpoint.Call(2); |
| 139 | 148 |
| 140 EXPECT_FALSE(buffer->isLocked()); | 149 EXPECT_TRUE(buffer->stream()->isLocked()); |
| 150 EXPECT_TRUE(buffer->stream()->isDisturbed()); |
| 141 EXPECT_FALSE(buffer->hasPendingActivity()); | 151 EXPECT_FALSE(buffer->hasPendingActivity()); |
| 142 } | 152 } |
| 143 | 153 |
| 144 TEST_F(BodyStreamBufferTest, LockClosedHandle) | 154 TEST_F(BodyStreamBufferTest, ReleaseClosedHandle) |
| 145 { | 155 { |
| 146 BodyStreamBuffer* buffer = new BodyStreamBuffer(createFetchDataConsumerHandl
eFromWebHandle(createDoneDataConsumerHandle())); | 156 BodyStreamBuffer* buffer = new BodyStreamBuffer(createFetchDataConsumerHandl
eFromWebHandle(createDoneDataConsumerHandle())); |
| 147 | 157 |
| 148 EXPECT_EQ(ReadableStream::Readable, buffer->stream()->stateInternal()); | 158 EXPECT_EQ(ReadableStream::Readable, buffer->stream()->stateInternal()); |
| 149 testing::runPendingTasks(); | 159 testing::runPendingTasks(); |
| 150 EXPECT_EQ(ReadableStream::Closed, buffer->stream()->stateInternal()); | 160 EXPECT_EQ(ReadableStream::Closed, buffer->stream()->stateInternal()); |
| 151 | 161 |
| 152 EXPECT_FALSE(buffer->isLocked()); | 162 EXPECT_FALSE(buffer->stream()->isLocked()); |
| 153 OwnPtr<FetchDataConsumerHandle> handle = buffer->lock(executionContext()); | 163 EXPECT_FALSE(buffer->stream()->isDisturbed()); |
| 164 EXPECT_FALSE(buffer->hasPendingActivity()); |
| 165 OwnPtr<FetchDataConsumerHandle> handle = buffer->releaseHandle(executionCont
ext()); |
| 166 |
| 154 EXPECT_TRUE(handle); | 167 EXPECT_TRUE(handle); |
| 155 EXPECT_FALSE(buffer->isLocked()); | 168 EXPECT_TRUE(buffer->stream()->isLocked()); |
| 156 | 169 EXPECT_TRUE(buffer->stream()->isDisturbed()); |
| 157 OwnPtr<FetchDataConsumerHandle> handle2 = buffer->lock(executionContext()); | 170 EXPECT_FALSE(buffer->hasPendingActivity()); |
| 158 EXPECT_TRUE(handle2); | |
| 159 EXPECT_FALSE(buffer->isLocked()); | |
| 160 EXPECT_TRUE(buffer->hasPendingActivity()); | |
| 161 } | 171 } |
| 162 | 172 |
| 163 TEST_F(BodyStreamBufferTest, LoadClosedHandle) | 173 TEST_F(BodyStreamBufferTest, LoadClosedHandle) |
| 164 { | 174 { |
| 165 Checkpoint checkpoint; | 175 Checkpoint checkpoint; |
| 166 MockFetchDataLoaderClient* client1 = MockFetchDataLoaderClient::create(); | 176 MockFetchDataLoaderClient* client1 = MockFetchDataLoaderClient::create(); |
| 167 MockFetchDataLoaderClient* client2 = MockFetchDataLoaderClient::create(); | |
| 168 | 177 |
| 169 InSequence s; | 178 InSequence s; |
| 170 EXPECT_CALL(checkpoint, Call(1)); | 179 EXPECT_CALL(checkpoint, Call(1)); |
| 171 EXPECT_CALL(*client1, didFetchDataLoadedString(String(""))); | 180 EXPECT_CALL(*client1, didFetchDataLoadedString(String(""))); |
| 172 EXPECT_CALL(*client2, didFetchDataLoadedString(String(""))); | |
| 173 EXPECT_CALL(checkpoint, Call(2)); | 181 EXPECT_CALL(checkpoint, Call(2)); |
| 174 | 182 |
| 175 BodyStreamBuffer* buffer = new BodyStreamBuffer(createFetchDataConsumerHandl
eFromWebHandle(createDoneDataConsumerHandle())); | 183 BodyStreamBuffer* buffer = new BodyStreamBuffer(createFetchDataConsumerHandl
eFromWebHandle(createDoneDataConsumerHandle())); |
| 176 | 184 |
| 177 EXPECT_EQ(ReadableStream::Readable, buffer->stream()->stateInternal()); | 185 EXPECT_EQ(ReadableStream::Readable, buffer->stream()->stateInternal()); |
| 178 testing::runPendingTasks(); | 186 testing::runPendingTasks(); |
| 179 EXPECT_EQ(ReadableStream::Closed, buffer->stream()->stateInternal()); | 187 EXPECT_EQ(ReadableStream::Closed, buffer->stream()->stateInternal()); |
| 180 | 188 |
| 189 EXPECT_FALSE(buffer->stream()->isLocked()); |
| 190 EXPECT_FALSE(buffer->stream()->isDisturbed()); |
| 191 EXPECT_FALSE(buffer->hasPendingActivity()); |
| 192 |
| 181 buffer->startLoading(executionContext(), FetchDataLoader::createLoaderAsStri
ng(), client1); | 193 buffer->startLoading(executionContext(), FetchDataLoader::createLoaderAsStri
ng(), client1); |
| 182 EXPECT_FALSE(buffer->isLocked()); | 194 EXPECT_TRUE(buffer->stream()->isLocked()); |
| 183 buffer->startLoading(executionContext(), FetchDataLoader::createLoaderAsStri
ng(), client2); | 195 EXPECT_TRUE(buffer->stream()->isDisturbed()); |
| 184 EXPECT_FALSE(buffer->isLocked()); | |
| 185 EXPECT_TRUE(buffer->hasPendingActivity()); | 196 EXPECT_TRUE(buffer->hasPendingActivity()); |
| 186 | 197 |
| 187 checkpoint.Call(1); | 198 checkpoint.Call(1); |
| 188 testing::runPendingTasks(); | 199 testing::runPendingTasks(); |
| 189 checkpoint.Call(2); | 200 checkpoint.Call(2); |
| 190 | 201 |
| 191 EXPECT_FALSE(buffer->isLocked()); | 202 EXPECT_TRUE(buffer->stream()->isLocked()); |
| 203 EXPECT_TRUE(buffer->stream()->isDisturbed()); |
| 192 EXPECT_FALSE(buffer->hasPendingActivity()); | 204 EXPECT_FALSE(buffer->hasPendingActivity()); |
| 193 } | 205 } |
| 194 | 206 |
| 195 TEST_F(BodyStreamBufferTest, LockErroredHandle) | 207 TEST_F(BodyStreamBufferTest, ReleaseErroredHandle) |
| 196 { | 208 { |
| 197 BodyStreamBuffer* buffer = new BodyStreamBuffer(createFetchDataConsumerHandl
eFromWebHandle(createUnexpectedErrorDataConsumerHandle())); | 209 BodyStreamBuffer* buffer = new BodyStreamBuffer(createFetchDataConsumerHandl
eFromWebHandle(createUnexpectedErrorDataConsumerHandle())); |
| 198 | 210 |
| 199 EXPECT_EQ(ReadableStream::Readable, buffer->stream()->stateInternal()); | 211 EXPECT_EQ(ReadableStream::Readable, buffer->stream()->stateInternal()); |
| 200 testing::runPendingTasks(); | 212 testing::runPendingTasks(); |
| 201 EXPECT_EQ(ReadableStream::Errored, buffer->stream()->stateInternal()); | 213 EXPECT_EQ(ReadableStream::Errored, buffer->stream()->stateInternal()); |
| 202 | 214 |
| 203 EXPECT_FALSE(buffer->isLocked()); | 215 EXPECT_FALSE(buffer->stream()->isLocked()); |
| 204 OwnPtr<FetchDataConsumerHandle> handle = buffer->lock(executionContext()); | 216 EXPECT_FALSE(buffer->stream()->isDisturbed()); |
| 217 EXPECT_FALSE(buffer->hasPendingActivity()); |
| 218 OwnPtr<FetchDataConsumerHandle> handle = buffer->releaseHandle(executionCont
ext()); |
| 205 EXPECT_TRUE(handle); | 219 EXPECT_TRUE(handle); |
| 206 EXPECT_FALSE(buffer->isLocked()); | 220 EXPECT_TRUE(buffer->stream()->isLocked()); |
| 207 | 221 EXPECT_TRUE(buffer->stream()->isDisturbed()); |
| 208 OwnPtr<FetchDataConsumerHandle> handle2 = buffer->lock(executionContext()); | 222 EXPECT_FALSE(buffer->hasPendingActivity()); |
| 209 EXPECT_TRUE(handle2); | |
| 210 EXPECT_FALSE(buffer->isLocked()); | |
| 211 EXPECT_TRUE(buffer->hasPendingActivity()); | |
| 212 } | 223 } |
| 213 | 224 |
| 214 TEST_F(BodyStreamBufferTest, LoadErroredHandle) | 225 TEST_F(BodyStreamBufferTest, LoadErroredHandle) |
| 215 { | 226 { |
| 216 Checkpoint checkpoint; | 227 Checkpoint checkpoint; |
| 217 MockFetchDataLoaderClient* client1 = MockFetchDataLoaderClient::create(); | 228 MockFetchDataLoaderClient* client1 = MockFetchDataLoaderClient::create(); |
| 218 MockFetchDataLoaderClient* client2 = MockFetchDataLoaderClient::create(); | |
| 219 | 229 |
| 220 InSequence s; | 230 InSequence s; |
| 221 EXPECT_CALL(checkpoint, Call(1)); | 231 EXPECT_CALL(checkpoint, Call(1)); |
| 222 EXPECT_CALL(*client1, didFetchDataLoadFailed()); | 232 EXPECT_CALL(*client1, didFetchDataLoadFailed()); |
| 223 EXPECT_CALL(*client2, didFetchDataLoadFailed()); | |
| 224 EXPECT_CALL(checkpoint, Call(2)); | 233 EXPECT_CALL(checkpoint, Call(2)); |
| 225 | 234 |
| 226 BodyStreamBuffer* buffer = new BodyStreamBuffer(createFetchDataConsumerHandl
eFromWebHandle(createUnexpectedErrorDataConsumerHandle())); | 235 BodyStreamBuffer* buffer = new BodyStreamBuffer(createFetchDataConsumerHandl
eFromWebHandle(createUnexpectedErrorDataConsumerHandle())); |
| 227 | 236 |
| 228 EXPECT_EQ(ReadableStream::Readable, buffer->stream()->stateInternal()); | 237 EXPECT_EQ(ReadableStream::Readable, buffer->stream()->stateInternal()); |
| 229 testing::runPendingTasks(); | 238 testing::runPendingTasks(); |
| 230 EXPECT_EQ(ReadableStream::Errored, buffer->stream()->stateInternal()); | 239 EXPECT_EQ(ReadableStream::Errored, buffer->stream()->stateInternal()); |
| 231 | 240 |
| 241 EXPECT_FALSE(buffer->stream()->isLocked()); |
| 242 EXPECT_FALSE(buffer->stream()->isDisturbed()); |
| 243 EXPECT_FALSE(buffer->hasPendingActivity()); |
| 232 buffer->startLoading(executionContext(), FetchDataLoader::createLoaderAsStri
ng(), client1); | 244 buffer->startLoading(executionContext(), FetchDataLoader::createLoaderAsStri
ng(), client1); |
| 233 EXPECT_FALSE(buffer->isLocked()); | 245 EXPECT_TRUE(buffer->stream()->isLocked()); |
| 234 buffer->startLoading(executionContext(), FetchDataLoader::createLoaderAsStri
ng(), client2); | 246 EXPECT_TRUE(buffer->stream()->isDisturbed()); |
| 235 EXPECT_FALSE(buffer->isLocked()); | |
| 236 EXPECT_TRUE(buffer->hasPendingActivity()); | 247 EXPECT_TRUE(buffer->hasPendingActivity()); |
| 237 | 248 |
| 238 checkpoint.Call(1); | 249 checkpoint.Call(1); |
| 239 testing::runPendingTasks(); | 250 testing::runPendingTasks(); |
| 240 checkpoint.Call(2); | 251 checkpoint.Call(2); |
| 241 | 252 |
| 242 EXPECT_FALSE(buffer->isLocked()); | 253 EXPECT_TRUE(buffer->stream()->isLocked()); |
| 254 EXPECT_TRUE(buffer->stream()->isDisturbed()); |
| 243 EXPECT_FALSE(buffer->hasPendingActivity()); | 255 EXPECT_FALSE(buffer->hasPendingActivity()); |
| 244 } | 256 } |
| 245 | 257 |
| 246 TEST_F(BodyStreamBufferTest, LoaderShouldBeKeptAliveByBodyStreamBuffer) | 258 TEST_F(BodyStreamBufferTest, LoaderShouldBeKeptAliveByBodyStreamBuffer) |
| 247 { | 259 { |
| 248 Checkpoint checkpoint; | 260 Checkpoint checkpoint; |
| 249 MockFetchDataLoaderClient* client = MockFetchDataLoaderClient::create(); | 261 MockFetchDataLoaderClient* client = MockFetchDataLoaderClient::create(); |
| 250 | 262 |
| 251 InSequence s; | 263 InSequence s; |
| 252 EXPECT_CALL(checkpoint, Call(1)); | 264 EXPECT_CALL(checkpoint, Call(1)); |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 301 BodyStreamBuffer* buffer = new BodyStreamBuffer(handle.release()); | 313 BodyStreamBuffer* buffer = new BodyStreamBuffer(handle.release()); |
| 302 checkpoint.Call(1); | 314 checkpoint.Call(1); |
| 303 ScriptValue reason(scriptState(), v8String(scriptState()->isolate(), "reason
")); | 315 ScriptValue reason(scriptState(), v8String(scriptState()->isolate(), "reason
")); |
| 304 buffer->cancelSource(scriptState(), reason); | 316 buffer->cancelSource(scriptState(), reason); |
| 305 checkpoint.Call(2); | 317 checkpoint.Call(2); |
| 306 } | 318 } |
| 307 | 319 |
| 308 } // namespace | 320 } // namespace |
| 309 | 321 |
| 310 } // namespace blink | 322 } // namespace blink |
| OLD | NEW |