TEST_F(ReadableStreamTest, ReadQueue) { ScriptState::Scope scope(scriptState()); ExceptionState exceptionState(ExceptionState::ConstructionContext, "property", "interface", scriptState()->context()->Global(), isolate()); StringStream* stream = construct(); Checkpoint checkpoint; { InSequence s; EXPECT_CALL(checkpoint, Call(0)); EXPECT_CALL(*m_underlyingSource, pullSource()).Times(1); EXPECT_CALL(checkpoint, Call(1)); } Deque<std::pair<String, size_t>> queue; EXPECT_TRUE(stream->enqueue("hello")); EXPECT_TRUE(stream->enqueue("bye")); EXPECT_EQ(ReadableStream::Readable, stream->stateInternal()); EXPECT_FALSE(stream->isPulling()); checkpoint.Call(0); EXPECT_FALSE(stream->isDisturbed()); stream->readInternal(queue); EXPECT_TRUE(stream->isDisturbed()); 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::Readable, stream->stateInternal()); EXPECT_TRUE(stream->isPulling()); EXPECT_FALSE(stream->isDraining()); }