@@ -24,11 +24,12 @@ public void Test1()
2424 var port = "3389" ;
2525 var vault = "10.5.33.238" ;
2626 var token = "epdFwRQSofwL6xJV4Ud32g4TXKM7XgXkYU8ks4i5GQHURRoBiFq5Rjr4dT" ;
27- var targetuser = "win10-acct1" ;
27+ var targetuser = "win10-acct1%20with%20Space" ;
28+ var decodedTargetUser = "win10-acct1 with Space" ;
2829 var targethost = "10.5.60.94" ;
2930 var targetport = "3389" ;
3031 var user = $ "username=s:localhost%5cvaultaddress%7e{ vault } %25token%7e{ token } %25{ targetuser } %25{ targethost } :{ targetport } ";
31- var decodedUser = $ "localhost\\ vaultaddress~{ vault } %token~{ token } %{ targetuser } %{ targethost } :{ targetport } ";
32+ var decodedUser = $ "localhost\\ vaultaddress~{ vault } %token~{ token } %{ decodedTargetUser } %{ targethost } :{ targetport } ";
3233
3334 var str = $ "full+address=s:{ host } :{ port } &{ user } ";
3435 var dictionary = sut . Parse ( $ "{ str } /") ;
@@ -40,7 +41,7 @@ public void Test1()
4041 Assert . Equal ( decodedUser , dictionary [ Token . User ] ) ;
4142 Assert . Equal ( vault , dictionary [ Token . Vault ] ) ;
4243 Assert . Equal ( token , dictionary [ Token . Token ] ) ;
43- Assert . Equal ( targetuser , dictionary [ Token . TargetUser ] ) ;
44+ Assert . Equal ( decodedTargetUser , dictionary [ Token . TargetUser ] ) ;
4445 Assert . Equal ( targethost , dictionary [ Token . TargetHost ] ) ;
4546 Assert . Equal ( targetport , dictionary [ Token . TargetPort ] ) ;
4647 Assert . Equal ( string . Empty , dictionary [ Token . GeneratedFile ] ) ;
@@ -62,13 +63,13 @@ public void Test2()
6263 //rdp://username=s:encodeduser&full+address=s:hostname:port&screen%20mode%20id=i:3&shell working directory=s:C:/dir1 dir2
6364 using ( var sut = new DefaultRdpUrlParser ( new Dto . ParserConfig { UseDefaultTemplate = true } ) )
6465 {
65- var url = "rdp://username=s:myuser %5cishere&full%20address=s:myhostname:3333&screen%20mode%20id=i:3&shell+working+directory=s:C%3a%2Fdir1+dir2/" ;
66+ var url = "rdp://username=s:my%20test%20user %5cishere&full%20address=s:myhostname:3333&screen%20mode%20id=i:3&shell+working+directory=s:C%3a%2Fdir1+dir2/" ;
6667 var dictionary = sut . Parse ( $ "{ url } ") ;
6768 Assert . Equal ( url , dictionary [ Token . OriginalUrl ] ) ;
6869 Assert . Equal ( "rdp" , dictionary [ Token . Protocol ] ) ;
6970 Assert . Equal ( "myhostname" , dictionary [ Token . Host ] ) ;
7071 Assert . Equal ( "3333" , dictionary [ Token . Port ] ) ;
71- Assert . Equal ( "myuser \\ ishere" , dictionary [ Token . User ] ) ;
72+ Assert . Equal ( "my test user \\ ishere" , dictionary [ Token . User ] ) ;
7273 var tempfile = dictionary [ Token . GeneratedFile ] ;
7374 var lines = File . ReadAllLines ( tempfile ) ;
7475 var count = 0 ;
@@ -92,7 +93,7 @@ public void Test2()
9293 if ( Regex . IsMatch ( one , "^username" ) )
9394 {
9495 count ++ ;
95- Assert . Equal ( "username:s:myuser \\ ishere" , one ) ;
96+ Assert . Equal ( "username:s:my test user \\ ishere" , one ) ;
9697 }
9798 }
9899 Assert . Equal ( 4 , count ) ;
@@ -116,13 +117,13 @@ public void Test3()
116117
117118 using ( var sut = new DefaultRdpUrlParser ( new Dto . ParserConfig { UseTemplateFile = template } ) )
118119 {
119- var url = "rdp://username=s:myuser %5cishere&full%20address=s:myhostname:3333&screen%20mode%20id=i:3&shell+working+directory=s:C%3a%2Fdir1+dir2/" ;
120+ var url = "rdp://username=s:my test user %5cishere&full%20address=s:myhostname:3333&screen%20mode%20id=i:3&shell+working+directory=s:C%3a%2Fdir1+dir2/" ;
120121 var dictionary = sut . Parse ( $ "{ url } ") ;
121122 Assert . Equal ( url , dictionary [ Token . OriginalUrl ] ) ;
122123 Assert . Equal ( "rdp" , dictionary [ Token . Protocol ] ) ;
123124 Assert . Equal ( "myhostname" , dictionary [ Token . Host ] ) ;
124125 Assert . Equal ( "3333" , dictionary [ Token . Port ] ) ;
125- Assert . Equal ( "myuser \\ ishere" , dictionary [ Token . User ] ) ;
126+ Assert . Equal ( "my test user \\ ishere" , dictionary [ Token . User ] ) ;
126127 var tempfile = dictionary [ Token . GeneratedFile ] ;
127128 var fileLines = File . ReadAllLines ( tempfile ) ;
128129 var count = 0 ;
@@ -146,7 +147,7 @@ public void Test3()
146147 else if ( Regex . IsMatch ( one , "^username" ) )
147148 {
148149 count ++ ;
149- Assert . Equal ( "username:s:myuser \\ ishere" , one ) ;
150+ Assert . Equal ( "username:s:my test user \\ ishere" , one ) ;
150151 }
151152 }
152153 Assert . Equal ( 4 , count ) ;
@@ -167,17 +168,18 @@ public void Test4()
167168
168169
169170 //standard URI
170- //myprot://myuser :mypass@myhost:2222/thisisapath?queryit#fragment
171+ //myprot://my test user :mypass@myhost:2222/thisisapath?queryit#fragment
171172 using ( sut = new DefaultRdpUrlParser ( new Dto . ParserConfig ( ) ) ) {
172173
173- str = "myuser%5c:mypass@myhost:3456/thisisapath?queryit#fragment" ;
174+ str = "my%20test%20user%5c:mypass@myhost:3456/thisisapath?queryit#fragment" ;
175+ var decodedStr = "my test user\\ :mypass@myhost:3456/thisisapath?queryit#fragment" ;
174176 var uri = $ "myprot://{ str } ";
175177
176178 var dictionary = sut . Parse ( uri ) ;
177179 Assert . Equal ( "myprot" , dictionary [ Token . Protocol ] ) ;
178180 Assert . Equal ( uri , dictionary [ Token . OriginalUrl ] ) ;
179181 Assert . Equal ( str , dictionary [ Token . RelativeUrl ] ) ;
180- Assert . Equal ( "myuser%5c :mypass" , dictionary [ Token . User ] ) ;
182+ Assert . Equal ( "my test user \\ :mypass" , dictionary [ Token . User ] ) ;
181183 Assert . Equal ( "myhost" , dictionary [ Token . Host ] ) ;
182184 Assert . Equal ( "3456" , dictionary [ Token . Port ] ) ;
183185 Assert . Equal ( "thisisapath" , dictionary [ Token . Path ] ) ;
0 commit comments