summaryrefslogtreecommitdiffstats
path: root/net/websockets/websocket_unittest.cc
diff options
context:
space:
mode:
authorukai@chromium.org <ukai@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-21 06:27:36 +0000
committerukai@chromium.org <ukai@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-21 06:27:36 +0000
commit6d9e0c19be4061bb99248cddb09d9ada103f4919 (patch)
tree93ddac4e86b7f5f4e9846ab3c1d95575ca9039c4 /net/websockets/websocket_unittest.cc
parent412e3df9c5ed654cf30929896a4c9d7598a8c28c (diff)
downloadchromium_src-6d9e0c19be4061bb99248cddb09d9ada103f4919.zip
chromium_src-6d9e0c19be4061bb99248cddb09d9ada103f4919.tar.gz
chromium_src-6d9e0c19be4061bb99248cddb09d9ada103f4919.tar.bz2
Revert r29614 "WebSocket protocol handler for live experiment."
It caused compile error on Modules XP and Vista. TBR=tkent BUG=none TEST=none Review URL: http://codereview.chromium.org/312001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@29619 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/websockets/websocket_unittest.cc')
-rw-r--r--net/websockets/websocket_unittest.cc214
1 files changed, 0 insertions, 214 deletions
diff --git a/net/websockets/websocket_unittest.cc b/net/websockets/websocket_unittest.cc
deleted file mode 100644
index d0e3fd9..0000000
--- a/net/websockets/websocket_unittest.cc
+++ /dev/null
@@ -1,214 +0,0 @@
-// Copyright (c) 2009 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include <string>
-#include <vector>
-
-#include "base/task.h"
-#include "net/base/completion_callback.h"
-#include "net/base/mock_host_resolver.h"
-#include "net/base/test_completion_callback.h"
-#include "net/socket/socket_test_util.h"
-#include "net/url_request/url_request_unittest.h"
-#include "net/websockets/websocket.h"
-#include "testing/gtest/include/gtest/gtest.h"
-#include "testing/platform_test.h"
-
-struct WebSocketEvent {
- enum EventType {
- EVENT_OPEN, EVENT_MESSAGE, EVENT_CLOSE,
- };
-
- WebSocketEvent(EventType type, net::WebSocket* websocket,
- const std::string& websocket_msg)
- : event_type(type), socket(websocket), msg(websocket_msg) {}
-
- EventType event_type;
- net::WebSocket* socket;
- std::string msg;
-};
-
-class WebSocketEventRecorder : public net::WebSocket::Delegate {
- public:
- explicit WebSocketEventRecorder(net::CompletionCallback* callback)
- : onopen_(NULL),
- onmessage_(NULL),
- onclose_(NULL),
- callback_(callback) {}
- virtual ~WebSocketEventRecorder() {
- delete onopen_;
- delete onmessage_;
- delete onclose_;
- }
-
- void SetOnOpen(Callback1<WebSocketEvent*>::Type* callback) {
- onopen_ = callback;
- }
- void SetOnMessage(Callback1<WebSocketEvent*>::Type* callback) {
- onmessage_ = callback;
- }
- void SetOnClose(Callback1<WebSocketEvent*>::Type* callback) {
- onclose_ = callback;
- }
-
- virtual void OnOpen(net::WebSocket* socket) {
- events_.push_back(
- WebSocketEvent(WebSocketEvent::EVENT_OPEN, socket, std::string()));
- if (onopen_)
- onopen_->Run(&events_.back());
- }
-
- virtual void OnMessage(net::WebSocket* socket, const std::string& msg) {
- events_.push_back(
- WebSocketEvent(WebSocketEvent::EVENT_MESSAGE, socket, msg));
- if (onmessage_)
- onmessage_->Run(&events_.back());
- }
- virtual void OnClose(net::WebSocket* socket) {
- events_.push_back(
- WebSocketEvent(WebSocketEvent::EVENT_CLOSE, socket, std::string()));
- if (onclose_)
- onclose_->Run(&events_.back());
- if (callback_)
- callback_->Run(net::OK);
- }
-
- void DoClose(WebSocketEvent* event) {
- event->socket->Close();
- }
-
- const std::vector<WebSocketEvent>& GetSeenEvents() const {
- return events_;
- }
-
- private:
- std::vector<WebSocketEvent> events_;
- Callback1<WebSocketEvent*>::Type* onopen_;
- Callback1<WebSocketEvent*>::Type* onmessage_;
- Callback1<WebSocketEvent*>::Type* onclose_;
- net::CompletionCallback* callback_;
-
- DISALLOW_COPY_AND_ASSIGN(WebSocketEventRecorder);
-};
-
-class WebSocketTest : public PlatformTest {
-};
-
-TEST_F(WebSocketTest, Connect) {
- net::MockClientSocketFactory mock_socket_factory;
- net::MockRead data_reads[] = {
- net::MockRead("HTTP/1.1 101 Web Socket Protocol\r\n"
- "Upgrade: WebSocket\r\n"
- "Connection: Upgrade\r\n"
- "WebSocket-Origin: http://example.com\r\n"
- "WebSocket-Location: ws://example.com/demo\r\n"
- "WebSocket-Protocol: sample\r\n"
- "\r\n"),
- // Server doesn't close the connection after handshake.
- net::MockRead(true, net::ERR_IO_PENDING),
- };
- net::MockWrite data_writes[] = {
- net::MockWrite("GET /demo HTTP/1.1\r\n"
- "Upgrade: WebSocket\r\n"
- "Connection: Upgrade\r\n"
- "Host: example.com\r\n"
- "Origin: http://example.com\r\n"
- "WebSocket-Protocol: sample\r\n"
- "\r\n"),
- };
- net::StaticMockSocket data(data_reads, data_writes);
- mock_socket_factory.AddMockSocket(&data);
-
- net::WebSocket::Request* request(
- new net::WebSocket::Request(GURL("ws://example.com/demo"),
- "sample",
- "http://example.com",
- "ws://example.com/demo",
- new TestURLRequestContext()));
- request->SetHostResolver(new net::MockHostResolver());
- request->SetClientSocketFactory(&mock_socket_factory);
-
- TestCompletionCallback callback;
-
- scoped_ptr<WebSocketEventRecorder> delegate(
- new WebSocketEventRecorder(&callback));
- delegate->SetOnOpen(NewCallback(delegate.get(),
- &WebSocketEventRecorder::DoClose));
-
- scoped_refptr<net::WebSocket> websocket(
- new net::WebSocket(request, delegate.get()));
-
- EXPECT_EQ(net::WebSocket::INITIALIZED, websocket->ready_state());
- websocket->Connect();
-
- callback.WaitForResult();
-
- const std::vector<WebSocketEvent>& events = delegate->GetSeenEvents();
- EXPECT_EQ(2U, events.size());
-
- EXPECT_EQ(WebSocketEvent::EVENT_OPEN, events[0].event_type);
- EXPECT_EQ(WebSocketEvent::EVENT_CLOSE, events[1].event_type);
-}
-
-TEST_F(WebSocketTest, ServerSentData) {
- net::MockClientSocketFactory mock_socket_factory;
- static const char kMessage[] = "Hello";
- static const char kFrame[] = "\x00Hello\xff";
- static const int kFrameLen = sizeof(kFrame) - 1;
- net::MockRead data_reads[] = {
- net::MockRead("HTTP/1.1 101 Web Socket Protocol\r\n"
- "Upgrade: WebSocket\r\n"
- "Connection: Upgrade\r\n"
- "WebSocket-Origin: http://example.com\r\n"
- "WebSocket-Location: ws://example.com/demo\r\n"
- "WebSocket-Protocol: sample\r\n"
- "\r\n"),
- net::MockRead(true, kFrame, kFrameLen),
- // Server doesn't close the connection after handshake.
- net::MockRead(true, net::ERR_IO_PENDING),
- };
- net::MockWrite data_writes[] = {
- net::MockWrite("GET /demo HTTP/1.1\r\n"
- "Upgrade: WebSocket\r\n"
- "Connection: Upgrade\r\n"
- "Host: example.com\r\n"
- "Origin: http://example.com\r\n"
- "WebSocket-Protocol: sample\r\n"
- "\r\n"),
- };
- net::StaticMockSocket data(data_reads, data_writes);
- mock_socket_factory.AddMockSocket(&data);
-
- net::WebSocket::Request* request(
- new net::WebSocket::Request(GURL("ws://example.com/demo"),
- "sample",
- "http://example.com",
- "ws://example.com/demo",
- new TestURLRequestContext()));
- request->SetHostResolver(new net::MockHostResolver());
- request->SetClientSocketFactory(&mock_socket_factory);
-
- TestCompletionCallback callback;
-
- scoped_ptr<WebSocketEventRecorder> delegate(
- new WebSocketEventRecorder(&callback));
- delegate->SetOnMessage(NewCallback(delegate.get(),
- &WebSocketEventRecorder::DoClose));
-
- scoped_refptr<net::WebSocket> websocket(
- new net::WebSocket(request, delegate.get()));
-
- EXPECT_EQ(net::WebSocket::INITIALIZED, websocket->ready_state());
- websocket->Connect();
-
- callback.WaitForResult();
-
- const std::vector<WebSocketEvent>& events = delegate->GetSeenEvents();
- EXPECT_EQ(3U, events.size());
-
- EXPECT_EQ(WebSocketEvent::EVENT_OPEN, events[0].event_type);
- EXPECT_EQ(WebSocketEvent::EVENT_MESSAGE, events[1].event_type);
- EXPECT_EQ(kMessage, events[1].msg);
- EXPECT_EQ(WebSocketEvent::EVENT_CLOSE, events[2].event_type);
-}