diff --git a/pom.xml b/pom.xml
index 5e85ab7d2..69c400c68 100644
--- a/pom.xml
+++ b/pom.xml
@@ -96,7 +96,7 @@
org.jenkins-ci.plugins
display-url-api
- 2.3.2
+ 2.3.3
org.jenkins-ci.plugins.workflow
diff --git a/src/main/java/org/jenkinsci/plugins/blueoceandisplayurl/BlueOceanDisplayURLImpl.java b/src/main/java/org/jenkinsci/plugins/blueoceandisplayurl/BlueOceanDisplayURLImpl.java
index b7e2e941d..6c53c441c 100644
--- a/src/main/java/org/jenkinsci/plugins/blueoceandisplayurl/BlueOceanDisplayURLImpl.java
+++ b/src/main/java/org/jenkinsci/plugins/blueoceandisplayurl/BlueOceanDisplayURLImpl.java
@@ -79,6 +79,16 @@ public String getRunURL(Run, ?> run) {
return String.format("%sdetail/%s/%d/", jobURL, Util.rawEncode(job.getName()), run.getNumber());
}
+ @Override
+ @NonNull
+ public String getArtifactsURL(Run, ?> run) {
+ if (isSupported(run)) {
+ return getRunURL(run) + "artifacts";
+ } else {
+ return DisplayURLProvider.getDefault().getArtifactsURL(run);
+ }
+ }
+
@Override
@NonNull
public String getChangesURL(Run, ?> run) {
@@ -89,6 +99,16 @@ public String getChangesURL(Run, ?> run) {
}
}
+ @Override
+ @NonNull
+ public String getTestsURL(Run, ?> run) {
+ if (isSupported(run)) {
+ return getRunURL(run) + "tests";
+ } else {
+ return DisplayURLProvider.getDefault().getTestsURL(run);
+ }
+ }
+
@Override
@NonNull
public String getJobURL(Job, ?> job) {
diff --git a/src/test/java/org/jenkinsci/plugins/blueoceandisplayurl/BlueOceanDisplayURLImplTest.java b/src/test/java/org/jenkinsci/plugins/blueoceandisplayurl/BlueOceanDisplayURLImplTest.java
index 0f340d56d..9f8229688 100644
--- a/src/test/java/org/jenkinsci/plugins/blueoceandisplayurl/BlueOceanDisplayURLImplTest.java
+++ b/src/test/java/org/jenkinsci/plugins/blueoceandisplayurl/BlueOceanDisplayURLImplTest.java
@@ -72,6 +72,7 @@ public void testProjectURL() throws Exception {
Assert.assertEquals("/jenkins/blue/organizations/jenkins/abc/", url);
}
+
@Test
public void testProjectURL_CustomOrganization() throws Exception {
FreeStyleProject p = orgFolder.createProject(FreeStyleProject.class, "abc");
@@ -92,9 +93,14 @@ public void testProjectInFolder() throws Exception {
url = getPath(displayURL.getRunURL(p.getLastBuild()));
Assert.assertEquals("/jenkins/blue/organizations/jenkins/test%2Fabc/detail/abc/1/", url);
+ url = getPath(displayURL.getArtifactsURL(p.getLastBuild()));
+ Assert.assertEquals("/jenkins/blue/organizations/jenkins/test%2Fabc/detail/abc/1/artifacts", url);
+
url = getPath(displayURL.getChangesURL(p.getLastBuild()));
Assert.assertEquals("/jenkins/blue/organizations/jenkins/test%2Fabc/detail/abc/1/changes", url);
+ url = getPath(displayURL.getTestsURL(p.getLastBuild()));
+ Assert.assertEquals("/jenkins/blue/organizations/jenkins/test%2Fabc/detail/abc/1/tests", url);
}
@Test
@@ -109,9 +115,14 @@ public void testProjectInFolder_CustomOrganization() throws Exception {
url = getPath(displayURL.getRunURL(p.getLastBuild()));
Assert.assertEquals("/jenkins/blue/organizations/TestOrg/test%2Fabc/detail/abc/1/", url);
+ url = getPath(displayURL.getArtifactsURL(p.getLastBuild()));
+ Assert.assertEquals("/jenkins/blue/organizations/TestOrg/test%2Fabc/detail/abc/1/artifacts", url);
+
url = getPath(displayURL.getChangesURL(p.getLastBuild()));
Assert.assertEquals("/jenkins/blue/organizations/TestOrg/test%2Fabc/detail/abc/1/changes", url);
+ url = getPath(displayURL.getTestsURL(p.getLastBuild()));
+ Assert.assertEquals("/jenkins/blue/organizations/TestOrg/test%2Fabc/detail/abc/1/tests", url);
}
@Test
@@ -129,8 +140,14 @@ public void testMultibranchUrls() throws Exception {
Assert.assertEquals("/jenkins/blue/organizations/jenkins/folder%2Ftest/detail/feature%2Ftest-1/1/", url);
+ url = getPath(displayURL.getArtifactsURL(job.getFirstBuild()));
+ Assert.assertEquals("/jenkins/blue/organizations/jenkins/folder%2Ftest/detail/feature%2Ftest-1/1/artifacts", url);
+
url = getPath(displayURL.getChangesURL(job.getFirstBuild()));
Assert.assertEquals("/jenkins/blue/organizations/jenkins/folder%2Ftest/detail/feature%2Ftest-1/1/changes", url);
+
+ url = getPath(displayURL.getTestsURL(job.getFirstBuild()));
+ Assert.assertEquals("/jenkins/blue/organizations/jenkins/folder%2Ftest/detail/feature%2Ftest-1/1/tests", url);
}
@Test
@@ -148,10 +165,15 @@ public void testMultibranchUrlsWithDisplayNameBranches() throws Exception {
Assert.assertEquals("/jenkins/blue/organizations/jenkins/folder%2Ftest/detail/feature%2Ftest-1/1/", url);
+ url = getPath(displayURL.getArtifactsURL(job.getFirstBuild()));
+ Assert.assertEquals("/jenkins/blue/organizations/jenkins/folder%2Ftest/detail/feature%2Ftest-1/1/artifacts", url);
+
url = getPath(displayURL.getChangesURL(job.getFirstBuild()));
Assert.assertEquals("/jenkins/blue/organizations/jenkins/folder%2Ftest/detail/feature%2Ftest-1/1/changes", url);
- }
+ url = getPath(displayURL.getTestsURL(job.getFirstBuild()));
+ Assert.assertEquals("/jenkins/blue/organizations/jenkins/folder%2Ftest/detail/feature%2Ftest-1/1/tests", url);
+ }
@Test
public void testMultibranchUrls_CustomOrganization() throws Exception {
@@ -168,8 +190,14 @@ public void testMultibranchUrls_CustomOrganization() throws Exception {
Assert.assertEquals("/jenkins/blue/organizations/TestOrg/folder%2Ftest/detail/feature%2Ftest-1/1/", url);
+ url = getPath(displayURL.getArtifactsURL(job.getFirstBuild()));
+ Assert.assertEquals("/jenkins/blue/organizations/TestOrg/folder%2Ftest/detail/feature%2Ftest-1/1/artifacts", url);
+
url = getPath(displayURL.getChangesURL(job.getFirstBuild()));
Assert.assertEquals("/jenkins/blue/organizations/TestOrg/folder%2Ftest/detail/feature%2Ftest-1/1/changes", url);
+
+ url = getPath(displayURL.getTestsURL(job.getFirstBuild()));
+ Assert.assertEquals("/jenkins/blue/organizations/TestOrg/folder%2Ftest/detail/feature%2Ftest-1/1/tests", url);
}
MockFolder orgFolder;