diff --git a/pom.xml b/pom.xml
index ab06dc4b..d2c634be 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
org.jenkins-ci.plugins
plugin
- 5.18
+ 5.22
matrix-auth
${revision}${changelist}
@@ -32,6 +32,7 @@
2.479
${jenkins.baseline}.3
false
+ true
diff --git a/src/test/java/com/cloudbees/hudson/plugins/folder/properties/AuthorizationMatrixPropertyTest.java b/src/test/java/com/cloudbees/hudson/plugins/folder/properties/AuthorizationMatrixPropertyTest.java
index b462df87..8e2d412e 100644
--- a/src/test/java/com/cloudbees/hudson/plugins/folder/properties/AuthorizationMatrixPropertyTest.java
+++ b/src/test/java/com/cloudbees/hudson/plugins/folder/properties/AuthorizationMatrixPropertyTest.java
@@ -24,7 +24,7 @@
package com.cloudbees.hudson.plugins.folder.properties;
-import static org.junit.Assert.*;
+import static org.junit.jupiter.api.Assertions.*;
import com.cloudbees.hudson.plugins.folder.Folder;
import hudson.model.FreeStyleProject;
@@ -44,49 +44,53 @@
import org.jenkinsci.plugins.matrixauth.PermissionEntry;
import org.jenkinsci.plugins.matrixauth.inheritance.InheritParentStrategy;
import org.jenkinsci.plugins.matrixauth.inheritance.NonInheritingStrategy;
-import org.junit.Assert;
-import org.junit.Rule;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
import org.jvnet.hudson.test.JenkinsRule;
-import org.jvnet.hudson.test.LoggerRule;
+import org.jvnet.hudson.test.LogRecorder;
+import org.jvnet.hudson.test.junit.jupiter.WithJenkins;
-public class AuthorizationMatrixPropertyTest {
+@WithJenkins
+class AuthorizationMatrixPropertyTest {
- @Rule
- public JenkinsRule r = new JenkinsRule();
+ private final LogRecorder l = new LogRecorder();
- @Rule
- public LoggerRule l = new LoggerRule();
+ private JenkinsRule j;
+
+ @BeforeEach
+ void setUp(JenkinsRule rule) {
+ j = rule;
+ }
@Test
- public void ensureCreatorHasPermissions() throws Exception {
+ void ensureCreatorHasPermissions() throws Exception {
HudsonPrivateSecurityRealm realm = new HudsonPrivateSecurityRealm(false, false, null);
realm.createAccount("alice", "alice");
realm.createAccount("bob", "bob");
- r.jenkins.setSecurityRealm(realm);
+ j.jenkins.setSecurityRealm(realm);
ProjectMatrixAuthorizationStrategy authorizationStrategy = new ProjectMatrixAuthorizationStrategy();
authorizationStrategy.add(Item.CREATE, PermissionEntry.user("alice"));
authorizationStrategy.add(Jenkins.READ, PermissionEntry.user("alice"));
- r.jenkins.setAuthorizationStrategy(authorizationStrategy);
+ j.jenkins.setAuthorizationStrategy(authorizationStrategy);
Folder job;
try (ACLContext ignored = ACL.as(User.get("alice", false, Collections.emptyMap()))) {
- job = r.createProject(Folder.class);
+ job = j.createProject(Folder.class);
}
- Assert.assertNotNull(job.getProperties().get(AuthorizationMatrixProperty.class));
- Assert.assertTrue(job.getACL()
+ assertNotNull(job.getProperties().get(AuthorizationMatrixProperty.class));
+ assertTrue(job.getACL()
.hasPermission2(
Objects.requireNonNull(User.get("alice", false, Collections.emptyMap()))
.impersonate2(),
Item.READ));
- Assert.assertFalse(job.getACL()
+ assertFalse(job.getACL()
.hasPermission2(
Objects.requireNonNull(User.get("bob", false, Collections.emptyMap()))
.impersonate2(),
Item.READ));
- Assert.assertTrue(job.getACL()
+ assertTrue(job.getACL()
.hasPermission2(
Objects.requireNonNull(User.get("alice", false, Collections.emptyMap()))
.impersonate2(),
@@ -94,20 +98,20 @@ public void ensureCreatorHasPermissions() throws Exception {
}
@Test
- public void basics1() throws Exception {
+ void basics1() throws Exception {
HudsonPrivateSecurityRealm realm = new HudsonPrivateSecurityRealm(false, false, null);
realm.createAccount("alice", "alice");
realm.createAccount("bob", "bob");
- r.jenkins.setSecurityRealm(realm);
+ j.jenkins.setSecurityRealm(realm);
ProjectMatrixAuthorizationStrategy as = new ProjectMatrixAuthorizationStrategy();
- r.jenkins.setAuthorizationStrategy(as);
+ j.jenkins.setAuthorizationStrategy(as);
as.add(Hudson.READ, PermissionEntry.group("authenticated"));
- Folder f = r.jenkins.createProject(Folder.class, "d");
+ Folder f = j.jenkins.createProject(Folder.class, "d");
AuthorizationMatrixProperty amp = new AuthorizationMatrixProperty();
- assertTrue(amp.getInheritanceStrategy() instanceof InheritParentStrategy);
+ assertInstanceOf(InheritParentStrategy.class, amp.getInheritanceStrategy());
amp.add(Item.READ, PermissionEntry.user("alice"));
amp.add(Item.BUILD, PermissionEntry.user("alice"));
@@ -115,44 +119,38 @@ public void basics1() throws Exception {
final FreeStyleProject foo = f.createProject(FreeStyleProject.class, "foo");
- JenkinsRule.WebClient wc = r.createWebClient().login("bob");
- try {
- wc.getPage(foo);
- fail();
- } catch (FailingHttpStatusCodeException e) {
- assertEquals(404, e.getStatusCode());
- }
+ FailingHttpStatusCodeException e = assertThrows(
+ FailingHttpStatusCodeException.class,
+ () -> j.createWebClient().login("bob").getPage(foo));
+ assertEquals(404, e.getStatusCode());
- wc = r.createWebClient().login("alice");
+ JenkinsRule.WebClient wc = j.createWebClient().login("alice");
wc.getPage(foo); // this should succeed
// and build permission should be set, too
wc.executeOnServer(() -> {
foo.checkPermission(Item.BUILD);
- try {
- foo.checkPermission(Item.DELETE);
- fail("access should be denied");
- } catch (RuntimeException x) {
- assertEquals(
- hudson.security.Messages.AccessDeniedException2_MissingPermission("alice", "Job/Delete"),
- x.getMessage());
- }
+ RuntimeException x = assertThrows(
+ RuntimeException.class, () -> foo.checkPermission(Item.DELETE), "access should be denied");
+ assertEquals(
+ hudson.security.Messages.AccessDeniedException2_MissingPermission("alice", "Job/Delete"),
+ x.getMessage());
return null;
});
}
@Test
- public void disabling_permission_inheritance_removes_global_permissions() throws Exception {
+ void disabling_permission_inheritance_removes_global_permissions() throws Exception {
HudsonPrivateSecurityRealm realm = new HudsonPrivateSecurityRealm(false, false, null);
realm.createAccount("alice", "alice");
realm.createAccount("bob", "bob");
- r.jenkins.setSecurityRealm(realm);
+ j.jenkins.setSecurityRealm(realm);
ProjectMatrixAuthorizationStrategy as = new ProjectMatrixAuthorizationStrategy();
- r.jenkins.setAuthorizationStrategy(as);
+ j.jenkins.setAuthorizationStrategy(as);
as.add(Hudson.READ, PermissionEntry.group("authenticated"));
- Folder f = r.jenkins.createProject(Folder.class, "d");
+ Folder f = j.jenkins.createProject(Folder.class, "d");
AuthorizationMatrixProperty amp = new AuthorizationMatrixProperty();
amp.setInheritanceStrategy(new NonInheritingStrategy());
amp.add(Item.READ, PermissionEntry.user("alice"));
@@ -160,20 +158,17 @@ public void disabling_permission_inheritance_removes_global_permissions() throws
final FreeStyleProject foo = f.createProject(FreeStyleProject.class, "foo");
- JenkinsRule.WebClient wc = r.createWebClient().login("bob");
- try {
- wc.getPage(foo);
- fail();
- } catch (FailingHttpStatusCodeException e) {
- assertEquals(404, e.getStatusCode());
- }
+ FailingHttpStatusCodeException e = assertThrows(
+ FailingHttpStatusCodeException.class,
+ () -> j.createWebClient().login("bob").getPage(foo));
+ assertEquals(404, e.getStatusCode());
- wc = r.createWebClient().login("alice");
+ JenkinsRule.WebClient wc = j.createWebClient().login("alice");
wc.getPage(foo); // this should succeed
}
@Test
- public void inapplicablePermissionIsSkipped() {
+ void inapplicablePermissionIsSkipped() {
AuthorizationMatrixProperty property = new AuthorizationMatrixProperty();
l.record(AuthorizationContainer.class, Level.WARNING).capture(5);
property.add("hudson.model.Hudson.Administer:alice");
@@ -184,7 +179,7 @@ public void inapplicablePermissionIsSkipped() {
}
@Test
- public void inapplicablePermissionIsSkipped2() {
+ void inapplicablePermissionIsSkipped2() {
AuthorizationMatrixProperty property = new AuthorizationMatrixProperty();
l.record(AuthorizationContainer.class, Level.WARNING).capture(5);
property.add("USER:hudson.model.Hudson.Administer:alice");
diff --git a/src/test/java/com/cloudbees/hudson/plugins/folder/properties/IdStrategyTest.java b/src/test/java/com/cloudbees/hudson/plugins/folder/properties/IdStrategyTest.java
index 9ac153ba..d3db4615 100644
--- a/src/test/java/com/cloudbees/hudson/plugins/folder/properties/IdStrategyTest.java
+++ b/src/test/java/com/cloudbees/hudson/plugins/folder/properties/IdStrategyTest.java
@@ -1,7 +1,8 @@
package com.cloudbees.hudson.plugins.folder.properties;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.fail;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.fail;
import hudson.model.FreeStyleProject;
import hudson.model.Hudson;
@@ -10,15 +11,22 @@
import hudson.security.ProjectMatrixAuthorizationStrategy;
import jenkins.model.IdStrategy;
import org.htmlunit.FailingHttpStatusCodeException;
-import org.junit.Rule;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
import org.jvnet.hudson.test.JenkinsRule;
+import org.jvnet.hudson.test.junit.jupiter.WithJenkins;
+
+@WithJenkins
+class IdStrategyTest {
-public class IdStrategyTest {
private static final IdStrategy.CaseSensitive CASE_SENSITIVE = new IdStrategy.CaseSensitive();
- @Rule
- public JenkinsRule r = new JenkinsRule();
+ private JenkinsRule j;
+
+ @BeforeEach
+ void setUp(JenkinsRule rule) {
+ j = rule;
+ }
private static class CaseInsensitiveSecurityRealm extends HudsonPrivateSecurityRealm {
CaseInsensitiveSecurityRealm() {
@@ -53,20 +61,20 @@ public IdStrategy getGroupIdStrategy() {
}
@Test
- public void insensitive() throws Exception {
+ void insensitive() throws Exception {
HudsonPrivateSecurityRealm realm = new CaseInsensitiveSecurityRealm();
realm.createAccount("alice", "alice");
- r.jenkins.setSecurityRealm(realm);
+ j.jenkins.setSecurityRealm(realm);
ProjectMatrixAuthorizationStrategy as = new ProjectMatrixAuthorizationStrategy();
- r.jenkins.setAuthorizationStrategy(as);
+ j.jenkins.setAuthorizationStrategy(as);
as.add(Hudson.READ, "authenticated");
as.add(Item.READ, "alicE");
as.add(Item.BUILD, "aLice");
- final FreeStyleProject foo = r.createProject(FreeStyleProject.class, "foo");
+ final FreeStyleProject foo = j.createProject(FreeStyleProject.class, "foo");
- JenkinsRule.WebClient wc = r.createWebClient().login("alice");
+ JenkinsRule.WebClient wc = j.createWebClient().login("alice");
wc.getPage(foo); // this should succeed
// and build permission should be set, too
@@ -83,15 +91,12 @@ public void insensitive() throws Exception {
return null;
});
- try {
- r.createWebClient().login("AliCe");
- fail();
- } catch (FailingHttpStatusCodeException e) {
- assertEquals(401, e.getStatusCode());
- }
+ FailingHttpStatusCodeException e = assertThrows(
+ FailingHttpStatusCodeException.class, () -> j.createWebClient().login("AliCe"));
+ assertEquals(401, e.getStatusCode());
// now logging with the username case incorrect should still authenticate as the password is a match
- wc = r.createWebClient().login("AliCe", "alice");
+ wc = j.createWebClient().login("AliCe", "alice");
wc.getPage(foo); // this should succeed
// and build permission should be set, too
@@ -110,40 +115,34 @@ public void insensitive() throws Exception {
}
@Test
- public void sensitive() throws Exception {
+ void sensitive() throws Exception {
HudsonPrivateSecurityRealm realm = new CaseSensitiveSecurityRealm();
realm.createAccount("alice", "alice");
- r.jenkins.setSecurityRealm(realm);
+ j.jenkins.setSecurityRealm(realm);
ProjectMatrixAuthorizationStrategy as = new ProjectMatrixAuthorizationStrategy();
- r.jenkins.setAuthorizationStrategy(as);
+ j.jenkins.setAuthorizationStrategy(as);
as.add(Hudson.READ, "authenticated");
as.add(Item.READ, "alice");
as.add(Item.BUILD, "alice");
- final FreeStyleProject foo = r.createProject(FreeStyleProject.class, "foo");
- JenkinsRule.WebClient wc = r.createWebClient().login("alice", "alice");
+ final FreeStyleProject foo = j.createProject(FreeStyleProject.class, "foo");
+ JenkinsRule.WebClient wc = j.createWebClient().login("alice", "alice");
wc.getPage(foo); // this should succeed
// and build permission should be set, too
wc.executeOnServer(() -> {
foo.checkPermission(Item.BUILD);
- try {
- foo.checkPermission(Item.DELETE);
- fail("access should be denied");
- } catch (RuntimeException x) {
- assertEquals(
- hudson.security.Messages.AccessDeniedException2_MissingPermission("alice", "Job/Delete"),
- x.getMessage());
- }
+ RuntimeException x = assertThrows(
+ RuntimeException.class, () -> foo.checkPermission(Item.DELETE), "access should be denied");
+ assertEquals(
+ hudson.security.Messages.AccessDeniedException2_MissingPermission("alice", "Job/Delete"),
+ x.getMessage());
return null;
});
- try {
- r.createWebClient().login("Alice", "alice");
- fail();
- } catch (FailingHttpStatusCodeException e) {
- assertEquals(401, e.getStatusCode());
- }
+ FailingHttpStatusCodeException e = assertThrows(
+ FailingHttpStatusCodeException.class, () -> j.createWebClient().login("Alice", "alice"));
+ assertEquals(401, e.getStatusCode());
}
}
diff --git a/src/test/java/hudson/security/AuthorizationMatrixPropertyTest.java b/src/test/java/hudson/security/AuthorizationMatrixPropertyTest.java
index 9b4df5d4..cb4a709e 100644
--- a/src/test/java/hudson/security/AuthorizationMatrixPropertyTest.java
+++ b/src/test/java/hudson/security/AuthorizationMatrixPropertyTest.java
@@ -1,5 +1,9 @@
package hudson.security;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertInstanceOf;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
import hudson.model.Item;
import hudson.scm.SCM;
import java.util.Collections;
@@ -13,23 +17,27 @@
import org.jenkinsci.plugins.workflow.cps.SnippetizerTester;
import org.jenkinsci.plugins.workflow.job.WorkflowJob;
import org.jenkinsci.plugins.workflow.multibranch.JobPropertyStep;
-import org.junit.Assert;
-import org.junit.Rule;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
import org.jvnet.hudson.test.Issue;
import org.jvnet.hudson.test.JenkinsRule;
-import org.jvnet.hudson.test.LoggerRule;
+import org.jvnet.hudson.test.LogRecorder;
+import org.jvnet.hudson.test.junit.jupiter.WithJenkins;
+
+@WithJenkins
+class AuthorizationMatrixPropertyTest {
-public class AuthorizationMatrixPropertyTest {
+ private final LogRecorder l = new LogRecorder();
- @Rule
- public JenkinsRule j = new JenkinsRule();
+ private JenkinsRule j;
- @Rule
- public LoggerRule l = new LoggerRule();
+ @BeforeEach
+ void setUp(JenkinsRule rule) {
+ j = rule;
+ }
@Test
- public void testSnippetizer() throws Exception {
+ void testSnippetizer() throws Exception {
AuthorizationMatrixProperty property =
new AuthorizationMatrixProperty(Collections.emptyMap(), new InheritParentStrategy());
property.add(Item.CONFIGURE, "alice");
@@ -44,7 +52,7 @@ public void testSnippetizer() throws Exception {
}
@Test
- public void testSnippetizer2() throws Exception {
+ void testSnippetizer2() throws Exception {
AuthorizationMatrixProperty property =
new AuthorizationMatrixProperty(Collections.emptyMap(), new InheritParentStrategy());
property.add(Item.CONFIGURE, PermissionEntry.user("alice"));
@@ -60,7 +68,7 @@ public void testSnippetizer2() throws Exception {
@Test
@Issue("JENKINS-46944")
- public void testSnippetizerInapplicablePermission() throws Exception {
+ void testSnippetizerInapplicablePermission() throws Exception {
AuthorizationMatrixProperty property =
new AuthorizationMatrixProperty(Collections.emptyMap(), new InheritParentStrategy());
l.record(AuthorizationContainer.class, Level.WARNING).capture(3);
@@ -79,18 +87,18 @@ public void testSnippetizerInapplicablePermission() throws Exception {
new JobPropertyStep(Collections.singletonList(property)),
"properties([authorizationMatrix(entries: [userOrGroup(name: 'alice', permissions: ['Job/Configure', 'Job/Read']), userOrGroup(name: 'bob', permissions: ['Job/Read', 'SCM/Tag'])], inheritanceStrategy: nonInheriting())])");
- Assert.assertTrue(l.getMessages().stream()
+ assertTrue(l.getMessages().stream()
.anyMatch(m -> m.contains("Tried to add inapplicable permission")
&& m.contains("Hudson,Read")
&& m.contains("carol")));
- Assert.assertTrue(l.getMessages().stream()
+ assertTrue(l.getMessages().stream()
.anyMatch(m -> m.contains("Tried to add inapplicable permission")
&& m.contains("Hudson,Administer")
&& m.contains("dave")));
}
@Test
- public void testPipelineReconfiguration() throws Exception {
+ void testPipelineReconfiguration() throws Exception {
HudsonPrivateSecurityRealm realm = new HudsonPrivateSecurityRealm(true, false, null);
realm.createAccount("alice", "alice");
@@ -129,10 +137,10 @@ public void testPipelineReconfiguration() throws Exception {
// let's look ast the property
AuthorizationMatrixProperty property = project.getProperty(AuthorizationMatrixProperty.class);
- Assert.assertTrue(property.getInheritanceStrategy() instanceof NonInheritingStrategy);
- Assert.assertEquals(0, property.getGrantedPermissions().size()); // Unambiguous permissions are 0
- Assert.assertEquals(3, property.getGrantedPermissionEntries().size());
- Assert.assertEquals(0, property.getGroups().size());
+ assertInstanceOf(NonInheritingStrategy.class, property.getInheritanceStrategy());
+ assertEquals(0, property.getGrantedPermissions().size()); // Unambiguous permissions are 0
+ assertEquals(3, property.getGrantedPermissionEntries().size());
+ assertEquals(0, property.getGroups().size());
// now bob has access, including configure
j.createWebClient().login("bob").goTo(project.getUrl());
@@ -143,7 +151,7 @@ public void testPipelineReconfiguration() throws Exception {
}
@Test
- public void testPipelineReconfiguration2() throws Exception {
+ void testPipelineReconfiguration2() throws Exception {
HudsonPrivateSecurityRealm realm = new HudsonPrivateSecurityRealm(true, false, null);
realm.createAccount("alice", "alice");
@@ -182,10 +190,10 @@ public void testPipelineReconfiguration2() throws Exception {
// let's look ast the property
AuthorizationMatrixProperty property = project.getProperty(AuthorizationMatrixProperty.class);
- Assert.assertTrue(property.getInheritanceStrategy() instanceof NonInheritingStrategy);
- Assert.assertEquals(0, property.getGrantedPermissions().size()); // typed entries are not listed here
- Assert.assertEquals(3, property.getGrantedPermissionEntries().size());
- Assert.assertEquals(0, property.getGroups().size());
+ assertInstanceOf(NonInheritingStrategy.class, property.getInheritanceStrategy());
+ assertEquals(0, property.getGrantedPermissions().size()); // typed entries are not listed here
+ assertEquals(3, property.getGrantedPermissionEntries().size());
+ assertEquals(0, property.getGroups().size());
// now bob has access, including configure
j.createWebClient().login("bob").goTo(project.getUrl());
diff --git a/src/test/java/hudson/security/ProjectMatrixAuthorizationStrategyTest.java b/src/test/java/hudson/security/ProjectMatrixAuthorizationStrategyTest.java
index aec0ef9c..95364060 100644
--- a/src/test/java/hudson/security/ProjectMatrixAuthorizationStrategyTest.java
+++ b/src/test/java/hudson/security/ProjectMatrixAuthorizationStrategyTest.java
@@ -2,6 +2,7 @@
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.containsInAnyOrder;
+import static org.junit.jupiter.api.Assertions.*;
import com.cloudbees.hudson.plugins.folder.Folder;
import hudson.model.FreeStyleProject;
@@ -15,6 +16,7 @@
import java.util.Optional;
import java.util.Set;
import jenkins.model.Jenkins;
+import org.htmlunit.FailingHttpStatusCodeException;
import org.htmlunit.html.HtmlElement;
import org.htmlunit.html.HtmlForm;
import org.htmlunit.html.HtmlOption;
@@ -22,49 +24,54 @@
import org.jenkinsci.plugins.matrixauth.PermissionEntry;
import org.jenkinsci.plugins.matrixauth.inheritance.InheritParentStrategy;
import org.jenkinsci.plugins.matrixauth.inheritance.NonInheritingStrategy;
-import org.junit.Assert;
-import org.junit.Rule;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
import org.jvnet.hudson.test.Issue;
import org.jvnet.hudson.test.JenkinsRule;
+import org.jvnet.hudson.test.junit.jupiter.WithJenkins;
import org.jvnet.hudson.test.recipes.LocalData;
import org.springframework.security.core.Authentication;
-public class ProjectMatrixAuthorizationStrategyTest {
+@WithJenkins
+class ProjectMatrixAuthorizationStrategyTest {
- @Rule
- public JenkinsRule r = new JenkinsRule();
+ private JenkinsRule j;
+
+ @BeforeEach
+ void setUp(JenkinsRule rule) {
+ j = rule;
+ }
@Test
- public void ensureCreatorHasPermissions() throws Exception {
+ void ensureCreatorHasPermissions() throws Exception {
HudsonPrivateSecurityRealm realm = new HudsonPrivateSecurityRealm(false, false, null);
realm.createAccount("alice", "alice");
realm.createAccount("bob", "bob");
- r.jenkins.setSecurityRealm(realm);
+ j.jenkins.setSecurityRealm(realm);
ProjectMatrixAuthorizationStrategy authorizationStrategy = new ProjectMatrixAuthorizationStrategy();
authorizationStrategy.add(Item.CREATE, "alice");
authorizationStrategy.add(Jenkins.READ, "alice");
authorizationStrategy.add(Jenkins.READ, "bob");
- r.jenkins.setAuthorizationStrategy(authorizationStrategy);
+ j.jenkins.setAuthorizationStrategy(authorizationStrategy);
Job, ?> job;
try (ACLContext ignored = ACL.as(User.get("alice", false, Collections.emptyMap()))) {
- job = r.createFreeStyleProject();
+ job = j.createFreeStyleProject();
}
- Assert.assertNotNull(job.getProperty(AuthorizationMatrixProperty.class));
- Assert.assertTrue(job.getACL()
+ assertNotNull(job.getProperty(AuthorizationMatrixProperty.class));
+ assertTrue(job.getACL()
.hasPermission2(
Objects.requireNonNull(User.get("alice", false, Collections.emptyMap()))
.impersonate2(),
Item.READ));
- Assert.assertFalse(job.getACL()
+ assertFalse(job.getACL()
.hasPermission2(
Objects.requireNonNull(User.get("bob", false, Collections.emptyMap()))
.impersonate2(),
Item.READ));
- Assert.assertTrue(job.getACL()
+ assertTrue(job.getACL()
.hasPermission2(
Objects.requireNonNull(User.get("alice", false, Collections.emptyMap()))
.impersonate2(),
@@ -73,91 +80,89 @@ public void ensureCreatorHasPermissions() throws Exception {
@Test
@Issue("JENKINS-58703")
- public void ensureNoJobPropertyDuplication() throws Exception {
+ void ensureNoJobPropertyDuplication() throws Exception {
HudsonPrivateSecurityRealm realm = new HudsonPrivateSecurityRealm(false, false, null);
realm.createAccount("alice", "alice");
realm.createAccount("bob", "bob");
- r.jenkins.setSecurityRealm(realm);
+ j.jenkins.setSecurityRealm(realm);
ProjectMatrixAuthorizationStrategy authorizationStrategy = new ProjectMatrixAuthorizationStrategy();
authorizationStrategy.add(Item.CREATE, "alice");
authorizationStrategy.add(Jenkins.READ, "alice");
authorizationStrategy.add(Jenkins.READ, "bob");
- r.jenkins.setAuthorizationStrategy(authorizationStrategy);
+ j.jenkins.setAuthorizationStrategy(authorizationStrategy);
Job, ?> job;
try (ACLContext ignored = ACL.as(User.get("alice", false, Collections.emptyMap()))) {
- r.jenkins.createProjectFromXML(
+ j.jenkins.createProjectFromXML(
"job", getClass().getResourceAsStream(getClass().getSimpleName() + "/JENKINS-58703.xml"));
- job = r.jenkins.getItem("job", r.jenkins, Job.class);
+ job = j.jenkins.getItem("job", j.jenkins, Job.class);
}
- Assert.assertNotNull(job.getProperty(AuthorizationMatrixProperty.class));
- Assert.assertTrue(job.getACL()
+ assertNotNull(job.getProperty(AuthorizationMatrixProperty.class));
+ assertTrue(job.getACL()
.hasPermission2(
Objects.requireNonNull(User.get("alice", false, Collections.emptyMap()))
.impersonate2(),
Item.READ));
- Assert.assertTrue(job.getACL()
+ assertTrue(job.getACL()
.hasPermission2(
Objects.requireNonNull(User.get("bob", false, Collections.emptyMap()))
.impersonate2(),
Item.READ));
- Assert.assertTrue(job.getACL()
+ assertTrue(job.getACL()
.hasPermission2(
Objects.requireNonNull(User.get("alice", false, Collections.emptyMap()))
.impersonate2(),
Item.CONFIGURE));
- Assert.assertEquals("one property", 1, job.getAllProperties().size());
+ assertEquals(1, job.getAllProperties().size(), "one property");
}
@Test
- public void submitEmptyPropertyEnsuresPermissionsForSubmitter() throws Exception {
+ void submitEmptyPropertyEnsuresPermissionsForSubmitter() throws Exception {
HudsonPrivateSecurityRealm realm = new HudsonPrivateSecurityRealm(false, false, null);
realm.createAccount("alice", "alice");
realm.createAccount("bob", "bob");
- r.jenkins.setSecurityRealm(realm);
+ j.jenkins.setSecurityRealm(realm);
- r.jenkins.setAuthorizationStrategy(new FullControlOnceLoggedInAuthorizationStrategy());
+ j.jenkins.setAuthorizationStrategy(new FullControlOnceLoggedInAuthorizationStrategy());
// ensure logged in users are admins, but anon is not
try (ACLContext ignored = ACL.as(User.get("alice", false, Collections.emptyMap()))) {
- Assert.assertTrue("alice is admin", r.jenkins.hasPermission(Jenkins.ADMINISTER));
+ assertTrue(j.jenkins.hasPermission(Jenkins.ADMINISTER), "alice is admin");
}
try (ACLContext ignored = ACL.as(User.get("bob", false, Collections.emptyMap()))) {
- Assert.assertTrue("bob is admin", r.jenkins.hasPermission(Jenkins.ADMINISTER));
+ assertTrue(j.jenkins.hasPermission(Jenkins.ADMINISTER), "bob is admin");
}
- Assert.assertFalse(
- "anon is not admin", r.jenkins.getACL().hasPermission2(Jenkins.ANONYMOUS2, Jenkins.ADMINISTER));
+ assertFalse(j.jenkins.getACL().hasPermission2(Jenkins.ANONYMOUS2, Jenkins.ADMINISTER), "anon is not admin");
- JenkinsRule.WebClient wc = r.createWebClient().login("alice");
+ JenkinsRule.WebClient wc = j.createWebClient().login("alice");
configureGlobalMatrixAuthStrategyThroughUI(wc);
try (ACLContext ignored = ACL.as(User.get("alice", false, Collections.emptyMap()))) {
// ensure that the user submitting the empty matrix will be admin
- Assert.assertTrue("alice is admin", r.jenkins.hasPermission(Jenkins.ADMINISTER));
+ assertTrue(j.jenkins.hasPermission(Jenkins.ADMINISTER), "alice is admin");
}
try (ACLContext ignored = ACL.as(User.get("bob", false, Collections.emptyMap()))) {
- Assert.assertFalse("bob is not admin", r.jenkins.hasPermission(Jenkins.ADMINISTER));
+ assertFalse(j.jenkins.hasPermission(Jenkins.ADMINISTER), "bob is not admin");
}
- Assert.assertFalse(
- "anon is not admin", r.jenkins.getACL().hasPermission2(Jenkins.ANONYMOUS2, Jenkins.ADMINISTER));
+ assertFalse(j.jenkins.getACL().hasPermission2(Jenkins.ANONYMOUS2, Jenkins.ADMINISTER), "anon is not admin");
}
@Test
- public void submitEmptyPropertyEnsuresPermissionsForAnonymousSubmitter() throws Exception {
+ void submitEmptyPropertyEnsuresPermissionsForAnonymousSubmitter() throws Exception {
// prepare form to have options visible
- r.jenkins.setSecurityRealm(new HudsonPrivateSecurityRealm(true, false, null));
- r.jenkins.setAuthorizationStrategy(new AuthorizationStrategy.Unsecured());
+ j.jenkins.setSecurityRealm(new HudsonPrivateSecurityRealm(true, false, null));
+ j.jenkins.setAuthorizationStrategy(new AuthorizationStrategy.Unsecured());
- Assert.assertTrue("anon is admin", r.jenkins.getACL().hasPermission2(Jenkins.ANONYMOUS2, Jenkins.ADMINISTER));
+ assertTrue(j.jenkins.getACL().hasPermission2(Jenkins.ANONYMOUS2, Jenkins.ADMINISTER), "anon is admin");
- JenkinsRule.WebClient wc = r.createWebClient();
+ JenkinsRule.WebClient wc = j.createWebClient();
configureGlobalMatrixAuthStrategyThroughUI(wc);
- Assert.assertTrue("anon is admin", r.jenkins.getACL().hasPermission2(Jenkins.ANONYMOUS2, Jenkins.ADMINISTER));
- Assert.assertTrue(r.jenkins.getAuthorizationStrategy() instanceof GlobalMatrixAuthorizationStrategy);
+ assertTrue(j.jenkins.getACL().hasPermission2(Jenkins.ANONYMOUS2, Jenkins.ADMINISTER), "anon is admin");
+ assertInstanceOf(GlobalMatrixAuthorizationStrategy.class, j.jenkins.getAuthorizationStrategy());
}
private void configureGlobalMatrixAuthStrategyThroughUI(JenkinsRule.WebClient wc) throws Exception {
@@ -168,53 +173,52 @@ private void configureGlobalMatrixAuthStrategyThroughUI(JenkinsRule.WebClient wc
option.getTextContent().contains(GlobalMatrixAuthorizationStrategy.DESCRIPTOR.getDisplayName()))
.findAny();
- if (!anyOption.isPresent()) {
- throw new IllegalStateException("expected to find an option");
- }
+ assertFalse(anyOption.isEmpty(), "expected to find an option");
+
HtmlOption option = (HtmlOption) anyOption.get();
HtmlSelect parent = (HtmlSelect) option.getParentNode();
parent.setSelectedAttribute(option, true);
- r.submit(form);
+ j.submit(form);
}
@Test
@LocalData
- public void loadEmptyAuthorizationStrategy() {
- Assert.assertTrue(r.jenkins.getSecurityRealm() instanceof HudsonPrivateSecurityRealm);
- Assert.assertTrue(r.jenkins.getAuthorizationStrategy() instanceof GlobalMatrixAuthorizationStrategy);
+ void loadEmptyAuthorizationStrategy() {
+ assertInstanceOf(HudsonPrivateSecurityRealm.class, j.jenkins.getSecurityRealm());
+ assertInstanceOf(GlobalMatrixAuthorizationStrategy.class, j.jenkins.getAuthorizationStrategy());
}
@Test
@LocalData
- public void loadFilledAuthorizationStrategy() {
- Assert.assertTrue(r.jenkins.getSecurityRealm() instanceof HudsonPrivateSecurityRealm);
- Assert.assertTrue(r.jenkins.getAuthorizationStrategy() instanceof ProjectMatrixAuthorizationStrategy);
+ void loadFilledAuthorizationStrategy() {
+ assertInstanceOf(HudsonPrivateSecurityRealm.class, j.jenkins.getSecurityRealm());
+ assertInstanceOf(ProjectMatrixAuthorizationStrategy.class, j.jenkins.getAuthorizationStrategy());
ProjectMatrixAuthorizationStrategy authorizationStrategy =
- (ProjectMatrixAuthorizationStrategy) r.jenkins.getAuthorizationStrategy();
- Assert.assertTrue(authorizationStrategy.hasExplicitPermission("alice", Jenkins.ADMINISTER));
- Assert.assertFalse(authorizationStrategy.hasExplicitPermission("alice", Jenkins.READ));
- Assert.assertFalse(authorizationStrategy.hasExplicitPermission("bob", Jenkins.ADMINISTER));
+ (ProjectMatrixAuthorizationStrategy) j.jenkins.getAuthorizationStrategy();
+ assertTrue(authorizationStrategy.hasExplicitPermission("alice", Jenkins.ADMINISTER));
+ assertFalse(authorizationStrategy.hasExplicitPermission("alice", Jenkins.READ));
+ assertFalse(authorizationStrategy.hasExplicitPermission("bob", Jenkins.ADMINISTER));
}
@Test
@Issue("JENKINS-39873")
- public void subdirectoriesCanExcludeOtherNonAdminUsers() throws Exception {
+ void subdirectoriesCanExcludeOtherNonAdminUsers() throws Exception {
HudsonPrivateSecurityRealm securityRealm = new HudsonPrivateSecurityRealm(false, false, null);
securityRealm.createAccount("admin", "admin");
securityRealm.createAccount("alice", "alice");
securityRealm.createAccount("bob", "bob");
securityRealm.createAccount("carol", "carol");
- r.jenkins.setSecurityRealm(securityRealm);
+ j.jenkins.setSecurityRealm(securityRealm);
ProjectMatrixAuthorizationStrategy authorizationStrategy = new ProjectMatrixAuthorizationStrategy();
authorizationStrategy.add(Jenkins.ADMINISTER, "admin");
authorizationStrategy.add(Jenkins.READ, "alice");
authorizationStrategy.add(Jenkins.READ, "bob");
- r.jenkins.setAuthorizationStrategy(authorizationStrategy);
+ j.jenkins.setAuthorizationStrategy(authorizationStrategy);
- Folder f = r.jenkins.createProject(Folder.class, "Folder");
+ Folder f = j.jenkins.createProject(Folder.class, "Folder");
com.cloudbees.hudson.plugins.folder.properties.AuthorizationMatrixProperty amp =
new com.cloudbees.hudson.plugins.folder.properties.AuthorizationMatrixProperty(Collections.emptyMap());
@@ -233,7 +237,7 @@ public void subdirectoriesCanExcludeOtherNonAdminUsers() throws Exception {
aliceProjects.getProperties().add(aliceProp);
- ACL acl = r.jenkins.getAuthorizationStrategy().getACL(aliceProjects);
+ ACL acl = j.jenkins.getAuthorizationStrategy().getACL(aliceProjects);
Authentication alice = Objects.requireNonNull(User.get("alice", false, Collections.emptyMap()))
.impersonate2();
@@ -242,38 +246,34 @@ public void subdirectoriesCanExcludeOtherNonAdminUsers() throws Exception {
Authentication bob = Objects.requireNonNull(User.get("bob", false, Collections.emptyMap()))
.impersonate2();
- Assert.assertTrue(acl.hasPermission2(alice, Item.READ));
- Assert.assertTrue(acl.hasPermission2(alice, Item.CONFIGURE));
- Assert.assertTrue(acl.hasPermission2(admin, Item.READ));
- Assert.assertTrue(acl.hasPermission2(admin, Item.CONFIGURE));
- Assert.assertFalse(acl.hasPermission2(bob, Item.READ));
- Assert.assertFalse(acl.hasPermission2(bob, Item.CONFIGURE));
+ assertTrue(acl.hasPermission2(alice, Item.READ));
+ assertTrue(acl.hasPermission2(alice, Item.CONFIGURE));
+ assertTrue(acl.hasPermission2(admin, Item.READ));
+ assertTrue(acl.hasPermission2(admin, Item.CONFIGURE));
+ assertFalse(acl.hasPermission2(bob, Item.READ));
+ assertFalse(acl.hasPermission2(bob, Item.CONFIGURE));
- JenkinsRule.WebClient wc = r.createWebClient().login("alice", "alice");
+ JenkinsRule.WebClient wc = j.createWebClient().login("alice", "alice");
wc.goTo(aliceProjects.getUrl());
- wc = r.createWebClient().login("admin", "admin");
+ wc = j.createWebClient().login("admin", "admin");
wc.goTo(aliceProjects.getUrl());
- wc = r.createWebClient().login("bob", "bob");
- try {
- wc.goTo(aliceProjects.getUrl());
- Assert.fail();
- } catch (Exception expected) {
- // expected
- }
+ assertThrows(
+ FailingHttpStatusCodeException.class,
+ () -> j.createWebClient().login("bob", "bob").goTo(aliceProjects.getUrl()));
}
@Test
- public void getGroupsAlwaysEverything() throws IOException {
+ void getGroupsAlwaysEverything() throws IOException {
HudsonPrivateSecurityRealm securityRealm = new HudsonPrivateSecurityRealm(false, false, null);
- r.jenkins.setSecurityRealm(securityRealm);
+ j.jenkins.setSecurityRealm(securityRealm);
ProjectMatrixAuthorizationStrategy authorizationStrategy = new ProjectMatrixAuthorizationStrategy();
authorizationStrategy.add(Jenkins.READ, PermissionEntry.group("group1"));
- r.jenkins.setAuthorizationStrategy(authorizationStrategy);
+ j.jenkins.setAuthorizationStrategy(authorizationStrategy);
- final Folder f = r.jenkins.createProject(Folder.class, "F");
+ final Folder f = j.jenkins.createProject(Folder.class, "F");
final FreeStyleProject job = f.createProject(FreeStyleProject.class, "job");
job.addProperty(new AuthorizationMatrixProperty(
Map.of(Item.READ, Set.of(PermissionEntry.group("group2"))), new InheritParentStrategy()));
diff --git a/src/test/java/hudson/security/Security410Test.java b/src/test/java/hudson/security/Security410Test.java
index 37f1fa19..773c55de 100644
--- a/src/test/java/hudson/security/Security410Test.java
+++ b/src/test/java/hudson/security/Security410Test.java
@@ -1,23 +1,29 @@
package hudson.security;
-import static org.junit.Assert.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertFalse;
import hudson.PluginManager;
import jenkins.model.Jenkins;
-import org.junit.Rule;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
import org.jvnet.hudson.test.Issue;
import org.jvnet.hudson.test.JenkinsRule;
+import org.jvnet.hudson.test.junit.jupiter.WithJenkins;
-public class Security410Test {
+@WithJenkins
+class Security410Test {
- @Rule
- public JenkinsRule j = new JenkinsRule();
+ private JenkinsRule j;
+
+ @BeforeEach
+ void setUp(JenkinsRule rule) {
+ j = rule;
+ }
@Issue("SECURITY-410")
@Test
@SuppressWarnings("deprecation")
- public void dangerousPermissions1() {
+ void dangerousPermissions1() {
ProjectMatrixAuthorizationStrategy as = new ProjectMatrixAuthorizationStrategy();
assertFalse(((GlobalMatrixAuthorizationStrategy.DescriptorImpl) as.getDescriptor())
.showPermission(Jenkins.RUN_SCRIPTS));
diff --git a/src/test/java/org/jenkinsci/plugins/matrixauth/AmbiguityTest.java b/src/test/java/org/jenkinsci/plugins/matrixauth/AmbiguityTest.java
index 284105cc..5abfcdea 100644
--- a/src/test/java/org/jenkinsci/plugins/matrixauth/AmbiguityTest.java
+++ b/src/test/java/org/jenkinsci/plugins/matrixauth/AmbiguityTest.java
@@ -1,10 +1,6 @@
package org.jenkinsci.plugins.matrixauth;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertThrows;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.*;
import com.cloudbees.hudson.plugins.folder.Folder;
import com.cloudbees.hudson.plugins.folder.properties.FolderContributor;
@@ -26,18 +22,28 @@
import org.htmlunit.html.HtmlFormUtil;
import org.htmlunit.html.HtmlPage;
import org.jenkinsci.plugins.matrixauth.inheritance.InheritParentStrategy;
-import org.junit.Rule;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
import org.jvnet.hudson.test.JenkinsRule;
+import org.jvnet.hudson.test.LogRecorder;
import org.jvnet.hudson.test.MockAuthorizationStrategy;
+import org.jvnet.hudson.test.junit.jupiter.WithJenkins;
import org.jvnet.hudson.test.recipes.LocalData;
-public class AmbiguityTest {
- @Rule
- public JenkinsRule j = new JenkinsRule();
+@WithJenkins
+class AmbiguityTest {
+
+ private final LogRecorder l = new LogRecorder();
+
+ private JenkinsRule j;
+
+ @BeforeEach
+ void setUp(JenkinsRule rule) {
+ j = rule;
+ }
@Test
- public void anonymousIsUser() throws Exception {
+ void anonymousIsUser() throws Exception {
j.jenkins.setSecurityRealm(j.createDummySecurityRealm());
final GlobalMatrixAuthorizationStrategy userStrategy = new GlobalMatrixAuthorizationStrategy();
userStrategy.add(Jenkins.READ, new PermissionEntry(AuthorizationType.USER, "anonymous"));
@@ -56,7 +62,7 @@ public void anonymousIsUser() throws Exception {
}
@Test
- public void anonymousIsAlsoGroup() throws Exception { // this wasn't always the case in older Jenkinses, but is now.
+ void anonymousIsAlsoGroup() throws Exception { // this wasn't always the case in older Jenkinses, but is now.
j.jenkins.setSecurityRealm(j.createDummySecurityRealm());
final GlobalMatrixAuthorizationStrategy groupStrategy = new GlobalMatrixAuthorizationStrategy();
groupStrategy.add(Jenkins.READ, new PermissionEntry(AuthorizationType.GROUP, "anonymous"));
@@ -67,7 +73,7 @@ public void anonymousIsAlsoGroup() throws Exception { // this wasn't always the
}
@Test
- public void authenticatedIsAGroup() throws Exception {
+ void authenticatedIsAGroup() throws Exception {
j.jenkins.setSecurityRealm(j.createDummySecurityRealm());
final GlobalMatrixAuthorizationStrategy userStrategy = new GlobalMatrixAuthorizationStrategy();
userStrategy.add(Jenkins.READ, new PermissionEntry(AuthorizationType.GROUP, "authenticated"));
@@ -81,7 +87,7 @@ public void authenticatedIsAGroup() throws Exception {
groupStrategy.add(Jenkins.READ, new PermissionEntry(AuthorizationType.USER, "authenticated"));
j.jenkins.setAuthorizationStrategy(groupStrategy);
FailingHttpStatusCodeException ex = assertThrows(FailingHttpStatusCodeException.class, () -> wc.goTo(""));
- assertEquals("permission denied", 403, ex.getStatusCode());
+ assertEquals(403, ex.getStatusCode(), "permission denied");
// Legacy config would still work
j.jenkins.setSecurityRealm(j.createDummySecurityRealm());
@@ -93,7 +99,7 @@ public void authenticatedIsAGroup() throws Exception {
}
@Test
- public void usersAreUsers() throws Exception {
+ void usersAreUsers() throws Exception {
j.jenkins.setSecurityRealm(j.createDummySecurityRealm());
final GlobalMatrixAuthorizationStrategy userStrategy = new GlobalMatrixAuthorizationStrategy();
userStrategy.add(Jenkins.READ, new PermissionEntry(AuthorizationType.USER, "alice"));
@@ -107,7 +113,7 @@ public void usersAreUsers() throws Exception {
groupStrategy.add(Jenkins.READ, new PermissionEntry(AuthorizationType.GROUP, "alice"));
j.jenkins.setAuthorizationStrategy(groupStrategy);
FailingHttpStatusCodeException ex = assertThrows(FailingHttpStatusCodeException.class, () -> wc.goTo(""));
- assertEquals("permission denied", 403, ex.getStatusCode());
+ assertEquals(403, ex.getStatusCode(), "permission denied");
// Legacy config would still work
j.jenkins.setSecurityRealm(j.createDummySecurityRealm());
@@ -119,7 +125,7 @@ public void usersAreUsers() throws Exception {
}
@Test
- public void adminMonitorAppearsAndDisappears() throws Exception {
+ void adminMonitorAppearsAndDisappears() throws Exception {
assertAdminMonitorVisible(false);
j.jenkins.setSecurityRealm(j.createDummySecurityRealm());
final GlobalMatrixAuthorizationStrategy userStrategy = new GlobalMatrixAuthorizationStrategy();
@@ -171,7 +177,7 @@ public void adminMonitorAppearsAndDisappears() throws Exception {
@LocalData
@Test
- public void testDataFrom2xReconfiguration() throws Exception {
+ void testDataFrom2xReconfiguration() throws Exception {
assertAdminMonitorVisible(true);
AmbiguityMonitor ambiguityMonitor =
(AmbiguityMonitor) j.jenkins.getAdministrativeMonitor(AmbiguityMonitor.class.getName());
@@ -293,7 +299,7 @@ public void testDataFrom2xReconfiguration() throws Exception {
@LocalData
@Test
- public void testDataFrom2xDeletion() throws Exception {
+ void testDataFrom2xDeletion() throws Exception {
assertAdminMonitorVisible(true);
AmbiguityMonitor ambiguityMonitor =
(AmbiguityMonitor) j.jenkins.getAdministrativeMonitor(AmbiguityMonitor.class.getName());
@@ -328,9 +334,9 @@ public void testDataFrom2xDeletion() throws Exception {
private void assertAdminMonitorVisible(boolean visible) {
assertEquals(
- "admin monitor should be visible? ",
visible,
Objects.requireNonNull(j.jenkins.getAdministrativeMonitor(AmbiguityMonitor.class.getName()))
- .isActivated());
+ .isActivated(),
+ "admin monitor should be visible? ");
}
}
diff --git a/src/test/java/org/jenkinsci/plugins/matrixauth/AuthorizationContainerDescriptorTest.java b/src/test/java/org/jenkinsci/plugins/matrixauth/AuthorizationContainerDescriptorTest.java
index b77f4e14..1c1420ff 100644
--- a/src/test/java/org/jenkinsci/plugins/matrixauth/AuthorizationContainerDescriptorTest.java
+++ b/src/test/java/org/jenkinsci/plugins/matrixauth/AuthorizationContainerDescriptorTest.java
@@ -1,19 +1,21 @@
package org.jenkinsci.plugins.matrixauth;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
import hudson.model.Item;
import hudson.model.Run;
import hudson.security.GlobalMatrixAuthorizationStrategy;
import hudson.security.Permission;
import hudson.security.PermissionScope;
import jenkins.model.Jenkins;
-import org.junit.Assert;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
import org.jvnet.localizer.Localizable;
import org.jvnet.localizer.ResourceBundleHolder;
-public class AuthorizationContainerDescriptorTest {
+class AuthorizationContainerDescriptorTest {
- private final Permission TEST_PERMISSION = new Permission(
+ private static final Permission TEST_PERMISSION = new Permission(
Item.PERMISSIONS,
"Test",
new Localizable(ResourceBundleHolder.get(AuthorizationContainerDescriptorTest.class), "Test"),
@@ -21,21 +23,19 @@ public class AuthorizationContainerDescriptorTest {
PermissionScope.ITEM);
@Test
- public void testImpliedNotes() {
+ void testImpliedNotes() {
{ // no message on Administer
String description =
new GlobalMatrixAuthorizationStrategy.DescriptorImpl().getDescription(Jenkins.ADMINISTER);
- Assert.assertFalse(
- description.contains(Messages.GlobalMatrixAuthorizationStrategy_PermissionNotImpliedBy()));
- Assert.assertFalse(description.contains(Messages.GlobalMatrixAuthorizationStrategy_PermissionImpliedBy(
+ assertFalse(description.contains(Messages.GlobalMatrixAuthorizationStrategy_PermissionNotImpliedBy()));
+ assertFalse(description.contains(Messages.GlobalMatrixAuthorizationStrategy_PermissionImpliedBy(
Jenkins.PERMISSIONS.title.toString(), Jenkins.ADMINISTER.name)));
}
{ // Run.ARTIFACTS is not implied by other permissions
String description = new GlobalMatrixAuthorizationStrategy.DescriptorImpl().getDescription(Run.ARTIFACTS);
- Assert.assertTrue(
- description.contains(Messages.GlobalMatrixAuthorizationStrategy_PermissionNotImpliedBy()));
- Assert.assertFalse(description.contains(Messages.GlobalMatrixAuthorizationStrategy_PermissionImpliedBy(
+ assertTrue(description.contains(Messages.GlobalMatrixAuthorizationStrategy_PermissionNotImpliedBy()));
+ assertFalse(description.contains(Messages.GlobalMatrixAuthorizationStrategy_PermissionImpliedBy(
Jenkins.PERMISSIONS.title.toString(), Jenkins.ADMINISTER.name)));
}
@@ -43,9 +43,8 @@ public void testImpliedNotes() {
// Use a fake permission for the 'implied by' message addition check, since Item.CANCEL changed behavior in
// 2.120, and there's no permission left with the same behavior.
String description = new GlobalMatrixAuthorizationStrategy.DescriptorImpl().getDescription(TEST_PERMISSION);
- Assert.assertFalse(
- description.contains(Messages.GlobalMatrixAuthorizationStrategy_PermissionNotImpliedBy()));
- Assert.assertTrue(description.contains(Messages.GlobalMatrixAuthorizationStrategy_PermissionImpliedBy(
+ assertFalse(description.contains(Messages.GlobalMatrixAuthorizationStrategy_PermissionNotImpliedBy()));
+ assertTrue(description.contains(Messages.GlobalMatrixAuthorizationStrategy_PermissionImpliedBy(
Item.PERMISSIONS.title.toString(), Item.BUILD.name)));
}
}
diff --git a/src/test/java/org/jenkinsci/plugins/matrixauth/AuthorizationMatrixNodePropertyTest.java b/src/test/java/org/jenkinsci/plugins/matrixauth/AuthorizationMatrixNodePropertyTest.java
index 7f9dc020..6c9d9e40 100644
--- a/src/test/java/org/jenkinsci/plugins/matrixauth/AuthorizationMatrixNodePropertyTest.java
+++ b/src/test/java/org/jenkinsci/plugins/matrixauth/AuthorizationMatrixNodePropertyTest.java
@@ -24,6 +24,8 @@
package org.jenkinsci.plugins.matrixauth;
+import static org.junit.jupiter.api.Assertions.*;
+
import hudson.model.Computer;
import hudson.model.Node;
import hudson.model.User;
@@ -34,42 +36,47 @@
import java.util.Collections;
import java.util.Objects;
import jenkins.model.Jenkins;
-import org.junit.Assert;
-import org.junit.Rule;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
import org.jvnet.hudson.test.JenkinsRule;
+import org.jvnet.hudson.test.junit.jupiter.WithJenkins;
+
+@WithJenkins
+class AuthorizationMatrixNodePropertyTest {
-public class AuthorizationMatrixNodePropertyTest {
+ private JenkinsRule j;
- @Rule
- public JenkinsRule r = new JenkinsRule();
+ @BeforeEach
+ void setUp(JenkinsRule rule) {
+ j = rule;
+ }
@Test
- public void ensureCreatorHasPermissions() throws Exception {
+ void ensureCreatorHasPermissions() throws Exception {
HudsonPrivateSecurityRealm realm = new HudsonPrivateSecurityRealm(false, false, null);
realm.createAccount("alice", "alice");
realm.createAccount("bob", "bob");
- r.jenkins.setSecurityRealm(realm);
+ j.jenkins.setSecurityRealm(realm);
ProjectMatrixAuthorizationStrategy authorizationStrategy = new ProjectMatrixAuthorizationStrategy();
authorizationStrategy.add(Computer.CREATE, PermissionEntry.user("alice"));
authorizationStrategy.add(Jenkins.READ, PermissionEntry.user("alice"));
addRunScriptsPermission(authorizationStrategy);
- r.jenkins.setAuthorizationStrategy(authorizationStrategy);
+ j.jenkins.setAuthorizationStrategy(authorizationStrategy);
Node node;
try (ACLContext ignored = ACL.as(User.get("alice", false, Collections.emptyMap()))) {
- node = r.createSlave();
+ node = j.createSlave();
}
- Assert.assertNotNull(node.getNodeProperty(AuthorizationMatrixNodeProperty.class));
- Assert.assertTrue(node.getACL()
+ assertNotNull(node.getNodeProperty(AuthorizationMatrixNodeProperty.class));
+ assertTrue(node.getACL()
.hasPermission2(
Objects.requireNonNull(User.get("alice", false, Collections.emptyMap()))
.impersonate2(),
Computer.CONFIGURE));
- Assert.assertFalse(node.getACL()
+ assertFalse(node.getACL()
.hasPermission2(
Objects.requireNonNull(User.get("bob", false, Collections.emptyMap()))
.impersonate2(),
diff --git a/src/test/java/org/jenkinsci/plugins/matrixauth/Jenkins57313Test.java b/src/test/java/org/jenkinsci/plugins/matrixauth/Jenkins57313Test.java
index 5218d407..60cef8b0 100644
--- a/src/test/java/org/jenkinsci/plugins/matrixauth/Jenkins57313Test.java
+++ b/src/test/java/org/jenkinsci/plugins/matrixauth/Jenkins57313Test.java
@@ -1,30 +1,39 @@
package org.jenkinsci.plugins.matrixauth;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
import hudson.security.GlobalMatrixAuthorizationStrategy;
import jenkins.model.Jenkins;
import org.htmlunit.html.HtmlPage;
-import org.junit.Assert;
-import org.junit.Rule;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
import org.jvnet.hudson.test.Issue;
import org.jvnet.hudson.test.JenkinsRule;
+import org.jvnet.hudson.test.junit.jupiter.WithJenkins;
+
+@WithJenkins
+class Jenkins57313Test {
-public class Jenkins57313Test {
- @Rule
- public JenkinsRule j = new JenkinsRule();
+ private JenkinsRule j;
+
+ @BeforeEach
+ void setUp(JenkinsRule rule) {
+ j = rule;
+ }
@Test
@Issue("JENKINS-57313")
- public void testFormValidation() throws Exception {
+ void testFormValidation() throws Exception {
j.jenkins.setSecurityRealm(j.createDummySecurityRealm());
GlobalMatrixAuthorizationStrategy authorizationStrategy = new GlobalMatrixAuthorizationStrategy();
authorizationStrategy.add(Jenkins.ADMINISTER, "anonymous");
j.jenkins.setAuthorizationStrategy(authorizationStrategy);
HtmlPage page = j.createWebClient()
.goTo(authorizationStrategy.getDescriptor().getDescriptorUrl() + "/checkName?value=[USER:alice]");
- Assert.assertEquals(200, page.getWebResponse().getStatusCode());
+ assertEquals(200, page.getWebResponse().getStatusCode());
String responseText = page.getWebResponse().getContentAsString();
- Assert.assertTrue(responseText.contains("alice"));
- Assert.assertTrue(responseText.contains("User"));
+ assertTrue(responseText.contains("alice"));
+ assertTrue(responseText.contains("User"));
}
}
diff --git a/src/test/java/org/jenkinsci/plugins/matrixauth/PermissionAdderTest.java b/src/test/java/org/jenkinsci/plugins/matrixauth/PermissionAdderTest.java
index 5913d5bc..ab42ee0f 100644
--- a/src/test/java/org/jenkinsci/plugins/matrixauth/PermissionAdderTest.java
+++ b/src/test/java/org/jenkinsci/plugins/matrixauth/PermissionAdderTest.java
@@ -1,5 +1,8 @@
package org.jenkinsci.plugins.matrixauth;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
import hudson.model.User;
import hudson.security.GlobalMatrixAuthorizationStrategy;
import hudson.security.HudsonPrivateSecurityRealm;
@@ -8,21 +11,20 @@
import java.util.Objects;
import jenkins.model.Jenkins;
import org.htmlunit.ElementNotFoundException;
-import org.junit.Assert;
-import org.junit.Rule;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
import org.jvnet.hudson.test.Issue;
import org.jvnet.hudson.test.JenkinsRule;
-import org.jvnet.hudson.test.JenkinsSessionRule;
+import org.jvnet.hudson.test.junit.jupiter.JenkinsSessionExtension;
-public class PermissionAdderTest {
+class PermissionAdderTest {
- @Rule
- public JenkinsSessionRule sessions = new JenkinsSessionRule();
+ @RegisterExtension
+ private final JenkinsSessionExtension sessions = new JenkinsSessionExtension();
@Test
@Issue("JENKINS-20520")
- public void ensureSavingAfterInitialUser() throws Throwable {
+ void ensureSavingAfterInitialUser() throws Throwable {
sessions.then(j -> {
j.jenkins.setSecurityRealm(new HudsonPrivateSecurityRealm(true, false, null));
j.jenkins.setAuthorizationStrategy(new GlobalMatrixAuthorizationStrategy());
@@ -40,10 +42,10 @@ public void ensureSavingAfterInitialUser() throws Throwable {
}
signup.submit(j);
User alice = User.get("alice", false, Collections.emptyMap());
- Assert.assertNotNull(alice);
- Assert.assertTrue(j.jenkins.getACL().hasPermission2(alice.impersonate2(), Jenkins.ADMINISTER));
+ assertNotNull(alice);
+ assertTrue(j.jenkins.getACL().hasPermission2(alice.impersonate2(), Jenkins.ADMINISTER));
});
- sessions.then(j -> Assert.assertTrue(j.jenkins
+ sessions.then(j -> assertTrue(j.jenkins
.getACL()
.hasPermission2(
Objects.requireNonNull(User.get("alice", false, Collections.emptyMap()))
diff --git a/src/test/java/org/jenkinsci/plugins/matrixauth/ReadOnlyTest.java b/src/test/java/org/jenkinsci/plugins/matrixauth/ReadOnlyTest.java
index 6fdb25ed..1fe7a3c5 100644
--- a/src/test/java/org/jenkinsci/plugins/matrixauth/ReadOnlyTest.java
+++ b/src/test/java/org/jenkinsci/plugins/matrixauth/ReadOnlyTest.java
@@ -1,5 +1,8 @@
package org.jenkinsci.plugins.matrixauth;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
import com.cloudbees.hudson.plugins.folder.Folder;
import hudson.model.Computer;
import hudson.model.FreeStyleProject;
@@ -13,18 +16,37 @@
import jenkins.model.Jenkins;
import org.htmlunit.html.HtmlPage;
import org.jenkinsci.plugins.matrixauth.inheritance.InheritParentStrategy;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
import org.jvnet.hudson.test.Issue;
import org.jvnet.hudson.test.JenkinsRule;
+import org.jvnet.hudson.test.junit.jupiter.WithJenkins;
import org.xml.sax.SAXException;
@Issue("JENKINS-62202")
-public class ReadOnlyTest {
- @Rule
- public JenkinsRule j = new JenkinsRule();
+@WithJenkins
+class ReadOnlyTest {
+
+ private JenkinsRule j;
+
+ @BeforeEach
+ void setUp(JenkinsRule rule) {
+ j = rule;
+
+ Jenkins.SYSTEM_READ.enabled = true;
+ Item.EXTENDED_READ.enabled = true;
+ Computer.EXTENDED_READ.enabled = true;
+ Jenkins.get().setSecurityRealm(j.createDummySecurityRealm());
+ final ProjectMatrixAuthorizationStrategy strategy = new ProjectMatrixAuthorizationStrategy();
+ {
+ strategy.add(Jenkins.READ, "anonymous");
+ strategy.add(Jenkins.SYSTEM_READ, "anonymous");
+ strategy.add(Item.READ, "anonymous");
+ strategy.add(Item.EXTENDED_READ, "anonymous");
+ strategy.add(Computer.EXTENDED_READ, "anonymous");
+ }
+ Jenkins.get().setAuthorizationStrategy(strategy);
+ }
private static boolean containsClassName(String className, String value) {
Objects.requireNonNull(className, "className");
@@ -43,45 +65,28 @@ private static boolean hasTagWithClassInPage(HtmlPage page, String tagName, Stri
private HtmlPage initAndAssertPresent(String configurationUrl) throws IOException, SAXException {
JenkinsRule.WebClient wc = j.createWebClient();
final HtmlPage page = wc.goTo(configurationUrl);
- Assert.assertTrue(
- "contains permission container",
- hasTagWithClassInPage(page, "table", "global-matrix-authorization-strategy-table"));
+ assertTrue(
+ hasTagWithClassInPage(page, "table", "global-matrix-authorization-strategy-table"),
+ "contains permission container");
return page;
}
private void assertPresentAndEditable(String configurationUrl) throws IOException, SAXException {
final HtmlPage page = initAndAssertPresent(configurationUrl);
- Assert.assertTrue(
- "should contain add group/user button",
- hasTagWithClassInPage(page, "button", "matrix-auth-add-button"));
+ assertTrue(
+ hasTagWithClassInPage(page, "button", "matrix-auth-add-button"),
+ "should contain add group/user button");
}
private void assertPresentAndReadOnly(String configurationUrl) throws IOException, SAXException {
final HtmlPage page = initAndAssertPresent(configurationUrl);
- Assert.assertFalse(
- "should not contain add group/user button",
- hasTagWithClassInPage(page, "button", "matrix-auth-add-button"));
- }
-
- @Before
- public void prepare() {
- Jenkins.SYSTEM_READ.enabled = true;
- Item.EXTENDED_READ.enabled = true;
- Computer.EXTENDED_READ.enabled = true;
- Jenkins.get().setSecurityRealm(j.createDummySecurityRealm());
- final ProjectMatrixAuthorizationStrategy strategy = new ProjectMatrixAuthorizationStrategy();
- {
- strategy.add(Jenkins.READ, "anonymous");
- strategy.add(Jenkins.SYSTEM_READ, "anonymous");
- strategy.add(Item.READ, "anonymous");
- strategy.add(Item.EXTENDED_READ, "anonymous");
- strategy.add(Computer.EXTENDED_READ, "anonymous");
- }
- Jenkins.get().setAuthorizationStrategy(strategy);
+ assertFalse(
+ hasTagWithClassInPage(page, "button", "matrix-auth-add-button"),
+ "should not contain add group/user button");
}
@Test
- public void testGlobalConfiguration() throws IOException, SAXException {
+ void testGlobalConfiguration() throws IOException, SAXException {
assertPresentAndReadOnly("configureSecurity");
((ProjectMatrixAuthorizationStrategy) Jenkins.get().getAuthorizationStrategy())
@@ -90,7 +95,7 @@ public void testGlobalConfiguration() throws IOException, SAXException {
}
@Test
- public void testJobConfiguration() throws IOException, SAXException {
+ void testJobConfiguration() throws IOException, SAXException {
final FreeStyleProject job =
j.createFreeStyleProject(); // While 2.223 changed the UI (readOnlyMode), the basic behavior by this
// plugin remains the same due to permission check
@@ -108,7 +113,7 @@ public void testJobConfiguration() throws IOException, SAXException {
}
@Test
- public void testFolderConfiguration() throws IOException, SAXException {
+ void testFolderConfiguration() throws IOException, SAXException {
final Folder folder = Jenkins.get().createProject(Folder.class, "testFolder");
folder.addProperty(
new com.cloudbees.hudson.plugins.folder.properties.AuthorizationMatrixProperty(Collections.emptyMap()));
@@ -121,7 +126,7 @@ public void testFolderConfiguration() throws IOException, SAXException {
}
@Test
- public void testAgentConfigurationGlobally() throws Exception {
+ void testAgentConfigurationGlobally() throws Exception {
final Slave agent = j.createSlave();
agent.setNodeProperties(Collections.singletonList(new AuthorizationMatrixNodeProperty()));
assertPresentAndReadOnly("computer/" + agent.getNodeName() + "/configure");
@@ -132,7 +137,7 @@ public void testAgentConfigurationGlobally() throws Exception {
}
@Test
- public void testAgentConfigurationPerAgent() throws Exception {
+ void testAgentConfigurationPerAgent() throws Exception {
final Slave agent = j.createSlave();
agent.setNodeProperties(Collections.singletonList(new AuthorizationMatrixNodeProperty()));
assertPresentAndReadOnly("computer/" + agent.getNodeName() + "/configure");
diff --git a/src/test/java/org/jenkinsci/plugins/matrixauth/Security2180Test.java b/src/test/java/org/jenkinsci/plugins/matrixauth/Security2180Test.java
index cb239e70..776910f0 100644
--- a/src/test/java/org/jenkinsci/plugins/matrixauth/Security2180Test.java
+++ b/src/test/java/org/jenkinsci/plugins/matrixauth/Security2180Test.java
@@ -3,9 +3,7 @@
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.containsString;
import static org.hamcrest.Matchers.not;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.*;
import com.cloudbees.hudson.plugins.folder.Folder;
import hudson.Functions;
@@ -33,16 +31,16 @@
import org.jenkinsci.plugins.matrixauth.inheritance.InheritParentStrategy;
import org.jenkinsci.plugins.matrixauth.inheritance.InheritanceStrategy;
import org.jenkinsci.plugins.matrixauth.inheritance.NonInheritingStrategy;
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.ClassRule;
-import org.junit.Rule;
-import org.junit.Test;
-import org.jvnet.hudson.test.BuildWatcher;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
import org.jvnet.hudson.test.JenkinsRule;
import org.jvnet.hudson.test.SleepBuilder;
+import org.jvnet.hudson.test.junit.jupiter.WithJenkins;
+
+@WithJenkins
+class Security2180Test {
-public class Security2180Test {
private static final String BUILD_CONTENT = "Started by user";
private static final String JOB_CONTENT = "Full project name: folder/job";
private static final Map> ANONYMOUS_CAN_ITEM_READ =
@@ -50,14 +48,15 @@ public class Security2180Test {
private static final Logger LOGGER = Logger.getLogger(Security2180Test.class.getName());
- @ClassRule
- public static BuildWatcher watcher = new BuildWatcher();
+ private JenkinsRule j;
- @Rule
- public JenkinsRule j = new JenkinsRule();
+ @BeforeEach
+ void setUp(JenkinsRule rule) {
+ j = rule;
+ }
- @After
- public void stopBuilds() throws Exception {
+ @AfterEach
+ void stopBuilds() throws Exception {
for (FreeStyleProject p : j.jenkins.allItems(FreeStyleProject.class)) {
for (FreeStyleBuild b : p.getBuilds()) {
LOGGER.info(() -> "Stopping " + b + "…");
@@ -128,7 +127,7 @@ private void assertJobVisibility(FreeStyleProject job, boolean visibleWithFix, b
job.scheduleBuild2(0, new Cause.UserIdCause("admin")).waitForStart(); // schedule one build now
QueueTaskFuture future =
job.scheduleBuild2(0, new Cause.UserIdCause("admin")); // schedule an additional queue item
- Assert.assertEquals(1, Jenkins.get().getQueue().getItems().length); // expect there to be one queue item
+ assertEquals(1, Jenkins.get().getQueue().getItems().length); // expect there to be one queue item
final JenkinsRule.WebClient webClient = j.createWebClient().withThrowExceptionOnFailingStatusCode(false);
@@ -221,12 +220,12 @@ private AuthorizationMatrixProperty createJobProperty(
}
@Test
- public void testQueuePath() throws Exception {
+ void testQueuePath() throws Exception {
prepareJenkinsDefaultSetupWithOverallReadForAnonymous();
FreeStyleProject job = prepareNestedProject(null, new AuthorizationMatrixProperty(ANONYMOUS_CAN_ITEM_READ));
job.scheduleBuild2(1000, new Cause.UserIdCause("admin"));
- Assert.assertEquals(1, Jenkins.get().getQueue().getItems().length);
+ assertEquals(1, Jenkins.get().getQueue().getItems().length);
final JenkinsRule.WebClient webClient = j.createWebClient().withThrowExceptionOnFailingStatusCode(false);
final HtmlPage htmlPage = webClient.goTo("queue/items/0/task/");
@@ -235,12 +234,12 @@ public void testQueuePath() throws Exception {
}
@Test
- public void testQueueContent() throws Exception {
+ void testQueueContent() throws Exception {
prepareJenkinsDefaultSetupWithOverallReadForAnonymous();
FreeStyleProject job = prepareNestedProject(null, new AuthorizationMatrixProperty(ANONYMOUS_CAN_ITEM_READ));
job.scheduleBuild2(1000, new Cause.UserIdCause("admin"));
- Assert.assertEquals(1, Jenkins.get().getQueue().getItems().length);
+ assertEquals(1, Jenkins.get().getQueue().getItems().length);
final JenkinsRule.WebClient webClient = j.createWebClient();
final Page page = webClient.goTo("queue/api/xml/", "application/xml");
@@ -249,14 +248,14 @@ public void testQueueContent() throws Exception {
}
@Test
- public void testExecutorsPath() throws Exception {
+ void testExecutorsPath() throws Exception {
prepareJenkinsDefaultSetupWithOverallReadForAnonymous();
FreeStyleProject job = prepareNestedProject(null, new AuthorizationMatrixProperty(ANONYMOUS_CAN_ITEM_READ));
final FreeStyleBuild build =
job.scheduleBuild2(0, new Cause.UserIdCause("admin")).waitForStart();
final Executor executor = build.getExecutor();
- assertNotNull("null executor", executor);
+ assertNotNull(executor, "null executor");
final int number = executor.getNumber();
final JenkinsRule.WebClient webClient = j.createWebClient().withThrowExceptionOnFailingStatusCode(false);
@@ -266,7 +265,7 @@ public void testExecutorsPath() throws Exception {
}
@Test
- public void testExecutorsContent() throws Exception {
+ void testExecutorsContent() throws Exception {
prepareJenkinsDefaultSetupWithOverallReadForAnonymous();
Folder folder = j.jenkins.createProject(Folder.class, "folder");
FreeStyleProject job = createFreeStyleProjectWithReadPermissionForAnonymousInFolder(folder);
@@ -280,13 +279,13 @@ public void testExecutorsContent() throws Exception {
}
@Test
- public void testWidgets() throws Exception {
+ void testWidgets() throws Exception {
prepareJenkinsDefaultSetupWithOverallReadForAnonymous();
FreeStyleProject job = prepareNestedProject(null, createJobPropertyForAnonymousItemRead());
job.scheduleBuild2(0, new Cause.UserIdCause("admin")).waitForStart(); // schedule one build now
job.scheduleBuild2(0, new Cause.UserIdCause("admin")); // schedule an additional queue item
- Assert.assertEquals(1, Jenkins.get().getQueue().getItems().length); // expect there to be one queue item
+ assertEquals(1, Jenkins.get().getQueue().getItems().length); // expect there to be one queue item
final JenkinsRule.WebClient webClient = j.createWebClient().withThrowExceptionOnFailingStatusCode(false);
@@ -300,7 +299,7 @@ public void testWidgets() throws Exception {
}
@Test
- public void testTwoNestedFolderWithSecondGrantingAccess() throws Exception {
+ void testTwoNestedFolderWithSecondGrantingAccess() throws Exception {
prepareJenkinsDefaultSetupWithOverallReadForAnonymous();
FreeStyleProject job = prepareNestedProject(
null,
@@ -310,7 +309,7 @@ public void testTwoNestedFolderWithSecondGrantingAccess() throws Exception {
}
@Test
- public void testThreeNestedFolderWithSecondGrantingAccess() throws Exception {
+ void testThreeNestedFolderWithSecondGrantingAccess() throws Exception {
prepareJenkinsDefaultSetupWithOverallReadForAnonymous();
FreeStyleProject job = prepareNestedProject(
null, // folder does not allow Item/Read for anon
@@ -322,7 +321,7 @@ public void testThreeNestedFolderWithSecondGrantingAccess() throws Exception {
}
@Test
- public void testGlobalItemReadBlockedByNonInheritingStrategyOnJob() throws Exception {
+ void testGlobalItemReadBlockedByNonInheritingStrategyOnJob() throws Exception {
prepareJenkinsDefaultSetupWithOverallReadForAnonymous(Item.READ);
FreeStyleProject job =
prepareNestedProject(null, createJobProperty(Collections.emptyMap(), new NonInheritingStrategy()));
@@ -330,7 +329,7 @@ public void testGlobalItemReadBlockedByNonInheritingStrategyOnJob() throws Excep
}
@Test
- public void testGlobalItemReadBlockedByNonInheritingStrategyOnMiddleFolder() throws Exception {
+ void testGlobalItemReadBlockedByNonInheritingStrategyOnMiddleFolder() throws Exception {
prepareJenkinsDefaultSetupWithOverallReadForAnonymous(Item.READ);
FreeStyleProject job = prepareNestedProject(
null,
@@ -341,7 +340,7 @@ public void testGlobalItemReadBlockedByNonInheritingStrategyOnMiddleFolder() thr
}
@Test
- public void testInheritGlobalMiddleFolderInheritParentInnerFolder() throws Exception {
+ void testInheritGlobalMiddleFolderInheritParentInnerFolder() throws Exception {
prepareJenkinsDefaultSetupWithOverallReadForAnonymous(Item.READ);
// Global( Item/Read ) -> folder (no prop) -> folder2 (prop inherits global) -> folder3 (prop inherits parent,
// grants Read) -> job (grants Read)
@@ -354,7 +353,7 @@ public void testInheritGlobalMiddleFolderInheritParentInnerFolder() throws Excep
}
@Test
- public void testNonInheritingOuterFolderBlocksInheritGlobalInnerFolder() throws Exception {
+ void testNonInheritingOuterFolderBlocksInheritGlobalInnerFolder() throws Exception {
prepareJenkinsDefaultSetupWithOverallReadForAnonymous(Item.READ);
// Global( Item/Read ) -> folder (do not inherit) -> folder2 (prop inherits global) -> folder3 (prop inherits
// parent, grants Read) -> job (grants Read)
@@ -367,7 +366,7 @@ public void testNonInheritingOuterFolderBlocksInheritGlobalInnerFolder() throws
}
@Test
- public void testInheritGlobalInFolderInheritParentAndExplicitGrantInItem() throws Exception {
+ void testInheritGlobalInFolderInheritParentAndExplicitGrantInItem() throws Exception {
prepareJenkinsDefaultSetupWithOverallReadForAnonymous(Item.READ);
FreeStyleProject job = prepareNestedProject(
createFolderProperty(Collections.emptyMap(), new InheritGlobalStrategy()),
@@ -376,7 +375,7 @@ public void testInheritGlobalInFolderInheritParentAndExplicitGrantInItem() throw
}
@Test
- public void testInheritGlobalInFolderInheritParentWithoutExplicitGrantInItem_visible() throws Exception {
+ void testInheritGlobalInFolderInheritParentWithoutExplicitGrantInItem_visible() throws Exception {
prepareJenkinsDefaultSetupWithOverallReadForAnonymous(Item.READ);
FreeStyleProject job = prepareNestedProject(
createFolderProperty(Collections.emptyMap(), new InheritGlobalStrategy()),
@@ -385,7 +384,7 @@ public void testInheritGlobalInFolderInheritParentWithoutExplicitGrantInItem_vis
}
@Test
- public void testExplicitNonInheritingThenInheritGlobalReadThenParent_visible() throws Exception {
+ void testExplicitNonInheritingThenInheritGlobalReadThenParent_visible() throws Exception {
prepareJenkinsDefaultSetupWithOverallReadForAnonymous(Item.READ);
FreeStyleProject job = prepareNestedProject(
createFolderProperty(ANONYMOUS_CAN_ITEM_READ, new NonInheritingStrategy()),
@@ -395,7 +394,7 @@ public void testExplicitNonInheritingThenInheritGlobalReadThenParent_visible() t
}
@Test
- public void testNonInheritingThenInheritGlobalReadThenParent_not_visible() throws Exception {
+ void testNonInheritingThenInheritGlobalReadThenParent_not_visible() throws Exception {
prepareJenkinsDefaultSetupWithOverallReadForAnonymous(Item.READ);
FreeStyleProject job = prepareNestedProject(
createFolderProperty(Collections.emptyMap(), new NonInheritingStrategy()),
@@ -405,7 +404,7 @@ public void testNonInheritingThenInheritGlobalReadThenParent_not_visible() throw
}
@Test
- public void testExplicitNonInheritingThenInheritGlobalNonReadThenParent_not_visible() throws Exception {
+ void testExplicitNonInheritingThenInheritGlobalNonReadThenParent_not_visible() throws Exception {
prepareJenkinsDefaultSetupWithOverallReadForAnonymous();
FreeStyleProject job = prepareNestedProject(
createFolderProperty(ANONYMOUS_CAN_ITEM_READ, new NonInheritingStrategy()),
@@ -415,7 +414,7 @@ public void testExplicitNonInheritingThenInheritGlobalNonReadThenParent_not_visi
}
@Test
- public void testExplicitNonInheritingThenInheritGlobalReadThenNonInheriting_not_visible() throws Exception {
+ void testExplicitNonInheritingThenInheritGlobalReadThenNonInheriting_not_visible() throws Exception {
prepareJenkinsDefaultSetupWithOverallReadForAnonymous(Item.READ);
FreeStyleProject job = prepareNestedProject(
createFolderProperty(ANONYMOUS_CAN_ITEM_READ, new NonInheritingStrategy()),
@@ -425,7 +424,7 @@ public void testExplicitNonInheritingThenInheritGlobalReadThenNonInheriting_not_
}
@Test
- public void testInheritGlobalInFolderInheritParentWithoutExplicitGrantInItem2_visible() throws Exception {
+ void testInheritGlobalInFolderInheritParentWithoutExplicitGrantInItem2_visible() throws Exception {
prepareJenkinsDefaultSetupWithOverallReadForAnonymous(Item.READ);
FreeStyleProject job = prepareNestedProject(
createFolderProperty(Collections.emptyMap(), new InheritGlobalStrategy()),
@@ -434,7 +433,7 @@ public void testInheritGlobalInFolderInheritParentWithoutExplicitGrantInItem2_vi
}
@Test
- public void testInheritGlobalInFolderAndItem_visible() throws Exception {
+ void testInheritGlobalInFolderAndItem_visible() throws Exception {
prepareJenkinsDefaultSetupWithOverallReadForAnonymous(Item.READ);
FreeStyleProject job = prepareNestedProject(
createFolderProperty(Collections.emptyMap(), new InheritGlobalStrategy()),
@@ -443,7 +442,7 @@ public void testInheritGlobalInFolderAndItem_visible() throws Exception {
}
@Test
- public void testNonInheritingItemWithExplicitGrantInsideNonGrantingFolder() throws Exception {
+ void testNonInheritingItemWithExplicitGrantInsideNonGrantingFolder() throws Exception {
prepareJenkinsDefaultSetupWithOverallReadForAnonymous();
FreeStyleProject job =
@@ -452,7 +451,7 @@ public void testNonInheritingItemWithExplicitGrantInsideNonGrantingFolder() thro
}
@Test
- public void testEscapeHatch() throws Exception {
+ void testEscapeHatch() throws Exception {
final String propertyName =
hudson.security.AuthorizationMatrixProperty.class.getName() + ".checkParentPermissions";
try {
@@ -463,7 +462,7 @@ public void testEscapeHatch() throws Exception {
FreeStyleProject job = createFreeStyleProjectWithReadPermissionForAnonymousInFolder(folder);
job.scheduleBuild2(1000, new Cause.UserIdCause("admin"));
- Assert.assertEquals(1, Jenkins.get().getQueue().getItems().length);
+ assertEquals(1, Jenkins.get().getQueue().getItems().length);
final JenkinsRule.WebClient webClient = j.createWebClient().withThrowExceptionOnFailingStatusCode(false);
@@ -480,9 +479,9 @@ public void testEscapeHatch() throws Exception {
final FreeStyleBuild build =
job.scheduleBuild2(0, new Cause.UserIdCause("admin")).waitForStart();
final Executor executor = build.getExecutor();
- assertNotNull("null executor", executor);
+ assertNotNull(executor, "null executor");
final int number = executor.getNumber();
- Assert.assertEquals(0, Jenkins.get().getQueue().getItems().length); // collapsed queue items
+ assertEquals(0, Jenkins.get().getQueue().getItems().length); // collapsed queue items
{ // executor related assertions
final HtmlPage htmlPage =
diff --git a/src/test/java/org/jenkinsci/plugins/matrixauth/inheritance/InheritanceMigrationTest.java b/src/test/java/org/jenkinsci/plugins/matrixauth/inheritance/InheritanceMigrationTest.java
index 26de9975..0911a877 100644
--- a/src/test/java/org/jenkinsci/plugins/matrixauth/inheritance/InheritanceMigrationTest.java
+++ b/src/test/java/org/jenkinsci/plugins/matrixauth/inheritance/InheritanceMigrationTest.java
@@ -3,6 +3,7 @@
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.containsString;
import static org.hamcrest.Matchers.not;
+import static org.junit.jupiter.api.Assertions.*;
import com.cloudbees.hudson.plugins.folder.Folder;
import com.cloudbees.hudson.plugins.folder.properties.AuthorizationMatrixProperty;
@@ -11,71 +12,76 @@
import hudson.model.Job;
import hudson.model.User;
import hudson.security.ProjectMatrixAuthorizationStrategy;
-import org.junit.Assert;
-import org.junit.Rule;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
import org.jvnet.hudson.test.JenkinsRule;
+import org.jvnet.hudson.test.junit.jupiter.WithJenkins;
import org.jvnet.hudson.test.recipes.LocalData;
-public class InheritanceMigrationTest {
+@WithJenkins
+class InheritanceMigrationTest {
- @Rule
- public JenkinsRule j = new JenkinsRule();
+ private JenkinsRule j;
+
+ @BeforeEach
+ void setUp(JenkinsRule rule) {
+ j = rule;
+ }
@Test
@LocalData
@SuppressWarnings("deprecation")
- public void testInheritanceMigration() throws Exception {
- Assert.assertTrue(j.jenkins.getAuthorizationStrategy() instanceof ProjectMatrixAuthorizationStrategy);
+ void testInheritanceMigration() throws Exception {
+ assertInstanceOf(ProjectMatrixAuthorizationStrategy.class, j.jenkins.getAuthorizationStrategy());
{
Folder folder = (Folder) j.jenkins.getItemByFullName("folder");
- Assert.assertNotNull(folder);
+ assertNotNull(folder);
assertThat(folder.getConfigFile().asString(), containsString("blocksInheritance"));
AuthorizationMatrixProperty prop = (folder).getProperties().get(AuthorizationMatrixProperty.class);
- Assert.assertTrue(prop.isBlocksInheritance());
- Assert.assertTrue(prop.getInheritanceStrategy() instanceof NonInheritingStrategy);
- Assert.assertTrue(prop.hasExplicitPermission("admin", Item.CONFIGURE));
- Assert.assertTrue(prop.hasExplicitPermission("admin", Item.READ));
- Assert.assertTrue(prop.hasExplicitPermission("admin", Item.CREATE));
- Assert.assertFalse(folder.getACL().hasPermission(User.get("alice").impersonate(), Item.READ));
- Assert.assertFalse(folder.getACL().hasPermission(User.get("bob").impersonate(), Item.READ));
+ assertTrue(prop.isBlocksInheritance());
+ assertInstanceOf(NonInheritingStrategy.class, prop.getInheritanceStrategy());
+ assertTrue(prop.hasExplicitPermission("admin", Item.CONFIGURE));
+ assertTrue(prop.hasExplicitPermission("admin", Item.READ));
+ assertTrue(prop.hasExplicitPermission("admin", Item.CREATE));
+ assertFalse(folder.getACL().hasPermission(User.get("alice").impersonate(), Item.READ));
+ assertFalse(folder.getACL().hasPermission(User.get("bob").impersonate(), Item.READ));
folder.save();
assertThat(folder.getConfigFile().asString(), not(containsString("blocksInheritance")));
folder = (Folder) j.jenkins.getItemByFullName("folder1");
- Assert.assertNotNull(folder);
+ assertNotNull(folder);
assertThat(folder.getConfigFile().asString(), containsString("blocksInheritance"));
prop = (folder).getProperties().get(AuthorizationMatrixProperty.class);
- Assert.assertTrue(prop.isBlocksInheritance());
- Assert.assertTrue(prop.getInheritanceStrategy() instanceof NonInheritingStrategy);
- Assert.assertTrue(prop.hasExplicitPermission("admin", Item.CONFIGURE));
- Assert.assertFalse(prop.hasExplicitPermission("admin", Item.READ));
- Assert.assertTrue(folder.getACL()
+ assertTrue(prop.isBlocksInheritance());
+ assertInstanceOf(NonInheritingStrategy.class, prop.getInheritanceStrategy());
+ assertTrue(prop.hasExplicitPermission("admin", Item.CONFIGURE));
+ assertFalse(prop.hasExplicitPermission("admin", Item.READ));
+ assertTrue(folder.getACL()
.hasPermission(
User.get("admin").impersonate(),
Item.READ)); // change from before (JENKINS-24878/JENKINS-37904)
- Assert.assertTrue(folder.getACL().hasPermission(User.get("admin").impersonate(), Item.CONFIGURE));
- Assert.assertTrue(prop.hasExplicitPermission("alice", Item.CONFIGURE));
- Assert.assertTrue(prop.hasExplicitPermission("alice", Item.READ));
- Assert.assertTrue(folder.getACL().hasPermission(User.get("alice").impersonate(), Item.READ));
- Assert.assertFalse(prop.hasPermission("bob", Item.READ));
- Assert.assertFalse(folder.getACL().hasPermission(User.get("bob").impersonate(), Item.READ));
+ assertTrue(folder.getACL().hasPermission(User.get("admin").impersonate(), Item.CONFIGURE));
+ assertTrue(prop.hasExplicitPermission("alice", Item.CONFIGURE));
+ assertTrue(prop.hasExplicitPermission("alice", Item.READ));
+ assertTrue(folder.getACL().hasPermission(User.get("alice").impersonate(), Item.READ));
+ assertFalse(prop.hasPermission("bob", Item.READ));
+ assertFalse(folder.getACL().hasPermission(User.get("bob").impersonate(), Item.READ));
folder.save();
assertThat(folder.getConfigFile().asString(), not(containsString("blocksInheritance")));
}
{
Job, ?> job = (Job, ?>) j.jenkins.getItemByFullName("folder/inheritNone");
- Assert.assertNotNull(job);
+ assertNotNull(job);
XmlFile configFile = job.getConfigFile();
assertThat("correct contents of " + configFile, configFile.asString(), containsString("blocksInheritance"));
hudson.security.AuthorizationMatrixProperty prop =
job.getProperty(hudson.security.AuthorizationMatrixProperty.class);
- Assert.assertTrue(prop.isBlocksInheritance());
- Assert.assertEquals(0, prop.getGrantedPermissions().size());
- Assert.assertTrue(prop.getInheritanceStrategy() instanceof NonInheritingStrategy);
- Assert.assertTrue(job.getACL()
+ assertTrue(prop.isBlocksInheritance());
+ assertEquals(0, prop.getGrantedPermissions().size());
+ assertInstanceOf(NonInheritingStrategy.class, prop.getInheritanceStrategy());
+ assertTrue(job.getACL()
.hasPermission(
User.get("admin").impersonate(),
Item.READ)); // change from before (JENKINS-24878/JENKINS-37904)
@@ -83,15 +89,15 @@ public void testInheritanceMigration() throws Exception {
assertThat(job.getConfigFile().asString(), not(containsString("blocksInheritance")));
job = (Job, ?>) j.jenkins.getItemByFullName("job");
- Assert.assertNotNull(job);
+ assertNotNull(job);
assertThat(job.getConfigFile().asString(), containsString("blocksInheritance"));
prop = job.getProperty(hudson.security.AuthorizationMatrixProperty.class);
- Assert.assertFalse(prop.isBlocksInheritance());
- Assert.assertTrue(prop.getInheritanceStrategy() instanceof InheritParentStrategy);
- Assert.assertTrue(job.getACL().hasPermission(User.get("bob").impersonate(), Item.READ));
- Assert.assertTrue(job.getACL().hasPermission(User.get("alice").impersonate(), Item.READ));
- Assert.assertTrue(job.getACL().hasPermission(User.get("admin").impersonate(), Item.READ));
- Assert.assertTrue(job.getACL().hasPermission(User.get("admin").impersonate(), Item.CONFIGURE));
+ assertFalse(prop.isBlocksInheritance());
+ assertInstanceOf(InheritParentStrategy.class, prop.getInheritanceStrategy());
+ assertTrue(job.getACL().hasPermission(User.get("bob").impersonate(), Item.READ));
+ assertTrue(job.getACL().hasPermission(User.get("alice").impersonate(), Item.READ));
+ assertTrue(job.getACL().hasPermission(User.get("admin").impersonate(), Item.READ));
+ assertTrue(job.getACL().hasPermission(User.get("admin").impersonate(), Item.CONFIGURE));
job.save();
assertThat(job.getConfigFile().asString(), not(containsString("blocksInheritance")));
}
diff --git a/src/test/java/org/jenkinsci/plugins/matrixauth/integrations/casc/ExportTest.java b/src/test/java/org/jenkinsci/plugins/matrixauth/integrations/casc/ExportTest.java
index c8c9ef52..5cc7b13e 100644
--- a/src/test/java/org/jenkinsci/plugins/matrixauth/integrations/casc/ExportTest.java
+++ b/src/test/java/org/jenkinsci/plugins/matrixauth/integrations/casc/ExportTest.java
@@ -2,8 +2,8 @@
import static io.jenkins.plugins.casc.misc.Util.toStringFromYamlFile;
import static io.jenkins.plugins.casc.misc.Util.toYamlString;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
import hudson.model.Node;
import hudson.security.ProjectMatrixAuthorizationStrategy;
@@ -13,19 +13,25 @@
import io.jenkins.plugins.casc.model.CNode;
import java.util.Objects;
import org.jenkinsci.plugins.matrixauth.AuthorizationMatrixNodeProperty;
-import org.junit.Rule;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
import org.jvnet.hudson.test.JenkinsRule;
+import org.jvnet.hudson.test.junit.jupiter.WithJenkins;
import org.jvnet.hudson.test.recipes.LocalData;
-public class ExportTest {
+@WithJenkins
+class ExportTest {
- @Rule
- public JenkinsRule j = new JenkinsRule();
+ private JenkinsRule j;
+
+ @BeforeEach
+ void setUp(JenkinsRule rule) {
+ j = rule;
+ }
@Test
@LocalData
- public void exportTestLegacy() throws Exception {
+ void exportTestLegacy() throws Exception {
ConfiguratorRegistry registry = ConfiguratorRegistry.get();
ConfigurationContext context = new ConfigurationContext(registry);
@@ -62,7 +68,7 @@ public void exportTestLegacy() throws Exception {
@Test
@LocalData
- public void exportTest() throws Exception {
+ void exportTest() throws Exception {
ConfiguratorRegistry registry = ConfiguratorRegistry.get();
ConfigurationContext context = new ConfigurationContext(registry);
diff --git a/src/test/java/org/jenkinsci/plugins/matrixauth/integrations/casc/ImportTest.java b/src/test/java/org/jenkinsci/plugins/matrixauth/integrations/casc/ImportTest.java
index 8da2a77a..9f7ce7d3 100644
--- a/src/test/java/org/jenkinsci/plugins/matrixauth/integrations/casc/ImportTest.java
+++ b/src/test/java/org/jenkinsci/plugins/matrixauth/integrations/casc/ImportTest.java
@@ -2,10 +2,7 @@
import static org.hamcrest.CoreMatchers.hasItems;
import static org.hamcrest.MatcherAssert.assertThat;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.*;
import com.cloudbees.hudson.plugins.folder.Folder;
import com.cloudbees.hudson.plugins.folder.properties.AuthorizationMatrixProperty;
@@ -26,19 +23,19 @@
import org.jenkinsci.plugins.matrixauth.PermissionEntry;
import org.jenkinsci.plugins.matrixauth.inheritance.InheritGlobalStrategy;
import org.jenkinsci.plugins.matrixauth.inheritance.NonInheritingStrategy;
-import org.junit.Rule;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
import org.jvnet.hudson.test.JenkinsRule;
-import org.jvnet.hudson.test.RealJenkinsRule;
+import org.jvnet.hudson.test.junit.jupiter.RealJenkinsExtension;
-public class ImportTest {
+class ImportTest {
- @Rule
- public RealJenkinsRule rr =
- new RealJenkinsRule().withLogger(MatrixAuthorizationStrategyConfigurator.class, Level.WARNING);
+ @RegisterExtension
+ private final RealJenkinsExtension rr =
+ new RealJenkinsExtension().withLogger(MatrixAuthorizationStrategyConfigurator.class, Level.WARNING);
@Test
- public void v3Test() throws Throwable {
+ void v3Test() throws Throwable {
rr.then(ImportTest::v3TestStep);
}
@@ -47,45 +44,46 @@ private static void v3TestStep(JenkinsRule r) throws ConfiguratorException {
.configure(Objects.requireNonNull(ImportTest.class.getResource("configuration-as-code-v3.yml"))
.toExternalForm());
- assertTrue("security realm", r.jenkins.getSecurityRealm() instanceof HudsonPrivateSecurityRealm);
+ assertInstanceOf(HudsonPrivateSecurityRealm.class, r.jenkins.getSecurityRealm(), "security realm");
AuthorizationStrategy authorizationStrategy = r.jenkins.getAuthorizationStrategy();
- assertTrue("authorization strategy", authorizationStrategy instanceof ProjectMatrixAuthorizationStrategy);
+ assertInstanceOf(ProjectMatrixAuthorizationStrategy.class, authorizationStrategy, "authorization strategy");
ProjectMatrixAuthorizationStrategy projectMatrixAuthorizationStrategy =
(ProjectMatrixAuthorizationStrategy) authorizationStrategy;
{ // global
final List entries = projectMatrixAuthorizationStrategy.getAllPermissionEntries();
- assertEquals("2 real sids (we ignore anon/user)", 2, entries.size());
+ assertEquals(2, entries.size(), "2 real sids (we ignore anon/user)");
assertThat(
entries,
hasItems(
new PermissionEntry(AuthorizationType.GROUP, "authenticated"),
new PermissionEntry(AuthorizationType.EITHER, "developer")));
assertTrue(
- "anon can read",
projectMatrixAuthorizationStrategy.hasExplicitPermission(
- PermissionEntry.user("anonymous"), Jenkins.READ));
+ PermissionEntry.user("anonymous"), Jenkins.READ),
+ "anon can read");
assertTrue(
- "authenticated can read",
projectMatrixAuthorizationStrategy.hasExplicitPermission(
- PermissionEntry.group("authenticated"), Jenkins.READ));
+ PermissionEntry.group("authenticated"), Jenkins.READ),
+ "authenticated can read");
assertTrue(
- "authenticated can build",
projectMatrixAuthorizationStrategy.hasExplicitPermission(
- PermissionEntry.group("authenticated"), Item.BUILD));
+ PermissionEntry.group("authenticated"), Item.BUILD),
+ "authenticated can build");
assertTrue(
- "authenticated can delete jobs",
projectMatrixAuthorizationStrategy.hasExplicitPermission(
- PermissionEntry.group("authenticated"), Item.DELETE));
+ PermissionEntry.group("authenticated"), Item.DELETE),
+ "authenticated can delete jobs");
assertTrue(
- "authenticated can administer",
projectMatrixAuthorizationStrategy.hasExplicitPermission(
- PermissionEntry.group("authenticated"), Jenkins.ADMINISTER));
+ PermissionEntry.group("authenticated"), Jenkins.ADMINISTER),
+ "authenticated can administer");
}
{ // item from Job DSL
Folder folder = (Folder) r.jenkins.getItem("generated");
assertNotNull(folder);
AuthorizationMatrixProperty property = folder.getProperties().get(AuthorizationMatrixProperty.class);
- assertTrue("folder property inherits", property.getInheritanceStrategy() instanceof NonInheritingStrategy);
+ assertInstanceOf(
+ NonInheritingStrategy.class, property.getInheritanceStrategy(), "folder property inherits");
assertTrue(property.hasExplicitPermission(PermissionEntry.group("authenticated"), Item.BUILD));
assertTrue(property.hasExplicitPermission(PermissionEntry.group("authenticated"), Item.READ));
assertFalse(property.hasExplicitPermission(PermissionEntry.user("anonymous"), Item.READ));
@@ -97,21 +95,21 @@ private static void v3TestStep(JenkinsRule r) throws ConfiguratorException {
assertNotNull(agent);
AuthorizationMatrixNodeProperty property = agent.getNodeProperty(AuthorizationMatrixNodeProperty.class);
assertNotNull(property);
- assertTrue(property.getInheritanceStrategy() instanceof InheritGlobalStrategy);
+ assertInstanceOf(InheritGlobalStrategy.class, property.getInheritanceStrategy());
assertTrue(property.hasExplicitPermission(PermissionEntry.user("anonymous"), Computer.BUILD));
assertTrue(property.hasExplicitPermission(PermissionEntry.group("authenticated"), Computer.BUILD));
assertTrue(property.hasExplicitPermission(PermissionEntry.group("authenticated"), Computer.DISCONNECT));
}
assertEquals(
- "no messages",
0,
Jenkins.logRecords.stream()
.filter(l -> l.getLoggerName().equals(MatrixAuthorizationStrategyConfigurator.class.getName()))
- .count());
+ .count(),
+ "no messages");
}
@Test
- public void v2AmbiguousTest() throws Throwable {
+ void v2AmbiguousTest() throws Throwable {
rr.then(ImportTest::v2AmbiguousTestStep);
}
@@ -121,84 +119,85 @@ private static void v2AmbiguousTestStep(JenkinsRule r) throws ConfiguratorExcept
Objects.requireNonNull(ImportTest.class.getResource("configuration-as-code-v2-ambiguous.yml"))
.toExternalForm());
- assertTrue("security realm", r.jenkins.getSecurityRealm() instanceof HudsonPrivateSecurityRealm);
+ assertInstanceOf(HudsonPrivateSecurityRealm.class, r.jenkins.getSecurityRealm(), "security realm");
AuthorizationStrategy authorizationStrategy = r.jenkins.getAuthorizationStrategy();
- assertTrue("authorization strategy", authorizationStrategy instanceof ProjectMatrixAuthorizationStrategy);
+ assertInstanceOf(ProjectMatrixAuthorizationStrategy.class, authorizationStrategy, "authorization strategy");
ProjectMatrixAuthorizationStrategy projectMatrixAuthorizationStrategy =
(ProjectMatrixAuthorizationStrategy) authorizationStrategy;
{ // global
assertEquals(
- "two ambiguous sids",
2,
- projectMatrixAuthorizationStrategy.getAllPermissionEntries().size());
+ projectMatrixAuthorizationStrategy.getAllPermissionEntries().size(),
+ "two ambiguous sids");
assertThat(
projectMatrixAuthorizationStrategy.getAllPermissionEntries(),
hasItems(
new PermissionEntry(AuthorizationType.EITHER, "anonymous"),
new PermissionEntry(AuthorizationType.EITHER, "authenticated")));
assertTrue(
- "anon can read",
- projectMatrixAuthorizationStrategy.hasExplicitPermission("anonymous", Jenkins.READ));
+ projectMatrixAuthorizationStrategy.hasExplicitPermission("anonymous", Jenkins.READ),
+ "anon can read");
assertTrue(
- "authenticated can read",
- projectMatrixAuthorizationStrategy.hasExplicitPermission("authenticated", Jenkins.READ));
+ projectMatrixAuthorizationStrategy.hasExplicitPermission("authenticated", Jenkins.READ),
+ "authenticated can read");
assertTrue(
- "authenticated can build",
- projectMatrixAuthorizationStrategy.hasExplicitPermission("authenticated", Item.BUILD));
+ projectMatrixAuthorizationStrategy.hasExplicitPermission("authenticated", Item.BUILD),
+ "authenticated can build");
assertTrue(
- "authenticated can delete jobs",
- projectMatrixAuthorizationStrategy.hasExplicitPermission("authenticated", Item.DELETE));
+ projectMatrixAuthorizationStrategy.hasExplicitPermission("authenticated", Item.DELETE),
+ "authenticated can delete jobs");
assertTrue(
- "authenticated can administer",
- projectMatrixAuthorizationStrategy.hasExplicitPermission("authenticated", Jenkins.ADMINISTER));
+ projectMatrixAuthorizationStrategy.hasExplicitPermission("authenticated", Jenkins.ADMINISTER),
+ "authenticated can administer");
assertFalse(
- "anon (user) cannot explicitly read",
projectMatrixAuthorizationStrategy.hasExplicitPermission(
- PermissionEntry.user("anonymous"), Jenkins.READ));
+ PermissionEntry.user("anonymous"), Jenkins.READ),
+ "anon (user) cannot explicitly read");
assertFalse(
- "authenticated can read",
projectMatrixAuthorizationStrategy.hasExplicitPermission(
- PermissionEntry.group("authenticated"), Jenkins.READ));
+ PermissionEntry.group("authenticated"), Jenkins.READ),
+ "authenticated can read");
assertFalse(
- "authenticated can build",
projectMatrixAuthorizationStrategy.hasExplicitPermission(
- PermissionEntry.group("authenticated"), Item.BUILD));
+ PermissionEntry.group("authenticated"), Item.BUILD),
+ "authenticated can build");
assertFalse(
- "authenticated can delete jobs",
projectMatrixAuthorizationStrategy.hasExplicitPermission(
- PermissionEntry.group("authenticated"), Item.DELETE));
+ PermissionEntry.group("authenticated"), Item.DELETE),
+ "authenticated can delete jobs");
assertFalse(
- "authenticated can administer",
projectMatrixAuthorizationStrategy.hasExplicitPermission(
- PermissionEntry.group("authenticated"), Jenkins.ADMINISTER));
+ PermissionEntry.group("authenticated"), Jenkins.ADMINISTER),
+ "authenticated can administer");
assertTrue(
- "anon (either) can read",
projectMatrixAuthorizationStrategy.hasExplicitPermission(
- new PermissionEntry(AuthorizationType.EITHER, "anonymous"), Jenkins.READ));
+ new PermissionEntry(AuthorizationType.EITHER, "anonymous"), Jenkins.READ),
+ "anon (either) can read");
assertTrue(
- "authenticated (either) can read",
projectMatrixAuthorizationStrategy.hasExplicitPermission(
- new PermissionEntry(AuthorizationType.EITHER, "authenticated"), Jenkins.READ));
+ new PermissionEntry(AuthorizationType.EITHER, "authenticated"), Jenkins.READ),
+ "authenticated (either) can read");
assertTrue(
- "authenticated (either) can build",
projectMatrixAuthorizationStrategy.hasExplicitPermission(
- new PermissionEntry(AuthorizationType.EITHER, "authenticated"), Item.BUILD));
+ new PermissionEntry(AuthorizationType.EITHER, "authenticated"), Item.BUILD),
+ "authenticated (either) can build");
assertTrue(
- "authenticated (either) can delete jobs",
projectMatrixAuthorizationStrategy.hasExplicitPermission(
- new PermissionEntry(AuthorizationType.EITHER, "authenticated"), Item.DELETE));
+ new PermissionEntry(AuthorizationType.EITHER, "authenticated"), Item.DELETE),
+ "authenticated (either) can delete jobs");
assertTrue(
- "authenticated (either) can administer",
projectMatrixAuthorizationStrategy.hasExplicitPermission(
- new PermissionEntry(AuthorizationType.EITHER, "authenticated"), Jenkins.ADMINISTER));
+ new PermissionEntry(AuthorizationType.EITHER, "authenticated"), Jenkins.ADMINISTER),
+ "authenticated (either) can administer");
}
{ // item from Job DSL
Folder folder = (Folder) r.jenkins.getItem("generated");
assertNotNull(folder);
AuthorizationMatrixProperty property = folder.getProperties().get(AuthorizationMatrixProperty.class);
- assertTrue("folder property inherits", property.getInheritanceStrategy() instanceof NonInheritingStrategy);
+ assertInstanceOf(
+ NonInheritingStrategy.class, property.getInheritanceStrategy(), "folder property inherits");
assertTrue(property.hasExplicitPermission("authenticated", Item.BUILD));
assertTrue(property.hasExplicitPermission("authenticated", Item.READ));
assertFalse(property.hasExplicitPermission("anonymous", Item.READ));
@@ -210,21 +209,21 @@ private static void v2AmbiguousTestStep(JenkinsRule r) throws ConfiguratorExcept
assertNotNull(agent1);
AuthorizationMatrixNodeProperty property = agent1.getNodeProperty(AuthorizationMatrixNodeProperty.class);
assertNotNull(property);
- assertTrue(property.getInheritanceStrategy() instanceof InheritGlobalStrategy);
+ assertInstanceOf(InheritGlobalStrategy.class, property.getInheritanceStrategy());
assertTrue(property.hasExplicitPermission("anonymous", Computer.BUILD));
assertTrue(property.hasExplicitPermission("authenticated", Computer.BUILD));
assertTrue(property.hasExplicitPermission("authenticated", Computer.DISCONNECT));
}
assertTrue(
- "correct message",
Jenkins.logRecords.stream()
.anyMatch(l -> l.getLoggerName().equals(MatrixAuthorizationStrategyConfigurator.class.getName())
&& l.getMessage()
- .contains("Loading deprecated attribute 'permissions' for instance of")));
+ .contains("Loading deprecated attribute 'permissions' for instance of")),
+ "correct message");
}
@Test
- public void v2Test() throws Throwable {
+ void v2Test() throws Throwable {
rr.then(ImportTest::v2TestStep);
}
@@ -233,41 +232,42 @@ private static void v2TestStep(JenkinsRule r) throws ConfiguratorException {
.configure(Objects.requireNonNull(ImportTest.class.getResource("configuration-as-code-v2.yml"))
.toExternalForm());
- assertTrue("security realm", r.jenkins.getSecurityRealm() instanceof HudsonPrivateSecurityRealm);
+ assertInstanceOf(HudsonPrivateSecurityRealm.class, r.jenkins.getSecurityRealm(), "security realm");
AuthorizationStrategy authorizationStrategy = r.jenkins.getAuthorizationStrategy();
- assertTrue("authorization strategy", authorizationStrategy instanceof ProjectMatrixAuthorizationStrategy);
+ assertInstanceOf(ProjectMatrixAuthorizationStrategy.class, authorizationStrategy, "authorization strategy");
ProjectMatrixAuthorizationStrategy projectMatrixAuthorizationStrategy =
(ProjectMatrixAuthorizationStrategy) authorizationStrategy;
{ // global
final List entries = projectMatrixAuthorizationStrategy.getAllPermissionEntries();
- assertEquals("one real sid (we ignore anon/user)", 1, entries.size());
+ assertEquals(1, entries.size(), "one real sid (we ignore anon/user)");
assertThat(entries, hasItems(new PermissionEntry(AuthorizationType.GROUP, "authenticated")));
assertTrue(
- "anon can read",
projectMatrixAuthorizationStrategy.hasExplicitPermission(
- PermissionEntry.user("anonymous"), Jenkins.READ));
+ PermissionEntry.user("anonymous"), Jenkins.READ),
+ "anon can read");
assertTrue(
- "authenticated can read",
projectMatrixAuthorizationStrategy.hasExplicitPermission(
- PermissionEntry.group("authenticated"), Jenkins.READ));
+ PermissionEntry.group("authenticated"), Jenkins.READ),
+ "authenticated can read");
assertTrue(
- "authenticated can build",
projectMatrixAuthorizationStrategy.hasExplicitPermission(
- PermissionEntry.group("authenticated"), Item.BUILD));
+ PermissionEntry.group("authenticated"), Item.BUILD),
+ "authenticated can build");
assertTrue(
- "authenticated can delete jobs",
projectMatrixAuthorizationStrategy.hasExplicitPermission(
- PermissionEntry.group("authenticated"), Item.DELETE));
+ PermissionEntry.group("authenticated"), Item.DELETE),
+ "authenticated can delete jobs");
assertTrue(
- "authenticated can administer",
projectMatrixAuthorizationStrategy.hasExplicitPermission(
- PermissionEntry.group("authenticated"), Jenkins.ADMINISTER));
+ PermissionEntry.group("authenticated"), Jenkins.ADMINISTER),
+ "authenticated can administer");
}
{ // item from Job DSL
Folder folder = (Folder) r.jenkins.getItem("generated");
assertNotNull(folder);
AuthorizationMatrixProperty property = folder.getProperties().get(AuthorizationMatrixProperty.class);
- assertTrue("folder property inherits", property.getInheritanceStrategy() instanceof NonInheritingStrategy);
+ assertInstanceOf(
+ NonInheritingStrategy.class, property.getInheritanceStrategy(), "folder property inherits");
assertTrue(property.hasExplicitPermission(PermissionEntry.group("authenticated"), Item.BUILD));
assertTrue(property.hasExplicitPermission(PermissionEntry.group("authenticated"), Item.READ));
assertFalse(property.hasExplicitPermission(PermissionEntry.user("anonymous"), Item.READ));
@@ -279,21 +279,21 @@ private static void v2TestStep(JenkinsRule r) throws ConfiguratorException {
assertNotNull(agent);
AuthorizationMatrixNodeProperty property = agent.getNodeProperty(AuthorizationMatrixNodeProperty.class);
assertNotNull(property);
- assertTrue(property.getInheritanceStrategy() instanceof InheritGlobalStrategy);
+ assertInstanceOf(InheritGlobalStrategy.class, property.getInheritanceStrategy());
assertTrue(property.hasExplicitPermission(PermissionEntry.user("anonymous"), Computer.BUILD));
assertTrue(property.hasExplicitPermission(PermissionEntry.group("authenticated"), Computer.BUILD));
assertTrue(property.hasExplicitPermission(PermissionEntry.group("authenticated"), Computer.DISCONNECT));
}
assertTrue(
- "correct message",
Jenkins.logRecords.stream()
.anyMatch(l -> l.getLoggerName().equals(MatrixAuthorizationStrategyConfigurator.class.getName())
&& l.getMessage()
- .contains("Loading deprecated attribute 'permissions' for instance of")));
+ .contains("Loading deprecated attribute 'permissions' for instance of")),
+ "correct message");
}
@Test
- public void v1Test() throws Throwable {
+ void v1Test() throws Throwable {
rr.then(ImportTest::v1TestStep);
}
@@ -302,45 +302,47 @@ private static void v1TestStep(JenkinsRule r) throws ConfiguratorException {
.configure(Objects.requireNonNull(ImportTest.class.getResource("configuration-as-code-v1.yml"))
.toExternalForm());
- assertTrue("security realm", r.jenkins.getSecurityRealm() instanceof HudsonPrivateSecurityRealm);
+ assertInstanceOf(HudsonPrivateSecurityRealm.class, r.jenkins.getSecurityRealm(), "security realm");
AuthorizationStrategy authorizationStrategy = r.jenkins.getAuthorizationStrategy();
- assertTrue("authorization strategy", authorizationStrategy instanceof ProjectMatrixAuthorizationStrategy);
+ assertInstanceOf(ProjectMatrixAuthorizationStrategy.class, authorizationStrategy, "authorization strategy");
ProjectMatrixAuthorizationStrategy projectMatrixAuthorizationStrategy =
(ProjectMatrixAuthorizationStrategy) authorizationStrategy;
{ // global
assertEquals(
- "two ambiguous sids",
2,
- projectMatrixAuthorizationStrategy.getAllPermissionEntries().size());
+ projectMatrixAuthorizationStrategy.getAllPermissionEntries().size(),
+ "two ambiguous sids");
assertThat(
projectMatrixAuthorizationStrategy.getAllPermissionEntries(),
hasItems(
new PermissionEntry(AuthorizationType.EITHER, "anonymous"),
new PermissionEntry(AuthorizationType.EITHER, "authenticated")));
assertTrue(
- "anon can read",
- projectMatrixAuthorizationStrategy.hasExplicitPermission("anonymous", Jenkins.READ));
+ projectMatrixAuthorizationStrategy.hasExplicitPermission("anonymous", Jenkins.READ),
+ "anon can read");
assertTrue(
- "authenticated can read",
- projectMatrixAuthorizationStrategy.hasExplicitPermission("authenticated", Jenkins.READ));
+ projectMatrixAuthorizationStrategy.hasExplicitPermission("authenticated", Jenkins.READ),
+ "authenticated can read");
assertTrue(
- "authenticated can build",
- projectMatrixAuthorizationStrategy.hasExplicitPermission("authenticated", Item.BUILD));
+ projectMatrixAuthorizationStrategy.hasExplicitPermission("authenticated", Item.BUILD),
+ "authenticated can build");
assertTrue(
- "authenticated can delete jobs",
- projectMatrixAuthorizationStrategy.hasExplicitPermission("authenticated", Item.DELETE));
+ projectMatrixAuthorizationStrategy.hasExplicitPermission("authenticated", Item.DELETE),
+ "authenticated can delete jobs");
assertTrue(
- "authenticated can administer",
- projectMatrixAuthorizationStrategy.hasExplicitPermission("authenticated", Jenkins.ADMINISTER));
+ projectMatrixAuthorizationStrategy.hasExplicitPermission("authenticated", Jenkins.ADMINISTER),
+ "authenticated can administer");
}
- assertTrue("at least one warning", Jenkins.logRecords.stream().anyMatch(l -> l.getLoggerName()
- .equals(MatrixAuthorizationStrategyConfigurator.class.getName())));
assertTrue(
- "correct message",
+ Jenkins.logRecords.stream().anyMatch(l -> l.getLoggerName()
+ .equals(MatrixAuthorizationStrategyConfigurator.class.getName())),
+ "at least one warning");
+ assertTrue(
Jenkins.logRecords.stream()
.anyMatch(l -> l.getLoggerName().equals(MatrixAuthorizationStrategyConfigurator.class.getName())
&& l.getMessage()
- .contains("Loading deprecated attribute 'grantedPermissions' for instance")));
+ .contains("Loading deprecated attribute 'grantedPermissions' for instance")),
+ "correct message");
}
}