WICKET-3335 extract panels' and borders' markup in files MarkupContainer#getAssociatedMarkup() returns wrong markup when using StringResourceStream
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/58f67000 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/58f67000 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/58f67000 Branch: refs/heads/master Commit: 58f67000a96f82b8b6ebd8b980df95bc052122ba Parents: 5dfa926 Author: Martin Tzvetanov Grigorov <[email protected]> Authored: Fri Feb 14 16:20:32 2014 +0200 Committer: Igor Vaynberg <[email protected]> Committed: Thu Feb 20 23:37:15 2014 -0800 ---------------------------------------------------------------------- .../java/org/apache/wicket/MarkupContainer.java | 2 +- .../wicket/markup/html/border/Border.java | 2 +- .../wicket/queueing/ComponentQueueingTest.java | 31 +++++++++----------- .../queueing/nestedborders/InnerBorder.html | 10 +++++++ .../queueing/nestedborders/InnerBorder.java | 14 +++++++++ .../queueing/nestedborders/OuterBorder.html | 11 +++++++ .../queueing/nestedborders/OuterBorder.java | 14 +++++++++ .../queueing/nestedpanels/InnerPanel.html | 13 ++++++++ .../queueing/nestedpanels/InnerPanel.java | 14 +++++++++ .../queueing/nestedpanels/OuterPanel.html | 14 +++++++++ .../queueing/nestedpanels/OuterPanel.java | 14 +++++++++ 11 files changed, 120 insertions(+), 19 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/58f67000/wicket-core/src/main/java/org/apache/wicket/MarkupContainer.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/MarkupContainer.java b/wicket-core/src/main/java/org/apache/wicket/MarkupContainer.java index 05e087d..c62433d 100644 --- a/wicket-core/src/main/java/org/apache/wicket/MarkupContainer.java +++ b/wicket-core/src/main/java/org/apache/wicket/MarkupContainer.java @@ -2148,7 +2148,7 @@ public abstract class MarkupContainer extends Component implements Iterable<Comp if (tag.isClose()) { - ComponentTag closeTag = tags.pop(); + tags.pop(); containers.pop(); if (containers.peek() instanceof AbstractRepeater) http://git-wip-us.apache.org/repos/asf/wicket/blob/58f67000/wicket-core/src/main/java/org/apache/wicket/markup/html/border/Border.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/border/Border.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/border/Border.java index b3e1296..3c5b0d7 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/html/border/Border.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/border/Border.java @@ -398,7 +398,7 @@ public abstract class Border extends WebMarkupContainer implements IComponentRes /** * The container to be associated with the <wicket:body> tag */ - public class BorderBodyContainer extends WebMarkupContainer implements IQueueRegion + public class BorderBodyContainer extends WebMarkupContainer { private static final long serialVersionUID = 1L; http://git-wip-us.apache.org/repos/asf/wicket/blob/58f67000/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 0687177..751462e 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 @@ -35,6 +35,10 @@ import org.apache.wicket.markup.html.list.ListItem; import org.apache.wicket.markup.html.list.ListView; import org.apache.wicket.markup.html.panel.Panel; import org.apache.wicket.model.Model; +import org.apache.wicket.queueing.nestedborders.InnerBorder; +import org.apache.wicket.queueing.nestedborders.OuterBorder; +import org.apache.wicket.queueing.nestedpanels.InnerPanel; +import org.apache.wicket.queueing.nestedpanels.OuterPanel; import org.apache.wicket.util.resource.IResourceStream; import org.apache.wicket.util.resource.StringResourceStream; import org.junit.Assert; @@ -263,21 +267,15 @@ public class ComponentQueueingTest extends WicketTestCase /** * test with inner panels */ - @Ignore @Test public void dequeueWithNestedPanels() { MarkupContainer r = new R(), s = new S(); - TestPanel innerPanel = new TestPanel("inner"); - innerPanel.setPanelMarkup("<html><head><wicket:head><meta 2/></wicket:head></head>" - + "<body><wicket:panel><p wicket:id='s'></p></wicket:panel></body></html>"); + Panel innerPanel = new InnerPanel("inner"); innerPanel.queue(s); - TestPanel outerPanel = new TestPanel("outer"); - outerPanel.setPanelMarkup("<html><head><wicket:head><meta/></wicket:head></head>" - + "<body><wicket:panel><p wicket:id='r'></p><p wicket:id='inner'></p>" + - "</wicket:panel></body></html>"); + Panel outerPanel = new OuterPanel("outer"); outerPanel.queue(r, innerPanel); @@ -290,7 +288,7 @@ public class ComponentQueueingTest extends WicketTestCase assertThat(p, hasPath(new Path(outerPanel, r))); assertThat(p, hasPath(new Path(outerPanel, innerPanel, s))); tester.assertContains("<meta/>"); // contributed by <wicket:head> in outer - tester.assertContains("<meta 2/>"); // contributed by <wicket:head> in inner + tester.assertContains("<meta2/>"); // contributed by <wicket:head> in inner } @Test @@ -607,17 +605,15 @@ public class ComponentQueueingTest extends WicketTestCase { MarkupContainer a = new A(), b = new B(), c= new C(), d = new D(), r = new R(), s = new S(); - TestBorder outerBorder = new TestBorder("outerBorder"); - outerBorder.setBorderMarkup("<wicket:border><p wicket:id='r'><p wicket:id='innerBorder'>" + - "<p wicket='s'></p></p><wicket:body/></p></wicket:border>"); + Border outerBorder = new OuterBorder("outerBorder"); - TestBorder innerBorder = new TestBorder("innerBorder"); - innerBorder.setBorderMarkup("<wicket:border><p wicket:id='c'><p wicket:id='d'>" + - "<wicket:body/></p></p></wicket:border>"); + Border innerBorder = new InnerBorder("innerBorder"); outerBorder.queueToBorder(r, innerBorder); innerBorder.queueToBorder(c, d); + + // TODO WICKET-3335 Where to queue 's' to make it work ?! outerBorder.queue(s); TestPage p = new TestPage(); @@ -627,8 +623,9 @@ public class ComponentQueueingTest extends WicketTestCase tester.startPage(p); - assertThat(p, hasPath(new Path(a, outerBorder, r, innerBorder, s))); - assertThat(p, hasPath(new Path(a, outerBorder, r, innerBorder, innerBorder.getBodyContainer(), c, d))); + assertThat(p, hasPath(new Path(a, outerBorder, outerBorder.getBodyContainer(), b))); + assertThat(p, hasPath(new Path(a, outerBorder, r, innerBorder, c, d))); + assertThat(p, hasPath(new Path(a, outerBorder, r, innerBorder, innerBorder.getBodyContainer(), s))); } private static class A extends WebMarkupContainer http://git-wip-us.apache.org/repos/asf/wicket/blob/58f67000/wicket-core/src/test/java/org/apache/wicket/queueing/nestedborders/InnerBorder.html ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/queueing/nestedborders/InnerBorder.html b/wicket-core/src/test/java/org/apache/wicket/queueing/nestedborders/InnerBorder.html new file mode 100644 index 0000000..4ae8866 --- /dev/null +++ b/wicket-core/src/test/java/org/apache/wicket/queueing/nestedborders/InnerBorder.html @@ -0,0 +1,10 @@ +<!DOCTYPE html> +<html xmlns:wicket="http://wicket.apache.org"> + <wicket:border> + <p wicket:id="c"> + <p wicket:id="d"> + <wicket:body/> + </p> + </p> + </wicket:border> +</html> http://git-wip-us.apache.org/repos/asf/wicket/blob/58f67000/wicket-core/src/test/java/org/apache/wicket/queueing/nestedborders/InnerBorder.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/queueing/nestedborders/InnerBorder.java b/wicket-core/src/test/java/org/apache/wicket/queueing/nestedborders/InnerBorder.java new file mode 100644 index 0000000..f4790c4 --- /dev/null +++ b/wicket-core/src/test/java/org/apache/wicket/queueing/nestedborders/InnerBorder.java @@ -0,0 +1,14 @@ +package org.apache.wicket.queueing.nestedborders; + +import org.apache.wicket.markup.html.border.Border; + +/** + * + */ +public class InnerBorder extends Border +{ + public InnerBorder(String id) + { + super(id); + } +} http://git-wip-us.apache.org/repos/asf/wicket/blob/58f67000/wicket-core/src/test/java/org/apache/wicket/queueing/nestedborders/OuterBorder.html ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/queueing/nestedborders/OuterBorder.html b/wicket-core/src/test/java/org/apache/wicket/queueing/nestedborders/OuterBorder.html new file mode 100644 index 0000000..cbe392d --- /dev/null +++ b/wicket-core/src/test/java/org/apache/wicket/queueing/nestedborders/OuterBorder.html @@ -0,0 +1,11 @@ +<!DOCTYPE html> +<html xmlns:wicket="http://wicket.apache.org"> + <wicket:border> + <p wicket:id="r"> + <p wicket:id="innerBorder"> + <p wicket="s"></p> + </p> + <wicket:body/> + </p> + </wicket:border> +</html> http://git-wip-us.apache.org/repos/asf/wicket/blob/58f67000/wicket-core/src/test/java/org/apache/wicket/queueing/nestedborders/OuterBorder.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/queueing/nestedborders/OuterBorder.java b/wicket-core/src/test/java/org/apache/wicket/queueing/nestedborders/OuterBorder.java new file mode 100644 index 0000000..c74859d --- /dev/null +++ b/wicket-core/src/test/java/org/apache/wicket/queueing/nestedborders/OuterBorder.java @@ -0,0 +1,14 @@ +package org.apache.wicket.queueing.nestedborders; + +import org.apache.wicket.markup.html.border.Border; + +/** + * + */ +public class OuterBorder extends Border +{ + public OuterBorder(String id) + { + super(id); + } +} http://git-wip-us.apache.org/repos/asf/wicket/blob/58f67000/wicket-core/src/test/java/org/apache/wicket/queueing/nestedpanels/InnerPanel.html ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/queueing/nestedpanels/InnerPanel.html b/wicket-core/src/test/java/org/apache/wicket/queueing/nestedpanels/InnerPanel.html new file mode 100644 index 0000000..799f720 --- /dev/null +++ b/wicket-core/src/test/java/org/apache/wicket/queueing/nestedpanels/InnerPanel.html @@ -0,0 +1,13 @@ +<!DOCTYPE html> +<html xmlns:wicket="http://wicket.apache.org"> + <head> + <wicket:head> + <meta2/> + </wicket:head> + </head> + <body> + <wicket:panel> + <p wicket:id="s"></p> + </wicket:panel> + </body> +</html> http://git-wip-us.apache.org/repos/asf/wicket/blob/58f67000/wicket-core/src/test/java/org/apache/wicket/queueing/nestedpanels/InnerPanel.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/queueing/nestedpanels/InnerPanel.java b/wicket-core/src/test/java/org/apache/wicket/queueing/nestedpanels/InnerPanel.java new file mode 100644 index 0000000..2416eaf --- /dev/null +++ b/wicket-core/src/test/java/org/apache/wicket/queueing/nestedpanels/InnerPanel.java @@ -0,0 +1,14 @@ +package org.apache.wicket.queueing.nestedpanels; + +import org.apache.wicket.markup.html.panel.Panel; + +/** + * + */ +public class InnerPanel extends Panel +{ + public InnerPanel(String id) + { + super(id); + } +} http://git-wip-us.apache.org/repos/asf/wicket/blob/58f67000/wicket-core/src/test/java/org/apache/wicket/queueing/nestedpanels/OuterPanel.html ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/queueing/nestedpanels/OuterPanel.html b/wicket-core/src/test/java/org/apache/wicket/queueing/nestedpanels/OuterPanel.html new file mode 100644 index 0000000..c313174 --- /dev/null +++ b/wicket-core/src/test/java/org/apache/wicket/queueing/nestedpanels/OuterPanel.html @@ -0,0 +1,14 @@ +<!DOCTYPE html> +<html xmlns:wicket="http://wicket.apache.org"> + <head> + <wicket:head> + <meta/> + </wicket:head> + </head> + <body> + <wicket:panel> + <p wicket:id='r'></p> + <p wicket:id='inner'></p> + </wicket:panel> + </body> +</html> http://git-wip-us.apache.org/repos/asf/wicket/blob/58f67000/wicket-core/src/test/java/org/apache/wicket/queueing/nestedpanels/OuterPanel.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/queueing/nestedpanels/OuterPanel.java b/wicket-core/src/test/java/org/apache/wicket/queueing/nestedpanels/OuterPanel.java new file mode 100644 index 0000000..e6fbe9c --- /dev/null +++ b/wicket-core/src/test/java/org/apache/wicket/queueing/nestedpanels/OuterPanel.java @@ -0,0 +1,14 @@ +package org.apache.wicket.queueing.nestedpanels; + +import org.apache.wicket.markup.html.panel.Panel; + +/** + * + */ +public class OuterPanel extends Panel +{ + public OuterPanel(String id) + { + super(id); + } +}
