mirror of
https://gitlab.freedesktop.org/upower/upower.git
synced 2026-04-03 11:30:38 +02:00
linux: integration-test: test for HID++ mouse with mixed input capabilities
Signed-off-by: Miroslav Šuvada <miroslav.suvada@icloud.com>
This commit is contained in:
parent
f82c2f9c71
commit
ecd2d4eb25
1 changed files with 390 additions and 1 deletions
|
|
@ -4124,7 +4124,14 @@ class Tests(dbusmock.DBusTestCase):
|
|||
"/devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.2/0003:046D:C52B.0009/0003:046D:4101.000A/input/input22",
|
||||
parent,
|
||||
[],
|
||||
["DEVNAME", "input/mouse3", "ID_INPUT_MOUSE", "1"],
|
||||
[
|
||||
"DEVNAME",
|
||||
"input/mouse3",
|
||||
"ID_INPUT_MOUSE",
|
||||
"1",
|
||||
"ID_INPUT_KEYBOARD",
|
||||
"1",
|
||||
],
|
||||
)
|
||||
|
||||
self.testbed.add_device(
|
||||
|
|
@ -4174,6 +4181,388 @@ class Tests(dbusmock.DBusTestCase):
|
|||
)
|
||||
self.stop_daemon()
|
||||
|
||||
def test_hidpp_mouse_with_keyboard_interface(self):
|
||||
"""HID++ mouse with extra keyboard interface stays classified as mouse"""
|
||||
|
||||
parent = self.testbed.add_device(
|
||||
"usb", "/devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.2", None, [], []
|
||||
)
|
||||
parent = self.testbed.add_device(
|
||||
"hid",
|
||||
"/devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.2/0003:046D:C52B.0009",
|
||||
parent,
|
||||
[],
|
||||
[],
|
||||
)
|
||||
dev = self.testbed.add_device(
|
||||
"hid",
|
||||
"/devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.2/0003:046D:C52B.0009/0003:046D:4101.000A",
|
||||
parent,
|
||||
[],
|
||||
[],
|
||||
)
|
||||
|
||||
parent = dev
|
||||
self.testbed.add_device(
|
||||
"input",
|
||||
"/devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.2/0003:046D:C52B.0009/0003:046D:4101.000A/input/input22",
|
||||
parent,
|
||||
[],
|
||||
[
|
||||
"DEVNAME",
|
||||
"input/mouse3",
|
||||
"ID_INPUT_MOUSE",
|
||||
"1",
|
||||
"ID_INPUT_KEYBOARD",
|
||||
"1",
|
||||
],
|
||||
)
|
||||
|
||||
self.testbed.add_device(
|
||||
"input",
|
||||
"/devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.2/0003:046D:C52B.0009/0003:046D:4101.000A/input/input23",
|
||||
parent,
|
||||
[],
|
||||
["DEVNAME", "input/event7", "ID_INPUT_KEYBOARD", "1"],
|
||||
)
|
||||
|
||||
self.testbed.add_device(
|
||||
"power_supply",
|
||||
"/devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.2/0003:046D:C52B.0009/0003:046D:4101.000A/power_supply/hidpp_battery_3",
|
||||
parent,
|
||||
[
|
||||
"type",
|
||||
"Battery",
|
||||
"scope",
|
||||
"Device",
|
||||
"present",
|
||||
"1",
|
||||
"online",
|
||||
"1",
|
||||
"status",
|
||||
"Discharging",
|
||||
"capacity",
|
||||
"30",
|
||||
"serial_number",
|
||||
"654321",
|
||||
"model_name",
|
||||
"Fancy Logitech mouse",
|
||||
],
|
||||
[],
|
||||
)
|
||||
|
||||
self.start_daemon()
|
||||
devs = self.proxy.EnumerateDevices()
|
||||
self.assertEqual(len(devs), 1)
|
||||
mousebat0_up = devs[0]
|
||||
|
||||
self.assertEqual(
|
||||
self.get_dbus_dev_property(mousebat0_up, "Model"), "Fancy Logitech mouse"
|
||||
)
|
||||
self.assertAlmostEqual(
|
||||
self.get_dbus_dev_property(mousebat0_up, "Percentage"), 30.0
|
||||
)
|
||||
self.assertEqual(self.get_dbus_dev_property(mousebat0_up, "PowerSupply"), False)
|
||||
self.assertEqual(
|
||||
self.get_dbus_dev_property(mousebat0_up, "Type"), UP_DEVICE_KIND_MOUSE
|
||||
)
|
||||
self.assertEqual(self.get_dbus_dev_property(mousebat0_up, "Serial"), "654321")
|
||||
self.assertEqual(self.get_dbus_property("OnBattery"), False)
|
||||
self.assertEqual(
|
||||
self.get_dbus_display_property("WarningLevel"), UP_DEVICE_LEVEL_NONE
|
||||
)
|
||||
self.stop_daemon()
|
||||
|
||||
def test_hidpp_mouse_with_keyboard_interface_reverse_discovery(self):
|
||||
"""HID++ mouse remains a mouse when keyboard sibling appears first"""
|
||||
|
||||
parent = self.testbed.add_device(
|
||||
"usb", "/devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.2", None, [], []
|
||||
)
|
||||
parent = self.testbed.add_device(
|
||||
"hid",
|
||||
"/devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.2/0003:046D:C52B.0009",
|
||||
parent,
|
||||
[],
|
||||
[],
|
||||
)
|
||||
dev = self.testbed.add_device(
|
||||
"hid",
|
||||
"/devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.2/0003:046D:C52B.0009/0003:046D:4101.000A",
|
||||
parent,
|
||||
[],
|
||||
[],
|
||||
)
|
||||
|
||||
parent = dev
|
||||
self.testbed.add_device(
|
||||
"input",
|
||||
"/devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.2/0003:046D:C52B.0009/0003:046D:4101.000A/input/input22",
|
||||
parent,
|
||||
[],
|
||||
["DEVNAME", "input/event7", "ID_INPUT_KEYBOARD", "1"],
|
||||
)
|
||||
|
||||
self.testbed.add_device(
|
||||
"input",
|
||||
"/devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.2/0003:046D:C52B.0009/0003:046D:4101.000A/input/input23",
|
||||
parent,
|
||||
[],
|
||||
[
|
||||
"DEVNAME",
|
||||
"input/mouse3",
|
||||
"ID_INPUT_MOUSE",
|
||||
"1",
|
||||
"ID_INPUT_KEYBOARD",
|
||||
"1",
|
||||
],
|
||||
)
|
||||
|
||||
self.testbed.add_device(
|
||||
"power_supply",
|
||||
"/devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.2/0003:046D:C52B.0009/0003:046D:4101.000A/power_supply/hidpp_battery_3",
|
||||
parent,
|
||||
[
|
||||
"type",
|
||||
"Battery",
|
||||
"scope",
|
||||
"Device",
|
||||
"present",
|
||||
"1",
|
||||
"online",
|
||||
"1",
|
||||
"status",
|
||||
"Discharging",
|
||||
"capacity",
|
||||
"30",
|
||||
"serial_number",
|
||||
"654321",
|
||||
"model_name",
|
||||
"Fancy Logitech mouse",
|
||||
],
|
||||
[],
|
||||
)
|
||||
|
||||
self.start_daemon()
|
||||
devs = self.proxy.EnumerateDevices()
|
||||
self.assertEqual(len(devs), 1)
|
||||
mousebat0_up = devs[0]
|
||||
|
||||
self.assertEqual(
|
||||
self.get_dbus_dev_property(mousebat0_up, "Model"), "Fancy Logitech mouse"
|
||||
)
|
||||
self.assertAlmostEqual(
|
||||
self.get_dbus_dev_property(mousebat0_up, "Percentage"), 30.0
|
||||
)
|
||||
self.assertEqual(self.get_dbus_dev_property(mousebat0_up, "PowerSupply"), False)
|
||||
self.assertEqual(
|
||||
self.get_dbus_dev_property(mousebat0_up, "Type"), UP_DEVICE_KIND_MOUSE
|
||||
)
|
||||
self.assertEqual(self.get_dbus_dev_property(mousebat0_up, "Serial"), "654321")
|
||||
self.assertEqual(self.get_dbus_property("OnBattery"), False)
|
||||
self.assertEqual(
|
||||
self.get_dbus_display_property("WarningLevel"), UP_DEVICE_LEVEL_NONE
|
||||
)
|
||||
self.stop_daemon()
|
||||
|
||||
def test_hidpp_receiver_mouse_with_keyboard_interface(self):
|
||||
"""HID++ receiver mouse with mixed node stays classified as mouse"""
|
||||
|
||||
usb_parent = self.testbed.add_device(
|
||||
"usb",
|
||||
"/devices/pci0000:00/0000:00:01.2/0000:01:00.0/0000:02:08.0/0000:0d:00.1/usb1/1-5",
|
||||
None,
|
||||
[],
|
||||
[],
|
||||
)
|
||||
intf = self.testbed.add_device(
|
||||
"usb",
|
||||
"/devices/pci0000:00/0000:00:01.2/0000:01:00.0/0000:02:08.0/0000:0d:00.1/usb1/1-5/1-5:1.2",
|
||||
usb_parent,
|
||||
[],
|
||||
[],
|
||||
)
|
||||
receiver = self.testbed.add_device(
|
||||
"hid",
|
||||
"/devices/pci0000:00/0000:00:01.2/0000:01:00.0/0000:02:08.0/0000:0d:00.1/usb1/1-5/1-5:1.2/0003:046D:C53A.0004",
|
||||
intf,
|
||||
[],
|
||||
[],
|
||||
)
|
||||
mouse = self.testbed.add_device(
|
||||
"hid",
|
||||
"/devices/pci0000:00/0000:00:01.2/0000:01:00.0/0000:02:08.0/0000:0d:00.1/usb1/1-5/1-5:1.2/0003:046D:C53A.0004/0003:046D:4099.0006",
|
||||
receiver,
|
||||
[],
|
||||
[],
|
||||
)
|
||||
|
||||
self.testbed.add_device(
|
||||
"input",
|
||||
"/devices/pci0000:00/0000:00:01.2/0000:01:00.0/0000:02:08.0/0000:0d:00.1/usb1/1-5/1-5:1.2/0003:046D:C53A.0004/0003:046D:4099.0006/input/input72",
|
||||
mouse,
|
||||
[],
|
||||
[
|
||||
"DEVNAME",
|
||||
"input/event12",
|
||||
"ID_INPUT_MOUSE",
|
||||
"1",
|
||||
"ID_INPUT_KEYBOARD",
|
||||
"1",
|
||||
],
|
||||
)
|
||||
|
||||
self.testbed.add_device(
|
||||
"input",
|
||||
"/devices/pci0000:00/0000:00:01.2/0000:01:00.0/0000:02:08.0/0000:0d:00.1/usb1/1-5/1-5:1.2/0003:046D:C53A.0004/0003:046D:4099.0006/input/input73",
|
||||
mouse,
|
||||
[],
|
||||
["DEVNAME", "input/event13", "ID_INPUT_KEYBOARD", "1"],
|
||||
)
|
||||
|
||||
self.testbed.add_device(
|
||||
"power_supply",
|
||||
"/devices/pci0000:00/0000:00:01.2/0000:01:00.0/0000:02:08.0/0000:0d:00.1/usb1/1-5/1-5:1.2/0003:046D:C53A.0004/0003:046D:4099.0006/power_supply/hidpp_battery_0",
|
||||
mouse,
|
||||
[
|
||||
"type",
|
||||
"Battery",
|
||||
"scope",
|
||||
"Device",
|
||||
"present",
|
||||
"1",
|
||||
"online",
|
||||
"1",
|
||||
"status",
|
||||
"Discharging",
|
||||
"capacity",
|
||||
"69",
|
||||
"model_name",
|
||||
"Logitech G502 X PLUS",
|
||||
],
|
||||
[],
|
||||
)
|
||||
|
||||
self.start_daemon()
|
||||
devs = self.proxy.EnumerateDevices()
|
||||
self.assertEqual(len(devs), 1)
|
||||
mousebat0_up = devs[0]
|
||||
|
||||
self.assertEqual(
|
||||
self.get_dbus_dev_property(mousebat0_up, "Model"), "Logitech G502 X PLUS"
|
||||
)
|
||||
self.assertAlmostEqual(
|
||||
self.get_dbus_dev_property(mousebat0_up, "Percentage"), 69.0
|
||||
)
|
||||
self.assertEqual(self.get_dbus_dev_property(mousebat0_up, "PowerSupply"), False)
|
||||
self.assertEqual(
|
||||
self.get_dbus_dev_property(mousebat0_up, "Type"), UP_DEVICE_KIND_MOUSE
|
||||
)
|
||||
self.assertEqual(self.get_dbus_property("OnBattery"), False)
|
||||
self.assertEqual(
|
||||
self.get_dbus_display_property("WarningLevel"), UP_DEVICE_LEVEL_NONE
|
||||
)
|
||||
self.stop_daemon()
|
||||
|
||||
def test_hidpp_receiver_mouse_with_keyboard_interface_reverse_discovery(self):
|
||||
"""HID++ receiver mixed mouse/keyboard remains mouse when keyboard appears first"""
|
||||
|
||||
usb_parent = self.testbed.add_device(
|
||||
"usb",
|
||||
"/devices/pci0000:00/0000:00:01.2/0000:01:00.0/0000:02:08.0/0000:0d:00.1/usb1/1-5",
|
||||
None,
|
||||
[],
|
||||
[],
|
||||
)
|
||||
intf = self.testbed.add_device(
|
||||
"usb",
|
||||
"/devices/pci0000:00/0000:00:01.2/0000:01:00.0/0000:02:08.0/0000:0d:00.1/usb1/1-5/1-5:1.2",
|
||||
usb_parent,
|
||||
[],
|
||||
[],
|
||||
)
|
||||
receiver = self.testbed.add_device(
|
||||
"hid",
|
||||
"/devices/pci0000:00/0000:00:01.2/0000:01:00.0/0000:02:08.0/0000:0d:00.1/usb1/1-5/1-5:1.2/0003:046D:C53A.0004",
|
||||
intf,
|
||||
[],
|
||||
[],
|
||||
)
|
||||
mouse = self.testbed.add_device(
|
||||
"hid",
|
||||
"/devices/pci0000:00/0000:00:01.2/0000:01:00.0/0000:02:08.0/0000:0d:00.1/usb1/1-5/1-5:1.2/0003:046D:C53A.0004/0003:046D:4099.0006",
|
||||
receiver,
|
||||
[],
|
||||
[],
|
||||
)
|
||||
|
||||
self.testbed.add_device(
|
||||
"input",
|
||||
"/devices/pci0000:00/0000:00:01.2/0000:01:00.0/0000:02:08.0/0000:0d:00.1/usb1/1-5/1-5:1.2/0003:046D:C53A.0004/0003:046D:4099.0006/input/input73",
|
||||
mouse,
|
||||
[],
|
||||
["DEVNAME", "input/event13", "ID_INPUT_KEYBOARD", "1"],
|
||||
)
|
||||
|
||||
self.testbed.add_device(
|
||||
"input",
|
||||
"/devices/pci0000:00/0000:00:01.2/0000:01:00.0/0000:02:08.0/0000:0d:00.1/usb1/1-5/1-5:1.2/0003:046D:C53A.0004/0003:046D:4099.0006/input/input72",
|
||||
mouse,
|
||||
[],
|
||||
[
|
||||
"DEVNAME",
|
||||
"input/event12",
|
||||
"ID_INPUT_MOUSE",
|
||||
"1",
|
||||
"ID_INPUT_KEYBOARD",
|
||||
"1",
|
||||
],
|
||||
)
|
||||
|
||||
self.testbed.add_device(
|
||||
"power_supply",
|
||||
"/devices/pci0000:00/0000:00:01.2/0000:01:00.0/0000:02:08.0/0000:0d:00.1/usb1/1-5/1-5:1.2/0003:046D:C53A.0004/0003:046D:4099.0006/power_supply/hidpp_battery_0",
|
||||
mouse,
|
||||
[
|
||||
"type",
|
||||
"Battery",
|
||||
"scope",
|
||||
"Device",
|
||||
"present",
|
||||
"1",
|
||||
"online",
|
||||
"1",
|
||||
"status",
|
||||
"Discharging",
|
||||
"capacity",
|
||||
"69",
|
||||
"model_name",
|
||||
"Logitech G502 X PLUS",
|
||||
],
|
||||
[],
|
||||
)
|
||||
|
||||
self.start_daemon()
|
||||
devs = self.proxy.EnumerateDevices()
|
||||
self.assertEqual(len(devs), 1)
|
||||
mousebat0_up = devs[0]
|
||||
|
||||
self.assertEqual(
|
||||
self.get_dbus_dev_property(mousebat0_up, "Model"), "Logitech G502 X PLUS"
|
||||
)
|
||||
self.assertAlmostEqual(
|
||||
self.get_dbus_dev_property(mousebat0_up, "Percentage"), 69.0
|
||||
)
|
||||
self.assertEqual(self.get_dbus_dev_property(mousebat0_up, "PowerSupply"), False)
|
||||
self.assertEqual(
|
||||
self.get_dbus_dev_property(mousebat0_up, "Type"), UP_DEVICE_KIND_MOUSE
|
||||
)
|
||||
self.assertEqual(self.get_dbus_property("OnBattery"), False)
|
||||
self.assertEqual(
|
||||
self.get_dbus_display_property("WarningLevel"), UP_DEVICE_LEVEL_NONE
|
||||
)
|
||||
self.stop_daemon()
|
||||
|
||||
def test_hidpp_two_mouses_unifying_receiver(self):
|
||||
"""Upower shows wrong model name when a unifying receiver connects two mouses #309"""
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue