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

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

Issue 2526293002: [wrapper-tracing] Untangle non-trivial mixin ctors (Closed)
Patch Set: s/new BodyStreamBuffer/BodyStreamBuffer::create/ Created 4 years 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/dom/Document.h" 8 #include "core/dom/Document.h"
9 #include "core/html/FormData.h" 9 #include "core/html/FormData.h"
10 #include "modules/fetch/BlobBytesConsumer.h" 10 #include "modules/fetch/BlobBytesConsumer.h"
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
79 EXPECT_CALL(checkpoint, Call(1)); 79 EXPECT_CALL(checkpoint, Call(1));
80 EXPECT_CALL(checkpoint, Call(2)); 80 EXPECT_CALL(checkpoint, Call(2));
81 EXPECT_CALL(*client2, didFetchDataLoadedString(String("hello, world"))); 81 EXPECT_CALL(*client2, didFetchDataLoadedString(String("hello, world")));
82 EXPECT_CALL(checkpoint, Call(3)); 82 EXPECT_CALL(checkpoint, Call(3));
83 EXPECT_CALL(checkpoint, Call(4)); 83 EXPECT_CALL(checkpoint, Call(4));
84 84
85 ReplayingBytesConsumer* src = new ReplayingBytesConsumer(&scope.document()); 85 ReplayingBytesConsumer* src = new ReplayingBytesConsumer(&scope.document());
86 src->add(Command(Command::Data, "hello, ")); 86 src->add(Command(Command::Data, "hello, "));
87 src->add(Command(Command::Data, "world")); 87 src->add(Command(Command::Data, "world"));
88 src->add(Command(Command::Done)); 88 src->add(Command(Command::Done));
89 BodyStreamBuffer* buffer = new BodyStreamBuffer(scope.getScriptState(), src); 89 BodyStreamBuffer* buffer =
90 BodyStreamBuffer::create(scope.getScriptState(), src);
90 91
91 BodyStreamBuffer* new1; 92 BodyStreamBuffer* new1;
92 BodyStreamBuffer* new2; 93 BodyStreamBuffer* new2;
93 buffer->tee(&new1, &new2); 94 buffer->tee(&new1, &new2);
94 95
95 EXPECT_TRUE(buffer->isStreamLocked()); 96 EXPECT_TRUE(buffer->isStreamLocked());
96 EXPECT_TRUE(buffer->isStreamDisturbed()); 97 EXPECT_TRUE(buffer->isStreamDisturbed());
97 EXPECT_FALSE(buffer->hasPendingActivity()); 98 EXPECT_FALSE(buffer->hasPendingActivity());
98 99
99 checkpoint.Call(0); 100 checkpoint.Call(0);
(...skipping 23 matching lines...) Expand all
123 124
124 InSequence s; 125 InSequence s;
125 EXPECT_CALL(checkpoint, Call(1)); 126 EXPECT_CALL(checkpoint, Call(1));
126 EXPECT_CALL(*client1, didFetchDataLoadedString(String("ABUX"))); 127 EXPECT_CALL(*client1, didFetchDataLoadedString(String("ABUX")));
127 EXPECT_CALL(checkpoint, Call(2)); 128 EXPECT_CALL(checkpoint, Call(2));
128 EXPECT_CALL(checkpoint, Call(3)); 129 EXPECT_CALL(checkpoint, Call(3));
129 EXPECT_CALL(*client2, didFetchDataLoadedString(String("ABUX"))); 130 EXPECT_CALL(*client2, didFetchDataLoadedString(String("ABUX")));
130 EXPECT_CALL(checkpoint, Call(4)); 131 EXPECT_CALL(checkpoint, Call(4));
131 132
132 BodyStreamBuffer* buffer = 133 BodyStreamBuffer* buffer =
133 new BodyStreamBuffer(scope.getScriptState(), stream); 134 BodyStreamBuffer::create(scope.getScriptState(), stream);
134 135
135 BodyStreamBuffer* new1; 136 BodyStreamBuffer* new1;
136 BodyStreamBuffer* new2; 137 BodyStreamBuffer* new2;
137 buffer->tee(&new1, &new2); 138 buffer->tee(&new1, &new2);
138 139
139 EXPECT_TRUE(buffer->isStreamLocked()); 140 EXPECT_TRUE(buffer->isStreamLocked());
140 // Note that this behavior is slightly different from for the behavior of 141 // Note that this behavior is slightly different from for the behavior of
141 // a BodyStreamBuffer made from a BytesConsumer. See the above test. In this 142 // a BodyStreamBuffer made from a BytesConsumer. See the above test. In this
142 // test, the stream will get disturbed when the microtask is performed. 143 // test, the stream will get disturbed when the microtask is performed.
143 // TODO(yhirano): A uniformed behavior is preferred. 144 // TODO(yhirano): A uniformed behavior is preferred.
(...skipping 17 matching lines...) Expand all
161 checkpoint.Call(4); 162 checkpoint.Call(4);
162 } 163 }
163 164
164 TEST_F(BodyStreamBufferTest, DrainAsBlobDataHandle) { 165 TEST_F(BodyStreamBufferTest, DrainAsBlobDataHandle) {
165 V8TestingScope scope; 166 V8TestingScope scope;
166 std::unique_ptr<BlobData> data = BlobData::create(); 167 std::unique_ptr<BlobData> data = BlobData::create();
167 data->appendText("hello", false); 168 data->appendText("hello", false);
168 auto size = data->length(); 169 auto size = data->length();
169 RefPtr<BlobDataHandle> blobDataHandle = 170 RefPtr<BlobDataHandle> blobDataHandle =
170 BlobDataHandle::create(std::move(data), size); 171 BlobDataHandle::create(std::move(data), size);
171 BodyStreamBuffer* buffer = new BodyStreamBuffer( 172 BodyStreamBuffer* buffer = BodyStreamBuffer::create(
172 scope.getScriptState(), 173 scope.getScriptState(),
173 new BlobBytesConsumer(scope.getExecutionContext(), blobDataHandle)); 174 new BlobBytesConsumer(scope.getExecutionContext(), blobDataHandle));
174 175
175 EXPECT_FALSE(buffer->isStreamLocked()); 176 EXPECT_FALSE(buffer->isStreamLocked());
176 EXPECT_FALSE(buffer->isStreamDisturbed()); 177 EXPECT_FALSE(buffer->isStreamDisturbed());
177 EXPECT_FALSE(buffer->hasPendingActivity()); 178 EXPECT_FALSE(buffer->hasPendingActivity());
178 RefPtr<BlobDataHandle> outputBlobDataHandle = buffer->drainAsBlobDataHandle( 179 RefPtr<BlobDataHandle> outputBlobDataHandle = buffer->drainAsBlobDataHandle(
179 BytesConsumer::BlobSizePolicy::AllowBlobWithInvalidSize); 180 BytesConsumer::BlobSizePolicy::AllowBlobWithInvalidSize);
180 181
181 EXPECT_TRUE(buffer->isStreamLocked()); 182 EXPECT_TRUE(buffer->isStreamLocked());
182 EXPECT_TRUE(buffer->isStreamDisturbed()); 183 EXPECT_TRUE(buffer->isStreamDisturbed());
183 EXPECT_FALSE(buffer->hasPendingActivity()); 184 EXPECT_FALSE(buffer->hasPendingActivity());
184 EXPECT_EQ(blobDataHandle, outputBlobDataHandle); 185 EXPECT_EQ(blobDataHandle, outputBlobDataHandle);
185 } 186 }
186 187
187 TEST_F(BodyStreamBufferTest, DrainAsBlobDataHandleReturnsNull) { 188 TEST_F(BodyStreamBufferTest, DrainAsBlobDataHandleReturnsNull) {
188 V8TestingScope scope; 189 V8TestingScope scope;
189 // This BytesConsumer is not drainable. 190 // This BytesConsumer is not drainable.
190 BytesConsumer* src = new ReplayingBytesConsumer(&scope.document()); 191 BytesConsumer* src = new ReplayingBytesConsumer(&scope.document());
191 BodyStreamBuffer* buffer = new BodyStreamBuffer(scope.getScriptState(), src); 192 BodyStreamBuffer* buffer =
193 BodyStreamBuffer::create(scope.getScriptState(), src);
192 194
193 EXPECT_FALSE(buffer->isStreamLocked()); 195 EXPECT_FALSE(buffer->isStreamLocked());
194 EXPECT_FALSE(buffer->isStreamDisturbed()); 196 EXPECT_FALSE(buffer->isStreamDisturbed());
195 EXPECT_FALSE(buffer->hasPendingActivity()); 197 EXPECT_FALSE(buffer->hasPendingActivity());
196 198
197 EXPECT_FALSE(buffer->drainAsBlobDataHandle( 199 EXPECT_FALSE(buffer->drainAsBlobDataHandle(
198 BytesConsumer::BlobSizePolicy::AllowBlobWithInvalidSize)); 200 BytesConsumer::BlobSizePolicy::AllowBlobWithInvalidSize));
199 201
200 EXPECT_FALSE(buffer->isStreamLocked()); 202 EXPECT_FALSE(buffer->isStreamLocked());
201 EXPECT_FALSE(buffer->isStreamDisturbed()); 203 EXPECT_FALSE(buffer->isStreamDisturbed());
202 EXPECT_FALSE(buffer->hasPendingActivity()); 204 EXPECT_FALSE(buffer->hasPendingActivity());
203 } 205 }
204 206
205 TEST_F(BodyStreamBufferTest, 207 TEST_F(BodyStreamBufferTest,
206 DrainAsBlobFromBufferMadeFromBufferMadeFromStream) { 208 DrainAsBlobFromBufferMadeFromBufferMadeFromStream) {
207 V8TestingScope scope; 209 V8TestingScope scope;
208 ScriptValue stream = 210 ScriptValue stream =
209 evalWithPrintingError(scope.getScriptState(), "new ReadableStream()"); 211 evalWithPrintingError(scope.getScriptState(), "new ReadableStream()");
210 BodyStreamBuffer* buffer = 212 BodyStreamBuffer* buffer =
211 new BodyStreamBuffer(scope.getScriptState(), stream); 213 BodyStreamBuffer::create(scope.getScriptState(), stream);
212 214
213 EXPECT_FALSE(buffer->hasPendingActivity()); 215 EXPECT_FALSE(buffer->hasPendingActivity());
214 EXPECT_FALSE(buffer->isStreamLocked()); 216 EXPECT_FALSE(buffer->isStreamLocked());
215 EXPECT_FALSE(buffer->isStreamDisturbed()); 217 EXPECT_FALSE(buffer->isStreamDisturbed());
216 EXPECT_TRUE(buffer->isStreamReadable()); 218 EXPECT_TRUE(buffer->isStreamReadable());
217 219
218 EXPECT_FALSE(buffer->drainAsBlobDataHandle( 220 EXPECT_FALSE(buffer->drainAsBlobDataHandle(
219 BytesConsumer::BlobSizePolicy::AllowBlobWithInvalidSize)); 221 BytesConsumer::BlobSizePolicy::AllowBlobWithInvalidSize));
220 222
221 EXPECT_FALSE(buffer->hasPendingActivity()); 223 EXPECT_FALSE(buffer->hasPendingActivity());
222 EXPECT_FALSE(buffer->isStreamLocked()); 224 EXPECT_FALSE(buffer->isStreamLocked());
223 EXPECT_FALSE(buffer->isStreamDisturbed()); 225 EXPECT_FALSE(buffer->isStreamDisturbed());
224 EXPECT_TRUE(buffer->isStreamReadable()); 226 EXPECT_TRUE(buffer->isStreamReadable());
225 } 227 }
226 228
227 TEST_F(BodyStreamBufferTest, DrainAsFormData) { 229 TEST_F(BodyStreamBufferTest, DrainAsFormData) {
228 V8TestingScope scope; 230 V8TestingScope scope;
229 FormData* data = FormData::create(UTF8Encoding()); 231 FormData* data = FormData::create(UTF8Encoding());
230 data->append("name1", "value1"); 232 data->append("name1", "value1");
231 data->append("name2", "value2"); 233 data->append("name2", "value2");
232 RefPtr<EncodedFormData> inputFormData = data->encodeMultiPartFormData(); 234 RefPtr<EncodedFormData> inputFormData = data->encodeMultiPartFormData();
233 235
234 BodyStreamBuffer* buffer = new BodyStreamBuffer( 236 BodyStreamBuffer* buffer = BodyStreamBuffer::create(
235 scope.getScriptState(), 237 scope.getScriptState(),
236 new FormDataBytesConsumer(scope.getExecutionContext(), inputFormData)); 238 new FormDataBytesConsumer(scope.getExecutionContext(), inputFormData));
237 239
238 EXPECT_FALSE(buffer->isStreamLocked()); 240 EXPECT_FALSE(buffer->isStreamLocked());
239 EXPECT_FALSE(buffer->isStreamDisturbed()); 241 EXPECT_FALSE(buffer->isStreamDisturbed());
240 EXPECT_FALSE(buffer->hasPendingActivity()); 242 EXPECT_FALSE(buffer->hasPendingActivity());
241 RefPtr<EncodedFormData> outputFormData = buffer->drainAsFormData(); 243 RefPtr<EncodedFormData> outputFormData = buffer->drainAsFormData();
242 244
243 EXPECT_TRUE(buffer->isStreamLocked()); 245 EXPECT_TRUE(buffer->isStreamLocked());
244 EXPECT_TRUE(buffer->isStreamDisturbed()); 246 EXPECT_TRUE(buffer->isStreamDisturbed());
245 EXPECT_FALSE(buffer->hasPendingActivity()); 247 EXPECT_FALSE(buffer->hasPendingActivity());
246 EXPECT_EQ(outputFormData->flattenToString(), 248 EXPECT_EQ(outputFormData->flattenToString(),
247 inputFormData->flattenToString()); 249 inputFormData->flattenToString());
248 } 250 }
249 251
250 TEST_F(BodyStreamBufferTest, DrainAsFormDataReturnsNull) { 252 TEST_F(BodyStreamBufferTest, DrainAsFormDataReturnsNull) {
251 V8TestingScope scope; 253 V8TestingScope scope;
252 // This BytesConsumer is not drainable. 254 // This BytesConsumer is not drainable.
253 BytesConsumer* src = new ReplayingBytesConsumer(&scope.document()); 255 BytesConsumer* src = new ReplayingBytesConsumer(&scope.document());
254 BodyStreamBuffer* buffer = new BodyStreamBuffer(scope.getScriptState(), src); 256 BodyStreamBuffer* buffer =
257 BodyStreamBuffer::create(scope.getScriptState(), src);
255 258
256 EXPECT_FALSE(buffer->isStreamLocked()); 259 EXPECT_FALSE(buffer->isStreamLocked());
257 EXPECT_FALSE(buffer->isStreamDisturbed()); 260 EXPECT_FALSE(buffer->isStreamDisturbed());
258 EXPECT_FALSE(buffer->hasPendingActivity()); 261 EXPECT_FALSE(buffer->hasPendingActivity());
259 262
260 EXPECT_FALSE(buffer->drainAsFormData()); 263 EXPECT_FALSE(buffer->drainAsFormData());
261 264
262 EXPECT_FALSE(buffer->isStreamLocked()); 265 EXPECT_FALSE(buffer->isStreamLocked());
263 EXPECT_FALSE(buffer->isStreamDisturbed()); 266 EXPECT_FALSE(buffer->isStreamDisturbed());
264 EXPECT_FALSE(buffer->hasPendingActivity()); 267 EXPECT_FALSE(buffer->hasPendingActivity());
265 } 268 }
266 269
267 TEST_F(BodyStreamBufferTest, 270 TEST_F(BodyStreamBufferTest,
268 DrainAsFormDataFromBufferMadeFromBufferMadeFromStream) { 271 DrainAsFormDataFromBufferMadeFromBufferMadeFromStream) {
269 V8TestingScope scope; 272 V8TestingScope scope;
270 ScriptValue stream = 273 ScriptValue stream =
271 evalWithPrintingError(scope.getScriptState(), "new ReadableStream()"); 274 evalWithPrintingError(scope.getScriptState(), "new ReadableStream()");
272 BodyStreamBuffer* buffer = 275 BodyStreamBuffer* buffer =
273 new BodyStreamBuffer(scope.getScriptState(), stream); 276 BodyStreamBuffer::create(scope.getScriptState(), stream);
274 277
275 EXPECT_FALSE(buffer->hasPendingActivity()); 278 EXPECT_FALSE(buffer->hasPendingActivity());
276 EXPECT_FALSE(buffer->isStreamLocked()); 279 EXPECT_FALSE(buffer->isStreamLocked());
277 EXPECT_FALSE(buffer->isStreamDisturbed()); 280 EXPECT_FALSE(buffer->isStreamDisturbed());
278 EXPECT_TRUE(buffer->isStreamReadable()); 281 EXPECT_TRUE(buffer->isStreamReadable());
279 282
280 EXPECT_FALSE(buffer->drainAsFormData()); 283 EXPECT_FALSE(buffer->drainAsFormData());
281 284
282 EXPECT_FALSE(buffer->hasPendingActivity()); 285 EXPECT_FALSE(buffer->hasPendingActivity());
283 EXPECT_FALSE(buffer->isStreamLocked()); 286 EXPECT_FALSE(buffer->isStreamLocked());
(...skipping 10 matching lines...) Expand all
294 InSequence s; 297 InSequence s;
295 EXPECT_CALL(checkpoint, Call(1)); 298 EXPECT_CALL(checkpoint, Call(1));
296 EXPECT_CALL(*client, didFetchDataLoadedArrayBufferMock(_)) 299 EXPECT_CALL(*client, didFetchDataLoadedArrayBufferMock(_))
297 .WillOnce(SaveArg<0>(&arrayBuffer)); 300 .WillOnce(SaveArg<0>(&arrayBuffer));
298 EXPECT_CALL(checkpoint, Call(2)); 301 EXPECT_CALL(checkpoint, Call(2));
299 302
300 ReplayingBytesConsumer* src = new ReplayingBytesConsumer(&scope.document()); 303 ReplayingBytesConsumer* src = new ReplayingBytesConsumer(&scope.document());
301 src->add(Command(Command::Wait)); 304 src->add(Command(Command::Wait));
302 src->add(Command(Command::Data, "hello")); 305 src->add(Command(Command::Data, "hello"));
303 src->add(Command(Command::Done)); 306 src->add(Command(Command::Done));
304 BodyStreamBuffer* buffer = new BodyStreamBuffer(scope.getScriptState(), src); 307 BodyStreamBuffer* buffer =
308 BodyStreamBuffer::create(scope.getScriptState(), src);
305 buffer->startLoading(FetchDataLoader::createLoaderAsArrayBuffer(), client); 309 buffer->startLoading(FetchDataLoader::createLoaderAsArrayBuffer(), client);
306 310
307 EXPECT_TRUE(buffer->isStreamLocked()); 311 EXPECT_TRUE(buffer->isStreamLocked());
308 EXPECT_TRUE(buffer->isStreamDisturbed()); 312 EXPECT_TRUE(buffer->isStreamDisturbed());
309 EXPECT_TRUE(buffer->hasPendingActivity()); 313 EXPECT_TRUE(buffer->hasPendingActivity());
310 314
311 checkpoint.Call(1); 315 checkpoint.Call(1);
312 testing::runPendingTasks(); 316 testing::runPendingTasks();
313 checkpoint.Call(2); 317 checkpoint.Call(2);
314 318
(...skipping 14 matching lines...) Expand all
329 InSequence s; 333 InSequence s;
330 EXPECT_CALL(checkpoint, Call(1)); 334 EXPECT_CALL(checkpoint, Call(1));
331 EXPECT_CALL(*client, didFetchDataLoadedBlobHandleMock(_)) 335 EXPECT_CALL(*client, didFetchDataLoadedBlobHandleMock(_))
332 .WillOnce(SaveArg<0>(&blobDataHandle)); 336 .WillOnce(SaveArg<0>(&blobDataHandle));
333 EXPECT_CALL(checkpoint, Call(2)); 337 EXPECT_CALL(checkpoint, Call(2));
334 338
335 ReplayingBytesConsumer* src = new ReplayingBytesConsumer(&scope.document()); 339 ReplayingBytesConsumer* src = new ReplayingBytesConsumer(&scope.document());
336 src->add(Command(Command::Wait)); 340 src->add(Command(Command::Wait));
337 src->add(Command(Command::Data, "hello")); 341 src->add(Command(Command::Data, "hello"));
338 src->add(Command(Command::Done)); 342 src->add(Command(Command::Done));
339 BodyStreamBuffer* buffer = new BodyStreamBuffer(scope.getScriptState(), src); 343 BodyStreamBuffer* buffer =
344 BodyStreamBuffer::create(scope.getScriptState(), src);
340 buffer->startLoading(FetchDataLoader::createLoaderAsBlobHandle("text/plain"), 345 buffer->startLoading(FetchDataLoader::createLoaderAsBlobHandle("text/plain"),
341 client); 346 client);
342 347
343 EXPECT_TRUE(buffer->isStreamLocked()); 348 EXPECT_TRUE(buffer->isStreamLocked());
344 EXPECT_TRUE(buffer->isStreamDisturbed()); 349 EXPECT_TRUE(buffer->isStreamDisturbed());
345 EXPECT_TRUE(buffer->hasPendingActivity()); 350 EXPECT_TRUE(buffer->hasPendingActivity());
346 351
347 checkpoint.Call(1); 352 checkpoint.Call(1);
348 testing::runPendingTasks(); 353 testing::runPendingTasks();
349 checkpoint.Call(2); 354 checkpoint.Call(2);
(...skipping 11 matching lines...) Expand all
361 366
362 InSequence s; 367 InSequence s;
363 EXPECT_CALL(checkpoint, Call(1)); 368 EXPECT_CALL(checkpoint, Call(1));
364 EXPECT_CALL(*client, didFetchDataLoadedString(String("hello"))); 369 EXPECT_CALL(*client, didFetchDataLoadedString(String("hello")));
365 EXPECT_CALL(checkpoint, Call(2)); 370 EXPECT_CALL(checkpoint, Call(2));
366 371
367 ReplayingBytesConsumer* src = new ReplayingBytesConsumer(&scope.document()); 372 ReplayingBytesConsumer* src = new ReplayingBytesConsumer(&scope.document());
368 src->add(Command(Command::Wait)); 373 src->add(Command(Command::Wait));
369 src->add(Command(Command::Data, "hello")); 374 src->add(Command(Command::Data, "hello"));
370 src->add(Command(Command::Done)); 375 src->add(Command(Command::Done));
371 BodyStreamBuffer* buffer = new BodyStreamBuffer(scope.getScriptState(), src); 376 BodyStreamBuffer* buffer =
377 BodyStreamBuffer::create(scope.getScriptState(), src);
372 buffer->startLoading(FetchDataLoader::createLoaderAsString(), client); 378 buffer->startLoading(FetchDataLoader::createLoaderAsString(), client);
373 379
374 EXPECT_TRUE(buffer->isStreamLocked()); 380 EXPECT_TRUE(buffer->isStreamLocked());
375 EXPECT_TRUE(buffer->isStreamDisturbed()); 381 EXPECT_TRUE(buffer->isStreamDisturbed());
376 EXPECT_TRUE(buffer->hasPendingActivity()); 382 EXPECT_TRUE(buffer->hasPendingActivity());
377 383
378 checkpoint.Call(1); 384 checkpoint.Call(1);
379 testing::runPendingTasks(); 385 testing::runPendingTasks();
380 checkpoint.Call(2); 386 checkpoint.Call(2);
381 387
382 EXPECT_TRUE(buffer->isStreamLocked()); 388 EXPECT_TRUE(buffer->isStreamLocked());
383 EXPECT_TRUE(buffer->isStreamDisturbed()); 389 EXPECT_TRUE(buffer->isStreamDisturbed());
384 EXPECT_FALSE(buffer->hasPendingActivity()); 390 EXPECT_FALSE(buffer->hasPendingActivity());
385 } 391 }
386 392
387 TEST_F(BodyStreamBufferTest, LoadClosedHandle) { 393 TEST_F(BodyStreamBufferTest, LoadClosedHandle) {
388 V8TestingScope scope; 394 V8TestingScope scope;
389 Checkpoint checkpoint; 395 Checkpoint checkpoint;
390 MockFetchDataLoaderClient* client = MockFetchDataLoaderClient::create(); 396 MockFetchDataLoaderClient* client = MockFetchDataLoaderClient::create();
391 397
392 InSequence s; 398 InSequence s;
393 EXPECT_CALL(checkpoint, Call(1)); 399 EXPECT_CALL(checkpoint, Call(1));
394 EXPECT_CALL(*client, didFetchDataLoadedString(String(""))); 400 EXPECT_CALL(*client, didFetchDataLoadedString(String("")));
395 EXPECT_CALL(checkpoint, Call(2)); 401 EXPECT_CALL(checkpoint, Call(2));
396 402
397 BodyStreamBuffer* buffer = new BodyStreamBuffer( 403 BodyStreamBuffer* buffer = BodyStreamBuffer::create(
398 scope.getScriptState(), BytesConsumer::createClosed()); 404 scope.getScriptState(), BytesConsumer::createClosed());
399 405
400 EXPECT_TRUE(buffer->isStreamClosed()); 406 EXPECT_TRUE(buffer->isStreamClosed());
401 407
402 EXPECT_FALSE(buffer->isStreamLocked()); 408 EXPECT_FALSE(buffer->isStreamLocked());
403 EXPECT_FALSE(buffer->isStreamDisturbed()); 409 EXPECT_FALSE(buffer->isStreamDisturbed());
404 EXPECT_FALSE(buffer->hasPendingActivity()); 410 EXPECT_FALSE(buffer->hasPendingActivity());
405 411
406 checkpoint.Call(1); 412 checkpoint.Call(1);
407 buffer->startLoading(FetchDataLoader::createLoaderAsString(), client); 413 buffer->startLoading(FetchDataLoader::createLoaderAsString(), client);
408 checkpoint.Call(2); 414 checkpoint.Call(2);
409 415
410 EXPECT_TRUE(buffer->isStreamLocked()); 416 EXPECT_TRUE(buffer->isStreamLocked());
411 EXPECT_TRUE(buffer->isStreamDisturbed()); 417 EXPECT_TRUE(buffer->isStreamDisturbed());
412 EXPECT_FALSE(buffer->hasPendingActivity()); 418 EXPECT_FALSE(buffer->hasPendingActivity());
413 } 419 }
414 420
415 TEST_F(BodyStreamBufferTest, LoadErroredHandle) { 421 TEST_F(BodyStreamBufferTest, LoadErroredHandle) {
416 V8TestingScope scope; 422 V8TestingScope scope;
417 Checkpoint checkpoint; 423 Checkpoint checkpoint;
418 MockFetchDataLoaderClient* client = MockFetchDataLoaderClient::create(); 424 MockFetchDataLoaderClient* client = MockFetchDataLoaderClient::create();
419 425
420 InSequence s; 426 InSequence s;
421 EXPECT_CALL(checkpoint, Call(1)); 427 EXPECT_CALL(checkpoint, Call(1));
422 EXPECT_CALL(*client, didFetchDataLoadFailed()); 428 EXPECT_CALL(*client, didFetchDataLoadFailed());
423 EXPECT_CALL(checkpoint, Call(2)); 429 EXPECT_CALL(checkpoint, Call(2));
424 430
425 BodyStreamBuffer* buffer = new BodyStreamBuffer( 431 BodyStreamBuffer* buffer = BodyStreamBuffer::create(
426 scope.getScriptState(), 432 scope.getScriptState(),
427 BytesConsumer::createErrored(BytesConsumer::Error())); 433 BytesConsumer::createErrored(BytesConsumer::Error()));
428 434
429 EXPECT_TRUE(buffer->isStreamErrored()); 435 EXPECT_TRUE(buffer->isStreamErrored());
430 436
431 EXPECT_FALSE(buffer->isStreamLocked()); 437 EXPECT_FALSE(buffer->isStreamLocked());
432 EXPECT_FALSE(buffer->isStreamDisturbed()); 438 EXPECT_FALSE(buffer->isStreamDisturbed());
433 EXPECT_FALSE(buffer->hasPendingActivity()); 439 EXPECT_FALSE(buffer->hasPendingActivity());
434 440
435 checkpoint.Call(1); 441 checkpoint.Call(1);
(...skipping 13 matching lines...) Expand all
449 InSequence s; 455 InSequence s;
450 EXPECT_CALL(checkpoint, Call(1)); 456 EXPECT_CALL(checkpoint, Call(1));
451 EXPECT_CALL(*client, didFetchDataLoadedString(String("hello"))); 457 EXPECT_CALL(*client, didFetchDataLoadedString(String("hello")));
452 EXPECT_CALL(checkpoint, Call(2)); 458 EXPECT_CALL(checkpoint, Call(2));
453 459
454 ReplayingBytesConsumer* src = new ReplayingBytesConsumer(&scope.document()); 460 ReplayingBytesConsumer* src = new ReplayingBytesConsumer(&scope.document());
455 src->add(Command(Command::Wait)); 461 src->add(Command(Command::Wait));
456 src->add(Command(Command::Data, "hello")); 462 src->add(Command(Command::Data, "hello"));
457 src->add(Command(Command::Done)); 463 src->add(Command(Command::Done));
458 Persistent<BodyStreamBuffer> buffer = 464 Persistent<BodyStreamBuffer> buffer =
459 new BodyStreamBuffer(scope.getScriptState(), src); 465 BodyStreamBuffer::create(scope.getScriptState(), src);
460 buffer->startLoading(FetchDataLoader::createLoaderAsString(), client); 466 buffer->startLoading(FetchDataLoader::createLoaderAsString(), client);
461 467
462 ThreadState::current()->collectAllGarbage(); 468 ThreadState::current()->collectAllGarbage();
463 checkpoint.Call(1); 469 checkpoint.Call(1);
464 testing::runPendingTasks(); 470 testing::runPendingTasks();
465 checkpoint.Call(2); 471 checkpoint.Call(2);
466 } 472 }
467 473
468 TEST_F(BodyStreamBufferTest, SourceShouldBeCanceledWhenCanceled) { 474 TEST_F(BodyStreamBufferTest, SourceShouldBeCanceledWhenCanceled) {
469 V8TestingScope scope; 475 V8TestingScope scope;
470 ReplayingBytesConsumer* consumer = 476 ReplayingBytesConsumer* consumer =
471 new BytesConsumerTestUtil::ReplayingBytesConsumer( 477 new BytesConsumerTestUtil::ReplayingBytesConsumer(
472 scope.getExecutionContext()); 478 scope.getExecutionContext());
473 479
474 BodyStreamBuffer* buffer = 480 BodyStreamBuffer* buffer =
475 new BodyStreamBuffer(scope.getScriptState(), consumer); 481 BodyStreamBuffer::create(scope.getScriptState(), consumer);
476 ScriptValue reason(scope.getScriptState(), 482 ScriptValue reason(scope.getScriptState(),
477 v8String(scope.getScriptState()->isolate(), "reason")); 483 v8String(scope.getScriptState()->isolate(), "reason"));
478 EXPECT_FALSE(consumer->isCancelled()); 484 EXPECT_FALSE(consumer->isCancelled());
479 buffer->cancel(scope.getScriptState(), reason); 485 buffer->cancel(scope.getScriptState(), reason);
480 EXPECT_TRUE(consumer->isCancelled()); 486 EXPECT_TRUE(consumer->isCancelled());
481 } 487 }
482 488
483 } // namespace 489 } // namespace
484 490
485 } // namespace blink 491 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698