From a45f0601fcfffb7fca10e08dcf9a5234ea87e298 Mon Sep 17 00:00:00 2001 From: Allan Burdajewicz Date: Tue, 23 May 2023 04:35:13 +1000 Subject: [PATCH] [JENKINS-71200] Fix elements property overload in ListView (#7942) * [JENKINS-71200] Add test for ListView attributes overloads * [JENKINS-71200] Fix elements property overload in ListView --- core/src/main/java/hudson/model/ListView.java | 2 +- .../model/ListView/configure-entries.jelly | 2 +- .../test/java/hudson/model/ListViewTest.java | 21 +++++++++++++++++++ 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/hudson/model/ListView.java b/core/src/main/java/hudson/model/ListView.java index 3476b81cc0..77852e994e 100644 --- a/core/src/main/java/hudson/model/ListView.java +++ b/core/src/main/java/hudson/model/ListView.java @@ -452,7 +452,7 @@ public class ListView extends View implements DirectlyModifiableView { } for (TopLevelItem item : items) { String relativeNameFrom = item.getRelativeNameFrom(getOwner().getItemGroup()); - if (req.getParameter(relativeNameFrom) != null) { + if (req.getParameter("item_" + relativeNameFrom) != null) { jobNames.add(relativeNameFrom); } } diff --git a/core/src/main/resources/hudson/model/ListView/configure-entries.jelly b/core/src/main/resources/hudson/model/ListView/configure-entries.jelly index fe7be59bb1..5cffab5e11 100644 --- a/core/src/main/resources/hudson/model/ListView/configure-entries.jelly +++ b/core/src/main/resources/hudson/model/ListView/configure-entries.jelly @@ -44,7 +44,7 @@ THE SOFTWARE. - +
diff --git a/test/src/test/java/hudson/model/ListViewTest.java b/test/src/test/java/hudson/model/ListViewTest.java index fe8619cb5c..12710e120b 100644 --- a/test/src/test/java/hudson/model/ListViewTest.java +++ b/test/src/test/java/hudson/model/ListViewTest.java @@ -36,7 +36,9 @@ import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; +import com.gargoylesoftware.htmlunit.AlertHandler; import com.gargoylesoftware.htmlunit.html.HtmlAnchor; +import com.gargoylesoftware.htmlunit.html.HtmlForm; import com.gargoylesoftware.htmlunit.html.HtmlPage; import hudson.Functions; import hudson.matrix.AxisList; @@ -59,10 +61,12 @@ import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.TreeSet; +import java.util.concurrent.atomic.AtomicBoolean; import javax.servlet.ReadListener; import javax.servlet.ServletInputStream; import jenkins.model.Jenkins; import org.apache.commons.io.IOUtils; +import org.junit.Assert; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TestName; @@ -291,6 +295,23 @@ public class ListViewTest { assertEquals("Query parameter 'name' does not correspond to a known and readable item", e.getMessage()); } + @Issue("JENKINS-71200") + @Test public void doApplyDoNotOverloadElements() throws Exception { + MockFolder folder = j.createFolder("folder"); + FreeStyleProject job = folder.createProject(FreeStyleProject.class, "elements"); + ListView view = new ListView("view", folder); + folder.addView(view); + view.add(job); + + final AtomicBoolean alerts = new AtomicBoolean(); + WebClient webClient = j.createWebClient(); + webClient.setAlertHandler((AlertHandler) (page, s) -> alerts.set(true)); + HtmlPage page = webClient.goTo(view.getUrl() + "configure"); + HtmlForm form = page.getFormByName("viewConfig"); + j.assertGoodStatus(j.submit(form)); + Assert.assertFalse("No alert expected", alerts.get()); + } + @Test public void getItemsNames() throws Exception { MockFolder f1 = j.createFolder("f1"); MockFolder f2 = j.createFolder("f2");