1{ pkgs, ... }:
2{
3 name = "enlightenment";
4
5 meta = with pkgs.lib.maintainers; {
6 maintainers = [ romildo ];
7 timeout = 600;
8 # OCR tests are flaky
9 broken = true;
10 };
11
12 nodes.machine =
13 { ... }:
14 {
15 imports = [ ./common/user-account.nix ];
16 services.xserver.enable = true;
17 services.xserver.desktopManager.enlightenment.enable = true;
18 services.xserver.displayManager = {
19 lightdm.enable = true;
20 autoLogin = {
21 enable = true;
22 user = "alice";
23 };
24 };
25 environment.systemPackages = [ pkgs.xdotool ];
26 services.acpid.enable = true;
27 services.connman.enable = true;
28 services.connman.package = pkgs.connmanMinimal;
29 };
30
31 enableOCR = true;
32
33 testScript =
34 { nodes, ... }:
35 let
36 user = nodes.machine.config.users.users.alice;
37 in
38 ''
39 with subtest("Ensure x starts"):
40 machine.wait_for_x()
41 machine.wait_for_file("${user.home}/.Xauthority")
42 machine.succeed("xauth merge ${user.home}/.Xauthority")
43
44 with subtest("Check that logging in has given the user ownership of devices"):
45 machine.succeed("getfacl -p /dev/snd/timer | grep -q ${user.name}")
46
47 with subtest("First time wizard"):
48 machine.wait_for_text("Default") # Language
49 machine.screenshot("wizard1")
50 machine.succeed("xdotool mousemove 512 740 click 1") # Next
51 machine.screenshot("wizard2")
52
53 machine.wait_for_text("English") # Keyboard (default)
54 machine.screenshot("wizard3")
55 machine.succeed("xdotool mousemove 512 740 click 1") # Next
56
57 machine.wait_for_text("Standard") # Profile (default)
58 machine.screenshot("wizard4")
59 machine.succeed("xdotool mousemove 512 740 click 1") # Next
60
61 machine.wait_for_text("Title") # Sizing (default)
62 machine.screenshot("wizard5")
63 machine.succeed("xdotool mousemove 512 740 click 1") # Next
64
65 machine.wait_for_text("clicked") # Windows Focus
66 machine.succeed("xdotool mousemove 512 370 click 1") # Click
67 machine.screenshot("wizard6")
68 machine.succeed("xdotool mousemove 512 740 click 1") # Next
69
70 machine.wait_for_text("Connman") # Network Management (default)
71 machine.screenshot("wizard7")
72 machine.succeed("xdotool mousemove 512 740 click 1") # Next
73
74 machine.wait_for_text("BlusZ") # Bluetooth Management (default)
75 machine.screenshot("wizard8")
76 machine.succeed("xdotool mousemove 512 740 click 1") # Next
77
78 machine.wait_for_text("OpenGL") # Compositing (default)
79 machine.screenshot("wizard9")
80 machine.succeed("xdotool mousemove 512 740 click 1") # Next
81
82 machine.wait_for_text("update") # Updates
83 machine.succeed("xdotool mousemove 512 495 click 1") # Disable
84 machine.screenshot("wizard10")
85 machine.succeed("xdotool mousemove 512 740 click 1") # Next
86
87 machine.wait_for_text("taskbar") # Taskbar
88 machine.succeed("xdotool mousemove 480 410 click 1") # Enable
89 machine.screenshot("wizard11")
90 machine.succeed("xdotool mousemove 512 740 click 1") # Next
91
92 machine.wait_for_text("Home") # The desktop
93 machine.screenshot("wizard12")
94
95 with subtest("Run Terminology"):
96 machine.succeed("terminology >&2 &")
97 machine.sleep(5)
98 machine.send_chars("ls --color -alF\n")
99 machine.sleep(2)
100 machine.screenshot("terminology")
101 '';
102}