| // 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. |
| |
| #ifndef NET_TEST_REMOTE_TEST_SERVER_H_ |
| #define NET_TEST_REMOTE_TEST_SERVER_H_ |
| |
| #include <string> |
| |
| #include "net/test/base_test_server.h" |
| |
| namespace net { |
| |
| class SpawnerCommunicator; |
| |
| // The RemoteTestServer runs an external Python-based test server in another |
| // machine that is different from the machine in which RemoteTestServer runs. |
| class RemoteTestServer : public BaseTestServer { |
| public: |
| // Initialize a TestServer listening on a specific host (IP or hostname). |
| // |document_root| must be a relative path under the root tree. |
| RemoteTestServer(Type type, |
| const std::string& host, |
| const FilePath& document_root); |
| |
| // Initialize a TestServer with a specific set of SSLOptions. |
| // |document_root| must be a relative path under the root tree. |
| RemoteTestServer(Type type, |
| const SSLOptions& ssl_options, |
| const FilePath& document_root); |
| |
| virtual ~RemoteTestServer(); |
| |
| // Starts the Python test server on the host, instead of on the device. |
| bool Start() WARN_UNUSED_RESULT; |
| |
| // Stops the Python test server that is running on the host machine. |
| bool Stop(); |
| |
| // Returns the actual path of document root for the test cases. This function |
| // should be called by test cases to retrieve the actual document root path |
| // on the Android device, otherwise document_root() function is used to get |
| // the document root. |
| FilePath GetDocumentRoot() const; |
| |
| private: |
| bool Init(const FilePath& document_root); |
| |
| // The local port used to communicate with the TestServer spawner. This is |
| // used to control the startup and shutdown of the Python TestServer running |
| // on the remote machine. On Android, this port will be redirected to the |
| // same port on the host machine. |
| int spawner_server_port_; |
| |
| // Helper to start and stop instances of the Python test server that runs on |
| // the host machine. |
| scoped_ptr<SpawnerCommunicator> spawner_communicator_; |
| |
| DISALLOW_COPY_AND_ASSIGN(RemoteTestServer); |
| }; |
| |
| } // namespace net |
| |
| #endif // NET_TEST_REMOTE_TEST_SERVER_H_ |
| |