diff --git a/core/src/main/java/hudson/model/ListView.java b/core/src/main/java/hudson/model/ListView.java index 88bde6947ff091d57ee54886397b41ee64796c85..dbc4abec996ded6791e391ef3d9d171e0f334e43 100644 --- a/core/src/main/java/hudson/model/ListView.java +++ b/core/src/main/java/hudson/model/ListView.java @@ -329,16 +329,7 @@ public class ListView extends View implements Saveable { } } - if (req.getParameter("useincluderegex") != null) { - includeRegex = Util.nullify(req.getParameter("includeRegex")); - if (includeRegex == null) - includePattern = null; - else - includePattern = Pattern.compile(includeRegex); - } else { - includeRegex = null; - includePattern = null; - } + setIncludeRegex(req.getParameter("useincluderegex")); if (columns == null) { columns = new DescribableList>(this); @@ -353,6 +344,19 @@ public class ListView extends View implements Saveable { String filter = Util.fixEmpty(req.getParameter("statusFilter")); statusFilter = filter != null ? "1".equals(filter) : null; } + + public void setIncludeRegex(String includeRegex) { + if (includeRegex != null) { + this.includeRegex = Util.nullify(includeRegex); + if (this.includeRegex == null) + this.includePattern = null; + else + this.includePattern = Pattern.compile(includeRegex); + } else { + this.includeRegex = null; + this.includePattern = null; + } + } @Extension public static class DescriptorImpl extends ViewDescriptor { diff --git a/core/src/test/java/hudson/model/ListViewTest.java b/core/src/test/java/hudson/model/ListViewTest.java index 3a6f731671c49b690d07ce1e904b832084d673c6..7de805913b5d3c324e70a40ae3ba2cb624a4f827 100644 --- a/core/src/test/java/hudson/model/ListViewTest.java +++ b/core/src/test/java/hudson/model/ListViewTest.java @@ -42,4 +42,24 @@ public class ListViewTest { lv.add(ig); assertEquals(1, lv.getItems().size()); } + + @Test + @PrepareForTest({ListViewColumn.class,Items.class}) + public void includeRegexProgrammatic() { + mockStatic(Items.class); + mockStatic(ListViewColumn.class); + List columns = Collections.emptyList(); + when(ListViewColumn.createDefaultInitialColumnList()).thenReturn(columns); + ViewGroup owner = mock(ViewGroup.class); + ItemGroup ig = mock(ItemGroup.class); + when(owner.getItemGroup()).thenReturn(ig); + ListView view = new ListView("test", owner); + view.setIncludeRegex(".*"); + TopLevelItem it = Mockito.mock(TopLevelItem.class); + List igContent = Arrays.asList((TopLevelItem) it); + when(Items.getAllItems(eq(ig), eq(TopLevelItem.class))).thenReturn(igContent); + when(ig.getItems()).thenReturn(igContent); + when(it.getRelativeNameFrom(any(ItemGroup.class))).thenReturn("test-item"); + assertEquals(1, view.getItems().size()); + } }