From 8e5b1d6b4652c5144ca5dfc768997a53a46a7ad1 Mon Sep 17 00:00:00 2001 From: Marijn Suijten Date: Fri, 22 Jan 2021 22:52:47 +0100 Subject: [PATCH] tests: Add test cases for Bluetooth device classes --- src/linux/integration-test | 110 ++++++++++++++++++++++++++++++++++++- 1 file changed, 109 insertions(+), 1 deletion(-) diff --git a/src/linux/integration-test b/src/linux/integration-test index dbd2814..719bbb3 100755 --- a/src/linux/integration-test +++ b/src/linux/integration-test @@ -88,7 +88,20 @@ BATTERY_IFACE = 'org.bluez.Battery1' UP_DEVICE_KIND_COMPUTER, UP_DEVICE_KIND_GAMING_INPUT, UP_DEVICE_KIND_PEN, - UP_DEVICE_KIND_TOUCHPAD) = range(15) + UP_DEVICE_KIND_TOUCHPAD, + UP_DEVICE_KIND_MODEM, + UP_DEVICE_KIND_NETWORK, + UP_DEVICE_KIND_HEADSET, + UP_DEVICE_KIND_SPEAKERS, + UP_DEVICE_KIND_HEADPHONES, + UP_DEVICE_KIND_VIDEO, + UP_DEVICE_KIND_OTHER_AUDIO, + UP_DEVICE_KIND_REMOTE_CONTROL, + UP_DEVICE_KIND_PRINTER, + UP_DEVICE_KIND_SCANNER, + UP_DEVICE_KIND_CAMERA, + UP_DEVICE_KIND_WEARABLE, + UP_DEVICE_KIND_TOY) = range(28) class Tests(dbusmock.DBusTestCase): @classmethod @@ -1675,6 +1688,101 @@ class Tests(dbusmock.DBusTestCase): self.assertEqual(self.get_dbus_dev_property(mouse_bat0_up, 'Type'), UP_DEVICE_KIND_UNKNOWN) self.stop_daemon() + def test_bluetooth_headphones(self): + '''Bluetooth Headphones''' + + alias = 'WH-1000XM3' + battery_level = 99 + device_properties = { + 'Class': dbus.UInt32(0x240404, variant_level=1) + } + + devs = self._add_bluez_battery_device(alias, device_properties, battery_level) + self.assertEqual(len(devs), 1) + bat0_up = devs[0] + + self.assertEqual(self.get_dbus_dev_property(bat0_up, 'Model'), alias) + self.assertEqual(self.get_dbus_dev_property(bat0_up, 'Percentage'), battery_level) + self.assertEqual(self.get_dbus_dev_property(bat0_up, 'PowerSupply'), False) + self.assertEqual(self.get_dbus_dev_property(bat0_up, 'Type'), UP_DEVICE_KIND_HEADSET) + self.stop_daemon() + + def test_bluetooth_wireless_earbuds(self): + '''Bluetooth Wireless Earbuds''' + + alias = 'QCY-qs2_R' + battery_level = 99 + device_properties = { + 'Class': dbus.UInt32(0x240418, variant_level=1) + } + + devs = self._add_bluez_battery_device(alias, device_properties, battery_level) + self.assertEqual(len(devs), 1) + bat0_up = devs[0] + + self.assertEqual(self.get_dbus_dev_property(bat0_up, 'Model'), alias) + self.assertEqual(self.get_dbus_dev_property(bat0_up, 'Percentage'), battery_level) + self.assertEqual(self.get_dbus_dev_property(bat0_up, 'PowerSupply'), False) + self.assertEqual(self.get_dbus_dev_property(bat0_up, 'Type'), UP_DEVICE_KIND_HEADPHONES) + self.stop_daemon() + + def test_bluetooth_phone(self): + '''Bluetooth Phone''' + + alias = 'Phone' + battery_level = 99 + device_properties = { + 'Class': dbus.UInt32(0x5a020c, variant_level=1) + } + + devs = self._add_bluez_battery_device(alias, device_properties, battery_level) + self.assertEqual(len(devs), 1) + bat0_up = devs[0] + + self.assertEqual(self.get_dbus_dev_property(bat0_up, 'Model'), alias) + self.assertEqual(self.get_dbus_dev_property(bat0_up, 'Percentage'), battery_level) + self.assertEqual(self.get_dbus_dev_property(bat0_up, 'PowerSupply'), False) + self.assertEqual(self.get_dbus_dev_property(bat0_up, 'Type'), UP_DEVICE_KIND_PHONE) + self.stop_daemon() + + def test_bluetooth_computer(self): + '''Bluetooth Computer''' + + alias = 'Computer' + battery_level = 99 + device_properties = { + 'Class': dbus.UInt32(0x6c010c, variant_level=1) + } + + devs = self._add_bluez_battery_device(alias, device_properties, battery_level) + self.assertEqual(len(devs), 1) + bat0_up = devs[0] + + self.assertEqual(self.get_dbus_dev_property(bat0_up, 'Model'), alias) + self.assertEqual(self.get_dbus_dev_property(bat0_up, 'Percentage'), battery_level) + self.assertEqual(self.get_dbus_dev_property(bat0_up, 'PowerSupply'), False) + self.assertEqual(self.get_dbus_dev_property(bat0_up, 'Type'), UP_DEVICE_KIND_COMPUTER) + self.stop_daemon() + + def test_bluetooth_heart_rate_monitor(self): + '''Bluetooth Heart Rate Monitor''' + + alias = 'Polar H7' + battery_level = 99 + device_properties = { + 'Appearance': dbus.UInt16(0x0341, variant_level=1) + } + + devs = self._add_bluez_battery_device(alias, device_properties, battery_level) + self.assertEqual(len(devs), 1) + bat0_up = devs[0] + + self.assertEqual(self.get_dbus_dev_property(bat0_up, 'Model'), alias) + self.assertEqual(self.get_dbus_dev_property(bat0_up, 'Percentage'), battery_level) + self.assertEqual(self.get_dbus_dev_property(bat0_up, 'PowerSupply'), False) + self.assertEqual(self.get_dbus_dev_property(bat0_up, 'Type'), UP_DEVICE_KIND_UNKNOWN) + self.stop_daemon() + # # libupower-glib tests (through introspection) #