Package org.apache.tapestry5.test
Class PageTester
java.lang.Object
org.apache.tapestry5.test.PageTester
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.
When using the PageTester in your tests, you should add the
org.apache.tapestry:tapestry-test-constants
module as a dependency.-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionPageTester
(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
Modifier and TypeMethodDescriptionSimulates a click on a link.clickLinkAndReturnResponse
(Element linkElement) Simulates a click on a link.clickSubmit
(Element submitButton, Map<String, String> fieldValues) Simulates a submission of the form by clicking the specified submit button.clickSubmitAndReturnResponse
(Element submitButton, Map<String, String> fieldValues) Simulates a submission of the form by clicking the specified submit button.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[]
Overridden in subclasses to provide additional module definitions beyond those normally located.renderPage
(String pageName) Renders a page specified by its name.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 fromRequest.getLocale()
.void
void
shutdown()
Invoke this method when done using the PageTester; it shuts down the internalRegistry
used by the tester.submitForm
(Element form, Map<String, String> parameters) Simulates a submission of the form specified.submitFormAndReturnResponse
(Element form, Map<String, String> parameters) Simulates a submission of the form specified.
-
Field Details
-
DEFAULT_CONTEXT_PATH
- See Also:
-
-
Constructor Details
-
PageTester
Initializes a PageTester without overriding any services and assuming that the context root is in src/main/webapp. -
PageTester
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 Details
-
provideExtraModuleDefs
Overridden in subclasses to provide additional module definitions beyond those normally located. This implementation returns an empty array. -
shutdown
Invoke this method when done using the PageTester; it shuts down the internalRegistry
used by the tester. -
getRegistry
Returns the Registry that was created for the application. -
getService
Allows a service to be retrieved via its service interface. UsegetRegistry()
for more complicated queries.- Parameters:
serviceInterface
- used to select the service
-
renderPage
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
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
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
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
-
setupRequestFromURI
-
submitForm
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
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
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
Sets the simulated browser's preferred language, i.e., the value returned fromRequest.getLocale()
.- Parameters:
preferedLanguage
- preferred language setting
-