OLD | NEW |
1 # Copyright (C) 2010 Google Inc. All rights reserved. | 1 # Copyright (C) 2010 Google Inc. All rights reserved. |
2 # | 2 # |
3 # Redistribution and use in source and binary forms, with or without | 3 # Redistribution and use in source and binary forms, with or without |
4 # modification, are permitted provided that the following conditions are | 4 # modification, are permitted provided that the following conditions are |
5 # met: | 5 # met: |
6 # | 6 # |
7 # * Redistributions of source code must retain the above copyright | 7 # * Redistributions of source code must retain the above copyright |
8 # notice, this list of conditions and the following disclaimer. | 8 # notice, this list of conditions and the following disclaimer. |
9 # * Redistributions in binary form must reproduce the above | 9 # * Redistributions in binary form must reproduce the above |
10 # copyright notice, this list of conditions and the following disclaimer | 10 # copyright notice, this list of conditions and the following disclaimer |
(...skipping 22 matching lines...) Expand all Loading... |
33 from webkitpy.layout_tests.port import Port, Driver, DriverOutput | 33 from webkitpy.layout_tests.port import Port, Driver, DriverOutput |
34 from webkitpy.layout_tests.port.server_process_mock import MockServerProcess | 34 from webkitpy.layout_tests.port.server_process_mock import MockServerProcess |
35 | 35 |
36 # FIXME: remove the dependency on TestWebKitPort | 36 # FIXME: remove the dependency on TestWebKitPort |
37 from webkitpy.layout_tests.port.port_testcase import TestWebKitPort | 37 from webkitpy.layout_tests.port.port_testcase import TestWebKitPort |
38 | 38 |
39 from webkitpy.tool.mocktool import MockOptions | 39 from webkitpy.tool.mocktool import MockOptions |
40 | 40 |
41 | 41 |
42 class DriverTest(unittest.TestCase): | 42 class DriverTest(unittest.TestCase): |
| 43 |
43 def make_port(self): | 44 def make_port(self): |
44 port = Port(MockSystemHost(), 'test', MockOptions(configuration='Release
')) | 45 port = Port(MockSystemHost(), 'test', MockOptions(configuration='Release
')) |
45 port._config.build_directory = lambda configuration: '/mock-checkout/out
/' + configuration | 46 port._config.build_directory = lambda configuration: '/mock-checkout/out
/' + configuration |
46 return port | 47 return port |
47 | 48 |
48 def _assert_wrapper(self, wrapper_string, expected_wrapper): | 49 def _assert_wrapper(self, wrapper_string, expected_wrapper): |
49 wrapper = Driver(self.make_port(), None, pixel_tests=False)._command_wra
pper(wrapper_string) | 50 wrapper = Driver(self.make_port(), None, pixel_tests=False)._command_wra
pper(wrapper_string) |
50 self.assertEqual(wrapper, expected_wrapper) | 51 self.assertEqual(wrapper, expected_wrapper) |
51 | 52 |
52 def test_command_wrapper(self): | 53 def test_command_wrapper(self): |
53 self._assert_wrapper(None, []) | 54 self._assert_wrapper(None, []) |
54 self._assert_wrapper("valgrind", ["valgrind"]) | 55 self._assert_wrapper('valgrind', ['valgrind']) |
55 | 56 |
56 # Validate that shlex works as expected. | 57 # Validate that shlex works as expected. |
57 command_with_spaces = "valgrind --smc-check=\"check with spaces!\" --foo
" | 58 command_with_spaces = 'valgrind --smc-check=\'check with spaces!\' --foo
' |
58 expected_parse = ["valgrind", "--smc-check=check with spaces!", "--foo"] | 59 expected_parse = ['valgrind', '--smc-check=check with spaces!', '--foo'] |
59 self._assert_wrapper(command_with_spaces, expected_parse) | 60 self._assert_wrapper(command_with_spaces, expected_parse) |
60 | 61 |
61 def test_test_to_uri(self): | 62 def test_test_to_uri(self): |
62 port = self.make_port() | 63 port = self.make_port() |
63 driver = Driver(port, None, pixel_tests=False) | 64 driver = Driver(port, None, pixel_tests=False) |
64 self.assertEqual(driver.test_to_uri('foo/bar.html'), 'file://%s/foo/bar.
html' % port.layout_tests_dir()) | 65 self.assertEqual(driver.test_to_uri('foo/bar.html'), 'file://%s/foo/bar.
html' % port.layout_tests_dir()) |
65 self.assertEqual(driver.test_to_uri('http/tests/foo.html'), 'http://127.
0.0.1:8000/foo.html') | 66 self.assertEqual(driver.test_to_uri('http/tests/foo.html'), 'http://127.
0.0.1:8000/foo.html') |
66 self.assertEqual(driver.test_to_uri('http/tests/https/bar.html'), 'https
://127.0.0.1:8443/https/bar.html') | 67 self.assertEqual(driver.test_to_uri('http/tests/https/bar.html'), 'https
://127.0.0.1:8443/https/bar.html') |
67 | 68 |
68 def test_uri_to_test(self): | 69 def test_uri_to_test(self): |
69 port = self.make_port() | 70 port = self.make_port() |
70 driver = Driver(port, None, pixel_tests=False) | 71 driver = Driver(port, None, pixel_tests=False) |
71 self.assertEqual(driver.uri_to_test('file://%s/foo/bar.html' % port.layo
ut_tests_dir()), 'foo/bar.html') | 72 self.assertEqual(driver.uri_to_test('file://%s/foo/bar.html' % port.layo
ut_tests_dir()), 'foo/bar.html') |
72 self.assertEqual(driver.uri_to_test('http://127.0.0.1:8000/foo.html'), '
http/tests/foo.html') | 73 self.assertEqual(driver.uri_to_test('http://127.0.0.1:8000/foo.html'), '
http/tests/foo.html') |
73 self.assertEqual(driver.uri_to_test('https://127.0.0.1:8443/https/bar.ht
ml'), 'http/tests/https/bar.html') | 74 self.assertEqual(driver.uri_to_test('https://127.0.0.1:8443/https/bar.ht
ml'), 'http/tests/https/bar.html') |
74 | 75 |
75 def test_read_block(self): | 76 def test_read_block(self): |
76 port = TestWebKitPort() | 77 port = TestWebKitPort() |
77 driver = Driver(port, 0, pixel_tests=False) | 78 driver = Driver(port, 0, pixel_tests=False) |
78 driver._server_process = MockServerProcess(lines=[ | 79 driver._server_process = MockServerProcess(lines=[ |
79 'ActualHash: foobar', | 80 'ActualHash: foobar', |
80 'Content-Type: my_type', | 81 'Content-Type: my_type', |
81 'Content-Transfer-Encoding: none', | 82 'Content-Transfer-Encoding: none', |
82 "#EOF", | 83 '#EOF', |
83 ]) | 84 ]) |
84 content_block = driver._read_block(0) | 85 content_block = driver._read_block(0) |
85 self.assertEqual(content_block.content, '') | 86 self.assertEqual(content_block.content, '') |
86 self.assertEqual(content_block.content_type, 'my_type') | 87 self.assertEqual(content_block.content_type, 'my_type') |
87 self.assertEqual(content_block.encoding, 'none') | 88 self.assertEqual(content_block.encoding, 'none') |
88 self.assertEqual(content_block.content_hash, 'foobar') | 89 self.assertEqual(content_block.content_hash, 'foobar') |
89 driver._server_process = None | 90 driver._server_process = None |
90 | 91 |
91 def test_read_binary_block(self): | 92 def test_read_binary_block(self): |
92 port = TestWebKitPort() | 93 port = TestWebKitPort() |
93 driver = Driver(port, 0, pixel_tests=True) | 94 driver = Driver(port, 0, pixel_tests=True) |
94 driver._server_process = MockServerProcess(lines=[ | 95 driver._server_process = MockServerProcess(lines=[ |
95 'ActualHash: actual', | 96 'ActualHash: actual', |
96 'ExpectedHash: expected', | 97 'ExpectedHash: expected', |
97 'Content-Type: image/png', | 98 'Content-Type: image/png', |
98 'Content-Length: 9', | 99 'Content-Length: 9', |
99 "12345678", | 100 '12345678', |
100 "#EOF", | 101 '#EOF', |
101 ]) | 102 ]) |
102 content_block = driver._read_block(0) | 103 content_block = driver._read_block(0) |
103 self.assertEqual(content_block.content_type, 'image/png') | 104 self.assertEqual(content_block.content_type, 'image/png') |
104 self.assertEqual(content_block.content_hash, 'actual') | 105 self.assertEqual(content_block.content_hash, 'actual') |
105 self.assertEqual(content_block.content, '12345678\n') | 106 self.assertEqual(content_block.content, '12345678\n') |
106 self.assertEqual(content_block.decoded_content, '12345678\n') | 107 self.assertEqual(content_block.decoded_content, '12345678\n') |
107 driver._server_process = None | 108 driver._server_process = None |
108 | 109 |
109 def test_read_base64_block(self): | 110 def test_read_base64_block(self): |
110 port = TestWebKitPort() | 111 port = TestWebKitPort() |
(...skipping 10 matching lines...) Expand all Loading... |
121 self.assertEqual(content_block.content_type, 'image/png') | 122 self.assertEqual(content_block.content_type, 'image/png') |
122 self.assertEqual(content_block.content_hash, 'actual') | 123 self.assertEqual(content_block.content_hash, 'actual') |
123 self.assertEqual(content_block.encoding, 'base64') | 124 self.assertEqual(content_block.encoding, 'base64') |
124 self.assertEqual(content_block.content, 'MTIzNDU2NzgK') | 125 self.assertEqual(content_block.content, 'MTIzNDU2NzgK') |
125 self.assertEqual(content_block.decoded_content, '12345678\n') | 126 self.assertEqual(content_block.decoded_content, '12345678\n') |
126 | 127 |
127 def test_no_timeout(self): | 128 def test_no_timeout(self): |
128 port = TestWebKitPort() | 129 port = TestWebKitPort() |
129 port._config.build_directory = lambda configuration: '/mock-checkout/out
/' + configuration | 130 port._config.build_directory = lambda configuration: '/mock-checkout/out
/' + configuration |
130 driver = Driver(port, 0, pixel_tests=True, no_timeout=True) | 131 driver = Driver(port, 0, pixel_tests=True, no_timeout=True) |
131 self.assertEqual(driver.cmd_line(True, []), ['/mock-checkout/out/Release
/content_shell', '--no-timeout', '--dump-render-tree', '-']) | 132 self.assertEqual( |
| 133 driver.cmd_line( |
| 134 True, []), [ |
| 135 '/mock-checkout/out/Release/content_shell', '--no-timeout', '--d
ump-render-tree', '-']) |
132 | 136 |
133 def test_check_for_driver_crash(self): | 137 def test_check_for_driver_crash(self): |
134 port = TestWebKitPort() | 138 port = TestWebKitPort() |
135 driver = Driver(port, 0, pixel_tests=True) | 139 driver = Driver(port, 0, pixel_tests=True) |
136 | 140 |
137 class FakeServerProcess(object): | 141 class FakeServerProcess(object): |
| 142 |
138 def __init__(self, crashed): | 143 def __init__(self, crashed): |
139 self.crashed = crashed | 144 self.crashed = crashed |
140 | 145 |
141 def pid(self): | 146 def pid(self): |
142 return 1234 | 147 return 1234 |
143 | 148 |
144 def name(self): | 149 def name(self): |
145 return 'FakeServerProcess' | 150 return 'FakeServerProcess' |
146 | 151 |
147 def has_crashed(self): | 152 def has_crashed(self): |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
234 last_tmpdir = port._filesystem.last_tmpdir | 239 last_tmpdir = port._filesystem.last_tmpdir |
235 driver._start(True, []) | 240 driver._start(True, []) |
236 self.assertFalse(port._filesystem.isdir(last_tmpdir)) | 241 self.assertFalse(port._filesystem.isdir(last_tmpdir)) |
237 | 242 |
238 def test_start_actually_starts(self): | 243 def test_start_actually_starts(self): |
239 port = TestWebKitPort() | 244 port = TestWebKitPort() |
240 port._server_process_constructor = MockServerProcess | 245 port._server_process_constructor = MockServerProcess |
241 driver = Driver(port, 0, pixel_tests=True) | 246 driver = Driver(port, 0, pixel_tests=True) |
242 driver.start(True, [], None) | 247 driver.start(True, [], None) |
243 self.assertTrue(driver._server_process.started) | 248 self.assertTrue(driver._server_process.started) |
OLD | NEW |