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

Side by Side Diff: third_party/WebKit/Source/core/streams/ReadableStreamReaderTest.cpp

Issue 1418813004: [Fetch API] Reflect spec changes of bodyUsed property (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "core/streams/ReadableStreamReader.h" 6 #include "core/streams/ReadableStreamReader.h"
7 7
8 #include "bindings/core/v8/ExceptionState.h" 8 #include "bindings/core/v8/ExceptionState.h"
9 #include "bindings/core/v8/ScriptState.h" 9 #include "bindings/core/v8/ScriptState.h"
10 #include "bindings/core/v8/ToV8.h" 10 #include "bindings/core/v8/ToV8.h"
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
174 174
175 reader->closed(scriptState()).then(createCaptor(&onFulfilled), createCaptor( &onRejected)); 175 reader->closed(scriptState()).then(createCaptor(&onFulfilled), createCaptor( &onRejected));
176 reader->releaseLock(exceptionState); 176 reader->releaseLock(exceptionState);
177 EXPECT_FALSE(reader->isActive()); 177 EXPECT_FALSE(reader->isActive());
178 EXPECT_FALSE(exceptionState.hadException()); 178 EXPECT_FALSE(exceptionState.hadException());
179 179
180 EXPECT_TRUE(onFulfilled.isNull()); 180 EXPECT_TRUE(onFulfilled.isNull());
181 EXPECT_TRUE(onRejected.isNull()); 181 EXPECT_TRUE(onRejected.isNull());
182 182
183 isolate()->RunMicrotasks(); 183 isolate()->RunMicrotasks();
184 EXPECT_EQ("undefined", onFulfilled); 184 EXPECT_TRUE(onFulfilled.isNull());
185 EXPECT_TRUE(onRejected.isNull()); 185 EXPECT_EQ("AbortError: the reader is already released", onRejected);
186 186
187 ReadableStreamReader* another = new ReadableStreamReader(executionContext(), m_stream); 187 ReadableStreamReader* another = new ReadableStreamReader(executionContext(), m_stream);
188 EXPECT_TRUE(another->isActive()); 188 EXPECT_TRUE(another->isActive());
189 EXPECT_FALSE(reader->isActive()); 189 EXPECT_FALSE(reader->isActive());
190 reader->releaseLock(exceptionState); 190 reader->releaseLock(exceptionState);
191 EXPECT_TRUE(another->isActive()); 191 EXPECT_TRUE(another->isActive());
192 EXPECT_FALSE(reader->isActive()); 192 EXPECT_FALSE(reader->isActive());
193 EXPECT_FALSE(exceptionState.hadException()); 193 EXPECT_FALSE(exceptionState.hadException());
194 } 194 }
195 195
196 TEST_F(ReadableStreamReaderTest, ReadAfterRelease) 196 TEST_F(ReadableStreamReaderTest, ReadAfterRelease)
197 { 197 {
198 ScriptState::Scope scope(scriptState()); 198 ScriptState::Scope scope(scriptState());
199 ExceptionState exceptionState(ExceptionState::ConstructionContext, "property ", "interface", scriptState()->context()->Global(), isolate()); 199 ExceptionState exceptionState(ExceptionState::ConstructionContext, "property ", "interface", scriptState()->context()->Global(), isolate());
200 ReadableStreamReader* reader = new ReadableStreamReader(executionContext(), m_stream); 200 ReadableStreamReader* reader = new ReadableStreamReader(executionContext(), m_stream);
201 EXPECT_TRUE(reader->isActive()); 201 EXPECT_TRUE(reader->isActive());
202 reader->releaseLock(exceptionState); 202 reader->releaseLock(exceptionState);
203 EXPECT_FALSE(exceptionState.hadException()); 203 EXPECT_FALSE(exceptionState.hadException());
204 EXPECT_FALSE(reader->isActive()); 204 EXPECT_FALSE(reader->isActive());
205 205
206 ReadResult result; 206 ReadResult result;
207 String onRejected; 207 String onRejected;
208 reader->read(scriptState()).then(createResultCaptor(&result), createCaptor(& onRejected)); 208 reader->read(scriptState()).then(createResultCaptor(&result), createCaptor(& onRejected));
209 209
210 EXPECT_FALSE(result.isSet); 210 EXPECT_FALSE(result.isSet);
211 EXPECT_TRUE(onRejected.isNull()); 211 EXPECT_TRUE(onRejected.isNull());
212 isolate()->RunMicrotasks(); 212 isolate()->RunMicrotasks();
213 213
214 EXPECT_TRUE(result.isSet); 214 EXPECT_FALSE(result.isSet);
215 EXPECT_TRUE(result.isDone); 215 EXPECT_EQ("TypeError: the reader is already released", onRejected);
216 EXPECT_EQ("undefined", result.valueString);
217 EXPECT_TRUE(onRejected.isNull());
218 EXPECT_FALSE(exceptionState.hadException()); 216 EXPECT_FALSE(exceptionState.hadException());
219 } 217 }
220 218
221 TEST_F(ReadableStreamReaderTest, ReleaseShouldFailWhenCalledWhileReading) 219 TEST_F(ReadableStreamReaderTest, ReleaseShouldFailWhenCalledWhileReading)
222 { 220 {
223 ScriptState::Scope scope(scriptState()); 221 ScriptState::Scope scope(scriptState());
224 ExceptionState exceptionState(ExceptionState::ConstructionContext, "property ", "interface", scriptState()->context()->Global(), isolate()); 222 ExceptionState exceptionState(ExceptionState::ConstructionContext, "property ", "interface", scriptState()->context()->Global(), isolate());
225 ReadableStreamReader* reader = new ReadableStreamReader(executionContext(), m_stream); 223 ReadableStreamReader* reader = new ReadableStreamReader(executionContext(), m_stream);
226 EXPECT_TRUE(reader->isActive()); 224 EXPECT_TRUE(reader->isActive());
227 reader->read(scriptState()); 225 reader->read(scriptState());
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
321 } 319 }
322 320
323 TEST_F(ReadableStreamReaderTest, ClosedReader) 321 TEST_F(ReadableStreamReaderTest, ClosedReader)
324 { 322 {
325 ScriptState::Scope scope(scriptState()); 323 ScriptState::Scope scope(scriptState());
326 ExceptionState exceptionState(ExceptionState::ConstructionContext, "property ", "interface", scriptState()->context()->Global(), isolate()); 324 ExceptionState exceptionState(ExceptionState::ConstructionContext, "property ", "interface", scriptState()->context()->Global(), isolate());
327 ReadableStreamReader* reader = new ReadableStreamReader(executionContext(), m_stream); 325 ReadableStreamReader* reader = new ReadableStreamReader(executionContext(), m_stream);
328 326
329 m_stream->close(); 327 m_stream->close();
330 328
331 EXPECT_FALSE(reader->isActive()); 329 EXPECT_TRUE(reader->isActive());
332 330
333 String onClosedFulfilled, onClosedRejected; 331 String onClosedFulfilled, onClosedRejected;
334 ReadResult result; 332 ReadResult result;
335 String onReadRejected; 333 String onReadRejected;
336 isolate()->RunMicrotasks(); 334 isolate()->RunMicrotasks();
337 reader->closed(scriptState()).then(createCaptor(&onClosedFulfilled), createC aptor(&onClosedRejected)); 335 reader->closed(scriptState()).then(createCaptor(&onClosedFulfilled), createC aptor(&onClosedRejected));
338 reader->read(scriptState()).then(createResultCaptor(&result), createCaptor(& onReadRejected)); 336 reader->read(scriptState()).then(createResultCaptor(&result), createCaptor(& onReadRejected));
339 EXPECT_TRUE(onClosedFulfilled.isNull()); 337 EXPECT_TRUE(onClosedFulfilled.isNull());
340 EXPECT_TRUE(onClosedRejected.isNull()); 338 EXPECT_TRUE(onClosedRejected.isNull());
341 EXPECT_FALSE(result.isSet); 339 EXPECT_FALSE(result.isSet);
(...skipping 11 matching lines...) Expand all
353 351
354 TEST_F(ReadableStreamReaderTest, ErroredReader) 352 TEST_F(ReadableStreamReaderTest, ErroredReader)
355 { 353 {
356 ScriptState::Scope scope(scriptState()); 354 ScriptState::Scope scope(scriptState());
357 ExceptionState exceptionState(ExceptionState::ConstructionContext, "property ", "interface", scriptState()->context()->Global(), isolate()); 355 ExceptionState exceptionState(ExceptionState::ConstructionContext, "property ", "interface", scriptState()->context()->Global(), isolate());
358 ReadableStreamReader* reader = new ReadableStreamReader(executionContext(), m_stream); 356 ReadableStreamReader* reader = new ReadableStreamReader(executionContext(), m_stream);
359 357
360 m_stream->error(DOMException::create(SyntaxError, "some error")); 358 m_stream->error(DOMException::create(SyntaxError, "some error"));
361 359
362 EXPECT_EQ(ReadableStream::Errored, m_stream->stateInternal()); 360 EXPECT_EQ(ReadableStream::Errored, m_stream->stateInternal());
363 EXPECT_FALSE(reader->isActive()); 361 EXPECT_TRUE(reader->isActive());
364 362
365 String onClosedFulfilled, onClosedRejected; 363 String onClosedFulfilled, onClosedRejected;
366 String onReadFulfilled, onReadRejected; 364 String onReadFulfilled, onReadRejected;
367 isolate()->RunMicrotasks(); 365 isolate()->RunMicrotasks();
368 reader->closed(scriptState()).then(createCaptor(&onClosedFulfilled), createC aptor(&onClosedRejected)); 366 reader->closed(scriptState()).then(createCaptor(&onClosedFulfilled), createC aptor(&onClosedRejected));
369 reader->read(scriptState()).then(createCaptor(&onReadFulfilled), createCapto r(&onReadRejected)); 367 reader->read(scriptState()).then(createCaptor(&onReadFulfilled), createCapto r(&onReadRejected));
370 EXPECT_TRUE(onClosedFulfilled.isNull()); 368 EXPECT_TRUE(onClosedFulfilled.isNull());
371 EXPECT_TRUE(onClosedRejected.isNull()); 369 EXPECT_TRUE(onClosedRejected.isNull());
372 EXPECT_TRUE(onReadFulfilled.isNull()); 370 EXPECT_TRUE(onReadFulfilled.isNull());
373 EXPECT_TRUE(onReadRejected.isNull()); 371 EXPECT_TRUE(onReadRejected.isNull());
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
463 reader->read(scriptState()).then(createResultCaptor(&result), createCaptor(& onRejected)); 461 reader->read(scriptState()).then(createResultCaptor(&result), createCaptor(& onRejected));
464 reader->read(scriptState()).then(createResultCaptor(&result2), createCaptor( &onRejected2)); 462 reader->read(scriptState()).then(createResultCaptor(&result2), createCaptor( &onRejected2));
465 463
466 isolate()->RunMicrotasks(); 464 isolate()->RunMicrotasks();
467 EXPECT_FALSE(result.isSet); 465 EXPECT_FALSE(result.isSet);
468 EXPECT_TRUE(onRejected.isNull()); 466 EXPECT_TRUE(onRejected.isNull());
469 EXPECT_FALSE(result2.isSet); 467 EXPECT_FALSE(result2.isSet);
470 EXPECT_TRUE(onRejected2.isNull()); 468 EXPECT_TRUE(onRejected2.isNull());
471 469
472 reader->cancel(scriptState(), ScriptValue(scriptState(), v8::Undefined(isola te()))); 470 reader->cancel(scriptState(), ScriptValue(scriptState(), v8::Undefined(isola te())));
473 EXPECT_FALSE(reader->isActive()); 471 EXPECT_TRUE(reader->isActive());
474 EXPECT_FALSE(result.isSet); 472 EXPECT_FALSE(result.isSet);
475 EXPECT_TRUE(onRejected.isNull()); 473 EXPECT_TRUE(onRejected.isNull());
476 EXPECT_FALSE(result2.isSet); 474 EXPECT_FALSE(result2.isSet);
477 EXPECT_TRUE(onRejected2.isNull()); 475 EXPECT_TRUE(onRejected2.isNull());
478 476
479 isolate()->RunMicrotasks(); 477 isolate()->RunMicrotasks();
480 478
481 EXPECT_TRUE(result.isSet); 479 EXPECT_TRUE(result.isSet);
482 EXPECT_TRUE(result.isDone); 480 EXPECT_TRUE(result.isDone);
483 EXPECT_EQ("undefined", result.valueString); 481 EXPECT_EQ("undefined", result.valueString);
(...skipping 16 matching lines...) Expand all
500 498
501 String onFulfilled, onRejected; 499 String onFulfilled, onRejected;
502 reader->cancel(scriptState(), ScriptValue(scriptState(), v8::Undefined(isola te()))).then(createCaptor(&onFulfilled), createCaptor(&onRejected)); 500 reader->cancel(scriptState(), ScriptValue(scriptState(), v8::Undefined(isola te()))).then(createCaptor(&onFulfilled), createCaptor(&onRejected));
503 EXPECT_EQ(ReadableStream::Readable, m_stream->stateInternal()); 501 EXPECT_EQ(ReadableStream::Readable, m_stream->stateInternal());
504 502
505 EXPECT_TRUE(onFulfilled.isNull()); 503 EXPECT_TRUE(onFulfilled.isNull());
506 EXPECT_TRUE(onRejected.isNull()); 504 EXPECT_TRUE(onRejected.isNull());
507 505
508 isolate()->RunMicrotasks(); 506 isolate()->RunMicrotasks();
509 507
510 EXPECT_EQ("undefined", onFulfilled); 508 EXPECT_TRUE(onFulfilled.isNull());
511 EXPECT_TRUE(onRejected.isNull()); 509 EXPECT_EQ("TypeError: the reader is already released", onRejected);
512 EXPECT_EQ(ReadableStream::Readable, m_stream->stateInternal()); 510 EXPECT_EQ(ReadableStream::Readable, m_stream->stateInternal());
513 EXPECT_FALSE(exceptionState.hadException()); 511 EXPECT_FALSE(exceptionState.hadException());
514 } 512 }
515 513
516 TEST_F(ReadableStreamReaderTest, Cancel) 514 TEST_F(ReadableStreamReaderTest, Cancel)
517 { 515 {
518 ScriptState::Scope scope(scriptState()); 516 ScriptState::Scope scope(scriptState());
519 ExceptionState exceptionState(ExceptionState::ConstructionContext, "property ", "interface", scriptState()->context()->Global(), isolate()); 517 ExceptionState exceptionState(ExceptionState::ConstructionContext, "property ", "interface", scriptState()->context()->Global(), isolate());
520 ReadableStreamReader* reader = new ReadableStreamReader(executionContext(), m_stream); 518 ReadableStreamReader* reader = new ReadableStreamReader(executionContext(), m_stream);
521 EXPECT_EQ(ReadableStream::Readable, m_stream->stateInternal()); 519 EXPECT_EQ(ReadableStream::Readable, m_stream->stateInternal());
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
579 577
580 isolate()->RunMicrotasks(); 578 isolate()->RunMicrotasks();
581 EXPECT_TRUE(onFulfilled.isNull()); 579 EXPECT_TRUE(onFulfilled.isNull());
582 EXPECT_EQ("SyntaxError: some error", onRejected); 580 EXPECT_EQ("SyntaxError: some error", onRejected);
583 EXPECT_FALSE(exceptionState.hadException()); 581 EXPECT_FALSE(exceptionState.hadException());
584 } 582 }
585 583
586 } // namespace 584 } // namespace
587 585
588 } // namespace blink 586 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698