diff options
author | Bastien Nocera <hadess@hadess.net> | 2022-01-20 12:20:33 +0100 |
---|---|---|
committer | Bastien Nocera <hadess@hadess.net> | 2022-01-20 12:20:33 +0100 |
commit | a43e1689e3e32253e2203d28df8ffcd917d1ce00 (patch) | |
tree | 1f76568ac43303cb26ffbd44933297bcdb0fb26f /tests | |
parent | f5fae22865a781204d56d6c6adfcbac3867bae9b (diff) | |
download | gnome-bluetooth-a43e1689e3e32253e2203d28df8ffcd917d1ce00.tar.gz |
lib: Add API to check whether input devices are connected
This will figure out whether there are any connected input devices, so
that gnome-shell (or gnome-control-center) can show a confirmation
dialogue before really turning things off.
Closes: #101
Diffstat (limited to 'tests')
-rwxr-xr-x | tests/integration-test | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/tests/integration-test b/tests/integration-test index 2ad777cc..a79066ef 100755 --- a/tests/integration-test +++ b/tests/integration-test @@ -374,6 +374,50 @@ class OopTests(dbusmock.DBusTestCase): agent.unregister() self.wait_for_mainloop() + def test_connected_input_devices(self): + bus = dbus.SystemBus() + dbusmock_bluez = dbus.Interface(bus.get_object('org.bluez', '/'), 'org.bluez.Mock') + + path = dbusmock_bluez.AddDevice('hci0', '11:22:33:44:55:66', 'My LE Mouse') + dev1 = dbus.Interface(bus.get_object('org.bluez', path), 'org.freedesktop.DBus.Mock') + dev1.UpdateProperties('org.bluez.Device1', + {'UUIDs': dbus.Array(['00001812-0000-1000-8000-00805f9b34fb'], variant_level=1)}) + + path = dbusmock_bluez.AddDevice('hci0', '11:22:33:44:55:67', 'My Classic Mouse') + dev2 = dbus.Interface(bus.get_object('org.bluez', path), 'org.freedesktop.DBus.Mock') + dev2.UpdateProperties('org.bluez.Device1', + {'UUIDs': dbus.Array(['00001124-0000-1000-8000-00805f9b34fb'], variant_level=1)}) + + self.wait_for_mainloop() + list_store = self.client.get_devices() + self.assertEqual(list_store.get_n_items(), 2) + self.assertEqual(self.client.has_connected_input_devices(), False) + + dev1.UpdateProperties('org.bluez.Device1', + {'Connected': dbus.Boolean(True, variant_level=1)}) + + self.wait_for_mainloop() + self.assertEqual(self.client.has_connected_input_devices(), True) + + dev1.UpdateProperties('org.bluez.Device1', + {'Connected': dbus.Boolean(False, variant_level=1)}) + + self.wait_for_mainloop() + self.assertEqual(self.client.has_connected_input_devices(), False) + + dev2.UpdateProperties('org.bluez.Device1', + {'Connected': dbus.Boolean(True, variant_level=1)}) + + self.wait_for_mainloop() + self.assertEqual(self.client.has_connected_input_devices(), True) + + dev2.UpdateProperties('org.bluez.Device1', + {'Connected': dbus.Boolean(False, variant_level=1)}) + + self.wait_for_mainloop() + self.assertEqual(self.client.has_connected_input_devices(), False) + + class Tests(dbusmock.DBusTestCase): @classmethod @@ -471,5 +515,9 @@ class Tests(dbusmock.DBusTestCase): def test_agent(self): self.run_test_process() + def test_connected_input_devices(self): + self.dbusmock_bluez.AddAdapter('hci0', 'my-computer') + self.run_test_process() + if __name__ == '__main__': unittest.main() |