| 
									
										
										
										
											2019-12-03 21:51:26 +01:00
										 |  |  | import ./make-test-python.nix ({ pkgs, ...} : { | 
					
						
							| 
									
										
										
										
											2015-03-05 05:16:26 +01:00
										 |  |  |   name = "i3wm"; | 
					
						
							| 
									
										
										
										
											2021-01-10 20:08:30 +01:00
										 |  |  |   meta = with pkgs.lib.maintainers; { | 
					
						
							| 
									
										
										
										
											2015-07-12 12:09:40 +02:00
										 |  |  |     maintainers = [ aszlig ]; | 
					
						
							|  |  |  |   }; | 
					
						
							| 
									
										
										
										
											2015-03-05 05:16:26 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-07-20 20:56:59 +00:00
										 |  |  |   machine = { lib, ... }: { | 
					
						
							| 
									
										
										
										
											2015-03-05 05:16:26 +01:00
										 |  |  |     imports = [ ./common/x11.nix ./common/user-account.nix ]; | 
					
						
							| 
									
										
										
										
											2020-01-26 17:41:19 -05:00
										 |  |  |     test-support.displayManager.auto.user = "alice"; | 
					
						
							| 
									
										
										
										
											2019-12-10 15:10:30 +01:00
										 |  |  |     services.xserver.displayManager.defaultSession = lib.mkForce "none+i3"; | 
					
						
							| 
									
										
										
										
											2015-03-05 05:16:26 +01:00
										 |  |  |     services.xserver.windowManager.i3.enable = true; | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-07-20 20:56:59 +00:00
										 |  |  |   testScript = { ... }: ''
 | 
					
						
							| 
									
										
										
										
											2019-12-03 21:51:26 +01:00
										 |  |  |     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 we get first configuration window"): | 
					
						
							|  |  |  |         machine.wait_for_window(r".*?first configuration.*?") | 
					
						
							|  |  |  |         machine.sleep(2) | 
					
						
							|  |  |  |         machine.screenshot("started") | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     with subtest("ensure we generate and save a config"): | 
					
						
							|  |  |  |         # press return to indicate we want to gen a new config | 
					
						
							|  |  |  |         machine.send_key("\n") | 
					
						
							|  |  |  |         machine.sleep(2) | 
					
						
							|  |  |  |         machine.screenshot("preconfig") | 
					
						
							|  |  |  |         # press alt then return to indicate we want to use alt as our Mod key | 
					
						
							|  |  |  |         machine.send_key("alt") | 
					
						
							|  |  |  |         machine.send_key("\n") | 
					
						
							|  |  |  |         machine.sleep(2) | 
					
						
							|  |  |  |         # make sure the config file is created before we continue | 
					
						
							|  |  |  |         machine.wait_for_file("/home/alice/.config/i3/config") | 
					
						
							|  |  |  |         machine.screenshot("postconfig") | 
					
						
							|  |  |  |         machine.sleep(2) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     with subtest("ensure we can open a new terminal"): | 
					
						
							|  |  |  |         machine.send_key("alt-ret") | 
					
						
							|  |  |  |         machine.sleep(2) | 
					
						
							|  |  |  |         machine.wait_for_window(r"alice.*?machine") | 
					
						
							|  |  |  |         machine.sleep(2) | 
					
						
							|  |  |  |         machine.screenshot("terminal") | 
					
						
							| 
									
										
										
										
											2015-03-05 05:16:26 +01:00
										 |  |  |   '';
 | 
					
						
							| 
									
										
										
										
											2015-07-12 12:09:40 +02:00
										 |  |  | }) |