Skip to content

Commit 75cbbf1

Browse files
Raise default permissions of JUnit5JenkinsConfiguredWithCodeRule (#2637)
Co-authored-by: strangelookingnerd <[email protected]>
1 parent 5235b28 commit 75cbbf1

File tree

2 files changed

+60
-0
lines changed

2 files changed

+60
-0
lines changed

test-harness/src/main/java/io/jenkins/plugins/casc/misc/junit/jupiter/JUnit5JenkinsConfiguredWithCodeRule.java

+4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package io.jenkins.plugins.casc.misc.junit.jupiter;
22

33
import edu.umd.cs.findbugs.annotations.NonNull;
4+
import hudson.security.ACL;
45
import io.jenkins.plugins.casc.misc.JenkinsConfiguredWithCodeRule;
56
import java.lang.annotation.Annotation;
67
import java.lang.reflect.Method;
@@ -22,6 +23,9 @@ class JUnit5JenkinsConfiguredWithCodeRule extends JenkinsConfiguredWithCodeRule
2223

2324
@Override
2425
public void recipe() throws Exception {
26+
// so that test code has all the access to the system
27+
ACL.as2(ACL.SYSTEM2);
28+
2529
final JenkinsRecipe recipe = this.testDescription.getAnnotation(JenkinsRecipe.class);
2630
if (recipe == null) {
2731
return;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
package io.jenkins.plugins.casc.junit.jupiter;
2+
3+
import hudson.security.Permission;
4+
import io.jenkins.plugins.casc.misc.JenkinsConfiguredWithCodeRule;
5+
import io.jenkins.plugins.casc.misc.junit.jupiter.WithJenkinsConfiguredWithCode;
6+
import org.junit.Assert;
7+
import org.junit.Rule;
8+
import org.junit.jupiter.api.Assertions;
9+
import org.jvnet.hudson.test.MockAuthorizationStrategy;
10+
11+
/**
12+
* Validates that JUnit4 and JUnit5 based {@link JenkinsConfiguredWithCodeRule} implementations have the same default authorization and permissions.
13+
*/
14+
@SuppressWarnings("deprecation")
15+
public class JenkinsConfiguredWithCodeRulePermissionTest {
16+
17+
@Rule
18+
public JenkinsConfiguredWithCodeRule junit4rule = new JenkinsConfiguredWithCodeRule();
19+
20+
@org.junit.Test
21+
public void junit4() {
22+
MockAuthorizationStrategy strategy = new MockAuthorizationStrategy();
23+
junit4rule.getInstance().setAuthorizationStrategy(strategy);
24+
25+
// basic permissions
26+
Assert.assertTrue(junit4rule.getInstance().getACL().hasPermission(Permission.READ));
27+
Assert.assertTrue(junit4rule.getInstance().getACL().hasPermission(Permission.WRITE));
28+
Assert.assertTrue(junit4rule.getInstance().getACL().hasPermission(Permission.CREATE));
29+
Assert.assertTrue(junit4rule.getInstance().getACL().hasPermission(Permission.UPDATE));
30+
Assert.assertTrue(junit4rule.getInstance().getACL().hasPermission(Permission.DELETE));
31+
Assert.assertTrue(junit4rule.getInstance().getACL().hasPermission(Permission.CONFIGURE));
32+
33+
// admin permissions
34+
Assert.assertTrue(junit4rule.getInstance().getACL().hasPermission(Permission.FULL_CONTROL));
35+
Assert.assertTrue(junit4rule.getInstance().getACL().hasPermission(Permission.HUDSON_ADMINISTER));
36+
}
37+
38+
@org.junit.jupiter.api.Test
39+
@WithJenkinsConfiguredWithCode
40+
void junit5(JenkinsConfiguredWithCodeRule junit5rule) {
41+
MockAuthorizationStrategy strategy = new MockAuthorizationStrategy();
42+
junit5rule.getInstance().setAuthorizationStrategy(strategy);
43+
44+
// basic permissions
45+
Assertions.assertTrue(junit5rule.getInstance().getACL().hasPermission(Permission.READ));
46+
Assertions.assertTrue(junit5rule.getInstance().getACL().hasPermission(Permission.WRITE));
47+
Assertions.assertTrue(junit5rule.getInstance().getACL().hasPermission(Permission.CREATE));
48+
Assertions.assertTrue(junit5rule.getInstance().getACL().hasPermission(Permission.UPDATE));
49+
Assertions.assertTrue(junit5rule.getInstance().getACL().hasPermission(Permission.DELETE));
50+
Assertions.assertTrue(junit5rule.getInstance().getACL().hasPermission(Permission.CONFIGURE));
51+
52+
// admin permissions
53+
Assertions.assertTrue(junit5rule.getInstance().getACL().hasPermission(Permission.FULL_CONTROL));
54+
Assertions.assertTrue(junit5rule.getInstance().getACL().hasPermission(Permission.HUDSON_ADMINISTER));
55+
}
56+
}

0 commit comments

Comments
 (0)