Index: Source/core/streams/ReadableStreamTest.cpp |
diff --git a/Source/core/streams/ReadableStreamTest.cpp b/Source/core/streams/ReadableStreamTest.cpp |
index b99ca6b36e9c447c795cf344171a2501552b40b2..945d802364a3347baba7d9dd0e42f1409d222808 100644 |
--- a/Source/core/streams/ReadableStreamTest.cpp |
+++ b/Source/core/streams/ReadableStreamTest.cpp |
@@ -13,7 +13,6 @@ |
#include "core/dom/DOMException.h" |
#include "core/dom/Document.h" |
#include "core/dom/ExceptionCode.h" |
-#include "core/streams/ExclusiveStreamReader.h" |
#include "core/streams/ReadableStreamImpl.h" |
#include "core/streams/UnderlyingSource.h" |
#include "core/testing/DummyPageHolder.h" |
@@ -29,8 +28,8 @@ |
namespace { |
-using Checkpoint = ::testing::StrictMock<::testing::MockFunction<void(int)>>; |
-using StringStream = ReadableStreamImpl<ReadableStreamChunkTypeTraits<String>>; |
+typedef ::testing::StrictMock<::testing::MockFunction<void(int)> > Checkpoint; |
+typedef ReadableStreamImpl<ReadableStreamChunkTypeTraits<String> > StringStream; |
class StringCapturingFunction : public ScriptFunction { |
public: |
@@ -173,7 +172,7 @@ |
EXPECT_FALSE(stream->isStarted()); |
EXPECT_FALSE(stream->isDraining()); |
EXPECT_FALSE(stream->isPulling()); |
- EXPECT_EQ(stream->stateInternal(), ReadableStream::Waiting); |
+ EXPECT_EQ(stream->state(), ReadableStream::Waiting); |
checkpoint.Call(0); |
stream->didSourceStart(); |
@@ -182,7 +181,7 @@ |
EXPECT_TRUE(stream->isStarted()); |
EXPECT_FALSE(stream->isDraining()); |
EXPECT_TRUE(stream->isPulling()); |
- EXPECT_EQ(stream->stateInternal(), ReadableStream::Waiting); |
+ EXPECT_EQ(stream->state(), ReadableStream::Waiting); |
// We need to call |error| in order to make |
// ActiveDOMObject::hasPendingActivity return false. |
@@ -196,14 +195,14 @@ |
EXPECT_FALSE(stream->isStarted()); |
EXPECT_FALSE(stream->isDraining()); |
EXPECT_FALSE(stream->isPulling()); |
- EXPECT_EQ(stream->stateInternal(), ReadableStream::Waiting); |
+ EXPECT_EQ(stream->state(), ReadableStream::Waiting); |
stream->error(DOMException::create(NotFoundError)); |
EXPECT_FALSE(stream->isStarted()); |
EXPECT_FALSE(stream->isDraining()); |
EXPECT_FALSE(stream->isPulling()); |
- EXPECT_EQ(stream->stateInternal(), ReadableStream::Errored); |
+ EXPECT_EQ(stream->state(), ReadableStream::Errored); |
} |
TEST_F(ReadableStreamTest, WaitOnWaiting) |
@@ -211,11 +210,15 @@ |
StringStream* stream = construct(); |
Checkpoint checkpoint; |
- EXPECT_EQ(ReadableStream::Waiting, stream->stateInternal()); |
+ EXPECT_EQ(ReadableStream::Waiting, stream->state()); |
EXPECT_TRUE(stream->isStarted()); |
EXPECT_TRUE(stream->isPulling()); |
- EXPECT_EQ(ReadableStream::Waiting, stream->stateInternal()); |
+ ScriptPromise p = stream->ready(scriptState()); |
+ ScriptPromise q = stream->ready(scriptState()); |
+ |
+ EXPECT_EQ(ReadableStream::Waiting, stream->state()); |
+ EXPECT_EQ(q, p); |
stream->error(DOMException::create(AbortError, "done")); |
} |
@@ -225,7 +228,7 @@ |
StringStream* stream = new StringStream(scriptState()->executionContext(), m_underlyingSource); |
Checkpoint checkpoint; |
- EXPECT_EQ(ReadableStream::Waiting, stream->stateInternal()); |
+ EXPECT_EQ(ReadableStream::Waiting, stream->state()); |
EXPECT_FALSE(stream->isStarted()); |
EXPECT_FALSE(stream->isPulling()); |
@@ -241,7 +244,7 @@ |
stream->didSourceStart(); |
checkpoint.Call(1); |
- EXPECT_EQ(ReadableStream::Waiting, stream->stateInternal()); |
+ EXPECT_EQ(ReadableStream::Waiting, stream->state()); |
EXPECT_TRUE(stream->isStarted()); |
EXPECT_TRUE(stream->isPulling()); |
@@ -255,16 +258,17 @@ |
ScriptPromise promise = stream->ready(scriptState()); |
promise.then(createCaptor(&onFulfilled), createCaptor(&onRejected)); |
- EXPECT_EQ(ReadableStream::Waiting, stream->stateInternal()); |
+ EXPECT_EQ(ReadableStream::Waiting, stream->state()); |
EXPECT_TRUE(stream->isPulling()); |
stream->error(DOMException::create(NotFoundError, "hello, error")); |
- EXPECT_EQ(ReadableStream::Errored, stream->stateInternal()); |
- EXPECT_TRUE(stream->isPulling()); |
- EXPECT_TRUE(onFulfilled.isNull()); |
- EXPECT_TRUE(onRejected.isNull()); |
- |
- isolate()->RunMicrotasks(); |
- EXPECT_TRUE(onFulfilled.isNull()); |
+ EXPECT_EQ(ReadableStream::Errored, stream->state()); |
+ EXPECT_TRUE(stream->isPulling()); |
+ EXPECT_TRUE(onFulfilled.isNull()); |
+ EXPECT_TRUE(onRejected.isNull()); |
+ |
+ isolate()->RunMicrotasks(); |
+ EXPECT_TRUE(onFulfilled.isNull()); |
+ EXPECT_EQ(promise, stream->ready(scriptState())); |
EXPECT_EQ("NotFoundError: hello, error", onRejected); |
} |
@@ -273,11 +277,11 @@ |
StringStream* stream = construct(); |
stream->error(DOMException::create(NotFoundError, "error")); |
- EXPECT_EQ(ReadableStream::Errored, stream->stateInternal()); |
+ EXPECT_EQ(ReadableStream::Errored, stream->state()); |
bool result = stream->enqueue("hello"); |
EXPECT_FALSE(result); |
- EXPECT_EQ(ReadableStream::Errored, stream->stateInternal()); |
+ EXPECT_EQ(ReadableStream::Errored, stream->state()); |
} |
TEST_F(ReadableStreamTest, CloseAndEnqueue) |
@@ -285,31 +289,31 @@ |
StringStream* stream = construct(); |
stream->close(); |
- EXPECT_EQ(ReadableStream::Closed, stream->stateInternal()); |
+ EXPECT_EQ(ReadableStream::Closed, stream->state()); |
bool result = stream->enqueue("hello"); |
EXPECT_FALSE(result); |
- EXPECT_EQ(ReadableStream::Closed, stream->stateInternal()); |
+ EXPECT_EQ(ReadableStream::Closed, stream->state()); |
} |
TEST_F(ReadableStreamTest, EnqueueAndWait) |
{ |
StringStream* stream = construct(); |
String onFulfilled, onRejected; |
- EXPECT_EQ(ReadableStream::Waiting, stream->stateInternal()); |
+ EXPECT_EQ(ReadableStream::Waiting, stream->state()); |
bool result = stream->enqueue("hello"); |
EXPECT_TRUE(result); |
- EXPECT_EQ(ReadableStream::Readable, stream->stateInternal()); |
+ EXPECT_EQ(ReadableStream::Readable, stream->state()); |
stream->ready(scriptState()).then(createCaptor(&onFulfilled), createCaptor(&onRejected)); |
- EXPECT_EQ(ReadableStream::Readable, stream->stateInternal()); |
- EXPECT_FALSE(stream->isPulling()); |
- EXPECT_TRUE(onFulfilled.isNull()); |
- EXPECT_TRUE(onRejected.isNull()); |
- |
- isolate()->RunMicrotasks(); |
- EXPECT_EQ(ReadableStream::Readable, stream->stateInternal()); |
+ EXPECT_EQ(ReadableStream::Readable, stream->state()); |
+ EXPECT_FALSE(stream->isPulling()); |
+ EXPECT_TRUE(onFulfilled.isNull()); |
+ EXPECT_TRUE(onRejected.isNull()); |
+ |
+ isolate()->RunMicrotasks(); |
+ EXPECT_EQ(ReadableStream::Readable, stream->state()); |
EXPECT_FALSE(stream->isPulling()); |
EXPECT_EQ("undefined", onFulfilled); |
EXPECT_TRUE(onRejected.isNull()); |
@@ -321,19 +325,19 @@ |
{ |
StringStream* stream = construct(); |
String onFulfilled, onRejected; |
- EXPECT_EQ(ReadableStream::Waiting, stream->stateInternal()); |
+ EXPECT_EQ(ReadableStream::Waiting, stream->state()); |
stream->ready(scriptState()).then(createCaptor(&onFulfilled), createCaptor(&onRejected)); |
isolate()->RunMicrotasks(); |
- EXPECT_EQ(ReadableStream::Waiting, stream->stateInternal()); |
+ EXPECT_EQ(ReadableStream::Waiting, stream->state()); |
EXPECT_TRUE(stream->isPulling()); |
EXPECT_TRUE(onFulfilled.isNull()); |
EXPECT_TRUE(onRejected.isNull()); |
bool result = stream->enqueue("hello"); |
EXPECT_TRUE(result); |
- EXPECT_EQ(ReadableStream::Readable, stream->stateInternal()); |
+ EXPECT_EQ(ReadableStream::Readable, stream->state()); |
EXPECT_FALSE(stream->isPulling()); |
EXPECT_TRUE(onFulfilled.isNull()); |
EXPECT_TRUE(onRejected.isNull()); |
@@ -349,20 +353,20 @@ |
{ |
StringStream* stream = construct(); |
String onFulfilled, onRejected; |
- EXPECT_EQ(ReadableStream::Waiting, stream->stateInternal()); |
+ EXPECT_EQ(ReadableStream::Waiting, stream->state()); |
ScriptPromise promise = stream->ready(scriptState()); |
promise.then(createCaptor(&onFulfilled), createCaptor(&onRejected)); |
isolate()->RunMicrotasks(); |
- EXPECT_EQ(ReadableStream::Waiting, stream->stateInternal()); |
+ EXPECT_EQ(ReadableStream::Waiting, stream->state()); |
EXPECT_TRUE(stream->isPulling()); |
EXPECT_TRUE(onFulfilled.isNull()); |
EXPECT_TRUE(onRejected.isNull()); |
bool result = stream->enqueue("hello"); |
EXPECT_TRUE(result); |
- EXPECT_EQ(ReadableStream::Readable, stream->stateInternal()); |
+ EXPECT_EQ(ReadableStream::Readable, stream->state()); |
EXPECT_FALSE(stream->isPulling()); |
EXPECT_TRUE(onFulfilled.isNull()); |
EXPECT_TRUE(onRejected.isNull()); |
@@ -372,7 +376,7 @@ |
EXPECT_TRUE(onRejected.isNull()); |
stream->error(DOMException::create(NotFoundError, "error")); |
- EXPECT_EQ(ReadableStream::Errored, stream->stateInternal()); |
+ EXPECT_EQ(ReadableStream::Errored, stream->state()); |
EXPECT_NE(promise, stream->ready(scriptState())); |
} |
@@ -384,7 +388,7 @@ |
StringStream* stream = construct(); |
- EXPECT_EQ(ReadableStream::Waiting, stream->stateInternal()); |
+ EXPECT_EQ(ReadableStream::Waiting, stream->state()); |
stream->ready(scriptState()).then(createCaptor(&onWaitFulfilled), createCaptor(&onWaitRejected)); |
stream->closed(scriptState()).then(createCaptor(&onClosedFulfilled), createCaptor(&onClosedRejected)); |
@@ -395,7 +399,7 @@ |
EXPECT_TRUE(onClosedRejected.isNull()); |
stream->close(); |
- EXPECT_EQ(ReadableStream::Closed, stream->stateInternal()); |
+ EXPECT_EQ(ReadableStream::Closed, stream->state()); |
isolate()->RunMicrotasks(); |
EXPECT_EQ("undefined", onWaitFulfilled); |
EXPECT_TRUE(onWaitRejected.isNull()); |
@@ -407,13 +411,13 @@ |
{ |
String onFulfilled, onRejected; |
StringStream* stream = construct(); |
- EXPECT_EQ(ReadableStream::Waiting, stream->stateInternal()); |
+ EXPECT_EQ(ReadableStream::Waiting, stream->state()); |
stream->closed(scriptState()).then(createCaptor(&onFulfilled), createCaptor(&onRejected)); |
stream->error(DOMException::create(NotFoundError, "error")); |
stream->close(); |
- EXPECT_EQ(ReadableStream::Errored, stream->stateInternal()); |
+ EXPECT_EQ(ReadableStream::Errored, stream->state()); |
isolate()->RunMicrotasks(); |
EXPECT_TRUE(onFulfilled.isNull()); |
@@ -423,11 +427,11 @@ |
TEST_F(ReadableStreamTest, ReadWhenWaiting) |
{ |
StringStream* stream = construct(); |
- EXPECT_EQ(ReadableStream::Waiting, stream->stateInternal()); |
+ EXPECT_EQ(ReadableStream::Waiting, stream->state()); |
EXPECT_FALSE(m_exceptionState.hadException()); |
stream->read(scriptState(), m_exceptionState); |
- EXPECT_EQ(ReadableStream::Waiting, stream->stateInternal()); |
+ EXPECT_EQ(ReadableStream::Waiting, stream->state()); |
EXPECT_TRUE(m_exceptionState.hadException()); |
EXPECT_EQ(V8TypeError, m_exceptionState.code()); |
EXPECT_EQ("read is called while state is waiting", m_exceptionState.message()); |
@@ -440,11 +444,11 @@ |
StringStream* stream = construct(); |
stream->close(); |
- EXPECT_EQ(ReadableStream::Closed, stream->stateInternal()); |
+ EXPECT_EQ(ReadableStream::Closed, stream->state()); |
EXPECT_FALSE(m_exceptionState.hadException()); |
stream->read(scriptState(), m_exceptionState); |
- EXPECT_EQ(ReadableStream::Closed, stream->stateInternal()); |
+ EXPECT_EQ(ReadableStream::Closed, stream->state()); |
EXPECT_TRUE(m_exceptionState.hadException()); |
EXPECT_EQ(V8TypeError, m_exceptionState.code()); |
EXPECT_EQ("read is called while state is closed", m_exceptionState.message()); |
@@ -458,11 +462,11 @@ |
StringStream* stream = construct(); |
stream->error(DOMException::create(NotFoundError, "error")); |
- EXPECT_EQ(ReadableStream::Errored, stream->stateInternal()); |
+ EXPECT_EQ(ReadableStream::Errored, stream->state()); |
EXPECT_FALSE(m_exceptionState.hadException()); |
stream->read(scriptState(), m_exceptionState); |
- EXPECT_EQ(ReadableStream::Errored, stream->stateInternal()); |
+ EXPECT_EQ(ReadableStream::Errored, stream->state()); |
EXPECT_TRUE(m_exceptionState.hadException()); |
EXPECT_EQ(notFoundExceptionCode, m_exceptionState.code()); |
EXPECT_EQ("error", m_exceptionState.message()); |
@@ -483,7 +487,7 @@ |
stream->enqueue("hello"); |
ScriptPromise promise = stream->ready(scriptState()); |
- EXPECT_EQ(ReadableStream::Readable, stream->stateInternal()); |
+ EXPECT_EQ(ReadableStream::Readable, stream->state()); |
EXPECT_FALSE(stream->isPulling()); |
checkpoint.Call(0); |
@@ -492,7 +496,7 @@ |
checkpoint.Call(1); |
EXPECT_FALSE(m_exceptionState.hadException()); |
EXPECT_EQ("hello", chunk); |
- EXPECT_EQ(ReadableStream::Waiting, stream->stateInternal()); |
+ EXPECT_EQ(ReadableStream::Waiting, stream->state()); |
EXPECT_TRUE(stream->isPulling()); |
EXPECT_FALSE(stream->isDraining()); |
@@ -522,7 +526,7 @@ |
EXPECT_TRUE(stream->enqueue("hello")); |
EXPECT_TRUE(stream->enqueue("bye")); |
ScriptPromise promise = stream->ready(scriptState()); |
- EXPECT_EQ(ReadableStream::Readable, stream->stateInternal()); |
+ EXPECT_EQ(ReadableStream::Readable, stream->state()); |
EXPECT_FALSE(stream->isPulling()); |
String chunk; |
@@ -531,7 +535,7 @@ |
checkpoint.Call(1); |
EXPECT_FALSE(m_exceptionState.hadException()); |
EXPECT_EQ("hello", chunk); |
- EXPECT_EQ(ReadableStream::Readable, stream->stateInternal()); |
+ EXPECT_EQ(ReadableStream::Readable, stream->state()); |
EXPECT_TRUE(stream->isPulling()); |
EXPECT_FALSE(stream->isDraining()); |
@@ -541,7 +545,7 @@ |
stream->error(DOMException::create(AbortError, "done")); |
} |
-TEST_F(ReadableStreamTest, ReadQueue) |
+TEST_F(ReadableStreamTest, InternalRead) |
{ |
StringStream* stream = construct(); |
Checkpoint checkpoint; |
@@ -557,19 +561,19 @@ |
EXPECT_TRUE(stream->enqueue("hello")); |
EXPECT_TRUE(stream->enqueue("bye")); |
- EXPECT_EQ(ReadableStream::Readable, stream->stateInternal()); |
+ EXPECT_EQ(ReadableStream::Readable, stream->state()); |
EXPECT_FALSE(stream->isPulling()); |
String chunk; |
checkpoint.Call(0); |
- stream->readInternal(queue); |
+ stream->read(queue); |
checkpoint.Call(1); |
ASSERT_EQ(2u, queue.size()); |
EXPECT_EQ(std::make_pair(String("hello"), static_cast<size_t>(5)), queue[0]); |
EXPECT_EQ(std::make_pair(String("bye"), static_cast<size_t>(3)), queue[1]); |
- EXPECT_EQ(ReadableStream::Waiting, stream->stateInternal()); |
+ EXPECT_EQ(ReadableStream::Waiting, stream->state()); |
EXPECT_TRUE(stream->isPulling()); |
EXPECT_FALSE(stream->isDraining()); |
} |
@@ -586,7 +590,7 @@ |
EXPECT_FALSE(stream->enqueue("should be ignored")); |
ScriptPromise promise = stream->ready(scriptState()); |
- EXPECT_EQ(ReadableStream::Readable, stream->stateInternal()); |
+ EXPECT_EQ(ReadableStream::Readable, stream->state()); |
EXPECT_FALSE(stream->isPulling()); |
EXPECT_TRUE(stream->isDraining()); |
@@ -597,7 +601,7 @@ |
isolate()->RunMicrotasks(); |
- EXPECT_EQ(ReadableStream::Readable, stream->stateInternal()); |
+ EXPECT_EQ(ReadableStream::Readable, stream->state()); |
EXPECT_FALSE(stream->isPulling()); |
EXPECT_TRUE(stream->isDraining()); |
@@ -607,7 +611,7 @@ |
EXPECT_EQ(promise, stream->ready(scriptState())); |
- EXPECT_EQ(ReadableStream::Closed, stream->stateInternal()); |
+ EXPECT_EQ(ReadableStream::Closed, stream->state()); |
EXPECT_FALSE(stream->isPulling()); |
EXPECT_TRUE(stream->isDraining()); |
@@ -624,10 +628,10 @@ |
StringStream* stream = construct(); |
String onFulfilled, onRejected; |
stream->close(); |
- EXPECT_EQ(ReadableStream::Closed, stream->stateInternal()); |
+ EXPECT_EQ(ReadableStream::Closed, stream->state()); |
ScriptPromise promise = stream->cancel(scriptState(), ScriptValue()); |
- EXPECT_EQ(ReadableStream::Closed, stream->stateInternal()); |
+ EXPECT_EQ(ReadableStream::Closed, stream->state()); |
promise.then(createCaptor(&onFulfilled), createCaptor(&onRejected)); |
EXPECT_TRUE(onFulfilled.isNull()); |
@@ -643,10 +647,10 @@ |
StringStream* stream = construct(); |
String onFulfilled, onRejected; |
stream->error(DOMException::create(NotFoundError, "error")); |
- EXPECT_EQ(ReadableStream::Errored, stream->stateInternal()); |
+ EXPECT_EQ(ReadableStream::Errored, stream->state()); |
ScriptPromise promise = stream->cancel(scriptState(), ScriptValue()); |
- EXPECT_EQ(ReadableStream::Errored, stream->stateInternal()); |
+ EXPECT_EQ(ReadableStream::Errored, stream->state()); |
promise.then(createCaptor(&onFulfilled), createCaptor(&onRejected)); |
EXPECT_TRUE(onFulfilled.isNull()); |
@@ -669,10 +673,11 @@ |
EXPECT_CALL(*m_underlyingSource, cancelSource(scriptState(), reason)).WillOnce(Return(promise)); |
} |
- EXPECT_EQ(ReadableStream::Waiting, stream->stateInternal()); |
+ EXPECT_EQ(ReadableStream::Waiting, stream->state()); |
ScriptPromise ready = stream->ready(scriptState()); |
EXPECT_NE(promise, stream->cancel(scriptState(), reason)); |
- EXPECT_EQ(ReadableStream::Closed, stream->stateInternal()); |
+ EXPECT_EQ(ReadableStream::Closed, stream->state()); |
+ EXPECT_EQ(stream->ready(scriptState()), ready); |
ready.then(createCaptor(&onFulfilled), createCaptor(&onRejected)); |
EXPECT_TRUE(onFulfilled.isNull()); |
@@ -698,13 +703,13 @@ |
stream->enqueue("hello"); |
ScriptPromise ready = stream->ready(scriptState()); |
- EXPECT_EQ(ReadableStream::Readable, stream->stateInternal()); |
+ EXPECT_EQ(ReadableStream::Readable, stream->state()); |
ScriptPromise cancelResult = stream->cancel(scriptState(), reason); |
cancelResult.then(createCaptor(&onCancelFulfilled), createCaptor(&onCancelRejected)); |
EXPECT_NE(promise, cancelResult); |
- EXPECT_EQ(ReadableStream::Closed, stream->stateInternal()); |
+ EXPECT_EQ(ReadableStream::Closed, stream->state()); |
EXPECT_EQ(stream->ready(scriptState()), ready); |
@@ -729,7 +734,7 @@ |
Checkpoint checkpoint; |
StringStream* stream = construct(strategy); |
- EXPECT_EQ(ReadableStream::Waiting, stream->stateInternal()); |
+ EXPECT_EQ(ReadableStream::Waiting, stream->state()); |
{ |
InSequence s; |
@@ -761,7 +766,7 @@ |
Checkpoint checkpoint; |
StringStream* stream = construct(strategy); |
- EXPECT_EQ(ReadableStream::Waiting, stream->stateInternal()); |
+ EXPECT_EQ(ReadableStream::Waiting, stream->state()); |
{ |
InSequence s; |
@@ -806,22 +811,4 @@ |
stream->error(DOMException::create(AbortError, "done")); |
} |
-// Note: Detailed tests are on ExclusiveStreamReaderTest. |
-TEST_F(ReadableStreamTest, ExclusiveStreamReader) |
-{ |
- StringStream* stream = construct(); |
- ExclusiveStreamReader* reader = stream->getReader(m_exceptionState); |
- |
- ASSERT_TRUE(reader); |
- EXPECT_FALSE(m_exceptionState.hadException()); |
- EXPECT_TRUE(reader->isActive()); |
- EXPECT_TRUE(stream->isLockedTo(reader)); |
- |
- ExclusiveStreamReader* another = stream->getReader(m_exceptionState); |
- ASSERT_EQ(nullptr, another); |
- EXPECT_TRUE(m_exceptionState.hadException()); |
- EXPECT_TRUE(reader->isActive()); |
- EXPECT_TRUE(stream->isLockedTo(reader)); |
-} |
- |
} // namespace blink |