1d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)# Copyright (c) 2014 The Chromium Authors. All rights reserved. 2d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)# Use of this source code is governed by a BSD-style license that can be 3d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)# found in the LICENSE file. 4d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 5d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)import unittest 6d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 7d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)from webkitpy.layout_tests.servers import server_base 8d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)from webkitpy.layout_tests.servers import cli_wrapper 9d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 10d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 11d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)class MockServer(object): 12d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) def __init__(self, *args, **kwargs): 13d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) self.args = args 14d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) self.kwargs = kwargs 15d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) self.start_called = False 16d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) self.stop_called = False 17d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 18d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) def start(self): 19d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) self.start_called = True 20d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 21d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) def stop(self): 22d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) self.stop_called = True 23d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 24d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 25d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)class TestCliWrapper(unittest.TestCase): 26d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 27d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) def test_main(self): 28d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) def mock_server_constructor(*args, **kwargs): 29d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) self.server = MockServer(args, kwargs) 30d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) return self.server 31d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 32d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) cli_wrapper.main(mock_server_constructor, input_fn=lambda msg: True, argv=[]) 33d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) self.assertTrue(self.server.start_called) 34d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) self.assertTrue(self.server.stop_called) 35