diff options
-rw-r--r-- | chrome/browser/extensions/extension_apitest.cc | 16 | ||||
-rw-r--r-- | chrome/browser/extensions/extension_apitest.h | 6 | ||||
-rw-r--r-- | chrome/browser/extensions/extension_websocket_apitest.cc | 5 | ||||
-rw-r--r-- | chrome/common/extensions/api/test.json | 6 | ||||
-rw-r--r-- | chrome/test/data/extensions/api_test/websocket/test.js | 16 | ||||
-rw-r--r-- | net/data/websocket/echo_wsh.py | 18 | ||||
-rwxr-xr-x | net/tools/testserver/testserver.py | 2 |
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: |