| 
									
										
										
										
											2017-01-05 23:14:35 +00:00
										 |  |  | import ./make-test.nix ({ pkgs, ...} : { | 
					
						
							|  |  |  |   name = "xrdp"; | 
					
						
							|  |  |  |   meta = with pkgs.stdenv.lib.maintainers; { | 
					
						
							|  |  |  |     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 ]; | 
					
						
							|  |  |  |       services.xserver.displayManager.auto.user = "alice"; | 
					
						
							|  |  |  |       environment.systemPackages = [ pkgs.freerdp ]; | 
					
						
							|  |  |  |       services.xrdp.enable = true; | 
					
						
							|  |  |  |       services.xrdp.defaultWindowManager = "${pkgs.icewm}/bin/icewm"; | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-07-20 20:56:59 +00:00
										 |  |  |   testScript = { ... }: ''
 | 
					
						
							| 
									
										
										
										
											2017-01-05 23:14:35 +00:00
										 |  |  |     startAll; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     $client->waitForX; | 
					
						
							|  |  |  |     $client->waitForFile("/home/alice/.Xauthority"); | 
					
						
							|  |  |  |     $client->succeed("xauth merge ~alice/.Xauthority"); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     $client->sleep(5); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     $client->execute("xterm &"); | 
					
						
							|  |  |  |     $client->sleep(1); | 
					
						
							|  |  |  |     $client->sendChars("xfreerdp /cert-tofu /w:640 /h:480 /v:127.0.0.1 /u:alice /p:foobar\n"); | 
					
						
							|  |  |  |     $client->sleep(5); | 
					
						
							|  |  |  |     $client->screenshot("localrdp"); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     $client->execute("xterm &"); | 
					
						
							|  |  |  |     $client->sleep(1); | 
					
						
							|  |  |  |     $client->sendChars("xfreerdp /cert-tofu /w:640 /h:480 /v:server /u:alice /p:foobar\n"); | 
					
						
							|  |  |  |     $client->sleep(5); | 
					
						
							|  |  |  |     $client->screenshot("remoterdp"); | 
					
						
							|  |  |  |   '';
 | 
					
						
							|  |  |  | }) |