| 
									
										
										
										
											2015-07-12 12:09:40 +02:00
										 |  |  | import ./make-test.nix ({ pkgs, ...} : { | 
					
						
							| 
									
										
										
										
											2014-06-28 16:04:49 +02:00
										 |  |  |   name = "xfce"; | 
					
						
							| 
									
										
										
										
											2015-07-12 12:09:40 +02:00
										 |  |  |   meta = with pkgs.stdenv.lib.maintainers; { | 
					
						
							|  |  |  |     maintainers = [ eelco chaoflow shlevy ]; | 
					
						
							|  |  |  |   }; | 
					
						
							| 
									
										
										
										
											2011-03-11 17:00:10 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-14 18:20:50 +00:00
										 |  |  |   machine = | 
					
						
							| 
									
										
										
										
											2018-07-20 20:56:59 +00:00
										 |  |  |     { pkgs, ... }: | 
					
						
							| 
									
										
										
										
											2011-03-11 17:00:10 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-09-04 13:05:09 +02:00
										 |  |  |     { imports = [ ./common/user-account.nix ]; | 
					
						
							| 
									
										
										
										
											2011-03-17 14:04:47 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |       services.xserver.enable = true; | 
					
						
							| 
									
										
										
										
											2011-03-11 17:00:10 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |       services.xserver.displayManager.auto.enable = true; | 
					
						
							|  |  |  |       services.xserver.displayManager.auto.user = "alice"; | 
					
						
							| 
									
										
										
										
											2011-09-14 18:20:50 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-03-11 17:00:10 +00:00
										 |  |  |       services.xserver.desktopManager.xfce.enable = true; | 
					
						
							| 
									
										
										
										
											2016-04-12 19:12:28 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |       environment.systemPackages = [ pkgs.xorg.xmessage ]; | 
					
						
							| 
									
										
										
										
											2011-03-11 17:00:10 +00:00
										 |  |  |     }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   testScript = | 
					
						
							|  |  |  |     ''
 | 
					
						
							| 
									
										
										
										
											2014-01-22 14:23:56 -05:00
										 |  |  |       $machine->waitForX; | 
					
						
							| 
									
										
										
										
											2016-04-12 19:12:47 +02:00
										 |  |  |       $machine->waitForFile("/home/alice/.Xauthority"); | 
					
						
							|  |  |  |       $machine->succeed("xauth merge ~alice/.Xauthority"); | 
					
						
							| 
									
										
										
										
											2011-09-22 08:27:29 +00:00
										 |  |  |       $machine->waitForWindow(qr/xfce4-panel/); | 
					
						
							| 
									
										
										
										
											2011-03-11 17:00:10 +00:00
										 |  |  |       $machine->sleep(10); | 
					
						
							| 
									
										
										
										
											2011-08-08 17:16:49 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |       # Check that logging in has given the user ownership of devices. | 
					
						
							|  |  |  |       $machine->succeed("getfacl /dev/snd/timer | grep -q alice"); | 
					
						
							| 
									
										
										
										
											2011-09-14 18:20:50 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-06-23 13:13:03 +02:00
										 |  |  |       $machine->succeed("su - alice -c 'DISPLAY=:0.0 xfce4-terminal &'"); | 
					
						
							| 
									
										
										
										
											2011-03-11 17:00:10 +00:00
										 |  |  |       $machine->waitForWindow(qr/Terminal/); | 
					
						
							|  |  |  |       $machine->sleep(10); | 
					
						
							|  |  |  |       $machine->screenshot("screen"); | 
					
						
							| 
									
										
										
										
											2016-04-12 19:12:28 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |       # Ensure that the X server does proper access control. | 
					
						
							|  |  |  |       $machine->mustFail("su - bob -c 'DISPLAY=:0.0 xmessage Foo'"); | 
					
						
							|  |  |  |       $machine->mustFail("su - bob -c 'DISPLAY=:0 xmessage Foo'"); | 
					
						
							| 
									
										
										
										
											2011-03-11 17:00:10 +00:00
										 |  |  |     '';
 | 
					
						
							| 
									
										
										
										
											2015-07-12 12:09:40 +02:00
										 |  |  | }) |