You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by iv...@apache.org on 2014/02/21 08:37:56 UTC
[31/31] git commit: WICKET-3335 test fixes
WICKET-3335 test fixes
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/723d7d3c
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/723d7d3c
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/723d7d3c
Branch: refs/heads/master
Commit: 723d7d3c9ebe8336897d75d3754685384f017b3a
Parents: abb316c
Author: Igor Vaynberg <ig...@gmail.com>
Authored: Thu Feb 20 23:09:43 2014 -0800
Committer: Igor Vaynberg <ig...@gmail.com>
Committed: Thu Feb 20 23:37:17 2014 -0800
----------------------------------------------------------------------
.../java/org/apache/wicket/DequeueContext.java | 44 +++++++++++++-----
.../java/org/apache/wicket/MarkupContainer.java | 48 ++++++++++++++++----
.../wicket/markup/html/border/Border.java | 12 +++--
.../markup/repeater/AbstractRepeater.java | 4 +-
.../markupFragments/MarkupFragmentTest.java | 2 +
5 files changed, 85 insertions(+), 25 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/723d7d3c/wicket-core/src/main/java/org/apache/wicket/DequeueContext.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/DequeueContext.java b/wicket-core/src/main/java/org/apache/wicket/DequeueContext.java
index 99c102d..a5bb925 100644
--- a/wicket-core/src/main/java/org/apache/wicket/DequeueContext.java
+++ b/wicket-core/src/main/java/org/apache/wicket/DequeueContext.java
@@ -1,9 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
package org.apache.wicket;
import org.apache.wicket.markup.ComponentTag;
import org.apache.wicket.markup.IMarkupFragment;
import org.apache.wicket.markup.MarkupElement;
import org.apache.wicket.util.collections.ArrayListStack;
+import org.apache.wicket.util.lang.Args;
/**
* Context for component dequeueing. Keeps track of markup position and container stack.
@@ -71,7 +88,7 @@ public final class DequeueContext
}
/**
- * Peeks markup tag that would be retrieved by call to {@link #popTag()}
+ * Peeks markup tag that would be retrieved by call to {@link #takeTag()}
*
* @return
*/
@@ -85,27 +102,30 @@ public final class DequeueContext
*
* @return
*/
- public ComponentTag popTag()
+ public ComponentTag takeTag()
{
- ComponentTag taken = next;
- tags.push(taken);
- next = nextTag();
+ ComponentTag taken=next;
+ if (taken.isOpen() && !taken.hasNoCloseTag())
+ {
+ tags.push(taken);
+ }
+ else if (tags.size() > 0 && taken.closes(tags.peek()))
+ {
+ tags.pop();
+ }
+ next=nextTag();
return taken;
}
/**
- * Skips to the closing tag of the tag retrieved from last call to {@link #popTag()}
+ * Skips to the closing tag of the tag retrieved from last call to {@link #takeTag()}
*/
public void skipToCloseTag()
{
- if (tags.peek().isOpen())
- {
while (!next.closes(tags.peek()))
{
next = nextTag();
}
- tags.pop();
- }
}
private ComponentTag nextTag()
@@ -117,7 +137,7 @@ public final class DequeueContext
{
ComponentTag tag = (ComponentTag)element;
ComponentTag open = tag.isClose() ? tag.getOpenTag() : tag;
- if (canDequeueTag(open))
+ if (open != null && canDequeueTag(open))
{
index++;
return tag;
@@ -129,6 +149,8 @@ public final class DequeueContext
private boolean canDequeueTag(ComponentTag open)
{
+ Args.notNull(open, "open");
+
if (containers.size() < 1)
{
// TODO queueing message: called too early
http://git-wip-us.apache.org/repos/asf/wicket/blob/723d7d3c/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 f6f0255..3cc5fcc 100644
--- a/wicket-core/src/main/java/org/apache/wicket/MarkupContainer.java
+++ b/wicket-core/src/main/java/org/apache/wicket/MarkupContainer.java
@@ -1715,6 +1715,17 @@ public abstract class MarkupContainer extends Component implements Iterable<Comp
return result;
}
+ @Override
+ protected void onBeforeRender()
+ {
+ super.onBeforeRender();
+ // if (this instanceof IQueueRegion)
+ // {
+ // dequeue();
+ // }
+ }
+
+
/**
*
* @see org.apache.wicket.Component#onBeforeRenderChildren()
@@ -2079,9 +2090,10 @@ public abstract class MarkupContainer extends Component implements Iterable<Comp
{
while (dequeue.isAtOpenOrOpenCloseTag())
{
- ComponentTag tag = dequeue.popTag();
-
+ ComponentTag tag = dequeue.takeTag();
+
// see if child is already added to parent
+
Component child = get(tag.getId()); // TODO queueing add this into findInQueue and
// rename it to dequeue
@@ -2101,24 +2113,40 @@ public abstract class MarkupContainer extends Component implements Iterable<Comp
}
}
}
-
- if (child == null || tag.isOpenClose() || !(child instanceof MarkupContainer))
+ if (child == null || !(child instanceof MarkupContainer))
{
// could not dequeue, or does not contain children
- dequeue.skipToCloseTag();
+
+ if (tag.isOpen())
+ {
+ dequeue.skipToCloseTag();
+ }
}
else
{
MarkupContainer container = (MarkupContainer)child;
- dequeue.pushContainer(container);
- container.dequeue(dequeue);
- dequeue.popContainer();
+ if (container instanceof IQueueRegion)
+ {
+ // if this is a dequeue container we do not process its markup, it will do so
+ // itself when it is dequeued for the first time
+ if (tag.isOpen())
+ {
+ dequeue.skipToCloseTag();
+ }
+ }
+ else if (tag.isOpen())
+ {
+ // this component has more markup and possibly more children to dequeue
+ dequeue.pushContainer(container);
+ container.dequeue(dequeue);
+ dequeue.popContainer();
+ }
}
- if (tag.isOpen() && tag.hasNoCloseTag() == false)
+ if (tag.isOpen() && !tag.hasNoCloseTag())
{
// pull the close tag off
- ComponentTag close = dequeue.popTag();
+ ComponentTag close = dequeue.takeTag();
if (!close.closes(tag))
{
// sanity check
http://git-wip-us.apache.org/repos/asf/wicket/blob/723d7d3c/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 057553c..c44d60b 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
@@ -163,7 +163,7 @@ public abstract class Border extends WebMarkupContainer implements IComponentRes
super(id, model);
body = new BorderBodyContainer(id + "_" + BODY);
- queueToBorder(body);
+ addToBorder(body);
}
/**
@@ -540,8 +540,14 @@ public abstract class Border extends WebMarkupContainer implements IComponentRes
@Override
public IMarkupFragment getDequeueMarkup()
{
- Border border = findParent(Border.class);
- IMarkupFragment fragment = border.getMarkup();
+ Border border=findParent(Border.class);
+ IMarkupFragment fragment=findParent(Border.class).getMarkup();
+
+ if (fragment == null)
+ {
+ return null;
+ }
+
/*
* we want to get the contents of the border here (the markup that
* is represented by the body tag) to do this we need to strip the
http://git-wip-us.apache.org/repos/asf/wicket/blob/723d7d3c/wicket-core/src/main/java/org/apache/wicket/markup/repeater/AbstractRepeater.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/repeater/AbstractRepeater.java b/wicket-core/src/main/java/org/apache/wicket/markup/repeater/AbstractRepeater.java
index 7b7bb4e..c71ef08 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/repeater/AbstractRepeater.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/repeater/AbstractRepeater.java
@@ -177,6 +177,8 @@ public abstract class AbstractRepeater extends WebMarkupContainer
}
}
}
- dequeue.skipToCloseTag();
+
+ dequeue.skipToCloseTag();
+
}
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/723d7d3c/wicket-core/src/test/java/org/apache/wicket/markupFragments/MarkupFragmentTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/markupFragments/MarkupFragmentTest.java b/wicket-core/src/test/java/org/apache/wicket/markupFragments/MarkupFragmentTest.java
index 83b518f..fa91473 100644
--- a/wicket-core/src/test/java/org/apache/wicket/markupFragments/MarkupFragmentTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/markupFragments/MarkupFragmentTest.java
@@ -178,6 +178,7 @@ public class MarkupFragmentTest extends WicketTestCase
assertNull(border.getBodyContainer().getAssociatedMarkup());
+ border.dequeue();
markup = border.getBodyContainer().getMarkup();
compareMarkupWithString(markup, "<wicket:body/>");
@@ -218,6 +219,7 @@ public class MarkupFragmentTest extends WicketTestCase
assertNull(border.getBodyContainer().getAssociatedMarkup());
// See explanation in BaseBorder.BorderBodyContainer.getMarkup()
+ border.dequeue();
markup = border.getBodyContainer().getParent().getMarkup(border.getBodyContainer());
compareMarkupWithString(markup, "<wicket:body>333</wicket:body>");