| 
									
										
										
										
											2019-12-02 22:20:36 +01:00
										 |  |  | import ./make-test-python.nix ({ pkgs, ...} : { | 
					
						
							| 
									
										
										
										
											2017-01-05 23:14:35 +00:00
										 |  |  |   name = "xrdp"; | 
					
						
							| 
									
										
										
										
											2021-01-10 20:08:30 +01:00
										 |  |  |   meta = with pkgs.lib.maintainers; { | 
					
						
							| 
									
										
										
										
											2017-01-05 23:14:35 +00:00
										 |  |  |     maintainers = [ volth ]; | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   nodes = { | 
					
						
							| 
									
										
										
										
											2018-07-20 20:56:59 +00:00
										 |  |  |     server = { pkgs, ... }: { | 
					
						
							| 
									
										
										
										
											2017-01-05 23:14:35 +00:00
										 |  |  |       imports = [ ./common/user-account.nix ]; | 
					
						
							|  |  |  |       services.xrdp.enable = true; | 
					
						
							|  |  |  |       services.xrdp.defaultWindowManager = "${pkgs.xterm}/bin/xterm"; | 
					
						
							|  |  |  |       networking.firewall.allowedTCPPorts = [ 3389 ]; | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-07-20 20:56:59 +00:00
										 |  |  |     client = { pkgs, ... }: { | 
					
						
							| 
									
										
										
										
											2017-01-05 23:14:35 +00:00
										 |  |  |       imports = [ ./common/x11.nix ./common/user-account.nix ]; | 
					
						
							| 
									
										
										
										
											2020-01-26 17:41:19 -05:00
										 |  |  |       test-support.displayManager.auto.user = "alice"; | 
					
						
							| 
									
										
										
										
											2017-01-05 23:14:35 +00:00
										 |  |  |       environment.systemPackages = [ pkgs.freerdp ]; | 
					
						
							|  |  |  |       services.xrdp.enable = true; | 
					
						
							|  |  |  |       services.xrdp.defaultWindowManager = "${pkgs.icewm}/bin/icewm"; | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-12-02 22:20:36 +01:00
										 |  |  |   testScript = { nodes, ... }: let | 
					
						
							|  |  |  |     user = nodes.client.config.users.users.alice; | 
					
						
							|  |  |  |   in ''
 | 
					
						
							|  |  |  |     start_all() | 
					
						
							| 
									
										
										
										
											2017-01-05 23:14:35 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-12-02 22:20:36 +01:00
										 |  |  |     client.wait_for_x() | 
					
						
							|  |  |  |     client.wait_for_file("${user.home}/.Xauthority") | 
					
						
							|  |  |  |     client.succeed("xauth merge ${user.home}/.Xauthority") | 
					
						
							| 
									
										
										
										
											2017-01-05 23:14:35 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-12-02 22:20:36 +01:00
										 |  |  |     client.sleep(5) | 
					
						
							| 
									
										
										
										
											2017-01-05 23:14:35 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-12-02 22:20:36 +01:00
										 |  |  |     client.execute("xterm &") | 
					
						
							|  |  |  |     client.sleep(1) | 
					
						
							|  |  |  |     client.send_chars("xfreerdp /cert-tofu /w:640 /h:480 /v:127.0.0.1 /u:${user.name} /p:${user.password}\n") | 
					
						
							|  |  |  |     client.sleep(5) | 
					
						
							|  |  |  |     client.screenshot("localrdp") | 
					
						
							| 
									
										
										
										
											2017-01-05 23:14:35 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-12-02 22:20:36 +01:00
										 |  |  |     client.execute("xterm &") | 
					
						
							|  |  |  |     client.sleep(1) | 
					
						
							|  |  |  |     client.send_chars("xfreerdp /cert-tofu /w:640 /h:480 /v:server /u:${user.name} /p:${user.password}\n") | 
					
						
							|  |  |  |     client.sleep(5) | 
					
						
							|  |  |  |     client.screenshot("remoterdp") | 
					
						
							| 
									
										
										
										
											2017-01-05 23:14:35 +00:00
										 |  |  |   '';
 | 
					
						
							|  |  |  | }) |