| # Copyright 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. |
| |
| import sys |
| import unittest |
| |
| from telemetry.internal.util import webpagereplay |
| |
| |
| # pylint: disable=protected-access |
| class CreateCommandTest(unittest.TestCase): |
| def testHasDnsGivesDnsPort(self): |
| expected_cmd_line = [ |
| sys.executable, 'replay.py', '--host=127.0.0.1', |
| '--port=2', '--ssl_port=1', '--dns_port=0', |
| '--use_closest_match', '--log_level=warning', '--extra_arg', 'foo.wpr'] |
| cmd_line = webpagereplay.ReplayServer._GetCommandLine( |
| 'replay.py', '127.0.0.1', 2, 1, 0, ['--extra_arg'], 'foo.wpr') |
| self.assertEqual(expected_cmd_line, cmd_line) |
| |
| def testNoDnsGivesNoDnsForwarding(self): |
| expected_cmd_line = [ |
| sys.executable, 'replay.py', '--host=127.0.0.1', |
| '--port=8080', '--ssl_port=8443', '--no-dns_forwarding', |
| '--use_closest_match', '--log_level=warning', 'bar.wpr'] |
| cmd_line = webpagereplay.ReplayServer._GetCommandLine( |
| 'replay.py', '127.0.0.1', 8080, 8443, None, [], 'bar.wpr') |
| self.assertEqual(expected_cmd_line, cmd_line) |
| |
| |
| # pylint: disable=protected-access |
| class ParseLogFilePortsTest(unittest.TestCase): |
| def testEmptyLinesGivesEmptyDict(self): |
| log_lines = iter([]) |
| self.assertEqual( |
| {}, |
| webpagereplay.ReplayServer._ParseLogFilePorts(log_lines)) |
| |
| def testSingleMatchGivesSingleElementDict(self): |
| log_lines = iter([ |
| 'extra stuff', |
| '2014-09-27 17:04:27,11 WARNING HTTP server started on 127.0.0.1:5167', |
| 'extra stuff', |
| ]) |
| self.assertEqual( |
| {'http': 5167}, |
| webpagereplay.ReplayServer._ParseLogFilePorts(log_lines)) |
| |
| def testUnknownProtocolSkipped(self): |
| log_lines = iter([ |
| '2014-09-27 17:04:27,11 WARNING FOO server started on 127.0.0.1:1111', |
| '2014-09-27 17:04:27,12 WARNING HTTP server started on 127.0.0.1:5167', |
| ]) |
| self.assertEqual( |
| {'http': 5167}, |
| webpagereplay.ReplayServer._ParseLogFilePorts(log_lines)) |
| |
| def testTypicalLogLinesGiveFullDict(self): |
| log_lines = iter([ |
| 'extra', |
| '2014-09-27 17:04:27,11 WARNING DNS server started on 127.0.0.1:2345', |
| '2014-09-27 17:04:27,12 WARNING HTTP server started on 127.0.0.1:3456', |
| '2014-09-27 17:04:27,13 WARNING HTTPS server started on 127.0.0.1:4567', |
| ]) |
| self.assertEqual( |
| {'dns': 2345, 'http': 3456, 'https': 4567}, |
| webpagereplay.ReplayServer._ParseLogFilePorts(log_lines)) |