org.apache.tapestry5.test
Class AbstractIntegrationTestSuite

java.lang.Object
  extended by org.testng.Assert
      extended by org.apache.tapestry5.test.AbstractIntegrationTestSuite
All Implemented Interfaces:
com.thoughtworks.selenium.Selenium

public class AbstractIntegrationTestSuite
extends org.testng.Assert
implements com.thoughtworks.selenium.Selenium

A base class for creating integration tests. Ths encapsulates starting up an in-process copy of Jetty, and in-process copy of SeleniumServer, and a Selenium client.

Unless you are very, very clever, you will want to run the tests sequentially. TestNG tends to run them in an arbitrary order unless you explicitly set the order. If you have managed to get TestNG to run tests in parallel, you may see further problems caused by a single client jumping all over your web application in an unpredictable order.

This class implements the Selenium interface, and delegates all those methods to the DefaultSelenium instance it creates. It also extends the normal exception reporting for any failed command or query to produce a more detailed report to the main console.

See Also:
JettyRunner

Field Summary
static String BASE_URL
           
static String DEFAULT_WEB_APP_ROOT
          Default directory containing the web application to be tested (this conforms to Maven's default folder).
static String DEFAULT_WEB_BROWSER_COMMAND
          Default browser in which to run tests - firefox
static int JETTY_PORT
          The port on which the internal copy of Jetty is executed.
static String PAGE_LOAD_TIMEOUT
          15 seconds
static String SUBMIT
           
 
Constructor Summary
  AbstractIntegrationTestSuite()
          Initializes the suite using DEFAULT_WEB_APP_ROOT.
protected AbstractIntegrationTestSuite(String webAppRoot)
           
protected AbstractIntegrationTestSuite(String webAppRoot, String browserCommand)
           
 
Method Summary
 void addLocationStrategy(String strategyName, String functionDefinition)
           
 void addSelection(String locator, String optionLocator)
           
 void allowNativeXpath(String allow)
           
 void altKeyDown()
           
 void altKeyUp()
           
 void answerOnNextPrompt(String answer)
           
protected  void assertAttribute(String locator, String expected)
          Used when the locator identifies an attribute, not an element.
protected  void assertAttributeSeries(String idFormat, int startIndex, String... values)
           
protected  void assertFieldValue(String locator, String expected)
           
protected  void assertFieldValueSeries(String idFormat, int startIndex, String... values)
           
protected  void assertSourcePresent(String... expected)
           
protected  void assertText(String locator, String expected)
          Asserts the text of an element, identified by the locator.
protected  void assertTextPresent(String... text)
           
protected  void assertTextSeries(String idFormat, int startIndex, String... values)
           
 void assignId(String locator, String identifier)
           
 void attachFile(String fieldLocator, String fileLocator)
           
 void captureEntirePageScreenshot(String filename)
           
 void captureScreenshot(String filename)
           
 void check(String locator)
           
 void chooseCancelOnNextConfirmation()
           
 void chooseOkOnNextConfirmation()
           
 void cleanup()
           
 void click(String locator)
           
protected  void clickAndWait(String link)
           
 void clickAt(String locator, String coordString)
           
 void close()
           
 void contextMenu(String locator)
           
 void contextMenuAt(String locator, String coordString)
           
 void controlKeyDown()
           
 void controlKeyUp()
           
 void createCookie(String nameValuePair, String optionsString)
           
 void deleteAllVisibleCookies()
           
 void deleteCookie(String name, String optionsString)
           
 void doubleClick(String locator)
           
 void doubleClickAt(String locator, String coordString)
           
 void dragAndDrop(String locator, String movementsString)
           
 void dragAndDropToObject(String locatorOfObjectToBeDragged, String locatorOfDragDestinationObject)
           
 void dragdrop(String locator, String movementsString)
           
 void fireEvent(String locator, String eventName)
           
 void focus(String locator)
           
 String getAlert()
           
 String[] getAllButtons()
           
 String[] getAllFields()
           
 String[] getAllLinks()
           
 String[] getAllWindowIds()
           
 String[] getAllWindowNames()
           
 String[] getAllWindowTitles()
           
 String getAttribute(String attributeLocator)
           
 String[] getAttributeFromAllWindows(String attributeName)
           
 String getBodyText()
           
 String getConfirmation()
           
 String getCookie()
           
 String getCookieByName(String name)
           
 Number getCursorPosition(String locator)
           
 Number getElementHeight(String locator)
           
 Number getElementIndex(String locator)
           
 Number getElementPositionLeft(String locator)
           
 Number getElementPositionTop(String locator)
           
 Number getElementWidth(String locator)
           
 String getEval(String script)
           
 String getExpression(String expression)
           
 String getHtmlSource()
           
 String getLocation()
           
 Number getMouseSpeed()
           
 String getPrompt()
           
 String getSelectedId(String selectLocator)
           
 String[] getSelectedIds(String selectLocator)
           
 String getSelectedIndex(String selectLocator)
           
 String[] getSelectedIndexes(String selectLocator)
           
 String getSelectedLabel(String selectLocator)
           
 String[] getSelectedLabels(String selectLocator)
           
 String getSelectedValue(String selectLocator)
           
 String[] getSelectedValues(String selectLocator)
           
 String[] getSelectOptions(String selectLocator)
           
 String getSpeed()
           
 String getTable(String tableCellAddress)
           
 String getText(String locator)
           
 String getTitle()
           
 String getValue(String locator)
           
 boolean getWhetherThisFrameMatchFrameExpression(String currentFrameString, String target)
           
 boolean getWhetherThisWindowMatchWindowExpression(String currentWindowString, String target)
           
 Number getXpathCount(String xpath)
           
 void goBack()
           
 void highlight(String locator)
           
 void ignoreAttributesWithoutValue(String ignore)
           
 boolean isAlertPresent()
           
 boolean isChecked(String locator)
           
 boolean isConfirmationPresent()
           
 boolean isCookiePresent(String name)
           
 boolean isEditable(String locator)
           
 boolean isElementPresent(String locator)
           
 boolean isOrdered(String locator1, String locator2)
           
 boolean isPromptPresent()
           
 boolean isSomethingSelected(String selectLocator)
           
 boolean isTextPresent(String pattern)
           
 boolean isVisible(String locator)
           
 void keyDown(String locator, String keySequence)
           
 void keyDownNative(String keycode)
           
 void keyPress(String locator, String keySequence)
           
 void keyPressNative(String keycode)
           
 void keyUp(String locator, String keySequence)
           
 void keyUpNative(String keycode)
           
 void metaKeyDown()
           
 void metaKeyUp()
           
 void mouseDown(String locator)
           
 void mouseDownAt(String locator, String coordString)
           
 void mouseMove(String locator)
           
 void mouseMoveAt(String locator, String coordString)
           
 void mouseOut(String locator)
           
 void mouseOver(String locator)
           
 void mouseUp(String locator)
           
 void mouseUpAt(String locator, String coordString)
           
 void open(String url)
           
 void openWindow(String url, String windowID)
           
 void refresh()
           
 void removeAllSelections(String locator)
           
 void removeSelection(String locator, String optionLocator)
           
 void runScript(String script)
           
 void select(String selectLocator, String optionLocator)
           
 void selectFrame(String locator)
           
 void selectWindow(String windowID)
           
 void setBrowserLogLevel(String logLevel)
           
 void setContext(String context)
           
 void setCursorPosition(String locator, String position)
           
 void setMouseSpeed(String pixels)
           
 void setSpeed(String value)
           
 void setTimeout(String timeout)
           
 void setup()
           
 void shiftKeyDown()
           
 void shiftKeyUp()
           
 void shutDownSeleniumServer()
           
 void start()
           
protected  void start(String... linkText)
          Used to start a typical test, by opening to the base URL and clicking through a series of links.
 void stop()
           
 void submit(String formLocator)
           
 void type(String locator, String value)
           
 void typeKeys(String locator, String value)
           
 void uncheck(String locator)
           
 void waitForCondition(String script, String timeout)
           
 void waitForFrameToLoad(String frameAddress, String timeout)
           
 void waitForPageToLoad()
          Waits the default time for the page to load.
 void waitForPageToLoad(String timeout)
           
 void waitForPopUp(String windowID, String timeout)
           
 void windowFocus()
           
 void windowMaximize()
           
 
Methods inherited from class org.testng.Assert
assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEqualsNoOrder, assertEqualsNoOrder, assertFalse, assertFalse, assertNotNull, assertNotNull, assertNotSame, assertNotSame, assertNull, assertNull, assertSame, assertSame, assertTrue, assertTrue, fail, fail, fail
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_WEB_APP_ROOT

public static final String DEFAULT_WEB_APP_ROOT
Default directory containing the web application to be tested (this conforms to Maven's default folder).

See Also:
Constant Field Values

DEFAULT_WEB_BROWSER_COMMAND

public static final String DEFAULT_WEB_BROWSER_COMMAND
Default browser in which to run tests - firefox

See Also:
Constant Field Values

PAGE_LOAD_TIMEOUT

public static final String PAGE_LOAD_TIMEOUT
15 seconds

See Also:
Constant Field Values

JETTY_PORT

public static final int JETTY_PORT
The port on which the internal copy of Jetty is executed.

See Also:
Constant Field Values

BASE_URL

public static final String BASE_URL

SUBMIT

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

AbstractIntegrationTestSuite

public AbstractIntegrationTestSuite()
Initializes the suite using DEFAULT_WEB_APP_ROOT.


AbstractIntegrationTestSuite

protected AbstractIntegrationTestSuite(String webAppRoot)
Parameters:
webAppRoot - the directory containing the web application to be tested.

AbstractIntegrationTestSuite

protected AbstractIntegrationTestSuite(String webAppRoot,
                                       String browserCommand)
Parameters:
webAppRoot - web application root (default src/main/webapp)
browserCommand - browser command to pass to selenium. Default is *firefox, syntax for custom browsers is *custom <path_to_browser>, e.g. *custom /usr/lib/mozilla-firefox/firefox
Method Detail

assertSourcePresent

protected final void assertSourcePresent(String... expected)

assertAttribute

protected final void assertAttribute(String locator,
                                     String expected)
Used when the locator identifies an attribute, not an element.

Parameters:
locator - identifies the attribute whose value is to be asserted
expected - expected value for the attribute

assertText

protected final void assertText(String locator,
                                String expected)
Asserts the text of an element, identified by the locator.

Parameters:
locator - identifies the element whose text value is to be asserted
expected - expected value for the element's text

assertTextPresent

protected final void assertTextPresent(String... text)

assertFieldValue

protected final void assertFieldValue(String locator,
                                      String expected)

clickAndWait

protected final void clickAndWait(String link)

assertTextSeries

protected final void assertTextSeries(String idFormat,
                                      int startIndex,
                                      String... values)

assertAttributeSeries

protected final void assertAttributeSeries(String idFormat,
                                           int startIndex,
                                           String... values)

assertFieldValueSeries

protected final void assertFieldValueSeries(String idFormat,
                                            int startIndex,
                                            String... values)

cleanup

public void cleanup()
             throws Exception
Throws:
Exception

setup

public void setup()
           throws Exception
Throws:
Exception

start

public void start()
Specified by:
start in interface com.thoughtworks.selenium.Selenium

stop

public void stop()
Specified by:
stop in interface com.thoughtworks.selenium.Selenium

click

public void click(String locator)
Specified by:
click in interface com.thoughtworks.selenium.Selenium

doubleClick

public void doubleClick(String locator)
Specified by:
doubleClick in interface com.thoughtworks.selenium.Selenium

contextMenu

public void contextMenu(String locator)
Specified by:
contextMenu in interface com.thoughtworks.selenium.Selenium

clickAt

public void clickAt(String locator,
                    String coordString)
Specified by:
clickAt in interface com.thoughtworks.selenium.Selenium

doubleClickAt

public void doubleClickAt(String locator,
                          String coordString)
Specified by:
doubleClickAt in interface com.thoughtworks.selenium.Selenium

contextMenuAt

public void contextMenuAt(String locator,
                          String coordString)
Specified by:
contextMenuAt in interface com.thoughtworks.selenium.Selenium

fireEvent

public void fireEvent(String locator,
                      String eventName)
Specified by:
fireEvent in interface com.thoughtworks.selenium.Selenium

focus

public void focus(String locator)
Specified by:
focus in interface com.thoughtworks.selenium.Selenium

keyPress

public void keyPress(String locator,
                     String keySequence)
Specified by:
keyPress in interface com.thoughtworks.selenium.Selenium

shiftKeyDown

public void shiftKeyDown()
Specified by:
shiftKeyDown in interface com.thoughtworks.selenium.Selenium

shiftKeyUp

public void shiftKeyUp()
Specified by:
shiftKeyUp in interface com.thoughtworks.selenium.Selenium

metaKeyDown

public void metaKeyDown()
Specified by:
metaKeyDown in interface com.thoughtworks.selenium.Selenium

metaKeyUp

public void metaKeyUp()
Specified by:
metaKeyUp in interface com.thoughtworks.selenium.Selenium

altKeyDown

public void altKeyDown()
Specified by:
altKeyDown in interface com.thoughtworks.selenium.Selenium

altKeyUp

public void altKeyUp()
Specified by:
altKeyUp in interface com.thoughtworks.selenium.Selenium

controlKeyDown

public void controlKeyDown()
Specified by:
controlKeyDown in interface com.thoughtworks.selenium.Selenium

controlKeyUp

public void controlKeyUp()
Specified by:
controlKeyUp in interface com.thoughtworks.selenium.Selenium

keyDown

public void keyDown(String locator,
                    String keySequence)
Specified by:
keyDown in interface com.thoughtworks.selenium.Selenium

keyUp

public void keyUp(String locator,
                  String keySequence)
Specified by:
keyUp in interface com.thoughtworks.selenium.Selenium

mouseOver

public void mouseOver(String locator)
Specified by:
mouseOver in interface com.thoughtworks.selenium.Selenium

mouseOut

public void mouseOut(String locator)
Specified by:
mouseOut in interface com.thoughtworks.selenium.Selenium

mouseDown

public void mouseDown(String locator)
Specified by:
mouseDown in interface com.thoughtworks.selenium.Selenium

mouseDownAt

public void mouseDownAt(String locator,
                        String coordString)
Specified by:
mouseDownAt in interface com.thoughtworks.selenium.Selenium

mouseUp

public void mouseUp(String locator)
Specified by:
mouseUp in interface com.thoughtworks.selenium.Selenium

mouseUpAt

public void mouseUpAt(String locator,
                      String coordString)
Specified by:
mouseUpAt in interface com.thoughtworks.selenium.Selenium

mouseMove

public void mouseMove(String locator)
Specified by:
mouseMove in interface com.thoughtworks.selenium.Selenium

mouseMoveAt

public void mouseMoveAt(String locator,
                        String coordString)
Specified by:
mouseMoveAt in interface com.thoughtworks.selenium.Selenium

type

public void type(String locator,
                 String value)
Specified by:
type in interface com.thoughtworks.selenium.Selenium

typeKeys

public void typeKeys(String locator,
                     String value)
Specified by:
typeKeys in interface com.thoughtworks.selenium.Selenium

setSpeed

public void setSpeed(String value)
Specified by:
setSpeed in interface com.thoughtworks.selenium.Selenium

getSpeed

public String getSpeed()
Specified by:
getSpeed in interface com.thoughtworks.selenium.Selenium

check

public void check(String locator)
Specified by:
check in interface com.thoughtworks.selenium.Selenium

uncheck

public void uncheck(String locator)
Specified by:
uncheck in interface com.thoughtworks.selenium.Selenium

select

public void select(String selectLocator,
                   String optionLocator)
Specified by:
select in interface com.thoughtworks.selenium.Selenium

addSelection

public void addSelection(String locator,
                         String optionLocator)
Specified by:
addSelection in interface com.thoughtworks.selenium.Selenium

removeSelection

public void removeSelection(String locator,
                            String optionLocator)
Specified by:
removeSelection in interface com.thoughtworks.selenium.Selenium

removeAllSelections

public void removeAllSelections(String locator)
Specified by:
removeAllSelections in interface com.thoughtworks.selenium.Selenium

submit

public void submit(String formLocator)
Specified by:
submit in interface com.thoughtworks.selenium.Selenium

open

public void open(String url)
Specified by: