def StartServer(self, wpr_archive_path): """Starts a webpagereplay_go_server instance.""" if wpr_archive_path == self._archive_path and self._server: # Reuse existing webpagereplay_go_server instance. return if self._server: self.StopServer() replay_options = [] if self._record_mode: replay_options.append('--record') ports = {} if not self._server: self._server = webpagereplay_go_server.ReplayServer( wpr_archive_path, PROXY_HOST_IP, http_port=self._host_http_port, https_port=self._host_https_port, replay_options=replay_options) self._archive_path = wpr_archive_path ports = self._server.StartServer() self._host_http_port = ports['http'] self._host_https_port = ports['https']
def test_StartSever_reuseServer(self, start_server_mock): wpr_server = chrome_proxy_utils.WPRServer() wpr_server._server = webpagereplay_go_server.ReplayServer( os.path.abspath(__file__), chrome_proxy_utils.PROXY_HOST_IP, http_port=0, https_port=0, replay_options=[]) wpr_server._archive_path = os.path.abspath(__file__) wpr_server.StartServer(os.path.abspath(__file__)) start_server_mock.assert_not_called()
def test_Stop_WithProperties(self, ts_proxy_mock, wpr_mock, forwarder_mock): chrome_proxy = chrome_proxy_utils.ChromeProxySession(4) chrome_proxy._wpr_server._server = webpagereplay_go_server.ReplayServer( os.path.abspath(__file__), chrome_proxy_utils.PROXY_HOST_IP, 0, 0, []) chrome_proxy._wpr_server._archive_path = os.path.abspath(__file__) device = _DeviceUtilsMock('01234') chrome_proxy.wpr_record_mode = True chrome_proxy.Stop(device) forwarder_mock.assert_called_once_with(4, device) wpr_mock.assert_called_once_with() ts_proxy_mock.assert_called_once_with() self.assertFalse(chrome_proxy.wpr_replay_mode) self.assertEquals(chrome_proxy.wpr_archive_path, os.path.abspath(__file__))
def test_StopServer(self, stop_server_mock): wpr_server = chrome_proxy_utils.WPRServer() wpr_server._server = webpagereplay_go_server.ReplayServer( os.path.abspath(__file__), chrome_proxy_utils.PROXY_HOST_IP, http_port=0, https_port=0, replay_options=[]) wpr_server.StopServer() stop_server_mock.assert_called_once() self.assertFalse(wpr_server._server) self.assertFalse(wpr_server._archive_path) self.assertFalse(wpr_server.http_port) self.assertFalse(wpr_server.https_port)
def __init__(self, archive_path, replay_host, http_port, https_port, replay_options): """Initialize ReplayServer. Args: archive_path: a path to a specific WPR archive (required). replay_host: the hostname to serve traffic. http_port: an integer port on which to serve HTTP traffic. May be zero to let the OS choose an available port. https_port: an integer port on which to serve HTTPS traffic. May be zero to let the OS choose an available port. replay_options: an iterable of option strings to forward to replay.py """ if binary_manager.NeedsInit(): binary_manager.InitDependencyManager(None) self._wpr_server = webpagereplay_go_server.ReplayServer( archive_path, replay_host, http_port, https_port, replay_options, binary_manager.FetchPath)