You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by jr...@apache.org on 2010/08/13 23:02:08 UTC
svn commit: r985365 - in
/wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/util/tester:
BaseWicketTester.java WicketTester.java
Author: jrthomerson
Date: Fri Aug 13 21:02:08 2010
New Revision: 985365
URL: http://svn.apache.org/viewvc?rev=985365&view=rev
Log:
add convenience method on WicketTester for asserting that certain messages are rendered in a particular FeedbackPanel
Modified:
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/util/tester/WicketTester.java
Modified: wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
URL: http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java?rev=985365&r1=985364&r2=985365&view=diff
==============================================================================
--- wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java (original)
+++ wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java Fri Aug 13 21:02:08 2010
@@ -26,13 +26,13 @@ import java.util.List;
import java.util.regex.Pattern;
import org.apache.wicket.Component;
-import org.apache.wicket.Component.IVisitor;
import org.apache.wicket.MarkupContainer;
import org.apache.wicket.Page;
import org.apache.wicket.PageParameters;
import org.apache.wicket.RequestCycle;
import org.apache.wicket.Session;
import org.apache.wicket.WicketRuntimeException;
+import org.apache.wicket.Component.IVisitor;
import org.apache.wicket.ajax.AjaxEventBehavior;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.AjaxSelfUpdatingTimerBehavior;
@@ -984,9 +984,8 @@ public class BaseWicketTester extends Mo
public Result hasNoErrorMessage()
{
List<Serializable> messages = getMessages(FeedbackMessage.ERROR);
- return isTrue(
- "expect no error message, but contains\n" + WicketTesterHelper.asLined(messages),
- messages.isEmpty());
+ return isTrue("expect no error message, but contains\n" +
+ WicketTesterHelper.asLined(messages), messages.isEmpty());
}
/**
@@ -997,9 +996,8 @@ public class BaseWicketTester extends Mo
public Result hasNoInfoMessage()
{
List<Serializable> messages = getMessages(FeedbackMessage.INFO);
- return isTrue(
- "expect no info message, but contains\n" + WicketTesterHelper.asLined(messages),
- messages.isEmpty());
+ return isTrue("expect no info message, but contains\n" +
+ WicketTesterHelper.asLined(messages), messages.isEmpty());
}
/**
@@ -1468,7 +1466,7 @@ public class BaseWicketTester extends Mo
return Result.fail(message);
}
- private Result isEqual(Object expected, Object actual)
+ protected final Result isEqual(Object expected, Object actual)
{
if (expected == null && actual == null)
{
@@ -1499,7 +1497,7 @@ public class BaseWicketTester extends Mo
return Result.pass();
}
- private void fail(String message)
+ protected final void fail(String message)
{
throw new WicketRuntimeException(message);
}
Modified: wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/util/tester/WicketTester.java
URL: http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/util/tester/WicketTester.java?rev=985365&r1=985364&r2=985365&view=diff
==============================================================================
--- wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/util/tester/WicketTester.java (original)
+++ wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/util/tester/WicketTester.java Fri Aug 13 21:02:08 2010
@@ -33,10 +33,13 @@ import org.apache.wicket.Page;
import org.apache.wicket.PageParameters;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.feedback.FeedbackMessage;
+import org.apache.wicket.feedback.IFeedback;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.link.BookmarkablePageLink;
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.HttpSessionStore;
import org.apache.wicket.protocol.http.MockHttpServletResponse;
import org.apache.wicket.protocol.http.SecondLevelCacheSessionStore;
@@ -442,6 +445,40 @@ public class WicketTester extends BaseWi
}
/**
+ * Assert that a particular feedback panel is rendering certain messages.
+ *
+ * NOTE: this casts the component at the specified path to a {@link FeedbackPanel}, so it will
+ * not work with custom {@link IFeedback} implementations unless you are subclassing
+ * {@link FeedbackPanel}
+ *
+ * @param path
+ * path to the feedback panel
+ * @param messages
+ * messages expected to be rendered
+ */
+ public void assertFeedback(String path, String[] messages)
+ {
+ final FeedbackPanel fbp = (FeedbackPanel)getComponentFromLastRenderedPage(path);
+ final IModel<List<FeedbackMessage>> model = fbp.getFeedbackMessagesModel();
+ final List<FeedbackMessage> renderedMessages = model.getObject();
+ if (renderedMessages == null)
+ {
+ fail("feedback panel at path [" + path + "] returned null messages");
+ }
+ if (messages.length != renderedMessages.size())
+ {
+ fail("you expected " + messages.length + " messages for the feedback panel [" + path +
+ "], but there were actually " + renderedMessages.size());
+ }
+ for (int i = 0; i < messages.length && i < renderedMessages.size(); i++)
+ {
+ final String expected = messages[i];
+ final String actual = renderedMessages.get(i).getMessage().toString();
+ assertResult(isEqual(expected, actual));
+ }
+ }
+
+ /**
* Asserts that a <code>Component</code> is invisible.
*
* @param path