47 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
import ./make-test-python.nix ({ pkgs, ...} : {
 | 
						|
  name = "xfce";
 | 
						|
 | 
						|
  machine =
 | 
						|
    { pkgs, ... }:
 | 
						|
 | 
						|
    {
 | 
						|
      imports = [
 | 
						|
        ./common/user-account.nix
 | 
						|
      ];
 | 
						|
 | 
						|
      services.xserver.enable = true;
 | 
						|
 | 
						|
      services.xserver.displayManager = {
 | 
						|
        lightdm.enable = true;
 | 
						|
        autoLogin = {
 | 
						|
          enable = true;
 | 
						|
          user = "alice";
 | 
						|
        };
 | 
						|
      };
 | 
						|
 | 
						|
      services.xserver.desktopManager.xfce.enable = true;
 | 
						|
 | 
						|
      hardware.pulseaudio.enable = true; # needed for the factl test, /dev/snd/* exists without them but udev doesn't care then
 | 
						|
 | 
						|
      virtualisation.memorySize = 1024;
 | 
						|
    };
 | 
						|
 | 
						|
  testScript = { nodes, ... }: let
 | 
						|
    user = nodes.machine.config.users.users.alice;
 | 
						|
  in ''
 | 
						|
      machine.wait_for_x()
 | 
						|
      machine.wait_for_file("${user.home}/.Xauthority")
 | 
						|
      machine.succeed("xauth merge ${user.home}/.Xauthority")
 | 
						|
      machine.wait_for_window("xfce4-panel")
 | 
						|
      machine.sleep(10)
 | 
						|
 | 
						|
      # Check that logging in has given the user ownership of devices.
 | 
						|
      machine.succeed("getfacl -p /dev/snd/timer | grep -q ${user.name}")
 | 
						|
 | 
						|
      machine.succeed("su - ${user.name} -c 'DISPLAY=:0.0 xfce4-terminal &'")
 | 
						|
      machine.wait_for_window("Terminal")
 | 
						|
      machine.sleep(10)
 | 
						|
      machine.screenshot("screen")
 | 
						|
    '';
 | 
						|
})
 |