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

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

Issue 837673002: Introduce ExclusiveStreamReader. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 5 years, 10 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/xmlhttprequest/XMLHttpRequest.cpp » ('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 945d802364a3347baba7d9dd0e42f1409d222808..b99ca6b36e9c447c795cf344171a2501552b40b2 100644
--- a/Source/core/streams/ReadableStreamTest.cpp
+++ b/Source/core/streams/ReadableStreamTest.cpp
@@ -13,6 +13,7 @@
#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"
@@ -28,8 +29,8 @@ using ::testing::Return;
namespace {
-typedef ::testing::StrictMock<::testing::MockFunction<void(int)> > Checkpoint;
-typedef ReadableStreamImpl<ReadableStreamChunkTypeTraits<String> > StringStream;
+using Checkpoint = ::testing::StrictMock<::testing::MockFunction<void(int)>>;
+using StringStream = ReadableStreamImpl<ReadableStreamChunkTypeTraits<String>>;
class StringCapturingFunction : public ScriptFunction {
public:
@@ -172,7 +173,7 @@ TEST_F(ReadableStreamTest, Start)
EXPECT_FALSE(stream->isStarted());
EXPECT_FALSE(stream->isDraining());
EXPECT_FALSE(stream->isPulling());
- EXPECT_EQ(stream->state(), ReadableStream::Waiting);
+ EXPECT_EQ(stream->stateInternal(), ReadableStream::Waiting);
checkpoint.Call(0);
stream->didSourceStart();
@@ -181,7 +182,7 @@ TEST_F(ReadableStreamTest, Start)
EXPECT_TRUE(stream->isStarted());
EXPECT_FALSE(stream->isDraining());
EXPECT_TRUE(stream->isPulling());
- EXPECT_EQ(stream->state(), ReadableStream::Waiting);
+ EXPECT_EQ(stream->stateInternal(), ReadableStream::Waiting);
// We need to call |error| in order to make
// ActiveDOMObject::hasPendingActivity return false.
@@ -195,14 +196,14 @@ TEST_F(ReadableStreamTest, StartFail)
EXPECT_FALSE(stream->isStarted());
EXPECT_FALSE(stream->isDraining());
EXPECT_FALSE(stream->isPulling());
- EXPECT_EQ(stream->state(), ReadableStream::Waiting);
+ EXPECT_EQ(stream->stateInternal(), ReadableStream::Waiting);
stream->error(DOMException::create(NotFoundError));
EXPECT_FALSE(stream->isStarted());
EXPECT_FALSE(stream->isDraining());
EXPECT_FALSE(stream->isPulling());
- EXPECT_EQ(stream->state(), ReadableStream::Errored);
+ EXPECT_EQ(stream->stateInternal(), ReadableStream::Errored);
}
TEST_F(ReadableStreamTest, WaitOnWaiting)
@@ -210,15 +211,11 @@ TEST_F(ReadableStreamTest, WaitOnWaiting)
StringStream* stream = construct();
Checkpoint checkpoint;
- EXPECT_EQ(ReadableStream::Waiting, stream->state());
+ EXPECT_EQ(ReadableStream::Waiting, stream->stateInternal());
EXPECT_TRUE(stream->isStarted());
EXPECT_TRUE(stream->isPulling());
- ScriptPromise p = stream->ready(scriptState());
- ScriptPromise q = stream->ready(scriptState());
-
- EXPECT_EQ(ReadableStream::Waiting, stream->state());
- EXPECT_EQ(q, p);
+ EXPECT_EQ(ReadableStream::Waiting, stream->stateInternal());
stream->error(DOMException::create(AbortError, "done"));
}
@@ -228,7 +225,7 @@ TEST_F(ReadableStreamTest, WaitDuringStarting)
StringStream* stream = new StringStream(scriptState()->executionContext(), m_underlyingSource);
Checkpoint checkpoint;
- EXPECT_EQ(ReadableStream::Waiting, stream->state());
+ EXPECT_EQ(ReadableStream::Waiting, stream->stateInternal());
EXPECT_FALSE(stream->isStarted());
EXPECT_FALSE(stream->isPulling());
@@ -244,7 +241,7 @@ TEST_F(ReadableStreamTest, WaitDuringStarting)
stream->didSourceStart();
checkpoint.Call(1);
- EXPECT_EQ(ReadableStream::Waiting, stream->state());
+ EXPECT_EQ(ReadableStream::Waiting, stream->stateInternal());
EXPECT_TRUE(stream->isStarted());
EXPECT_TRUE(stream->isPulling());
@@ -258,17 +255,16 @@ TEST_F(ReadableStreamTest, WaitAndError)
ScriptPromise promise = stream->ready(scriptState());
promise.then(createCaptor(&onFulfilled), createCaptor(&onRejected));
- EXPECT_EQ(ReadableStream::Waiting, stream->state());
+ EXPECT_EQ(ReadableStream::Waiting, stream->stateInternal());
EXPECT_TRUE(stream->isPulling());
stream->error(DOMException::create(NotFoundError, "hello, error"));
- EXPECT_EQ(ReadableStream::Errored, stream->state());
+ 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(promise, stream->ready(scriptState()));
EXPECT_EQ("NotFoundError: hello, error", onRejected);
}
@@ -277,11 +273,11 @@ TEST_F(ReadableStreamTest, ErrorAndEnqueue)
StringStream* stream = construct();
stream->error(DOMException::create(NotFoundError, "error"));
- EXPECT_EQ(ReadableStream::Errored, stream->state());
+ EXPECT_EQ(ReadableStream::Errored, stream->stateInternal());
bool result = stream->enqueue("hello");
EXPECT_FALSE(result);
- EXPECT_EQ(ReadableStream::Errored, stream->state());
+ EXPECT_EQ(ReadableStream::Errored, stream->stateInternal());
}
TEST_F(ReadableStreamTest, CloseAndEnqueue)
@@ -289,31 +285,31 @@ TEST_F(ReadableStreamTest, CloseAndEnqueue)
StringStream* stream = construct();
stream->close();
- EXPECT_EQ(ReadableStream::Closed, stream->state());
+ EXPECT_EQ(ReadableStream::Closed, stream->stateInternal());
bool result = stream->enqueue("hello");
EXPECT_FALSE(result);
- EXPECT_EQ(ReadableStream::Closed, stream->state());
+ EXPECT_EQ(ReadableStream::Closed, stream->stateInternal());
}
TEST_F(ReadableStreamTest, EnqueueAndWait)
{
StringStream* stream = construct();
String onFulfilled, onRejected;
- EXPECT_EQ(ReadableStream::Waiting, stream->state());
+ EXPECT_EQ(ReadableStream::Waiting, stream->stateInternal());
bool result = stream->enqueue("hello");
EXPECT_TRUE(result);
- EXPECT_EQ(ReadableStream::Readable, stream->state());
+ EXPECT_EQ(ReadableStream::Readable, stream->stateInternal());
stream->ready(scriptState()).then(createCaptor(&onFulfilled), createCaptor(&onRejected));
- EXPECT_EQ(ReadableStream::Readable, stream->state());
+ 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->state());
+ EXPECT_EQ(ReadableStream::Readable, stream->stateInternal());
EXPECT_FALSE(stream->isPulling());
EXPECT_EQ("undefined", onFulfilled);
EXPECT_TRUE(onRejected.isNull());
@@ -325,19 +321,19 @@ TEST_F(ReadableStreamTest, WaitAndEnqueue)
{
StringStream* stream = construct();
String onFulfilled, onRejected;
- EXPECT_EQ(ReadableStream::Waiting, stream->state());
+ EXPECT_EQ(ReadableStream::Waiting, stream->stateInternal());
stream->ready(scriptState()).then(createCaptor(&onFulfilled), createCaptor(&onRejected));
isolate()->RunMicrotasks();
- EXPECT_EQ(ReadableStream::Waiting, stream->state());
+ EXPECT_EQ(ReadableStream::Waiting, stream->stateInternal());
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->state());
+ EXPECT_EQ(ReadableStream::Readable, stream->stateInternal());
EXPECT_FALSE(stream->isPulling());
EXPECT_TRUE(onFulfilled.isNull());
EXPECT_TRUE(onRejected.isNull());
@@ -353,20 +349,20 @@ TEST_F(ReadableStreamTest, WaitAndEnqueueAndError)
{
StringStream* stream = construct();
String onFulfilled, onRejected;
- EXPECT_EQ(ReadableStream::Waiting, stream->state());
+ EXPECT_EQ(ReadableStream::Waiting, stream->stateInternal());
ScriptPromise promise = stream->ready(scriptState());
promise.then(createCaptor(&onFulfilled), createCaptor(&onRejected));
isolate()->RunMicrotasks();
- EXPECT_EQ(ReadableStream::Waiting, stream->state());
+ EXPECT_EQ(ReadableStream::Waiting, stream->stateInternal());
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->state());
+ EXPECT_EQ(ReadableStream::Readable, stream->stateInternal());
EXPECT_FALSE(stream->isPulling());
EXPECT_TRUE(onFulfilled.isNull());
EXPECT_TRUE(onRejected.isNull());
@@ -376,7 +372,7 @@ TEST_F(ReadableStreamTest, WaitAndEnqueueAndError)
EXPECT_TRUE(onRejected.isNull());
stream->error(DOMException::create(NotFoundError, "error"));
- EXPECT_EQ(ReadableStream::Errored, stream->state());
+ EXPECT_EQ(ReadableStream::Errored, stream->stateInternal());
EXPECT_NE(promise, stream->ready(scriptState()));
}
@@ -388,7 +384,7 @@ TEST_F(ReadableStreamTest, CloseWhenWaiting)
StringStream* stream = construct();
- EXPECT_EQ(ReadableStream::Waiting, stream->state());
+ EXPECT_EQ(ReadableStream::Waiting, stream->stateInternal());
stream->ready(scriptState()).then(createCaptor(&onWaitFulfilled), createCaptor(&onWaitRejected));
stream->closed(scriptState()).then(createCaptor(&onClosedFulfilled), createCaptor(&onClosedRejected));
@@ -399,7 +395,7 @@ TEST_F(ReadableStreamTest, CloseWhenWaiting)
EXPECT_TRUE(onClosedRejected.isNull());
stream->close();
- EXPECT_EQ(ReadableStream::Closed, stream->state());
+ EXPECT_EQ(ReadableStream::Closed, stream->stateInternal());
isolate()->RunMicrotasks();
EXPECT_EQ("undefined", onWaitFulfilled);
EXPECT_TRUE(onWaitRejected.isNull());
@@ -411,13 +407,13 @@ TEST_F(ReadableStreamTest, CloseWhenErrored)
{
String onFulfilled, onRejected;
StringStream* stream = construct();
- EXPECT_EQ(ReadableStream::Waiting, stream->state());
+ EXPECT_EQ(ReadableStream::Waiting, stream->stateInternal());
stream->closed(scriptState()).then(createCaptor(&onFulfilled), createCaptor(&onRejected));
stream->error(DOMException::create(NotFoundError, "error"));
stream->close();
- EXPECT_EQ(ReadableStream::Errored, stream->state());
+ EXPECT_EQ(ReadableStream::Errored, stream->stateInternal());
isolate()->RunMicrotasks();
EXPECT_TRUE(onFulfilled.isNull());
@@ -427,11 +423,11 @@ TEST_F(ReadableStreamTest, CloseWhenErrored)
TEST_F(ReadableStreamTest, ReadWhenWaiting)
{
StringStream* stream = construct();
- EXPECT_EQ(ReadableStream::Waiting, stream->state());
+ EXPECT_EQ(ReadableStream::Waiting, stream->stateInternal());
EXPECT_FALSE(m_exceptionState.hadException());
stream->read(scriptState(), m_exceptionState);
- EXPECT_EQ(ReadableStream::Waiting, stream->state());
+ EXPECT_EQ(ReadableStream::Waiting, stream->stateInternal());
EXPECT_TRUE(m_exceptionState.hadException());
EXPECT_EQ(V8TypeError, m_exceptionState.code());
EXPECT_EQ("read is called while state is waiting", m_exceptionState.message());
@@ -444,11 +440,11 @@ TEST_F(ReadableStreamTest, ReadWhenClosed)
StringStream* stream = construct();
stream->close();
- EXPECT_EQ(ReadableStream::Closed, stream->state());
+ EXPECT_EQ(ReadableStream::Closed, stream->stateInternal());
EXPECT_FALSE(m_exceptionState.hadException());
stream->read(scriptState(), m_exceptionState);
- EXPECT_EQ(ReadableStream::Closed, stream->state());
+ EXPECT_EQ(ReadableStream::Closed, stream->stateInternal());
EXPECT_TRUE(m_exceptionState.hadException());
EXPECT_EQ(V8TypeError, m_exceptionState.code());
EXPECT_EQ("read is called while state is closed", m_exceptionState.message());
@@ -462,11 +458,11 @@ TEST_F(ReadableStreamTest, ReadWhenErrored)
StringStream* stream = construct();
stream->error(DOMException::create(NotFoundError, "error"));
- EXPECT_EQ(ReadableStream::Errored, stream->state());
+ EXPECT_EQ(ReadableStream::Errored, stream->stateInternal());
EXPECT_FALSE(m_exceptionState.hadException());
stream->read(scriptState(), m_exceptionState);
- EXPECT_EQ(ReadableStream::Errored, stream->state());
+ EXPECT_EQ(ReadableStream::Errored, stream->stateInternal());
EXPECT_TRUE(m_exceptionState.hadException());
EXPECT_EQ(notFoundExceptionCode, m_exceptionState.code());
EXPECT_EQ("error", m_exceptionState.message());
@@ -487,7 +483,7 @@ TEST_F(ReadableStreamTest, EnqueuedAndRead)
stream->enqueue("hello");
ScriptPromise promise = stream->ready(scriptState());
- EXPECT_EQ(ReadableStream::Readable, stream->state());
+ EXPECT_EQ(ReadableStream::Readable, stream->stateInternal());
EXPECT_FALSE(stream->isPulling());
checkpoint.Call(0);
@@ -496,7 +492,7 @@ TEST_F(ReadableStreamTest, EnqueuedAndRead)
checkpoint.Call(1);
EXPECT_FALSE(m_exceptionState.hadException());
EXPECT_EQ("hello", chunk);
- EXPECT_EQ(ReadableStream::Waiting, stream->state());
+ EXPECT_EQ(ReadableStream::Waiting, stream->stateInternal());
EXPECT_TRUE(stream->isPulling());
EXPECT_FALSE(stream->isDraining());
@@ -526,7 +522,7 @@ TEST_F(ReadableStreamTest, EnqueueTwiceAndRead)
EXPECT_TRUE(stream->enqueue("hello"));
EXPECT_TRUE(stream->enqueue("bye"));
ScriptPromise promise = stream->ready(scriptState());
- EXPECT_EQ(ReadableStream::Readable, stream->state());
+ EXPECT_EQ(ReadableStream::Readable, stream->stateInternal());
EXPECT_FALSE(stream->isPulling());
String chunk;
@@ -535,7 +531,7 @@ TEST_F(ReadableStreamTest, EnqueueTwiceAndRead)
checkpoint.Call(1);
EXPECT_FALSE(m_exceptionState.hadException());
EXPECT_EQ("hello", chunk);
- EXPECT_EQ(ReadableStream::Readable, stream->state());
+ EXPECT_EQ(ReadableStream::Readable, stream->stateInternal());
EXPECT_TRUE(stream->isPulling());
EXPECT_FALSE(stream->isDraining());
@@ -545,7 +541,7 @@ TEST_F(ReadableStreamTest, EnqueueTwiceAndRead)
stream->error(DOMException::create(AbortError, "done"));
}
-TEST_F(ReadableStreamTest, InternalRead)
+TEST_F(ReadableStreamTest, ReadQueue)
{
StringStream* stream = construct();
Checkpoint checkpoint;
@@ -561,19 +557,19 @@ TEST_F(ReadableStreamTest, InternalRead)
EXPECT_TRUE(stream->enqueue("hello"));
EXPECT_TRUE(stream->enqueue("bye"));
- EXPECT_EQ(ReadableStream::Readable, stream->state());
+ EXPECT_EQ(ReadableStream::Readable, stream->stateInternal());
EXPECT_FALSE(stream->isPulling());
String chunk;
checkpoint.Call(0);
- stream->read(queue);
+ stream->readInternal(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->state());
+ EXPECT_EQ(ReadableStream::Waiting, stream->stateInternal());
EXPECT_TRUE(stream->isPulling());
EXPECT_FALSE(stream->isDraining());
}
@@ -590,7 +586,7 @@ TEST_F(ReadableStreamTest, CloseWhenReadable)
EXPECT_FALSE(stream->enqueue("should be ignored"));
ScriptPromise promise = stream->ready(scriptState());
- EXPECT_EQ(ReadableStream::Readable, stream->state());
+ EXPECT_EQ(ReadableStream::Readable, stream->stateInternal());
EXPECT_FALSE(stream->isPulling());
EXPECT_TRUE(stream->isDraining());
@@ -601,7 +597,7 @@ TEST_F(ReadableStreamTest, CloseWhenReadable)
isolate()->RunMicrotasks();
- EXPECT_EQ(ReadableStream::Readable, stream->state());
+ EXPECT_EQ(ReadableStream::Readable, stream->stateInternal());
EXPECT_FALSE(stream->isPulling());
EXPECT_TRUE(stream->isDraining());
@@ -611,7 +607,7 @@ TEST_F(ReadableStreamTest, CloseWhenReadable)
EXPECT_EQ(promise, stream->ready(scriptState()));
- EXPECT_EQ(ReadableStream::Closed, stream->state());
+ EXPECT_EQ(ReadableStream::Closed, stream->stateInternal());
EXPECT_FALSE(stream->isPulling());
EXPECT_TRUE(stream->isDraining());
@@ -628,10 +624,10 @@ TEST_F(ReadableStreamTest, CancelWhenClosed)
StringStream* stream = construct();
String onFulfilled, onRejected;
stream->close();
- EXPECT_EQ(ReadableStream::Closed, stream->state());
+ EXPECT_EQ(ReadableStream::Closed, stream->stateInternal());
ScriptPromise promise = stream->cancel(scriptState(), ScriptValue());
- EXPECT_EQ(ReadableStream::Closed, stream->state());
+ EXPECT_EQ(ReadableStream::Closed, stream->stateInternal());
promise.then(createCaptor(&onFulfilled), createCaptor(&onRejected));
EXPECT_TRUE(onFulfilled.isNull());
@@ -647,10 +643,10 @@ TEST_F(ReadableStreamTest, CancelWhenErrored)
StringStream* stream = construct();
String onFulfilled, onRejected;
stream->error(DOMException::create(NotFoundError, "error"));
- EXPECT_EQ(ReadableStream::Errored, stream->state());
+ EXPECT_EQ(ReadableStream::Errored, stream->stateInternal());
ScriptPromise promise = stream->cancel(scriptState(), ScriptValue());
- EXPECT_EQ(ReadableStream::Errored, stream->state());
+ EXPECT_EQ(ReadableStream::Errored, stream->stateInternal());
promise.then(createCaptor(&onFulfilled), createCaptor(&onRejected));
EXPECT_TRUE(onFulfilled.isNull());
@@ -673,11 +669,10 @@ TEST_F(ReadableStreamTest, CancelWhenWaiting)
EXPECT_CALL(*m_underlyingSource, cancelSource(scriptState(), reason)).WillOnce(Return(promise));
}
- EXPECT_EQ(ReadableStream::Waiting, stream->state());
+ EXPECT_EQ(ReadableStream::Waiting, stream->stateInternal());
ScriptPromise ready = stream->ready(scriptState());
EXPECT_NE(promise, stream->cancel(scriptState(), reason));
- EXPECT_EQ(ReadableStream::Closed, stream->state());
- EXPECT_EQ(stream->ready(scriptState()), ready);
+ EXPECT_EQ(ReadableStream::Closed, stream->stateInternal());
ready.then(createCaptor(&onFulfilled), createCaptor(&onRejected));
EXPECT_TRUE(onFulfilled.isNull());
@@ -703,13 +698,13 @@ TEST_F(ReadableStreamTest, CancelWhenReadable)
stream->enqueue("hello");
ScriptPromise ready = stream->ready(scriptState());
- EXPECT_EQ(ReadableStream::Readable, stream->state());
+ EXPECT_EQ(ReadableStream::Readable, stream->stateInternal());
ScriptPromise cancelResult = stream->cancel(scriptState(), reason);
cancelResult.then(createCaptor(&onCancelFulfilled), createCaptor(&onCancelRejected));
EXPECT_NE(promise, cancelResult);
- EXPECT_EQ(ReadableStream::Closed, stream->state());
+ EXPECT_EQ(ReadableStream::Closed, stream->stateInternal());
EXPECT_EQ(stream->ready(scriptState()), ready);
@@ -734,7 +729,7 @@ TEST_F(ReadableStreamTest, BackpressureOnEnqueueing)
Checkpoint checkpoint;
StringStream* stream = construct(strategy);
- EXPECT_EQ(ReadableStream::Waiting, stream->state());
+ EXPECT_EQ(ReadableStream::Waiting, stream->stateInternal());
{
InSequence s;
@@ -766,7 +761,7 @@ TEST_F(ReadableStreamTest, BackpressureOnReading)
Checkpoint checkpoint;
StringStream* stream = construct(strategy);
- EXPECT_EQ(ReadableStream::Waiting, stream->state());
+ EXPECT_EQ(ReadableStream::Waiting, stream->stateInternal());
{
InSequence s;
@@ -811,4 +806,22 @@ TEST_F(ReadableStreamTest, BackpressureOnReading)
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
« no previous file with comments | « Source/core/streams/ReadableStreamImpl.h ('k') | Source/core/xmlhttprequest/XMLHttpRequest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698