#!/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()