| OLD | NEW |
| 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 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 95 RefPtrWillBeMember<MockWebSocketChannel> m_channel; | 95 RefPtrWillBeMember<MockWebSocketChannel> m_channel; |
| 96 bool m_hasCreatedChannel; | 96 bool m_hasCreatedChannel; |
| 97 }; | 97 }; |
| 98 | 98 |
| 99 class WebSocketTestBase { | 99 class WebSocketTestBase { |
| 100 public: | 100 public: |
| 101 WebSocketTestBase() | 101 WebSocketTestBase() |
| 102 : m_pageHolder(DummyPageHolder::create()) | 102 : m_pageHolder(DummyPageHolder::create()) |
| 103 , m_websocket(WebSocketWithMockChannel::create(&m_pageHolder->document()
)) | 103 , m_websocket(WebSocketWithMockChannel::create(&m_pageHolder->document()
)) |
| 104 , m_channel(m_websocket->channel()) | 104 , m_channel(m_websocket->channel()) |
| 105 , m_executionScope(V8TestingScope::create(v8::Isolate::GetCurrent())) | 105 , m_executionScope(v8::Isolate::GetCurrent()) |
| 106 , m_exceptionState(ExceptionState::ConstructionContext, "property", "int
erface", m_executionScope->scriptState()->context()->Global(), m_executionScope-
>isolate()) | 106 , m_exceptionState(ExceptionState::ConstructionContext, "property", "int
erface", m_executionScope.scriptState()->context()->Global(), m_executionScope.i
solate()) |
| 107 { | 107 { |
| 108 } | 108 } |
| 109 | 109 |
| 110 virtual ~WebSocketTestBase() | 110 virtual ~WebSocketTestBase() |
| 111 { | 111 { |
| 112 if (!m_websocket) | 112 if (!m_websocket) |
| 113 return; | 113 return; |
| 114 // These statements are needed to clear WebSocket::m_channel to | 114 // These statements are needed to clear WebSocket::m_channel to |
| 115 // avoid ASSERTION failure on ~WebSocket. | 115 // avoid ASSERTION failure on ~WebSocket. |
| 116 ASSERT(m_channel); | 116 ASSERT(m_channel); |
| 117 ::testing::Mock::VerifyAndClear(m_channel.get()); | 117 ::testing::Mock::VerifyAndClear(m_channel.get()); |
| 118 EXPECT_CALL(*m_channel, disconnect()).Times(AnyNumber()); | 118 EXPECT_CALL(*m_channel, disconnect()).Times(AnyNumber()); |
| 119 | 119 |
| 120 m_websocket->didClose(0, WebSocketChannelClient::ClosingHandshakeIncompl
ete, 1006, ""); | 120 m_websocket->didClose(0, WebSocketChannelClient::ClosingHandshakeIncompl
ete, 1006, ""); |
| 121 } | 121 } |
| 122 | 122 |
| 123 OwnPtr<DummyPageHolder> m_pageHolder; | 123 OwnPtr<DummyPageHolder> m_pageHolder; |
| 124 RefPtrWillBePersistent<WebSocketWithMockChannel> m_websocket; | 124 RefPtrWillBePersistent<WebSocketWithMockChannel> m_websocket; |
| 125 RefPtrWillBePersistent<MockWebSocketChannel> m_channel; | 125 RefPtrWillBePersistent<MockWebSocketChannel> m_channel; |
| 126 OwnPtr<V8TestingScope> m_executionScope; | 126 V8TestingScope m_executionScope; |
| 127 ExceptionState m_exceptionState; | 127 ExceptionState m_exceptionState; |
| 128 }; | 128 }; |
| 129 | 129 |
| 130 class WebSocketTest : public WebSocketTestBase, public ::testing::Test { | 130 class WebSocketTest : public WebSocketTestBase, public ::testing::Test { |
| 131 public: | 131 public: |
| 132 }; | 132 }; |
| 133 | 133 |
| 134 TEST_F(WebSocketTest, connectToBadURL) | 134 TEST_F(WebSocketTest, connectToBadURL) |
| 135 { | 135 { |
| 136 m_websocket->connect("xxx", Vector<String>(), m_exceptionState); | 136 m_websocket->connect("xxx", Vector<String>(), m_exceptionState); |
| (...skipping 670 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 807 EXPECT_EQ(InvalidAccessError, m_exceptionState.code()); | 807 EXPECT_EQ(InvalidAccessError, m_exceptionState.code()); |
| 808 EXPECT_EQ(String::format("The code must be either 1000, or between 3000 and
4999. %d is neither.", GetParam()), m_exceptionState.message()); | 808 EXPECT_EQ(String::format("The code must be either 1000, or between 3000 and
4999. %d is neither.", GetParam()), m_exceptionState.message()); |
| 809 EXPECT_EQ(WebSocket::CONNECTING, m_websocket->readyState()); | 809 EXPECT_EQ(WebSocket::CONNECTING, m_websocket->readyState()); |
| 810 } | 810 } |
| 811 | 811 |
| 812 INSTANTIATE_TEST_CASE_P(WebSocketInvalidClosingCode, WebSocketInvalidClosingCode
Test, ::testing::Values(0, 1, 998, 999, 1001, 2999, 5000, 9999, 65535)); | 812 INSTANTIATE_TEST_CASE_P(WebSocketInvalidClosingCode, WebSocketInvalidClosingCode
Test, ::testing::Values(0, 1, 998, 999, 1001, 2999, 5000, 9999, 65535)); |
| 813 | 813 |
| 814 } // namespace | 814 } // namespace |
| 815 | 815 |
| 816 } // namespace WebCore | 816 } // namespace WebCore |
| OLD | NEW |