org.apache.tapestry5.test
Class PageTester

java.lang.Object
  extended by org.apache.tapestry5.test.PageTester

public class PageTester
extends Object

This class is used to run a Tapestry app in a single-threaded, in-process testing environment. You can ask it to render a certain page and check the DOM object created. You can also ask it to click on a link element in the DOM object to get the next page. Because no servlet container is required, it is very fast and you can directly debug into your code in your IDE.


Field Summary
static String DEFAULT_CONTEXT_PATH
           
 
Constructor Summary
PageTester(String appPackage, String appName)
          Initializes a PageTester without overriding any services and assuming that the context root is in src/main/webapp.
PageTester(String appPackage, String appName, String contextPath, Class... moduleClasses)
          Initializes a PageTester that acts as a browser and a servlet container to test drive your Tapestry pages.
 
Method Summary
 Document clickLink(Element linkElement)
          Simulates a click on a link.
 TestableResponse clickLinkAndReturnResponse(Element linkElement)
          Simulates a click on a link.
 Document clickSubmit(Element submitButton, Map<String,String> fieldValues)
          Simulates a submission of the form by clicking the specified submit button.
 TestableResponse clickSubmitAndReturnResponse(Element submitButton, Map<String,String> fieldValues)
          Simulates a submission of the form by clicking the specified submit button.
 Registry getRegistry()
          Returns the Registry that was created for the application.
<T> T
getService(Class<T> serviceInterface)
          Allows a service to be retrieved via its service interface.
protected  ModuleDef[] provideExtraModuleDefs()
          Overridden in subclasses to provide additional module definitions beyond those normally located.
 Document renderPage(String pageName)
          Renders a page specified by its name.
 TestableResponse renderPageAndReturnResponse(String pageName)
          Renders a page specified by its name and returns the response.
 void setPreferedLanguage(Locale preferedLanguage)
          Sets the simulated browser's preferred language, i.e., the value returned from Request.getLocale().
 void shutdown()
          Invoke this method when done using the PageTester; it shuts down the internal Registry used by the tester.
 Document submitForm(Element form, Map<String,String> parameters)
          Simulates a submission of the form specified.
 TestableResponse submitFormAndReturnResponse(Element form, Map<String,String> parameters)
          Simulates a submission of the form specified.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_CONTEXT_PATH

public static final String DEFAULT_CONTEXT_PATH
See Also:
Constant Field Values
Constructor Detail

PageTester

public PageTester(String appPackage,
                  String appName)
Initializes a PageTester without overriding any services and assuming that the context root is in src/main/webapp.

See Also:
PageTester(String, String, String, Class[])

PageTester

public PageTester(String appPackage,
                  String appName,
                  String contextPath,
                  Class... moduleClasses)
Initializes a PageTester that acts as a browser and a servlet container to test drive your Tapestry pages.

Parameters:
appPackage - The same value you would specify using the tapestry.app-package context parameter. As this testing environment is not run in a servlet container, you need to specify it.
appName - The same value you would specify as the filter name. It is used to form the name of the module class for your app. If you don't have one, pass an empty string.
contextPath - The path to the context root so that Tapestry can find the templates (if they're put there).
moduleClasses - Classes of additional modules to load
Method Detail

provideExtraModuleDefs

protected ModuleDef[] provideExtraModuleDefs()
Overridden in subclasses to provide additional module definitions beyond those normally located. This implementation returns an empty array.


shutdown

public void shutdown()
Invoke this method when done using the PageTester; it shuts down the internal Registry used by the tester.


getRegistry

public Registry getRegistry()
Returns the Registry that was created for the application.


getService

public <T> T getService(Class<T> serviceInterface)
Allows a service to be retrieved via its service interface. Use getRegistry() for more complicated queries.

Parameters:
serviceInterface - used to select the service

renderPage

public Document renderPage(String pageName)
Renders a page specified by its name.

Parameters:
pageName - The name of the page to be rendered.
Returns:
The DOM created. Typically you will assert against it.

renderPageAndReturnResponse

public TestableResponse renderPageAndReturnResponse(String pageName)
Renders a page specified by its name and returns the response.

Parameters:
pageName - The name of the page to be rendered.
Returns:
The response object to assert against
Since:
5.2.3

clickLink

public Document clickLink(Element linkElement)
Simulates a click on a link.

Parameters:
linkElement - The Link object to be "clicked" on.
Returns:
The DOM created. Typically you will assert against it.

clickLinkAndReturnResponse

public TestableResponse clickLinkAndReturnResponse(Element linkElement)
Simulates a click on a link.

Parameters:
linkElement - The Link object to be "clicked" on.
Returns:
The response object to assert against
Since:
5.2.3

submitForm

public Document submitForm(Element form,
                           Map<String,String> parameters)
Simulates a submission of the form specified. The caller can specify values for the form fields, which act as overrides on the values stored inside the elements.

Parameters:
form - the form to be submitted.
parameters - the query parameter name/value pairs
Returns:
The DOM created. Typically you will assert against it.

submitFormAndReturnResponse

public TestableResponse submitFormAndReturnResponse(Element form,
                                                    Map<String,String> parameters)
Simulates a submission of the form specified. The caller can specify values for the form fields, which act as overrides on the values stored inside the elements.

Parameters:
form - the form to be submitted.
parameters - the query parameter name/value pairs
Returns:
The response object to assert against.
Since:
5.2.3

clickSubmit

public Document clickSubmit(Element submitButton,
                            Map<String,String> fieldValues)
Simulates a submission of the form by clicking the specified submit button. The caller can specify values for the form fields.

Parameters:
submitButton - the submit button to be clicked.
fieldValues - the field values keyed on field names.
Returns:
The DOM created. Typically you will assert against it.

clickSubmitAndReturnResponse

public TestableResponse clickSubmitAndReturnResponse(Element submitButton,
                                                     Map<String,String> fieldValues)
Simulates a submission of the form by clicking the specified submit button. The caller can specify values for the form fields.

Parameters:
submitButton - the submit button to be clicked.
fieldValues - the field values keyed on field names.
Returns:
The response object to assert against.
Since:
5.2.3

setPreferedLanguage

public void setPreferedLanguage(Locale preferedLanguage)
Sets the simulated browser's preferred language, i.e., the value returned from Request.getLocale().

Parameters:
preferedLanguage - preferred language setting


Copyright © 2003-2012 The Apache Software Foundation.