diff --git a/core/src/main/java/jenkins/model/GlobalBuildDiscarderConfiguration.java b/core/src/main/java/jenkins/model/GlobalBuildDiscarderConfiguration.java index 9b0ca5aaf8add1f5e18b4db32bdd586fb9217ab0..8a1d5cf8c85520807d6d95eb18beaccd2da4c8e2 100644 --- a/core/src/main/java/jenkins/model/GlobalBuildDiscarderConfiguration.java +++ b/core/src/main/java/jenkins/model/GlobalBuildDiscarderConfiguration.java @@ -48,6 +48,10 @@ public class GlobalBuildDiscarderConfiguration extends GlobalConfiguration { return ExtensionList.lookupSingleton(GlobalBuildDiscarderConfiguration.class); } + public GlobalBuildDiscarderConfiguration() { + load(); + } + private final DescribableList configuredBuildDiscarders = new DescribableList<>(this, Collections.singletonList(new JobGlobalBuildDiscarderStrategy())); diff --git a/test/src/test/java/jenkins/model/GlobalBuildDiscarderTest.java b/test/src/test/java/jenkins/model/GlobalBuildDiscarderTest.java index 4544e5c881bb915fe3b18d9c6a440f2b18f26c35..8c3be81c0d7cb2a5ca20b4876b2de93a490e1cbb 100644 --- a/test/src/test/java/jenkins/model/GlobalBuildDiscarderTest.java +++ b/test/src/test/java/jenkins/model/GlobalBuildDiscarderTest.java @@ -5,15 +5,35 @@ import hudson.model.FreeStyleProject; import hudson.model.Run; import hudson.model.TaskListener; import hudson.tasks.LogRotator; +import hudson.util.DescribableList; import org.junit.Assert; import org.junit.Rule; import org.junit.Test; +import org.jvnet.hudson.test.Issue; import org.jvnet.hudson.test.JenkinsRule; +import org.jvnet.hudson.test.recipes.LocalData; public class GlobalBuildDiscarderTest { @Rule public JenkinsRule j = new JenkinsRule(); + @Test + @LocalData + @Issue("JENKINS-61688") + public void testLoading() throws Exception { + Assert.assertEquals(0, GlobalBuildDiscarderConfiguration.get().getConfiguredBuildDiscarders().size()); + } + + @Test + @LocalData + @Issue("JENKINS-61688") + public void testLoadingWithDiscarders() throws Exception { + final DescribableList configuredBuildDiscarders = GlobalBuildDiscarderConfiguration.get().getConfiguredBuildDiscarders(); + Assert.assertEquals(2, configuredBuildDiscarders.size()); + Assert.assertNotNull(configuredBuildDiscarders.get(JobGlobalBuildDiscarderStrategy.class)); + Assert.assertEquals(5, ((LogRotator)configuredBuildDiscarders.get(SimpleGlobalBuildDiscarderStrategy.class).getDiscarder()).getNumToKeep()); + } + @Test public void testJobBuildDiscarder() throws Exception { FreeStyleProject p = j.createFreeStyleProject(); diff --git a/test/src/test/resources/jenkins/model/GlobalBuildDiscarderTest/testLoading/jenkins.model.GlobalBuildDiscarderConfiguration.xml b/test/src/test/resources/jenkins/model/GlobalBuildDiscarderTest/testLoading/jenkins.model.GlobalBuildDiscarderConfiguration.xml new file mode 100644 index 0000000000000000000000000000000000000000..08970809ad0c8076038a2ab89c00a0dce4c46c05 --- /dev/null +++ b/test/src/test/resources/jenkins/model/GlobalBuildDiscarderTest/testLoading/jenkins.model.GlobalBuildDiscarderConfiguration.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/test/src/test/resources/jenkins/model/GlobalBuildDiscarderTest/testLoadingWithDiscarders/jenkins.model.GlobalBuildDiscarderConfiguration.xml b/test/src/test/resources/jenkins/model/GlobalBuildDiscarderTest/testLoadingWithDiscarders/jenkins.model.GlobalBuildDiscarderConfiguration.xml new file mode 100644 index 0000000000000000000000000000000000000000..c40e61245ddd0deab07d71bd8ab85f4ca1a6be26 --- /dev/null +++ b/test/src/test/resources/jenkins/model/GlobalBuildDiscarderTest/testLoadingWithDiscarders/jenkins.model.GlobalBuildDiscarderConfiguration.xml @@ -0,0 +1,14 @@ + + + + + + + -1 + 5 + -1 + -1 + + + + \ No newline at end of file