You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2014/09/09 09:43:27 UTC

git commit: WICKET-5694 Add WicketTester assertion methods for component's markup style, variation and locale

Repository: wicket
Updated Branches:
  refs/heads/master eefe3c30a -> 13137b9da


WICKET-5694 Add WicketTester assertion methods for component's markup style, variation and locale

(cherry picked from commit b09593a6e1f60b080e2f27d739336757ec01d686)


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/13137b9d
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/13137b9d
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/13137b9d

Branch: refs/heads/master
Commit: 13137b9da97f980bfd0f84dd716b22e344de86c8
Parents: eefe3c3
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Tue Sep 9 10:38:12 2014 +0300
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Tue Sep 9 10:43:07 2014 +0300

----------------------------------------------------------------------
 .../java/org/apache/wicket/markup/Markup.java   |  2 -
 .../org/apache/wicket/util/tester/Result.java   | 11 +--
 .../apache/wicket/util/tester/WicketTester.java | 93 ++++++++++++++++++++
 .../wicket/markup/MarkupVariationTest.java      | 11 +++
 4 files changed, 110 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/13137b9d/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/13137b9d/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/13137b9d/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 46b9f4a..e860574 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
@@ -26,10 +26,12 @@ 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;
@@ -38,6 +40,7 @@ import org.apache.wicket.feedback.ExactLevelFeedbackMessageFilter;
 import org.apache.wicket.feedback.FeedbackMessage;
 import org.apache.wicket.feedback.IFeedback;
 import org.apache.wicket.feedback.IFeedbackMessageFilter;
+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.form.ValidationErrorFeedback;
@@ -324,6 +327,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/13137b9d/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()