diff options
author | Ben Murdoch <benm@google.com> | 2010-10-22 13:02:20 +0100 |
---|---|---|
committer | Ben Murdoch <benm@google.com> | 2010-10-26 15:21:41 +0100 |
commit | a94275402997c11dd2e778633dacf4b7e630a35d (patch) | |
tree | e66f56c67e3b01f22c9c23cd932271ee9ac558ed /WebKitTools/Scripts/webkitpy/layout_tests/port/chromium_unittest.py | |
parent | 09e26c78506587b3f5d930d7bc72a23287ffbec0 (diff) | |
download | external_webkit-a94275402997c11dd2e778633dacf4b7e630a35d.zip external_webkit-a94275402997c11dd2e778633dacf4b7e630a35d.tar.gz external_webkit-a94275402997c11dd2e778633dacf4b7e630a35d.tar.bz2 |
Merge WebKit at r70209: Initial merge by Git
Change-Id: Id23a68efa36e9d1126bcce0b137872db00892c8e
Diffstat (limited to 'WebKitTools/Scripts/webkitpy/layout_tests/port/chromium_unittest.py')
-rw-r--r-- | WebKitTools/Scripts/webkitpy/layout_tests/port/chromium_unittest.py | 91 |
1 files changed, 58 insertions, 33 deletions
diff --git a/WebKitTools/Scripts/webkitpy/layout_tests/port/chromium_unittest.py b/WebKitTools/Scripts/webkitpy/layout_tests/port/chromium_unittest.py index a4a9ea6..cb45430 100644 --- a/WebKitTools/Scripts/webkitpy/layout_tests/port/chromium_unittest.py +++ b/WebKitTools/Scripts/webkitpy/layout_tests/port/chromium_unittest.py @@ -26,24 +26,22 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -import chromium -import chromium_linux -import chromium_mac -import chromium_win +import os import unittest import StringIO -import os +from webkitpy.tool import mocktool from webkitpy.thirdparty.mock import Mock +import chromium +import chromium_linux +import chromium_mac +import chromium_win class ChromiumDriverTest(unittest.TestCase): def setUp(self): mock_port = Mock() - # FIXME: The Driver should not be grabbing at port._options! - mock_port._options = Mock() - mock_port._options.wrapper = "" self.driver = chromium.ChromiumDriver(mock_port, image_path=None, options=None) def test_test_shell_command(self): @@ -106,25 +104,19 @@ class ChromiumPortTest(unittest.TestCase): return 'default' def test_path_to_image_diff(self): - class MockOptions: - def __init__(self): - self.use_drt = True - - port = ChromiumPortTest.TestLinuxPort(options=MockOptions()) + mock_options = mocktool.MockOptions(use_drt=True) + port = ChromiumPortTest.TestLinuxPort(options=mock_options) self.assertTrue(port._path_to_image_diff().endswith( '/out/default/ImageDiff'), msg=port._path_to_image_diff()) - port = ChromiumPortTest.TestMacPort(options=MockOptions()) + port = ChromiumPortTest.TestMacPort(options=mock_options) self.assertTrue(port._path_to_image_diff().endswith( '/xcodebuild/default/ImageDiff')) # FIXME: Figure out how this is going to work on Windows. #port = chromium_win.ChromiumWinPort('test-port', options=MockOptions()) def test_skipped_layout_tests(self): - class MockOptions: - def __init__(self): - self.use_drt = True - - port = ChromiumPortTest.TestLinuxPort(options=MockOptions()) + mock_options = mocktool.MockOptions(use_drt=True) + port = ChromiumPortTest.TestLinuxPort(options=mock_options) fake_test = os.path.join(port.layout_tests_dir(), "fast/js/not-good.js") @@ -138,23 +130,56 @@ DEFER LINUX WIN : fast/js/very-good.js = TIMEOUT PASS""" self.assertTrue("fast/js/not-good.js" in skipped_tests) def test_default_configuration(self): - class EmptyOptions: - def __init__(self): - pass - - options = EmptyOptions() - port = ChromiumPortTest.TestLinuxPort(options) - self.assertEquals(options.configuration, 'default') + mock_options = mocktool.MockOptions() + port = ChromiumPortTest.TestLinuxPort(options=mock_options) + self.assertEquals(mock_options.configuration, 'default') self.assertTrue(port.default_configuration_called) - class OptionsWithUnsetConfiguration: - def __init__(self): - self.configuration = None - - options = OptionsWithUnsetConfiguration() - port = ChromiumPortTest.TestLinuxPort(options) - self.assertEquals(options.configuration, 'default') + mock_options = mocktool.MockOptions(configuration=None) + port = ChromiumPortTest.TestLinuxPort(mock_options) + self.assertEquals(mock_options.configuration, 'default') self.assertTrue(port.default_configuration_called) + def test_diff_image(self): + class TestPort(ChromiumPortTest.TestLinuxPort): + def _path_to_image_diff(self): + return "/path/to/image_diff" + + class MockExecute: + def __init__(self, result): + self._result = result + + def run_command(self, + args, + cwd=None, + input=None, + error_handler=None, + return_exit_code=False, + return_stderr=True, + decode_output=False): + if return_exit_code: + return self._result + return '' + + mock_options = mocktool.MockOptions(use_drt=False) + port = ChromiumPortTest.TestLinuxPort(mock_options) + + # Images are different. + port._executive = MockExecute(0) + self.assertEquals(False, port.diff_image("EXPECTED", "ACTUAL")) + + # Images are the same. + port._executive = MockExecute(1) + self.assertEquals(True, port.diff_image("EXPECTED", "ACTUAL")) + + # There was some error running image_diff. + port._executive = MockExecute(2) + exception_raised = False + try: + port.diff_image("EXPECTED", "ACTUAL") + except ValueError, e: + exception_raised = True + self.assertFalse(exception_raised) + if __name__ == '__main__': unittest.main() |