Index: Source/core/streams/ReadableStreamTest.cpp |
diff --git a/Source/core/streams/ReadableStreamTest.cpp b/Source/core/streams/ReadableStreamTest.cpp |
index edbc0c9ea68db308df297e055869e882da74a868..d87182fc1244baef89ed5b2e407c7c685dbfc664 100644 |
--- a/Source/core/streams/ReadableStreamTest.cpp |
+++ b/Source/core/streams/ReadableStreamTest.cpp |
@@ -49,11 +49,11 @@ private: |
String* m_value; |
}; |
-class MockUnderlyingSource : public UnderlyingSource { |
+class MockUnderlyingSource : public GarbageCollectedFinalized<MockUnderlyingSource>, public UnderlyingSource { |
+ USING_GARBAGE_COLLECTED_MIXIN(MockUnderlyingSource); |
public: |
virtual ~MockUnderlyingSource() { } |
- MOCK_METHOD1(startSource, ScriptPromise(ExceptionState*)); |
MOCK_METHOD0(pullSource, void()); |
MOCK_METHOD2(cancelSource, ScriptPromise(ScriptState*, ScriptValue)); |
}; |
@@ -96,16 +96,10 @@ public: |
return StringCapturingFunction::create(isolate(), value); |
} |
- // Note: This function calls RunMicrotasks. |
StringStream* construct() |
{ |
- RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scriptState()); |
- ScriptPromise promise = resolver->promise(); |
- resolver->resolve(); |
- EXPECT_CALL(*m_underlyingSource, startSource(&m_exceptionState)).WillOnce(Return(promise)); |
- |
- StringStream* stream = new StringStream(scriptState(), m_underlyingSource, &m_exceptionState); |
- isolate()->RunMicrotasks(); |
+ StringStream* stream = new StringStream(scriptState()->executionContext(), m_underlyingSource); |
+ stream->didSourceStart(); |
return stream; |
} |
@@ -115,27 +109,16 @@ public: |
ExceptionState m_exceptionState; |
}; |
-TEST_F(ReadableStreamTest, Construct) |
+TEST_F(ReadableStreamTest, Start) |
{ |
- RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scriptState()); |
- ScriptPromise promise = resolver->promise(); |
- { |
- InSequence s; |
- EXPECT_CALL(*m_underlyingSource, startSource(&m_exceptionState)).WillOnce(Return(promise)); |
- } |
- StringStream* stream = new StringStream(scriptState(), m_underlyingSource, &m_exceptionState); |
+ StringStream* stream = new StringStream(scriptState()->executionContext(), m_underlyingSource); |
EXPECT_FALSE(m_exceptionState.hadException()); |
EXPECT_FALSE(stream->isStarted()); |
EXPECT_FALSE(stream->isDraining()); |
EXPECT_FALSE(stream->isPulling()); |
EXPECT_EQ(stream->state(), ReadableStream::Waiting); |
- isolate()->RunMicrotasks(); |
- |
- EXPECT_FALSE(stream->isStarted()); |
- |
- resolver->resolve(); |
- isolate()->RunMicrotasks(); |
+ stream->didSourceStart(); |
EXPECT_TRUE(stream->isStarted()); |
EXPECT_FALSE(stream->isDraining()); |
@@ -143,42 +126,16 @@ TEST_F(ReadableStreamTest, Construct) |
EXPECT_EQ(stream->state(), ReadableStream::Waiting); |
} |
-TEST_F(ReadableStreamTest, ConstructError) |
+TEST_F(ReadableStreamTest, StartFail) |
{ |
- { |
- InSequence s; |
- EXPECT_CALL(*m_underlyingSource, startSource(&m_exceptionState)) |
- .WillOnce(DoAll(Invoke(ThrowError("hello")), Return(ScriptPromise()))); |
- } |
- new StringStream(scriptState(), m_underlyingSource, &m_exceptionState); |
- EXPECT_TRUE(m_exceptionState.hadException()); |
-} |
- |
-TEST_F(ReadableStreamTest, StartFailAsynchronously) |
-{ |
- RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scriptState()); |
- ScriptPromise promise = resolver->promise(); |
- { |
- InSequence s; |
- EXPECT_CALL(*m_underlyingSource, startSource(&m_exceptionState)).WillOnce(Return(promise)); |
- } |
- StringStream* stream = new StringStream(scriptState(), m_underlyingSource, &m_exceptionState); |
+ StringStream* stream = new StringStream(scriptState()->executionContext(), m_underlyingSource); |
EXPECT_FALSE(m_exceptionState.hadException()); |
EXPECT_FALSE(stream->isStarted()); |
EXPECT_FALSE(stream->isDraining()); |
EXPECT_FALSE(stream->isPulling()); |
EXPECT_EQ(stream->state(), ReadableStream::Waiting); |
- isolate()->RunMicrotasks(); |
- |
- EXPECT_FALSE(stream->isStarted()); |
- EXPECT_FALSE(stream->isDraining()); |
- EXPECT_FALSE(stream->isPulling()); |
- EXPECT_EQ(stream->state(), ReadableStream::Waiting); |
- |
- resolver->reject(); |
stream->error(DOMException::create(NotFoundError)); |
- isolate()->RunMicrotasks(); |
EXPECT_FALSE(stream->isStarted()); |
EXPECT_FALSE(stream->isDraining()); |
@@ -214,13 +171,7 @@ TEST_F(ReadableStreamTest, WaitOnWaiting) |
TEST_F(ReadableStreamTest, WaitDuringStarting) |
{ |
- RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scriptState()); |
- ScriptPromise promise = resolver->promise(); |
- { |
- InSequence s; |
- EXPECT_CALL(*m_underlyingSource, startSource(&m_exceptionState)).WillOnce(Return(promise)); |
- } |
- StringStream* stream = new StringStream(scriptState(), m_underlyingSource, &m_exceptionState); |
+ StringStream* stream = new StringStream(scriptState()->executionContext(), m_underlyingSource); |
Checkpoint checkpoint; |
EXPECT_EQ(ReadableStream::Waiting, stream->state()); |
@@ -240,8 +191,7 @@ TEST_F(ReadableStreamTest, WaitDuringStarting) |
EXPECT_TRUE(stream->isPulling()); |
- resolver->resolve(); |
- isolate()->RunMicrotasks(); |
+ stream->didSourceStart(); |
EXPECT_EQ(ReadableStream::Waiting, stream->state()); |
EXPECT_TRUE(stream->isPulling()); |
@@ -442,7 +392,7 @@ TEST_F(ReadableStreamTest, ReadWhenWaiting) |
EXPECT_EQ(ReadableStream::Waiting, stream->state()); |
EXPECT_FALSE(m_exceptionState.hadException()); |
- stream->read(scriptState(), &m_exceptionState); |
+ stream->read(scriptState(), m_exceptionState); |
EXPECT_EQ(ReadableStream::Waiting, stream->state()); |
EXPECT_TRUE(m_exceptionState.hadException()); |
EXPECT_EQ(V8TypeError, m_exceptionState.code()); |
@@ -457,7 +407,7 @@ TEST_F(ReadableStreamTest, ReadWhenClosed) |
EXPECT_EQ(ReadableStream::Closed, stream->state()); |
EXPECT_FALSE(m_exceptionState.hadException()); |
- stream->read(scriptState(), &m_exceptionState); |
+ stream->read(scriptState(), m_exceptionState); |
EXPECT_EQ(ReadableStream::Closed, stream->state()); |
EXPECT_TRUE(m_exceptionState.hadException()); |
EXPECT_EQ(V8TypeError, m_exceptionState.code()); |
@@ -475,7 +425,7 @@ TEST_F(ReadableStreamTest, ReadWhenErrored) |
EXPECT_EQ(ReadableStream::Errored, stream->state()); |
EXPECT_FALSE(m_exceptionState.hadException()); |
- stream->read(scriptState(), &m_exceptionState); |
+ stream->read(scriptState(), m_exceptionState); |
EXPECT_EQ(ReadableStream::Errored, stream->state()); |
EXPECT_TRUE(m_exceptionState.hadException()); |
EXPECT_EQ(notFoundExceptionCode, m_exceptionState.code()); |
@@ -502,7 +452,7 @@ TEST_F(ReadableStreamTest, EnqueuedAndRead) |
checkpoint.Call(0); |
String chunk; |
- EXPECT_TRUE(stream->read(scriptState(), &m_exceptionState).toString(chunk)); |
+ EXPECT_TRUE(stream->read(scriptState(), m_exceptionState).toString(chunk)); |
checkpoint.Call(1); |
EXPECT_FALSE(m_exceptionState.hadException()); |
EXPECT_EQ("hello", chunk); |
@@ -537,7 +487,7 @@ TEST_F(ReadableStreamTest, EnqueTwiceAndRead) |
checkpoint.Call(0); |
String chunk; |
- EXPECT_TRUE(stream->read(scriptState(), &m_exceptionState).toString(chunk)); |
+ EXPECT_TRUE(stream->read(scriptState(), m_exceptionState).toString(chunk)); |
checkpoint.Call(1); |
EXPECT_FALSE(m_exceptionState.hadException()); |
EXPECT_EQ("hello", chunk); |
@@ -567,7 +517,7 @@ TEST_F(ReadableStreamTest, CloseWhenReadable) |
EXPECT_TRUE(stream->isDraining()); |
String chunk; |
- EXPECT_TRUE(stream->read(scriptState(), &m_exceptionState).toString(chunk)); |
+ EXPECT_TRUE(stream->read(scriptState(), m_exceptionState).toString(chunk)); |
EXPECT_EQ("hello", chunk); |
EXPECT_EQ(promise, stream->wait(scriptState())); |
@@ -577,7 +527,7 @@ TEST_F(ReadableStreamTest, CloseWhenReadable) |
EXPECT_FALSE(stream->isPulling()); |
EXPECT_TRUE(stream->isDraining()); |
- EXPECT_TRUE(stream->read(scriptState(), &m_exceptionState).toString(chunk)); |
+ EXPECT_TRUE(stream->read(scriptState(), m_exceptionState).toString(chunk)); |
EXPECT_EQ("bye", chunk); |
EXPECT_FALSE(m_exceptionState.hadException()); |
@@ -698,12 +648,7 @@ TEST_F(ReadableStreamTest, CancelWhenReadable) |
TEST_F(ReadableStreamTest, ReadableArrayBufferCompileTest) |
{ |
// This test tests if ReadableStreamImpl<ArrayBuffer> can be instantiated. |
- { |
- InSequence s; |
- EXPECT_CALL(*m_underlyingSource, startSource(&m_exceptionState)).WillOnce(Return(ScriptPromise())); |
- } |
- |
- new ReadableStreamImpl<ReadableStreamChunkTypeTraits<ArrayBuffer> >(scriptState(), m_underlyingSource, &m_exceptionState); |
+ new ReadableStreamImpl<ReadableStreamChunkTypeTraits<ArrayBuffer> >(scriptState()->executionContext(), m_underlyingSource); |
} |
} // namespace blink |