at master 3.2 kB view raw
1{ lib, ... }: 2let 3 ocrContent = "Feed"; 4 videoFile = "test.webm"; 5in 6{ 7 name = "lomiri-mediaplayer-app-standalone"; 8 meta.maintainers = lib.teams.lomiri.members; 9 10 nodes.machine = 11 { config, pkgs, ... }: 12 { 13 imports = [ ./common/x11.nix ]; 14 15 services.xserver.enable = true; 16 17 environment = { 18 # Setup video 19 etc."${videoFile}".source = 20 pkgs.runCommand videoFile 21 { 22 nativeBuildInputs = with pkgs; [ 23 ffmpeg # produce video for OCR 24 (imagemagick.override { ghostscriptSupport = true; }) # produce OCR-able image 25 ]; 26 } 27 '' 28 magick -size 600x600 canvas:white -pointsize 20 -fill black -annotate +100+100 '${ocrContent}' output.png 29 ffmpeg -re -loop 1 -i output.png -c:v libvpx -b:v 200K -t 120 $out -loglevel fatal 30 ''; 31 systemPackages = with pkgs.lomiri; [ 32 suru-icon-theme 33 lomiri-mediaplayer-app 34 ]; 35 variables = { 36 UITK_ICON_THEME = "suru"; 37 }; 38 }; 39 40 i18n.supportedLocales = [ "all" ]; 41 42 fonts = { 43 packages = with pkgs; [ 44 # Intended font & helps with OCR 45 ubuntu-classic 46 ]; 47 }; 48 }; 49 50 enableOCR = true; 51 52 testScript = '' 53 machine.wait_for_x() 54 55 with subtest("lomiri mediaplayer launches"): 56 machine.succeed("lomiri-mediaplayer-app >&2 &") 57 machine.wait_for_console_text("The name com.lomiri.content.dbus.Service was not provided") 58 machine.wait_for_console_text("The name com.lomiri.content.dbus.Service was not provided") # Emitted twice 59 machine.sleep(10) 60 machine.send_key("alt-f10") 61 machine.sleep(5) 62 machine.wait_for_text(r"(Choose|Sorry|provide|content)") 63 machine.screenshot("lomiri-mediaplayer_open") 64 65 machine.succeed("pkill -f lomiri-mediaplayer-app") 66 67 with subtest("lomiri mediaplayer plays video"): 68 machine.succeed("lomiri-mediaplayer-app /etc/${videoFile} >&2 &") 69 machine.wait_for_console_text("The name com.lomiri.content.dbus.Service was not provided") # Only once here 70 machine.wait_for_console_text("qml: onPositionChanged") 71 machine.sleep(10) 72 machine.send_key("alt-f10") 73 machine.sleep(5) 74 machine.wait_for_text("${ocrContent}") 75 machine.screenshot("lomiri-mediaplayer_playback") 76 77 machine.succeed("pkill -f lomiri-mediaplayer-app") 78 79 with subtest("lomiri mediaplayer localisation works"): 80 # OCR struggles with finding the translated window title, and lomiri-content-hub QML isn't translated 81 # Cause an error, and look for the error popup 82 machine.succeed("touch invalid.mp4") 83 machine.succeed("env LANG=de_DE.UTF-8 lomiri-mediaplayer-app invalid.mp4 >&2 &") 84 machine.wait_for_console_text("The name com.lomiri.content.dbus.Service was not provided") 85 machine.wait_for_console_text("Der Datenstrom enthält keine Daten") 86 machine.sleep(10) 87 machine.send_key("alt-f10") 88 machine.sleep(5) 89 machine.wait_for_text(r"(Fehler|Abspielen|fehlgeschlagen)") 90 machine.screenshot("lomiri-mediaplayer_localised") 91 ''; 92}