| #!/usr/bin/python |
| # Copyright 2014 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 unittest |
| |
| import mock |
| |
| import hid_constants |
| import mouse_gadget |
| import usb_constants |
| |
| |
| class MouseGadgetTest(unittest.TestCase): |
| |
| def test_click(self): |
| g = mouse_gadget.MouseGadget() |
| chip = mock.Mock() |
| g.Connected(chip, usb_constants.Speed.FULL) |
| g.ButtonDown(hid_constants.Mouse.BUTTON_1) |
| self.assertEqual(g.ControlRead(0xA1, 1, 0x0100, 0, 8), '\x01\x00\x00') |
| g.ButtonUp(hid_constants.Mouse.BUTTON_1) |
| chip.SendPacket.assert_has_calls([ |
| mock.call(0x81, '\x01\x00\x00'), |
| mock.call(0x81, '\x00\x00\x00'), |
| ]) |
| |
| def test_move(self): |
| g = mouse_gadget.MouseGadget() |
| chip = mock.Mock() |
| g.Connected(chip, usb_constants.Speed.FULL) |
| g.Move(-1, 1) |
| chip.SendPacket.assert_called(0x81, '\x00\xFF\x01') |
| |
| def test_drag(self): |
| g = mouse_gadget.MouseGadget() |
| chip = mock.Mock() |
| g.Connected(chip, usb_constants.Speed.FULL) |
| g.ButtonDown(hid_constants.Mouse.BUTTON_1) |
| g.Move(5, 5) |
| g.ButtonUp(hid_constants.Mouse.BUTTON_1) |
| chip.SendPacket.assert_has_calls([ |
| mock.call(0x81, '\x01\x00\x00'), |
| mock.call(0x81, '\x01\x05\x05'), |
| mock.call(0x81, '\x00\x00\x00'), |
| ]) |
| |
| if __name__ == '__main__': |
| unittest.main() |