1{ lib, ... }:
2let
3 exampleText = "Lorem ipsum dolor sit amet";
4in
5{
6 name = "lomiri-docviewer-app-standalone";
7 meta.maintainers = lib.teams.lomiri.members;
8
9 nodes.machine =
10 { config, pkgs, ... }:
11 {
12 imports = [ ./common/x11.nix ];
13
14 services.xserver.enable = true;
15
16 environment = {
17 etc."docviewer-sampletext.txt".text = exampleText;
18 systemPackages =
19 with pkgs;
20 [
21 libreoffice # txt -> odf to test LibreOfficeKit integration
22 ]
23 ++ (with pkgs.lomiri; [
24 suru-icon-theme
25 lomiri-docviewer-app
26 ]);
27 variables = {
28 UITK_ICON_THEME = "suru";
29 };
30 };
31
32 i18n.supportedLocales = [ "all" ];
33
34 fonts = {
35 packages = with pkgs; [
36 # Intended font & helps with OCR
37 ubuntu-classic
38 ];
39 };
40 };
41
42 enableOCR = true;
43
44 testScript = ''
45 machine.wait_for_x()
46
47 with subtest("lomiri docviewer launches"):
48 machine.succeed("lomiri-docviewer-app >&2 &")
49 machine.sleep(10)
50 machine.send_key("alt-f10")
51 machine.sleep(5)
52 machine.wait_for_text("No documents")
53 machine.screenshot("lomiri-docviewer_open")
54
55 machine.succeed("pkill -f lomiri-docviewer-app")
56
57 # Setup different document types
58 machine.succeed("soffice --convert-to odt --outdir /root/ /etc/docviewer-sampletext.txt")
59 machine.succeed("soffice --convert-to pdf --outdir /root/ /etc/docviewer-sampletext.txt")
60
61 with subtest("lomiri docviewer txt works"):
62 machine.succeed("lomiri-docviewer-app /etc/docviewer-sampletext.txt >&2 &")
63 machine.sleep(10)
64 machine.send_key("alt-f10")
65 machine.sleep(5)
66 machine.wait_for_text("${exampleText}")
67 machine.screenshot("lomiri-docviewer_txt")
68
69 machine.succeed("pkill -f lomiri-docviewer-app")
70
71 with subtest("lomiri docviewer odt works"):
72 machine.succeed("lomiri-docviewer-app /root/docviewer-sampletext.odt >&2 &")
73 machine.sleep(10)
74 machine.send_key("alt-f10")
75 machine.sleep(5)
76 machine.wait_for_text("${exampleText}")
77 machine.screenshot("lomiri-docviewer_odt")
78
79 machine.succeed("pkill -f lomiri-docviewer-app")
80
81 with subtest("lomiri docviewer pdf works"):
82 machine.succeed("lomiri-docviewer-app /root/docviewer-sampletext.pdf >&2 &")
83 machine.sleep(10)
84 machine.send_key("alt-f10")
85 machine.sleep(5)
86 machine.wait_for_text("${exampleText}")
87 machine.screenshot("lomiri-docviewer_pdf")
88
89 machine.succeed("pkill -f lomiri-docviewer-app")
90
91 with subtest("lomiri docviewer localisation works"):
92 machine.succeed("env LANG=de_DE.UTF-8 lomiri-docviewer-app >&2 &")
93 machine.sleep(10)
94 machine.send_key("alt-f10")
95 machine.sleep(5)
96 machine.wait_for_text("Keine Dokumente")
97 machine.screenshot("lomiri-docviewer_localised")
98 '';
99}