at 25.11-pre 2.9 kB view raw
1{ pkgs, lib, ... }: 2{ 3 name = "lomiri-calendar-app-standalone"; 4 meta = { 5 maintainers = lib.teams.lomiri.members; 6 # This needs a Linux VM 7 platforms = lib.platforms.linux; 8 }; 9 10 nodes.machine = 11 { config, pkgs, ... }: 12 { 13 imports = [ ./common/x11.nix ]; 14 15 services.xserver.enable = true; 16 17 environment = { 18 systemPackages = 19 with pkgs; 20 [ 21 xdotool # mouse movement 22 ] 23 ++ (with pkgs.lomiri; [ 24 suru-icon-theme 25 lomiri-calendar-app 26 ]); 27 variables = { 28 UITK_ICON_THEME = "suru"; 29 }; 30 }; 31 32 i18n.supportedLocales = [ "all" ]; 33 34 fonts.packages = with pkgs; [ 35 # Intended font & helps with OCR 36 ubuntu-classic 37 ]; 38 }; 39 40 enableOCR = true; 41 42 testScript = '' 43 machine.wait_for_x() 44 45 with subtest("lomiri calendar launches"): 46 machine.succeed("lomiri-calendar-app >&2 &") 47 machine.sleep(10) 48 machine.send_key("alt-f10") 49 machine.sleep(2) 50 # Default page is unbearably slow to OCR on, switch to another 51 machine.succeed("xdotool mousemove 580 50 click 1") 52 machine.sleep(2) 53 machine.wait_for_text(r"(January|February|March|April|May|June|July|August|September|October|November|December|Mon|Tue|Wed|Thu|Fri|Sat|Sun)") 54 machine.screenshot("lomiri-calendar") 55 56 with subtest("lomiri calendar works"): 57 # Switch to Agenda tab, less busy 58 machine.succeed("xdotool mousemove 380 50 click 1") 59 machine.sleep(2) 60 61 # Still on main page 62 machine.succeed("xdotool mousemove 500 720 click 1") 63 machine.sleep(2) 64 machine.wait_for_text(r"(Date|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday|All day|Name|Details|More)") 65 machine.screenshot("lomiri-calendar_newevent") 66 67 # On New Event page 68 machine.succeed("xdotool mousemove 500 230 click 1") 69 machine.sleep(2) 70 machine.send_chars("foobar") 71 machine.sleep(2) # make sure they're actually in there 72 machine.succeed("xdotool mousemove 1000 40 click 1") 73 machine.sleep(2) 74 machine.wait_for_text("Agenda") 75 machine.screenshot("lomiri-calendar_eventadded") 76 77 # Back on main page 78 # Event was created, does it have the correct name? 79 machine.wait_for_text("foobar") 80 machine.screenshot("lomiri-calendar_works") 81 82 machine.succeed("pkill -f lomiri-calendar-app") 83 84 with subtest("lomiri calendar localisation works"): 85 machine.succeed("env LANG=de_DE.UTF-8 lomiri-calendar-app >&2 &") 86 machine.sleep(10) 87 machine.send_key("alt-f10") 88 machine.sleep(2) 89 machine.wait_for_text(r"(Montag|Dienstag|Mittwoch|Donnerstag|Freitag|Samstag|Sonntag)") 90 machine.screenshot("lomiri-calendar_localised") 91 ''; 92}