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()

Reply via email to