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

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

Issue 1964183004: Revert of Move DOMArrayBuffer, DOMArrayBufferViews and DataView to the heap. (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 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 "core/dom/DOMArrayBuffer.h" 7 #include "core/dom/DOMArrayBuffer.h"
8 #include "core/dom/Document.h" 8 #include "core/dom/Document.h"
9 #include "core/fileapi/Blob.h" 9 #include "core/fileapi/Blob.h"
10 #include "core/frame/ConsoleTypes.h" 10 #include "core/frame/ConsoleTypes.h"
(...skipping 330 matching lines...) Expand 10 before | Expand all | Expand 10 after
341 { 341 {
342 connect(); 342 connect();
343 { 343 {
344 InSequence s; 344 InSequence s;
345 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, Me mEq("foo", 3), 3)); 345 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, Me mEq("foo", 3), 3));
346 } 346 }
347 347
348 handleClient()->didReceiveFlowControl(handle(), 16); 348 handleClient()->didReceiveFlowControl(handle(), 16);
349 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber() ); 349 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber() );
350 350
351 DOMArrayBuffer* fooBuffer = DOMArrayBuffer::create("foo", 3); 351 RefPtr<DOMArrayBuffer> fooBuffer = DOMArrayBuffer::create("foo", 3);
352 channel()->send(*fooBuffer, 0, 3); 352 channel()->send(*fooBuffer, 0, 3);
353 353
354 EXPECT_EQ(3ul, m_sumOfConsumedBufferedAmount); 354 EXPECT_EQ(3ul, m_sumOfConsumedBufferedAmount);
355 } 355 }
356 356
357 TEST_F(DocumentWebSocketChannelTest, sendBinaryInArrayBufferPartial) 357 TEST_F(DocumentWebSocketChannelTest, sendBinaryInArrayBufferPartial)
358 { 358 {
359 connect(); 359 connect();
360 { 360 {
361 InSequence s; 361 InSequence s;
362 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, Me mEq("foo", 3), 3)); 362 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, Me mEq("foo", 3), 3));
363 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, Me mEq("bar", 3), 3)); 363 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, Me mEq("bar", 3), 3));
364 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, Me mEq("baz", 3), 3)); 364 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, Me mEq("baz", 3), 3));
365 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, Me mEq("a", 1), 1)); 365 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, Me mEq("a", 1), 1));
366 } 366 }
367 367
368 handleClient()->didReceiveFlowControl(handle(), 16); 368 handleClient()->didReceiveFlowControl(handle(), 16);
369 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber() ); 369 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber() );
370 370
371 DOMArrayBuffer* foobarBuffer = DOMArrayBuffer::create("foobar", 6); 371 RefPtr<DOMArrayBuffer> foobarBuffer = DOMArrayBuffer::create("foobar", 6);
372 DOMArrayBuffer* qbazuxBuffer = DOMArrayBuffer::create("qbazux", 6); 372 RefPtr<DOMArrayBuffer> qbazuxBuffer = DOMArrayBuffer::create("qbazux", 6);
373 channel()->send(*foobarBuffer, 0, 3); 373 channel()->send(*foobarBuffer, 0, 3);
374 channel()->send(*foobarBuffer, 3, 3); 374 channel()->send(*foobarBuffer, 3, 3);
375 channel()->send(*qbazuxBuffer, 1, 3); 375 channel()->send(*qbazuxBuffer, 1, 3);
376 channel()->send(*qbazuxBuffer, 2, 1); 376 channel()->send(*qbazuxBuffer, 2, 1);
377 377
378 EXPECT_EQ(10ul, m_sumOfConsumedBufferedAmount); 378 EXPECT_EQ(10ul, m_sumOfConsumedBufferedAmount);
379 } 379 }
380 380
381 TEST_F(DocumentWebSocketChannelTest, sendBinaryInArrayBufferWithNullBytes) 381 TEST_F(DocumentWebSocketChannelTest, sendBinaryInArrayBufferWithNullBytes)
382 { 382 {
383 connect(); 383 connect();
384 { 384 {
385 InSequence s; 385 InSequence s;
386 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, Me mEq("\0ar", 3), 3)); 386 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, Me mEq("\0ar", 3), 3));
387 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, Me mEq("b\0z", 3), 3)); 387 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, Me mEq("b\0z", 3), 3));
388 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, Me mEq("qu\0", 3), 3)); 388 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, Me mEq("qu\0", 3), 3));
389 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, Me mEq("\0\0\0", 3), 3)); 389 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, Me mEq("\0\0\0", 3), 3));
390 } 390 }
391 391
392 handleClient()->didReceiveFlowControl(handle(), 16); 392 handleClient()->didReceiveFlowControl(handle(), 16);
393 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber() ); 393 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber() );
394 394
395 { 395 {
396 DOMArrayBuffer* b = DOMArrayBuffer::create("\0ar", 3); 396 RefPtr<DOMArrayBuffer> b = DOMArrayBuffer::create("\0ar", 3);
397 channel()->send(*b, 0, 3); 397 channel()->send(*b, 0, 3);
398 } 398 }
399 { 399 {
400 DOMArrayBuffer* b = DOMArrayBuffer::create("b\0z", 3); 400 RefPtr<DOMArrayBuffer> b = DOMArrayBuffer::create("b\0z", 3);
401 channel()->send(*b, 0, 3); 401 channel()->send(*b, 0, 3);
402 } 402 }
403 { 403 {
404 DOMArrayBuffer* b = DOMArrayBuffer::create("qu\0", 3); 404 RefPtr<DOMArrayBuffer> b = DOMArrayBuffer::create("qu\0", 3);
405 channel()->send(*b, 0, 3); 405 channel()->send(*b, 0, 3);
406 } 406 }
407 { 407 {
408 DOMArrayBuffer* b = DOMArrayBuffer::create("\0\0\0", 3); 408 RefPtr<DOMArrayBuffer> b = DOMArrayBuffer::create("\0\0\0", 3);
409 channel()->send(*b, 0, 3); 409 channel()->send(*b, 0, 3);
410 } 410 }
411 411
412 EXPECT_EQ(12ul, m_sumOfConsumedBufferedAmount); 412 EXPECT_EQ(12ul, m_sumOfConsumedBufferedAmount);
413 } 413 }
414 414
415 TEST_F(DocumentWebSocketChannelTest, sendBinaryInArrayBufferNonLatin1UTF8) 415 TEST_F(DocumentWebSocketChannelTest, sendBinaryInArrayBufferNonLatin1UTF8)
416 { 416 {
417 connect(); 417 connect();
418 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, MemEq( "\xe7\x8b\x90", 3), 3)); 418 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, MemEq( "\xe7\x8b\x90", 3), 3));
419 419
420 handleClient()->didReceiveFlowControl(handle(), 16); 420 handleClient()->didReceiveFlowControl(handle(), 16);
421 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber() ); 421 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber() );
422 422
423 DOMArrayBuffer* b = DOMArrayBuffer::create("\xe7\x8b\x90", 3); 423 RefPtr<DOMArrayBuffer> b = DOMArrayBuffer::create("\xe7\x8b\x90", 3);
424 channel()->send(*b, 0, 3); 424 channel()->send(*b, 0, 3);
425 425
426 EXPECT_EQ(3ul, m_sumOfConsumedBufferedAmount); 426 EXPECT_EQ(3ul, m_sumOfConsumedBufferedAmount);
427 } 427 }
428 428
429 TEST_F(DocumentWebSocketChannelTest, sendBinaryInArrayBufferNonUTF8) 429 TEST_F(DocumentWebSocketChannelTest, sendBinaryInArrayBufferNonUTF8)
430 { 430 {
431 connect(); 431 connect();
432 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, MemEq( "\x80\xff\xe7", 3), 3)); 432 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, MemEq( "\x80\xff\xe7", 3), 3));
433 433
434 handleClient()->didReceiveFlowControl(handle(), 16); 434 handleClient()->didReceiveFlowControl(handle(), 16);
435 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber() ); 435 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber() );
436 436
437 DOMArrayBuffer* b = DOMArrayBuffer::create("\x80\xff\xe7", 3); 437 RefPtr<DOMArrayBuffer> b = DOMArrayBuffer::create("\x80\xff\xe7", 3);
438 channel()->send(*b, 0, 3); 438 channel()->send(*b, 0, 3);
439 439
440 EXPECT_EQ(3ul, m_sumOfConsumedBufferedAmount); 440 EXPECT_EQ(3ul, m_sumOfConsumedBufferedAmount);
441 } 441 }
442 442
443 TEST_F(DocumentWebSocketChannelTest, sendBinaryInArrayBufferNonLatin1UTF8Continu ation) 443 TEST_F(DocumentWebSocketChannelTest, sendBinaryInArrayBufferNonLatin1UTF8Continu ation)
444 { 444 {
445 connect(); 445 connect();
446 Checkpoint checkpoint; 446 Checkpoint checkpoint;
447 { 447 {
448 InSequence s; 448 InSequence s;
449 EXPECT_CALL(*handle(), send(false, WebSocketHandle::MessageTypeBinary, M emEq("\xe7\x8b\x90\xe7\x8b\x90\xe7\x8b\x90\xe7\x8b\x90\xe7\x8b\x90\xe7", 16), 16 )); 449 EXPECT_CALL(*handle(), send(false, WebSocketHandle::MessageTypeBinary, M emEq("\xe7\x8b\x90\xe7\x8b\x90\xe7\x8b\x90\xe7\x8b\x90\xe7\x8b\x90\xe7", 16), 16 ));
450 EXPECT_CALL(checkpoint, Call(1)); 450 EXPECT_CALL(checkpoint, Call(1));
451 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeContinuati on, MemEq("\x8b\x90", 2), 2)); 451 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeContinuati on, MemEq("\x8b\x90", 2), 2));
452 } 452 }
453 453
454 handleClient()->didReceiveFlowControl(handle(), 16); 454 handleClient()->didReceiveFlowControl(handle(), 16);
455 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber() ); 455 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber() );
456 456
457 DOMArrayBuffer* b = DOMArrayBuffer::create("\xe7\x8b\x90\xe7\x8b\x90\xe7\x8b \x90\xe7\x8b\x90\xe7\x8b\x90\xe7\x8b\x90", 18); 457 RefPtr<DOMArrayBuffer> b = DOMArrayBuffer::create("\xe7\x8b\x90\xe7\x8b\x90\ xe7\x8b\x90\xe7\x8b\x90\xe7\x8b\x90\xe7\x8b\x90", 18);
458 channel()->send(*b, 0, 18); 458 channel()->send(*b, 0, 18);
459 checkpoint.Call(1); 459 checkpoint.Call(1);
460 460
461 handleClient()->didReceiveFlowControl(handle(), 16); 461 handleClient()->didReceiveFlowControl(handle(), 16);
462 462
463 EXPECT_EQ(18ul, m_sumOfConsumedBufferedAmount); 463 EXPECT_EQ(18ul, m_sumOfConsumedBufferedAmount);
464 } 464 }
465 465
466 // FIXME: Add tests for WebSocketChannel::send(PassRefPtr<BlobDataHandle>) 466 // FIXME: Add tests for WebSocketChannel::send(PassRefPtr<BlobDataHandle>)
467 467
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after
679 EXPECT_CALL(*channelClient(), didError()); 679 EXPECT_CALL(*channelClient(), didError());
680 EXPECT_CALL(*channelClient(), didClose(WebSocketChannelClient::ClosingHa ndshakeIncomplete, WebSocketChannel::CloseEventCodeAbnormalClosure, String())); 680 EXPECT_CALL(*channelClient(), didClose(WebSocketChannelClient::ClosingHa ndshakeIncomplete, WebSocketChannel::CloseEventCodeAbnormalClosure, String()));
681 } 681 }
682 682
683 channel()->fail("fail message from WebSocket", ErrorMessageLevel, "sourceURL ", 1234); 683 channel()->fail("fail message from WebSocket", ErrorMessageLevel, "sourceURL ", 1234);
684 } 684 }
685 685
686 } // namespace 686 } // namespace
687 687
688 } // namespace blink 688 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698