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;
 

Reply via email to