You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by eh...@apache.org on 2007/04/16 03:57:30 UTC
svn commit: r529116 -
/incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
Author: ehillenius
Date: Sun Apr 15 18:57:29 2007
New Revision: 529116
URL: http://svn.apache.org/viewvc?view=rev&rev=529116
Log:
test for null
Modified:
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
Modified: incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
URL: http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java?view=diff&rev=529116&r1=529115&r2=529116
==============================================================================
--- incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java (original)
+++ incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java Sun Apr 15 18:57:29 2007
@@ -67,9 +67,9 @@
* A helper to ease unit testing of Wicket applications without the need for a
* servlet container. See javadoc of WicketTester for example usage. This class
* can be used as is, but JUnit users should use derived class WicketTester.
- *
+ *
* @see WicketTester
- *
+ *
* @author Ingram Chen
* @author Juergen Donnerstag
* @author Frank Bille
@@ -101,7 +101,7 @@
/**
* Create WicketTester and automatically create a WebApplication.
- *
+ *
* @param homePage
*/
public BaseWicketTester(final Class homePage)
@@ -120,7 +120,7 @@
/**
* Create WicketTester
- *
+ *
* @param application
* The wicket tester object
*/
@@ -131,13 +131,13 @@
/**
* Create WicketTester to help unit testing
- *
+ *
* @param application
* The wicket tester object
* @param path
* The absolute path on disk to the web application contents
* (e.g. war root) - may be null
- *
+ *
* @see org.apache.wicket.protocol.http.MockWebApplication#MockWebApplication(String)
*/
public BaseWicketTester(final WebApplication application, final String path)
@@ -149,7 +149,7 @@
* Render a page defined in <code>TestPageSource</code>. This is usually
* used when a page does not have default constructor. For example, a
* <code>ViewBook</code> page requires a <code>Book</code> instance:
- *
+ *
* <pre>
* tester.startPage(new TestPageSource()
* {
@@ -160,7 +160,7 @@
* }
* });
* </pre>
- *
+ *
* @param testPageSource
* a page factory that creating test page instance
* @return Page rendered page
@@ -178,8 +178,9 @@
/**
* Builds and processes a request suitable for invoking a listener. The
* component must implement any of the known *Listener interfaces.
- *
- * @param component the listener to invoke
+ *
+ * @param component
+ * the listener to invoke
*/
public void executeListener(Component component)
{
@@ -190,8 +191,9 @@
/**
* Builds and processes a request suitable for executing an ajax behavior.
- *
- * @param behavior the ajax behavior to execute
+ *
+ * @param behavior
+ * the ajax behavior to execute
*/
public void executeBehavior(final AbstractAjaxBehavior behavior)
{
@@ -204,7 +206,7 @@
/**
* Render the page
- *
+ *
* @param page
* @return The page rendered
*/
@@ -225,7 +227,7 @@
/**
* Render a page from its default constructor.
- *
+ *
* @param pageClass
* a test page class with default constructor
* @return Page Rendered Page
@@ -271,7 +273,7 @@
/**
* Render a panel from <code>Panel(String id)</code> constructor.
- *
+ *
* @param panelClass
* a test panel class with <code>Panel(String id)</code>
* constructor
@@ -324,7 +326,7 @@
/**
* Throw "standard" WicketRuntimeException
- *
+ *
* @param e
* @return RuntimeException
*/
@@ -337,7 +339,7 @@
* Gets the component with the given path from last rendered page. This
* method fails in case the component couldn't be found, and it will return
* null if the component was found, but is not visible.
- *
+ *
* @param path
* Path to component
* @return The component at the path
@@ -361,7 +363,7 @@
/**
* assert the text of <code>Label</code> component.
- *
+ *
* @param path
* path to <code>Label</code> component
* @param expectedLabelText
@@ -376,7 +378,7 @@
/**
* assert <code>PageLink</code> link to page class.
- *
+ *
* @param path
* path to <code>PageLink</code> component
* @param expectedPageClass
@@ -409,7 +411,7 @@
/**
* assert component class
- *
+ *
* @param path
* path to component
* @param expectedComponentClass
@@ -419,14 +421,14 @@
public Result isComponent(String path, Class expectedComponentClass)
{
Component component = getComponentFromLastRenderedPage(path);
- return isTrue("component '" + Classes.simpleName(component.getClass())
- + "' is not type:" + Classes.simpleName(expectedComponentClass),
- expectedComponentClass.isAssignableFrom(component.getClass()));
+ return isTrue("component '" + Classes.simpleName(component.getClass()) + "' is not type:"
+ + Classes.simpleName(expectedComponentClass), expectedComponentClass
+ .isAssignableFrom(component.getClass()));
}
/**
* assert component visible.
- *
+ *
* @param path
* path to component
* @return
@@ -445,20 +447,19 @@
/**
* assert component invisible.
- *
+ *
* @param path
* path to component
* @return
*/
public Result isInvisible(String path)
{
- return isNull("component '" + path + "' is visible",
- getComponentFromLastRenderedPage(path));
+ return isNull("component '" + path + "' is visible", getComponentFromLastRenderedPage(path));
}
/**
* assert the content of last rendered page contains(matches) regex pattern.
- *
+ *
* @param pattern
* reqex pattern to match
* @return
@@ -471,7 +472,7 @@
/**
* assert the model of {@link ListView} use expectedList
- *
+ *
* @param path
* path to {@link ListView} component
* @param expectedList
@@ -487,7 +488,7 @@
* Click the {@link Link} in the last rendered Page.
* <p>
* Simulate that AJAX is enabled.
- *
+ *
* @see WicketTester#clickLink(String, boolean)
* @param path
* Click the <code>Link</code> in the last rendered Page.
@@ -519,7 +520,7 @@
* on the client. This is done by setting the isAjax parameter to false. If
* you have an AjaxFallbackLink you can then check that it doesn't fail when
* invoked as a normal link.
- *
+ *
* @param path
* path to <code>Link</code> component
* @param isAjax
@@ -628,10 +629,10 @@
try
{
Field parametersField = BookmarkablePageLink.class
- .getDeclaredField("parameters");
+ .getDeclaredField("parameters");
parametersField.setAccessible(true);
PageParameters parameters = (PageParameters)parametersField
- .get(bookmarkablePageLink);
+ .get(bookmarkablePageLink);
setParametersForNextRequest(parameters);
}
catch (Exception e)
@@ -646,14 +647,13 @@
}
else
{
- fail("Link " + path
- + " is not a Link, AjaxLink, AjaxFallbackLink or AjaxSubmitLink");
+ fail("Link " + path + " is not a Link, AjaxLink, AjaxFallbackLink or AjaxSubmitLink");
}
}
/**
* submit the <code>Form</code> in the last rendered Page.
- *
+ *
* @param path
* path to <code>Form</code> component
*/
@@ -667,7 +667,7 @@
* Sets a parameter for the component with the given path to be used with
* the next request. NOTE: this method only works when a page was rendered
* first.
- *
+ *
* @param componentPath
* path of the component
* @param value
@@ -700,19 +700,25 @@
/**
* assert last rendered Page class
- *
- * FIXME explain why the code is so complicated to compare two classes, or simplify
- *
+ *
+ * FIXME explain why the code is so complicated to compare two classes, or
+ * simplify
+ *
* @param expectedRenderedPageClass
* expected class of last renered page
* @return
*/
public Result isRenderedPage(Class expectedRenderedPageClass)
{
- if (!getLastRenderedPage().getClass().isAssignableFrom(expectedRenderedPageClass))
+ Page page = getLastRenderedPage();
+ if (page == null)
+ {
+ return Result.fail("page was null");
+ }
+ if (!page.getClass().isAssignableFrom(expectedRenderedPageClass))
{
- return isEqual(Classes.simpleName(expectedRenderedPageClass), Classes
- .simpleName(getLastRenderedPage().getClass()));
+ return isEqual(Classes.simpleName(expectedRenderedPageClass), Classes.simpleName(page
+ .getClass()));
}
return Result.pass();
}
@@ -723,7 +729,7 @@
* Use <code>-Dwicket.replace.expected.results=true</code> to
* automatically replace the expected output file.
* </p>
- *
+ *
* @param pageClass
* Used to load the file (relative to clazz package)
* @param filename
@@ -739,7 +745,7 @@
/**
* assert last rendered Page against an expected HTML document as a String
- *
+ *
* @param expectedDocument
* Expected output
* @return
@@ -754,6 +760,7 @@
/**
* assert no error feedback messages
+ *
* @return
*/
public Result hasNoErrorMessage()
@@ -765,6 +772,7 @@
/**
* assert no info feedback messages
+ *
* @return
*/
public Result hasNoInfoMessage()
@@ -776,7 +784,7 @@
/**
* assert error feedback messages
- *
+ *
* @param expectedErrorMessages
* expected error messages
*/
@@ -793,7 +801,7 @@
/**
* assert info feedback message
- *
+ *
* @param expectedInfoMessages
* expected info messages
*/
@@ -805,7 +813,7 @@
/**
* get feedback messages
- *
+ *
* @param level
* level of feedback message, ex.
* <code>FeedbackMessage.DEBUG or FeedbackMessage.INFO.. etc</code>
@@ -851,7 +859,7 @@
/**
* Dump the component trees to log.
- *
+ *
* @param filter
* Show only the components, which path contains the
* filterstring.
@@ -860,7 +868,7 @@
{
log.info("debugging ----------------------------------------------");
for (Iterator iter = WicketTesterHelper.getComponentData(getLastRenderedPage()).iterator(); iter
- .hasNext();)
+ .hasNext();)
{
WicketTesterHelper.ComponentData obj = (WicketTesterHelper.ComponentData)iter.next();
if (obj.path.matches(".*" + filter + ".*"))
@@ -878,7 +886,7 @@
* PLEASE NOTE! This method doesn't actually insert the component in the
* client DOM tree, using javascript. But it shouldn't be needed because you
* have to trust that the Wicket Ajax Javascript just works.
- *
+ *
* @param component
* The component to test whether it's on the response.
* @return
@@ -893,19 +901,21 @@
// Test that the previous response was actually a AJAX response
failMessage = "The Previous response was not an AJAX response. "
- + "You need to execute an AJAX event, using clickLink, before using this assert";
+ + "You need to execute an AJAX event, using clickLink, before using this assert";
boolean isAjaxResponse = ajaxResponse
- .startsWith("<?xml version=\"1.0\" encoding=\"UTF-8\"?><ajax-response>");
+ .startsWith("<?xml version=\"1.0\" encoding=\"UTF-8\"?><ajax-response>");
Result result = isTrue(failMessage, isAjaxResponse);
- if(result.wasFailed()) return result;
+ if (result.wasFailed())
+ return result;
// See if the component has a markup id
String markupId = component.getMarkupId();
failMessage = "The component doesn't have a markup id, "
- + "which means that it can't have been added to the AJAX response";
+ + "which means that it can't have been added to the AJAX response";
result = isTrue(failMessage, !Strings.isEmpty(markupId));
- if(result.wasFailed()) return result;
+ if (result.wasFailed())
+ return result;
// Look for that the component is on the response, using the markup id
boolean isComponentInAjaxResponse = ajaxResponse.matches(".*<component id=\"" + markupId
@@ -916,9 +926,9 @@
/**
* Simulate that an AJAX event has been fired.
- *
+ *
* @see #executeAjaxEvent(Component, String)
- *
+ *
* @since 1.2.3
* @param componentPath
* The component path.
@@ -935,7 +945,7 @@
/**
* Simulate that an AJAX event has been fired. You add an AJAX event to a
* component by using:
- *
+ *
* <pre>
* ...
* component.add(new AjaxEventBehavior("ondblclick") {
@@ -943,25 +953,24 @@
* });
* ...
* </pre>
- *
+ *
* You can then test that the code inside onEvent actually does what it's
* supposed to, using the WicketTester:
- *
+ *
* <pre>
* ...
* tester.executeAjaxEvent(component, "ondblclick");
- *
* // Test that the code inside onEvent is correct.
* ...
* </pre>
- *
+ *
* This also works with AjaxFormSubmitBehavior, where it will "submit" the
* form before executing the command.
* <p>
* PLEASE NOTE! This method doesn't actually insert the component in the
* client DOM tree, using javascript.
- *
- *
+ *
+ *
* @param component
* The component which has the AjaxEventBehavior we wan't to
* test. If the component is null, the test will fail.
@@ -1000,7 +1009,7 @@
// If there haven't been found any event behaviors on the component
// which maches the parameters we fail.
failMessage = "No AjaxEventBehavior found on component: " + component.getId()
- + " which matches the event: " + event.toString();
+ + " which matches the event: " + event.toString();
notNull(failMessage, ajaxEventBehavior);
setupRequestAndResponse();
@@ -1022,7 +1031,7 @@
/**
* Get a TagTester based on a wicket:id. If more components exists with the
* same wicket:id in the markup only the first one is returned.
- *
+ *
* @param wicketId
* The wicket:id to search for.
* @return The TagTester for the tag which has the given wicket:id.
@@ -1036,7 +1045,7 @@
/**
* Get a TagTester based on an dom id. If more components exists with the
* same id in the markup only the first one is returned.
- *
+ *
* @param id
* The dom id to search for.
* @return The TagTester for the tag which has the given dom id.
@@ -1049,7 +1058,7 @@
/**
* Helper method for all the places where an AjaxCall should submit an
* associated form.
- *
+ *
* @param behavior
* The AjaxFormSubmitBehavior with the form to "submit"
*/
@@ -1113,14 +1122,16 @@
private void notNull(String message, Object object)
{
- if (object == null) {
+ if (object == null)
+ {
fail(message);
}
}
private Result isNull(String message, Object object)
{
- if (object != null) {
+ if (object != null)
+ {
return Result.fail(message);
}
return Result.pass();