def test_UseNewDeviceProxyPort(self): chrome_proxy = chrome_proxy_utils.ChromeProxySession(1) expected_flags = [ '--ignore-certificate-errors-spki-list=' 'PhrPvGIaAMmd29hj8BCZOq096yj7uMpRNHpn5PDxI6I=', '--proxy-server=socks5://localhost:1' ] self.assertEquals(chrome_proxy.device_proxy_port, 1) self.assertListEqual(chrome_proxy.GetFlags(), expected_flags)
def test_Stop(self, ts_proxy_mock, wpr_mock, forwarder_mock): chrome_proxy = chrome_proxy_utils.ChromeProxySession(4) device = _DeviceUtilsMock('01234') chrome_proxy.wpr_record_mode = True chrome_proxy._wpr_server._archive_path = 'abc' 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()
def test_SetWPRRecordMode(self): chrome_proxy = chrome_proxy_utils.ChromeProxySession(4) chrome_proxy.wpr_record_mode = True self.assertTrue(chrome_proxy._wpr_server.record_mode) self.assertTrue(chrome_proxy.wpr_record_mode) self.assertFalse(chrome_proxy.wpr_replay_mode) chrome_proxy.wpr_record_mode = False self.assertFalse(chrome_proxy._wpr_server.record_mode) self.assertFalse(chrome_proxy.wpr_record_mode) self.assertTrue(chrome_proxy.wpr_replay_mode)
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_Start(self, port_mock, traffic_setting_mock, outboundport_mock, start_server_mock, wpr_mock, forwarder_mock): chrome_proxy = chrome_proxy_utils.ChromeProxySession(4) chrome_proxy._wpr_server._host_http_port = 1 chrome_proxy._wpr_server._host_https_port = 2 port_mock.return_value = 3 device = _DeviceUtilsMock('01234') chrome_proxy.Start(device, 'abc') forwarder_mock.assert_called_once_with([(4, 3)], device) wpr_mock.assert_called_once_with('abc') start_server_mock.assert_called_once() outboundport_mock.assert_called_once_with(http_port=1, https_port=2) traffic_setting_mock.assert_called_once_with(download_bandwidth_kbps=72000, round_trip_latency_ms=100, upload_bandwidth_kbps=72000) port_mock.assert_called_once()
def test_SetWPRArchivePath(self): chrome_proxy = chrome_proxy_utils.ChromeProxySession(4) chrome_proxy._wpr_server._archive_path = 'abc' self.assertEquals(chrome_proxy.wpr_archive_path, 'abc')
import os import subprocess import sys import time chrome_root = os.path.join(os.path.dirname(__file__), '../../..') sys.path.insert(0, os.path.join(chrome_root, 'build/android')) # Note that catapult/devil appears to require python2. sys.path.insert(0, os.path.join(chrome_root, 'third_party/catapult/devil')) from devil.android import device_utils import pylib.utils.chrome_proxy_utils as chrome_proxy_utils parser = argparse.ArgumentParser() parser.add_argument('--device', required=True) parser.add_argument('--replay-file', required=True) args = parser.parse_args() session = chrome_proxy_utils.ChromeProxySession() session.wpr_record_mode = False session.Start(device_utils.DeviceUtils(args.device), args.replay_file) print('Use these chrome flags:') print(' '.join(session.GetFlags())) print('Replaying ', args.replay_file) # When this script exits, replaying stops. Wait for one hour. print('Press Ctrl+C to quit') time.sleep(3600)