| 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
|
|
|