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 "modules/fetch/ReadableStreamDataConsumerHandle.h" | 5 #include "modules/fetch/ReadableStreamDataConsumerHandle.h" |
6 | 6 |
7 #include "bindings/core/v8/ReadableStreamOperations.h" | 7 #include "bindings/core/v8/ReadableStreamOperations.h" |
8 #include "bindings/core/v8/ScriptState.h" | 8 #include "bindings/core/v8/ScriptState.h" |
9 #include "bindings/core/v8/V8BindingMacros.h" | 9 #include "bindings/core/v8/V8BindingMacros.h" |
10 #include "bindings/core/v8/V8GCController.h" | 10 #include "bindings/core/v8/V8GCController.h" |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
46 MockClient() = default; | 46 MockClient() = default; |
47 }; | 47 }; |
48 | 48 |
49 class ReadableStreamDataConsumerHandleTest : public ::testing::Test { | 49 class ReadableStreamDataConsumerHandleTest : public ::testing::Test { |
50 public: | 50 public: |
51 ReadableStreamDataConsumerHandleTest() | 51 ReadableStreamDataConsumerHandleTest() |
52 : m_page(DummyPageHolder::create()) | 52 : m_page(DummyPageHolder::create()) |
53 { | 53 { |
54 } | 54 } |
55 | 55 |
56 ScriptState* scriptState() { return ScriptState::forMainWorld(m_page->docume
nt().frame()); } | 56 ScriptState* getScriptState() { return ScriptState::forMainWorld(m_page->doc
ument().frame()); } |
57 v8::Isolate* isolate() { return scriptState()->isolate(); } | 57 v8::Isolate* isolate() { return getScriptState()->isolate(); } |
58 | 58 |
59 v8::MaybeLocal<v8::Value> eval(const char* s) | 59 v8::MaybeLocal<v8::Value> eval(const char* s) |
60 { | 60 { |
61 v8::Local<v8::String> source; | 61 v8::Local<v8::String> source; |
62 v8::Local<v8::Script> script; | 62 v8::Local<v8::Script> script; |
63 V8RecursionScope::MicrotaskSuppression microtasks(isolate()); | 63 V8RecursionScope::MicrotaskSuppression microtasks(isolate()); |
64 if (!v8Call(v8::String::NewFromUtf8(isolate(), s, v8::NewStringType::kNo
rmal), source)) { | 64 if (!v8Call(v8::String::NewFromUtf8(isolate(), s, v8::NewStringType::kNo
rmal), source)) { |
65 ADD_FAILURE(); | 65 ADD_FAILURE(); |
66 return v8::MaybeLocal<v8::Value>(); | 66 return v8::MaybeLocal<v8::Value>(); |
67 } | 67 } |
68 if (!v8Call(v8::Script::Compile(scriptState()->context(), source), scrip
t)) { | 68 if (!v8Call(v8::Script::Compile(getScriptState()->context(), source), sc
ript)) { |
69 ADD_FAILURE() << "Compilation fails"; | 69 ADD_FAILURE() << "Compilation fails"; |
70 return v8::MaybeLocal<v8::Value>(); | 70 return v8::MaybeLocal<v8::Value>(); |
71 } | 71 } |
72 return script->Run(scriptState()->context()); | 72 return script->Run(getScriptState()->context()); |
73 } | 73 } |
74 v8::MaybeLocal<v8::Value> evalWithPrintingError(const char* s) | 74 v8::MaybeLocal<v8::Value> evalWithPrintingError(const char* s) |
75 { | 75 { |
76 v8::TryCatch block(isolate()); | 76 v8::TryCatch block(isolate()); |
77 v8::MaybeLocal<v8::Value> r = eval(s); | 77 v8::MaybeLocal<v8::Value> r = eval(s); |
78 if (block.HasCaught()) { | 78 if (block.HasCaught()) { |
79 ADD_FAILURE() << toCoreString(block.Exception()->ToString(isolate())
).utf8().data(); | 79 ADD_FAILURE() << toCoreString(block.Exception()->ToString(isolate())
).utf8().data(); |
80 block.ReThrow(); | 80 block.ReThrow(); |
81 } | 81 } |
82 return r; | 82 return r; |
83 } | 83 } |
84 | 84 |
85 PassOwnPtr<ReadableStreamDataConsumerHandle> createHandle(ScriptValue stream
) | 85 PassOwnPtr<ReadableStreamDataConsumerHandle> createHandle(ScriptValue stream
) |
86 { | 86 { |
87 NonThrowableExceptionState es; | 87 NonThrowableExceptionState es; |
88 ScriptValue reader = ReadableStreamOperations::getReader(scriptState(),
stream, es); | 88 ScriptValue reader = ReadableStreamOperations::getReader(getScriptState(
), stream, es); |
89 ASSERT(!reader.isEmpty()); | 89 ASSERT(!reader.isEmpty()); |
90 ASSERT(reader.v8Value()->IsObject()); | 90 ASSERT(reader.v8Value()->IsObject()); |
91 return ReadableStreamDataConsumerHandle::create(scriptState(), reader); | 91 return ReadableStreamDataConsumerHandle::create(getScriptState(), reader
); |
92 } | 92 } |
93 | 93 |
94 void gc() { V8GCController::collectAllGarbageForTesting(isolate()); } | 94 void gc() { V8GCController::collectAllGarbageForTesting(isolate()); } |
95 | 95 |
96 private: | 96 private: |
97 OwnPtr<DummyPageHolder> m_page; | 97 OwnPtr<DummyPageHolder> m_page; |
98 }; | 98 }; |
99 | 99 |
100 TEST_F(ReadableStreamDataConsumerHandleTest, Create) | 100 TEST_F(ReadableStreamDataConsumerHandleTest, Create) |
101 { | 101 { |
102 ScriptState::Scope scope(scriptState()); | 102 ScriptState::Scope scope(getScriptState()); |
103 ScriptValue stream(scriptState(), evalWithPrintingError("new ReadableStream"
)); | 103 ScriptValue stream(getScriptState(), evalWithPrintingError("new ReadableStre
am")); |
104 ASSERT_FALSE(stream.isEmpty()); | 104 ASSERT_FALSE(stream.isEmpty()); |
105 OwnPtr<ReadableStreamDataConsumerHandle> handle = createHandle(stream); | 105 OwnPtr<ReadableStreamDataConsumerHandle> handle = createHandle(stream); |
106 ASSERT_TRUE(handle); | 106 ASSERT_TRUE(handle); |
107 MockClient* client = MockClient::create(); | 107 MockClient* client = MockClient::create(); |
108 Checkpoint checkpoint; | 108 Checkpoint checkpoint; |
109 | 109 |
110 InSequence s; | 110 InSequence s; |
111 EXPECT_CALL(checkpoint, Call(1)); | 111 EXPECT_CALL(checkpoint, Call(1)); |
112 EXPECT_CALL(*client, didGetReadable()); | 112 EXPECT_CALL(*client, didGetReadable()); |
113 EXPECT_CALL(checkpoint, Call(2)); | 113 EXPECT_CALL(checkpoint, Call(2)); |
114 | 114 |
115 OwnPtr<FetchDataConsumerHandle::Reader> reader = handle->obtainReader(client
); | 115 OwnPtr<FetchDataConsumerHandle::Reader> reader = handle->obtainReader(client
); |
116 ASSERT_TRUE(reader); | 116 ASSERT_TRUE(reader); |
117 checkpoint.Call(1); | 117 checkpoint.Call(1); |
118 testing::runPendingTasks(); | 118 testing::runPendingTasks(); |
119 checkpoint.Call(2); | 119 checkpoint.Call(2); |
120 } | 120 } |
121 | 121 |
122 TEST_F(ReadableStreamDataConsumerHandleTest, EmptyStream) | 122 TEST_F(ReadableStreamDataConsumerHandleTest, EmptyStream) |
123 { | 123 { |
124 ScriptState::Scope scope(scriptState()); | 124 ScriptState::Scope scope(getScriptState()); |
125 ScriptValue stream(scriptState(), evalWithPrintingError( | 125 ScriptValue stream(getScriptState(), evalWithPrintingError( |
126 "new ReadableStream({start: c => c.close()})")); | 126 "new ReadableStream({start: c => c.close()})")); |
127 ASSERT_FALSE(stream.isEmpty()); | 127 ASSERT_FALSE(stream.isEmpty()); |
128 OwnPtr<ReadableStreamDataConsumerHandle> handle = createHandle(stream); | 128 OwnPtr<ReadableStreamDataConsumerHandle> handle = createHandle(stream); |
129 ASSERT_TRUE(handle); | 129 ASSERT_TRUE(handle); |
130 MockClient* client = MockClient::create(); | 130 MockClient* client = MockClient::create(); |
131 Checkpoint checkpoint; | 131 Checkpoint checkpoint; |
132 | 132 |
133 InSequence s; | 133 InSequence s; |
134 EXPECT_CALL(checkpoint, Call(1)); | 134 EXPECT_CALL(checkpoint, Call(1)); |
135 EXPECT_CALL(*client, didGetReadable()); | 135 EXPECT_CALL(*client, didGetReadable()); |
136 EXPECT_CALL(checkpoint, Call(2)); | 136 EXPECT_CALL(checkpoint, Call(2)); |
137 EXPECT_CALL(*client, didGetReadable()); | 137 EXPECT_CALL(*client, didGetReadable()); |
138 EXPECT_CALL(checkpoint, Call(3)); | 138 EXPECT_CALL(checkpoint, Call(3)); |
139 | 139 |
140 char c; | 140 char c; |
141 size_t readBytes; | 141 size_t readBytes; |
142 OwnPtr<FetchDataConsumerHandle::Reader> reader = handle->obtainReader(client
); | 142 OwnPtr<FetchDataConsumerHandle::Reader> reader = handle->obtainReader(client
); |
143 ASSERT_TRUE(reader); | 143 ASSERT_TRUE(reader); |
144 checkpoint.Call(1); | 144 checkpoint.Call(1); |
145 testing::runPendingTasks(); | 145 testing::runPendingTasks(); |
146 checkpoint.Call(2); | 146 checkpoint.Call(2); |
147 EXPECT_EQ(kShouldWait, reader->read(&c, 1, kNone, &readBytes)); | 147 EXPECT_EQ(kShouldWait, reader->read(&c, 1, kNone, &readBytes)); |
148 testing::runPendingTasks(); | 148 testing::runPendingTasks(); |
149 checkpoint.Call(3); | 149 checkpoint.Call(3); |
150 EXPECT_EQ(kDone, reader->read(&c, 1, kNone, &readBytes)); | 150 EXPECT_EQ(kDone, reader->read(&c, 1, kNone, &readBytes)); |
151 } | 151 } |
152 | 152 |
153 TEST_F(ReadableStreamDataConsumerHandleTest, ErroredStream) | 153 TEST_F(ReadableStreamDataConsumerHandleTest, ErroredStream) |
154 { | 154 { |
155 ScriptState::Scope scope(scriptState()); | 155 ScriptState::Scope scope(getScriptState()); |
156 ScriptValue stream(scriptState(), evalWithPrintingError( | 156 ScriptValue stream(getScriptState(), evalWithPrintingError( |
157 "new ReadableStream({start: c => c.error()})")); | 157 "new ReadableStream({start: c => c.error()})")); |
158 ASSERT_FALSE(stream.isEmpty()); | 158 ASSERT_FALSE(stream.isEmpty()); |
159 OwnPtr<ReadableStreamDataConsumerHandle> handle = createHandle(stream); | 159 OwnPtr<ReadableStreamDataConsumerHandle> handle = createHandle(stream); |
160 ASSERT_TRUE(handle); | 160 ASSERT_TRUE(handle); |
161 MockClient* client = MockClient::create(); | 161 MockClient* client = MockClient::create(); |
162 Checkpoint checkpoint; | 162 Checkpoint checkpoint; |
163 | 163 |
164 InSequence s; | 164 InSequence s; |
165 EXPECT_CALL(checkpoint, Call(1)); | 165 EXPECT_CALL(checkpoint, Call(1)); |
166 EXPECT_CALL(*client, didGetReadable()); | 166 EXPECT_CALL(*client, didGetReadable()); |
167 EXPECT_CALL(checkpoint, Call(2)); | 167 EXPECT_CALL(checkpoint, Call(2)); |
168 EXPECT_CALL(*client, didGetReadable()); | 168 EXPECT_CALL(*client, didGetReadable()); |
169 EXPECT_CALL(checkpoint, Call(3)); | 169 EXPECT_CALL(checkpoint, Call(3)); |
170 | 170 |
171 char c; | 171 char c; |
172 size_t readBytes; | 172 size_t readBytes; |
173 OwnPtr<FetchDataConsumerHandle::Reader> reader = handle->obtainReader(client
); | 173 OwnPtr<FetchDataConsumerHandle::Reader> reader = handle->obtainReader(client
); |
174 ASSERT_TRUE(reader); | 174 ASSERT_TRUE(reader); |
175 checkpoint.Call(1); | 175 checkpoint.Call(1); |
176 testing::runPendingTasks(); | 176 testing::runPendingTasks(); |
177 checkpoint.Call(2); | 177 checkpoint.Call(2); |
178 EXPECT_EQ(kShouldWait, reader->read(&c, 1, kNone, &readBytes)); | 178 EXPECT_EQ(kShouldWait, reader->read(&c, 1, kNone, &readBytes)); |
179 testing::runPendingTasks(); | 179 testing::runPendingTasks(); |
180 checkpoint.Call(3); | 180 checkpoint.Call(3); |
181 EXPECT_EQ(kUnexpectedError, reader->read(&c, 1, kNone, &readBytes)); | 181 EXPECT_EQ(kUnexpectedError, reader->read(&c, 1, kNone, &readBytes)); |
182 } | 182 } |
183 | 183 |
184 TEST_F(ReadableStreamDataConsumerHandleTest, Read) | 184 TEST_F(ReadableStreamDataConsumerHandleTest, Read) |
185 { | 185 { |
186 ScriptState::Scope scope(scriptState()); | 186 ScriptState::Scope scope(getScriptState()); |
187 ScriptValue stream(scriptState(), evalWithPrintingError( | 187 ScriptValue stream(getScriptState(), evalWithPrintingError( |
188 "var controller;" | 188 "var controller;" |
189 "var stream = new ReadableStream({start: c => controller = c});" | 189 "var stream = new ReadableStream({start: c => controller = c});" |
190 "controller.enqueue(new Uint8Array());" | 190 "controller.enqueue(new Uint8Array());" |
191 "controller.enqueue(new Uint8Array([0x43, 0x44, 0x45, 0x46]));" | 191 "controller.enqueue(new Uint8Array([0x43, 0x44, 0x45, 0x46]));" |
192 "controller.enqueue(new Uint8Array([0x47, 0x48, 0x49, 0x4a]));" | 192 "controller.enqueue(new Uint8Array([0x47, 0x48, 0x49, 0x4a]));" |
193 "controller.close();" | 193 "controller.close();" |
194 "stream")); | 194 "stream")); |
195 ASSERT_FALSE(stream.isEmpty()); | 195 ASSERT_FALSE(stream.isEmpty()); |
196 OwnPtr<ReadableStreamDataConsumerHandle> handle = createHandle(stream); | 196 OwnPtr<ReadableStreamDataConsumerHandle> handle = createHandle(stream); |
197 ASSERT_TRUE(handle); | 197 ASSERT_TRUE(handle); |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
244 EXPECT_EQ(1u, readBytes); | 244 EXPECT_EQ(1u, readBytes); |
245 EXPECT_EQ(0x4a, buffer[0]); | 245 EXPECT_EQ(0x4a, buffer[0]); |
246 EXPECT_EQ(kShouldWait, reader->read(buffer, 3, kNone, &readBytes)); | 246 EXPECT_EQ(kShouldWait, reader->read(buffer, 3, kNone, &readBytes)); |
247 testing::runPendingTasks(); | 247 testing::runPendingTasks(); |
248 checkpoint.Call(6); | 248 checkpoint.Call(6); |
249 EXPECT_EQ(kDone, reader->read(buffer, 3, kNone, &readBytes)); | 249 EXPECT_EQ(kDone, reader->read(buffer, 3, kNone, &readBytes)); |
250 } | 250 } |
251 | 251 |
252 TEST_F(ReadableStreamDataConsumerHandleTest, TwoPhaseRead) | 252 TEST_F(ReadableStreamDataConsumerHandleTest, TwoPhaseRead) |
253 { | 253 { |
254 ScriptState::Scope scope(scriptState()); | 254 ScriptState::Scope scope(getScriptState()); |
255 ScriptValue stream(scriptState(), evalWithPrintingError( | 255 ScriptValue stream(getScriptState(), evalWithPrintingError( |
256 "var controller;" | 256 "var controller;" |
257 "var stream = new ReadableStream({start: c => controller = c});" | 257 "var stream = new ReadableStream({start: c => controller = c});" |
258 "controller.enqueue(new Uint8Array());" | 258 "controller.enqueue(new Uint8Array());" |
259 "controller.enqueue(new Uint8Array([0x43, 0x44, 0x45, 0x46]));" | 259 "controller.enqueue(new Uint8Array([0x43, 0x44, 0x45, 0x46]));" |
260 "controller.enqueue(new Uint8Array([0x47, 0x48, 0x49, 0x4a]));" | 260 "controller.enqueue(new Uint8Array([0x47, 0x48, 0x49, 0x4a]));" |
261 "controller.close();" | 261 "controller.close();" |
262 "stream")); | 262 "stream")); |
263 ASSERT_FALSE(stream.isEmpty()); | 263 ASSERT_FALSE(stream.isEmpty()); |
264 OwnPtr<ReadableStreamDataConsumerHandle> handle = createHandle(stream); | 264 OwnPtr<ReadableStreamDataConsumerHandle> handle = createHandle(stream); |
265 ASSERT_TRUE(handle); | 265 ASSERT_TRUE(handle); |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
323 EXPECT_EQ(0x4a, static_cast<const char*>(buffer)[3]); | 323 EXPECT_EQ(0x4a, static_cast<const char*>(buffer)[3]); |
324 EXPECT_EQ(kOk, reader->endRead(4)); | 324 EXPECT_EQ(kOk, reader->endRead(4)); |
325 EXPECT_EQ(kShouldWait, reader->beginRead(&buffer, kNone, &available)); | 325 EXPECT_EQ(kShouldWait, reader->beginRead(&buffer, kNone, &available)); |
326 testing::runPendingTasks(); | 326 testing::runPendingTasks(); |
327 checkpoint.Call(6); | 327 checkpoint.Call(6); |
328 EXPECT_EQ(kDone, reader->beginRead(&buffer, kNone, &available)); | 328 EXPECT_EQ(kDone, reader->beginRead(&buffer, kNone, &available)); |
329 } | 329 } |
330 | 330 |
331 TEST_F(ReadableStreamDataConsumerHandleTest, EnqueueUndefined) | 331 TEST_F(ReadableStreamDataConsumerHandleTest, EnqueueUndefined) |
332 { | 332 { |
333 ScriptState::Scope scope(scriptState()); | 333 ScriptState::Scope scope(getScriptState()); |
334 ScriptValue stream(scriptState(), evalWithPrintingError( | 334 ScriptValue stream(getScriptState(), evalWithPrintingError( |
335 "var controller;" | 335 "var controller;" |
336 "var stream = new ReadableStream({start: c => controller = c});" | 336 "var stream = new ReadableStream({start: c => controller = c});" |
337 "controller.enqueue(undefined);" | 337 "controller.enqueue(undefined);" |
338 "controller.close();" | 338 "controller.close();" |
339 "stream")); | 339 "stream")); |
340 ASSERT_FALSE(stream.isEmpty()); | 340 ASSERT_FALSE(stream.isEmpty()); |
341 OwnPtr<ReadableStreamDataConsumerHandle> handle = createHandle(stream); | 341 OwnPtr<ReadableStreamDataConsumerHandle> handle = createHandle(stream); |
342 ASSERT_TRUE(handle); | 342 ASSERT_TRUE(handle); |
343 MockClient* client = MockClient::create(); | 343 MockClient* client = MockClient::create(); |
344 Checkpoint checkpoint; | 344 Checkpoint checkpoint; |
(...skipping 13 matching lines...) Expand all Loading... |
358 testing::runPendingTasks(); | 358 testing::runPendingTasks(); |
359 checkpoint.Call(2); | 359 checkpoint.Call(2); |
360 EXPECT_EQ(kShouldWait, reader->beginRead(&buffer, kNone, &available)); | 360 EXPECT_EQ(kShouldWait, reader->beginRead(&buffer, kNone, &available)); |
361 testing::runPendingTasks(); | 361 testing::runPendingTasks(); |
362 checkpoint.Call(3); | 362 checkpoint.Call(3); |
363 EXPECT_EQ(kUnexpectedError, reader->beginRead(&buffer, kNone, &available)); | 363 EXPECT_EQ(kUnexpectedError, reader->beginRead(&buffer, kNone, &available)); |
364 } | 364 } |
365 | 365 |
366 TEST_F(ReadableStreamDataConsumerHandleTest, EnqueueNull) | 366 TEST_F(ReadableStreamDataConsumerHandleTest, EnqueueNull) |
367 { | 367 { |
368 ScriptState::Scope scope(scriptState()); | 368 ScriptState::Scope scope(getScriptState()); |
369 ScriptValue stream(scriptState(), evalWithPrintingError( | 369 ScriptValue stream(getScriptState(), evalWithPrintingError( |
370 "var controller;" | 370 "var controller;" |
371 "var stream = new ReadableStream({start: c => controller = c});" | 371 "var stream = new ReadableStream({start: c => controller = c});" |
372 "controller.enqueue(null);" | 372 "controller.enqueue(null);" |
373 "controller.close();" | 373 "controller.close();" |
374 "stream")); | 374 "stream")); |
375 ASSERT_FALSE(stream.isEmpty()); | 375 ASSERT_FALSE(stream.isEmpty()); |
376 OwnPtr<ReadableStreamDataConsumerHandle> handle = createHandle(stream); | 376 OwnPtr<ReadableStreamDataConsumerHandle> handle = createHandle(stream); |
377 ASSERT_TRUE(handle); | 377 ASSERT_TRUE(handle); |
378 MockClient* client = MockClient::create(); | 378 MockClient* client = MockClient::create(); |
379 Checkpoint checkpoint; | 379 Checkpoint checkpoint; |
(...skipping 13 matching lines...) Expand all Loading... |
393 testing::runPendingTasks(); | 393 testing::runPendingTasks(); |
394 checkpoint.Call(2); | 394 checkpoint.Call(2); |
395 EXPECT_EQ(kShouldWait, reader->beginRead(&buffer, kNone, &available)); | 395 EXPECT_EQ(kShouldWait, reader->beginRead(&buffer, kNone, &available)); |
396 testing::runPendingTasks(); | 396 testing::runPendingTasks(); |
397 checkpoint.Call(3); | 397 checkpoint.Call(3); |
398 EXPECT_EQ(kUnexpectedError, reader->beginRead(&buffer, kNone, &available)); | 398 EXPECT_EQ(kUnexpectedError, reader->beginRead(&buffer, kNone, &available)); |
399 } | 399 } |
400 | 400 |
401 TEST_F(ReadableStreamDataConsumerHandleTest, EnqueueString) | 401 TEST_F(ReadableStreamDataConsumerHandleTest, EnqueueString) |
402 { | 402 { |
403 ScriptState::Scope scope(scriptState()); | 403 ScriptState::Scope scope(getScriptState()); |
404 ScriptValue stream(scriptState(), evalWithPrintingError( | 404 ScriptValue stream(getScriptState(), evalWithPrintingError( |
405 "var controller;" | 405 "var controller;" |
406 "var stream = new ReadableStream({start: c => controller = c});" | 406 "var stream = new ReadableStream({start: c => controller = c});" |
407 "controller.enqueue('hello');" | 407 "controller.enqueue('hello');" |
408 "controller.close();" | 408 "controller.close();" |
409 "stream")); | 409 "stream")); |
410 ASSERT_FALSE(stream.isEmpty()); | 410 ASSERT_FALSE(stream.isEmpty()); |
411 OwnPtr<ReadableStreamDataConsumerHandle> handle = createHandle(stream); | 411 OwnPtr<ReadableStreamDataConsumerHandle> handle = createHandle(stream); |
412 ASSERT_TRUE(handle); | 412 ASSERT_TRUE(handle); |
413 MockClient* client = MockClient::create(); | 413 MockClient* client = MockClient::create(); |
414 Checkpoint checkpoint; | 414 Checkpoint checkpoint; |
(...skipping 28 matching lines...) Expand all Loading... |
443 InSequence s; | 443 InSequence s; |
444 EXPECT_CALL(checkpoint, Call(1)); | 444 EXPECT_CALL(checkpoint, Call(1)); |
445 EXPECT_CALL(*client, didGetReadable()); | 445 EXPECT_CALL(*client, didGetReadable()); |
446 EXPECT_CALL(checkpoint, Call(2)); | 446 EXPECT_CALL(checkpoint, Call(2)); |
447 EXPECT_CALL(checkpoint, Call(3)); | 447 EXPECT_CALL(checkpoint, Call(3)); |
448 EXPECT_CALL(*client, didGetReadable()); | 448 EXPECT_CALL(*client, didGetReadable()); |
449 EXPECT_CALL(checkpoint, Call(4)); | 449 EXPECT_CALL(checkpoint, Call(4)); |
450 | 450 |
451 { | 451 { |
452 // We need this scope to collect local handles. | 452 // We need this scope to collect local handles. |
453 ScriptState::Scope scope(scriptState()); | 453 ScriptState::Scope scope(getScriptState()); |
454 stream = ScriptValue(scriptState(), evalWithPrintingError("new ReadableS
tream()")); | 454 stream = ScriptValue(getScriptState(), evalWithPrintingError("new Readab
leStream()")); |
455 ASSERT_FALSE(stream.isEmpty()); | 455 ASSERT_FALSE(stream.isEmpty()); |
456 OwnPtr<ReadableStreamDataConsumerHandle> handle = createHandle(stream); | 456 OwnPtr<ReadableStreamDataConsumerHandle> handle = createHandle(stream); |
457 ASSERT_TRUE(handle); | 457 ASSERT_TRUE(handle); |
458 | 458 |
459 reader = handle->obtainReader(client); | 459 reader = handle->obtainReader(client); |
460 ASSERT_TRUE(reader); | 460 ASSERT_TRUE(reader); |
461 } | 461 } |
462 | 462 |
463 checkpoint.Call(1); | 463 checkpoint.Call(1); |
464 testing::runPendingTasks(); | 464 testing::runPendingTasks(); |
(...skipping 20 matching lines...) Expand all Loading... |
485 EXPECT_CALL(checkpoint, Call(1)); | 485 EXPECT_CALL(checkpoint, Call(1)); |
486 EXPECT_CALL(*client, didGetReadable()); | 486 EXPECT_CALL(*client, didGetReadable()); |
487 EXPECT_CALL(checkpoint, Call(2)); | 487 EXPECT_CALL(checkpoint, Call(2)); |
488 EXPECT_CALL(checkpoint, Call(3)); | 488 EXPECT_CALL(checkpoint, Call(3)); |
489 EXPECT_CALL(checkpoint, Call(4)); | 489 EXPECT_CALL(checkpoint, Call(4)); |
490 EXPECT_CALL(*client, didGetReadable()); | 490 EXPECT_CALL(*client, didGetReadable()); |
491 EXPECT_CALL(checkpoint, Call(5)); | 491 EXPECT_CALL(checkpoint, Call(5)); |
492 | 492 |
493 { | 493 { |
494 // We need this scope to collect local handles. | 494 // We need this scope to collect local handles. |
495 ScriptState::Scope scope(scriptState()); | 495 ScriptState::Scope scope(getScriptState()); |
496 stream = ScriptValue(scriptState(), evalWithPrintingError("new ReadableS
tream()")); | 496 stream = ScriptValue(getScriptState(), evalWithPrintingError("new Readab
leStream()")); |
497 ASSERT_FALSE(stream.isEmpty()); | 497 ASSERT_FALSE(stream.isEmpty()); |
498 OwnPtr<ReadableStreamDataConsumerHandle> handle = createHandle(stream); | 498 OwnPtr<ReadableStreamDataConsumerHandle> handle = createHandle(stream); |
499 ASSERT_TRUE(handle); | 499 ASSERT_TRUE(handle); |
500 | 500 |
501 reader = handle->obtainReader(client); | 501 reader = handle->obtainReader(client); |
502 ASSERT_TRUE(reader); | 502 ASSERT_TRUE(reader); |
503 } | 503 } |
504 | 504 |
505 const void* buffer; | 505 const void* buffer; |
506 size_t available; | 506 size_t available; |
(...skipping 10 matching lines...) Expand all Loading... |
517 testing::runPendingTasks(); | 517 testing::runPendingTasks(); |
518 | 518 |
519 checkpoint.Call(5); | 519 checkpoint.Call(5); |
520 EXPECT_EQ(kUnexpectedError, reader->beginRead(&buffer, kNone, &available)); | 520 EXPECT_EQ(kUnexpectedError, reader->beginRead(&buffer, kNone, &available)); |
521 } | 521 } |
522 | 522 |
523 } // namespace | 523 } // namespace |
524 | 524 |
525 } // namespace blink | 525 } // namespace blink |
526 | 526 |
OLD | NEW |