at 16.09-beta 1.3 kB view raw
1import ./make-test.nix ({ pkgs, ...} : { 2 name = "xfce"; 3 meta = with pkgs.stdenv.lib.maintainers; { 4 maintainers = [ eelco chaoflow shlevy ]; 5 }; 6 7 machine = 8 { config, pkgs, ... }: 9 10 { imports = [ ./common/user-account.nix ]; 11 12 services.xserver.enable = true; 13 14 services.xserver.displayManager.auto.enable = true; 15 services.xserver.displayManager.auto.user = "alice"; 16 17 services.xserver.desktopManager.xfce.enable = true; 18 19 environment.systemPackages = [ pkgs.xorg.xmessage ]; 20 }; 21 22 testScript = 23 '' 24 $machine->waitForX; 25 $machine->waitForFile("/home/alice/.Xauthority"); 26 $machine->succeed("xauth merge ~alice/.Xauthority"); 27 $machine->waitForWindow(qr/xfce4-panel/); 28 $machine->sleep(10); 29 30 # Check that logging in has given the user ownership of devices. 31 $machine->succeed("getfacl /dev/snd/timer | grep -q alice"); 32 33 $machine->succeed("su - alice -c 'DISPLAY=:0.0 xfce4-terminal &'"); 34 $machine->waitForWindow(qr/Terminal/); 35 $machine->sleep(10); 36 $machine->screenshot("screen"); 37 38 # Ensure that the X server does proper access control. 39 $machine->mustFail("su - bob -c 'DISPLAY=:0.0 xmessage Foo'"); 40 $machine->mustFail("su - bob -c 'DISPLAY=:0 xmessage Foo'"); 41 ''; 42})