Repository: wicket Updated Branches: refs/heads/wicket-6.x c66448712 -> 702bf45a4
WICKET-5694 Add WicketTester assertion methods for component's markup style, variation and locale Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/702bf45a Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/702bf45a Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/702bf45a Branch: refs/heads/wicket-6.x Commit: 702bf45a4a5c90918720a8410145a8c86f5041fe Parents: c664487 Author: Martin Tzvetanov Grigorov <[email protected]> Authored: Tue Sep 9 10:38:12 2014 +0300 Committer: Martin Tzvetanov Grigorov <[email protected]> Committed: Tue Sep 9 10:38:46 2014 +0300 ---------------------------------------------------------------------- .../java/org/apache/wicket/markup/Markup.java | 2 - .../org/apache/wicket/util/tester/Result.java | 11 ++- .../apache/wicket/util/tester/WicketTester.java | 99 +++++++++++++++++++- .../wicket/markup/MarkupVariationTest.java | 11 +++ 4 files changed, 114 insertions(+), 9 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/702bf45a/wicket-core/src/main/java/org/apache/wicket/markup/Markup.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/Markup.java b/wicket-core/src/main/java/org/apache/wicket/markup/Markup.java index 2808e42..ce815f1 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/Markup.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/Markup.java @@ -25,8 +25,6 @@ import java.util.List; import org.apache.wicket.util.lang.Args; import org.apache.wicket.util.resource.ResourceStreamNotFoundException; import org.apache.wicket.util.string.AppendingStringBuffer; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; /** http://git-wip-us.apache.org/repos/asf/wicket/blob/702bf45a/wicket-core/src/main/java/org/apache/wicket/util/tester/Result.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/util/tester/Result.java b/wicket-core/src/main/java/org/apache/wicket/util/tester/Result.java index dfe0cd9..3a51949 100644 --- a/wicket-core/src/main/java/org/apache/wicket/util/tester/Result.java +++ b/wicket-core/src/main/java/org/apache/wicket/util/tester/Result.java @@ -24,16 +24,17 @@ package org.apache.wicket.util.tester; */ public class Result { - private static final Result PASS = new Result(false); + public static final Result PASS = new Result(false); + private final boolean failed; private final String message; - private Result(boolean failed) + public Result(boolean failed) { this(failed, ""); } - private Result(boolean failed, String message) + public Result(boolean failed, String message) { this.failed = failed; this.message = message; @@ -46,7 +47,7 @@ public class Result * an error message * @return a <code>Result</code> which failed */ - static Result fail(String message) + public static Result fail(String message) { return new Result(true, message); } @@ -56,7 +57,7 @@ public class Result * * @return a <code>Result</code> which passed */ - static Result pass() + public static Result pass() { return PASS; } http://git-wip-us.apache.org/repos/asf/wicket/blob/702bf45a/wicket-core/src/main/java/org/apache/wicket/util/tester/WicketTester.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/util/tester/WicketTester.java b/wicket-core/src/main/java/org/apache/wicket/util/tester/WicketTester.java index 9e69c34..b6ebcf6 100644 --- a/wicket-core/src/main/java/org/apache/wicket/util/tester/WicketTester.java +++ b/wicket-core/src/main/java/org/apache/wicket/util/tester/WicketTester.java @@ -16,22 +16,28 @@ */ package org.apache.wicket.util.tester; -import static junit.framework.Assert.*; +import static junit.framework.Assert.assertEquals; +import static junit.framework.Assert.assertNotNull; +import static junit.framework.Assert.assertTrue; +import static junit.framework.Assert.fail; import java.io.Serializable; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.Locale; import javax.servlet.ServletContext; import junit.framework.AssertionFailedError; + import org.apache.wicket.Component; import org.apache.wicket.MarkupContainer; import org.apache.wicket.Page; import org.apache.wicket.behavior.AbstractAjaxBehavior; import org.apache.wicket.feedback.FeedbackMessage; import org.apache.wicket.feedback.IFeedback; +import org.apache.wicket.markup.IMarkupFragment; import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.link.BookmarkablePageLink; @@ -39,7 +45,6 @@ import org.apache.wicket.markup.html.list.ListView; import org.apache.wicket.markup.html.panel.FeedbackPanel; import org.apache.wicket.model.IModel; import org.apache.wicket.protocol.http.WebApplication; -import org.apache.wicket.protocol.http.mock.MockHttpServletRequest; import org.apache.wicket.request.mapper.parameter.PageParameters; import org.apache.wicket.util.lang.Objects; import org.slf4j.Logger; @@ -316,6 +321,96 @@ public class WicketTester extends BaseWicketTester } /** + * Asserts that a component's markup has loaded with the given variation + * + * @param component + * The component which markup to check + * @param expectedVariation + * The expected variation of the component's markup + */ + public void assertMarkupVariation(Component component, String expectedVariation) + { + Result result = Result.PASS; + IMarkupFragment markup = getMarkupFragment(component); + + String actualVariation = markup.getMarkupResourceStream().getVariation(); + if (Objects.equal(expectedVariation, actualVariation) == false) + { + result = Result.fail(String.format("Wrong variation for component '%s'. Actual: '%s', expected: '%s'", + component.getPageRelativePath(), actualVariation, expectedVariation)); + } + + assertResult(result); + } + + /** + * Asserts that a component's markup has loaded with the given style + * + * @param component + * The component which markup to check + * @param expectedStyle + * The expected style of the component's markup + */ + public void assertMarkupStyle(Component component, String expectedStyle) + { + Result result = Result.PASS; + IMarkupFragment markup = getMarkupFragment(component); + + String actualStyle = markup.getMarkupResourceStream().getStyle(); + if (Objects.equal(expectedStyle, actualStyle) == false) + { + result = Result.fail(String.format("Wrong style for component '%s'. Actual: '%s', expected: '%s'", + component.getPageRelativePath(), actualStyle, expectedStyle)); + } + + assertResult(result); + } + + /** + * Asserts that a component's markup has loaded with the given locale + * + * @param component + * The component which markup to check + * @param expectedLocale + * The expected locale of the component's markup + */ + public void assertMarkupLocale(Component component, Locale expectedLocale) + { + Result result = Result.PASS; + IMarkupFragment markup = getMarkupFragment(component); + + Locale actualLocale = markup.getMarkupResourceStream().getLocale(); + if (Objects.equal(expectedLocale, actualLocale) == false) + { + result = Result.fail(String.format("Wrong locale for component '%s'. Actual: '%s', expected: '%s'", + component.getPageRelativePath(), actualLocale, expectedLocale)); + } + + assertResult(result); + } + + private IMarkupFragment getMarkupFragment(Component component) + { + IMarkupFragment markup = null; + if (component instanceof MarkupContainer) + { + markup = ((MarkupContainer) component).getAssociatedMarkup(); + } + + if (markup == null) + { + markup = component.getMarkup(); + } + + if (markup == null) + { + throw new AssertionFailedError(String.format("Cannot find the markup of component: %s", component.getPageRelativePath())); + } + + return markup; + } + + /** * Asserts error-level feedback messages. * * @param expectedErrorMessages http://git-wip-us.apache.org/repos/asf/wicket/blob/702bf45a/wicket-core/src/test/java/org/apache/wicket/markup/MarkupVariationTest.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/MarkupVariationTest.java b/wicket-core/src/test/java/org/apache/wicket/markup/MarkupVariationTest.java index 5dd6883..195ff8f 100644 --- a/wicket-core/src/test/java/org/apache/wicket/markup/MarkupVariationTest.java +++ b/wicket-core/src/test/java/org/apache/wicket/markup/MarkupVariationTest.java @@ -42,15 +42,26 @@ public class MarkupVariationTest extends WicketTestCase { tester.startPage(new VariationPage()); tester.assertContainsNot("Two"); + tester.assertMarkupVariation(getVariationPanel(), "one"); + tester.assertMarkupVariation(tester.getLastRenderedPage(), null); tester.clickLink("p:l"); tester.assertContainsNot("One"); + tester.assertMarkupVariation(getVariationPanel(), "two"); + tester.assertMarkupVariation(tester.getLastRenderedPage(), null); tester.clickLink("p:l"); tester.assertContainsNot("Two"); + tester.assertMarkupVariation(getVariationPanel(), "one"); + tester.assertMarkupVariation(tester.getLastRenderedPage(), null); tester.clickLink("p:l"); } + private MarkupContainer getVariationPanel() + { + return (MarkupContainer) tester.getComponentFromLastRenderedPage("p"); + } + private static class VariationPage extends WebPage implements IMarkupResourceStreamProvider { private VariationPage()
