summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/browser/extensions/extension_apitest.cc16
-rw-r--r--chrome/browser/extensions/extension_apitest.h6
-rw-r--r--chrome/browser/extensions/extension_websocket_apitest.cc5
-rw-r--r--chrome/common/extensions/api/test.json6
-rw-r--r--chrome/test/data/extensions/api_test/websocket/test.js16
-rw-r--r--net/data/websocket/echo_wsh.py18
-rwxr-xr-xnet/tools/testserver/testserver.py2
7 files changed, 48 insertions, 21 deletions
diff --git a/chrome/browser/extensions/extension_apitest.cc b/chrome/browser/extensions/extension_apitest.cc
index c149d2b..1a2b50d 100644
--- a/chrome/browser/extensions/extension_apitest.cc
+++ b/chrome/browser/extensions/extension_apitest.cc
@@ -18,8 +18,8 @@
#include "chrome/test/base/ui_test_utils.h"
#include "content/public/browser/notification_registrar.h"
#include "content/public/browser/notification_service.h"
-#include "content/public/test/browser_test_utils.h"
#include "net/base/net_util.h"
+#include "net/test/test_server.h"
namespace {
@@ -103,6 +103,7 @@ void ExtensionApiTest::SetUpInProcessBrowserTestFixture() {
test_config_.reset(new DictionaryValue());
test_config_->SetString(kTestDataDirectory,
net::FilePathToFileURL(test_data_dir_).spec());
+ test_config_->SetInteger(kTestWebSocketPort, 0);
extensions::TestGetConfigFunction::set_test_config_state(
test_config_.get());
}
@@ -293,12 +294,17 @@ bool ExtensionApiTest::StartTestServer() {
}
bool ExtensionApiTest::StartWebSocketServer(const FilePath& root_directory) {
- websocket_server_.reset(new content::TestWebSocketServer());
- int port = websocket_server_->UseRandomPort();
- if (!websocket_server_->Start(root_directory))
+ websocket_server_.reset(new net::TestServer(
+ net::TestServer::TYPE_WS,
+ net::TestServer::kLocalhost,
+ root_directory));
+
+ if (!websocket_server_->Start())
return false;
- test_config_->SetInteger(kTestWebSocketPort, port);
+ test_config_->SetInteger(kTestWebSocketPort,
+ websocket_server_->host_port_pair().port());
+
return true;
}
diff --git a/chrome/browser/extensions/extension_apitest.h b/chrome/browser/extensions/extension_apitest.h
index a923455..de7abb9 100644
--- a/chrome/browser/extensions/extension_apitest.h
+++ b/chrome/browser/extensions/extension_apitest.h
@@ -15,10 +15,6 @@
class FilePath;
-namespace content {
-class TestWebSocketServer;
-}
-
namespace extensions {
class Extension;
}
@@ -184,7 +180,7 @@ class ExtensionApiTest : public ExtensionBrowserTest {
scoped_ptr<DictionaryValue> test_config_;
// Hold the test WebSocket server.
- scoped_ptr<content::TestWebSocketServer> websocket_server_;
+ scoped_ptr<net::TestServer> websocket_server_;
};
// PlatformAppApiTest sets up the command-line flags necessary for platform
diff --git a/chrome/browser/extensions/extension_websocket_apitest.cc b/chrome/browser/extensions/extension_websocket_apitest.cc
index 7017aec..cbe9e73 100644
--- a/chrome/browser/extensions/extension_websocket_apitest.cc
+++ b/chrome/browser/extensions/extension_websocket_apitest.cc
@@ -8,8 +8,7 @@
#include "net/base/mock_host_resolver.h"
IN_PROC_BROWSER_TEST_F(ExtensionApiTest, WebSocket) {
- FilePath websocket_root_dir;
- ASSERT_TRUE(PathService::Get(content::DIR_LAYOUT_TESTS, &websocket_root_dir));
- ASSERT_TRUE(StartWebSocketServer(websocket_root_dir));
+ ASSERT_TRUE(StartWebSocketServer(
+ FilePath(FILE_PATH_LITERAL("net/data/websocket"))));
ASSERT_TRUE(RunExtensionTest("websocket")) << message_;
}
diff --git a/chrome/common/extensions/api/test.json b/chrome/common/extensions/api/test.json
index 3f299f4..17ad531 100644
--- a/chrome/common/extensions/api/test.json
+++ b/chrome/common/extensions/api/test.json
@@ -35,6 +35,12 @@
"testDataDirectory": {
"type": "string",
"description": "file:/// URL for the API test data directory."
+ },
+ "testWebSocketPort": {
+ "type": "integer",
+ "description": "The port on which the test WebSocket server is listening.",
+ "minimum": 0,
+ "maximum": 65535
}
}
}
diff --git a/chrome/test/data/extensions/api_test/websocket/test.js b/chrome/test/data/extensions/api_test/websocket/test.js
index 8041593..2e2adca 100644
--- a/chrome/test/data/extensions/api_test/websocket/test.js
+++ b/chrome/test/data/extensions/api_test/websocket/test.js
@@ -3,8 +3,7 @@
// found in the LICENSE file.
function echoTest(port) {
- var url =
- "ws://localhost:" + port + "/websocket/tests/hybi/workers/resources/echo";
+ var url = "ws://localhost:" + port + "/echo";
var ws = new WebSocket(url);
var MESSAGE_A = "message a";
var MESSAGE_B = "message b";
@@ -34,8 +33,11 @@ function echoTest(port) {
};
}
-chrome.test.runTests([
- chrome.test.getConfig(function(config) {
- echoTest(config.testWebSocketPort);
- })
-]);
+chrome.test.getConfig(function(config) {
+ chrome.test.runTests([
+ function runEchoTest() {
+ echoTest(config.testWebSocketPort);
+ }
+ ]);
+});
+
diff --git a/net/data/websocket/echo_wsh.py b/net/data/websocket/echo_wsh.py
new file mode 100644
index 0000000..86ab63c
--- /dev/null
+++ b/net/data/websocket/echo_wsh.py
@@ -0,0 +1,18 @@
+# Copyright (c) 2012 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.
+
+def web_socket_do_extra_handshake(request):
+ pass # Always accept.
+
+
+def web_socket_transfer_data(request):
+ while True:
+ line = request.ws_stream.receive_message()
+ if line is None:
+ return
+ if isinstance(line, unicode):
+ request.ws_stream.send_message(line, binary=False)
+ else:
+ request.ws_stream.send_message(line, binary=True)
+
diff --git a/net/tools/testserver/testserver.py b/net/tools/testserver/testserver.py
index 55bca1e..4870408 100755
--- a/net/tools/testserver/testserver.py
+++ b/net/tools/testserver/testserver.py
@@ -2252,7 +2252,7 @@ def main(options, args):
# TODO(toyoshim): Remove following os.chdir. Currently this operation
# is required to work correctly. It should be fixed from pywebsocket side.
os.chdir(MakeDataDir())
- server = WebSocketServer(WebSocketOptions(host, port, MakeDataDir()))
+ server = WebSocketServer(WebSocketOptions(host, port, '.'))
print 'WebSocket server started on %s:%d...' % (host, server.server_port)
server_data['port'] = server.server_port
elif options.server_type == SERVER_SYNC: