Skip to content

Commit 3f08042

Browse files
committed
integration test for linux desktop
1 parent 0ea54e5 commit 3f08042

1 file changed

Lines changed: 21 additions & 10 deletions

File tree

.github/workflows/checks.yml

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -351,29 +351,40 @@ jobs:
351351
libgtk-3-dev liblzma-dev xvfb dbus-x11 \
352352
python3-dbus python3-gi
353353
354+
- name: Run Linux Unit Tests
355+
run: |
356+
cd wakelock_plus
357+
flutter pub get
358+
flutter test test/wakelock_plus_linux_plugin_test.dart
359+
354360
- name: Run Integration Tests
355361
run: |
356362
flutter config --enable-linux-desktop
357363
cd wakelock_plus/example
358364
flutter pub get
359365
360366
# We use xvfb-run (display) and dbus-run-session (bus).
361-
# Inside, we run a Python mock of 'org.freedesktop.ScreenSaver' so the plugin logic succeeds.
367+
# Inside, we run a Python mock of 'org.freedesktop.portal.Desktop' so the plugin logic succeeds.
362368
xvfb-run dbus-run-session bash -c "
363369
python3 -c \"
364370
import dbus, dbus.service
365371
from dbus.mainloop.glib import DBusGMainLoop
366372
from gi.repository import GLib
367-
class Mock(dbus.service.Object):
368-
def __init__(self):
369-
bus_name = dbus.service.BusName('org.freedesktop.ScreenSaver', bus=dbus.SessionBus())
370-
dbus.service.Object.__init__(self, bus_name, '/org/freedesktop/ScreenSaver')
371-
@dbus.service.method('org.freedesktop.ScreenSaver', in_signature='ss', out_signature='u')
372-
def Inhibit(self, a, r): return 1
373-
@dbus.service.method('org.freedesktop.ScreenSaver', in_signature='u', out_signature='')
374-
def UnInhibit(self, c): pass
373+
class RequestMock(dbus.service.Object):
374+
def __init__(self, bus):
375+
dbus.service.Object.__init__(self, bus, '/org/freedesktop/portal/desktop/request/1_1/test')
376+
@dbus.service.method('org.freedesktop.portal.Request', in_signature='', out_signature='')
377+
def Close(self): pass
378+
class DesktopMock(dbus.service.Object):
379+
def __init__(self, bus):
380+
bus_name = dbus.service.BusName('org.freedesktop.portal.Desktop', bus=bus)
381+
dbus.service.Object.__init__(self, bus_name, '/org/freedesktop/portal/desktop')
382+
@dbus.service.method('org.freedesktop.portal.Inhibit', in_signature='sua{sv}', out_signature='o')
383+
def Inhibit(self, window, flags, options): return dbus.ObjectPath('/org/freedesktop/portal/desktop/request/1_1/test')
375384
DBusGMainLoop(set_as_default=True)
376-
Mock()
385+
bus = dbus.SessionBus()
386+
DesktopMock(bus)
387+
RequestMock(bus)
377388
GLib.MainLoop().run()\" &
378389
sleep 5 && \
379390
flutter drive \

0 commit comments

Comments
 (0)