WICKET-6026 Problem in detecting child id on nested <wicket:enclosure>
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/9585b007 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/9585b007 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/9585b007 Branch: refs/heads/lambdas Commit: 9585b007215961e6a272515b6db95926a620a636 Parents: 8ea6aca Author: Andrea Del Bene <[email protected]> Authored: Sat Nov 7 20:57:32 2015 +0100 Committer: Andrea Del Bene <[email protected]> Committed: Sat Nov 7 21:20:47 2015 +0100 ---------------------------------------------------------------------- .../markup/parser/filter/EnclosureHandler.java | 2 +- .../markup/html/internal/EnclosureTest.java | 44 ++++++++++++++++++++ .../wicket/queueing/ComponentQueueingTest.java | 1 + 3 files changed, 46 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/9585b007/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/EnclosureHandler.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/EnclosureHandler.java b/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/EnclosureHandler.java index b29da3b..5074944 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/EnclosureHandler.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/EnclosureHandler.java @@ -144,7 +144,7 @@ public final class EnclosureHandler extends AbstractMarkupFilter implements ICom // Are we inside a wicket:enclosure tag? else if (stack != null) { - ComponentTag lastEnclosure = stack.getLast(); + ComponentTag lastEnclosure = stack.getFirst(); // If the enclosure tag has NO child attribute, then ... if (Strings.isEmpty(lastEnclosure.getAttribute(CHILD_ATTRIBUTE))) http://git-wip-us.apache.org/repos/asf/wicket/blob/9585b007/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/EnclosureTest.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/EnclosureTest.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/EnclosureTest.java index c0e8d33..8ddc60a 100644 --- a/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/EnclosureTest.java +++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/EnclosureTest.java @@ -432,4 +432,48 @@ public class EnclosureTest extends WicketTestCase tester.assertContainsNot(ChildWithDeeperPathInTransparentContainerPage.LABEL_TEXT); } + + @Test + public void nestedEnclousers() + { + TestPageMarkup p = new TestPageMarkup(); + p.setPageMarkup("<wicket:enclosure child='labelOuter'>tOuter Enclosure <span wicket:id='labelOuter'/>" + + "<wicket:enclosure>Inner Enclosure <span wicket:id='labelInner' /></wicket:enclosure>" + + "</wicket:enclosure>"); + + p.add(new Label("labelOuter"), new Label("labelInner")); + tester.startPage(p); + } + + private static class TestPageMarkup extends WebPage implements IMarkupResourceStreamProvider + { + private String markup; + + public TestPageMarkup() + { + } + + public TestPageMarkup(String markup) + { + this.markup = markup; + } + + protected String getPageMarkup() + { + return markup; + } + + public void setPageMarkup(String markup) + { + this.markup = markup; + } + + @Override + public IResourceStream getMarkupResourceStream(MarkupContainer container, + Class<?> containerClass) + { + return new StringResourceStream(getPageMarkup()); + } + + } } http://git-wip-us.apache.org/repos/asf/wicket/blob/9585b007/wicket-core/src/test/java/org/apache/wicket/queueing/ComponentQueueingTest.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/queueing/ComponentQueueingTest.java b/wicket-core/src/test/java/org/apache/wicket/queueing/ComponentQueueingTest.java index 3912d62..463999d 100644 --- a/wicket-core/src/test/java/org/apache/wicket/queueing/ComponentQueueingTest.java +++ b/wicket-core/src/test/java/org/apache/wicket/queueing/ComponentQueueingTest.java @@ -19,6 +19,7 @@ package org.apache.wicket.queueing; import static org.apache.wicket.queueing.WicketMatchers.hasPath; import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.nullValue; +import static org.junit.Assert.*; import java.util.ArrayList;
