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