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;