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

Unified Diff: third_party/WebKit/Source/core/streams/ReadableStreamOperationsTest.cpp

Issue 1969333002: [Fetch API] |(new Response(stream)).body| should return |stream| (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 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
Index: third_party/WebKit/Source/core/streams/ReadableStreamOperationsTest.cpp
diff --git a/third_party/WebKit/Source/core/streams/ReadableStreamOperationsTest.cpp b/third_party/WebKit/Source/core/streams/ReadableStreamOperationsTest.cpp
index 8b6f1344c61943034d385a99ef88ecbb5c95a4f9..5ec4a66f5a2b44ff1416d0aacd945b0d1efe8eed 100644
--- a/third_party/WebKit/Source/core/streams/ReadableStreamOperationsTest.cpp
+++ b/third_party/WebKit/Source/core/streams/ReadableStreamOperationsTest.cpp
@@ -401,6 +401,45 @@ TEST_F(ReadableStreamOperationsTest, IsErrored)
EXPECT_TRUE(ReadableStreamOperations::isErrored(getScriptState(), errored));
}
+TEST_F(ReadableStreamOperationsTest, Tee)
+{
+ ScriptValue original = evalWithPrintingError(
+ "var controller;"
+ "new ReadableStream({start: c => controller = c})");
+ ASSERT_FALSE(original.isEmpty());
+ ScriptValue new1, new2;
+ ReadableStreamOperations::tee(getScriptState(), original, &new1, &new2);
+
+ NonThrowableExceptionState ec;
+ ScriptValue reader1 = ReadableStreamOperations::getReader(getScriptState(), new1, ec);
+ ScriptValue reader2 = ReadableStreamOperations::getReader(getScriptState(), new2, ec);
+
+ Iteration* it1 = new Iteration();
+ Iteration* it2 = new Iteration();
+ ReadableStreamOperations::defaultReaderRead(getScriptState(), reader1).then(
+ Function::createFunction(getScriptState(), it1),
+ NotReached::createFunction(getScriptState()));
+ ReadableStreamOperations::defaultReaderRead(getScriptState(), reader2).then(
+ Function::createFunction(getScriptState(), it2),
+ NotReached::createFunction(getScriptState()));
+
+ v8::MicrotasksScope::PerformCheckpoint(isolate());
+ EXPECT_FALSE(it1->isSet());
+ EXPECT_FALSE(it2->isSet());
+
+ ASSERT_FALSE(evalWithPrintingError("controller.enqueue('hello')").isEmpty());
+ v8::MicrotasksScope::PerformCheckpoint(isolate());
+
+ EXPECT_TRUE(it1->isSet());
+ EXPECT_TRUE(it1->isValid());
+ EXPECT_FALSE(it1->isDone());
+ EXPECT_EQ("hello", it1->value());
+ EXPECT_TRUE(it2->isSet());
+ EXPECT_TRUE(it2->isValid());
+ EXPECT_FALSE(it2->isDone());
+ EXPECT_EQ("hello", it2->value());
+}
+
} // namespace
} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698