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) -> {