mouse_gadget_test.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #!/usr/bin/env python
  2. # Copyright 2014 The Chromium Authors. All rights reserved.
  3. # Use of this source code is governed by a BSD-style license that can be
  4. # found in the LICENSE file.
  5. import unittest
  6. import mock
  7. import hid_constants
  8. import mouse_gadget
  9. import usb_constants
  10. class MouseGadgetTest(unittest.TestCase):
  11. def test_click(self):
  12. g = mouse_gadget.MouseGadget()
  13. chip = mock.Mock()
  14. g.Connected(chip, usb_constants.Speed.FULL)
  15. g.ButtonDown(hid_constants.Mouse.BUTTON_1)
  16. self.assertEqual(g.ControlRead(0xA1, 1, 0x0100, 0, 8), '\x01\x00\x00')
  17. g.ButtonUp(hid_constants.Mouse.BUTTON_1)
  18. chip.SendPacket.assert_has_calls([
  19. mock.call(0x81, '\x01\x00\x00'),
  20. mock.call(0x81, '\x00\x00\x00'),
  21. ])
  22. def test_move(self):
  23. g = mouse_gadget.MouseGadget()
  24. chip = mock.Mock()
  25. g.Connected(chip, usb_constants.Speed.FULL)
  26. g.Move(-1, 1)
  27. chip.SendPacket.assert_called(0x81, '\x00\xFF\x01')
  28. def test_drag(self):
  29. g = mouse_gadget.MouseGadget()
  30. chip = mock.Mock()
  31. g.Connected(chip, usb_constants.Speed.FULL)
  32. g.ButtonDown(hid_constants.Mouse.BUTTON_1)
  33. g.Move(5, 5)
  34. g.ButtonUp(hid_constants.Mouse.BUTTON_1)
  35. chip.SendPacket.assert_has_calls([
  36. mock.call(0x81, '\x01\x00\x00'),
  37. mock.call(0x81, '\x01\x05\x05'),
  38. mock.call(0x81, '\x00\x00\x00'),
  39. ])
  40. if __name__ == '__main__':
  41. unittest.main()