diff --git a/nixos/tests/lomiri-calendar-app.nix b/nixos/tests/lomiri-calendar-app.nix index 5530e9e36075..c42e0f96e52c 100644 --- a/nixos/tests/lomiri-calendar-app.nix +++ b/nixos/tests/lomiri-calendar-app.nix @@ -44,23 +44,33 @@ with subtest("lomiri calendar launches"): machine.succeed("lomiri-calendar-app >&2 &") - machine.wait_for_text(r"(January|February|March|April|May|June|July|August|September|October|November|December)") + machine.sleep(10) + machine.send_key("alt-f10") + machine.sleep(2) + # Default page is unbearably slow to OCR on, switch to another + machine.succeed("xdotool mousemove 580 50 click 1") + machine.sleep(2) + machine.wait_for_text(r"(January|February|March|April|May|June|July|August|September|October|November|December|Mon|Tue|Wed|Thu|Fri|Sat|Sun)") machine.screenshot("lomiri-calendar") with subtest("lomiri calendar works"): # Switch to Agenda tab, less busy - machine.succeed("xdotool mousemove 300 50 click 1") + machine.succeed("xdotool mousemove 380 50 click 1") + machine.sleep(2) # Still on main page - machine.succeed("xdotool mousemove 500 650 click 1") + machine.succeed("xdotool mousemove 500 720 click 1") + machine.sleep(2) machine.wait_for_text(r"(Date|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday|All day|Name|Details|More)") machine.screenshot("lomiri-calendar_newevent") # On New Event page machine.succeed("xdotool mousemove 500 230 click 1") + machine.sleep(2) machine.send_chars("foobar") machine.sleep(2) # make sure they're actually in there - machine.succeed("xdotool mousemove 780 40 click 1") + machine.succeed("xdotool mousemove 1000 40 click 1") + machine.sleep(2) machine.wait_for_text("Agenda") machine.screenshot("lomiri-calendar_eventadded") @@ -73,6 +83,9 @@ with subtest("lomiri calendar localisation works"): machine.succeed("env LANG=de_DE.UTF-8 lomiri-calendar-app >&2 &") + machine.sleep(10) + machine.send_key("alt-f10") + machine.sleep(2) machine.wait_for_text(r"(Montag|Dienstag|Mittwoch|Donnerstag|Freitag|Samstag|Sonntag)") machine.screenshot("lomiri-calendar_localised") ''; diff --git a/nixos/tests/lomiri-camera-app.nix b/nixos/tests/lomiri-camera-app.nix index ccd53a37135b..ec3442966982 100644 --- a/nixos/tests/lomiri-camera-app.nix +++ b/nixos/tests/lomiri-camera-app.nix @@ -47,7 +47,7 @@ testScript = let - qrLabel = "Image"; + qrLabel = "Feed"; qrContent = "Test"; in '' @@ -55,6 +55,10 @@ with subtest("lomiri camera launches"): machine.succeed("lomiri-camera-app >&2 &") + machine.wait_for_console_text("updateViewfinderResolution: viewfinder resolutions is not known yet") + machine.sleep(10) + machine.send_key("alt-f10") + machine.sleep(5) machine.wait_for_text("Cannot access") machine.screenshot("lomiri-camera_open") @@ -64,21 +68,26 @@ machine.succeed("modprobe v4l2loopback video_nr=10 card_label=Video-Loopback exclusive_caps=1") machine.succeed("qrtool encode '${qrContent}' -s 20 -m 10 > qr.png") # Horizontal flip, add text, flip back. Camera displays image mirrored, so need reversed text for OCR - machine.succeed("magick qr.png -flop -pointsize 70 -fill black -annotate +100+100 '${qrLabel}' -flop output.png") + machine.succeed("magick qr.png -flop -pointsize 30 -fill black -annotate +100+100 '${qrLabel}' -flop output.png") machine.succeed("ffmpeg -re -loop 1 -i output.png -vf format=yuv420p -f v4l2 /dev/video10 -loglevel fatal >&2 &") with subtest("lomiri camera uses camera"): machine.succeed("lomiri-camera-app >&2 &") + machine.wait_for_console_text("updateViewfinderResolution: For target resolution") + machine.sleep(10) + machine.send_key("alt-f10") + machine.sleep(5) machine.wait_for_text("${qrLabel}") machine.screenshot("lomiri-camera_feed") - machine.succeed("xdotool mousemove 320 610 click 1") # take photo - machine.wait_until_succeeds("find /root/Pictures/camera.ubports -name '*.jpg'") + machine.succeed("xdotool mousemove 510 670 click 1") # take photo + machine.wait_until_succeeds("ls /root/Pictures/camera.ubports | grep '\\.jpg$'") # Check that the image is correct machine.send_key("ctrl-alt-right") machine.succeed("magick /root/Pictures/camera.ubports/IMG_00000001.jpg -flop photo_flip.png") machine.succeed("feh photo_flip.png >&2 &") + machine.sleep(10) machine.wait_for_text("${qrLabel}") machine.screenshot("lomiri-camera_photo") @@ -88,18 +97,25 @@ with subtest("lomiri barcode scanner uses camera"): machine.succeed("lomiri-camera-app --mode=barcode-reader >&2 &") + machine.wait_for_console_text("updateViewfinderResolution: For target resolution") + machine.sleep(10) + machine.send_key("alt-f10") + machine.sleep(5) machine.wait_for_text("${qrLabel}") - machine.succeed("xdotool mousemove 320 610 click 1") # open up QR decode result + machine.succeed("xdotool mousemove 510 670 click 1") # open up QR decode result # OCR is struggling to recognise the text. Click the clipboard button and paste the result somewhere else machine.sleep(5) machine.screenshot("lomiri-barcode_decode") - machine.succeed("xdotool mousemove 350 530 click 1") + machine.succeed("xdotool mousemove 540 590 click 1") machine.sleep(5) # Need to make a new window without closing camera app, otherwise clipboard content gets lost? machine.send_key("ctrl-alt-right") machine.succeed("gnome-text-editor >&2 &") + machine.sleep(10) + machine.send_key("alt-f10") + machine.sleep(5) machine.wait_for_text("New") # Font size up to help with OCR @@ -129,6 +145,10 @@ with subtest("lomiri camera localisation works"): machine.succeed("env LANG=de_DE.UTF-8 lomiri-camera-app >&2 &") + machine.wait_for_console_text("updateViewfinderResolution: For target resolution") + machine.sleep(10) + machine.send_key("alt-f10") + machine.sleep(5) machine.wait_for_text("Kamera") machine.screenshot("lomiri-camera_localised") ''; diff --git a/nixos/tests/lomiri-clock-app.nix b/nixos/tests/lomiri-clock-app.nix index 9db5cee49cf7..d5cb72394abc 100644 --- a/nixos/tests/lomiri-clock-app.nix +++ b/nixos/tests/lomiri-clock-app.nix @@ -34,14 +34,20 @@ machine.wait_for_x() with subtest("lomiri clock launches"): - machine.execute("lomiri-clock-app >&2 &") + machine.succeed("lomiri-clock-app >&2 &") + machine.sleep(10) + machine.send_key("alt-f10") + machine.sleep(5) machine.wait_for_text(r"(clock.ubports|City|Alarms)") machine.screenshot("lomiri-clock_open") machine.succeed("pkill -f lomiri-clock-app") with subtest("lomiri clock localisation works"): - machine.execute("env LANG=de_DE.UTF-8 lomiri-clock-app >&2 &") + machine.succeed("env LANG=de_DE.UTF-8 lomiri-clock-app >&2 &") + machine.sleep(10) + machine.send_key("alt-f10") + machine.sleep(5) machine.wait_for_text(r"(Stadt|Weckzeiten)") machine.screenshot("lomiri-clock_localised") ''; diff --git a/nixos/tests/lomiri-docviewer-app.nix b/nixos/tests/lomiri-docviewer-app.nix index c21a121f6c02..ad9174e15d30 100644 --- a/nixos/tests/lomiri-docviewer-app.nix +++ b/nixos/tests/lomiri-docviewer-app.nix @@ -46,6 +46,9 @@ in with subtest("lomiri docviewer launches"): machine.succeed("lomiri-docviewer-app >&2 &") + machine.sleep(10) + machine.send_key("alt-f10") + machine.sleep(5) machine.wait_for_text("No documents") machine.screenshot("lomiri-docviewer_open") @@ -57,6 +60,9 @@ in with subtest("lomiri docviewer txt works"): machine.succeed("lomiri-docviewer-app /etc/docviewer-sampletext.txt >&2 &") + machine.sleep(10) + machine.send_key("alt-f10") + machine.sleep(5) machine.wait_for_text("${exampleText}") machine.screenshot("lomiri-docviewer_txt") @@ -64,6 +70,9 @@ in with subtest("lomiri docviewer odt works"): machine.succeed("lomiri-docviewer-app /root/docviewer-sampletext.odt >&2 &") + machine.sleep(10) + machine.send_key("alt-f10") + machine.sleep(5) machine.wait_for_text("${exampleText}") machine.screenshot("lomiri-docviewer_odt") @@ -71,6 +80,9 @@ in with subtest("lomiri docviewer pdf works"): machine.succeed("lomiri-docviewer-app /root/docviewer-sampletext.pdf >&2 &") + machine.sleep(10) + machine.send_key("alt-f10") + machine.sleep(5) machine.wait_for_text("${exampleText}") machine.screenshot("lomiri-docviewer_pdf") @@ -78,6 +90,9 @@ in with subtest("lomiri docviewer localisation works"): machine.succeed("env LANG=de_DE.UTF-8 lomiri-docviewer-app >&2 &") + machine.sleep(10) + machine.send_key("alt-f10") + machine.sleep(5) machine.wait_for_text("Keine Dokumente") machine.screenshot("lomiri-docviewer_localised") ''; diff --git a/nixos/tests/lomiri-gallery-app.nix b/nixos/tests/lomiri-gallery-app.nix index d8cf7466656a..c7cec10d875c 100644 --- a/nixos/tests/lomiri-gallery-app.nix +++ b/nixos/tests/lomiri-gallery-app.nix @@ -59,8 +59,15 @@ machine.succeed("mkdir /root/Pictures /root/Videos") # Setup example data, OCR-friendly: # - White square, black text + # - Small text for display OCR + # - Big text for gallery preview OCR # - uppercase extension - machine.succeed("magick -size 500x500 -background white -fill black canvas:white -pointsize 70 -annotate +100+300 '${imageLabel}' /root/Pictures/output.PNG") + machine.succeed( + "magick -size 500x500 -background white -fill black canvas:white " + + "-pointsize 20 -annotate +100+100 '${imageLabel}' " + + "-pointsize 50 -annotate +100+300 '${imageLabel}' " + + "/root/Pictures/output.PNG" + ) # Different image formats machine.succeed("magick /root/Pictures/output.PNG /root/Pictures/output.JPG") diff --git a/nixos/tests/lomiri-mediaplayer-app.nix b/nixos/tests/lomiri-mediaplayer-app.nix index b4ac5dd4ad2a..e1f20a4cc203 100644 --- a/nixos/tests/lomiri-mediaplayer-app.nix +++ b/nixos/tests/lomiri-mediaplayer-app.nix @@ -1,6 +1,6 @@ { lib, ... }: let - ocrContent = "Video Test"; + ocrContent = "Feed"; videoFile = "test.webm"; in { @@ -25,8 +25,8 @@ in ]; } '' - magick -size 400x400 canvas:white -pointsize 40 -fill black -annotate +100+100 '${ocrContent}' output.png - ffmpeg -re -loop 1 -i output.png -c:v libvpx -b:v 100K -t 120 $out -loglevel fatal + magick -size 600x600 canvas:white -pointsize 20 -fill black -annotate +100+100 '${ocrContent}' output.png + ffmpeg -re -loop 1 -i output.png -c:v libvpx -b:v 200K -t 120 $out -loglevel fatal ''; systemPackages = with pkgs.lomiri; [ suru-icon-theme @@ -54,6 +54,8 @@ in with subtest("lomiri mediaplayer launches"): machine.succeed("lomiri-mediaplayer-app >&2 &") + machine.sleep(10) + machine.send_key("alt-f10") machine.wait_for_text("Choose from") machine.screenshot("lomiri-mediaplayer_open") @@ -61,6 +63,8 @@ in with subtest("lomiri mediaplayer plays video"): machine.succeed("lomiri-mediaplayer-app /etc/${videoFile} >&2 &") + machine.sleep(10) + machine.send_key("alt-f10") machine.wait_for_text("${ocrContent}") machine.screenshot("lomiri-mediaplayer_playback") @@ -71,6 +75,8 @@ in # Cause an error, and look for the error popup machine.succeed("touch invalid.mp4") machine.succeed("env LANG=de_DE.UTF-8 lomiri-mediaplayer-app invalid.mp4 >&2 &") + machine.sleep(10) + machine.send_key("alt-f10") machine.wait_for_text("Fehler") machine.screenshot("lomiri-mediaplayer_localised") ''; diff --git a/nixos/tests/lomiri-music-app.nix b/nixos/tests/lomiri-music-app.nix index 93a3889c9127..354103f90e88 100644 --- a/nixos/tests/lomiri-music-app.nix +++ b/nixos/tests/lomiri-music-app.nix @@ -140,8 +140,10 @@ in with subtest("lomiri music launches"): machine.succeed("lomiri-music-app >&2 &") - machine.wait_for_text("favorite music") + machine.sleep(10) machine.send_key("alt-f10") + machine.sleep(2) + machine.wait_for_text("favorite music") machine.screenshot("lomiri-music") with subtest("lomiri music plays music"): @@ -187,6 +189,9 @@ in with subtest("lomiri music localisation works"): machine.succeed("env LANG=de_DE.UTF-8 lomiri-music-app .mp4 >&2 &") + machine.sleep(10) + machine.send_key("alt-f10") + machine.sleep(2) machine.wait_for_text("Titel") machine.screenshot("lomiri-music_localised") ''; diff --git a/nixos/tests/lomiri-system-settings.nix b/nixos/tests/lomiri-system-settings.nix index ab6dfe53630b..8018419f8863 100644 --- a/nixos/tests/lomiri-system-settings.nix +++ b/nixos/tests/lomiri-system-settings.nix @@ -109,7 +109,11 @@ machine.wait_for_x() with subtest("lomiri system settings launches"): - machine.execute("lomiri-system-settings >&2 &") + machine.succeed("lomiri-system-settings >&2 &") + machine.wait_for_console_text("qml: Plugin about does not exist") + machine.sleep(10) + machine.send_key("alt-f10") + machine.sleep(5) machine.wait_for_text("System Settings") machine.screenshot("lss_open") @@ -137,7 +141,11 @@ machine.execute("pkill -f lomiri-system-settings") with subtest("lomiri system settings localisation works"): - machine.execute("env LANG=de_DE.UTF-8 lomiri-system-settings >&2 &") + machine.succeed("env LANG=de_DE.UTF-8 lomiri-system-settings >&2 &") + machine.wait_for_console_text("qml: Plugin about does not exist") + machine.sleep(10) + machine.send_key("alt-f10") + machine.sleep(5) machine.wait_for_text("Systemeinstellungen") machine.screenshot("lss_localised_open") diff --git a/nixos/tests/teleports.nix b/nixos/tests/teleports.nix index a4293f954a45..613ad5a7fc84 100644 --- a/nixos/tests/teleports.nix +++ b/nixos/tests/teleports.nix @@ -34,14 +34,20 @@ machine.wait_for_x() with subtest("teleports launches"): - machine.execute("teleports >&2 &") + machine.succeed("teleports >&2 &") + machine.wait_for_console_text("authorizationStateWaitPhoneNumber") + machine.send_key("alt-f10") + machine.sleep(2) machine.wait_for_text(r"(TELEports|Phone Number)") machine.screenshot("teleports_open") machine.succeed("pkill -f teleports") with subtest("teleports localisation works"): - machine.execute("env LANG=de_DE.UTF-8 teleports >&2 &") + machine.succeed("env LANG=de_DE.UTF-8 teleports >&2 &") + machine.wait_for_console_text("authorizationStateWaitPhoneNumber") + machine.send_key("alt-f10") + machine.sleep(2) machine.wait_for_text("Telefonnummer") machine.screenshot("teleports_localised") '';