Index: Source/core/streams/ReadableStreamReaderTest.cpp |
diff --git a/Source/core/streams/ReadableStreamReaderTest.cpp b/Source/core/streams/ReadableStreamReaderTest.cpp |
index a6718f9390d7a539a02dac04a508a3ad42c8508b..f17985e2310bc8c51400dc2063fc56917d05bcf0 100644 |
--- a/Source/core/streams/ReadableStreamReaderTest.cpp |
+++ b/Source/core/streams/ReadableStreamReaderTest.cpp |
@@ -125,8 +125,6 @@ class ReadableStreamReaderTest : public ::testing::Test { |
public: |
ReadableStreamReaderTest() |
: m_page(DummyPageHolder::create(IntSize(1, 1))) |
- , m_scope(scriptState()) |
- , m_exceptionState(ExceptionState::ConstructionContext, "property", "interface", scriptState()->context()->Global(), isolate()) |
, m_stream(new StringStream(new NoopUnderlyingSource, new PermissiveStrategy)) |
{ |
m_stream->didSourceStart(); |
@@ -134,8 +132,6 @@ public: |
~ReadableStreamReaderTest() override |
{ |
- EXPECT_FALSE(m_exceptionState.hadException()); |
- |
// We need to call |error| in order to make |
// ActiveDOMObject::hasPendingActivity return false. |
m_stream->error(DOMException::create(AbortError, "done")); |
@@ -156,27 +152,30 @@ public: |
} |
OwnPtr<DummyPageHolder> m_page; |
- ScriptState::Scope m_scope; |
- ExceptionState m_exceptionState; |
Persistent<StringStream> m_stream; |
}; |
TEST_F(ReadableStreamReaderTest, Construct) |
{ |
+ ScriptState::Scope scope(scriptState()); |
+ ExceptionState exceptionState(ExceptionState::ConstructionContext, "property", "interface", scriptState()->context()->Global(), isolate()); |
ReadableStreamReader* reader = new ReadableStreamReader(executionContext(), m_stream); |
EXPECT_TRUE(reader->isActive()); |
+ EXPECT_FALSE(exceptionState.hadException()); |
} |
TEST_F(ReadableStreamReaderTest, Release) |
{ |
+ ScriptState::Scope scope(scriptState()); |
+ ExceptionState exceptionState(ExceptionState::ConstructionContext, "property", "interface", scriptState()->context()->Global(), isolate()); |
String onFulfilled, onRejected; |
ReadableStreamReader* reader = new ReadableStreamReader(executionContext(), m_stream); |
EXPECT_TRUE(reader->isActive()); |
reader->closed(scriptState()).then(createCaptor(&onFulfilled), createCaptor(&onRejected)); |
- reader->releaseLock(m_exceptionState); |
+ reader->releaseLock(exceptionState); |
EXPECT_FALSE(reader->isActive()); |
- EXPECT_FALSE(m_exceptionState.hadException()); |
+ EXPECT_FALSE(exceptionState.hadException()); |
EXPECT_TRUE(onFulfilled.isNull()); |
EXPECT_TRUE(onRejected.isNull()); |
@@ -188,18 +187,20 @@ TEST_F(ReadableStreamReaderTest, Release) |
ReadableStreamReader* another = new ReadableStreamReader(executionContext(), m_stream); |
EXPECT_TRUE(another->isActive()); |
EXPECT_FALSE(reader->isActive()); |
- reader->releaseLock(m_exceptionState); |
+ reader->releaseLock(exceptionState); |
EXPECT_TRUE(another->isActive()); |
EXPECT_FALSE(reader->isActive()); |
- EXPECT_FALSE(m_exceptionState.hadException()); |
+ EXPECT_FALSE(exceptionState.hadException()); |
} |
TEST_F(ReadableStreamReaderTest, ReadAfterRelease) |
{ |
+ ScriptState::Scope scope(scriptState()); |
+ ExceptionState exceptionState(ExceptionState::ConstructionContext, "property", "interface", scriptState()->context()->Global(), isolate()); |
ReadableStreamReader* reader = new ReadableStreamReader(executionContext(), m_stream); |
EXPECT_TRUE(reader->isActive()); |
- reader->releaseLock(m_exceptionState); |
- EXPECT_FALSE(m_exceptionState.hadException()); |
+ reader->releaseLock(exceptionState); |
+ EXPECT_FALSE(exceptionState.hadException()); |
EXPECT_FALSE(reader->isActive()); |
ReadResult result; |
@@ -214,27 +215,32 @@ TEST_F(ReadableStreamReaderTest, ReadAfterRelease) |
EXPECT_TRUE(result.isDone); |
EXPECT_EQ("undefined", result.valueString); |
EXPECT_TRUE(onRejected.isNull()); |
+ EXPECT_FALSE(exceptionState.hadException()); |
} |
TEST_F(ReadableStreamReaderTest, ReleaseShouldFailWhenCalledWhileReading) |
{ |
+ ScriptState::Scope scope(scriptState()); |
+ ExceptionState exceptionState(ExceptionState::ConstructionContext, "property", "interface", scriptState()->context()->Global(), isolate()); |
ReadableStreamReader* reader = new ReadableStreamReader(executionContext(), m_stream); |
EXPECT_TRUE(reader->isActive()); |
reader->read(scriptState()); |
- reader->releaseLock(m_exceptionState); |
+ reader->releaseLock(exceptionState); |
EXPECT_TRUE(reader->isActive()); |
- EXPECT_TRUE(m_exceptionState.hadException()); |
- m_exceptionState.clearException(); |
+ EXPECT_TRUE(exceptionState.hadException()); |
+ exceptionState.clearException(); |
m_stream->enqueue("hello"); |
- reader->releaseLock(m_exceptionState); |
+ reader->releaseLock(exceptionState); |
EXPECT_FALSE(reader->isActive()); |
- EXPECT_FALSE(m_exceptionState.hadException()); |
+ EXPECT_FALSE(exceptionState.hadException()); |
} |
TEST_F(ReadableStreamReaderTest, EnqueueThenRead) |
{ |
+ ScriptState::Scope scope(scriptState()); |
+ ExceptionState exceptionState(ExceptionState::ConstructionContext, "property", "interface", scriptState()->context()->Global(), isolate()); |
m_stream->enqueue("hello"); |
m_stream->enqueue("world"); |
ReadableStreamReader* reader = new ReadableStreamReader(executionContext(), m_stream); |
@@ -267,10 +273,13 @@ TEST_F(ReadableStreamReaderTest, EnqueueThenRead) |
EXPECT_FALSE(result2.isDone); |
EXPECT_EQ("world", result2.valueString); |
EXPECT_TRUE(onRejected2.isNull()); |
+ EXPECT_FALSE(exceptionState.hadException()); |
} |
TEST_F(ReadableStreamReaderTest, ReadThenEnqueue) |
{ |
+ ScriptState::Scope scope(scriptState()); |
+ ExceptionState exceptionState(ExceptionState::ConstructionContext, "property", "interface", scriptState()->context()->Global(), isolate()); |
ReadableStreamReader* reader = new ReadableStreamReader(executionContext(), m_stream); |
EXPECT_EQ(ReadableStream::Readable, m_stream->stateInternal()); |
@@ -308,10 +317,13 @@ TEST_F(ReadableStreamReaderTest, ReadThenEnqueue) |
EXPECT_FALSE(result2.isDone); |
EXPECT_EQ("world", result2.valueString); |
EXPECT_TRUE(onRejected2.isNull()); |
+ EXPECT_FALSE(exceptionState.hadException()); |
} |
TEST_F(ReadableStreamReaderTest, ClosedReader) |
{ |
+ ScriptState::Scope scope(scriptState()); |
+ ExceptionState exceptionState(ExceptionState::ConstructionContext, "property", "interface", scriptState()->context()->Global(), isolate()); |
ReadableStreamReader* reader = new ReadableStreamReader(executionContext(), m_stream); |
m_stream->close(); |
@@ -336,10 +348,13 @@ TEST_F(ReadableStreamReaderTest, ClosedReader) |
EXPECT_TRUE(result.isDone); |
EXPECT_EQ("undefined", result.valueString); |
EXPECT_TRUE(onReadRejected.isNull()); |
+ EXPECT_FALSE(exceptionState.hadException()); |
} |
TEST_F(ReadableStreamReaderTest, ErroredReader) |
{ |
+ ScriptState::Scope scope(scriptState()); |
+ ExceptionState exceptionState(ExceptionState::ConstructionContext, "property", "interface", scriptState()->context()->Global(), isolate()); |
ReadableStreamReader* reader = new ReadableStreamReader(executionContext(), m_stream); |
m_stream->error(DOMException::create(SyntaxError, "some error")); |
@@ -362,10 +377,13 @@ TEST_F(ReadableStreamReaderTest, ErroredReader) |
EXPECT_EQ("SyntaxError: some error", onClosedRejected); |
EXPECT_TRUE(onReadFulfilled.isNull()); |
EXPECT_EQ("SyntaxError: some error", onReadRejected); |
+ EXPECT_FALSE(exceptionState.hadException()); |
} |
TEST_F(ReadableStreamReaderTest, PendingReadsShouldBeResolvedWhenClosed) |
{ |
+ ScriptState::Scope scope(scriptState()); |
+ ExceptionState exceptionState(ExceptionState::ConstructionContext, "property", "interface", scriptState()->context()->Global(), isolate()); |
ReadableStreamReader* reader = new ReadableStreamReader(executionContext(), m_stream); |
EXPECT_EQ(ReadableStream::Readable, m_stream->stateInternal()); |
@@ -397,10 +415,13 @@ TEST_F(ReadableStreamReaderTest, PendingReadsShouldBeResolvedWhenClosed) |
EXPECT_TRUE(result2.isDone); |
EXPECT_EQ("undefined", result2.valueString); |
EXPECT_TRUE(onRejected2.isNull()); |
+ EXPECT_FALSE(exceptionState.hadException()); |
} |
TEST_F(ReadableStreamReaderTest, PendingReadsShouldBeRejectedWhenErrored) |
{ |
+ ScriptState::Scope scope(scriptState()); |
+ ExceptionState exceptionState(ExceptionState::ConstructionContext, "property", "interface", scriptState()->context()->Global(), isolate()); |
ReadableStreamReader* reader = new ReadableStreamReader(executionContext(), m_stream); |
EXPECT_EQ(ReadableStream::Readable, m_stream->stateInternal()); |
@@ -427,10 +448,13 @@ TEST_F(ReadableStreamReaderTest, PendingReadsShouldBeRejectedWhenErrored) |
EXPECT_EQ(onRejected, "SyntaxError: some error"); |
EXPECT_TRUE(onFulfilled2.isNull()); |
EXPECT_EQ(onRejected2, "SyntaxError: some error"); |
+ EXPECT_FALSE(exceptionState.hadException()); |
} |
TEST_F(ReadableStreamReaderTest, PendingReadsShouldBeResolvedWhenCanceled) |
{ |
+ ScriptState::Scope scope(scriptState()); |
+ ExceptionState exceptionState(ExceptionState::ConstructionContext, "property", "interface", scriptState()->context()->Global(), isolate()); |
ReadableStreamReader* reader = new ReadableStreamReader(executionContext(), m_stream); |
EXPECT_EQ(ReadableStream::Readable, m_stream->stateInternal()); |
@@ -463,12 +487,15 @@ TEST_F(ReadableStreamReaderTest, PendingReadsShouldBeResolvedWhenCanceled) |
EXPECT_TRUE(result2.isDone); |
EXPECT_EQ("undefined", result2.valueString); |
EXPECT_TRUE(onRejected2.isNull()); |
+ EXPECT_FALSE(exceptionState.hadException()); |
} |
TEST_F(ReadableStreamReaderTest, CancelShouldNotWorkWhenNotActive) |
{ |
+ ScriptState::Scope scope(scriptState()); |
+ ExceptionState exceptionState(ExceptionState::ConstructionContext, "property", "interface", scriptState()->context()->Global(), isolate()); |
ReadableStreamReader* reader = new ReadableStreamReader(executionContext(), m_stream); |
- reader->releaseLock(m_exceptionState); |
+ reader->releaseLock(exceptionState); |
EXPECT_FALSE(reader->isActive()); |
String onFulfilled, onRejected; |
@@ -483,10 +510,13 @@ TEST_F(ReadableStreamReaderTest, CancelShouldNotWorkWhenNotActive) |
EXPECT_EQ("undefined", onFulfilled); |
EXPECT_TRUE(onRejected.isNull()); |
EXPECT_EQ(ReadableStream::Readable, m_stream->stateInternal()); |
+ EXPECT_FALSE(exceptionState.hadException()); |
} |
TEST_F(ReadableStreamReaderTest, Cancel) |
{ |
+ ScriptState::Scope scope(scriptState()); |
+ ExceptionState exceptionState(ExceptionState::ConstructionContext, "property", "interface", scriptState()->context()->Global(), isolate()); |
ReadableStreamReader* reader = new ReadableStreamReader(executionContext(), m_stream); |
EXPECT_EQ(ReadableStream::Readable, m_stream->stateInternal()); |
@@ -506,10 +536,13 @@ TEST_F(ReadableStreamReaderTest, Cancel) |
EXPECT_TRUE(onClosedRejected.isNull()); |
EXPECT_EQ("undefined", onCancelFulfilled); |
EXPECT_TRUE(onCancelRejected.isNull()); |
+ EXPECT_FALSE(exceptionState.hadException()); |
} |
TEST_F(ReadableStreamReaderTest, Close) |
{ |
+ ScriptState::Scope scope(scriptState()); |
+ ExceptionState exceptionState(ExceptionState::ConstructionContext, "property", "interface", scriptState()->context()->Global(), isolate()); |
ReadableStreamReader* reader = new ReadableStreamReader(executionContext(), m_stream); |
EXPECT_EQ(ReadableStream::Readable, m_stream->stateInternal()); |
@@ -525,10 +558,13 @@ TEST_F(ReadableStreamReaderTest, Close) |
isolate()->RunMicrotasks(); |
EXPECT_EQ("undefined", onFulfilled); |
EXPECT_TRUE(onRejected.isNull()); |
+ EXPECT_FALSE(exceptionState.hadException()); |
} |
TEST_F(ReadableStreamReaderTest, Error) |
{ |
+ ScriptState::Scope scope(scriptState()); |
+ ExceptionState exceptionState(ExceptionState::ConstructionContext, "property", "interface", scriptState()->context()->Global(), isolate()); |
ReadableStreamReader* reader = new ReadableStreamReader(executionContext(), m_stream); |
EXPECT_EQ(ReadableStream::Readable, m_stream->stateInternal()); |
@@ -544,6 +580,7 @@ TEST_F(ReadableStreamReaderTest, Error) |
isolate()->RunMicrotasks(); |
EXPECT_TRUE(onFulfilled.isNull()); |
EXPECT_EQ("SyntaxError: some error", onRejected); |
+ EXPECT_FALSE(exceptionState.hadException()); |
} |
} // namespace |