39 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
		
		
			
		
	
	
			39 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
|   | import ./make-test-python.nix ({ lib, ...} : { | ||
|  |   name = "herbstluftwm"; | ||
|  | 
 | ||
|  |   meta = { | ||
|  |     maintainers = with lib.maintainers; [ thibautmarty ]; | ||
|  |     timeout = 30; | ||
|  |   }; | ||
|  | 
 | ||
|  |   machine = { pkgs, lib, ... }: { | ||
|  |     imports = [ ./common/x11.nix ./common/user-account.nix ]; | ||
|  |     test-support.displayManager.auto.user = "alice"; | ||
|  |     services.xserver.displayManager.defaultSession = lib.mkForce "none+herbstluftwm"; | ||
|  |     services.xserver.windowManager.herbstluftwm.enable = true; | ||
|  |     environment.systemPackages = [ pkgs.dzen2 ]; # needed for upstream provided panel | ||
|  |   }; | ||
|  | 
 | ||
|  |   testScript = ''
 | ||
|  |     with subtest("ensure x starts"): | ||
|  |         machine.wait_for_x() | ||
|  |         machine.wait_for_file("/home/alice/.Xauthority") | ||
|  |         machine.succeed("xauth merge ~alice/.Xauthority") | ||
|  | 
 | ||
|  |     with subtest("ensure client is available"): | ||
|  |         machine.succeed("herbstclient --version") | ||
|  | 
 | ||
|  |     with subtest("ensure keybindings are set"): | ||
|  |         machine.wait_until_succeeds("herbstclient list_keybinds | grep xterm") | ||
|  | 
 | ||
|  |     with subtest("ensure panel starts"): | ||
|  |         machine.wait_for_window("dzen title") | ||
|  | 
 | ||
|  |     with subtest("ensure we can open a new terminal"): | ||
|  |         machine.send_key("alt-ret") | ||
|  |         machine.wait_for_window(r"alice.*?machine") | ||
|  |         machine.sleep(2) | ||
|  |         machine.screenshot("terminal") | ||
|  |   '';
 | ||
|  | }) |