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

Side by Side Diff: third_party/WebKit/Source/modules/websockets/DocumentWebSocketChannelTest.cpp

Issue 2701993002: DO NOT COMMIT: Results of running new (proposed) clang-format on Blink (Closed)
Patch Set: Created 3 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/websockets/WebSocketChannel.h" 5 #include "modules/websockets/WebSocketChannel.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 #include <memory> 8 #include <memory>
9 #include "core/dom/DOMArrayBuffer.h" 9 #include "core/dom/DOMArrayBuffer.h"
10 #include "core/dom/Document.h" 10 #include "core/dom/Document.h"
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
120 MockWebSocketHandle* handle() { return m_handle; } 120 MockWebSocketHandle* handle() { return m_handle; }
121 121
122 void didConsumeBufferedAmount(unsigned long a) { 122 void didConsumeBufferedAmount(unsigned long a) {
123 m_sumOfConsumedBufferedAmount += a; 123 m_sumOfConsumedBufferedAmount += a;
124 } 124 }
125 125
126 void connect() { 126 void connect() {
127 { 127 {
128 InSequence s; 128 InSequence s;
129 EXPECT_CALL(*handle(), initialize(_)); 129 EXPECT_CALL(*handle(), initialize(_));
130 EXPECT_CALL(*handle(), connect(KURL(KURL(), "ws://localhost/"), _, _, _, 130 EXPECT_CALL(
131 _, handleClient())); 131 *handle(),
132 connect(KURL(KURL(), "ws://localhost/"), _, _, _, _, handleClient()));
132 EXPECT_CALL(*handle(), flowControl(65536)); 133 EXPECT_CALL(*handle(), flowControl(65536));
133 EXPECT_CALL(*channelClient(), didConnect(String("a"), String("b"))); 134 EXPECT_CALL(*channelClient(), didConnect(String("a"), String("b")));
134 } 135 }
135 EXPECT_TRUE(channel()->connect(KURL(KURL(), "ws://localhost/"), "x")); 136 EXPECT_TRUE(channel()->connect(KURL(KURL(), "ws://localhost/"), "x"));
136 handleClient()->didConnect(handle(), String("a"), String("b")); 137 handleClient()->didConnect(handle(), String("a"), String("b"));
137 ::testing::Mock::VerifyAndClearExpectations(this); 138 ::testing::Mock::VerifyAndClearExpectations(this);
138 } 139 }
139 140
140 std::unique_ptr<DummyPageHolder> m_pageHolder; 141 std::unique_ptr<DummyPageHolder> m_pageHolder;
141 Persistent<MockWebSocketChannelClient> m_channelClient; 142 Persistent<MockWebSocketChannelClient> m_channelClient;
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
201 EXPECT_STREQ("http://example.com", origin->toString().utf8().data()); 202 EXPECT_STREQ("http://example.com", origin->toString().utf8().data());
202 203
203 checkpoint.Call(1); 204 checkpoint.Call(1);
204 handleClient()->didConnect(handle(), String("a"), String("b")); 205 handleClient()->didConnect(handle(), String("a"), String("b"));
205 } 206 }
206 207
207 TEST_F(DocumentWebSocketChannelTest, sendText) { 208 TEST_F(DocumentWebSocketChannelTest, sendText) {
208 connect(); 209 connect();
209 { 210 {
210 InSequence s; 211 InSequence s;
211 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeText, 212 EXPECT_CALL(
212 MemEq("foo", 3), 3)); 213 *handle(),
213 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeText, 214 send(true, WebSocketHandle::MessageTypeText, MemEq("foo", 3), 3));
214 MemEq("bar", 3), 3)); 215 EXPECT_CALL(
215 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeText, 216 *handle(),
216 MemEq("baz", 3), 3)); 217 send(true, WebSocketHandle::MessageTypeText, MemEq("bar", 3), 3));
218 EXPECT_CALL(
219 *handle(),
220 send(true, WebSocketHandle::MessageTypeText, MemEq("baz", 3), 3));
217 } 221 }
218 222
219 handleClient()->didReceiveFlowControl(handle(), 16); 223 handleClient()->didReceiveFlowControl(handle(), 16);
220 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber()); 224 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber());
221 225
222 channel()->send("foo"); 226 channel()->send("foo");
223 channel()->send("bar"); 227 channel()->send("bar");
224 channel()->send("baz"); 228 channel()->send("baz");
225 229
226 EXPECT_EQ(9ul, m_sumOfConsumedBufferedAmount); 230 EXPECT_EQ(9ul, m_sumOfConsumedBufferedAmount);
227 } 231 }
228 232
229 TEST_F(DocumentWebSocketChannelTest, sendTextContinuation) { 233 TEST_F(DocumentWebSocketChannelTest, sendTextContinuation) {
230 connect(); 234 connect();
231 Checkpoint checkpoint; 235 Checkpoint checkpoint;
232 { 236 {
233 InSequence s; 237 InSequence s;
234 EXPECT_CALL(*handle(), send(false, WebSocketHandle::MessageTypeText, 238 EXPECT_CALL(*handle(),
235 MemEq("0123456789abcdef", 16), 16)); 239 send(false, WebSocketHandle::MessageTypeText,
240 MemEq("0123456789abcdef", 16), 16));
236 EXPECT_CALL(checkpoint, Call(1)); 241 EXPECT_CALL(checkpoint, Call(1));
237 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeContinuation, 242 EXPECT_CALL(
238 MemEq("g", 1), 1)); 243 *handle(),
239 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeText, 244 send(true, WebSocketHandle::MessageTypeContinuation, MemEq("g", 1), 1));
240 MemEq("hijk", 4), 4)); 245 EXPECT_CALL(
241 EXPECT_CALL(*handle(), send(false, WebSocketHandle::MessageTypeText, 246 *handle(),
242 MemEq("lmnopqrstuv", 11), 11)); 247 send(true, WebSocketHandle::MessageTypeText, MemEq("hijk", 4), 4));
248 EXPECT_CALL(*handle(),
249 send(false, WebSocketHandle::MessageTypeText,
250 MemEq("lmnopqrstuv", 11), 11));
243 EXPECT_CALL(checkpoint, Call(2)); 251 EXPECT_CALL(checkpoint, Call(2));
244 EXPECT_CALL(*handle(), send(false, WebSocketHandle::MessageTypeContinuation, 252 EXPECT_CALL(*handle(),
245 MemEq("wxyzABCDEFGHIJKL", 16), 16)); 253 send(false, WebSocketHandle::MessageTypeContinuation,
254 MemEq("wxyzABCDEFGHIJKL", 16), 16));
246 EXPECT_CALL(checkpoint, Call(3)); 255 EXPECT_CALL(checkpoint, Call(3));
247 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeContinuation, 256 EXPECT_CALL(*handle(),
248 MemEq("MNOPQRSTUVWXYZ", 14), 14)); 257 send(true, WebSocketHandle::MessageTypeContinuation,
258 MemEq("MNOPQRSTUVWXYZ", 14), 14));
249 } 259 }
250 260
251 handleClient()->didReceiveFlowControl(handle(), 16); 261 handleClient()->didReceiveFlowControl(handle(), 16);
252 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber()); 262 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber());
253 263
254 channel()->send("0123456789abcdefg"); 264 channel()->send("0123456789abcdefg");
255 channel()->send("hijk"); 265 channel()->send("hijk");
256 channel()->send("lmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"); 266 channel()->send("lmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ");
257 checkpoint.Call(1); 267 checkpoint.Call(1);
258 handleClient()->didReceiveFlowControl(handle(), 16); 268 handleClient()->didReceiveFlowControl(handle(), 16);
259 checkpoint.Call(2); 269 checkpoint.Call(2);
260 handleClient()->didReceiveFlowControl(handle(), 16); 270 handleClient()->didReceiveFlowControl(handle(), 16);
261 checkpoint.Call(3); 271 checkpoint.Call(3);
262 handleClient()->didReceiveFlowControl(handle(), 16); 272 handleClient()->didReceiveFlowControl(handle(), 16);
263 273
264 EXPECT_EQ(62ul, m_sumOfConsumedBufferedAmount); 274 EXPECT_EQ(62ul, m_sumOfConsumedBufferedAmount);
265 } 275 }
266 276
267 TEST_F(DocumentWebSocketChannelTest, sendBinaryInVector) { 277 TEST_F(DocumentWebSocketChannelTest, sendBinaryInVector) {
268 connect(); 278 connect();
269 { 279 {
270 InSequence s; 280 InSequence s;
271 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, 281 EXPECT_CALL(
272 MemEq("foo", 3), 3)); 282 *handle(),
283 send(true, WebSocketHandle::MessageTypeBinary, MemEq("foo", 3), 3));
273 } 284 }
274 285
275 handleClient()->didReceiveFlowControl(handle(), 16); 286 handleClient()->didReceiveFlowControl(handle(), 16);
276 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber()); 287 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber());
277 288
278 Vector<char> fooVector; 289 Vector<char> fooVector;
279 fooVector.append("foo", 3); 290 fooVector.append("foo", 3);
280 channel()->sendBinaryAsCharVector(WTF::makeUnique<Vector<char>>(fooVector)); 291 channel()->sendBinaryAsCharVector(WTF::makeUnique<Vector<char>>(fooVector));
281 292
282 EXPECT_EQ(3ul, m_sumOfConsumedBufferedAmount); 293 EXPECT_EQ(3ul, m_sumOfConsumedBufferedAmount);
283 } 294 }
284 295
285 TEST_F(DocumentWebSocketChannelTest, sendBinaryInVectorWithNullBytes) { 296 TEST_F(DocumentWebSocketChannelTest, sendBinaryInVectorWithNullBytes) {
286 connect(); 297 connect();
287 { 298 {
288 InSequence s; 299 InSequence s;
289 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, 300 EXPECT_CALL(
290 MemEq("\0ar", 3), 3)); 301 *handle(),
291 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, 302 send(true, WebSocketHandle::MessageTypeBinary, MemEq("\0ar", 3), 3));
292 MemEq("b\0z", 3), 3)); 303 EXPECT_CALL(
293 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, 304 *handle(),
294 MemEq("qu\0", 3), 3)); 305 send(true, WebSocketHandle::MessageTypeBinary, MemEq("b\0z", 3), 3));
295 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, 306 EXPECT_CALL(
296 MemEq("\0\0\0", 3), 3)); 307 *handle(),
308 send(true, WebSocketHandle::MessageTypeBinary, MemEq("qu\0", 3), 3));
309 EXPECT_CALL(
310 *handle(),
311 send(true, WebSocketHandle::MessageTypeBinary, MemEq("\0\0\0", 3), 3));
297 } 312 }
298 313
299 handleClient()->didReceiveFlowControl(handle(), 16); 314 handleClient()->didReceiveFlowControl(handle(), 16);
300 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber()); 315 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber());
301 316
302 { 317 {
303 Vector<char> v; 318 Vector<char> v;
304 v.append("\0ar", 3); 319 v.append("\0ar", 3);
305 channel()->sendBinaryAsCharVector(WTF::makeUnique<Vector<char>>(v)); 320 channel()->sendBinaryAsCharVector(WTF::makeUnique<Vector<char>>(v));
306 } 321 }
(...skipping 11 matching lines...) Expand all
318 Vector<char> v; 333 Vector<char> v;
319 v.append("\0\0\0", 3); 334 v.append("\0\0\0", 3);
320 channel()->sendBinaryAsCharVector(WTF::makeUnique<Vector<char>>(v)); 335 channel()->sendBinaryAsCharVector(WTF::makeUnique<Vector<char>>(v));
321 } 336 }
322 337
323 EXPECT_EQ(12ul, m_sumOfConsumedBufferedAmount); 338 EXPECT_EQ(12ul, m_sumOfConsumedBufferedAmount);
324 } 339 }
325 340
326 TEST_F(DocumentWebSocketChannelTest, sendBinaryInVectorNonLatin1UTF8) { 341 TEST_F(DocumentWebSocketChannelTest, sendBinaryInVectorNonLatin1UTF8) {
327 connect(); 342 connect();
328 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, 343 EXPECT_CALL(*handle(),
329 MemEq("\xe7\x8b\x90", 3), 3)); 344 send(true, WebSocketHandle::MessageTypeBinary,
345 MemEq("\xe7\x8b\x90", 3), 3));
330 346
331 handleClient()->didReceiveFlowControl(handle(), 16); 347 handleClient()->didReceiveFlowControl(handle(), 16);
332 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber()); 348 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber());
333 349
334 Vector<char> v; 350 Vector<char> v;
335 v.append("\xe7\x8b\x90", 3); 351 v.append("\xe7\x8b\x90", 3);
336 channel()->sendBinaryAsCharVector(WTF::makeUnique<Vector<char>>(v)); 352 channel()->sendBinaryAsCharVector(WTF::makeUnique<Vector<char>>(v));
337 353
338 EXPECT_EQ(3ul, m_sumOfConsumedBufferedAmount); 354 EXPECT_EQ(3ul, m_sumOfConsumedBufferedAmount);
339 } 355 }
340 356
341 TEST_F(DocumentWebSocketChannelTest, sendBinaryInVectorNonUTF8) { 357 TEST_F(DocumentWebSocketChannelTest, sendBinaryInVectorNonUTF8) {
342 connect(); 358 connect();
343 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, 359 EXPECT_CALL(*handle(),
344 MemEq("\x80\xff\xe7", 3), 3)); 360 send(true, WebSocketHandle::MessageTypeBinary,
361 MemEq("\x80\xff\xe7", 3), 3));
345 362
346 handleClient()->didReceiveFlowControl(handle(), 16); 363 handleClient()->didReceiveFlowControl(handle(), 16);
347 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber()); 364 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber());
348 365
349 Vector<char> v; 366 Vector<char> v;
350 v.append("\x80\xff\xe7", 3); 367 v.append("\x80\xff\xe7", 3);
351 channel()->sendBinaryAsCharVector(WTF::makeUnique<Vector<char>>(v)); 368 channel()->sendBinaryAsCharVector(WTF::makeUnique<Vector<char>>(v));
352 369
353 EXPECT_EQ(3ul, m_sumOfConsumedBufferedAmount); 370 EXPECT_EQ(3ul, m_sumOfConsumedBufferedAmount);
354 } 371 }
355 372
356 TEST_F(DocumentWebSocketChannelTest, 373 TEST_F(DocumentWebSocketChannelTest,
357 sendBinaryInVectorNonLatin1UTF8Continuation) { 374 sendBinaryInVectorNonLatin1UTF8Continuation) {
358 connect(); 375 connect();
359 Checkpoint checkpoint; 376 Checkpoint checkpoint;
360 { 377 {
361 InSequence s; 378 InSequence s;
362 EXPECT_CALL(*handle(), send(false, WebSocketHandle::MessageTypeBinary, 379 EXPECT_CALL(*handle(),
363 MemEq("\xe7\x8b\x90\xe7\x8b\x90\xe7\x8b\x90\xe7" 380 send(false, WebSocketHandle::MessageTypeBinary,
364 "\x8b\x90\xe7\x8b\x90\xe7", 381 MemEq("\xe7\x8b\x90\xe7\x8b\x90\xe7\x8b\x90\xe7"
365 16), 382 "\x8b\x90\xe7\x8b\x90\xe7",
366 16)); 383 16),
384 16));
367 EXPECT_CALL(checkpoint, Call(1)); 385 EXPECT_CALL(checkpoint, Call(1));
368 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeContinuation, 386 EXPECT_CALL(*handle(),
369 MemEq("\x8b\x90", 2), 2)); 387 send(true, WebSocketHandle::MessageTypeContinuation,
388 MemEq("\x8b\x90", 2), 2));
370 } 389 }
371 390
372 handleClient()->didReceiveFlowControl(handle(), 16); 391 handleClient()->didReceiveFlowControl(handle(), 16);
373 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber()); 392 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber());
374 393
375 Vector<char> v; 394 Vector<char> v;
376 v.append( 395 v.append(
377 "\xe7\x8b\x90\xe7\x8b\x90\xe7\x8b\x90\xe7\x8b\x90\xe7\x8b\x90\xe7\x8b" 396 "\xe7\x8b\x90\xe7\x8b\x90\xe7\x8b\x90\xe7\x8b\x90\xe7\x8b\x90\xe7\x8b"
378 "\x90", 397 "\x90",
379 18); 398 18);
380 channel()->sendBinaryAsCharVector(WTF::makeUnique<Vector<char>>(v)); 399 channel()->sendBinaryAsCharVector(WTF::makeUnique<Vector<char>>(v));
381 checkpoint.Call(1); 400 checkpoint.Call(1);
382 401
383 handleClient()->didReceiveFlowControl(handle(), 16); 402 handleClient()->didReceiveFlowControl(handle(), 16);
384 403
385 EXPECT_EQ(18ul, m_sumOfConsumedBufferedAmount); 404 EXPECT_EQ(18ul, m_sumOfConsumedBufferedAmount);
386 } 405 }
387 406
388 TEST_F(DocumentWebSocketChannelTest, sendBinaryInArrayBuffer) { 407 TEST_F(DocumentWebSocketChannelTest, sendBinaryInArrayBuffer) {
389 connect(); 408 connect();
390 { 409 {
391 InSequence s; 410 InSequence s;
392 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, 411 EXPECT_CALL(
393 MemEq("foo", 3), 3)); 412 *handle(),
413 send(true, WebSocketHandle::MessageTypeBinary, MemEq("foo", 3), 3));
394 } 414 }
395 415
396 handleClient()->didReceiveFlowControl(handle(), 16); 416 handleClient()->didReceiveFlowControl(handle(), 16);
397 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber()); 417 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber());
398 418
399 DOMArrayBuffer* fooBuffer = DOMArrayBuffer::create("foo", 3); 419 DOMArrayBuffer* fooBuffer = DOMArrayBuffer::create("foo", 3);
400 channel()->send(*fooBuffer, 0, 3); 420 channel()->send(*fooBuffer, 0, 3);
401 421
402 EXPECT_EQ(3ul, m_sumOfConsumedBufferedAmount); 422 EXPECT_EQ(3ul, m_sumOfConsumedBufferedAmount);
403 } 423 }
404 424
405 TEST_F(DocumentWebSocketChannelTest, sendBinaryInArrayBufferPartial) { 425 TEST_F(DocumentWebSocketChannelTest, sendBinaryInArrayBufferPartial) {
406 connect(); 426 connect();
407 { 427 {
408 InSequence s; 428 InSequence s;
409 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, 429 EXPECT_CALL(
410 MemEq("foo", 3), 3)); 430 *handle(),
411 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, 431 send(true, WebSocketHandle::MessageTypeBinary, MemEq("foo", 3), 3));
412 MemEq("bar", 3), 3)); 432 EXPECT_CALL(
413 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, 433 *handle(),
414 MemEq("baz", 3), 3)); 434 send(true, WebSocketHandle::MessageTypeBinary, MemEq("bar", 3), 3));
415 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, 435 EXPECT_CALL(
416 MemEq("a", 1), 1)); 436 *handle(),
437 send(true, WebSocketHandle::MessageTypeBinary, MemEq("baz", 3), 3));
438 EXPECT_CALL(
439 *handle(),
440 send(true, WebSocketHandle::MessageTypeBinary, MemEq("a", 1), 1));
417 } 441 }
418 442
419 handleClient()->didReceiveFlowControl(handle(), 16); 443 handleClient()->didReceiveFlowControl(handle(), 16);
420 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber()); 444 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber());
421 445
422 DOMArrayBuffer* foobarBuffer = DOMArrayBuffer::create("foobar", 6); 446 DOMArrayBuffer* foobarBuffer = DOMArrayBuffer::create("foobar", 6);
423 DOMArrayBuffer* qbazuxBuffer = DOMArrayBuffer::create("qbazux", 6); 447 DOMArrayBuffer* qbazuxBuffer = DOMArrayBuffer::create("qbazux", 6);
424 channel()->send(*foobarBuffer, 0, 3); 448 channel()->send(*foobarBuffer, 0, 3);
425 channel()->send(*foobarBuffer, 3, 3); 449 channel()->send(*foobarBuffer, 3, 3);
426 channel()->send(*qbazuxBuffer, 1, 3); 450 channel()->send(*qbazuxBuffer, 1, 3);
427 channel()->send(*qbazuxBuffer, 2, 1); 451 channel()->send(*qbazuxBuffer, 2, 1);
428 452
429 EXPECT_EQ(10ul, m_sumOfConsumedBufferedAmount); 453 EXPECT_EQ(10ul, m_sumOfConsumedBufferedAmount);
430 } 454 }
431 455
432 TEST_F(DocumentWebSocketChannelTest, sendBinaryInArrayBufferWithNullBytes) { 456 TEST_F(DocumentWebSocketChannelTest, sendBinaryInArrayBufferWithNullBytes) {
433 connect(); 457 connect();
434 { 458 {
435 InSequence s; 459 InSequence s;
436 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, 460 EXPECT_CALL(
437 MemEq("\0ar", 3), 3)); 461 *handle(),
438 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, 462 send(true, WebSocketHandle::MessageTypeBinary, MemEq("\0ar", 3), 3));
439 MemEq("b\0z", 3), 3)); 463 EXPECT_CALL(
440 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, 464 *handle(),
441 MemEq("qu\0", 3), 3)); 465 send(true, WebSocketHandle::MessageTypeBinary, MemEq("b\0z", 3), 3));
442 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, 466 EXPECT_CALL(
443 MemEq("\0\0\0", 3), 3)); 467 *handle(),
468 send(true, WebSocketHandle::MessageTypeBinary, MemEq("qu\0", 3), 3));
469 EXPECT_CALL(
470 *handle(),
471 send(true, WebSocketHandle::MessageTypeBinary, MemEq("\0\0\0", 3), 3));
444 } 472 }
445 473
446 handleClient()->didReceiveFlowControl(handle(), 16); 474 handleClient()->didReceiveFlowControl(handle(), 16);
447 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber()); 475 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber());
448 476
449 { 477 {
450 DOMArrayBuffer* b = DOMArrayBuffer::create("\0ar", 3); 478 DOMArrayBuffer* b = DOMArrayBuffer::create("\0ar", 3);
451 channel()->send(*b, 0, 3); 479 channel()->send(*b, 0, 3);
452 } 480 }
453 { 481 {
454 DOMArrayBuffer* b = DOMArrayBuffer::create("b\0z", 3); 482 DOMArrayBuffer* b = DOMArrayBuffer::create("b\0z", 3);
455 channel()->send(*b, 0, 3); 483 channel()->send(*b, 0, 3);
456 } 484 }
457 { 485 {
458 DOMArrayBuffer* b = DOMArrayBuffer::create("qu\0", 3); 486 DOMArrayBuffer* b = DOMArrayBuffer::create("qu\0", 3);
459 channel()->send(*b, 0, 3); 487 channel()->send(*b, 0, 3);
460 } 488 }
461 { 489 {
462 DOMArrayBuffer* b = DOMArrayBuffer::create("\0\0\0", 3); 490 DOMArrayBuffer* b = DOMArrayBuffer::create("\0\0\0", 3);
463 channel()->send(*b, 0, 3); 491 channel()->send(*b, 0, 3);
464 } 492 }
465 493
466 EXPECT_EQ(12ul, m_sumOfConsumedBufferedAmount); 494 EXPECT_EQ(12ul, m_sumOfConsumedBufferedAmount);
467 } 495 }
468 496
469 TEST_F(DocumentWebSocketChannelTest, sendBinaryInArrayBufferNonLatin1UTF8) { 497 TEST_F(DocumentWebSocketChannelTest, sendBinaryInArrayBufferNonLatin1UTF8) {
470 connect(); 498 connect();
471 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, 499 EXPECT_CALL(*handle(),
472 MemEq("\xe7\x8b\x90", 3), 3)); 500 send(true, WebSocketHandle::MessageTypeBinary,
501 MemEq("\xe7\x8b\x90", 3), 3));
473 502
474 handleClient()->didReceiveFlowControl(handle(), 16); 503 handleClient()->didReceiveFlowControl(handle(), 16);
475 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber()); 504 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber());
476 505
477 DOMArrayBuffer* b = DOMArrayBuffer::create("\xe7\x8b\x90", 3); 506 DOMArrayBuffer* b = DOMArrayBuffer::create("\xe7\x8b\x90", 3);
478 channel()->send(*b, 0, 3); 507 channel()->send(*b, 0, 3);
479 508
480 EXPECT_EQ(3ul, m_sumOfConsumedBufferedAmount); 509 EXPECT_EQ(3ul, m_sumOfConsumedBufferedAmount);
481 } 510 }
482 511
483 TEST_F(DocumentWebSocketChannelTest, sendBinaryInArrayBufferNonUTF8) { 512 TEST_F(DocumentWebSocketChannelTest, sendBinaryInArrayBufferNonUTF8) {
484 connect(); 513 connect();
485 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, 514 EXPECT_CALL(*handle(),
486 MemEq("\x80\xff\xe7", 3), 3)); 515 send(true, WebSocketHandle::MessageTypeBinary,
516 MemEq("\x80\xff\xe7", 3), 3));
487 517
488 handleClient()->didReceiveFlowControl(handle(), 16); 518 handleClient()->didReceiveFlowControl(handle(), 16);
489 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber()); 519 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber());
490 520
491 DOMArrayBuffer* b = DOMArrayBuffer::create("\x80\xff\xe7", 3); 521 DOMArrayBuffer* b = DOMArrayBuffer::create("\x80\xff\xe7", 3);
492 channel()->send(*b, 0, 3); 522 channel()->send(*b, 0, 3);
493 523
494 EXPECT_EQ(3ul, m_sumOfConsumedBufferedAmount); 524 EXPECT_EQ(3ul, m_sumOfConsumedBufferedAmount);
495 } 525 }
496 526
497 TEST_F(DocumentWebSocketChannelTest, 527 TEST_F(DocumentWebSocketChannelTest,
498 sendBinaryInArrayBufferNonLatin1UTF8Continuation) { 528 sendBinaryInArrayBufferNonLatin1UTF8Continuation) {
499 connect(); 529 connect();
500 Checkpoint checkpoint; 530 Checkpoint checkpoint;
501 { 531 {
502 InSequence s; 532 InSequence s;
503 EXPECT_CALL(*handle(), send(false, WebSocketHandle::MessageTypeBinary, 533 EXPECT_CALL(*handle(),
504 MemEq("\xe7\x8b\x90\xe7\x8b\x90\xe7\x8b\x90\xe7" 534 send(false, WebSocketHandle::MessageTypeBinary,
505 "\x8b\x90\xe7\x8b\x90\xe7", 535 MemEq("\xe7\x8b\x90\xe7\x8b\x90\xe7\x8b\x90\xe7"
506 16), 536 "\x8b\x90\xe7\x8b\x90\xe7",
507 16)); 537 16),
538 16));
508 EXPECT_CALL(checkpoint, Call(1)); 539 EXPECT_CALL(checkpoint, Call(1));
509 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeContinuation, 540 EXPECT_CALL(*handle(),
510 MemEq("\x8b\x90", 2), 2)); 541 send(true, WebSocketHandle::MessageTypeContinuation,
542 MemEq("\x8b\x90", 2), 2));
511 } 543 }
512 544
513 handleClient()->didReceiveFlowControl(handle(), 16); 545 handleClient()->didReceiveFlowControl(handle(), 16);
514 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber()); 546 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber());
515 547
516 DOMArrayBuffer* b = DOMArrayBuffer::create( 548 DOMArrayBuffer* b = DOMArrayBuffer::create(
517 "\xe7\x8b\x90\xe7\x8b\x90\xe7\x8b\x90\xe7\x8b\x90\xe7\x8b\x90\xe7\x8b" 549 "\xe7\x8b\x90\xe7\x8b\x90\xe7\x8b\x90\xe7\x8b\x90\xe7\x8b\x90\xe7\x8b"
518 "\x90", 550 "\x90",
519 18); 551 18);
520 channel()->send(*b, 0, 18); 552 channel()->send(*b, 0, 18);
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
677 709
678 TEST_F(DocumentWebSocketChannelTest, closeFromBrowser) { 710 TEST_F(DocumentWebSocketChannelTest, closeFromBrowser) {
679 connect(); 711 connect();
680 Checkpoint checkpoint; 712 Checkpoint checkpoint;
681 { 713 {
682 InSequence s; 714 InSequence s;
683 715
684 EXPECT_CALL(*channelClient(), didStartClosingHandshake()); 716 EXPECT_CALL(*channelClient(), didStartClosingHandshake());
685 EXPECT_CALL(checkpoint, Call(1)); 717 EXPECT_CALL(checkpoint, Call(1));
686 718
687 EXPECT_CALL(*handle(), close(WebSocketChannel::CloseEventCodeNormalClosure, 719 EXPECT_CALL(*handle(),
688 String("close reason"))); 720 close(WebSocketChannel::CloseEventCodeNormalClosure,
721 String("close reason")));
689 EXPECT_CALL(checkpoint, Call(2)); 722 EXPECT_CALL(checkpoint, Call(2));
690 723
691 EXPECT_CALL(*channelClient(), 724 EXPECT_CALL(*channelClient(),
692 didClose(WebSocketChannelClient::ClosingHandshakeComplete, 725 didClose(WebSocketChannelClient::ClosingHandshakeComplete,
693 WebSocketChannel::CloseEventCodeNormalClosure, 726 WebSocketChannel::CloseEventCodeNormalClosure,
694 String("close reason"))); 727 String("close reason")));
695 EXPECT_CALL(checkpoint, Call(3)); 728 EXPECT_CALL(checkpoint, Call(3));
696 } 729 }
697 730
698 handleClient()->didStartClosingHandshake(handle()); 731 handleClient()->didStartClosingHandshake(handle());
(...skipping 10 matching lines...) Expand all
709 742
710 channel()->disconnect(); 743 channel()->disconnect();
711 } 744 }
712 745
713 TEST_F(DocumentWebSocketChannelTest, closeFromWebSocket) { 746 TEST_F(DocumentWebSocketChannelTest, closeFromWebSocket) {
714 connect(); 747 connect();
715 Checkpoint checkpoint; 748 Checkpoint checkpoint;
716 { 749 {
717 InSequence s; 750 InSequence s;
718 751
719 EXPECT_CALL(*handle(), close(WebSocketChannel::CloseEventCodeNormalClosure, 752 EXPECT_CALL(*handle(),
720 String("close reason"))); 753 close(WebSocketChannel::CloseEventCodeNormalClosure,
754 String("close reason")));
721 EXPECT_CALL(checkpoint, Call(1)); 755 EXPECT_CALL(checkpoint, Call(1));
722 756
723 EXPECT_CALL(*channelClient(), 757 EXPECT_CALL(*channelClient(),
724 didClose(WebSocketChannelClient::ClosingHandshakeComplete, 758 didClose(WebSocketChannelClient::ClosingHandshakeComplete,
725 WebSocketChannel::CloseEventCodeNormalClosure, 759 WebSocketChannel::CloseEventCodeNormalClosure,
726 String("close reason"))); 760 String("close reason")));
727 EXPECT_CALL(checkpoint, Call(2)); 761 EXPECT_CALL(checkpoint, Call(2));
728 } 762 }
729 763
730 channel()->close(WebSocketChannel::CloseEventCodeNormalClosure, 764 channel()->close(WebSocketChannel::CloseEventCodeNormalClosure,
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
766 WebSocketChannel::CloseEventCodeAbnormalClosure, String())); 800 WebSocketChannel::CloseEventCodeAbnormalClosure, String()));
767 } 801 }
768 802
769 channel()->fail("fail message from WebSocket", ErrorMessageLevel, 803 channel()->fail("fail message from WebSocket", ErrorMessageLevel,
770 SourceLocation::create(String(), 0, 0, nullptr)); 804 SourceLocation::create(String(), 0, 0, nullptr));
771 } 805 }
772 806
773 } // namespace 807 } // namespace
774 808
775 } // namespace blink 809 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698