1{ pkgs, lib, ... }:
2{
3 name = "morph-browser-standalone";
4 meta.maintainers = lib.teams.lomiri.members;
5
6 nodes.machine =
7 { config, pkgs, ... }:
8 {
9 imports = [
10 ./common/x11.nix
11 ];
12
13 services.xserver.enable = true;
14
15 environment = {
16 systemPackages = with pkgs.lomiri; [
17 suru-icon-theme
18 morph-browser
19 ];
20 variables = {
21 UITK_ICON_THEME = "suru";
22 };
23 };
24
25 i18n.supportedLocales = [ "all" ];
26
27 fonts.packages = with pkgs; [
28 # Intended font & helps with OCR
29 ubuntu-classic
30 ];
31 };
32
33 enableOCR = true;
34
35 testScript = ''
36 machine.wait_for_x()
37
38 with subtest("morph browser launches"):
39 machine.succeed("morph-browser >&2 &")
40 machine.sleep(10)
41 machine.send_key("alt-f10")
42 machine.sleep(5)
43 machine.wait_for_text(r"Web Browser|New|sites|Bookmarks")
44 machine.screenshot("morph_open")
45
46 with subtest("morph browser displays HTML"):
47 machine.send_chars("file://${pkgs.valgrind.doc}/share/doc/valgrind/html/index.html\n")
48 machine.wait_for_text("Valgrind Documentation")
49 machine.screenshot("morph_htmlcontent")
50
51 machine.succeed("pkill -f morph-browser")
52
53 # Get rid of saved tabs, to show localised start page
54 machine.succeed("rm -r /root/.local/share/morph-browser")
55
56 with subtest("morph browser localisation works"):
57 machine.succeed("env LANG=de_DE.UTF-8 morph-browser >&2 &")
58 machine.sleep(10)
59 machine.send_key("alt-f10")
60 machine.sleep(5)
61 machine.wait_for_text(r"Web-Browser|Neuer|Seiten|Lesezeichen")
62 machine.screenshot("morph_localised")
63 '';
64}