| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "core/streams/ReadableStreamOperations.h" | 5 #include "core/streams/ReadableStreamOperations.h" |
| 6 | 6 |
| 7 #include "bindings/core/v8/ExceptionState.h" | 7 #include "bindings/core/v8/ExceptionState.h" |
| 8 #include "bindings/core/v8/ScriptFunction.h" | 8 #include "bindings/core/v8/ScriptFunction.h" |
| 9 #include "bindings/core/v8/ScriptState.h" | 9 #include "bindings/core/v8/ScriptState.h" |
| 10 #include "bindings/core/v8/ScriptValue.h" | 10 #include "bindings/core/v8/ScriptValue.h" |
| (...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 179 TEST_F(ReadableStreamOperationsTest, IsReadableStream) | 179 TEST_F(ReadableStreamOperationsTest, IsReadableStream) |
| 180 { | 180 { |
| 181 EXPECT_FALSE(ReadableStreamOperations::isReadableStream(getScriptState(), Sc
riptValue(getScriptState(), v8::Undefined(isolate())))); | 181 EXPECT_FALSE(ReadableStreamOperations::isReadableStream(getScriptState(), Sc
riptValue(getScriptState(), v8::Undefined(isolate())))); |
| 182 EXPECT_FALSE(ReadableStreamOperations::isReadableStream(getScriptState(), Sc
riptValue::createNull(getScriptState()))); | 182 EXPECT_FALSE(ReadableStreamOperations::isReadableStream(getScriptState(), Sc
riptValue::createNull(getScriptState()))); |
| 183 EXPECT_FALSE(ReadableStreamOperations::isReadableStream(getScriptState(), Sc
riptValue(getScriptState(), v8::Object::New(isolate())))); | 183 EXPECT_FALSE(ReadableStreamOperations::isReadableStream(getScriptState(), Sc
riptValue(getScriptState(), v8::Object::New(isolate())))); |
| 184 ScriptValue stream = evalWithPrintingError("new ReadableStream()"); | 184 ScriptValue stream = evalWithPrintingError("new ReadableStream()"); |
| 185 EXPECT_FALSE(stream.isEmpty()); | 185 EXPECT_FALSE(stream.isEmpty()); |
| 186 EXPECT_TRUE(ReadableStreamOperations::isReadableStream(getScriptState(), str
eam)); | 186 EXPECT_TRUE(ReadableStreamOperations::isReadableStream(getScriptState(), str
eam)); |
| 187 } | 187 } |
| 188 | 188 |
| 189 TEST_F(ReadableStreamOperationsTest, IsReadableStreamReaderInvalid) | 189 TEST_F(ReadableStreamOperationsTest, IsReadableStreamDefaultReaderInvalid) |
| 190 { | 190 { |
| 191 EXPECT_FALSE(ReadableStreamOperations::isReadableStreamReader(getScriptState
(), ScriptValue(getScriptState(), v8::Undefined(isolate())))); | 191 EXPECT_FALSE(ReadableStreamOperations::isReadableStreamDefaultReader(getScri
ptState(), ScriptValue(getScriptState(), v8::Undefined(isolate())))); |
| 192 EXPECT_FALSE(ReadableStreamOperations::isReadableStreamReader(getScriptState
(), ScriptValue::createNull(getScriptState()))); | 192 EXPECT_FALSE(ReadableStreamOperations::isReadableStreamDefaultReader(getScri
ptState(), ScriptValue::createNull(getScriptState()))); |
| 193 EXPECT_FALSE(ReadableStreamOperations::isReadableStreamReader(getScriptState
(), ScriptValue(getScriptState(), v8::Object::New(isolate())))); | 193 EXPECT_FALSE(ReadableStreamOperations::isReadableStreamDefaultReader(getScri
ptState(), ScriptValue(getScriptState(), v8::Object::New(isolate())))); |
| 194 ScriptValue stream = evalWithPrintingError("new ReadableStream()"); | 194 ScriptValue stream = evalWithPrintingError("new ReadableStream()"); |
| 195 EXPECT_FALSE(stream.isEmpty()); | 195 EXPECT_FALSE(stream.isEmpty()); |
| 196 | 196 |
| 197 EXPECT_FALSE(ReadableStreamOperations::isReadableStreamReader(getScriptState
(), stream)); | 197 EXPECT_FALSE(ReadableStreamOperations::isReadableStreamDefaultReader(getScri
ptState(), stream)); |
| 198 } | 198 } |
| 199 | 199 |
| 200 TEST_F(ReadableStreamOperationsTest, GetReader) | 200 TEST_F(ReadableStreamOperationsTest, GetReader) |
| 201 { | 201 { |
| 202 ScriptValue stream = evalWithPrintingError("new ReadableStream()"); | 202 ScriptValue stream = evalWithPrintingError("new ReadableStream()"); |
| 203 EXPECT_FALSE(stream.isEmpty()); | 203 EXPECT_FALSE(stream.isEmpty()); |
| 204 | 204 |
| 205 EXPECT_FALSE(ReadableStreamOperations::isLocked(getScriptState(), stream)); | 205 EXPECT_FALSE(ReadableStreamOperations::isLocked(getScriptState(), stream)); |
| 206 ScriptValue reader; | 206 ScriptValue reader; |
| 207 { | 207 { |
| 208 TrackExceptionState es; | 208 TrackExceptionState es; |
| 209 reader = ReadableStreamOperations::getReader(getScriptState(), stream, e
s); | 209 reader = ReadableStreamOperations::getReader(getScriptState(), stream, e
s); |
| 210 ASSERT_FALSE(es.hadException()); | 210 ASSERT_FALSE(es.hadException()); |
| 211 } | 211 } |
| 212 EXPECT_TRUE(ReadableStreamOperations::isLocked(getScriptState(), stream)); | 212 EXPECT_TRUE(ReadableStreamOperations::isLocked(getScriptState(), stream)); |
| 213 ASSERT_FALSE(reader.isEmpty()); | 213 ASSERT_FALSE(reader.isEmpty()); |
| 214 | 214 |
| 215 EXPECT_FALSE(ReadableStreamOperations::isReadableStream(getScriptState(), re
ader)); | 215 EXPECT_FALSE(ReadableStreamOperations::isReadableStream(getScriptState(), re
ader)); |
| 216 EXPECT_TRUE(ReadableStreamOperations::isReadableStreamReader(getScriptState(
), reader)); | 216 EXPECT_TRUE(ReadableStreamOperations::isReadableStreamDefaultReader(getScrip
tState(), reader)); |
| 217 | 217 |
| 218 // Already locked! | 218 // Already locked! |
| 219 { | 219 { |
| 220 TrackExceptionState es; | 220 TrackExceptionState es; |
| 221 reader = ReadableStreamOperations::getReader(getScriptState(), stream, e
s); | 221 reader = ReadableStreamOperations::getReader(getScriptState(), stream, e
s); |
| 222 ASSERT_TRUE(es.hadException()); | 222 ASSERT_TRUE(es.hadException()); |
| 223 } | 223 } |
| 224 ASSERT_TRUE(reader.isEmpty()); | 224 ASSERT_TRUE(reader.isEmpty()); |
| 225 } | 225 } |
| 226 | 226 |
| 227 TEST_F(ReadableStreamOperationsTest, IsDisturbed) | 227 TEST_F(ReadableStreamOperationsTest, IsDisturbed) |
| 228 { | 228 { |
| 229 ScriptValue stream = evalWithPrintingError("stream = new ReadableStream()"); | 229 ScriptValue stream = evalWithPrintingError("stream = new ReadableStream()"); |
| 230 EXPECT_FALSE(stream.isEmpty()); | 230 EXPECT_FALSE(stream.isEmpty()); |
| 231 | 231 |
| 232 EXPECT_FALSE(ReadableStreamOperations::isDisturbed(getScriptState(), stream)
); | 232 EXPECT_FALSE(ReadableStreamOperations::isDisturbed(getScriptState(), stream)
); |
| 233 | 233 |
| 234 ASSERT_FALSE(evalWithPrintingError("stream.cancel()").isEmpty()); | 234 ASSERT_FALSE(evalWithPrintingError("stream.cancel()").isEmpty()); |
| 235 | 235 |
| 236 EXPECT_TRUE(ReadableStreamOperations::isDisturbed(getScriptState(), stream))
; | 236 EXPECT_TRUE(ReadableStreamOperations::isDisturbed(getScriptState(), stream))
; |
| 237 } | 237 } |
| 238 | 238 |
| 239 TEST_F(ReadableStreamOperationsTest, Read) | 239 TEST_F(ReadableStreamOperationsTest, Read) |
| 240 { | 240 { |
| 241 ScriptValue reader = evalWithPrintingError( | 241 ScriptValue reader = evalWithPrintingError( |
| 242 "var controller;" | 242 "var controller;" |
| 243 "function start(c) { controller = c; }" | 243 "function start(c) { controller = c; }" |
| 244 "new ReadableStream({start}).getReader()"); | 244 "new ReadableStream({start}).getReader()"); |
| 245 EXPECT_FALSE(reader.isEmpty()); | 245 EXPECT_FALSE(reader.isEmpty()); |
| 246 ASSERT_TRUE(ReadableStreamOperations::isReadableStreamReader(getScriptState(
), reader)); | 246 ASSERT_TRUE(ReadableStreamOperations::isReadableStreamDefaultReader(getScrip
tState(), reader)); |
| 247 | 247 |
| 248 Iteration* it1 = new Iteration(); | 248 Iteration* it1 = new Iteration(); |
| 249 Iteration* it2 = new Iteration(); | 249 Iteration* it2 = new Iteration(); |
| 250 ReadableStreamOperations::read(getScriptState(), reader).then( | 250 ReadableStreamOperations::defaultReaderRead(getScriptState(), reader).then( |
| 251 Function::createFunction(getScriptState(), it1), | 251 Function::createFunction(getScriptState(), it1), |
| 252 NotReached::createFunction(getScriptState())); | 252 NotReached::createFunction(getScriptState())); |
| 253 ReadableStreamOperations::read(getScriptState(), reader).then( | 253 ReadableStreamOperations::defaultReaderRead(getScriptState(), reader).then( |
| 254 Function::createFunction(getScriptState(), it2), | 254 Function::createFunction(getScriptState(), it2), |
| 255 NotReached::createFunction(getScriptState())); | 255 NotReached::createFunction(getScriptState())); |
| 256 | 256 |
| 257 v8::MicrotasksScope::PerformCheckpoint(isolate()); | 257 v8::MicrotasksScope::PerformCheckpoint(isolate()); |
| 258 EXPECT_FALSE(it1->isSet()); | 258 EXPECT_FALSE(it1->isSet()); |
| 259 EXPECT_FALSE(it2->isSet()); | 259 EXPECT_FALSE(it2->isSet()); |
| 260 | 260 |
| 261 ASSERT_FALSE(evalWithPrintingError("controller.enqueue('hello')").isEmpty())
; | 261 ASSERT_FALSE(evalWithPrintingError("controller.enqueue('hello')").isEmpty())
; |
| 262 v8::MicrotasksScope::PerformCheckpoint(isolate()); | 262 v8::MicrotasksScope::PerformCheckpoint(isolate()); |
| 263 EXPECT_TRUE(it1->isSet()); | 263 EXPECT_TRUE(it1->isSet()); |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 299 { | 299 { |
| 300 TrackExceptionState es; | 300 TrackExceptionState es; |
| 301 reader = ReadableStreamOperations::getReader(getScriptState(), stream, e
s); | 301 reader = ReadableStreamOperations::getReader(getScriptState(), stream, e
s); |
| 302 ASSERT_FALSE(es.hadException()); | 302 ASSERT_FALSE(es.hadException()); |
| 303 } | 303 } |
| 304 ASSERT_FALSE(reader.isEmpty()); | 304 ASSERT_FALSE(reader.isEmpty()); |
| 305 | 305 |
| 306 Iteration* it1 = new Iteration(); | 306 Iteration* it1 = new Iteration(); |
| 307 Iteration* it2 = new Iteration(); | 307 Iteration* it2 = new Iteration(); |
| 308 Iteration* it3 = new Iteration(); | 308 Iteration* it3 = new Iteration(); |
| 309 ReadableStreamOperations::read(getScriptState(), reader).then(Function::crea
teFunction(getScriptState(), it1), NotReached::createFunction(getScriptState()))
; | 309 ReadableStreamOperations::defaultReaderRead(getScriptState(), reader).then(F
unction::createFunction(getScriptState(), it1), NotReached::createFunction(getSc
riptState())); |
| 310 ReadableStreamOperations::read(getScriptState(), reader).then(Function::crea
teFunction(getScriptState(), it2), NotReached::createFunction(getScriptState()))
; | 310 ReadableStreamOperations::defaultReaderRead(getScriptState(), reader).then(F
unction::createFunction(getScriptState(), it2), NotReached::createFunction(getSc
riptState())); |
| 311 ReadableStreamOperations::read(getScriptState(), reader).then(Function::crea
teFunction(getScriptState(), it3), NotReached::createFunction(getScriptState()))
; | 311 ReadableStreamOperations::defaultReaderRead(getScriptState(), reader).then(F
unction::createFunction(getScriptState(), it3), NotReached::createFunction(getSc
riptState())); |
| 312 | 312 |
| 313 v8::MicrotasksScope::PerformCheckpoint(isolate()); | 313 v8::MicrotasksScope::PerformCheckpoint(isolate()); |
| 314 | 314 |
| 315 EXPECT_EQ(10, underlyingSource->desiredSize()); | 315 EXPECT_EQ(10, underlyingSource->desiredSize()); |
| 316 | 316 |
| 317 EXPECT_TRUE(it1->isSet()); | 317 EXPECT_TRUE(it1->isSet()); |
| 318 EXPECT_TRUE(it1->isValid()); | 318 EXPECT_TRUE(it1->isValid()); |
| 319 EXPECT_FALSE(it1->isDone()); | 319 EXPECT_FALSE(it1->isDone()); |
| 320 EXPECT_EQ("a", it1->value()); | 320 EXPECT_EQ("a", it1->value()); |
| 321 | 321 |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 397 ASSERT_FALSE(errored.isEmpty()); | 397 ASSERT_FALSE(errored.isEmpty()); |
| 398 | 398 |
| 399 EXPECT_FALSE(ReadableStreamOperations::isErrored(getScriptState(), readable)
); | 399 EXPECT_FALSE(ReadableStreamOperations::isErrored(getScriptState(), readable)
); |
| 400 EXPECT_FALSE(ReadableStreamOperations::isErrored(getScriptState(), closed)); | 400 EXPECT_FALSE(ReadableStreamOperations::isErrored(getScriptState(), closed)); |
| 401 EXPECT_TRUE(ReadableStreamOperations::isErrored(getScriptState(), errored)); | 401 EXPECT_TRUE(ReadableStreamOperations::isErrored(getScriptState(), errored)); |
| 402 } | 402 } |
| 403 | 403 |
| 404 } // namespace | 404 } // namespace |
| 405 | 405 |
| 406 } // namespace blink | 406 } // namespace blink |
| 407 | |
| OLD | NEW |