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

Side by Side Diff: Source/modules/websockets/WebSocketTest.cpp

Issue 334873002: [WebSocket] Make subprotocol and extensions live in WebSocket (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 6 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 "config.h" 5 #include "config.h"
6 6
7 #include "modules/websockets/WebSocket.h" 7 #include "modules/websockets/WebSocket.h"
8 8
9 #include "bindings/v8/ExceptionState.h" 9 #include "bindings/v8/ExceptionState.h"
10 #include "bindings/v8/V8Binding.h" 10 #include "bindings/v8/V8Binding.h"
(...skipping 28 matching lines...) Expand all
39 static PassRefPtrWillBeRawPtr<MockWebSocketChannel> create() 39 static PassRefPtrWillBeRawPtr<MockWebSocketChannel> create()
40 { 40 {
41 return adoptRefWillBeRefCountedGarbageCollected(new testing::StrictMock< MockWebSocketChannel>()); 41 return adoptRefWillBeRefCountedGarbageCollected(new testing::StrictMock< MockWebSocketChannel>());
42 } 42 }
43 43
44 virtual ~MockWebSocketChannel() 44 virtual ~MockWebSocketChannel()
45 { 45 {
46 } 46 }
47 47
48 MOCK_METHOD2(connect, bool(const KURL&, const String&)); 48 MOCK_METHOD2(connect, bool(const KURL&, const String&));
49 MOCK_METHOD0(subprotocol, String());
50 MOCK_METHOD0(extensions, String());
51 MOCK_METHOD1(send, SendResult(const String&)); 49 MOCK_METHOD1(send, SendResult(const String&));
52 MOCK_METHOD3(send, SendResult(const ArrayBuffer&, unsigned, unsigned)); 50 MOCK_METHOD3(send, SendResult(const ArrayBuffer&, unsigned, unsigned));
53 MOCK_METHOD1(send, SendResult(PassRefPtr<BlobDataHandle>)); 51 MOCK_METHOD1(send, SendResult(PassRefPtr<BlobDataHandle>));
54 MOCK_METHOD1(send, SendResult(PassOwnPtr<Vector<char> >)); 52 MOCK_METHOD1(send, SendResult(PassOwnPtr<Vector<char> >));
55 MOCK_CONST_METHOD0(bufferedAmount, unsigned long()); 53 MOCK_CONST_METHOD0(bufferedAmount, unsigned long());
56 MOCK_METHOD2(close, void(int, const String&)); 54 MOCK_METHOD2(close, void(int, const String&));
57 MOCK_METHOD4(fail, void(const String&, MessageLevel, const String&, unsigned )); 55 MOCK_METHOD4(fail, void(const String&, MessageLevel, const String&, unsigned ));
58 MOCK_METHOD0(disconnect, void()); 56 MOCK_METHOD0(disconnect, void());
59 MOCK_METHOD0(suspend, void()); 57 MOCK_METHOD0(suspend, void());
60 MOCK_METHOD0(resume, void()); 58 MOCK_METHOD0(resume, void());
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after
264 } 262 }
265 263
266 TEST_F(WebSocketTest, connectSuccess) 264 TEST_F(WebSocketTest, connectSuccess)
267 { 265 {
268 Vector<String> subprotocols; 266 Vector<String> subprotocols;
269 subprotocols.append("aa"); 267 subprotocols.append("aa");
270 subprotocols.append("bb"); 268 subprotocols.append("bb");
271 { 269 {
272 InSequence s; 270 InSequence s;
273 EXPECT_CALL(channel(), connect(KURL(KURL(), "ws://example.com/"), String ("aa, bb"))).WillOnce(Return(true)); 271 EXPECT_CALL(channel(), connect(KURL(KURL(), "ws://example.com/"), String ("aa, bb"))).WillOnce(Return(true));
274 EXPECT_CALL(channel(), subprotocol()).WillOnce(Return(String("bb")));
275 EXPECT_CALL(channel(), extensions()).WillOnce(Return(String("cc")));
276 } 272 }
277 m_websocket->connect("ws://example.com/", subprotocols, m_exceptionState); 273 m_websocket->connect("ws://example.com/", subprotocols, m_exceptionState);
278 274
279 EXPECT_FALSE(m_exceptionState.hadException()); 275 EXPECT_FALSE(m_exceptionState.hadException());
280 EXPECT_EQ(WebSocket::CONNECTING, m_websocket->readyState()); 276 EXPECT_EQ(WebSocket::CONNECTING, m_websocket->readyState());
281 277
282 m_websocket->didConnect(); 278 m_websocket->didConnect("bb", "cc");
283 279
284 EXPECT_EQ(WebSocket::OPEN, m_websocket->readyState()); 280 EXPECT_EQ(WebSocket::OPEN, m_websocket->readyState());
285 EXPECT_EQ("bb", m_websocket->protocol()); 281 EXPECT_EQ("bb", m_websocket->protocol());
286 EXPECT_EQ("cc", m_websocket->extensions()); 282 EXPECT_EQ("cc", m_websocket->extensions());
287 } 283 }
288 284
289 TEST_F(WebSocketTest, didClose) 285 TEST_F(WebSocketTest, didClose)
290 { 286 {
291 { 287 {
292 InSequence s; 288 InSequence s;
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
362 358
363 EXPECT_FALSE(m_exceptionState.hadException()); 359 EXPECT_FALSE(m_exceptionState.hadException());
364 EXPECT_EQ(WebSocket::CLOSING, m_websocket->readyState()); 360 EXPECT_EQ(WebSocket::CLOSING, m_websocket->readyState());
365 } 361 }
366 362
367 TEST_F(WebSocketTest, close) 363 TEST_F(WebSocketTest, close)
368 { 364 {
369 { 365 {
370 InSequence s; 366 InSequence s;
371 EXPECT_CALL(channel(), connect(KURL(KURL(), "ws://example.com/"), String ())).WillOnce(Return(true)); 367 EXPECT_CALL(channel(), connect(KURL(KURL(), "ws://example.com/"), String ())).WillOnce(Return(true));
372 EXPECT_CALL(channel(), subprotocol()).WillOnce(Return(String()));
373 EXPECT_CALL(channel(), extensions()).WillOnce(Return(String()));
374 EXPECT_CALL(channel(), close(3005, String("bye"))); 368 EXPECT_CALL(channel(), close(3005, String("bye")));
375 } 369 }
376 m_websocket->connect("ws://example.com/", Vector<String>(), m_exceptionState ); 370 m_websocket->connect("ws://example.com/", Vector<String>(), m_exceptionState );
377 371
378 EXPECT_FALSE(m_exceptionState.hadException()); 372 EXPECT_FALSE(m_exceptionState.hadException());
379 EXPECT_EQ(WebSocket::CONNECTING, m_websocket->readyState()); 373 EXPECT_EQ(WebSocket::CONNECTING, m_websocket->readyState());
380 374
381 m_websocket->didConnect(); 375 m_websocket->didConnect("", "");
382 EXPECT_EQ(WebSocket::OPEN, m_websocket->readyState()); 376 EXPECT_EQ(WebSocket::OPEN, m_websocket->readyState());
383 m_websocket->close(3005, "bye", m_exceptionState); 377 m_websocket->close(3005, "bye", m_exceptionState);
384 378
385 EXPECT_FALSE(m_exceptionState.hadException()); 379 EXPECT_FALSE(m_exceptionState.hadException());
386 EXPECT_EQ(WebSocket::CLOSING, m_websocket->readyState()); 380 EXPECT_EQ(WebSocket::CLOSING, m_websocket->readyState());
387 } 381 }
388 382
389 TEST_F(WebSocketTest, closeWithoutReason) 383 TEST_F(WebSocketTest, closeWithoutReason)
390 { 384 {
391 { 385 {
392 InSequence s; 386 InSequence s;
393 EXPECT_CALL(channel(), connect(KURL(KURL(), "ws://example.com/"), String ())).WillOnce(Return(true)); 387 EXPECT_CALL(channel(), connect(KURL(KURL(), "ws://example.com/"), String ())).WillOnce(Return(true));
394 EXPECT_CALL(channel(), subprotocol()).WillOnce(Return(String()));
395 EXPECT_CALL(channel(), extensions()).WillOnce(Return(String()));
396 EXPECT_CALL(channel(), close(3005, String())); 388 EXPECT_CALL(channel(), close(3005, String()));
397 } 389 }
398 m_websocket->connect("ws://example.com/", Vector<String>(), m_exceptionState ); 390 m_websocket->connect("ws://example.com/", Vector<String>(), m_exceptionState );
399 391
400 EXPECT_FALSE(m_exceptionState.hadException()); 392 EXPECT_FALSE(m_exceptionState.hadException());
401 EXPECT_EQ(WebSocket::CONNECTING, m_websocket->readyState()); 393 EXPECT_EQ(WebSocket::CONNECTING, m_websocket->readyState());
402 394
403 m_websocket->didConnect(); 395 m_websocket->didConnect("", "");
404 EXPECT_EQ(WebSocket::OPEN, m_websocket->readyState()); 396 EXPECT_EQ(WebSocket::OPEN, m_websocket->readyState());
405 m_websocket->close(3005, m_exceptionState); 397 m_websocket->close(3005, m_exceptionState);
406 398
407 EXPECT_FALSE(m_exceptionState.hadException()); 399 EXPECT_FALSE(m_exceptionState.hadException());
408 EXPECT_EQ(WebSocket::CLOSING, m_websocket->readyState()); 400 EXPECT_EQ(WebSocket::CLOSING, m_websocket->readyState());
409 } 401 }
410 402
411 TEST_F(WebSocketTest, closeWithoutCodeAndReason) 403 TEST_F(WebSocketTest, closeWithoutCodeAndReason)
412 { 404 {
413 { 405 {
414 InSequence s; 406 InSequence s;
415 EXPECT_CALL(channel(), connect(KURL(KURL(), "ws://example.com/"), String ())).WillOnce(Return(true)); 407 EXPECT_CALL(channel(), connect(KURL(KURL(), "ws://example.com/"), String ())).WillOnce(Return(true));
416 EXPECT_CALL(channel(), subprotocol()).WillOnce(Return(String()));
417 EXPECT_CALL(channel(), extensions()).WillOnce(Return(String()));
418 EXPECT_CALL(channel(), close(-1, String())); 408 EXPECT_CALL(channel(), close(-1, String()));
419 } 409 }
420 m_websocket->connect("ws://example.com/", Vector<String>(), m_exceptionState ); 410 m_websocket->connect("ws://example.com/", Vector<String>(), m_exceptionState );
421 411
422 EXPECT_FALSE(m_exceptionState.hadException()); 412 EXPECT_FALSE(m_exceptionState.hadException());
423 EXPECT_EQ(WebSocket::CONNECTING, m_websocket->readyState()); 413 EXPECT_EQ(WebSocket::CONNECTING, m_websocket->readyState());
424 414
425 m_websocket->didConnect(); 415 m_websocket->didConnect("", "");
426 EXPECT_EQ(WebSocket::OPEN, m_websocket->readyState()); 416 EXPECT_EQ(WebSocket::OPEN, m_websocket->readyState());
427 m_websocket->close(m_exceptionState); 417 m_websocket->close(m_exceptionState);
428 418
429 EXPECT_FALSE(m_exceptionState.hadException()); 419 EXPECT_FALSE(m_exceptionState.hadException());
430 EXPECT_EQ(WebSocket::CLOSING, m_websocket->readyState()); 420 EXPECT_EQ(WebSocket::CLOSING, m_websocket->readyState());
431 } 421 }
432 422
433 TEST_F(WebSocketTest, closeWhenClosing) 423 TEST_F(WebSocketTest, closeWhenClosing)
434 { 424 {
435 { 425 {
436 InSequence s; 426 InSequence s;
437 EXPECT_CALL(channel(), connect(KURL(KURL(), "ws://example.com/"), String ())).WillOnce(Return(true)); 427 EXPECT_CALL(channel(), connect(KURL(KURL(), "ws://example.com/"), String ())).WillOnce(Return(true));
438 EXPECT_CALL(channel(), subprotocol()).WillOnce(Return(String()));
439 EXPECT_CALL(channel(), extensions()).WillOnce(Return(String()));
440 EXPECT_CALL(channel(), close(-1, String())); 428 EXPECT_CALL(channel(), close(-1, String()));
441 } 429 }
442 m_websocket->connect("ws://example.com/", Vector<String>(), m_exceptionState ); 430 m_websocket->connect("ws://example.com/", Vector<String>(), m_exceptionState );
443 431
444 EXPECT_FALSE(m_exceptionState.hadException()); 432 EXPECT_FALSE(m_exceptionState.hadException());
445 EXPECT_EQ(WebSocket::CONNECTING, m_websocket->readyState()); 433 EXPECT_EQ(WebSocket::CONNECTING, m_websocket->readyState());
446 434
447 m_websocket->didConnect(); 435 m_websocket->didConnect("", "");
448 EXPECT_EQ(WebSocket::OPEN, m_websocket->readyState()); 436 EXPECT_EQ(WebSocket::OPEN, m_websocket->readyState());
449 m_websocket->close(m_exceptionState); 437 m_websocket->close(m_exceptionState);
450 EXPECT_FALSE(m_exceptionState.hadException()); 438 EXPECT_FALSE(m_exceptionState.hadException());
451 EXPECT_EQ(WebSocket::CLOSING, m_websocket->readyState()); 439 EXPECT_EQ(WebSocket::CLOSING, m_websocket->readyState());
452 440
453 m_websocket->close(m_exceptionState); 441 m_websocket->close(m_exceptionState);
454 442
455 EXPECT_FALSE(m_exceptionState.hadException()); 443 EXPECT_FALSE(m_exceptionState.hadException());
456 EXPECT_EQ(WebSocket::CLOSING, m_websocket->readyState()); 444 EXPECT_EQ(WebSocket::CLOSING, m_websocket->readyState());
457 } 445 }
458 446
459 TEST_F(WebSocketTest, closeWhenClosed) 447 TEST_F(WebSocketTest, closeWhenClosed)
460 { 448 {
461 { 449 {
462 InSequence s; 450 InSequence s;
463 EXPECT_CALL(channel(), connect(KURL(KURL(), "ws://example.com/"), String ())).WillOnce(Return(true)); 451 EXPECT_CALL(channel(), connect(KURL(KURL(), "ws://example.com/"), String ())).WillOnce(Return(true));
464 EXPECT_CALL(channel(), subprotocol()).WillOnce(Return(String()));
465 EXPECT_CALL(channel(), extensions()).WillOnce(Return(String()));
466 EXPECT_CALL(channel(), close(-1, String())); 452 EXPECT_CALL(channel(), close(-1, String()));
467 EXPECT_CALL(channel(), disconnect()); 453 EXPECT_CALL(channel(), disconnect());
468 } 454 }
469 m_websocket->connect("ws://example.com/", Vector<String>(), m_exceptionState ); 455 m_websocket->connect("ws://example.com/", Vector<String>(), m_exceptionState );
470 456
471 EXPECT_FALSE(m_exceptionState.hadException()); 457 EXPECT_FALSE(m_exceptionState.hadException());
472 EXPECT_EQ(WebSocket::CONNECTING, m_websocket->readyState()); 458 EXPECT_EQ(WebSocket::CONNECTING, m_websocket->readyState());
473 459
474 m_websocket->didConnect(); 460 m_websocket->didConnect("", "");
475 EXPECT_EQ(WebSocket::OPEN, m_websocket->readyState()); 461 EXPECT_EQ(WebSocket::OPEN, m_websocket->readyState());
476 m_websocket->close(m_exceptionState); 462 m_websocket->close(m_exceptionState);
477 EXPECT_FALSE(m_exceptionState.hadException()); 463 EXPECT_FALSE(m_exceptionState.hadException());
478 EXPECT_EQ(WebSocket::CLOSING, m_websocket->readyState()); 464 EXPECT_EQ(WebSocket::CLOSING, m_websocket->readyState());
479 465
480 m_websocket->didClose(0, WebSocketChannelClient::ClosingHandshakeComplete, 1 000, String()); 466 m_websocket->didClose(0, WebSocketChannelClient::ClosingHandshakeComplete, 1 000, String());
481 EXPECT_EQ(WebSocket::CLOSED, m_websocket->readyState()); 467 EXPECT_EQ(WebSocket::CLOSED, m_websocket->readyState());
482 m_websocket->close(m_exceptionState); 468 m_websocket->close(m_exceptionState);
483 469
484 EXPECT_FALSE(m_exceptionState.hadException()); 470 EXPECT_FALSE(m_exceptionState.hadException());
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
544 530
545 EXPECT_FALSE(m_exceptionState.hadException()); 531 EXPECT_FALSE(m_exceptionState.hadException());
546 EXPECT_EQ(WebSocket::CLOSED, m_websocket->readyState()); 532 EXPECT_EQ(WebSocket::CLOSED, m_websocket->readyState());
547 } 533 }
548 534
549 TEST_F(WebSocketTest, sendStringSuccess) 535 TEST_F(WebSocketTest, sendStringSuccess)
550 { 536 {
551 { 537 {
552 InSequence s; 538 InSequence s;
553 EXPECT_CALL(channel(), connect(KURL(KURL(), "ws://example.com/"), String ())).WillOnce(Return(true)); 539 EXPECT_CALL(channel(), connect(KURL(KURL(), "ws://example.com/"), String ())).WillOnce(Return(true));
554 EXPECT_CALL(channel(), subprotocol()).WillOnce(Return(String()));
555 EXPECT_CALL(channel(), extensions()).WillOnce(Return(String()));
556 EXPECT_CALL(channel(), send(String("hello"))).WillOnce(Return(WebSocketC hannel::SendSuccess)); 540 EXPECT_CALL(channel(), send(String("hello"))).WillOnce(Return(WebSocketC hannel::SendSuccess));
557 } 541 }
558 m_websocket->connect("ws://example.com/", Vector<String>(), m_exceptionState ); 542 m_websocket->connect("ws://example.com/", Vector<String>(), m_exceptionState );
559 543
560 EXPECT_FALSE(m_exceptionState.hadException()); 544 EXPECT_FALSE(m_exceptionState.hadException());
561 545
562 m_websocket->didConnect(); 546 m_websocket->didConnect("", "");
563 m_websocket->send("hello", m_exceptionState); 547 m_websocket->send("hello", m_exceptionState);
564 548
565 EXPECT_FALSE(m_exceptionState.hadException()); 549 EXPECT_FALSE(m_exceptionState.hadException());
566 EXPECT_EQ(WebSocket::OPEN, m_websocket->readyState()); 550 EXPECT_EQ(WebSocket::OPEN, m_websocket->readyState());
567 } 551 }
568 552
569 TEST_F(WebSocketTest, sendStringFail) 553 TEST_F(WebSocketTest, sendStringFail)
570 { 554 {
571 { 555 {
572 InSequence s; 556 InSequence s;
573 EXPECT_CALL(channel(), connect(KURL(KURL(), "ws://example.com/"), String ())).WillOnce(Return(true)); 557 EXPECT_CALL(channel(), connect(KURL(KURL(), "ws://example.com/"), String ())).WillOnce(Return(true));
574 EXPECT_CALL(channel(), subprotocol()).WillOnce(Return(String()));
575 EXPECT_CALL(channel(), extensions()).WillOnce(Return(String()));
576 EXPECT_CALL(channel(), send(String("hello"))).WillOnce(Return(WebSocketC hannel::SendFail)); 558 EXPECT_CALL(channel(), send(String("hello"))).WillOnce(Return(WebSocketC hannel::SendFail));
577 } 559 }
578 m_websocket->connect("ws://example.com/", Vector<String>(), m_exceptionState ); 560 m_websocket->connect("ws://example.com/", Vector<String>(), m_exceptionState );
579 561
580 EXPECT_FALSE(m_exceptionState.hadException()); 562 EXPECT_FALSE(m_exceptionState.hadException());
581 563
582 m_websocket->didConnect(); 564 m_websocket->didConnect("", "");
583 m_websocket->send("hello", m_exceptionState); 565 m_websocket->send("hello", m_exceptionState);
584 566
585 EXPECT_FALSE(m_exceptionState.hadException()); 567 EXPECT_FALSE(m_exceptionState.hadException());
586 EXPECT_EQ(WebSocket::OPEN, m_websocket->readyState()); 568 EXPECT_EQ(WebSocket::OPEN, m_websocket->readyState());
587 } 569 }
588 570
589 TEST_F(WebSocketTest, sendStringInvalidMessage) 571 TEST_F(WebSocketTest, sendStringInvalidMessage)
590 { 572 {
591 { 573 {
592 InSequence s; 574 InSequence s;
593 EXPECT_CALL(channel(), connect(KURL(KURL(), "ws://example.com/"), String ())).WillOnce(Return(true)); 575 EXPECT_CALL(channel(), connect(KURL(KURL(), "ws://example.com/"), String ())).WillOnce(Return(true));
594 EXPECT_CALL(channel(), subprotocol()).WillOnce(Return(String()));
595 EXPECT_CALL(channel(), extensions()).WillOnce(Return(String()));
596 EXPECT_CALL(channel(), send(String("hello"))).WillOnce(Return(WebSocketC hannel::InvalidMessage)); 576 EXPECT_CALL(channel(), send(String("hello"))).WillOnce(Return(WebSocketC hannel::InvalidMessage));
597 } 577 }
598 m_websocket->connect("ws://example.com/", Vector<String>(), m_exceptionState ); 578 m_websocket->connect("ws://example.com/", Vector<String>(), m_exceptionState );
599 579
600 EXPECT_FALSE(m_exceptionState.hadException()); 580 EXPECT_FALSE(m_exceptionState.hadException());
601 581
602 m_websocket->didConnect(); 582 m_websocket->didConnect("", "");
603 m_websocket->send("hello", m_exceptionState); 583 m_websocket->send("hello", m_exceptionState);
604 584
605 EXPECT_TRUE(m_exceptionState.hadException()); 585 EXPECT_TRUE(m_exceptionState.hadException());
606 EXPECT_EQ(SyntaxError, m_exceptionState.code()); 586 EXPECT_EQ(SyntaxError, m_exceptionState.code());
607 EXPECT_EQ("The message contains invalid characters.", m_exceptionState.messa ge()); 587 EXPECT_EQ("The message contains invalid characters.", m_exceptionState.messa ge());
608 EXPECT_EQ(WebSocket::OPEN, m_websocket->readyState()); 588 EXPECT_EQ(WebSocket::OPEN, m_websocket->readyState());
609 } 589 }
610 590
611 TEST_F(WebSocketTest, sendArrayBufferWhenConnecting) 591 TEST_F(WebSocketTest, sendArrayBufferWhenConnecting)
612 { 592 {
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
670 EXPECT_FALSE(m_exceptionState.hadException()); 650 EXPECT_FALSE(m_exceptionState.hadException());
671 EXPECT_EQ(WebSocket::CLOSED, m_websocket->readyState()); 651 EXPECT_EQ(WebSocket::CLOSED, m_websocket->readyState());
672 } 652 }
673 653
674 TEST_F(WebSocketTest, sendArrayBufferSuccess) 654 TEST_F(WebSocketTest, sendArrayBufferSuccess)
675 { 655 {
676 RefPtr<ArrayBufferView> view = Uint8Array::create(8); 656 RefPtr<ArrayBufferView> view = Uint8Array::create(8);
677 { 657 {
678 InSequence s; 658 InSequence s;
679 EXPECT_CALL(channel(), connect(KURL(KURL(), "ws://example.com/"), String ())).WillOnce(Return(true)); 659 EXPECT_CALL(channel(), connect(KURL(KURL(), "ws://example.com/"), String ())).WillOnce(Return(true));
680 EXPECT_CALL(channel(), subprotocol()).WillOnce(Return(String()));
681 EXPECT_CALL(channel(), extensions()).WillOnce(Return(String()));
682 EXPECT_CALL(channel(), send(Ref(*view->buffer()), 0, 8)).WillOnce(Return (WebSocketChannel::SendSuccess)); 660 EXPECT_CALL(channel(), send(Ref(*view->buffer()), 0, 8)).WillOnce(Return (WebSocketChannel::SendSuccess));
683 } 661 }
684 m_websocket->connect("ws://example.com/", Vector<String>(), m_exceptionState ); 662 m_websocket->connect("ws://example.com/", Vector<String>(), m_exceptionState );
685 663
686 EXPECT_FALSE(m_exceptionState.hadException()); 664 EXPECT_FALSE(m_exceptionState.hadException());
687 665
688 m_websocket->didConnect(); 666 m_websocket->didConnect("", "");
689 m_websocket->send(view->buffer().get(), m_exceptionState); 667 m_websocket->send(view->buffer().get(), m_exceptionState);
690 668
691 EXPECT_FALSE(m_exceptionState.hadException()); 669 EXPECT_FALSE(m_exceptionState.hadException());
692 EXPECT_EQ(WebSocket::OPEN, m_websocket->readyState()); 670 EXPECT_EQ(WebSocket::OPEN, m_websocket->readyState());
693 } 671 }
694 672
695 TEST_F(WebSocketTest, sendArrayBufferFail) 673 TEST_F(WebSocketTest, sendArrayBufferFail)
696 { 674 {
697 RefPtr<ArrayBufferView> view = Uint8Array::create(8); 675 RefPtr<ArrayBufferView> view = Uint8Array::create(8);
698 { 676 {
699 InSequence s; 677 InSequence s;
700 EXPECT_CALL(channel(), connect(KURL(KURL(), "ws://example.com/"), String ())).WillOnce(Return(true)); 678 EXPECT_CALL(channel(), connect(KURL(KURL(), "ws://example.com/"), String ())).WillOnce(Return(true));
701 EXPECT_CALL(channel(), subprotocol()).WillOnce(Return(String()));
702 EXPECT_CALL(channel(), extensions()).WillOnce(Return(String()));
703 EXPECT_CALL(channel(), send(Ref(*view->buffer()), 0, 8)).WillOnce(Return (WebSocketChannel::SendFail)); 679 EXPECT_CALL(channel(), send(Ref(*view->buffer()), 0, 8)).WillOnce(Return (WebSocketChannel::SendFail));
704 } 680 }
705 m_websocket->connect("ws://example.com/", Vector<String>(), m_exceptionState ); 681 m_websocket->connect("ws://example.com/", Vector<String>(), m_exceptionState );
706 682
707 EXPECT_FALSE(m_exceptionState.hadException()); 683 EXPECT_FALSE(m_exceptionState.hadException());
708 684
709 m_websocket->didConnect(); 685 m_websocket->didConnect("", "");
710 m_websocket->send(view->buffer().get(), m_exceptionState); 686 m_websocket->send(view->buffer().get(), m_exceptionState);
711 687
712 EXPECT_FALSE(m_exceptionState.hadException()); 688 EXPECT_FALSE(m_exceptionState.hadException());
713 EXPECT_EQ(WebSocket::OPEN, m_websocket->readyState()); 689 EXPECT_EQ(WebSocket::OPEN, m_websocket->readyState());
714 } 690 }
715 691
716 TEST_F(WebSocketTest, sendArrayBufferInvalidMessage) 692 TEST_F(WebSocketTest, sendArrayBufferInvalidMessage)
717 { 693 {
718 RefPtr<ArrayBufferView> view = Uint8Array::create(8); 694 RefPtr<ArrayBufferView> view = Uint8Array::create(8);
719 { 695 {
720 InSequence s; 696 InSequence s;
721 EXPECT_CALL(channel(), connect(KURL(KURL(), "ws://example.com/"), String ())).WillOnce(Return(true)); 697 EXPECT_CALL(channel(), connect(KURL(KURL(), "ws://example.com/"), String ())).WillOnce(Return(true));
722 EXPECT_CALL(channel(), subprotocol()).WillOnce(Return(String()));
723 EXPECT_CALL(channel(), extensions()).WillOnce(Return(String()));
724 EXPECT_CALL(channel(), send(Ref(*view->buffer()), 0, 8)).WillOnce(Return (WebSocketChannel::InvalidMessage)); 698 EXPECT_CALL(channel(), send(Ref(*view->buffer()), 0, 8)).WillOnce(Return (WebSocketChannel::InvalidMessage));
725 } 699 }
726 m_websocket->connect("ws://example.com/", Vector<String>(), m_exceptionState ); 700 m_websocket->connect("ws://example.com/", Vector<String>(), m_exceptionState );
727 701
728 EXPECT_FALSE(m_exceptionState.hadException()); 702 EXPECT_FALSE(m_exceptionState.hadException());
729 703
730 m_websocket->didConnect(); 704 m_websocket->didConnect("", "");
731 m_websocket->send(view->buffer().get(), m_exceptionState); 705 m_websocket->send(view->buffer().get(), m_exceptionState);
732 706
733 EXPECT_TRUE(m_exceptionState.hadException()); 707 EXPECT_TRUE(m_exceptionState.hadException());
734 EXPECT_EQ(SyntaxError, m_exceptionState.code()); 708 EXPECT_EQ(SyntaxError, m_exceptionState.code());
735 EXPECT_EQ("The message contains invalid characters.", m_exceptionState.messa ge()); 709 EXPECT_EQ("The message contains invalid characters.", m_exceptionState.messa ge());
736 EXPECT_EQ(WebSocket::OPEN, m_websocket->readyState()); 710 EXPECT_EQ(WebSocket::OPEN, m_websocket->readyState());
737 } 711 }
738 712
739 // FIXME: We should have Blob tests here. 713 // FIXME: We should have Blob tests here.
740 // We can't create a Blob because the blob registration cannot be mocked yet. 714 // We can't create a Blob because the blob registration cannot be mocked yet.
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
811 EXPECT_EQ(InvalidAccessError, m_exceptionState.code()); 785 EXPECT_EQ(InvalidAccessError, m_exceptionState.code());
812 EXPECT_EQ(String::format("The code must be either 1000, or between 3000 and 4999. %d is neither.", GetParam()), m_exceptionState.message()); 786 EXPECT_EQ(String::format("The code must be either 1000, or between 3000 and 4999. %d is neither.", GetParam()), m_exceptionState.message());
813 EXPECT_EQ(WebSocket::CONNECTING, m_websocket->readyState()); 787 EXPECT_EQ(WebSocket::CONNECTING, m_websocket->readyState());
814 } 788 }
815 789
816 INSTANTIATE_TEST_CASE_P(WebSocketInvalidClosingCode, WebSocketInvalidClosingCode Test, ::testing::Values(0, 1, 998, 999, 1001, 2999, 5000, 9999, 65535)); 790 INSTANTIATE_TEST_CASE_P(WebSocketInvalidClosingCode, WebSocketInvalidClosingCode Test, ::testing::Values(0, 1, 998, 999, 1001, 2999, 5000, 9999, 65535));
817 791
818 } // namespace 792 } // namespace
819 793
820 } // namespace WebCore 794 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/modules/websockets/WebSocketChannelClient.h ('k') | Source/modules/websockets/WorkerThreadableWebSocketChannel.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698