Author: jrthomerson
Date: Fri Aug 13 21:01:59 2010
New Revision: 985364
URL: http://svn.apache.org/viewvc?rev=985364&view=rev
Log:
add convenience method on WicketTester for asserting that certain messages are
rendered in a particular FeedbackPanel
Modified:
wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/WicketTester.java
Modified:
wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java?rev=985364&r1=985363&r2=985364&view=diff
==============================================================================
---
wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
(original)
+++
wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
Fri Aug 13 21:01:59 2010
@@ -1349,9 +1349,8 @@ public class BaseWicketTester
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());
}
/**
@@ -1362,9 +1361,8 @@ public class BaseWicketTester
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());
}
/**
@@ -1765,7 +1763,7 @@ public class BaseWicketTester
* @param actual
* @return
*/
- private Result isEqual(Object expected, Object actual)
+ protected final Result isEqual(Object expected, Object actual)
{
if (expected == null && actual == null)
{
@@ -1811,7 +1809,7 @@ public class BaseWicketTester
*
* @param message
*/
- private void fail(String message)
+ protected final void fail(String message)
{
throw new WicketRuntimeException(message);
}
Modified:
wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/WicketTester.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/WicketTester.java?rev=985364&r1=985363&r2=985364&view=diff
==============================================================================
---
wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/WicketTester.java
(original)
+++
wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/WicketTester.java
Fri Aug 13 21:01:59 2010
@@ -30,10 +30,13 @@ import org.apache.wicket.MarkupContainer
import org.apache.wicket.Page;
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.WebApplication;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.slf4j.Logger;
@@ -316,6 +319,41 @@ public class WicketTester extends BaseWi
WicketTesterHelper.assertEquals(Arrays.asList(expectedInfoMessages),
actualMessages);
}
+
+ /**
+ * 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.
*