7
7
import org .junit .jupiter .params .provider .ArgumentsSource ;
8
8
9
9
import java .net .URI ;
10
+ import java .util .HashMap ;
11
+ import java .util .Map ;
10
12
import java .util .Optional ;
11
13
import java .util .Set ;
12
14
import java .util .stream .Collectors ;
@@ -31,6 +33,12 @@ public void testToWebRepoUri_enterpriseUri(String repositoryHost, String reposit
31
33
assertEquals (Optional .of (expectedWebRepoUri ), toWebRepoUri (String .format (repositoryUri , repositoryHost )));
32
34
}
33
35
36
+ @ ParameterizedTest
37
+ @ ArgumentsSource (UserInfoArgumentsProvider .class )
38
+ public void testUserInfoRedacted (String inputUrl , String expectedRedactedUrl ) {
39
+ assertEquals (expectedRedactedUrl , Utils .redactUserInfo (inputUrl ).orElse (null ));
40
+ }
41
+
34
42
private static class WebRepoUriArgumentsProvider implements ArgumentsProvider {
35
43
36
44
@ Override
@@ -40,6 +48,8 @@ public Stream<? extends Arguments> provideArguments(ExtensionContext context) {
40
48
"https://%s.com/acme-inc/my-project" ,
41
49
"https://%s.com:443/acme-inc/my-project" ,
42
50
"https://user:secret@%s.com/acme-inc/my-project" ,
51
+ "https://user:secret%%1Fpassword@%s.com/acme-inc/my-project" ,
52
+ "https://user:secret%%1password@%s.com/acme-inc/my-project" ,
43
53
"ssh://git@%s.com/acme-inc/my-project.git" ,
44
54
"ssh://git@%s.com:22/acme-inc/my-project.git" ,
45
55
"git://%s.com/acme-inc/my-project.git" ,
@@ -61,4 +71,20 @@ public Stream<? extends Arguments> provideArguments(ExtensionContext context) {
61
71
return host .stream ().flatMap (h -> remoteRepositoryUris .stream ().map (r -> Arguments .arguments (h , r )));
62
72
}
63
73
}
74
+
75
+ private static class UserInfoArgumentsProvider implements ArgumentsProvider {
76
+
77
+ @ Override
78
+ public Stream <? extends Arguments > provideArguments (ExtensionContext context ) {
79
+ Map <String , String > cases = new HashMap <>();
80
+ cases .
put (
"https://user:[email protected] /acme-inc/my-project" ,
"https://******@acme.com/acme-inc/my-project" );
81
+ cases .
put (
"https://user%1Fname:[email protected] /acme-inc/my-project" ,
"https://******@acme.com/acme-inc/my-project" );
82
+ cases .
put (
"https://user:secret%[email protected] /acme-inc/my-project" ,
"https://******@acme.com/acme-inc/my-project" );
83
+ cases .
put (
"https://user:secret%[email protected] /acme-inc/my-project" ,
null );
84
+ cases .
put (
"[email protected] :gradle/common-custom-user-data-gradle-plugin.git" ,
"[email protected] :gradle/common-custom-user-data-gradle-plugin.git" );
85
+
86
+ return cases .entrySet ().stream ()
87
+ .map (entry -> Arguments .arguments (entry .getKey (), entry .getValue ()));
88
+ }
89
+ }
64
90
}
0 commit comments