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

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

Issue 311993006: [WebSocket] bufferedAmount should not decrease inside a task. (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 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
111 virtual ~WebSocketTestBase() 111 virtual ~WebSocketTestBase()
112 { 112 {
113 if (!m_websocket) 113 if (!m_websocket)
114 return; 114 return;
115 // These statements are needed to clear WebSocket::m_channel to 115 // These statements are needed to clear WebSocket::m_channel to
116 // avoid ASSERTION failure on ~WebSocket. 116 // avoid ASSERTION failure on ~WebSocket.
117 ASSERT(m_websocket->channel()); 117 ASSERT(m_websocket->channel());
118 ::testing::Mock::VerifyAndClear(m_websocket->channel()); 118 ::testing::Mock::VerifyAndClear(m_websocket->channel());
119 EXPECT_CALL(channel(), disconnect()).Times(AnyNumber()); 119 EXPECT_CALL(channel(), disconnect()).Times(AnyNumber());
120 120
121 m_websocket->didClose(0, WebSocketChannelClient::ClosingHandshakeIncompl ete, 1006, ""); 121 m_websocket->didClose(WebSocketChannelClient::ClosingHandshakeIncomplete , 1006, "");
122 m_websocket.clear(); 122 m_websocket.clear();
123 Heap::collectAllGarbage(); 123 Heap::collectAllGarbage();
124 } 124 }
125 125
126 MockWebSocketChannel& channel() { return *m_websocket->channel(); } 126 MockWebSocketChannel& channel() { return *m_websocket->channel(); }
127 127
128 OwnPtr<DummyPageHolder> m_pageHolder; 128 OwnPtr<DummyPageHolder> m_pageHolder;
129 RefPtrWillBePersistent<WebSocketWithMockChannel> m_websocket; 129 RefPtrWillBePersistent<WebSocketWithMockChannel> m_websocket;
130 V8TestingScope m_executionScope; 130 V8TestingScope m_executionScope;
131 ExceptionState m_exceptionState; 131 ExceptionState m_exceptionState;
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
291 { 291 {
292 InSequence s; 292 InSequence s;
293 EXPECT_CALL(channel(), connect(KURL(KURL(), "ws://example.com/"), String ())).WillOnce(Return(true)); 293 EXPECT_CALL(channel(), connect(KURL(KURL(), "ws://example.com/"), String ())).WillOnce(Return(true));
294 EXPECT_CALL(channel(), disconnect()); 294 EXPECT_CALL(channel(), disconnect());
295 } 295 }
296 m_websocket->connect("ws://example.com/", Vector<String>(), m_exceptionState ); 296 m_websocket->connect("ws://example.com/", Vector<String>(), m_exceptionState );
297 297
298 EXPECT_FALSE(m_exceptionState.hadException()); 298 EXPECT_FALSE(m_exceptionState.hadException());
299 EXPECT_EQ(WebSocket::CONNECTING, m_websocket->readyState()); 299 EXPECT_EQ(WebSocket::CONNECTING, m_websocket->readyState());
300 300
301 m_websocket->didClose(0, WebSocketChannelClient::ClosingHandshakeIncomplete, 1006, ""); 301 m_websocket->didClose(WebSocketChannelClient::ClosingHandshakeIncomplete, 10 06, "");
302 302
303 EXPECT_EQ(WebSocket::CLOSED, m_websocket->readyState()); 303 EXPECT_EQ(WebSocket::CLOSED, m_websocket->readyState());
304 } 304 }
305 305
306 TEST_F(WebSocketTest, maximumReasonSize) 306 TEST_F(WebSocketTest, maximumReasonSize)
307 { 307 {
308 { 308 {
309 InSequence s; 309 InSequence s;
310 EXPECT_CALL(channel(), connect(KURL(KURL(), "ws://example.com/"), String ())).WillOnce(Return(true)); 310 EXPECT_CALL(channel(), connect(KURL(KURL(), "ws://example.com/"), String ())).WillOnce(Return(true));
311 EXPECT_CALL(channel(), fail(_, _, _, _)); 311 EXPECT_CALL(channel(), fail(_, _, _, _));
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
470 470
471 EXPECT_FALSE(m_exceptionState.hadException()); 471 EXPECT_FALSE(m_exceptionState.hadException());
472 EXPECT_EQ(WebSocket::CONNECTING, m_websocket->readyState()); 472 EXPECT_EQ(WebSocket::CONNECTING, m_websocket->readyState());
473 473
474 m_websocket->didConnect(); 474 m_websocket->didConnect();
475 EXPECT_EQ(WebSocket::OPEN, m_websocket->readyState()); 475 EXPECT_EQ(WebSocket::OPEN, m_websocket->readyState());
476 m_websocket->close(m_exceptionState); 476 m_websocket->close(m_exceptionState);
477 EXPECT_FALSE(m_exceptionState.hadException()); 477 EXPECT_FALSE(m_exceptionState.hadException());
478 EXPECT_EQ(WebSocket::CLOSING, m_websocket->readyState()); 478 EXPECT_EQ(WebSocket::CLOSING, m_websocket->readyState());
479 479
480 m_websocket->didClose(0, WebSocketChannelClient::ClosingHandshakeComplete, 1 000, String()); 480 m_websocket->didClose(WebSocketChannelClient::ClosingHandshakeComplete, 1000 , String());
481 EXPECT_EQ(WebSocket::CLOSED, m_websocket->readyState()); 481 EXPECT_EQ(WebSocket::CLOSED, m_websocket->readyState());
482 m_websocket->close(m_exceptionState); 482 m_websocket->close(m_exceptionState);
483 483
484 EXPECT_FALSE(m_exceptionState.hadException()); 484 EXPECT_FALSE(m_exceptionState.hadException());
485 EXPECT_EQ(WebSocket::CLOSED, m_websocket->readyState()); 485 EXPECT_EQ(WebSocket::CLOSED, m_websocket->readyState());
486 } 486 }
487 487
488 TEST_F(WebSocketTest, sendStringWhenConnecting) 488 TEST_F(WebSocketTest, sendStringWhenConnecting)
489 { 489 {
490 { 490 {
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
530 { 530 {
531 InSequence s; 531 InSequence s;
532 EXPECT_CALL(channel(), connect(KURL(KURL(), "ws://example.com/"), String ())).WillOnce(Return(true)); 532 EXPECT_CALL(channel(), connect(KURL(KURL(), "ws://example.com/"), String ())).WillOnce(Return(true));
533 EXPECT_CALL(channel(), disconnect()); 533 EXPECT_CALL(channel(), disconnect());
534 EXPECT_CALL(checkpoint, Call(1)); 534 EXPECT_CALL(checkpoint, Call(1));
535 } 535 }
536 m_websocket->connect("ws://example.com/", Vector<String>(), m_exceptionState ); 536 m_websocket->connect("ws://example.com/", Vector<String>(), m_exceptionState );
537 537
538 EXPECT_FALSE(m_exceptionState.hadException()); 538 EXPECT_FALSE(m_exceptionState.hadException());
539 539
540 m_websocket->didClose(0, WebSocketChannelClient::ClosingHandshakeIncomplete, 1006, ""); 540 m_websocket->didClose(WebSocketChannelClient::ClosingHandshakeIncomplete, 10 06, "");
541 checkpoint.Call(1); 541 checkpoint.Call(1);
542 542
543 m_websocket->send("hello", m_exceptionState); 543 m_websocket->send("hello", m_exceptionState);
544 544
545 EXPECT_FALSE(m_exceptionState.hadException()); 545 EXPECT_FALSE(m_exceptionState.hadException());
546 EXPECT_EQ(WebSocket::CLOSED, m_websocket->readyState()); 546 EXPECT_EQ(WebSocket::CLOSED, m_websocket->readyState());
547 } 547 }
548 548
549 TEST_F(WebSocketTest, sendStringSuccess) 549 TEST_F(WebSocketTest, sendStringSuccess)
550 { 550 {
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
655 { 655 {
656 InSequence s; 656 InSequence s;
657 EXPECT_CALL(channel(), connect(KURL(KURL(), "ws://example.com/"), String ())).WillOnce(Return(true)); 657 EXPECT_CALL(channel(), connect(KURL(KURL(), "ws://example.com/"), String ())).WillOnce(Return(true));
658 EXPECT_CALL(channel(), disconnect()); 658 EXPECT_CALL(channel(), disconnect());
659 EXPECT_CALL(checkpoint, Call(1)); 659 EXPECT_CALL(checkpoint, Call(1));
660 } 660 }
661 m_websocket->connect("ws://example.com/", Vector<String>(), m_exceptionState ); 661 m_websocket->connect("ws://example.com/", Vector<String>(), m_exceptionState );
662 662
663 EXPECT_FALSE(m_exceptionState.hadException()); 663 EXPECT_FALSE(m_exceptionState.hadException());
664 664
665 m_websocket->didClose(0, WebSocketChannelClient::ClosingHandshakeIncomplete, 1006, ""); 665 m_websocket->didClose(WebSocketChannelClient::ClosingHandshakeIncomplete, 10 06, "");
666 checkpoint.Call(1); 666 checkpoint.Call(1);
667 667
668 m_websocket->send(view->buffer().get(), m_exceptionState); 668 m_websocket->send(view->buffer().get(), m_exceptionState);
669 669
670 EXPECT_FALSE(m_exceptionState.hadException()); 670 EXPECT_FALSE(m_exceptionState.hadException());
671 EXPECT_EQ(WebSocket::CLOSED, m_websocket->readyState()); 671 EXPECT_EQ(WebSocket::CLOSED, m_websocket->readyState());
672 } 672 }
673 673
674 TEST_F(WebSocketTest, sendArrayBufferSuccess) 674 TEST_F(WebSocketTest, sendArrayBufferSuccess)
675 { 675 {
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
811 EXPECT_EQ(InvalidAccessError, m_exceptionState.code()); 811 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()); 812 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()); 813 EXPECT_EQ(WebSocket::CONNECTING, m_websocket->readyState());
814 } 814 }
815 815
816 INSTANTIATE_TEST_CASE_P(WebSocketInvalidClosingCode, WebSocketInvalidClosingCode Test, ::testing::Values(0, 1, 998, 999, 1001, 2999, 5000, 9999, 65535)); 816 INSTANTIATE_TEST_CASE_P(WebSocketInvalidClosingCode, WebSocketInvalidClosingCode Test, ::testing::Values(0, 1, 998, 999, 1001, 2999, 5000, 9999, 65535));
817 817
818 } // namespace 818 } // namespace
819 819
820 } // namespace WebCore 820 } // namespace WebCore
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698