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