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

Unified Diff: Source/core/streams/ReadableStreamTest.cpp

Issue 455303002: Add 'stream' to XMLHttpRequest response type. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@stream-promise-property-reset
Patch Set: Created 6 years, 4 months 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/streams/ReadableStreamImpl.h ('k') | Source/core/streams/UnderlyingSource.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « Source/core/streams/ReadableStreamImpl.h ('k') | Source/core/streams/UnderlyingSource.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698