예제 #1
0
    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)
예제 #5
0
    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)