diff --git a/pom.xml b/pom.xml index 34c5b50f..7ff9abd6 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ org.jenkins-ci.plugins plugin - 4.38 + 4.40 @@ -29,10 +29,9 @@ 3.10.0 -SNAPSHOT - jenkinsci/config-file-provider-plugin + jenkinsci/${project.artifactId}-plugin true 2.303.3 - 8 2.15 @@ -222,6 +221,11 @@ 3.12.0 test + + org.jenkins-ci.plugins + email-ext + test + diff --git a/src/test/java/org/jenkinsci/lib/configprovider/SystemConfigFilesManagementTest.java b/src/test/java/org/jenkinsci/lib/configprovider/SystemConfigFilesManagementTest.java index b11276fd..437d9014 100644 --- a/src/test/java/org/jenkinsci/lib/configprovider/SystemConfigFilesManagementTest.java +++ b/src/test/java/org/jenkinsci/lib/configprovider/SystemConfigFilesManagementTest.java @@ -1,6 +1,7 @@ package org.jenkinsci.lib.configprovider; import edu.umd.cs.findbugs.annotations.NonNull; +import hudson.plugins.emailext.JellyTemplateConfig; import jenkins.model.Jenkins; import org.jenkinsci.lib.configprovider.model.Config; import org.jenkinsci.lib.configprovider.model.ContentType; @@ -44,9 +45,9 @@ public void testLoadAndMergeOldData() { Assert.assertEquals(1, getProvider(XmlConfig.XmlConfigProvider.class).getAllConfigs().size()); Assert.assertEquals(1, getProvider(GroovyScript.GroovyConfigProvider.class).getAllConfigs().size()); Assert.assertEquals(1, getProvider(CustomConfig.CustomConfigProvider.class).getAllConfigs().size()); -// Assert.assertEquals(1, getProvider(JellyTemplateConfig.JellyTemplateConfigProvider.class).getAllConfigs().size()); + Assert.assertEquals(1, getProvider(JellyTemplateConfig.JellyTemplateConfigProvider.class).getAllConfigs().size()); - Assert.assertEquals(5, GlobalConfigFiles.get().getConfigs().size()); + Assert.assertEquals(6, GlobalConfigFiles.get().getConfigs().size()); } private T getProvider(Class providerClass) { diff --git a/src/test/java/org/jenkinsci/plugins/configfiles/ConfigFilesSEC1253Test.java b/src/test/java/org/jenkinsci/plugins/configfiles/ConfigFilesSEC1253Test.java index 6525f7e0..67255bb0 100644 --- a/src/test/java/org/jenkinsci/plugins/configfiles/ConfigFilesSEC1253Test.java +++ b/src/test/java/org/jenkinsci/plugins/configfiles/ConfigFilesSEC1253Test.java @@ -5,6 +5,7 @@ import com.gargoylesoftware.htmlunit.html.HtmlInput; import com.gargoylesoftware.htmlunit.html.HtmlPage; import com.gargoylesoftware.htmlunit.html.HtmlRadioButtonInput; +import hudson.util.VersionNumber; import org.jenkinsci.plugins.configfiles.custom.CustomConfig; import org.junit.Rule; import org.junit.Test; @@ -55,7 +56,8 @@ public void regularCaseStillWorking() throws Exception { assertThat(store.getConfigs(), hasSize(1)); HtmlPage configFiles = wc.goTo("configfiles"); - HtmlAnchor removeAnchor = configFiles.getDocumentElement().getFirstByXPath("//a[contains(@onclick, 'removeConfig?id=" + CONFIG_ID + "')]"); + String attribute = j.jenkins.getVersion().isOlderThan(new VersionNumber("2.324")) ? "onclick" : "data-url"; + HtmlAnchor removeAnchor = configFiles.getDocumentElement().getFirstByXPath("//a[contains(@" + attribute + ", 'removeConfig?id=" + CONFIG_ID + "')]"); AtomicReference confirmCalled = new AtomicReference<>(false); wc.setConfirmHandler((page, s) -> { @@ -87,7 +89,8 @@ public void xssPrevention() throws Exception { JenkinsRule.WebClient wc = j.createWebClient(); HtmlPage configFiles = wc.goTo("configfiles"); - HtmlAnchor removeAnchor = configFiles.getDocumentElement().getFirstByXPath("//a[contains(@onclick, 'removeConfig?id=" + CONFIG_ID + "')]"); + String attribute = j.jenkins.getVersion().isOlderThan(new VersionNumber("2.324")) ? "onclick" : "data-url"; + HtmlAnchor removeAnchor = configFiles.getDocumentElement().getFirstByXPath("//a[contains(@" + attribute + ", 'removeConfig?id=" + CONFIG_ID + "')]"); AtomicReference confirmCalled = new AtomicReference<>(false); AtomicReference alertCalled = new AtomicReference<>(false); diff --git a/src/test/java/org/jenkinsci/plugins/configfiles/folder/FolderConfigFileActionTest.java b/src/test/java/org/jenkinsci/plugins/configfiles/folder/FolderConfigFileActionTest.java index 0eb786ec..420a8a5b 100644 --- a/src/test/java/org/jenkinsci/plugins/configfiles/folder/FolderConfigFileActionTest.java +++ b/src/test/java/org/jenkinsci/plugins/configfiles/folder/FolderConfigFileActionTest.java @@ -4,6 +4,7 @@ import com.gargoylesoftware.htmlunit.html.HtmlAnchor; import com.gargoylesoftware.htmlunit.html.HtmlPage; import hudson.model.Item; +import hudson.util.VersionNumber; import jenkins.model.Jenkins; import org.hamcrest.MatcherAssert; import org.hamcrest.Matchers; @@ -241,7 +242,8 @@ public void xssPreventionInFolder() throws Exception { // Clicking the button works // If we click on the link, it goes via POST, therefore it removes it successfully HtmlPage configFiles = wc.goTo(f1.getUrl() + "configfiles"); - HtmlAnchor removeAnchor = configFiles.getDocumentElement().getFirstByXPath("//a[contains(@onclick, 'removeConfig?id=" + CONFIG_ID + "')]"); + String attribute = r.jenkins.getVersion().isOlderThan(new VersionNumber("2.324")) ? "onclick" : "data-url"; + HtmlAnchor removeAnchor = configFiles.getDocumentElement().getFirstByXPath("//a[contains(@" + attribute + ", 'removeConfig?id=" + CONFIG_ID + "')]"); AtomicReference confirmCalled = new AtomicReference<>(false); wc.setConfirmHandler((page, s) -> { diff --git a/src/test/java/org/jenkinsci/plugins/configfiles/sec/Security2002Test.java b/src/test/java/org/jenkinsci/plugins/configfiles/sec/Security2002Test.java index 9e24abda..12b5be29 100644 --- a/src/test/java/org/jenkinsci/plugins/configfiles/sec/Security2002Test.java +++ b/src/test/java/org/jenkinsci/plugins/configfiles/sec/Security2002Test.java @@ -2,6 +2,7 @@ import com.gargoylesoftware.htmlunit.html.HtmlAnchor; import com.gargoylesoftware.htmlunit.html.HtmlPage; +import hudson.util.VersionNumber; import jenkins.model.GlobalConfiguration; import org.jenkinsci.plugins.configfiles.GlobalConfigFiles; import org.jenkinsci.plugins.configfiles.custom.CustomConfig; @@ -50,7 +51,8 @@ public void xssPrevention() throws Exception { // Clicking the button works // If we click on the link, it goes via POST, therefore it removes it successfully HtmlPage configFiles = wc.goTo("configfiles"); - HtmlAnchor removeAnchor = configFiles.getDocumentElement().getFirstByXPath("//a[contains(@onclick, 'removeConfig?id=" + CONFIG_ID + "')]"); + String attribute = j.jenkins.getVersion().isOlderThan(new VersionNumber("2.324")) ? "onclick" : "data-url"; + HtmlAnchor removeAnchor = configFiles.getDocumentElement().getFirstByXPath("//a[contains(@" + attribute + ", 'removeConfig?id=" + CONFIG_ID + "')]"); AtomicReference confirmCalled = new AtomicReference<>(false); wc.setConfirmHandler((page, s) -> {