1import ./make-test-python.nix ({ pkgs, ...} : {
2 name = "xfce";
3
4 nodes.machine =
5 { pkgs, ... }:
6
7 {
8 imports = [
9 ./common/user-account.nix
10 ];
11
12 services.xserver.enable = true;
13
14 services.xserver.displayManager = {
15 lightdm.enable = true;
16 autoLogin = {
17 enable = true;
18 user = "alice";
19 };
20 };
21
22 services.xserver.desktopManager.xfce.enable = true;
23
24 hardware.pulseaudio.enable = true; # needed for the factl test, /dev/snd/* exists without them but udev doesn't care then
25
26 };
27
28 testScript = { nodes, ... }: let
29 user = nodes.machine.config.users.users.alice;
30 in ''
31 machine.wait_for_x()
32 machine.wait_for_file("${user.home}/.Xauthority")
33 machine.succeed("xauth merge ${user.home}/.Xauthority")
34 machine.wait_for_window("xfce4-panel")
35 machine.sleep(10)
36
37 # Check that logging in has given the user ownership of devices.
38 machine.succeed("getfacl -p /dev/snd/timer | grep -q ${user.name}")
39
40 machine.succeed("su - ${user.name} -c 'DISPLAY=:0.0 xfce4-terminal >&2 &'")
41 machine.wait_for_window("Terminal")
42 machine.sleep(10)
43 machine.screenshot("screen")
44 '';
45})