Updated Branches: refs/heads/master 59da20da4 -> 47d4674b5
WICKET-4424 getComponentFromLastRenderedPage appends componentInPage id when it shouldn't Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/47d4674b Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/47d4674b Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/47d4674b Branch: refs/heads/master Commit: 47d4674b5d7ba1badcb488cb4ef2c3bbcf9bc0fe Parents: 59da20d Author: Martin Tzvetanov Grigorov <[email protected]> Authored: Tue Feb 21 14:36:45 2012 +0100 Committer: Martin Tzvetanov Grigorov <[email protected]> Committed: Tue Feb 21 14:36:45 2012 +0100 ---------------------------------------------------------------------- .../wicket/util/tester/BaseWicketTester.java | 35 +++++++++++++- 1 files changed, 32 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/47d4674b/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java b/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java index f6e771a..e400de3 100644 --- a/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java +++ b/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java @@ -42,7 +42,6 @@ import javax.servlet.http.Cookie; import javax.servlet.http.HttpSession; import junit.framework.AssertionFailedError; - import org.apache.wicket.Application; import org.apache.wicket.Component; import org.apache.wicket.IPageManagerProvider; @@ -64,8 +63,8 @@ import org.apache.wicket.ajax.markup.html.AjaxLink; import org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink; import org.apache.wicket.behavior.AbstractAjaxBehavior; import org.apache.wicket.behavior.Behavior; -import org.apache.wicket.feedback.FeedbackMessage; import org.apache.wicket.feedback.FeedbackCollector; +import org.apache.wicket.feedback.FeedbackMessage; import org.apache.wicket.feedback.IFeedbackMessageFilter; import org.apache.wicket.markup.ContainerInfo; import org.apache.wicket.markup.IMarkupFragment; @@ -1184,12 +1183,19 @@ public class BaseWicketTester /** * Process a component. A web page will be automatically created with the markup created in * {@link #createPageMarkup(String)}. + * <p> + * <strong>Note</strong>: the instantiated component will have an auto-generated id. To + * reach any of its children use their relative path to the component itself. For example + * if the started component has a child a Link component with id "link" then after starting + * the component you can click it with: <code>tester.clickLink("link")</code> + * </p> * * @param <C> * the type of the component * @param componentClass * the class of the component to be tested * @return The component processed + * @see #startComponentInPage(org.apache.wicket.Component) */ public final <C extends Component> C startComponentInPage(final Class<C> componentClass) { @@ -1200,6 +1206,12 @@ public class BaseWicketTester * Process a component. A web page will be automatically created with the {@code pageMarkup} * provided. In case pageMarkup is null, the markup will be automatically created with * {@link #createPageMarkup(String)}. + * <p> + * <strong>Note</strong>: the instantiated component will have an auto-generated id. To + * reach any of its children use their relative path to the component itself. For example + * if the started component has a child a Link component with id "link" then after starting + * the component you can click it with: <code>tester.clickLink("link")</code> + * </p> * * @param <C> * the type of the component @@ -1239,12 +1251,19 @@ public class BaseWicketTester /** * Process a component. A web page will be automatically created with markup created by the * {@link #createPageMarkup(String)}. + * <p> + * <strong>Note</strong>: the component id is set by the user. To + * reach any of its children use this id + their relative path to the component itself. For example + * if the started component has id <em>compId</em> and a Link child component component with id "link" + * then after starting the component you can click it with: <code>tester.clickLink("compId:link")</code> + * </p> * * @param <C> * the type of the component * @param component * the component to be tested * @return The component processed + * @see #startComponentInPage(Class) */ public final <C extends Component> C startComponentInPage(final C component) { @@ -1255,6 +1274,12 @@ public class BaseWicketTester * Process a component. A web page will be automatically created with the {@code pageMarkup} * provided. In case {@code pageMarkup} is null, the markup will be automatically created with * {@link #createPageMarkup(String)}. + * <p> + * <strong>Note</strong>: the component id is set by the user. To + * reach any of its children use this id + their relative path to the component itself. For example + * if the started component has id <em>compId</em> and a Link child component component with id "link" + * then after starting the component you can click it with: <code>tester.clickLink("compId:link")</code> + * </p> * * @param <C> * the type of the component @@ -1437,7 +1462,11 @@ public class BaseWicketTester { if (componentInPage != null && componentInPage.isInstantiated) { - path = componentInPage.component.getId() + ":" + path; + String componentIdPageId = componentInPage.component.getId() + ':'; + if (path.startsWith(componentIdPageId) == false) + { + path = componentIdPageId + path; + } } Component component = getLastRenderedPage().get(path);
