JBoss Rich Faces SVN: r15325 - in branches/community/3.3.X/samples/richfaces-demo/functional-test: src and 133 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: prabhat.jha(a)jboss.com
Date: 2009-08-26 12:28:57 -0400 (Wed, 26 Aug 2009)
New Revision: 15325
Added:
branches/community/3.3.X/samples/richfaces-demo/functional-test/README.txt
branches/community/3.3.X/samples/richfaces-demo/functional-test/pom.xml
branches/community/3.3.X/samples/richfaces-demo/functional-test/profiles.xml
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/main/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/main/java/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/main/java/org/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/main/java/org/jboss/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/main/java/org/jboss/richfaces/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/main/java/org/jboss/richfaces/integrationTest/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/AbstractDataIterationTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/AbstractSeleniumRichfacesTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/actionParameter/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/actionParameter/ActionParameterTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/ajaxForm/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/ajaxForm/AjaxFormTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/ajaxRegion/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/ajaxRegion/AjaxRegionTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/ajaxSupport/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/ajaxSupport/AjaxSupportTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/ajaxValidator/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/ajaxValidator/AbstractAjaxValidatorTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/ajaxValidator/AjaxValidatorHibernatePartTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/ajaxValidator/AjaxValidatorTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/beanValidator/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/beanValidator/BeanValidatorTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/calendar/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/calendar/CalendarStylingTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/calendar/CalendarTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/calendar/OrganizerTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/colorPicker/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/colorPicker/ColorPickerTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/columns/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/columns/ColumnsTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/comboBox/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/comboBox/ComboBoxTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/commandButton/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/commandButton/CommandButtonTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/commandLink/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/commandLink/CommandLinkTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/contextMenu/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/contextMenu/ContextMenuImageTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/contextMenu/ContextMenuTableTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/dataFilterSlider/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/dataFilterSlider/DataFilterSliderTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/dataGrid/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/dataGrid/DataGridTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/dataList/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/dataList/DataListTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/dataScroller/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/dataScroller/DataScrollerTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/dataTable/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/dataTable/DataTableTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/dataTable/TableFilteringTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/dataTable/TableSortingTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/dragSupport/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/dragSupport/DragSupportTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/dropDownMenu/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/dropDownMenu/HorizontalMenuTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/editor/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/editor/AdvancedEditorTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/editor/SimpleEditorTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/extendedDataTable/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/extendedDataTable/ExtendedDataTableTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/fileUpload/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/fileUpload/FileUploadTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/graphValidator/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/graphValidator/GraphValidatorAfterModelUpdateTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/graphValidator/GraphValidatorTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/include/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/include/IncludeTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/inplaceInput/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/inplaceInput/InplaceInputTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/inplaceSelect/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/inplaceSelect/InplaceSelectTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/inputNumberSlider/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/inputNumberSlider/InputNumberSliderTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/jsFunction/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/jsFunction/JSFunctionTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/keepAlive/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/keepAlive/KeepAliveTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/listShuttle/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/listShuttle/ListShuttleTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/log/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/log/LogTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/mediaOutput/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/mediaOutput/MediaOutputTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/modalPanel/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/modalPanel/ModalPanelTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/orderingList/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/orderingList/OrderingListTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/outputPanel/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/outputPanel/OutputPanelTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/paint2d/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/paint2d/Paint2DTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/panel/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/panel/PanelCustomizationTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/panel/PanelTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/panelBar/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/panelBar/PanelBarTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/panelMenu/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/panelMenu/PanelMenuTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/pickList/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/pickList/PickListTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/poll/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/poll/PollTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/progressBar/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/progressBar/ProgressBarTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/push/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/push/PushTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/queue/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/queue/QueueSettingsTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/queue/QueueTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/repeat/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/repeat/RepeatTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/script/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/script/ScriptTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/separator/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/separator/SeparatorTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/simpleTogglePanel/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/simpleTogglePanel/SimpleTogglePanelTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/spacer/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/spacer/SpacerTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/spinner/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/spinner/SpinnerTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/status/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/status/StatusTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/style/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/style/StyleTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/suggestionBox/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/suggestionBox/SuggestionBoxTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/tabPanel/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/tabPanel/TabPanelTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/togglePanel/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/togglePanel/TogglePanelTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/toolBar/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/toolBar/ToolBarTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/tooltip/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/tooltip/TooltipDataTableTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/tooltip/TooltipTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/tree/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/tree/TreeNodesAdaptorTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/tree/TreeTestCase.java
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/profiles/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/profiles/mac/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/profiles/mac/testng.xml
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/profiles/unix/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/profiles/unix/testng.xml
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/profiles/windows/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/profiles/windows/testng.xml
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/actionParameter/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/actionParameter/locators.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/actionParameter/messages.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/ajaxForm/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/ajaxForm/locators.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/ajaxForm/messages.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/ajaxRegion/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/ajaxRegion/locators.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/ajaxRegion/messages.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/ajaxSupport/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/ajaxSupport/locators.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/ajaxSupport/messages.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/ajaxValidator/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/ajaxValidator/locators.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/ajaxValidator/messages.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/beanValidator/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/beanValidator/locators.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/beanValidator/messages.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/calendar/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/calendar/locators.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/calendar/messages.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/colorPicker/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/colorPicker/locators.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/colorPicker/messages.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/columns/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/columns/locators.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/columns/messages.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/commandButton/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/commandButton/locators.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/commandButton/messages.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/commandLink/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/commandLink/locators.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/commandLink/messages.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/contextMenu/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/contextMenu/locators.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/contextMenu/messages.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/data-iteration--locators.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/data-iteration--messages.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/dataFilterSlider/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/dataFilterSlider/locators.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/dataFilterSlider/messages.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/dataGrid/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/dataGrid/locators.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/dataGrid/messages.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/dataList/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/dataList/locators.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/dataList/messages.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/dataScroller/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/dataScroller/locators.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/dataScroller/messages.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/dataTable/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/dataTable/locators.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/dataTable/messages.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/dragSupport/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/dragSupport/locators.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/dragSupport/messages.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/editor/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/editor/locators.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/editor/messages.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/extendedDataTable/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/extendedDataTable/locators.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/extendedDataTable/messages.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/fileUpload/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/fileUpload/locators.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/fileUpload/messages.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/graphValidator/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/graphValidator/locators.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/graphValidator/messages.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/include/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/include/locators.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/include/messages.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/inplaceInput/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/inplaceInput/locators.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/inplaceInput/messages.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/inplaceSelect/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/inplaceSelect/locators.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/inplaceSelect/messages.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/inputNumberSlider/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/inputNumberSlider/locators.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/inputNumberSlider/messages.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/jsFunction/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/jsFunction/locators.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/jsFunction/messages.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/keepAlive/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/keepAlive/locators.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/keepAlive/messages.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/log/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/log/locators.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/log/messages.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/mediaOutput/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/mediaOutput/locators.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/mediaOutput/messages.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/modalPanel/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/modalPanel/locators.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/modalPanel/messages.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/outputPanel/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/outputPanel/locators.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/outputPanel/messages.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/paint2d/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/paint2d/locators.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/paint2d/messages.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/panel/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/panel/locators.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/panel/messages.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/panelBar/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/panelBar/locators.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/panelBar/messages.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/panelMenu/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/panelMenu/locators.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/panelMenu/messages.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/poll/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/poll/locators.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/poll/messages.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/progressBar/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/progressBar/locators.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/progressBar/messages.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/push/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/push/locators.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/push/messages.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/queue/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/queue/locators.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/queue/messages.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/repeat/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/repeat/locators.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/repeat/messages.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/script/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/script/locators.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/script/messages.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/separator/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/separator/locators.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/separator/messages.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/simpleTogglePanel/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/simpleTogglePanel/locators.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/simpleTogglePanel/messages.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/spacer/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/spacer/locators.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/spacer/messages.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/status/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/status/locators.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/status/messages.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/style/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/style/locators.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/style/messages.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/suggestionBox/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/suggestionBox/locators.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/suggestionBox/messages.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/tabPanel/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/tabPanel/locators.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/tabPanel/messages.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/togglePanel/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/togglePanel/locators.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/togglePanel/messages.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/toolBar/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/toolBar/locators.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/toolBar/messages.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/tooltip/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/tooltip/locators.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/tooltip/messages.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/tree/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/tree/locators.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/tree/messages.properties
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/user-extensions/
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/user-extensions/rfqa-extensions.js
Log:
import of demo selenium tests from internal svn repo
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/README.txt
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/README.txt (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/README.txt 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,46 @@
+1) Build environment
+
+Needs third-party library selenium-testing-lib library.
+
+You can obtain it from https://svn.devel.redhat.com/repos/jboss-qa/wfk/trunk/selenium-testing-lib
+(until it is available from maven repositories).
+
+Install it into your local maven repository.
+
+
+2) Running tests
+
+It's necessary to have running web/app server with richfaces-demo deployed on it.
+
+To run tests, you have to set up Maven's property called "browser" which contains browser
+type and path to its binary if needed. You can specify application's context by setting Maven properties
+named "context.root" and "context.path".
+
+To set them, either edit profiles.xml or pass runtime arguments to maven, e.g.
+ mvn install -Dbrowser=*firefox
+ mvn install -Dbrowser="*firefox /usr/lib/firefox-3.5.2/firefox"
+ mvn install -Dbrowser=*iexplore -Dcontext.root=http://localhost:8080/ -Dcontext.path=/richfaces-demo
+
+Default values are set in pom.xml.
+
+
+3) Profiles
+
+Since some tests might not be runnable on some platforms, there are separate testng.xml files in
+src/test/profiles for each platform (unix/windows/mac).
+
+
+4) Properties files
+
+The majority of locators and assert values used in test are externalized in *.properties files. You can find
+all string belonging to the class in src/test/resources/packagename/locators.properties or
+src/test/resources/packagename/messages.properties.
+
+
+5) Generating testng.xml
+
+$ find -name "*.java" | grep -v Abstract | sort | tr '/' '.' | sed -r 's#^..(.*).java$#<test name="\1">\n\t<classes>\n\t\t<class name="\1" />\n\t</classes>\n</test>\n#'
+
+
+
+
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/pom.xml
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/pom.xml (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/pom.xml 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,249 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.jboss.richfaces.integrationTest</groupId>
+ <artifactId>selenium-test</artifactId>
+ <packaging>jar</packaging>
+ <version>1.0-SNAPSHOT</version>
+ <name>selenium-test</name>
+ <url>http://maven.apache.org</url>
+ <repositories>
+ <repository>
+ <id>openqa</id>
+ <name>OpenQA Repository</name>
+ <url>http://archiva.openqa.org/repository/releases</url>
+ <layout>default</layout>
+ <snapshots>
+ <enabled>false</enabled>
+ </snapshots>
+ <releases>
+ <enabled>true</enabled>
+ </releases>
+ </repository>
+ </repositories>
+ <pluginRepositories>
+ <pluginRepository>
+ <id>codehaus.org</id>
+ <name>CodeHaus Plugin Snapshots</name>
+ <url>http://snapshots.repository.codehaus.org</url>
+ <releases>
+ <enabled>false</enabled>
+ </releases>
+ <snapshots>
+ <enabled>true</enabled>
+ </snapshots>
+ </pluginRepository>
+ </pluginRepositories>
+ <properties>
+ <resources.dir>${project.build.directory}/test-classes</resources.dir>
+ <extensions.dir>${resources.dir}/user-extensions</extensions.dir>
+ <browser></browser>
+ <context.root>http://localhost:8080/</context.root>
+ <context.path>/richfaces-demo</context.path>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ <selenium.port>8444</selenium.port>
+ </properties>
+ <build>
+ <finalName>seleniumTest</finalName>
+ <testResources>
+ <testResource>
+ <directory>src/test/profiles/${os.family}</directory>
+ <filtering>true</filtering>
+ </testResource>
+ <testResource>
+ <directory>src/test/resources</directory>
+ <includes>
+ <include>**/*.properties</include>
+ </includes>
+ </testResource>
+ <testResource>
+ <directory>src/test/resources/user-extensions</directory>
+ <targetPath>user-extensions</targetPath>
+ <includes>
+ <include>**/*.js</include>
+ </includes>
+ </testResource>
+ </testResources>
+ <plugins>
+ <plugin>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>1.5</source>
+ <target>1.5</target>
+ </configuration>
+ </plugin>
+ <plugin>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>unpack-user-extensions</id>
+ <phase>generate-test-resources</phase>
+ <goals>
+ <goal>unpack-dependencies</goal>
+ </goals>
+ <configuration>
+ <includeGroupIds>org.jboss.test</includeGroupIds>
+ <includeArtifactIds>selenium</includeArtifactIds>
+ <includes>jbossqa-extensions.js</includes>
+ <outputDirectory>${extensions.dir}</outputDirectory>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>concatenate-extensions</id>
+ <phase>process-test-resources</phase>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ <configuration>
+ <tasks>
+ <concat destfile="${resources.dir}/custom-extensions.js"
+ fixlastline="yes">
+ <!-- space-separated list of files -->
+ <filelist dir="${extensions.dir}"
+ files="jbossqa-extensions.js rfqa-extensions.js" />
+ </concat>
+ <delete dir="${project.build.directory}/test-classes/user-extensions" />
+ </tasks>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>2.4.3</version>
+ <configuration>
+ <!--
+ Skip the normal tests, we'll run them in the integration-test
+ phase
+ -->
+ <skip>true</skip>
+ </configuration>
+ <executions>
+ <execution>
+ <phase>integration-test</phase>
+ <goals>
+ <goal>test</goal>
+ </goals>
+ <configuration>
+ <skip>false</skip>
+ <suiteXmlFiles>
+ <suiteXmlFile>${resources.dir}/testng.xml</suiteXmlFile>
+ </suiteXmlFiles>
+ <argLine>-Dbrowser='${browser}' -Dcontext.root='${context.root}' -Dcontext.path='${context.path}' -Dselenium.port='${selenium.port}'</argLine>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ <profiles>
+ <profile>
+ <id>integration-test</id>
+ <activation>
+ <property>
+ <name>!maven.test.skip</name>
+ </property>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>selenium-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <phase>pre-integration-test</phase>
+ <goals>
+ <goal>start-server</goal>
+ </goals>
+ <configuration>
+ <background>true</background>
+ <debug>false</debug>
+ <port>${selenium.port}</port>
+ <userExtensions>${resources.dir}/custom-extensions.js</userExtensions>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>unix</id>
+ <activation>
+ <os>
+ <family>unix</family>
+ </os>
+ </activation>
+ <properties>
+ <os.family>unix</os.family>
+ </properties>
+ </profile>
+ <profile>
+ <id>windows</id>
+ <activation>
+ <os>
+ <family>windows</family>
+ </os>
+ </activation>
+ <properties>
+ <os.family>windows</os.family>
+ </properties>
+ </profile>
+ <profile>
+ <id>mac</id>
+ <activation>
+ <os>
+ <family>mac</family>
+ </os>
+ </activation>
+ <properties>
+ <os.family>mac</os.family>
+ </properties>
+ </profile>
+ </profiles>
+ <dependencies>
+ <dependency>
+ <groupId>org.testng</groupId>
+ <artifactId>testng</artifactId>
+ <version>5.8</version>
+ <scope>test</scope>
+ <classifier>jdk15</classifier>
+ </dependency>
+ <dependency>
+ <groupId>org.seleniumhq.selenium.client-drivers</groupId>
+ <artifactId>selenium-java-client-driver</artifactId>
+ <version>1.0.1</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.seleniumhq.selenium.server</groupId>
+ <artifactId>selenium-server-coreless</artifactId>
+ <version>1.0.1</version>
+ <scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>jetty</groupId>
+ <artifactId>org.mortbay.jetty</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.test</groupId>
+ <artifactId>selenium</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ <version>2.4</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+</project>
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/profiles.xml
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/profiles.xml (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/profiles.xml 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,33 @@
+<profilesXml xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
+ http://maven.apache.org/xsd/settings-1.0.0.xsd">
+ <profiles>
+ <profile>
+ <id>localEnvironment</id>
+ <!-- set local environment specific properties here -->
+ <properties>
+ <!-- *** browser: the type of web browser (and path to its binary if needed) -->
+ <!--<browser>*firefox</browser>-->
+ <!--<browser>*firefox /usr/lib/firefox-3.5.2/firefox</browser>-->
+ <!--<browser>*chrome</browser>-->
+ <!--<browser>*chrome /usr/lib/firefox-3.5.2/firefox</browser>-->
+ <!--<browser>*iexplore</browser>-->
+ <!--<browser>*iexplore c:\\program files\\internet explorer\\iexplore.exe</browser>-->
+ <!--<browser>*konqueror /usr/bin/konqueror</browser>-->
+ <!--<browser>*safari</browser>-->
+
+ <!--*** context.root: HTTP protocol URL to testing server ***-->
+ <!--<context.root>http://localhost:8080/</context.root>-->
+
+ <!--*** context.path: Context root of application in context of server ***-->
+ <!--<context.path>/richfaces-demo</context.path>-->
+
+ <!--*** selenium.port: specifies on which port should run selenium server (default: 8444) ***-->
+ <!--<selenium.port>8446</selenium.port>-->
+ </properties>
+ </profile>
+ </profiles>
+ <activeProfiles>
+ <activeProfile>localEnvironment</activeProfile>
+ </activeProfiles>
+</profilesXml>
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/AbstractDataIterationTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/AbstractDataIterationTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/AbstractDataIterationTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,146 @@
+package org.jboss.richfaces.integrationTest;
+
+import java.util.Properties;
+
+import org.jboss.test.selenium.waiting.Condition;
+import org.jboss.test.selenium.waiting.Wait;
+import org.testng.Assert;
+
+/**
+ * @author <a href="mailto:lfryc@redhat.com">Lukas Fryc</a>
+ * @version $Revision$
+ */
+public class AbstractDataIterationTestCase extends
+ AbstractSeleniumRichfacesTestCase {
+
+ protected Properties getMessagesProperties() {
+ Properties childProperties = super.getMessagesProperties();
+ Properties dataIterationCommonProperties = getNamedPropertiesForClass(
+ AbstractSeleniumRichfacesTestCase.class,
+ "data-iteration--messages");
+ dataIterationCommonProperties.putAll(childProperties);
+ return dataIterationCommonProperties;
+ }
+
+ protected Properties getLocatorsProperties() {
+ Properties childProperties = super.getLocatorsProperties();
+ Properties dataIterationCommonProperties = getNamedPropertiesForClass(
+ AbstractSeleniumRichfacesTestCase.class,
+ "data-iteration--locators");
+ dataIterationCommonProperties.putAll(childProperties);
+ return dataIterationCommonProperties;
+ }
+
+ protected final String table = getLoc("data-table-common--table");
+ protected final String buttonFirstPage = getLoc("data-scroller--button--first-page");
+ protected final String buttonLastPage = getLoc("data-scroller--button--last-page");
+ protected final String buttonNextPage = getLoc("data-scroller--button--next-page");
+ protected final String buttonPreviousPage = getLoc("data-scroller--button--previous-page");
+ protected final String buttonPagePreformatted = getLoc("data-scroller--button--numbered-page-preformatted");
+ protected final String outputActivePage = getLoc("data-scroller--output--active-page");
+
+ protected void gotoPage(String button) {
+ final String previousPage = getActivePage().toString();
+ if (previousPage.equals(selenium.getText(button))) {
+ return;
+ }
+ if (previousPage.equals("1")
+ && (buttonFirstPage.equals(button) || buttonPreviousPage
+ .equals(button))) {
+ return;
+ }
+ if (previousPage.equals(getLastVisiblePage().toString())
+ && (buttonLastPage.equals(button) || buttonNextPage
+ .equals(button))) {
+ return;
+ }
+ selenium.click(button);
+ Wait.until(new Condition() {
+ public boolean isTrue() {
+ return !previousPage.equals(getActivePage().toString());
+ }
+ });
+ }
+
+ protected Integer getActivePage() {
+ return Integer.valueOf(selenium.getText(outputActivePage));
+ }
+
+ protected Integer getLastVisiblePage() {
+ Number pages = selenium
+ .getXpathCount(format(buttonPagePreformatted, 0));
+ String lastVisiblePage = selenium.getText(format(
+ buttonPagePreformatted, pages));
+ return Integer.valueOf(lastVisiblePage);
+ }
+
+ protected String getTableText() {
+ return selenium.getText(table);
+ }
+
+ protected void checkSorting(String columnPreformatted) {
+ checkSortingForColumnOrder(columnPreformatted);
+ }
+
+ protected void checkSortingForColumnOrder(String... columnsPreformatted) {
+ final boolean navigationEnabled = selenium
+ .isElementPresent(buttonFirstPage);
+
+ if (navigationEnabled)
+ gotoPage(buttonFirstPage);
+
+ final int columns = columnsPreformatted.length;
+
+ String[] lastText = new String[columns];
+ Boolean[] sortedAscending = new Boolean[columns];
+
+ while ((!navigationEnabled && lastText[0] == null)
+ || (navigationEnabled && getActivePage() < getLastVisiblePage())) {
+ if (navigationEnabled && lastText[0] != null) {
+ gotoPage(buttonNextPage);
+ }
+
+ final int rows = selenium.getXpathCount(
+ format(columnsPreformatted[0], 0)).intValue();
+
+ for (int row = 1; row <= rows; row++) {
+ for (int column = 0; column < columns; column++) {
+ String text = selenium.getText(format(
+ columnsPreformatted[column], row));
+ if (lastText[column] != null) {
+ int comparison = text.compareTo(lastText[column]);
+ try {
+ Double number = Double.parseDouble(text);
+ Double lastNumber = Double
+ .parseDouble(lastText[column]);
+ comparison = number.compareTo(lastNumber);
+ } catch (NumberFormatException e) {
+ }
+ if (sortedAscending[column] == null) {
+ if (comparison > 0) {
+ sortedAscending[column] = true;
+ break;
+ } else if (comparison < 0) {
+ sortedAscending[column] = false;
+ break;
+ }
+ } else {
+ if (sortedAscending[column]) {
+ if (comparison < 0) {
+ Assert.fail();
+ }
+ break;
+ } else {
+ if (comparison > 0) {
+ Assert.fail();
+ }
+ break;
+ }
+ }
+ }
+ lastText[column] = text;
+ }
+ }
+ }
+ }
+}
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/AbstractSeleniumRichfacesTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/AbstractSeleniumRichfacesTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/AbstractSeleniumRichfacesTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,461 @@
+package org.jboss.richfaces.integrationTest;
+
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertFalse;
+import static org.testng.Assert.assertTrue;
+
+import java.util.Properties;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import org.jboss.test.selenium.AbstractSeleniumTestCase;
+import org.jboss.test.selenium.waiting.Condition;
+import org.jboss.test.selenium.waiting.Wait;
+import org.jboss.test.selenium.waiting.Wait.Waiting;
+import org.testng.ITestContext;
+import org.testng.ITestListener;
+import org.testng.ITestResult;
+import org.testng.TestRunner;
+import org.testng.annotations.AfterClass;
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.BeforeTest;
+import org.testng.annotations.Parameters;
+
+import com.thoughtworks.selenium.DefaultSelenium;
+
+/**
+ *
+ * @author <a href="mailto:lfryc@redhat.com">Lukas Fryc</a>, <a
+ * href="mailto:pjha@redhat.com">Prabhat Jha</a>
+ * @version $Revision$
+ *
+ */
+
+public class AbstractSeleniumRichfacesTestCase extends AbstractSeleniumTestCase {
+
+ /**
+ * context root can be used to obtaining full URL paths, is set to actual
+ * tested application's context root
+ */
+ protected String contextRoot;
+
+ /**
+ * ContextPath will be used to retrieve pages from right URL. Don't hesitate
+ * to use it in cases of building absolute URLs.
+ */
+ protected String contextPath;
+
+ /**
+ * predefined waitings to use in inheritors
+ */
+ protected Waiting waitModelUpdate = Wait.interval(100).timeout(10000);
+
+ /**
+ * Initializes context before each class run.
+ *
+ * Parameters will be obtained from TestNG.
+ *
+ * @param contextRoot
+ * server's context root, e.g. http://localhost:8080/
+ * @param contextPath
+ * context path to application in context of server's root (e.g.
+ * /myapp)
+ * @param browser
+ * used browser (e.g. "*firefox", see selenium reference API)
+ * @param seleniumPort
+ * specifies on which port should selenium server run
+ */
+ @BeforeClass
+ @Parameters( { "context.root", "context.path", "browser", "selenium.port" })
+ public void initializeContext(String contextRoot, String contextPath, String browser, String seleniumPort) {
+ this.contextRoot = contextRoot;
+ this.contextPath = contextPath;
+ selenium = new DefaultSelenium("localhost", Integer.valueOf(seleniumPort), browser, contextRoot);
+ selenium.start();
+ allowInitialXpath();
+ }
+
+ protected void allowInitialXpath() {
+ selenium.allowNativeXpath("false");
+ }
+
+ /**
+ * Finalize context after each class run.
+ */
+ @AfterClass
+ public void finalizeContext() {
+ selenium.stop();
+ selenium = null;
+ contextPath = null;
+ }
+
+ /**
+ * Default implementation of obtaining properties for each class.
+ *
+ * @see AbstractSeleniumTestCase (method getLoc(String,String))
+ */
+ @Override
+ protected Properties getLocatorsProperties() {
+ return getNamedPropertiesForClass(this.getClass(), "locators");
+ }
+
+ /**
+ * Default implementation of obtaining properties for each class.
+ *
+ * @see AbstractSeleniumTestCase (method getMess(String,String))
+ */
+ @Override
+ protected Properties getMessagesProperties() {
+ return getNamedPropertiesForClass(this.getClass(), "messages");
+ }
+
+ /**
+ * Add test listener to get advanced logging and other possibilities.
+ *
+ * @param context
+ * will be injected by TestNG
+ */
+ @BeforeTest
+ protected void addTestListeners(ITestContext context) {
+ TestRunner runner = (TestRunner) context;
+ runner.addTestListener(testListener);
+ }
+
+ /**
+ * Implementation of listener, which will trigger each test run.
+ */
+ private ITestListener testListener = new ITestListener() {
+
+ /**
+ * Will print to log name of test before each test run.
+ */
+ public void onTestStart(ITestResult result) {
+ String methodName = result.getMethod().toString();
+ Matcher matcher = Pattern.compile(".*\\.(.*\\..*)").matcher(methodName);
+
+ if (matcher.lookingAt()) {
+ methodName = matcher.group(1);
+ }
+
+ String hashes = "##########";
+ System.out.println(String.format("%s %s %s", hashes, methodName, hashes));
+ }
+
+ public void onFinish(ITestContext context) {
+ }
+
+ public void onStart(ITestContext context) {
+ }
+
+ public void onTestFailedButWithinSuccessPercentage(ITestResult result) {
+ }
+
+ public void onTestFailure(ITestResult result) {
+ }
+
+ public void onTestSkipped(ITestResult result) {
+ }
+
+ public void onTestSuccess(ITestResult result) {
+ }
+ };
+
+ /**
+ * Abstract test for testing source code of examples. Deprecated -- use
+ * abstractTestSource(int, String, String) instead of this method.
+ *
+ * @param fieldset
+ * @param index
+ * @param first
+ * @param second
+ */
+ @Deprecated
+ protected void abstractTestSource(int fieldset, int index, String first, String second) {
+ String xpathPrefix = String.format("//fieldset[%d]/div/div[%d]", fieldset, index);
+ String text = null;
+
+ scrollIntoView(xpathPrefix, true);
+
+ text = selenium.getAttribute(xpathPrefix + "/div@style");
+ assertTrue(text.contains("display: none;"),
+ "Source should not be visible -- it has to contain 'display: none;'.");
+
+ // click on 'View xxx Source'
+ waitForElement(xpathPrefix + "/span[2]");
+ selenium.click(xpathPrefix + "/span[2]");
+
+ waitForElement(xpathPrefix + "/div/div[2]");
+
+ text = selenium.getAttribute(xpathPrefix + "/div@id");
+ assertFalse(text.contains("display: none;"),
+ "Source should be visible -- it should not contain 'display: none;'");
+
+ text = selenium.getText(xpathPrefix + "/div/div[2]/div/div/span[1]");
+ assertEquals(text, first, "The code should start with '" + first + "'.");
+
+ text = selenium.getText(xpathPrefix + "/div/div[2]/div/div/span[2]");
+ assertEquals(text, second);
+
+ // click on 'Hide'
+ selenium.click(xpathPrefix + "/span[1]");
+
+ // wait while 'style' attribute changes
+ for (int i = 0; i * 100 <= 10000; i++) {
+ text = selenium.getAttribute(xpathPrefix + "/div@style");
+ if (text.contains("display: none;")) {
+ break;
+ }
+ waitFor(100);
+ }
+
+ assertTrue(text.contains("display: none;"), "Source should be hidden.");
+ }
+
+ /**
+ * An abstract implementation of test for testing source code of examples.
+ *
+ * @param fieldset
+ * the number of the example
+ * @param linkLabel
+ * the label of link, e.g. "View Source"
+ * @param expected
+ * an array of strings that should be in the snippet
+ */
+ protected void abstractTestSource(int fieldset, String linkLabel, String[] expected) {
+ final String xpathPrefix = String.format("//fieldset[%d]/div/div/span[contains(text(), '%s')]/..", fieldset,
+ linkLabel);
+ String text = null;
+
+ scrollIntoView(xpathPrefix, true);
+
+ text = selenium.getAttribute(xpathPrefix + "/div@style");
+ assertTrue(text.contains("display: none;"),
+ "Source should not be visible -- it has to contain 'display: none;'.");
+
+ // click on 'View xxx Source'
+ waitForElement(xpathPrefix + "/span[2]");
+ selenium.click(xpathPrefix + "/span[2]");
+
+ waitForElement(xpathPrefix + "/div/div[2]");
+
+ text = selenium.getAttribute(xpathPrefix + "/div@id");
+ assertFalse(text.contains("display: none;"),
+ "Source should be visible -- it should not contain 'display: none;'");
+
+ text = selenium.getText(xpathPrefix + "/div/div[2]/div/div");
+
+ for (String str : expected) {
+ assertTrue(text.contains(str), "The code should contain \"" + str + "\".");
+ }
+
+ // click on 'Hide'
+ selenium.click(xpathPrefix + "/span[1]");
+
+ // wait while 'style' attribute changes
+ Wait.until(new Condition() {
+ public boolean isTrue() {
+ return selenium.getAttribute(xpathPrefix + "/div@style").contains("display: none;");
+ }
+ });
+
+ text = selenium.getAttribute(xpathPrefix + "/div@style");
+ assertTrue(text.contains("display: none;"), "Source should be hidden.");
+ }
+
+ /**
+ * <p>
+ * <b>Deprecated.</b> <i>This method is replaced by method
+ * {@link #openComponent(String)} and {{@link #openTab(String)}</i>
+ * </p>
+ *
+ * Loads the page defined in contextPath. There is a 5-second timeout.
+ *
+ * @param group
+ * ID of div element that represents a group of menu items in
+ * main menu, e.g. ajaxSupport,richInputs, richValidators, etc.
+ * @param index
+ * which menu item from the group should be clicked, numbered
+ * from 1
+ * @param text
+ * wait while the specified text appears on the page; it does not
+ * wait if the text is null
+ */
+ // TODO: remove this @deprecated method
+ @Deprecated
+ protected void loadPage(String group, int index, String text) {
+ loadPage(group, index, 1, text);
+ }
+
+ /**
+ * <p>
+ * <b>Deprecated.</b> <i>This method is replaced by method
+ * {@link #openComponent(String)} and {{@link #openTab(String)}</i>
+ * </p>
+ *
+ * Loads the page defined in contextPath. There is a 5-second timeout.
+ *
+ * @param group
+ * ID of div element that represents a group of menu items in
+ * main menu, e.g. ajaxSupport,richInputs, richValidators, etc.
+ * @param index
+ * which menu item from the group should be clicked, numbered
+ * from 1
+ * @param tab
+ * the number of the tab
+ * @param text
+ * wait while the specified text appears on the page; it does not
+ * wait if the text is null
+ */
+ // TODO: remove this @deprecated method
+ @Deprecated
+ protected void loadPage(String group, int index, int tab, String text) {
+
+ selenium.open(contextPath);
+ selenium.waitForPageToLoad("5000");
+
+ String menuItem = String.format("//div[@id='%s']/div[3]/table/tbody/tr/td/table/tbody/tr[%d]/td[2]/a", group,
+ index);
+
+ // click the group
+ selenium.click(group);
+ // click the menu item
+ selenium.click(menuItem);
+
+ waitForElement("//table[@class='content_container']/tbody/tr/td[2]/table/tbody/tr[1]/td/form/table/tbody/tr/td["
+ + (tab * 2) + "]/table");
+ selenium
+ .click("//table[@class='content_container']/tbody/tr/td[2]/table/tbody/tr[1]/td/form/table/tbody/tr/td["
+ + (tab * 2) + "]/table");
+
+ if (text != null) {
+ waitForText(text);
+ }
+ }
+
+ /**
+ * <p>
+ * Opens new page on contextPath's location and then selects in menu the
+ * item specified by componentName and waits for Component's page is opened.
+ * </p>
+ *
+ * <p>
+ * If componen's page is already opened, skip phase of menu selection.
+ * </p>
+ *
+ * <p>
+ * For opening specified tab of Component's page use
+ * {@link #openTab(String)}.
+ * </p>
+ *
+ * @param componentName
+ * name of component given from components' menu on the left of
+ * RF Live Demo application
+ */
+ protected void openComponent(final String componentName) {
+
+ final String LOC_MENU_ITEM = format(
+ "//table[@class='left_menu']//td[contains(@class, 'text')]//a/span[normalize-space(text())='{0}']",
+ componentName);
+
+ // TODO needs to open clean page, see {@link
+ // https://jira.jboss.org/jira/browse/RF-7640}
+ selenium.getEval("selenium.doDeleteAllVisibleCookies()");
+
+ // open context path of application
+ selenium.open(contextPath);
+
+ // wait for new page is opened
+ selenium.waitForPageToLoad("5000");
+
+ // if component's page is already opened, skin selecting from menu
+ if (isComponentPageActive(componentName)) {
+ return;
+ }
+
+ // click the menu item
+ selenium.click(LOC_MENU_ITEM);
+
+ // wait for component's page opened
+ waitModelUpdate.until(new Condition() {
+ public boolean isTrue() {
+ return isComponentPageActive(componentName);
+ }
+ });
+ }
+
+ private boolean isComponentPageActive(String componentName) {
+ final String LOC_OUTPUT_COMPONENT_NAME = "//body/table[@class='left_menu']//*[contains(@class,'panel_documents')]//strong";
+ return componentName.equals(getTextOrNull(LOC_OUTPUT_COMPONENT_NAME));
+ }
+
+ /**
+ * <p>
+ * Opens specified tab on the Component's page.
+ * </p>
+ *
+ * <p>
+ * If tab is already opened, skip phase of tab selection.
+ * </p>
+ *
+ * <p>
+ * Use this method after opening page by {@link #openComponent(String)}.
+ * </p>
+ *
+ * @param tabTitle
+ * title on the tab header, which should be opened.
+ */
+ protected void openTab(String tabTitle) {
+
+ final String LOC_TAB = format(
+ "//form[contains(@id, ':_form')]//td[contains(@class,'rich-tab-header') and text()='{0}']", tabTitle);
+
+ if (belongsClass("rich-tab-active", LOC_TAB)) {
+ return;
+ }
+
+ waitForElement(LOC_TAB);
+ selenium.click(LOC_TAB);
+
+ waitModelUpdate.until(new Condition() {
+ public boolean isTrue() {
+ return belongsClass("rich-tab-active", LOC_TAB);
+ }
+ });
+ }
+
+ /**
+ * Controls that for each method should be started new browser session.
+ *
+ * It means that after each method except last is browser session stopped
+ * and before each method except first is started clean browser session.
+ */
+ protected void setCleanSessionForEachMethod(boolean cleanSessionForEachMethod) {
+ this.cleanSessionForEachMethod = cleanSessionForEachMethod;
+ }
+
+ private boolean cleanSessionForEachMethod = false;
+
+ @BeforeMethod
+ public void startBrowserIfNotFirstTestMethod(ITestContext context) {
+ if (cleanSessionForEachMethod) {
+ if (0 < getRunnedTestCount(context)) {
+ selenium.start();
+ }
+ }
+ }
+
+ @AfterMethod
+ public void stopBrowserIfNotLastTestMethod(ITestContext context) {
+ if (cleanSessionForEachMethod) {
+ if (getRunnedTestCount(context) + 1 < context.getAllTestMethods().length) {
+ selenium.stop();
+ }
+ }
+ }
+
+ private int getRunnedTestCount(ITestContext context) {
+ return context.getPassedTests().size() + context.getSkippedTests().size() + context.getFailedTests().size();
+ }
+}
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/actionParameter/ActionParameterTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/actionParameter/ActionParameterTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/actionParameter/ActionParameterTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,108 @@
+package org.jboss.richfaces.integrationTest.actionParameter;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.jboss.test.selenium.waiting.Condition;
+import org.jboss.test.selenium.waiting.Wait;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+/**
+ * @author <a href="mailto:lfryc@redhat.com">Lukas Fryc</a>
+ * @version $Revision$
+ */
+public class ActionParameterTestCase extends AbstractSeleniumRichfacesTestCase {
+
+ /**
+ * Opens specified page
+ */
+ private void openPage() {
+ selenium.open(contextPath
+ + "/richfaces/actionparam.jsf?c=actionparam&tab=usage");
+ }
+
+ @Test
+ public void selectingNames() {
+ openPage();
+
+ String prefix = getMess("selected-name--prefix");
+ final String selectedName = formatLoc("selected-name--text", prefix);
+
+ Assert.assertEquals(prefix, selenium.getText(selectedName));
+
+ String[] guys = new String[] { getMess("first-guy"),
+ getMess("second-guy") };
+
+ for (String guy : guys) {
+ String button = formatLoc("selected-name--button", guy);
+ final String expect = formatMess("selected-name--pattern", prefix,
+ guy);
+
+ selenium.click(button);
+
+ Wait.until(new Condition() {
+ public boolean isTrue() {
+ return expect.equals(selenium.getText(selectedName));
+ }
+ });
+ }
+ }
+
+ @Test
+ @SuppressWarnings("serial")
+ public void selectingSkin() {
+ openPage();
+
+ final String changeSkinLabel = getLoc("change-skin--label");
+
+ Map<String, String> skins = new HashMap<String, String>() {
+ {
+ put(getMess("skin-1-name"), getMess("skin-1-color"));
+ put(getMess("skin-2-name"), getMess("skin-2-color"));
+ }
+ };
+
+ for (String skin : skins.keySet()) {
+ final String expected = skins.get(skin);
+
+ String skinAnchor = formatLoc("change-skin--link-relative",
+ changeSkinLabel, skin);
+
+ selenium.click(skinAnchor);
+
+ Wait.until(new Condition() {
+ public boolean isTrue() {
+ String actual = getStyle(changeSkinLabel,
+ "background-color");
+ return expected.equals(actual);
+ }
+ });
+ }
+ }
+
+ @Test
+ public void showScreenSize() {
+ openPage();
+
+ String screenSizeButton = getLoc("screen-size--button");
+
+ final String widthText = formatLoc("screen-size--width--text-relative",
+ screenSizeButton);
+ final String heightText = formatLoc(
+ "screen-size--height--text-relative", screenSizeButton);
+
+ final String expectedWidth = selenium.getEval("screen.width");
+ final String expectedHeight = selenium.getEval("screen.height");
+
+ selenium.click(screenSizeButton);
+
+ Wait.until(new Condition() {
+ public boolean isTrue() {
+ return expectedWidth.equals(selenium.getText(widthText))
+ && expectedHeight.equals(selenium.getText(heightText));
+ }
+ });
+ }
+}
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/ajaxForm/AjaxFormTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/ajaxForm/AjaxFormTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/ajaxForm/AjaxFormTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,76 @@
+package org.jboss.richfaces.integrationTest.ajaxForm;
+
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+import com.thoughtworks.selenium.Wait;
+
+/**
+ * @author <a href="mailto:lfryc@redhat.com">Lukas Fryc</a>
+ * @version $Revision$
+ */
+public class AjaxFormTestCase extends AbstractSeleniumRichfacesTestCase {
+ /**
+ * Opens specified page
+ */
+ private void openPage() {
+ selenium.open(contextPath + "/richfaces/form.jsf?c=form&tab=usage");
+
+ scrollIntoView(header, true);
+ }
+
+ private String header = "//legend[text()='AjaxForm Demo']";
+ private String ajaxButton = getLoc("ajax-form--ajax-button");
+ private String nonAjaxButton = getLoc("ajax-form--non-ajax-button");
+ private String textRelative = "ajax-form--text-relative";
+ private String ajaxText = formatLoc(textRelative, ajaxButton);
+ private String nonAjaxText = formatLoc(textRelative, nonAjaxButton);
+
+ @Test
+ public void testNonAjaxSubmit() {
+ openPage();
+ nonAjaxSubmit();
+ }
+
+ @Test
+ public void testAjaxSubmit() {
+ openPage();
+ ajaxSubmit();
+ }
+
+ @Test
+ public void testInterleaving() {
+ openPage();
+ ajaxSubmit();
+ nonAjaxSubmit();
+ ajaxSubmit();
+ nonAjaxSubmit();
+ }
+
+ public void nonAjaxSubmit() {
+ String expected = getMess("ajax-form--non-ajax-result");
+
+ selenium.click(nonAjaxButton);
+ selenium.waitForPageToLoad(String.valueOf(Wait.DEFAULT_TIMEOUT));
+ scrollIntoView(header, true);
+
+ String actual = selenium.getText(ajaxText);
+ Assert.assertEquals(actual, expected);
+
+ actual = selenium.getText(nonAjaxText);
+ Assert.assertEquals(actual, expected);
+ }
+
+ public void ajaxSubmit() {
+ String expected = getMess("ajax-form--ajax-result");
+
+ String startingNonAjaxText = selenium.getText(nonAjaxText);
+
+ selenium.click(ajaxButton);
+ waitForTextEquals(ajaxText, expected);
+
+ String actual = selenium.getText(nonAjaxText);
+ Assert.assertEquals(actual, startingNonAjaxText);
+ }
+}
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/ajaxRegion/AjaxRegionTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/ajaxRegion/AjaxRegionTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/ajaxRegion/AjaxRegionTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,155 @@
+package org.jboss.richfaces.integrationTest.ajaxRegion;
+
+import junit.framework.Assert;
+
+import org.apache.commons.lang.StringUtils;
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.jboss.test.selenium.waiting.Condition;
+import org.jboss.test.selenium.waiting.Not;
+import org.jboss.test.selenium.waiting.Wait;
+import org.testng.annotations.Test;
+
+/**
+ * @author <a href="mailto:lfryc@redhat.com">Lukas Fryc</a>
+ * @version $Revision$
+ */
+public class AjaxRegionTestCase extends AbstractSeleniumRichfacesTestCase {
+ /**
+ * Opens specified page
+ */
+ private void openPage() {
+ selenium.open(contextPath + "/richfaces/region.jsf?c=region&tab=usage");
+ }
+
+ private String input = getMess("ajax-region--input");
+ private String firedEvent = getMess("ajax-region--fired-event");
+ private String name1 = formatLoc("ajax-region--input", 1, 1, 1);
+ private String job1 = formatLoc("ajax-region--input", 1, 1, 2);
+ private String name2 = formatLoc("ajax-region--input", 1, 2, 1);
+ private String name3 = formatLoc("ajax-region--input", 2, 1, 1);
+ private String name4 = formatLoc("ajax-region--input", 2, 2, 1);
+ private String messages = getLoc("ajax-region--messages");
+ private String outname = formatLoc("ajax-region--typed-name", "");
+ private String outname2 = formatLoc("ajax-region--typed-name", "2");
+ private String textDisappears = formatLoc("ajax-region--influenced-text", 3);
+ private String textNotDisappears = formatLoc("ajax-region--influenced-text", 4);
+
+ @Test
+ public void testName1DontPassValidation() {
+ openPage();
+ name1DontPassValidation();
+ }
+
+ @Test
+ public void testJob1ChangeDontInfluenceName1ValidationError() {
+ testName1DontPassValidation();
+ job1ChangeInfluenceName1Validation();
+ }
+
+ @Test
+ public void testName1CanBeChangedAnywayIfJob1IsNotBlank() {
+ testJob1ChangeDontInfluenceName1ValidationError();
+ name1CanBeChangedAnywayIfJob1IsNotBlank();
+ }
+
+ @Test
+ public void test2CanBeChangedAnyway() {
+ openPage();
+ trySomeInputs(name2);
+ }
+
+ @Test
+ public void textWillDisappear() {
+ openPage();
+
+ Assert.assertTrue(StringUtils.isNotBlank(selenium.getText(textDisappears)));
+
+ selenium.type(name3, input);
+ selenium.fireEvent(name3, "keyup");
+
+ Wait.until(new Condition() {
+ public boolean isTrue() {
+ return formatMess("ajax-region--typed-name", input(input)).equals(selenium.getText(outname2));
+ }
+ });
+
+ Assert.assertTrue(StringUtils.isBlank(selenium.getText(textDisappears)));
+ }
+
+ @Test
+ public void textWillNotDisappear() {
+ openPage();
+
+ Assert.assertTrue(StringUtils.isNotBlank(selenium.getText(textNotDisappears)));
+
+ selenium.type(name4, input);
+ selenium.fireEvent(name4, "keyup");
+
+ Wait.until(new Condition() {
+ public boolean isTrue() {
+ return formatMess("ajax-region--typed-name", input(input)).equals(selenium.getText(outname2));
+ }
+ });
+
+ Assert.assertTrue(StringUtils.isNotBlank(selenium.getText(textNotDisappears)));
+ }
+
+ public void name1DontPassValidation() {
+ selenium.type(name1, input);
+ selenium.fireEvent(name1, firedEvent);
+
+ Wait.until(new Condition() {
+ public boolean isTrue() {
+ if (!selenium.isElementPresent(messages)) return false;
+ return selenium.getText(messages).contains(getMess("ajax-region--value-is-required"));
+ }
+ });
+
+ Assert.assertEquals(selenium.getText(outname), formatMess("ajax-region--typed-name", ""));
+ }
+
+ public void job1ChangeInfluenceName1Validation() {
+ Assert.assertTrue(selenium.getText(messages).contains(getMess("ajax-region--value-is-required")));
+
+ selenium.type(job1, input);
+ selenium.fireEvent(name1, "keyup");
+
+ Wait.until(new Not() {
+ public boolean not() {
+ return selenium.isElementPresent(messages);
+ }
+ });
+
+ Assert.assertEquals(selenium.getText(outname), formatMess("ajax-region--typed-name", input(input)));
+ }
+
+ public void name1CanBeChangedAnywayIfJob1IsNotBlank() {
+ Assert.assertFalse(selenium.isElementPresent(messages));
+ Assert.assertTrue(StringUtils.isNotBlank(selenium.getValue(job1)));
+
+ trySomeInputs(name1);
+ }
+
+ public void trySomeInputs(String locator) {
+ for (final String enter : new String[]{"", input}) {
+ selenium.type(locator, enter);
+ selenium.fireEvent(locator, "keyup");
+
+ Wait.until(new Condition() {
+ public boolean isTrue() {
+ return formatMess("ajax-region--typed-name", input(enter)).equals(selenium.getText(outname));
+ }
+ });
+
+ Assert.assertFalse(selenium.isElementPresent(messages));
+ }
+ }
+
+ public String input(String input) {
+ if (StringUtils.isBlank(input)) {
+ return "";
+ } else {
+ return " " + input;
+ }
+ }
+}
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/ajaxSupport/AjaxSupportTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/ajaxSupport/AjaxSupportTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/ajaxSupport/AjaxSupportTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,60 @@
+package org.jboss.richfaces.integrationTest.ajaxSupport;
+
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.jboss.test.selenium.waiting.Wait;
+import org.testng.annotations.Test;
+
+/**
+ * @author <a href="mailto:lfryc@redhat.com">Lukas Fryc</a>
+ * @version $Revision$
+ */
+public class AjaxSupportTestCase extends AbstractSeleniumRichfacesTestCase {
+ /**
+ * Opens specified page
+ */
+ private void openPage() {
+ selenium.open(contextPath
+ + "/richfaces/support.jsf?c=support&tab=usage");
+ }
+
+ private String textInput = getLoc("ajax-support--input");
+ private String relativeText = formatLoc("ajax-support--text-relative",
+ textInput);
+ private String nonEmpty = getMess("ajax-support--non-empty");
+ private String inputEvent = getMess("ajax-support--input-event");
+
+ @Test
+ public void testNonEmpty() {
+ openPage();
+ nonEmpty();
+ }
+
+ @Test
+ public void testEmpty() {
+ openPage();
+ empty();
+ }
+
+ @Test
+ public void testInterleaving() {
+ openPage();
+ nonEmpty();
+ empty();
+ nonEmpty();
+ empty();
+ }
+
+ public void nonEmpty() {
+ selenium.type(textInput, nonEmpty);
+ selenium.fireEvent(textInput, inputEvent);
+ waitFor(Wait.DEFAULT_INTERVAL);
+ waitForTextEquals(relativeText, nonEmpty);
+ }
+
+ public void empty() {
+ selenium.type(textInput, "");
+ selenium.fireEvent(textInput, inputEvent);
+ waitFor(Wait.DEFAULT_INTERVAL);
+ waitForTextEquals(textInput, "");
+ }
+}
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/ajaxValidator/AbstractAjaxValidatorTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/ajaxValidator/AbstractAjaxValidatorTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/ajaxValidator/AbstractAjaxValidatorTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,45 @@
+package org.jboss.richfaces.integrationTest.ajaxValidator;
+
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.testng.Assert;
+
+/**
+ * @author <a href="mailto:lfryc@redhat.com">Lukas Fryc</a>
+ * @version $Revision$
+ */
+public class AbstractAjaxValidatorTestCase extends
+ AbstractSeleniumRichfacesTestCase {
+
+ /**
+ * Opens specified page
+ */
+ public void openPage() {
+ selenium.open(contextPath
+ + "/richfaces/ajaxValidator.jsf?c=ajaxValidator&tab=usage");
+ }
+
+ /**
+ * Fires selenium actions "type input" with given value and
+ * "blur from element" on specified locator.
+ *
+ * @param locator
+ * the locator where should be fired actions
+ * @param value
+ * the value which should be typed in "type input" action
+ */
+ public void typeAndBlur(String locator, String value) {
+ selenium.type(locator, value);
+ selenium.fireEvent(locator, "blur");
+ }
+
+ /**
+ * Get locator of message box for element given by locator
+ *
+ * @param locator
+ * for which element should be find message box
+ * @return locator of message box for element given by locator
+ */
+ public String getMessageFor(String locator) {
+ return String.format(getLoc("relativeMessageLink"), locator);
+ }
+}
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/ajaxValidator/AjaxValidatorHibernatePartTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/ajaxValidator/AjaxValidatorHibernatePartTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/ajaxValidator/AjaxValidatorHibernatePartTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,130 @@
+package org.jboss.richfaces.integrationTest.ajaxValidator;
+
+import org.testng.annotations.Test;
+
+/**
+ * @author <a href="mailto:lfryc@redhat.com">Lukas Fryc</a>
+ * @version $Revision$
+ */
+public class AjaxValidatorHibernatePartTestCase extends
+ AbstractAjaxValidatorTestCase {
+
+ /* COMPONENTS */
+
+ private final String name = getLoc("hibernateName");
+ private final String age = getLoc("hibernateAge");
+ private final String email = getLoc("hibernateEmail");
+
+ /* TESTS */
+
+ @Test
+ public void nameValueRequired() {
+ openPage();
+ typeAndBlur(name, "");
+ waitForTextEquals(getMessageFor(name), formatMess("value-required",
+ name));
+ }
+
+ @Test
+ public void nameMinimumLength() {
+ openPage();
+ typeAndBlur(name, getMess("less-than-minimum--enter"));
+ waitForTextEquals(getMessageFor(name), getMess("bean-name--length"));
+ }
+
+ @Test
+ public void nameMaximumLength() {
+ openPage();
+ typeAndBlur(name, getMess("greater-than-maximum--enter"));
+ waitForTextEquals(getMessageFor(name), getMess("bean-name--length"));
+ }
+
+ @Test
+ public void nameOnlySpacesPattern() {
+ openPage();
+ typeAndBlur(name, " ");
+ waitForTextEquals(getMessageFor(name), getMess("bean-name--not-empty"));
+ }
+
+ @Test
+ public void nameMessageDisappers() {
+ nameValueRequired();
+ typeAndBlur(name, getMess("bean-name--valid-input"));
+ waitForTextEquals(getMessageFor(name), "");
+ }
+
+ @Test
+ public void ageValueRequired() {
+ openPage();
+ typeAndBlur(age, "");
+ waitForTextEquals(getMessageFor(age), getMess("may-not-be-null"));
+ }
+
+ @Test
+ public void ageMinimumValue() {
+ openPage();
+ typeAndBlur(age, getMess("long-range--bellow"));
+ waitForTextEquals(getMessageFor(age), getMess("bean-age--min"));
+ }
+
+ @Test
+ public void ageMaximumValue() {
+ openPage();
+ typeAndBlur(age, getMess("bean-age--max--enter"));
+ waitForTextEquals(getMessageFor(age), getMess("bean-age--max"));
+ }
+
+ @Test
+ public void ageIntegerOnly() {
+ openPage();
+ typeAndBlur(age, formatMess("age-integer-only--enter", age));
+ waitForTextEquals(getMessageFor(age), formatMess(
+ "bean-age--integer-only", age));
+ }
+
+ @Test
+ public void ageMessageDisappers() {
+ ageValueRequired();
+ typeAndBlur(age, getMess("valid-age"));
+ waitForTextEquals(getMessageFor(age), "");
+ }
+
+ @Test
+ public void emailMayNotBeNullOrEmpty() {
+ openPage();
+ typeAndBlur(email, "");
+ waitForTextEquals(getMessageFor(email),
+ getMess("may-not-be-null-or-empty"));
+ }
+
+ @Test
+ public void emailOnlySpaces() {
+ openPage();
+ typeAndBlur(email, " ");
+ waitForTextEquals(getMessageFor(email),
+ getMess("not-well-formed-email"));
+ }
+
+ @Test
+ public void emailBad1() {
+ openPage();
+ typeAndBlur(email, getMess("bad-email-1"));
+ waitForTextEquals(getMessageFor(email),
+ getMess("not-well-formed-email"));
+ }
+
+ @Test
+ public void emailBad2() {
+ openPage();
+ typeAndBlur(email, getMess("bad-email-2"));
+ waitForTextEquals(getMessageFor(email),
+ getMess("not-well-formed-email"));
+ }
+
+ @Test
+ public void emailMessageDisappers() {
+ emailMayNotBeNullOrEmpty();
+ typeAndBlur(email, getMess("well-formed-email"));
+ waitForTextEquals(getMessageFor(email), "");
+ }
+}
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/ajaxValidator/AjaxValidatorTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/ajaxValidator/AjaxValidatorTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/ajaxValidator/AjaxValidatorTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,86 @@
+package org.jboss.richfaces.integrationTest.ajaxValidator;
+
+import java.text.MessageFormat;
+
+import org.testng.annotations.Test;
+
+/**
+ * @author <a href="mailto:lfryc@redhat.com">Lukas Fryc</a>
+ * @version $Revision$
+ */
+public class AjaxValidatorTestCase extends AbstractAjaxValidatorTestCase {
+
+ /* COMPONENTS */
+
+ private final String name = getLoc("name");
+ private final String age = getLoc("age");
+
+ /* TESTS */
+
+ @Test
+ public void nameValueRequired() {
+ openPage();
+ typeAndBlur(name, "");
+ waitForTextEquals(getMessageFor(name), formatMess("value-required",
+ name));
+ }
+
+ @Test
+ public void nameMinimumLength() {
+ openPage();
+ typeAndBlur(name, getMess("less-than-minimum--enter"));
+ waitForTextEquals(getMessageFor(name), formatMess("less-than-minimum",
+ name));
+ }
+
+ @Test
+ public void nameMaximumLength() {
+ openPage();
+ typeAndBlur(name, getMess("greater-than-maximum--enter"));
+ waitForTextEquals(getMessageFor(name), formatMess(
+ "greater-than-maximum", name));
+ }
+
+ @Test
+ public void nameMessageDisappers() {
+ nameValueRequired(); // violates validation message
+ typeAndBlur(name, getMess("valid-name"));
+ waitForTextEquals(getMessageFor(name), "");
+ }
+
+ @Test
+ public void ageValueRequired() {
+ openPage();
+ typeAndBlur(age, "");
+ waitForTextEquals(getMessageFor(age), formatMess("value-required", age));
+ }
+
+ @Test
+ public void ageMinimumValue() {
+ openPage();
+ typeAndBlur(age, getMess("long-range--bellow"));
+ waitForTextEquals(getMessageFor(age), formatMess("long-range", age));
+ }
+
+ @Test
+ public void ageMaximumValue() {
+ openPage();
+ typeAndBlur(age, getMess("long-range--above"));
+ waitForTextEquals(getMessageFor(age), formatMess("long-range", age));
+ }
+
+ @Test
+ public void ageIntegerOnly() {
+ openPage();
+ typeAndBlur(age, getMess("age-integer-only--enter"));
+ waitForTextEquals(getMessageFor(age), formatMess("age-integer-only",
+ age));
+ }
+
+ @Test
+ public void ageMessageDisappers() {
+ ageValueRequired();
+ typeAndBlur(age, getMess("valid-age"));
+ waitForTextEquals(getMessageFor(age), "");
+ }
+}
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/beanValidator/BeanValidatorTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/beanValidator/BeanValidatorTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/beanValidator/BeanValidatorTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,150 @@
+package org.jboss.richfaces.integrationTest.beanValidator;
+
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.testng.annotations.Test;
+
+/**
+ * @author <a href="mailto:lfryc@redhat.com">Lukas Fryc</a>
+ * @version $Revision$
+ */
+public class BeanValidatorTestCase extends AbstractSeleniumRichfacesTestCase {
+ /**
+ * Opens specified page
+ */
+ public void openPage() {
+ selenium.open(contextPath
+ + "/richfaces/beanValidator.jsf?c=beanValidator&tab=usage");
+ scrollIntoView(header, true);
+ }
+
+ private String header = getLoc("bean-validator--header");
+ private String buttonSubmit = getLoc("bean-validator--button--submit");
+ private String inputName = getLoc("bean-validator--input--name");
+ private String inputEmail = getLoc("bean-validator--input--email");
+ private String inputAge = getLoc("bean-validator--input--age");
+ private String relativeValidationMessage = getLoc("bean-validator--relative--validation-message");
+
+ private void typeAndSubmit(String locator, String value) {
+ selenium.type(locator, value);
+ selenium.click(buttonSubmit);
+ }
+
+ public String getMessageFor(String locator) {
+ return format(relativeValidationMessage, locator);
+ }
+
+ @Test
+ public void nameValueRequired() {
+ openPage();
+ typeAndSubmit(inputName, "");
+ waitForTextEquals(getMessageFor(inputName),
+ getMess("may-not-be-null-or-empty"));
+ }
+
+ @Test
+ public void nameMinimumLength() {
+ openPage();
+ typeAndSubmit(inputName, getMess("less-than-minimum--enter"));
+ waitForTextEquals(getMessageFor(inputName),
+ getMess("bean-name--length"));
+ }
+
+ @Test
+ public void nameMaximumLength() {
+ openPage();
+ typeAndSubmit(inputName, getMess("greater-than-maximum--enter"));
+ waitForTextEquals(getMessageFor(inputName),
+ getMess("bean-name--length"));
+ }
+
+ @Test
+ public void nameOnlySpacesPattern() {
+ openPage();
+ typeAndSubmit(inputName, " ");
+ waitForTextEquals(getMessageFor(inputName),
+ getMess("bean-name--not-empty"));
+ }
+
+ @Test
+ public void nameMessageDisappers() {
+ nameValueRequired();
+ typeAndSubmit(inputName, getMess("bean-name--valid-input"));
+ waitForTextEquals(getMessageFor(inputName), "");
+ }
+
+ @Test
+ public void ageValueRequired() {
+ openPage();
+ typeAndSubmit(inputAge, "");
+ waitForTextEquals(getMessageFor(inputAge), getMess("may-not-be-null"));
+ }
+
+ @Test
+ public void ageMinimumValue() {
+ openPage();
+ typeAndSubmit(inputAge, getMess("long-range--bellow"));
+ waitForTextEquals(getMessageFor(inputAge), getMess("bean-age--min"));
+ }
+
+ @Test
+ public void ageMaximumValue() {
+ openPage();
+ typeAndSubmit(inputAge, getMess("bean-age--max--enter"));
+ waitForTextEquals(getMessageFor(inputAge), getMess("bean-age--max"));
+ }
+
+ @Test
+ public void ageIntegerOnly() {
+ openPage();
+ typeAndSubmit(inputAge, formatMess("age-integer-only--enter", inputAge));
+ waitForTextEquals(getMessageFor(inputAge), formatMess(
+ "bean-age--integer-only", selenium.getAttribute(format(
+ "{0}/@id", inputAge))));
+ }
+
+ @Test
+ public void ageMessageDisappers() {
+ ageValueRequired();
+ typeAndSubmit(inputAge, getMess("valid-age"));
+ waitForTextEquals(getMessageFor(inputAge), "");
+ }
+
+ @Test
+ public void emailMayNotBeNullOrEmpty() {
+ openPage();
+ typeAndSubmit(inputEmail, "");
+ waitForTextEquals(getMessageFor(inputEmail),
+ getMess("may-not-be-null-or-empty"));
+ }
+
+ @Test
+ public void emailOnlySpaces() {
+ openPage();
+ typeAndSubmit(inputEmail, " ");
+ waitForTextEquals(getMessageFor(inputEmail),
+ getMess("not-well-formed-email"));
+ }
+
+ @Test
+ public void emailBad1() {
+ openPage();
+ typeAndSubmit(inputEmail, getMess("bad-email-1"));
+ waitForTextEquals(getMessageFor(inputEmail),
+ getMess("not-well-formed-email"));
+ }
+
+ @Test
+ public void emailBad2() {
+ openPage();
+ typeAndSubmit(inputEmail, getMess("bad-email-2"));
+ waitForTextEquals(getMessageFor(inputEmail),
+ getMess("not-well-formed-email"));
+ }
+
+ @Test
+ public void emailMessageDisappers() {
+ emailMayNotBeNullOrEmpty();
+ typeAndSubmit(inputEmail, getMess("well-formed-email"));
+ waitForTextEquals(getMessageFor(inputEmail), "");
+ }
+}
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/calendar/CalendarStylingTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/calendar/CalendarStylingTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/calendar/CalendarStylingTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,77 @@
+package org.jboss.richfaces.integrationTest.calendar;
+
+import static org.testng.Assert.assertTrue;
+
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+/**
+ * Test case that tests styling in calendar.
+ *
+ * @author <a href="mailto:ppitonak@redhat.com">Pavol Pitonak</a>
+ * @version $Revision$
+ */
+public class CalendarStylingTestCase extends AbstractSeleniumRichfacesTestCase {
+
+ // messages
+ private final String MSG_COMPONENT_DESCRIPTION_3 = getMsg("COMPONENT_DESCRIPTION_3");
+ private final String MSG_EVERY_THIRD_CELL = getMsg("EVERY_THIRD_CELL");
+
+ // locators
+ private final String LOC_STYLING_FIELDSET = getLoc("STYLING_FIELDSET");
+ private final String LOC_STYLING_CELL_X_Y = getLoc("STYLING_CELL_X_Y");
+ private final String LOC_STYLING_CALENDAR_BUTTON = getLoc("STYLING_CALENDAR_BUTTON");
+ private final String LOC_STYLING_RIGHT_ARROW = getLoc("STYLING_RIGHT_ARROW");
+
+ /**
+ * Tests the styling functionality of the calendar. It goes through all days
+ * of a month and checks that each day that is a multiple of 3 is either
+ * disabled (boundary dates) or is styled (days from selected month).
+ */
+ @Test
+ public void testStyling() {
+ selenium.click(LOC_STYLING_CALENDAR_BUTTON);
+ selenium.click(LOC_STYLING_RIGHT_ARROW);
+ selenium.click(LOC_STYLING_RIGHT_ARROW);
+
+ String text = null;
+ int date = 0;
+
+ for (int i = 3; i < 9; i++) {
+ for (int j = 2; j < 9; j++) {
+ text = selenium.getText(String.format(LOC_STYLING_CELL_X_Y, i, j));
+ date = Integer.parseInt(text);
+ if (date % 3 == 0) {
+ text = selenium.getAttribute(String.format(LOC_STYLING_CELL_X_Y, i, j) + "@class");
+ assertTrue(text.contains("everyThirdDay") || text.contains("rich-calendar-boundary-dates"),
+ MSG_EVERY_THIRD_CELL);
+ }
+ }
+ }
+ }
+
+ /**
+ * Tests the "View Source" in the first example. It checks that the source
+ * code is not visible, clicks on the link, and checks 8 lines of source
+ * code.
+ */
+ @Test
+ public void testPageSource() {
+ String[] strings = new String[] { "<ui:composition xmlns=\"http://www.w3.org/1999/xhtml\"", ".everyThirdDay{",
+ "background-color:gray;", "<script type=\"text/javascript\">", "function disablementFunction(day){",
+ "if (day.isWeekend) return false;", "function disabledClassesProv(day){",
+ "if (day.day%3==0) res+='everyThirdDay';", };
+
+ abstractTestSource(1, "View Source", strings);
+ }
+
+ /**
+ * Loads the page containing the calendar component.
+ */
+ @BeforeMethod
+ private void loadPage() {
+ super.loadPage("richInputs", 1, 3, MSG_COMPONENT_DESCRIPTION_3);
+ scrollIntoView(LOC_STYLING_FIELDSET, true);
+ }
+}
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/calendar/CalendarTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/calendar/CalendarTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/calendar/CalendarTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,359 @@
+/**
+ * License Agreement.
+ *
+ * JBoss RichFaces
+ *
+ * Copyright (C) 2009 Red Hat, Inc.
+ *
+ * This code is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this code; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package org.jboss.richfaces.integrationTest.calendar;
+
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertFalse;
+import static org.testng.Assert.assertTrue;
+
+import java.util.Calendar;
+import java.util.Locale;
+
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+/**
+ * Test case that tests the calendar component. It tests the "Usage" tab.
+ *
+ * @author <a href="mailto:ppitonak@redhat.com">Pavol Pitonak</a>
+ * @version $Revision$
+ */
+public class CalendarTestCase extends AbstractSeleniumRichfacesTestCase {
+
+ // components on the page
+ private final String LOC_CALENDAR_HEADER = getLoc("CALENDAR_HEADER");
+ private final String LOC_DATE_INPUT = getLoc("DATE_INPUT");
+ private final String LOC_DATE_BUTTON = getLoc("DATE_BUTTON");
+ private final String LOC_INPUTS = getLoc("INPUTS");
+ private final String LOC_POPUP_MODE_CHECKBOX = getLoc("POPUP_MODE_CHECKBOX");
+ private final String LOC_APPLY_BUTTON_CHECKBOX = getLoc("APPLY_BUTTON_CHECKBOX");
+ private final String LOC_LOCALE_SELECT = getLoc("LOCALE_SELECT");
+ private final String LOC_DATE_PATTERN_SELECT = getLoc("DATE_PATTERN_SELECT");
+
+ // components in the calendar
+ private final String LOC_CALENDAR = getLoc("CALENDAR");
+ private final String LOC_DOUBLE_LEFT_ARROW = getLoc("DOUBLE_LEFT_ARROW");
+ private final String LOC_LEFT_ARROW = getLoc("LEFT_ARROW");
+ private final String LOC_MONTH_YEAR_LABEL = getLoc("MONTH_YEAR_LABEL");
+ private final String LOC_RIGHT_ARROW = getLoc("RIGHT_ARROW");
+ private final String LOC_DOUBLE_RIGHT_ARROW = getLoc("DOUBLE_RIGHT_ARROW");
+ private final String LOC_CLOSE_BUTTON = getLoc("CLOSE_BUTTON");
+ private final String LOC_CLEAN_BUTTON = getLoc("CLEAN_BUTTON");
+ private final String LOC_TODAY_BUTTON = getLoc("TODAY_BUTTON");
+ private final String LOC_APPLY_BUTTON = getLoc("APPLY_BUTTON");
+ private final String LOC_RANDOM_DAY = getLoc("RANDOM_DAY");
+
+ private enum Month {
+
+ JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER;
+
+ public static Month previous(Month month) {
+ return month == Month.JANUARY ? Month.DECEMBER : Month.values()[month.ordinal() - 1];
+ }
+
+ public static Month following(Month month) {
+ return month == Month.DECEMBER ? Month.JANUARY : Month.values()[month.ordinal() + 1];
+ }
+ };
+
+ /**
+ * Tests basic functionality. It checks that the calendar is not visible at
+ * the beginning, then it clicks into input field, and checks the visibility
+ * of the calendar. At the end, it clicks into input field again and checks
+ * the visibility of component. The component should be invisible at the
+ * beginning, then visible, and it should hide on second click.
+ */
+ @Test
+ public void testClickIntoDateInput() {
+ assertFalse(isDisplayed(LOC_CALENDAR), "The calendar component should not be visible at the beginning.");
+
+ selenium.click(LOC_DATE_INPUT);
+ assertTrue(isDisplayed(LOC_CALENDAR), "The calendar component should be visible after clicking to date input.");
+
+ selenium.click(LOC_DATE_INPUT);
+ assertFalse(isDisplayed(LOC_CALENDAR),
+ "The calendar component should not be visible after second click to date input.");
+ }
+
+ /**
+ * Tests basic functionality. It checks that the calendar is not visible at
+ * the beginning, then it clicks on button next to date input field, and
+ * checks the visibility of the calendar. At the end, it clicks on the
+ * button again and checks the visibility of component. The component should
+ * be invisible at the beginning, then visible, and it should hide on second
+ * click.
+ */
+ @Test
+ public void testClickOnDateButton() {
+ assertFalse(isDisplayed(LOC_CALENDAR), "The calendar component should not be visible at the beginning.");
+
+ selenium.click(LOC_DATE_BUTTON);
+ assertTrue(isDisplayed(LOC_CALENDAR),
+ "The calendar component should be visible after clicking on calendar button.");
+
+ selenium.click(LOC_DATE_BUTTON);
+ assertFalse(isDisplayed(LOC_CALENDAR),
+ "The calendar component should not be visible after second click on calendar button.");
+ }
+
+ /**
+ * Tests navigation in calendar. At first it click left double arrow to
+ * change year and checks that the year changed (e.g. 2009 -> 2008). Then it
+ * clicks the simple left arrow to change month and verifies that the month
+ * changed (e.g. May -> April). In the next step, it click the "Today"
+ * button. Then it performs the same steps for right arrow and double right
+ * arrow. In the end it clicks on the "Close" button and verify that the
+ * calendar is not visible.
+ */
+ @Test
+ public void testNavigation() {
+ selenium.click(LOC_DATE_BUTTON);
+
+ // LOC_MONTH_YEAR_LABEL contains e.g. "August, 2009"
+ Month month = Month.valueOf(selenium.getText(LOC_MONTH_YEAR_LABEL).split(",")[0].trim().toUpperCase());
+ int year = Integer.parseInt(selenium.getText(LOC_MONTH_YEAR_LABEL).split(",")[1].trim());
+
+ selenium.click(LOC_DOUBLE_LEFT_ARROW);
+ int newYear = Integer.parseInt(selenium.getText(LOC_MONTH_YEAR_LABEL).split(",")[1].trim());
+ assertEquals(newYear, year - 1,
+ "Calendar should show the previous year after clicking on the left double arrow.");
+
+ selenium.click(LOC_LEFT_ARROW);
+ Month newMonth = Month.valueOf(selenium.getText(LOC_MONTH_YEAR_LABEL).split(",")[0].trim().toUpperCase());
+ assertEquals(newMonth, Month.previous(month),
+ "Calendar should show the previous month after clicking on the left arrow.");
+
+ selenium.click(LOC_TODAY_BUTTON);
+ newMonth = Month.valueOf(selenium.getText(LOC_MONTH_YEAR_LABEL).split(",")[0].trim().toUpperCase());
+ assertEquals(newMonth, month, "Calendar should show today's month after clicking on \"today\".");
+ newYear = Integer.parseInt(selenium.getText(LOC_MONTH_YEAR_LABEL).split(",")[1].trim());
+ assertEquals(newYear, year, "Calendar should show today's month after clicking on \"today\".");
+
+ // TODO check also the day
+
+ selenium.click(LOC_DOUBLE_RIGHT_ARROW);
+ newYear = Integer.parseInt(selenium.getText(LOC_MONTH_YEAR_LABEL).split(",")[1].trim());
+ assertEquals(newYear, year + 1,
+ "Calendar should show the following year after clicking on the right double arrow.");
+
+ selenium.click(LOC_RIGHT_ARROW);
+ newMonth = Month.valueOf(selenium.getText(LOC_MONTH_YEAR_LABEL).split(",")[0].trim().toUpperCase());
+ assertEquals(newMonth, Month.following(month),
+ "Calendar should show the following month after clicking on the right arrow.");
+
+ selenium.click(LOC_CLOSE_BUTTON);
+ assertFalse(isDisplayed(LOC_CALENDAR),
+ "The calendar component should not be visible after second click on calendar button.");
+ }
+
+ /**
+ * Tests choosing a date in calendar and cleaning selection. At first, it
+ * selects a day on 4th line and 2nd column, clicks "Apply" and verifies
+ * that input field changed. Then it clicks "Clean" followed by "Apply" and
+ * checks that the input field is empty.
+ */
+ @Test
+ public void testChooseDateAndClean() {
+ selenium.click(LOC_DATE_BUTTON);
+ Month month = Month.valueOf(selenium.getText(LOC_MONTH_YEAR_LABEL).split(",")[0].trim().toUpperCase());
+ int year = Integer.parseInt(selenium.getText(LOC_MONTH_YEAR_LABEL).split(",")[1].trim());
+
+ String date = selenium.getText(LOC_RANDOM_DAY);
+ assertFalse(belongsClass("rich-calendar-select", LOC_RANDOM_DAY), format(
+ "The date {0} should not be selected.", date));
+
+ selenium.click(LOC_RANDOM_DAY);
+ selenium.click(LOC_APPLY_BUTTON);
+
+ date = selenium.getText(LOC_RANDOM_DAY);
+ assertTrue(belongsClass("rich-calendar-select", LOC_RANDOM_DAY), format("The date {0} should be selected.",
+ date));
+
+ selenium.click(LOC_APPLY_BUTTON);
+ String dateTime = selenium.getValue(LOC_DATE_INPUT);
+ StringBuilder expected = new StringBuilder(date);
+ expected.append("/");
+ expected.append(month.ordinal() + 1);
+ expected.append("/");
+ expected.append(String.format("%02d", year % 100));
+ expected.append(" 12:00");
+ assertEquals(dateTime, expected.toString(), "Date and time should appear in input field.");
+
+ selenium.click(LOC_DATE_BUTTON);
+ selenium.click(LOC_CLEAN_BUTTON);
+ selenium.click(LOC_APPLY_BUTTON);
+ dateTime = selenium.getText(LOC_DATE_INPUT);
+ assertEquals(dateTime, "", "Date input field should be empty.");
+ }
+
+ /**
+ * Tests the "Popup Mode" checkbox. It unchecks the checkbox and waits for
+ * calendar to change. Then it checks that both calendar's input field and
+ * button are invisible.
+ */
+ @Test
+ public void testPopupModeCheckbox() {
+ String attr = selenium.getAttribute(LOC_CALENDAR + "@style");
+ selenium.click(LOC_POPUP_MODE_CHECKBOX);
+ waitForAttributeChanges(LOC_CALENDAR + "@style", attr);
+
+ assertFalse(isDisplayed(LOC_DATE_INPUT), "Date input field should be hidden.");
+ assertFalse(isDisplayed(LOC_INPUTS), "Calendar's button should be hidden.");
+ }
+
+ /**
+ * Tests the "Apply Button" checkbox. It selects a day from the calendar,
+ * checks that cell's class attribute has changed to "rich-calendar-select",
+ * and checks that the date and time appeared in the input field
+ * immediately.
+ */
+ @Test
+ public void testApplyButtonCheckbox() {
+ selenium.click(LOC_APPLY_BUTTON_CHECKBOX);
+ waitFor(1000);
+ selenium.click(LOC_DATE_INPUT);
+
+ // LOC_MONTH_YEAR_LABEL contains e.g. "August, 2009"
+ Month month = Month.valueOf(selenium.getText(LOC_MONTH_YEAR_LABEL).split(",")[0].trim().toUpperCase());
+ int year = Integer.parseInt(selenium.getText(LOC_MONTH_YEAR_LABEL).split(",")[1].trim());
+
+ String date = selenium.getText(LOC_RANDOM_DAY);
+ selenium.click(LOC_RANDOM_DAY);
+ assertTrue(belongsClass("rich-calendar-select", LOC_RANDOM_DAY), format("The date {0} should be selected.",
+ date));
+
+ String dateTime = selenium.getValue(LOC_DATE_INPUT);
+ StringBuilder expected = new StringBuilder(date);
+ expected.append("/");
+ expected.append(month.ordinal() + 1);
+ expected.append("/");
+ expected.append(String.format("%02d", year % 100));
+ expected.append(" 12:00");
+ assertEquals(dateTime, expected.toString(), "Date and time should appear in input field.");
+ }
+
+ /**
+ * Tests localization of calendar. It selects German locale from the select
+ * on the right, checks the name of the month, and the name of the second
+ * day in week. In the end it changes the locale back to US English.
+ */
+ @Test
+ public void testLocale() {
+ // choose German localization
+ selenium.click(LOC_LOCALE_SELECT + "/td[2]/input");
+
+ waitFor(1000);
+ selenium.click(LOC_DATE_BUTTON);
+ selenium.click(LOC_RANDOM_DAY);
+
+ String month1 = Month.values()[Calendar.getInstance(new Locale("de")).get(Calendar.MONTH)].toString();
+ String month2 = selenium.getText(LOC_MONTH_YEAR_LABEL).split(",")[0].trim();
+
+ assertTrue(month1.equalsIgnoreCase(month2), "The name of the month is not localized.");
+
+ String text = selenium.getText(LOC_CALENDAR + "/tbody/tr[2]/td[3]");
+ assertTrue(!"Mon".equalsIgnoreCase(text), "The name of the second day is not localized.");
+
+ // TODO find out whether the following strings should be translated
+ // text = selenium.getText(cleanButton);
+ // assertTrue(!"Clean".equalsIgnoreCase(text),
+ // "The \"Clean\" button is not localized.");
+ //
+ // text = selenium.getText(todayButton);
+ // assertTrue(!"Today".equalsIgnoreCase(text),
+ // "The \"Today\" button is not localized.");
+ //
+ // text = selenium.getText(applyButton);
+ // assertTrue(!"Apply".equalsIgnoreCase(text),
+ // "The \"Apply\" button is not localized.");
+ //
+ // selenium.click(timeInput);
+ //
+ // text = selenium.getText(okButton);
+ // assertTrue(!"OK".equalsIgnoreCase(text),
+ // "The \"OK\" button is not localized.");
+ //
+ // text = selenium.getText(cancelButton);
+ // assertTrue(!"Cancel".equalsIgnoreCase(text),
+ // "The \"Cancel\" button is not localized.");
+ }
+
+ /**
+ * Tests date patterns. It selects the second pattern (dd/M/yy hh:mm a),
+ * clicks a day in calendar, and clicks "Apply". Then it verifies that the
+ * date and time in the input field match the selected pattern.
+ */
+ @Test
+ public void testDataPatternSelect() {
+ selenium.select(LOC_DATE_PATTERN_SELECT, "index=1");
+
+ waitFor(1000);
+ selenium.click(LOC_DATE_BUTTON);
+ selenium.click(LOC_RANDOM_DAY);
+ selenium.click(LOC_APPLY_BUTTON);
+
+ // LOC_MONTH_YEAR_LABEL contains e.g. "August, 2009"
+ Month month = Month.valueOf(selenium.getText(LOC_MONTH_YEAR_LABEL).split(",")[0].trim().toUpperCase());
+ int year = Integer.parseInt(selenium.getText(LOC_MONTH_YEAR_LABEL).split(",")[1].trim());
+
+ String date = selenium.getText(LOC_RANDOM_DAY);
+
+ String dateTime = selenium.getValue(LOC_DATE_INPUT);
+ StringBuilder expected = new StringBuilder(date);
+ expected.append("/");
+ expected.append(month.ordinal() + 1);
+ expected.append("/");
+ expected.append(String.format("%02d", year % 100));
+ expected.append(" 12:00 PM");
+ assertEquals(dateTime, expected.toString(), "Date and time does not have right format.");
+ }
+
+ /**
+ * Tests the "View Source". It checks that the source code is not visible,
+ * clicks on the link, and checks 8 lines of source code.
+ */
+ @Test
+ public void testPageSource() {
+ String[] strings = new String[] {
+ "<ui:composition xmlns=\"http://www.w3.org/1999/xhtml\"",
+ ".rich-calendar-tool-btn{",
+ "<a4j:outputPanel id=\"calendar\" layout=\"block\">",
+ "<rich:calendar value=\"#{calendarBean.selectedDate}\"",
+ "locale=\"#{calendarBean.locale}\"",
+ "popup=\"#{calendarBean.popup}\"",
+ "datePattern=\"#{calendarBean.pattern}\"",
+ "showApplyButton=\"#{calendarBean.showApply}\" cellWidth=\"24px\" cellHeight=\"22px\" style=\"width:200px\"/>", };
+
+ abstractTestSource(1, "View Source", strings);
+ }
+
+ /**
+ * Loads the page containing the calendar component.
+ */
+ @BeforeMethod
+ private void loadPage() {
+ openComponent("Calendar");
+ scrollIntoView(LOC_CALENDAR_HEADER, true);
+ }
+
+}
Property changes on: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/calendar/CalendarTestCase.java
___________________________________________________________________
Name: svn:executable
+ *
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/calendar/OrganizerTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/calendar/OrganizerTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/calendar/OrganizerTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,286 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2009, Red Hat Middleware LLC, and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
+
+package org.jboss.richfaces.integrationTest.calendar;
+
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertFalse;
+import static org.testng.Assert.assertTrue;
+
+import java.util.Calendar;
+
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.jboss.test.selenium.waiting.Condition;
+import org.jboss.test.selenium.waiting.Wait;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+/**
+ * Test case that tests the calendar used as an organizer.
+ *
+ * @author <a href="mailto:ppitonak@redhat.com">Pavol Pitonak</a>
+ * @version $Revision$
+ */
+public class OrganizerTestCase extends AbstractSeleniumRichfacesTestCase {
+
+ // messages
+ private final String MSG_COMPONENT_DESCRIPTION = getMsg("COMPONENT_DESCRIPTION");
+ private final String MSG_CLASS_ATTRIBUTE_TODAY = getMsg("CLASS_ATTRIBUTE_TODAY");
+ private final String MSG_CLASS_ATTRIBUTE_GREY = getMsg("CLASS_ATTRIBUTE_GREY");
+ private final String MSG_DIALOG_VISIBLE = getMsg("DIALOG_VISIBLE");
+ private final String MSG_DIALOG_NOT_VISIBLE = getMsg("DIALOG_NOT_VISIBLE");
+ private final String MSG_CELL_X_Y_NOTE = getMsg("CELL_X_Y_NOTE");
+ private final String MSG_CELL_X_Y_DESC = getMsg("CELL_X_Y_DESC");
+
+ // locators
+ private final String LOC_FIELDSET = getLoc("FIELDSET");
+
+ private final String LOC_CELL_X_Y = getLoc("CELL_X_Y");
+ private final String LOC_CELL_X_Y_DATE = getLoc("CELL_X_Y_DATE");
+ private final String LOC_CELL_X_Y_DESC = getLoc("CELL_X_Y_DESC");
+ private final String LOC_CELL_X_Y_NOTE = getLoc("CELL_X_Y_NOTE");
+
+ private final String LOC_DIALOG = getLoc("DIALOG");
+ private final String LOC_DIALOG_DESCRIPTION = getLoc("DIALOG_DESCRIPTION");
+ private final String LOC_DIALOG_NOTE = getLoc("DIALOG_NOTE");
+ private final String LOC_DIALOG_STORE_BUTTON = getLoc("DIALOG_STORE_BUTTON");
+ private final String LOC_DIALOG_CANCEL_BUTTON = getLoc("DIALOG_CANCEL_BUTTON");
+ private final String LOC_DIALOG_CROSS_BUTTON = getLoc("DIALOG_CROSS_BUTTON");
+
+ /**
+ * Tests that today's cell is highlighted. It goes through the table until
+ * it finds today's date.
+ */
+ @Test
+ public void testTodayIsHighlighted() {
+ String today = Integer.toString(Calendar.getInstance().get(Calendar.DAY_OF_MONTH));
+ String text = null;
+
+ int fromLine = 3;
+ if (Integer.parseInt(today) > 15) {
+ fromLine = 5;
+ }
+
+ for (int i = fromLine; i < 9; i++) {
+ for (int j = 1; j < 8; j++) {
+ text = selenium.getText(String.format(LOC_CELL_X_Y_DATE, i, j));
+ if (today.equals(text)) {
+ text = selenium.getAttribute(String.format(LOC_CELL_X_Y, i, j) + "@class");
+ assertTrue(text.contains("rich-calendar-today"), MSG_CLASS_ATTRIBUTE_TODAY);
+ return;
+ }
+ }
+ }
+ }
+
+ /**
+ * Tests the last cell of the table. The last line is usually empty and the
+ * last cell of the last row has to be disabled.
+ */
+ @Test
+ public void testLastDayIsGrey() {
+ String attr = selenium.getAttribute(String.format(LOC_CELL_X_Y, 8, 7) + "@class");
+ assertTrue(attr.contains("rich-calendar-boundary-dates"), MSG_CLASS_ATTRIBUTE_GREY);
+ }
+
+ /**
+ * Tests adding a new note to the organizer. First it checks the text of the
+ * selected cell (2nd week, 3rd day), checks that the dialog is hidden,
+ * clicks into the cell, and checks that the dialog is shown. Then it enters
+ * values into description and note fields and clicks the store button. In
+ * the end it checks that the organizer was changed.
+ */
+ @Test
+ public void testSaveNote() {
+ String text = selenium.getText(String.format(LOC_CELL_X_Y_DESC, 4, 3));
+ assertEquals(text, "Nothing planned", String.format(MSG_CELL_X_Y_DESC, 4, 3));
+
+ assertFalse(isDisplayed(LOC_DIALOG), MSG_DIALOG_NOT_VISIBLE);
+
+ selenium.click(String.format(LOC_CELL_X_Y, 4, 3));
+
+ // wait for JavaScript to show the dialog
+ Wait.until(new Condition() {
+ public boolean isTrue() {
+ return isDisplayed(LOC_DIALOG);
+ }
+ });
+
+ assertTrue(isDisplayed(LOC_DIALOG), MSG_DIALOG_VISIBLE);
+
+ selenium.type(LOC_DIALOG_DESCRIPTION, "some description");
+ selenium.type(LOC_DIALOG_NOTE, "note note note note note");
+ selenium.click(LOC_DIALOG_STORE_BUTTON);
+
+ // wait for JavaScript to change the organizer
+ Wait.until(new Condition() {
+
+ public boolean isTrue() {
+ return !"Nothing planned".equals(selenium.getText(String.format(LOC_CELL_X_Y_DESC, 4, 3)));
+ }
+
+ });
+
+ text = selenium.getText(String.format(LOC_CELL_X_Y_DESC, 4, 3));
+ assertEquals(text, "some description", String.format(MSG_CELL_X_Y_DESC, 2, 3));
+
+ text = selenium.getText(String.format(LOC_CELL_X_Y_NOTE, 4, 3));
+ assertEquals(text, "note note note note note", String.format(MSG_CELL_X_Y_NOTE, 2, 3));
+ }
+
+ /**
+ * Tests the cancel button. First it checks the content of the cell in the
+ * 3rd week, 3rd day. Then it clicks into the cell, enters the description
+ * and note, and clicks the cancel button. In the end it verifies that the
+ * organizer was not changed.
+ */
+ @Test
+ public void testCancelNoteCancelButton() {
+ String text = selenium.getText(String.format(LOC_CELL_X_Y_DESC, 5, 3));
+ assertEquals(text, "Nothing planned", String.format(MSG_CELL_X_Y_DESC, 3, 3));
+
+ assertFalse(isDisplayed(LOC_DIALOG), MSG_DIALOG_NOT_VISIBLE);
+
+ selenium.click(String.format(LOC_CELL_X_Y, 5, 3));
+
+ // wait for JavaScript to show the dialog
+ Wait.until(new Condition() {
+ public boolean isTrue() {
+ return isDisplayed(LOC_DIALOG);
+ }
+ });
+
+ assertTrue(isDisplayed(LOC_DIALOG), MSG_DIALOG_VISIBLE);
+
+ selenium.type(LOC_DIALOG_DESCRIPTION, "some description");
+ selenium.type(LOC_DIALOG_NOTE, "note note note note note");
+ selenium.click(LOC_DIALOG_CANCEL_BUTTON);
+
+ // wait for JavaScript to finish - nothing should change
+ waitFor(3000);
+
+ text = selenium.getText(String.format(LOC_CELL_X_Y_DESC, 5, 3));
+ assertEquals(text, "Nothing planned", String.format(MSG_CELL_X_Y_DESC, 3, 3));
+
+ text = selenium.getText(String.format(LOC_CELL_X_Y_NOTE, 5, 3));
+ assertEquals(text, "", String.format(MSG_CELL_X_Y_NOTE, 3, 3));
+ }
+
+ /**
+ * Tests the cross button in the corner of the dialog. First it checks the
+ * content of the cell in the 3rd week, 3rd day. Then it clicks into the
+ * cell, enters the description and note, and clicks the cancel button. In
+ * the end it verifies that the organizer was not changed.
+ */
+ @Test
+ public void testCancelNoteCrossButton() {
+ String text = selenium.getText(String.format(LOC_CELL_X_Y_DESC, 5, 5));
+ assertEquals(text, "Nothing planned", String.format(MSG_CELL_X_Y_DESC, 3, 5));
+
+ assertFalse(isDisplayed(LOC_DIALOG), MSG_DIALOG_NOT_VISIBLE);
+
+ selenium.click(String.format(LOC_CELL_X_Y, 5, 5));
+
+ // wait for JavaScript to show the dialog
+ Wait.until(new Condition() {
+ public boolean isTrue() {
+ return isDisplayed(LOC_DIALOG);
+ }
+ });
+
+ assertTrue(isDisplayed(LOC_DIALOG), MSG_DIALOG_VISIBLE);
+
+ selenium.type(LOC_DIALOG_DESCRIPTION, "some description");
+ selenium.type(LOC_DIALOG_NOTE, "note note note note note");
+ selenium.click(LOC_DIALOG_CROSS_BUTTON);
+
+ // wait for JavaScript to finish - nothing should change
+ waitFor(3000);
+
+ text = selenium.getText(String.format(LOC_CELL_X_Y_DESC, 5, 5));
+ assertEquals(text, "Nothing planned", String.format(MSG_CELL_X_Y_DESC, 3, 5));
+
+ text = selenium.getText(String.format(LOC_CELL_X_Y_NOTE, 5, 5));
+ assertEquals(text, "", String.format(MSG_CELL_X_Y_NOTE, 3, 5));
+ }
+
+ /**
+ * Tests the "View Source". It checks that the source code is not visible,
+ * clicks on the link, and checks 8 lines of source code.
+ */
+ @Test
+ public void testPageSource() {
+ String[] strings = new String[] {
+ "<ui:composition xmlns=\"http://www.w3.org/1999/xhtml\"",
+ "<rich:messages/>",
+ "<a4j:jsFunction name=\"ajaxSubmit\" oncomplete=\"#{rich:component('panel')}.show()\" reRender=\"editContent\" />",
+ "<rich:calendar value=\"#{calendarBean.selectedDate}\"",
+ "cellWidth=\"100px\" cellHeight=\"100px\"",
+ "dataModel=\"#{calendarDataModel}\" onchanged=\"if (event.rich.date) {ajaxSubmit();}\" oncurrentdateselect=\"return false\"",
+ "<a4j:outputPanel layout=\"block\" id=\"cell\" onclick=\"#{rich:component('organizer')}.resetSelectedDate()\" style=\"height: 100%;\">",
+ "<rich:modalPanel id=\"panel\" resizeable=\"false\">", };
+
+ abstractTestSource(1, "View Source", strings);
+ }
+
+ /**
+ * Tests the source of CalendarDataModelImpl.java. It checks that the source
+ * code is not visible, clicks on the link, and checks 8 lines of source
+ * code.
+ */
+ @Test
+ public void testDataModelSource() {
+ String[] strings = new String[] {
+ "package org.richfaces.demo.calendar.modelImpl;",
+ "import org.richfaces.model.CalendarDataModelItem;",
+ "private CalendarDataModelItem[] items;",
+ "public CalendarDataModelItem[] getData(Date[] dateArray) {",
+ "protected CalendarDataModelItem createDataModelItem(Date date) {",
+ "item.setDay(c.get(Calendar.DAY_OF_MONTH));",
+ "setCurrentDescription((String)((HashMap)items[calendar.get(Calendar.DAY_OF_MONTH)-1].getData()).get(\"description\"));",
+ "public String getCurrentShortDescription() {", };
+
+ abstractTestSource(1, "CalendarDataModelImpl.java", strings);
+ }
+
+ /**
+ * Tests the source of CalendarDataModelItemImpl.java. It checks that the
+ * source code is not visible, clicks on the link, and checks 8 lines of
+ * source code.
+ */
+ @Test
+ public void testDataModelItemSource() {
+ String[] strings = new String[] { "package org.richfaces.demo.calendar.modelImpl;",
+ "public class CalendarDataModelItemImpl implements CalendarDataModelItem {", "private Object data;",
+ "private boolean enabled = true;", "public Object getData() {",
+ "public void setStyleClass(String styleClass) {", "this.styleClass = styleClass;",
+ "public void setToolTip(Object toolTip) {", };
+
+ abstractTestSource(1, "CalendarDataModelItemImpl.java", strings);
+ }
+
+ /**
+ * Loads the page containing the calendar component.
+ */
+ @BeforeMethod
+ private void loadPage() {
+ openComponent("Calendar");
+ openTab("Organizer Creation");
+ scrollIntoView(LOC_FIELDSET, true);
+ }
+}
Property changes on: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/calendar/OrganizerTestCase.java
___________________________________________________________________
Name: svn:executable
+ *
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/colorPicker/ColorPickerTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/colorPicker/ColorPickerTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/colorPicker/ColorPickerTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,587 @@
+/**
+ * License Agreement.
+ *
+ * JBoss RichFaces
+ *
+ * Copyright (C) 2009 Red Hat, Inc.
+ *
+ * This code is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this code; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package org.jboss.richfaces.integrationTest.colorPicker;
+
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertFalse;
+import static org.testng.Assert.assertNotSame;
+import static org.testng.Assert.assertTrue;
+import static org.testng.Assert.fail;
+
+import java.awt.Color;
+import java.awt.image.BufferedImage;
+import java.io.IOException;
+import java.net.MalformedURLException;
+import java.net.URL;
+
+import javax.imageio.ImageIO;
+
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+/**
+ * A test case for color picker component.
+ * <ul>
+ * <li><b>TODO</b>try decimals, negative integers, integers greater than 100,
+ * 255 or 360</li>
+ * <li><b>TODO</b>check the type of cursor</li>
+ * </ul>
+ *
+ * @author <a href="mailto:ppitonak@redhat.com">Pavol Pitonak</a>
+ * @version $Revision$
+ */
+public class ColorPickerTestCase extends AbstractSeleniumRichfacesTestCase {
+
+ // components on the page
+ private final String LOC_COMPONENT_HEADER = getLoc("COMPONENT_HEADER");
+ private final String LOC_IMAGE = getLoc("IMAGE");
+ private final String LOC_COLOR_INPUT = getLoc("COLOR_INPUT");
+ private final String LOC_COLOR_BUTTON = getLoc("COLOR_BUTTON");
+
+ private final String LOC_COLOR_AREA = getLoc("COLOR_AREA");
+ private final String LOC_CURSOR = getLoc("CURSOR");
+ private final String LOC_RED_VALUE = getLoc("RED_VALUE");
+ private final String LOC_GREEN_VALUE = getLoc("GREEN_VALUE");
+ private final String LOC_BLUE_VALUE = getLoc("BLUE_VALUE");
+ private final String LOC_HUE_VALUE = getLoc("HUE_VALUE");
+ private final String LOC_SATURATION_VALUE = getLoc("SATURATION_VALUE");
+ private final String LOC_BRIGHTNESS_VALUE = getLoc("BRIGHTNESS_VALUE");
+ private final String LOC_CURRENT_COLOR_BOX = getLoc("CURRENT_COLOR_BOX");
+ private final String LOC_ORIGINAL_COLOR_BOX = getLoc("ORIGINAL_COLOR_BOX");
+ private final String LOC_RAINBOW = getLoc("RAINBOW");
+ private final String LOC_HEX_COLOR = getLoc("HEX_COLOR");
+ private final String LOC_APPLY_BUTTON = getLoc("APPLY_BUTTON");
+ private final String LOC_CANCEL_BUTTON = getLoc("CANCEL_BUTTON");
+
+ private final int MSG_VALUES_CHANGE_RED_1 = Integer.parseInt(getMsg("VALUES_CHANGE_RED_1"));
+ private final int MSG_VALUES_CHANGE_GREEN_1 = Integer.parseInt(getMsg("VALUES_CHANGE_GREEN_1"));
+ private final int MSG_VALUES_CHANGE_BLUE_1 = Integer.parseInt(getMsg("VALUES_CHANGE_BLUE_1"));
+ private final int MSG_VALUES_CHANGE_HUE_1 = Integer.parseInt(getMsg("VALUES_CHANGE_HUE_1"));
+ private final int MSG_VALUES_CHANGE_SATURATION_1 = Integer.parseInt(getMsg("VALUES_CHANGE_SATURATION_1"));
+ private final int MSG_VALUES_CHANGE_BRIGHTNESS_1 = Integer.parseInt(getMsg("VALUES_CHANGE_BRIGHTNESS_1"));
+ private final String MSG_VALUES_CHANGE_HEXCOLOR_1 = getMsg("VALUES_CHANGE_HEXCOLOR_1");
+ private final int MSG_VALUES_CHANGE_RED_2 = Integer.parseInt(getMsg("VALUES_CHANGE_RED_2"));
+ private final int MSG_VALUES_CHANGE_GREEN_2 = Integer.parseInt(getMsg("VALUES_CHANGE_GREEN_2"));
+ private final int MSG_VALUES_CHANGE_BLUE_2 = Integer.parseInt(getMsg("VALUES_CHANGE_BLUE_2"));
+ private final int MSG_VALUES_CHANGE_HUE_2 = Integer.parseInt(getMsg("VALUES_CHANGE_HUE_2"));
+ private final int MSG_VALUES_CHANGE_SATURATION_2 = Integer.parseInt(getMsg("VALUES_CHANGE_SATURATION_2"));
+ private final int MSG_VALUES_CHANGE_BRIGHTNESS_2 = Integer.parseInt(getMsg("VALUES_CHANGE_BRIGHTNESS_2"));
+ private final String MSG_VALUES_CHANGE_HEXCOLOR_2 = getMsg("VALUES_CHANGE_HEXCOLOR_2");
+
+ private final String MSG_SET_RGB_NUMBERS_HEXCOLOR = getMsg("SET_RGB_NUMBERS_HEXCOLOR");
+ private final String MSG_SET_HSB_NUMBERS_HEXCOLOR = getMsg("SET_HSB_NUMBERS_HEXCOLOR");
+
+ private final int MSG_SET_MAX_VALUE_RED = Integer.parseInt(getMsg("SET_MAX_VALUE_RED"));
+ private final int MSG_SET_MAX_VALUE_GREEN = Integer.parseInt(getMsg("SET_MAX_VALUE_GREEN"));
+ private final int MSG_SET_MAX_VALUE_BLUE = Integer.parseInt(getMsg("SET_MAX_VALUE_BLUE"));
+ private final int MSG_SET_MAX_VALUE_HUE = Integer.parseInt(getMsg("SET_MAX_VALUE_HUE"));
+ private final int MSG_SET_MAX_VALUE_SATURATION = Integer.parseInt(getMsg("SET_MAX_VALUE_SATURATION"));
+ private final int MSG_SET_MAX_VALUE_BRIGHTNESS = Integer.parseInt(getMsg("SET_MAX_VALUE_BRIGHTNESS"));
+
+ private final int MSG_SET_NEGATIVE_VALUE_RED = Integer.parseInt(getMsg("SET_NEGATIVE_VALUE_RED"));
+ private final int MSG_SET_NEGATIVE_VALUE_GREEN = Integer.parseInt(getMsg("SET_NEGATIVE_VALUE_GREEN"));
+ private final int MSG_SET_NEGATIVE_VALUE_BLUE = Integer.parseInt(getMsg("SET_NEGATIVE_VALUE_BLUE"));
+ private final int MSG_SET_NEGATIVE_VALUE_HUE = Integer.parseInt(getMsg("SET_NEGATIVE_VALUE_HUE"));
+ private final int MSG_SET_NEGATIVE_VALUE_SATURATION = Integer.parseInt(getMsg("SET_NEGATIVE_VALUE_SATURATION"));
+ private final int MSG_SET_NEGATIVE_VALUE_BRIGHTNESS = Integer.parseInt(getMsg("SET_NEGATIVE_VALUE_BRIGHTNESS"));
+
+ private final String MSG_SLIDER_HEXCOLOR_1 = getMsg("SLIDER_HEXCOLOR_1");
+ private final String MSG_SLIDER_HEXCOLOR_2 = getMsg("SLIDER_HEXCOLOR_2");
+ private final int MSG_SLIDER_RED_VALUE_1 = Integer.parseInt(getMsg("SLIDER_RED_VALUE_1"));
+ private final int MSG_SLIDER_GREEN_VALUE_1 = Integer.parseInt(getMsg("SLIDER_GREEN_VALUE_1"));
+ private final int MSG_SLIDER_BLUE_VALUE_1 = Integer.parseInt(getMsg("SLIDER_BLUE_VALUE_1"));
+ private final int MSG_SLIDER_RED_VALUE_2 = Integer.parseInt(getMsg("SLIDER_RED_VALUE_2"));
+ private final int MSG_SLIDER_GREEN_VALUE_2 = Integer.parseInt(getMsg("SLIDER_GREEN_VALUE_2"));
+ private final int MSG_SLIDER_BLUE_VALUE_2 = Integer.parseInt(getMsg("SLIDER_BLUE_VALUE_2"));
+ private final int MSG_SLIDER_RED_VALUE_3 = Integer.parseInt(getMsg("SLIDER_RED_VALUE_3"));
+ private final int MSG_SLIDER_GREEN_VALUE_3 = Integer.parseInt(getMsg("SLIDER_GREEN_VALUE_3"));
+ private final int MSG_SLIDER_BLUE_VALUE_3 = Integer.parseInt(getMsg("SLIDER_BLUE_VALUE_3"));
+
+ /**
+ * Tests the initial state of color picker. It checks that the color of
+ * letters in the image, the color defined in the input field, and the color
+ * of the button are the same.
+ */
+ @Test
+ public void testInitialState() {
+ String url = selenium.getAttribute(LOC_IMAGE + "@src");
+
+ // get color of the pixel from the image
+ Color imageColor = getPixelColor(url, 18, 97);
+ // get color from the input field
+ Color inputColor = createColor(selenium.getValue(LOC_COLOR_INPUT).substring(1));
+
+ assertEquals(imageColor, inputColor, "Image should have the same color as the one defined in input field.");
+
+ // get color of the button
+ String attr = getStyle(LOC_COLOR_BUTTON, "background-color").replace("rgb(", "").replace(")", "");
+
+ int[] values = new int[3];
+ for (int i = 0; i < 3; i++) {
+ values[i] = Integer.parseInt(attr.split(",")[i].trim());
+ }
+
+ assertEquals(imageColor, new Color(values[0], values[1], values[2]),
+ "Image should have the same color as the button.");
+ }
+
+ /**
+ * It clicks to the color area of color picker, clicks on the apply button,
+ * and gets the color of pixel [18,97] from the image.
+ */
+ @Test
+ public void testClickToColorArea() {
+ selenium.click(LOC_COLOR_BUTTON);
+ selenium.mouseDownAt(LOC_COLOR_AREA, "50,50");
+ selenium.click(LOC_APPLY_BUTTON);
+ waitFor(500);
+
+ String url = selenium.getAttribute(LOC_IMAGE + "@src");
+
+ Color imageColor = getPixelColor(url, 18, 97);
+ Color inputColor = createColor(selenium.getValue(LOC_COLOR_INPUT).substring(1));
+
+ assertEquals(imageColor, inputColor, "Image should have the same color as the one defined in input field.");
+ }
+
+ /**
+ * Tests input fields with RGB and HSB values and color number. It clicks on
+ * [0,0] into color area and checks that all values changed.
+ */
+ @Test
+ public void testValuesChange() {
+ selenium.click(LOC_COLOR_BUTTON);
+
+ int red = Integer.parseInt(selenium.getValue(LOC_RED_VALUE));
+ int green = Integer.parseInt(selenium.getValue(LOC_GREEN_VALUE));
+ int blue = Integer.parseInt(selenium.getValue(LOC_BLUE_VALUE));
+ int hue = Integer.parseInt(selenium.getValue(LOC_HUE_VALUE));
+ int saturation = Integer.parseInt(selenium.getValue(LOC_SATURATION_VALUE));
+ int brightness = Integer.parseInt(selenium.getValue(LOC_BRIGHTNESS_VALUE));
+ String hexColor = selenium.getValue(LOC_HEX_COLOR);
+
+ assertEquals(red, MSG_VALUES_CHANGE_RED_1, "Red before click.");
+ assertEquals(green, MSG_VALUES_CHANGE_GREEN_1, "Green before click.");
+ assertEquals(blue, MSG_VALUES_CHANGE_BLUE_1, "Blue before click.");
+ assertEquals(hue, MSG_VALUES_CHANGE_HUE_1, "Hue before click.");
+ assertEquals(saturation, MSG_VALUES_CHANGE_SATURATION_1, "Saturation before click.");
+ assertEquals(brightness, MSG_VALUES_CHANGE_BRIGHTNESS_1, "Brightness before click.");
+ assertEquals(hexColor, MSG_VALUES_CHANGE_HEXCOLOR_1, "Hex value of color before click.");
+
+ selenium.clickAt(LOC_COLOR_AREA, "0,0");
+
+ red = Integer.parseInt(selenium.getValue(LOC_RED_VALUE));
+ green = Integer.parseInt(selenium.getValue(LOC_GREEN_VALUE));
+ blue = Integer.parseInt(selenium.getValue(LOC_BLUE_VALUE));
+ hue = Integer.parseInt(selenium.getValue(LOC_HUE_VALUE));
+ saturation = Integer.parseInt(selenium.getValue(LOC_SATURATION_VALUE));
+ brightness = Integer.parseInt(selenium.getValue(LOC_BRIGHTNESS_VALUE));
+ hexColor = selenium.getValue(LOC_HEX_COLOR);
+
+ assertEquals(red, MSG_VALUES_CHANGE_RED_2, "Red component after white was selected (top left corner).");
+ assertEquals(green, MSG_VALUES_CHANGE_GREEN_2, "Green component after white was selected (top left corner).");
+ assertEquals(blue, MSG_VALUES_CHANGE_BLUE_2, "Blue component after white was selected (top left corner).");
+ assertTrue(Math.abs(hue - MSG_VALUES_CHANGE_HUE_2) < 2, format(
+ "Hue should be {0} (+-6) after white was selected (top left corner).", MSG_VALUES_CHANGE_HUE_2));
+ assertTrue(Math.abs(saturation - MSG_VALUES_CHANGE_SATURATION_2) < 2, format(
+ "Saturation should be {0} (+-6) after white was selected (top left corner).",
+ MSG_VALUES_CHANGE_SATURATION_2));
+ assertTrue(Math.abs(brightness - MSG_VALUES_CHANGE_BRIGHTNESS_2) < 2, format(
+ "Brightness should be 100 (+-6) after white was selected (top left corner).",
+ MSG_VALUES_CHANGE_BRIGHTNESS_2));
+ assertEquals(hexColor, MSG_VALUES_CHANGE_HEXCOLOR_2,
+ "Hex value of color after white was selected (top left corner).");
+ }
+
+ /**
+ * Tests the position of the cursor after clicking into color area.
+ */
+ @Test
+ public void testCursorPosition() {
+ selenium.click(LOC_COLOR_BUTTON);
+ selenium.mouseDownAt(LOC_COLOR_AREA, "50,20");
+ selenium.mouseUp(LOC_COLOR_AREA);
+
+ int x = Integer.parseInt(getStyle(LOC_CURSOR, "left").replace("px", ""));
+ int y = Integer.parseInt(getStyle(LOC_CURSOR, "top").replace("px", ""));
+ assertTrue(Math.abs(x - 50) < 7, format("Cursor should move 50+-6px right (was {0}).", x));
+ assertTrue(Math.abs(y - 20) < 7, format("Cursor should move 20+-6px down (was {0}).", y));
+ }
+
+ /**
+ * Tests typing valid values into input fields for RGB.
+ */
+ @Test
+ public void testSetRGBNumbers() {
+ String hex1 = selenium.getValue(LOC_HEX_COLOR);
+ String hue1 = selenium.getValue(LOC_HUE_VALUE);
+ String saturation1 = selenium.getValue(LOC_SATURATION_VALUE);
+ String brightness1 = selenium.getValue(LOC_BRIGHTNESS_VALUE);
+
+ // change color to dark blue
+ selenium.type(LOC_RED_VALUE, "36");
+ selenium.type(LOC_GREEN_VALUE, "36");
+ selenium.type(LOC_BLUE_VALUE, "99");
+
+ String hex2 = selenium.getValue(LOC_HEX_COLOR);
+ String hue2 = selenium.getValue(LOC_HUE_VALUE);
+ String saturation2 = selenium.getValue(LOC_SATURATION_VALUE);
+ String brightness2 = selenium.getValue(LOC_BRIGHTNESS_VALUE);
+
+ assertFalse(hex1.equals(hex2), "Hex value of the selected color should have changed.");
+ assertEquals(hex2, MSG_SET_RGB_NUMBERS_HEXCOLOR, "Hex value of the selected color should have changed.");
+
+ assertFalse(hue1.equals(hue2), "Hue should change.");
+ assertFalse(saturation1.equals(saturation2), "Saturation should have changed.");
+ assertFalse(brightness1.equals(brightness2), "Brightness should have changed.");
+ }
+
+ /**
+ * Tests typing valid values into input fields for HSB.
+ */
+ @Test
+ public void testSetHSBNumbers() {
+ String hex1 = selenium.getValue(LOC_HEX_COLOR);
+ String red1 = selenium.getValue(LOC_RED_VALUE);
+ String green1 = selenium.getValue(LOC_GREEN_VALUE);
+ String blue1 = selenium.getValue(LOC_BLUE_VALUE);
+
+ // change color to light orange
+ selenium.type(LOC_HUE_VALUE, "36");
+ selenium.type(LOC_SATURATION_VALUE, "36");
+ selenium.type(LOC_BRIGHTNESS_VALUE, "99");
+
+ String hex2 = selenium.getValue(LOC_HEX_COLOR);
+ String red2 = selenium.getValue(LOC_RED_VALUE);
+ String green2 = selenium.getValue(LOC_GREEN_VALUE);
+ String blue2 = selenium.getValue(LOC_BLUE_VALUE);
+
+ assertFalse(hex1.equals(hex2), "Hex value of the selected color should have changed.");
+ assertEquals(hex2, MSG_SET_HSB_NUMBERS_HEXCOLOR, "Hex value of the selected color should have changed.");
+
+ assertFalse(red1.equals(red2), "Red should have changed.");
+ assertFalse(green1.equals(green2), "Green should have changed.");
+ assertFalse(blue1.equals(blue2), "Blue should have changed.");
+ }
+
+ /**
+ * Test typing invalid values into input fields for RGB and HSB. It tries to
+ * type 500 for all components. R, G and B should change to 255, H should
+ * change to 360, S and B to 100.
+ */
+ @Test
+ public void testSetMaxValueRGBHSB() {
+ selenium.type(LOC_RED_VALUE, "500");
+ int number = Integer.parseInt(selenium.getValue(LOC_RED_VALUE));
+ assertEquals(number, MSG_SET_MAX_VALUE_RED, "Red should be set to 255 if bigger number was typed.");
+
+ selenium.type(LOC_GREEN_VALUE, "500");
+ number = Integer.parseInt(selenium.getValue(LOC_GREEN_VALUE));
+ assertEquals(number, MSG_SET_MAX_VALUE_GREEN, "Green should be set to 255 if bigger number was typed.");
+
+ selenium.type(LOC_BLUE_VALUE, "500");
+ number = Integer.parseInt(selenium.getValue(LOC_BLUE_VALUE));
+ assertEquals(number, MSG_SET_MAX_VALUE_BLUE, "Blue should be set to 255 if bigger number was typed.");
+
+ selenium.type(LOC_HUE_VALUE, "500");
+ number = Integer.parseInt(selenium.getValue(LOC_HUE_VALUE));
+ assertEquals(number, MSG_SET_MAX_VALUE_HUE, "Hue should be set to 360 if bigger number was typed.");
+
+ selenium.type(LOC_SATURATION_VALUE, "500");
+ number = Integer.parseInt(selenium.getValue(LOC_SATURATION_VALUE));
+ assertEquals(number, MSG_SET_MAX_VALUE_SATURATION,
+ "Saturation should be set to 100 if bigger number was typed.");
+
+ selenium.type(LOC_BRIGHTNESS_VALUE, "500");
+ number = Integer.parseInt(selenium.getValue(LOC_BRIGHTNESS_VALUE));
+ assertEquals(number, MSG_SET_MAX_VALUE_BRIGHTNESS,
+ "Brightness should be set to 100 if bigger number was typed.");
+ }
+
+ /**
+ * Test typing invalid values into input fields for RGB and HSB. It tries to
+ * type -2 for all components. All should change to 0.
+ */
+ @Test
+ public void testSetNegativeValueRGBHSB() {
+ selenium.type(LOC_RED_VALUE, "-2");
+ int number = Integer.parseInt(selenium.getValue(LOC_RED_VALUE));
+ assertEquals(number, MSG_SET_NEGATIVE_VALUE_RED, "Red should be set to 0 if lower number was typed.");
+
+ selenium.type(LOC_GREEN_VALUE, "-2");
+ number = Integer.parseInt(selenium.getValue(LOC_GREEN_VALUE));
+ assertEquals(number, MSG_SET_NEGATIVE_VALUE_GREEN, "Green should be set to 0 if lower number was typed.");
+
+ selenium.type(LOC_BLUE_VALUE, "-2");
+ number = Integer.parseInt(selenium.getValue(LOC_BLUE_VALUE));
+ assertEquals(number, MSG_SET_NEGATIVE_VALUE_BLUE, "Blue should be set to 0 if lower number was typed.");
+
+ selenium.type(LOC_HUE_VALUE, "-2");
+ number = Integer.parseInt(selenium.getValue(LOC_HUE_VALUE));
+ assertEquals(number, MSG_SET_NEGATIVE_VALUE_HUE, "Hue should be set to 0 if lower number was typed.");
+
+ selenium.type(LOC_SATURATION_VALUE, "-2");
+ number = Integer.parseInt(selenium.getValue(LOC_SATURATION_VALUE));
+ assertEquals(number, MSG_SET_NEGATIVE_VALUE_SATURATION,
+ "Saturation should be set to 0 if lower number was typed.");
+
+ selenium.type(LOC_BRIGHTNESS_VALUE, "-2");
+ number = Integer.parseInt(selenium.getValue(LOC_BRIGHTNESS_VALUE));
+ assertEquals(number, MSG_SET_NEGATIVE_VALUE_BRIGHTNESS,
+ "Brightness should be set to 0 if lower number was typed.");
+ }
+
+ /**
+ * Tests the 'Cancel' button. It types 100, 255, 100 for RGB, clicks on
+ * cancel, and checks that the color defined in the input field and color of
+ * the image did not change.
+ */
+ @Test
+ public void testCancelButton() {
+ Color original = createColor(selenium.getValue(LOC_COLOR_INPUT).substring(1));
+ selenium.click(LOC_COLOR_BUTTON);
+
+ selenium.type(LOC_RED_VALUE, "100");
+ selenium.type(LOC_GREEN_VALUE, "255");
+ selenium.type(LOC_BLUE_VALUE, "100");
+
+ selenium.click(LOC_CANCEL_BUTTON);
+ Color newColor = createColor(selenium.getValue(LOC_COLOR_INPUT).substring(1));
+ assertEquals(newColor, original, "Color in input should not change after clicking on \"Cancel\"");
+
+ String url = selenium.getAttribute(LOC_IMAGE + "@src");
+ Color imageColor = getPixelColor(url, 18, 97);
+ assertEquals(imageColor, original, "Color of image should not change after clicking on \"Cancel\"");
+ }
+
+ /**
+ * Tests slider. It clicks into the rainbow on [0,0] and checks that values
+ * of RGB changed. Then it clicks at the bottom of rainbow and checks values
+ * of RGB. In the end, it clicks in the middle of the rainbow and checks RGB
+ * values. There is tolerance of 2.
+ */
+ @Test
+ public void testSlider() {
+ selenium.click(LOC_COLOR_BUTTON);
+ selenium.mouseDownAt(LOC_RAINBOW, "0,0");
+ selenium.mouseUp(LOC_RAINBOW);
+
+ String newColor = selenium.getValue(LOC_HEX_COLOR);
+ assertEquals(newColor, MSG_SLIDER_HEXCOLOR_1, "Color should change to dark red after clicking on [0,0].");
+
+ int red = Integer.parseInt(selenium.getValue(LOC_RED_VALUE));
+ int green = Integer.parseInt(selenium.getValue(LOC_GREEN_VALUE));
+ int blue = Integer.parseInt(selenium.getValue(LOC_BLUE_VALUE));
+
+ assertTrue(Math.abs(red - MSG_SLIDER_RED_VALUE_1) < 7, format(
+ "Red should be {0}+-6 (was {1}) when the slider is at the top.", MSG_SLIDER_RED_VALUE_1, red));
+ assertTrue(Math.abs(green - MSG_SLIDER_GREEN_VALUE_1) < 7, format(
+ "Green should be {0}+-6 (was {1}) when the slider is at the top.", MSG_SLIDER_GREEN_VALUE_1, green));
+ assertTrue(Math.abs(blue - MSG_SLIDER_BLUE_VALUE_1) < 7, format(
+ "Blue should be {0}+-6 (was {1}) when the slider is at the top.", MSG_SLIDER_BLUE_VALUE_1, blue));
+
+ selenium.mouseDownAt(LOC_RAINBOW, "0,151");
+ selenium.mouseUp(LOC_RAINBOW);
+
+ newColor = selenium.getValue(LOC_HEX_COLOR);
+ assertEquals(newColor, MSG_SLIDER_HEXCOLOR_2, "Color should change to dark red after clicking on [0,150].");
+
+ red = Integer.parseInt(selenium.getValue(LOC_RED_VALUE));
+ green = Integer.parseInt(selenium.getValue(LOC_GREEN_VALUE));
+ blue = Integer.parseInt(selenium.getValue(LOC_BLUE_VALUE));
+
+ assertTrue(Math.abs(red - MSG_SLIDER_RED_VALUE_2) < 7, format(
+ "Red should be {0}+-6 (was {1}) when the slider is at the bottom.", MSG_SLIDER_RED_VALUE_2, red));
+ assertTrue(Math.abs(green - MSG_SLIDER_GREEN_VALUE_2) < 7, format(
+ "Green should be {0}+-6 (was {1}) when the slider is at the bottom.", MSG_SLIDER_GREEN_VALUE_2, green));
+ assertTrue(Math.abs(blue - MSG_SLIDER_BLUE_VALUE_2) < 7, format(
+ "Blue should be {0}+-6 (was {1}) when the slider is at the bottom.", MSG_SLIDER_BLUE_VALUE_2, blue));
+
+ selenium.mouseDownAt(LOC_RAINBOW, "0,75");
+ selenium.mouseUp(LOC_RAINBOW);
+
+ red = Integer.parseInt(selenium.getValue(LOC_RED_VALUE));
+ green = Integer.parseInt(selenium.getValue(LOC_GREEN_VALUE));
+ blue = Integer.parseInt(selenium.getValue(LOC_BLUE_VALUE));
+
+ assertTrue(Math.abs(red - MSG_SLIDER_RED_VALUE_3) < 7, format(
+ "Red should be {0}+-6 (was {1}) when the slider is in the middle.", MSG_SLIDER_RED_VALUE_3, red));
+ assertTrue(Math.abs(green - MSG_SLIDER_GREEN_VALUE_3) < 7, format(
+ "Green should be {0}+-6 (was {1}) when the slider is in the middle.", MSG_SLIDER_GREEN_VALUE_3, green));
+ assertTrue(Math.abs(blue - MSG_SLIDER_BLUE_VALUE_3) < 7, format(
+ "Green should be {0}+-6 (was {1}) when the slider is in the middle.", MSG_SLIDER_BLUE_VALUE_3, blue));
+
+ assertTrue(Math.abs(red - MSG_SLIDER_RED_VALUE_3) < 7, format(
+ "Red should be 0 (+-6) when the slider is in the middle (was {0}).", red));
+ assertTrue(Math.abs(green - MSG_SLIDER_GREEN_VALUE_3) < 7, format(
+ "Green should be 230 (+-6) when the slider is in the middle (was {0}).", green));
+ assertTrue(Math.abs(blue - MSG_SLIDER_BLUE_VALUE_3) < 7, format(
+ "Blue should be 230 (+-6) when the slider is at the bottom (was {0}).", blue));
+ }
+
+ /**
+ * Tests the color box on the left. It changes RGB values to 100, 100, 100
+ * and checks that the color of the box changed.
+ */
+ @Test
+ public void testLeftColorBox() {
+ String attr = getStyle(LOC_CURRENT_COLOR_BOX, "background-color").replace("rgb(", "").replace(")", "");
+
+ int red = Integer.parseInt(attr.split(",")[0].trim());
+ int green = Integer.parseInt(attr.split(",")[1].trim());
+ int blue = Integer.parseInt(attr.split(",")[2].trim());
+
+ Color leftBoxColor = new Color(red, green, blue);
+ Color expectedColor = createColor(selenium.getValue(LOC_HEX_COLOR));
+
+ assertEquals(leftBoxColor, expectedColor, "At the beginning box should be of color from input field.");
+
+ selenium.type(LOC_RED_VALUE, "100");
+ selenium.type(LOC_GREEN_VALUE, "100");
+ selenium.type(LOC_BLUE_VALUE, "100");
+
+ attr = getStyle(LOC_CURRENT_COLOR_BOX, "background-color").replace("rgb(", "").replace(")", "");
+
+ red = Integer.parseInt(attr.split(",")[0].trim());
+ green = Integer.parseInt(attr.split(",")[1].trim());
+ blue = Integer.parseInt(attr.split(",")[2].trim());
+
+ leftBoxColor = new Color(red, green, blue);
+ expectedColor = createColor(selenium.getValue(LOC_HEX_COLOR));
+
+ assertEquals(leftBoxColor, expectedColor, "Color of the box should change afted a color was chosen.");
+ }
+
+ /**
+ * Tests the color box on the right. It changes RGB values to 100, 100, 100
+ * and checks that the color of the box did not change.
+ */
+ @Test
+ public void testRightColorBox() {
+ String attr = getStyle(LOC_ORIGINAL_COLOR_BOX, "background-color").replace("rgb(", "").replace(")", "");
+
+ int red = Integer.parseInt(attr.split(",")[0].trim());
+ int green = Integer.parseInt(attr.split(",")[1].trim());
+ int blue = Integer.parseInt(attr.split(",")[2].trim());
+
+ Color rightBoxColor = new Color(red, green, blue);
+ Color expectedColor = createColor(selenium.getValue(LOC_HEX_COLOR));
+
+ assertEquals(rightBoxColor, expectedColor, "At the beginning box should be of color from input field.");
+
+ selenium.type(LOC_RED_VALUE, "100");
+ selenium.type(LOC_GREEN_VALUE, "100");
+ selenium.type(LOC_BLUE_VALUE, "100");
+
+ attr = getStyle(LOC_ORIGINAL_COLOR_BOX, "background-color").replace("rgb(", "").replace(")", "");
+
+ red = Integer.parseInt(attr.split(",")[0].trim());
+ green = Integer.parseInt(attr.split(",")[1].trim());
+ blue = Integer.parseInt(attr.split(",")[2].trim());
+
+ rightBoxColor = new Color(red, green, blue);
+ expectedColor = createColor(selenium.getValue(LOC_HEX_COLOR));
+
+ assertNotSame(rightBoxColor, expectedColor, "Color of the box should change afted a color was chosen.");
+ }
+
+ /**
+ * Tests the "View Source". It checks that the source code is not visible,
+ * clicks on the link, and checks 8 lines of source code.
+ */
+ @Test
+ public void testPageSource() {
+ String[] strings = new String[] { "<ui:composition xmlns=\"http://www.w3.org/1999/xhtml\"", "<h:form>",
+ "<h:panelGrid columns=\"1\">", "<rich:paint2D id=\"painter\" width=\"300\" height=\"120\"",
+ "data=\"#{paintData}\" format=\"png\" paint=\"#{paintBean.paint}\" >", "</rich:paint2D>",
+ "<h:outputText value=\"Change text color \" />",
+ "<rich:colorPicker colorMode=\"hex\" value=\"#{paintData.color}\">", };
+
+ abstractTestSource(1, "View Source", strings);
+ }
+
+ /**
+ * Returns the color of the pixel with specified coordinates.
+ *
+ * @param url
+ * relative URL of the image
+ * @param x
+ * the horizontal coordinate of the pixel
+ * @param y
+ * the vertical coordinate of the pixel
+ * @return color of the pixel
+ */
+ private Color getPixelColor(String url, int x, int y) {
+ // the index of first '/' not counting http://
+ int index = selenium.getLocation().indexOf('/', 7);
+ url = selenium.getLocation().substring(0, index) + url;
+
+ BufferedImage image = null;
+ try {
+ image = ImageIO.read(new URL(url));
+ } catch (MalformedURLException e) {
+ e.printStackTrace();
+ fail("Could not create an URL object.");
+ } catch (IOException e) {
+ e.printStackTrace();
+ fail("Could not read image.");
+ }
+ int c = image.getRGB(18, 97);
+ int red = (c & 0x00ff0000) >> 16;
+ int green = (c & 0x0000ff00) >> 8;
+ int blue = c & 0x000000ff;
+
+ return new Color(red, green, blue);
+ }
+
+ /**
+ * Creates a Color object from the string. The string has to contain
+ * hexadecimal representation of an RGB color without leading hash
+ * character, e.g. ffffff, 0ab3c4.
+ *
+ * @param color
+ * hexadecimal representation of an RGB color
+ * @return a Color object
+ */
+ private Color createColor(String color) {
+ if (color.length() != 6) {
+ throw new IllegalArgumentException("color");
+ }
+
+ int red = Integer.parseInt(color.substring(0, 2), 16);
+ int green = Integer.parseInt(color.substring(2, 4), 16);
+ int blue = Integer.parseInt(color.substring(4, 6), 16);
+
+ return new Color(red, green, blue);
+ }
+
+ /**
+ * Loads the page containing the color picker component.
+ */
+ @BeforeMethod
+ private void loadPage() {
+ openComponent("Color Picker");
+ scrollIntoView(LOC_COMPONENT_HEADER, true);
+ }
+
+}
Property changes on: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/colorPicker/ColorPickerTestCase.java
___________________________________________________________________
Name: svn:executable
+ *
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/columns/ColumnsTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/columns/ColumnsTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/columns/ColumnsTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,138 @@
+package org.jboss.richfaces.integrationTest.columns;
+
+import java.util.Arrays;
+import java.util.Comparator;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import junit.framework.Assert;
+
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.jboss.test.selenium.waiting.Condition;
+import org.jboss.test.selenium.waiting.Wait;
+import org.testng.annotations.Test;
+
+/**
+ * @author <a href="mailto:lfryc@redhat.com">Lukas Fryc</a>
+ * @version $Revision$
+ */
+public class ColumnsTestCase extends AbstractSeleniumRichfacesTestCase {
+ /**
+ * Opens specified page
+ */
+ public void openPage() {
+ selenium.open(format("{0}/{1}", contextPath, PAGE));
+
+ scrollIntoView(header, true);
+ }
+
+ private final String PAGE = "richfaces/columns.jsf?c=columns&tab=usage";
+ private final String table = getLoc("columns--table");
+ private final String header = table;
+ private final String cellHeaders = getLoc("columns--table-cell-header--preformatted");
+ private final String cells = getLoc("columns--table-cell--preformatted");
+ private final Pattern patternPrice = Pattern.compile(".*\\s(\\d+)\\$$");
+
+ @Test
+ public void simpleSortingTest() {
+ openPage();
+
+ final int sortColumn = 2;
+
+ String[][] map = getMapOfCells();
+
+ final String contextBeforeChange = selenium.getText(table);
+
+ selenium.click(format(cellHeaders, sortColumn));
+
+ sortByColumn(map, sortColumn, false);
+
+ Wait.dontFail().until(new Condition() {
+ public boolean isTrue() {
+ return !contextBeforeChange.equals(selenium.getText(table));
+ }
+ });
+
+ String[][] newMap = getMapOfCells();
+
+ for (int i = 0; i < newMap.length; i++) {
+ Assert.assertTrue(Arrays.equals(map[i], newMap[i]));
+ }
+ }
+
+ @Test
+ public void reverseOrderSortingTest() {
+ openPage();
+
+ final int sortColumn = 4;
+
+ String[][] map = getMapOfCells();
+
+ final String contextBeforeChange = selenium.getText(table);
+
+ selenium.click(format(cellHeaders, sortColumn));
+
+ sortByColumn(map, sortColumn, true);
+
+ Wait.dontFail().until(new Condition() {
+ public boolean isTrue() {
+ return !contextBeforeChange.equals(selenium.getText(table));
+ }
+ });
+
+ selenium.click(format(cellHeaders, sortColumn));
+
+ Wait.dontFail().until(new Condition() {
+ public boolean isTrue() {
+ return !contextBeforeChange.equals(selenium.getText(table));
+ }
+ });
+
+ String[][] newMap = getMapOfCells();
+
+ for (int i = 0; i < newMap.length; i++) {
+ Assert.assertTrue(Arrays.equals(map[i], newMap[i]));
+ }
+ }
+
+ private String[][] getMapOfCells() {
+ final int columns = selenium.getXpathCount(format(cells, 1, 0))
+ .intValue();
+ final int rows = selenium.getXpathCount(format(cells, 0, 1)).intValue();
+
+ String[][] map = new String[rows][columns];
+
+ for (int row = 1; row <= rows; row++) {
+ map[row - 1] = new String[columns];
+ for (int column = 1; column <= columns; column++) {
+ String cell = format(cells, row, column);
+ map[row - 1][column - 1] = selenium.getText(cell);
+ }
+ }
+ return map;
+ }
+
+ private void sortByColumn(final String[][] map, final int column,
+ final boolean reverseOrder) {
+ Arrays.sort(map, new Comparator<String[]>() {
+ public int compare(String[] o1, String[] o2) {
+ String s1 = o1[column - 1];
+ String s2 = o2[column - 1];
+
+ Matcher m1 = patternPrice.matcher(s1);
+ m1.find();
+ int i1 = Integer.valueOf(m1.group(1));
+
+ Matcher m2 = patternPrice.matcher(s2);
+ m2.find();
+ int i2 = Integer.valueOf(m2.group(1));
+
+ if (reverseOrder) {
+ return i2 - i1;
+ } else {
+ return i1 - i2;
+ }
+ }
+ });
+ }
+}
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/comboBox/ComboBoxTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/comboBox/ComboBoxTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/comboBox/ComboBoxTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,264 @@
+/**
+ * License Agreement.
+ *
+ * JBoss RichFaces
+ *
+ * Copyright (C) 2009 Red Hat, Inc.
+ *
+ * This code is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this code; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package org.jboss.richfaces.integrationTest.comboBox;
+
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertEqualsNoOrder;
+import static org.testng.Assert.assertTrue;
+
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+/**
+ * Test case that tests the combo box component.
+ *
+ * @author <a href="mailto:ppitonak@redhat.com">Pavol Pitonak</a>
+ * @version $Revision$
+ */
+public class ComboBoxTestCase extends AbstractSeleniumRichfacesTestCase {
+
+ private final String firstComboInput = "//fieldset[1]/div/div[1]/div/div[2]/input[1]";
+ private final String firstComboButton = "//fieldset[1]/div/div[1]/div/div[2]/input[3]";
+ private final String firstComboConcreteSuggestion = "//body//div[@class='rich-combobox-list-scroll']/span[{0}]";
+ private final String firstComboSuggestions = "//body//div[@class='rich-combobox-list-scroll']/span";
+
+ private final String secondComboInput = "//fieldset[2]/div/div[1]/div/div[2]/input[1]";
+ private final String secondComboButton = "//fieldset[2]/div/div[1]/div/div[2]/input[3]";
+ private final String secondComboConcreteSuggestion = "//body//div[@class='rich-combobox-list-scroll']/span[{0}]";
+ private final String secondComboSuggestions = "//body//div[@class='rich-combobox-list-scroll']/span";
+
+ private final String thirdComboInput = "//fieldset[3]/div/div[1]/div/div[2]/input[1]";
+ private final String thirdComboButton = "//fieldset[3]/div/div[1]/div/div[2]/input[3]";
+ private final String thirdComboConcreteSuggestion = "//body//div[@class='rich-combobox-list-scroll']/span[{0}]";
+ private final String thirdComboSuggestions = "//body//div[@class='rich-combobox-list-scroll']/span";
+
+ /**
+ * Tests the initial state of the page. It checks that there are all
+ * necessary component and that all combo boxes contain the string
+ * "Enter some value".
+ */
+ @Test
+ public void testInitialState() {
+ assertTrue(selenium.isElementPresent(firstComboInput), "First combo's input is not present.");
+ assertTrue(selenium.isElementPresent(firstComboButton), "First combo's button is not present.");
+ assertTrue(selenium.isElementPresent(secondComboInput), "Second combo's input is not present.");
+ assertTrue(selenium.isElementPresent(secondComboInput), "Second combo's button is not present.");
+ assertTrue(selenium.isElementPresent(thirdComboInput), "Third combo's input is not present.");
+ assertTrue(selenium.isElementPresent(thirdComboInput), "Third combo's button is not present.");
+
+ String text = selenium.getValue(firstComboInput);
+ assertEquals(text, "Enter some value", "Text in the first combo box.");
+
+ text = selenium.getValue(secondComboInput);
+ assertEquals(text, "Enter some value", "Text in the second combo box.");
+
+ text = selenium.getValue(thirdComboInput);
+ assertEquals(text, "Enter some value", "Text in the third combo box.");
+ }
+
+ /**
+ * Tests the first combo box. It clicks on combo's button and checks the
+ * count of all suggestions. Then it types "su", checks the number of
+ * suggestions and the content of all suggestions. In the end, it clicks on
+ * the third suggestion and verifies the combo box's input field.
+ *
+ * <ul>
+ * <li><b>FIXME</b>the div containing suggestions moves out of fieldset</li>
+ * <li><b>FIXME</b>"su " has to be clicked instead of "su"</li>
+ * <li><b>FIXME</b>it is not possible to click on the third suggestion</li>
+ * </ul>
+ */
+ @Test
+ public void testSuggestionsFirstComboBox() {
+ scrollIntoView(firstComboButton, true);
+
+ selenium.click(firstComboButton);
+ waitForElement(format(firstComboConcreteSuggestion, 1));
+ int count = selenium.getXpathCount(firstComboSuggestions).intValue();
+ assertEquals(count, 5, "Number of suggestions after after clicking on button.");
+
+ selenium.click(firstComboInput);
+ selenium.typeKeys(firstComboInput, "su");
+ // FIXME why is this necessary?
+ selenium.typeKeys(firstComboInput, " ");
+
+ count = selenium.getXpathCount(firstComboSuggestions).intValue();
+ assertEquals(count, 5, "Number of suggestions after typing 'su'.");
+
+ String[] suggestions = new String[5];
+ for (int i = 0; i < 5; i++) {
+ suggestions[i] = selenium.getText(format(firstComboConcreteSuggestion, i + 1));
+ }
+
+ String[] expected = new String[] { "suggestion 1", "suggestion 2", "suggestion 3", "suggestion 4",
+ "suggestion 5", };
+
+ assertEqualsNoOrder(suggestions, expected, "Suggestions after typing 'sa'.");
+
+ try {
+ selenium.clickAt(format(firstComboConcreteSuggestion, 3), "");
+ } catch (Exception ex) {
+ // TODO why the exception is thrown?
+ }
+ waitFor(1000);
+ String text = selenium.getValue(firstComboInput);
+ assertEquals(text, "suggestion 3", "Third suggestion was chosen.");
+ }
+
+ /**
+ * Tests the second combo box. It clicks on combo's button and checks the
+ * count of all suggestions. Then it types "sa", checks the number of
+ * suggestions and the content of all suggestions. In the end, it clicks on
+ * the third suggestion and verifies the combo box's input field.
+ *
+ * <ul>
+ * <li><b>FIXME</b>the div containing suggestions moves out of fieldset</li>
+ * <li><b>FIXME</b>"sa " has to be clicked instead of "sa"</li>
+ * </ul>
+ */
+ @Test
+ public void testSuggestionsSecondComboBox() {
+ scrollIntoView(secondComboButton, true);
+
+ selenium.click(secondComboButton);
+ waitForElement(format(secondComboConcreteSuggestion, 1));
+ int count = selenium.getXpathCount(secondComboSuggestions).intValue();
+ assertEquals(count, 50, "Number of suggestions after after clicking on button.");
+
+ selenium.click(secondComboInput);
+ selenium.typeKeys(secondComboInput, "sa");
+ // FIXME why is this necessary?
+ selenium.typeKeys(secondComboInput, " ");
+
+ count = selenium.getXpathCount(secondComboSuggestions).intValue();
+ assertEquals(count, 4, "Number of suggestions after typing 'sa'.");
+
+ String[] suggestions = new String[4];
+ for (int i = 0; i < 4; i++) {
+ suggestions[i] = selenium.getText(format(secondComboConcreteSuggestion, i + 1));
+ }
+
+ String[] expected = new String[] { "Sacramento", "Santa Fe", "Salem", "Salt Lake City" };
+
+ assertEqualsNoOrder(suggestions, expected, "Suggestions after typing 'sa'.");
+
+ try {
+ selenium.clickAt(format(secondComboConcreteSuggestion, 3), "");
+ } catch (Exception ex) {
+ // TODO why the exception is thrown?
+ }
+
+ waitFor(1000);
+ String text = selenium.getValue(secondComboInput);
+ assertEquals(text, "Salem", "Third suggestion was chosen.");
+ }
+
+ /**
+ * Tests the third combo box. It clicks on combo's button and checks the
+ * count of all suggestions. Then it types "sa", checks the number of
+ * suggestions and the content of all suggestions. In the end, it clicks on
+ * the third suggestion and verifies the combo box's input field.
+ *
+ * <ul>
+ * <li><b>FIXME</b>the div containing suggestions moves out of fieldset</li>
+ * <li><b>FIXME</b>"sa " has to be clicked instead of "sa"</li>
+ * </ul>
+ */
+ @Test
+ public void testSuggestionsThirdComboBox() {
+ selenium.click(thirdComboButton);
+
+ waitForElement(format(thirdComboConcreteSuggestion, 1));
+ int count = selenium.getXpathCount(thirdComboSuggestions).intValue();
+ assertEquals(count, 50, "Number of suggestions after after clicking on button.");
+
+ selenium.click(thirdComboInput);
+ selenium.typeKeys(thirdComboInput, "sa");
+ // FIXME why is this necessary?
+ selenium.typeKeys(thirdComboInput, " ");
+
+ count = selenium.getXpathCount(thirdComboSuggestions).intValue();
+ assertEquals(count, 4, "Number of suggestions after typing 'sa'.");
+
+ String[] suggestions = new String[4];
+ for (int i = 0; i < 4; i++) {
+ suggestions[i] = selenium.getText(format(thirdComboConcreteSuggestion, i + 1));
+ }
+
+ String[] expected = new String[] { "Sacramento", "Santa Fe", "Salem", "Salt Lake City" };
+
+ assertEqualsNoOrder(suggestions, expected, "Suggestions after typing 'sa'.");
+
+ try {
+ selenium.clickAt(format(thirdComboConcreteSuggestion, 4), "");
+ } catch (Exception ex) {
+ // TODO why the exception is thrown?
+ }
+
+ waitFor(1000);
+ String text = selenium.getValue(thirdComboInput);
+ assertEquals(text, "Salt Lake City", "Third suggestion was chosen.");
+ }
+
+ /**
+ * Tests the "View Source". It checks that the source code is not visible,
+ * clicks on the link, and checks the first 2 components of source code,
+ * i.e. that the source code begins with "<ui:composition".
+ */
+ @Test
+ public void testFirstComboBoxSource() {
+ // index has to be 2 because the combo box is in a div element
+ abstractTestSource(1, 2, "<", "ui:composition");
+ }
+
+ /**
+ * Tests the "View Source". It checks that the source code is not visible,
+ * clicks on the link, and checks the first 2 components of source code,
+ * i.e. that the source code begins with "<ui:composition".
+ */
+ @Test
+ public void testSecondComboBoxSource() {
+ // index has to be 2 because the combo box is in a div element
+ abstractTestSource(2, 2, "<", "ui:composition");
+ }
+
+ /**
+ * Tests the "View Source". It checks that the source code is not visible,
+ * clicks on the link, and checks the first 2 components of source code,
+ * i.e. that the source code begins with "<ui:composition".
+ */
+ @Test
+ public void testThirdComboBoxSource() {
+ // index has to be 2 because the combo box is in a div element
+ abstractTestSource(3, 2, "<", "ui:composition");
+ }
+
+ /**
+ * Loads the page containing the calendar component.
+ */
+ @BeforeMethod
+ private void loadPage() {
+ super.loadPage("richInputs", 3, "The component provides editable combobox element on the page.");
+ }
+
+}
Property changes on: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/comboBox/ComboBoxTestCase.java
___________________________________________________________________
Name: svn:executable
+ *
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/commandButton/CommandButtonTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/commandButton/CommandButtonTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/commandButton/CommandButtonTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,66 @@
+package org.jboss.richfaces.integrationTest.commandButton;
+
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.jboss.test.selenium.waiting.Wait;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+/**
+ * @author <a href="mailto:lfryc@redhat.com">Lukas Fryc</a>
+ * @version $Revision$
+ */
+public class CommandButtonTestCase extends AbstractSeleniumRichfacesTestCase {
+ /**
+ * Opens specified page
+ */
+ private void openPage() {
+ selenium.open(contextPath
+ + "/richfaces/commandButton.jsf?c=commandButton&tab=usage");
+ }
+
+ private String textInput = getLoc("ajax-support--input");
+ private String textOutput = formatLoc("command-button--text", 2);
+ private String helloOutput = formatLoc("command-button--text", 1);
+ private String exclamationOutput = formatLoc("command-button--text", 3);
+ private String hello = formatMess("command-button--hello");
+ private String exclamation = formatMess("command-button--exclamation");
+ private String commandButton = getLoc("command-button--button");
+ private String nonEmpty = getMess("ajax-support--non-empty");
+
+ @Test
+ public void testNonEmpty() {
+ openPage();
+ nonEmpty();
+ }
+
+ @Test
+ public void testEmpty() {
+ openPage();
+ empty();
+ }
+
+ @Test
+ public void testInterleaving() {
+ openPage();
+ nonEmpty();
+ empty();
+ nonEmpty();
+ empty();
+ }
+
+ public void nonEmpty() {
+ selenium.type(textInput, nonEmpty);
+ selenium.click(commandButton);
+ waitFor(Wait.DEFAULT_INTERVAL);
+ waitForTextEquals(textOutput, nonEmpty);
+ Assert.assertEquals(selenium.getText(helloOutput), hello);
+ Assert.assertEquals(selenium.getText(exclamationOutput), exclamation);
+ }
+
+ public void empty() {
+ selenium.type(textInput, "");
+ selenium.click(commandButton);
+ waitFor(Wait.DEFAULT_INTERVAL);
+ Assert.assertFalse(selenium.isElementPresent(textOutput));
+ }
+}
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/commandLink/CommandLinkTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/commandLink/CommandLinkTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/commandLink/CommandLinkTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,66 @@
+package org.jboss.richfaces.integrationTest.commandLink;
+
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.jboss.test.selenium.waiting.Wait;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+/**
+ * @author <a href="mailto:lfryc@redhat.com">Lukas Fryc</a>
+ * @version $Revision$
+ */
+public class CommandLinkTestCase extends AbstractSeleniumRichfacesTestCase {
+ /**
+ * Opens specified page
+ */
+ private void openPage() {
+ selenium.open(contextPath
+ + "/richfaces/commandLink.jsf?c=commandLink&tab=usage");
+ }
+
+ private String textInput = getLoc("ajax-support--input");
+ private String textOutput = formatLoc("command-button--text", 2);
+ private String helloOutput = formatLoc("command-button--text", 1);
+ private String exclamationOutput = formatLoc("command-button--text", 3);
+ private String hello = formatMess("command-button--hello");
+ private String exclamation = formatMess("command-button--exclamation");
+ private String commandLink = getLoc("command-link--link");
+ private String nonEmpty = getMess("ajax-support--non-empty");
+
+ @Test
+ public void testNonEmpty() {
+ openPage();
+ nonEmpty();
+ }
+
+ @Test
+ public void testEmpty() {
+ openPage();
+ empty();
+ }
+
+ @Test
+ public void testInterleaving() {
+ openPage();
+ nonEmpty();
+ empty();
+ nonEmpty();
+ empty();
+ }
+
+ public void nonEmpty() {
+ selenium.type(textInput, nonEmpty);
+ selenium.click(commandLink);
+ waitFor(Wait.DEFAULT_INTERVAL);
+ waitForTextEquals(textOutput, nonEmpty);
+ Assert.assertEquals(selenium.getText(helloOutput), hello);
+ Assert.assertEquals(selenium.getText(exclamationOutput), exclamation);
+ }
+
+ public void empty() {
+ selenium.type(textInput, "");
+ selenium.click(commandLink);
+ waitFor(Wait.DEFAULT_INTERVAL);
+ Assert.assertFalse(selenium.isElementPresent(textOutput));
+ }
+}
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/contextMenu/ContextMenuImageTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/contextMenu/ContextMenuImageTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/contextMenu/ContextMenuImageTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,179 @@
+/*
+ * JBoss, Home of Professional Open Source
+ *
+ * Copyright 2009, Red Hat Middleware LLC, and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
+
+package org.jboss.richfaces.integrationTest.contextMenu;
+
+import static org.testng.Assert.assertTrue;
+
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+/**
+ * Tests context menu in the first example.
+ *
+ * @author <a href="mailto:ppitonak@redhat.com">Pavol Pitonak</a>
+ * @version $Revision$
+ */
+public class ContextMenuImageTestCase extends AbstractSeleniumRichfacesTestCase {
+
+ private final String LOC_HEADER = getLoc("HEADER");
+ private final String LOC_IMAGE = getLoc("IMAGE");
+ private final String LOC_CONTEXT_MENU = getLoc("CONTEXT_MENU");
+ private final String LOC_ZOOM_IN = getLoc("ZOOM_IN");
+ private final String LOC_ZOOM_OUT = getLoc("ZOOM_OUT");
+
+ /**
+ * Clicks into image and verifies that the context menu is displayed.
+ */
+ @Test
+ public void testImageContextMenu() {
+ // open context menu
+ selenium.fireEvent(LOC_IMAGE, "contextmenu");
+
+ // check that context menu is visible
+ waitForElement(LOC_CONTEXT_MENU);
+ assertTrue(isDisplayed(LOC_CONTEXT_MENU), "Context menu should be visible.");
+ }
+
+ /**
+ * Tests zooming in. It gets width and height of the image, then opens the
+ * context menu and zooms in four times. Then it gets image's width and
+ * height again and checks that the image got bigger.
+ */
+ @Test
+ public void testZoomIn() {
+ // get the size of image at the beginning
+ int originalWidth = selenium.getElementWidth(LOC_IMAGE).intValue();
+ int originalHeight = selenium.getElementHeight(LOC_IMAGE).intValue();
+
+ // open context menu
+ selenium.fireEvent(LOC_IMAGE, "contextmenu");
+ waitForElement(LOC_ZOOM_IN);
+
+ // zoom in
+ selenium.click(LOC_ZOOM_IN);
+ selenium.click(LOC_ZOOM_IN);
+ selenium.click(LOC_ZOOM_IN);
+ selenium.click(LOC_ZOOM_IN);
+
+ // get the size of image after zooming in
+ int width = selenium.getElementWidth(LOC_IMAGE).intValue();
+ assertTrue(width > originalWidth, format(
+ "After zooming in, the image should be bigger (width {0}px -> {1}px).", originalWidth, width));
+
+ int height = selenium.getElementHeight(LOC_IMAGE).intValue();
+ assertTrue(height > originalHeight, format(
+ "After zooming in, the image should be bigger (height {0}px -> {1}px).", originalHeight, height));
+ }
+
+ /**
+ * Tests zooming out. It gets width and height of the image, then opens the
+ * context menu and zooms out four times. Then it gets image's width and
+ * height again and checks that the image got smaller.
+ */
+ @Test
+ void testZoomOut() {
+ // get the size of image at the beginning
+ int originalWidth = selenium.getElementWidth(LOC_IMAGE).intValue();
+ int originalHeight = selenium.getElementHeight(LOC_IMAGE).intValue();
+
+ // open context menu
+ selenium.fireEvent(LOC_IMAGE, "contextmenu");
+ waitForElement(LOC_ZOOM_OUT);
+
+ // zoom out
+ selenium.click(LOC_ZOOM_OUT);
+ selenium.click(LOC_ZOOM_OUT);
+ selenium.click(LOC_ZOOM_OUT);
+ selenium.click(LOC_ZOOM_OUT);
+
+ // get the size of image after zooming out
+ int width = selenium.getElementWidth(LOC_IMAGE).intValue();
+ assertTrue(originalWidth > width, format(
+ "After zooming out, the image should be smaller (width {0}px -> {1}px).", originalWidth, width));
+
+ int height = selenium.getElementHeight(LOC_IMAGE).intValue();
+ assertTrue(originalHeight > height, format(
+ "After zooming out, the image should be smaller (height {0}px -> {1}px).", originalHeight, height));
+ }
+
+ /**
+ * Tests zooming in and out. It gets width and height of the image, then
+ * opens the context menu and zooms in and out. Then it gets image's width
+ * and height again and checks that the image has the same proportions as at
+ * start.
+ */
+ @Test
+ void testZoomInZoomOut() {
+ // get the size of image at the beginning
+ int originalWidth = selenium.getElementWidth(LOC_IMAGE).intValue();
+ int originalHeight = selenium.getElementHeight(LOC_IMAGE).intValue();
+
+ // open context menu
+ selenium.fireEvent(LOC_IMAGE, "contextmenu");
+ waitForElement(LOC_ZOOM_IN);
+
+ selenium.click(LOC_ZOOM_IN);
+ selenium.click(LOC_ZOOM_OUT);
+
+ // get the size of image after zooming in and out
+ // it does not zoom accurately so there has to be some tolerance
+ int width = selenium.getElementWidth(LOC_IMAGE).intValue();
+ assertTrue(Math.abs(width - originalWidth) < 3, format(
+ "After zooming in and out, the image should have the same size (width {0}px -> {1}px).", originalWidth,
+ width));
+
+ int height = selenium.getElementHeight(LOC_IMAGE).intValue();
+ assertTrue(Math.abs(height - originalHeight) < 3, format(
+ "After zooming in and out, the image should have the same size (height {0}px -> {1}px).",
+ originalHeight, height));
+ }
+
+ /**
+ * Tests the "View Source" link. It checks that the source code is not
+ * visible, clicks on the link, and checks 8 lines of source code.
+ */
+ @Test
+ public void testPageSource() {
+ String[] strings = new String[] {
+ "<ui:composition xmlns=\"http://www.w3.org/1999/xhtml\"",
+ "<a4j:loadScript src=\"/scripts/picturesUtils.js\"/>",
+ "<h:panelGrid columns=\"1\" columnClasses=\"cent\">",
+ "<h:panelGroup id=\"picture\">",
+ "<h:graphicImage value=\"/richfaces/jQuery/images/pic1.jpg\" id=\"pic\" style=\"border : 5px solid #E4EAEF\"/>",
+ "<rich:contextMenu event=\"oncontextmenu\" attachTo=\"pic\" submitMode=\"none\">",
+ "<rich:menuItem value=\"Zoom In\" onclick=\"enlarge('pic');\" id=\"zin\"></rich:menuItem>",
+ "<rich:menuItem value=\"Zoom Out\" onclick=\"decrease('pic');\" id=\"zout\"></rich:menuItem>", };
+
+ abstractTestSource(1, "View Source", strings);
+ }
+
+ /**
+ * Loads the needed page.
+ */
+ @BeforeMethod
+ private void loadPage() {
+ openComponent("Context Menu");
+
+ // XXX: context menu opens in top left corner so it isn't visible if it
+ // scrolls down
+ // scrollIntoView(LOC_HEADER, true);
+ }
+}
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/contextMenu/ContextMenuTableTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/contextMenu/ContextMenuTableTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/contextMenu/ContextMenuTableTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,161 @@
+package org.jboss.richfaces.integrationTest.contextMenu;
+
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertFalse;
+import static org.testng.Assert.fail;
+
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+/**
+ *
+ * @author <a href="mailto:ppitonak@redhat.com">Pavol Pitonak</a>
+ * @version $Revision$
+ */
+public class ContextMenuTableTestCase extends AbstractSeleniumRichfacesTestCase {
+
+ private String xpathPrefix;
+
+ @Test
+ public void testTableContextMenu() {
+ xpathPrefix = "//fieldset[2]/div/form";
+
+ // check that the context menu is not visible
+ boolean present = selenium.isElementPresent(xpathPrefix + "/div/div");
+ assertFalse(present, "Context menu should be invisible at start.");
+
+ // check that the 'Last Menu Action' is empty
+ String text = selenium.getText(xpathPrefix
+ + "/table/tbody/tr/td[2]/span/div/div[2]");
+ assertEquals(text, "", "Last menu action should be empty.");
+
+ // open context menu on third line, first column
+ selenium.click(xpathPrefix
+ + "/table/tbody/tr/td[1]/table/tbody/tr[3]/td[1]");
+ waitForElement(xpathPrefix + "/div/div/div[1]");
+ text = selenium.getAttribute(xpathPrefix + "/div/div/div[1]@style");
+ assertFalse(text.contains("display: none;"),
+ "Context menu should be visible after clicking on first column.");
+
+ // open context menu on sixth line, second column
+ selenium.click(xpathPrefix
+ + "/table/tbody/tr/td[1]/table/tbody/tr[6]/td[2]");
+ waitForElement(xpathPrefix + "/div/div/div[1]");
+ text = selenium.getAttribute(xpathPrefix + "/div/div/div[1]@style");
+ assertFalse(text.contains("display: none;"),
+ "Context menu should be visible after clicking on second column.");
+
+ // open context menu on first line, third column (16773)
+ selenium.click(xpathPrefix
+ + "/table/tbody/tr/td[1]/table/tbody/tr[1]/td[3]");
+ waitForElement(xpathPrefix + "/div/div/div[1]");
+ text = selenium.getAttribute(xpathPrefix + "/div/div/div[1]@style");
+ assertFalse(text.contains("display: none;"),
+ "Context menu should be visible after clicking on third column.");
+ }
+
+ @Test
+ public void testClickOnCarDetails() {
+ xpathPrefix = "//fieldset[2]/div/form";
+ String text = null;
+
+ String producer = selenium.getText(xpathPrefix
+ + "/table/tbody/tr/td[1]/table/tbody/tr[3]/td[1]");
+ String model = selenium.getText(xpathPrefix
+ + "/table/tbody/tr/td[1]/table/tbody/tr[3]/td[2]");
+
+ // open context menu on third line, first column
+ selenium.click(xpathPrefix
+ + "/table/tbody/tr/td[1]/table/tbody/tr[3]/td[1]");
+ waitForElement(xpathPrefix + "/div/div/div[1]");
+ text = selenium.getAttribute(xpathPrefix + "/div/div/div[1]@style");
+ assertFalse(text.contains("display: none;"),
+ "Context menu should be visible after clicking on first column.");
+
+ // click '<car> details'
+ selenium.click(xpathPrefix + "/div/div/div[1]/div/div[1]/span[2]");
+ waitFor(400);
+ text = selenium.getText(xpathPrefix
+ + "/table/tbody/tr/td[2]/span/div/div[2]");
+ assertEquals(text, producer + " " + model + " details",
+ "Details of car:");
+ }
+
+ @Test
+ public void testClickOnPutCarToBasket() {
+ clickAction(1);
+ }
+
+ @Test
+ public void testClickOnReadComments() {
+ clickAction(2);
+ }
+
+ @Test
+ public void testClickOnGoToProducerSite() {
+ clickAction(3);
+ }
+
+ @Test
+ public void testContextMenuTableSource() {
+ abstractTestSource(2, 1, "<", "f:subview");
+ }
+
+ private void clickAction(int index) {
+ xpathPrefix = "//fieldset[2]/div/form";
+ String text = null;
+
+ String producer = selenium.getText(xpathPrefix
+ + "/table/tbody/tr/td[1]/table/tbody/tr[3]/td[1]");
+ String model = selenium.getText(xpathPrefix
+ + "/table/tbody/tr/td[1]/table/tbody/tr[3]/td[2]");
+
+ // open context menu on third line, first column
+ selenium.click(xpathPrefix
+ + "/table/tbody/tr/td[1]/table/tbody/tr[3]/td[1]");
+ waitForElement(xpathPrefix + "/div/div/div[1]");
+ text = selenium.getAttribute(xpathPrefix + "/div/div/div[1]@style");
+ assertFalse(text.contains("display: none;"),
+ "Context menu should be visible after clicking on first column.");
+
+ // click 'Actions'
+ selenium.click(xpathPrefix + "/div/div/div[2]");
+ waitFor(400);
+
+ // click 'Put <car> To Basket'
+ selenium.click(xpathPrefix + "/div/div/div[2]/div/div[" + index
+ + "]/span[2]");
+ waitFor(400);
+ text = selenium.getText(xpathPrefix
+ + "/table/tbody/tr/td[2]/span/div/div[2]");
+
+ switch (index) {
+ case 1:
+ assertEquals(text, "Put " + producer + " " + model + " To Basket",
+ "Action put to basket:");
+ break;
+ case 2:
+ assertEquals(text, "Read Comments", "Action read comments:");
+ break;
+ case 3:
+ assertEquals(text, "Go to " + producer + " site",
+ "Action go to site:");
+ break;
+ default:
+ fail("Wrong index.");
+ }
+ }
+
+ /**
+ * Loads the needed page.
+ */
+ @BeforeMethod
+ private void loadPage() {
+ super
+ .loadPage(
+ "richMenu",
+ 1,
+ "RichFaces Context menu is a component that allows to organize the hierarchical context menus");
+ }
+}
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/dataFilterSlider/DataFilterSliderTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/dataFilterSlider/DataFilterSliderTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/dataFilterSlider/DataFilterSliderTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,149 @@
+package org.jboss.richfaces.integrationTest.dataFilterSlider;
+
+import java.util.LinkedList;
+import java.util.List;
+
+import junit.framework.Assert;
+
+import org.jboss.richfaces.integrationTest.AbstractDataIterationTestCase;
+import org.jboss.test.selenium.waiting.Condition;
+import org.jboss.test.selenium.waiting.Wait;
+import org.testng.annotations.Test;
+
+/**
+ * @author <a href="mailto:lfryc@redhat.com">Lukas Fryc</a>
+ * @version $Revision$
+ */
+public class DataFilterSliderTestCase extends AbstractDataIterationTestCase {
+ /**
+ * Opens specified page
+ */
+ public void openPage() {
+ selenium.open(format("{0}/{1}", contextPath, PAGE));
+
+ scrollIntoView(header, true);
+ }
+
+ private final String PAGE = "richfaces/dataFilterSlider.jsf?c=dataFilterSlider&tab=usage";
+ private final String header = getLoc("data-filter-slider--header");
+ private final String cellsMileage = getLoc("data-filter-slider--table-cells--mileage-preformatted");
+ private final String cellsBrand = getLoc("data-filter-slider--table-cells--brand-preformatted");
+ private final int maxRowCount = Integer
+ .valueOf(getMess("data-filter-slider--count--max-rows-in-table"));
+ private final String brands = getMess("data-filter-slider--choices--brands");
+ private final String percentages = getMess("data-filter-slider--choices--slider-percentages");
+ private final String percentagesInterleaving = getMess("data-filter-slider--choices--slider-percentages-interleaving");
+ private final String percentageSimple = getMess("data-filter-slider--simple-slider-percentage");
+
+ @Test
+ public void simpleBrandTest() {
+ openPage();
+ testBrand(format(brands, 0));
+ }
+
+ @Test
+ public void simpleSliderTest() {
+ openPage();
+ testSlider(percentageSimple);
+ }
+
+ @Test
+ public void complexSliderTest() {
+ openPage();
+
+ List<Integer> lowMileages = testSlider(format(percentages, 0));
+ List<Integer> highMileages = testSlider(format(percentages, 1));
+ List<Integer> lowestMileages = testSlider(format(percentages, 2));
+ List<Integer> allMileages = testSlider(format(percentages, 3));
+
+ // check that each state of table contains all mileages in states with
+ // lesser specified max mileage (don't try to check tables that have
+ // maxRowCount and more rows, because tables are constrained by
+ // maxRowCount per table and so don't have to include all lesser tables)
+ Assert.assertTrue(allMileages.size() >= maxRowCount
+ || allMileages.containsAll(highMileages));
+ Assert.assertTrue(highMileages.size() >= maxRowCount
+ || highMileages.containsAll(lowMileages));
+ Assert.assertTrue(lowMileages.size() >= maxRowCount
+ || lowMileages.containsAll(lowestMileages));
+ // check that there is at least one mileage greater than slider minimum
+ Assert.assertFalse(lowestMileages.isEmpty());
+ }
+
+ @Test
+ public void interleavingMethodsTest() {
+ openPage();
+ testSlider(format(percentagesInterleaving, 0));
+ testBrand(format(brands, 0));
+ testSlider(format(percentagesInterleaving, 1));
+ testBrand(format(brands, 1));
+ testSlider(format(percentagesInterleaving, 2));
+ }
+
+ private void testBrand(String brand) {
+ final String table = getLoc("data-table-common--table");
+ final String linkBrandPreformatted = getLoc("data-filter-slider--link--brand-preformatted");
+
+ String linkBrand = format(linkBrandPreformatted, brand);
+
+ final String tableText = selenium.getText(table);
+ selenium.click(linkBrand);
+
+ Wait.dontFail().timeout(5000).until(new Condition() {
+ public boolean isTrue() {
+ return !tableText.equals(selenium.getText(table));
+ }
+ });
+
+ for (int row = 1; row <= selenium.getXpathCount(format(cellsBrand, 0))
+ .intValue(); row++) {
+ String rowBrand = selenium.getText(format(cellsBrand, row));
+ Assert.assertEquals(brand, rowBrand);
+ }
+ }
+
+ private List<Integer> testSlider(String percentage) {
+ clickSliderAtPercent(Integer.valueOf(percentage));
+ int maxMileage = getCurrentMileageFromInput();
+ return checkAllMileagesMaxAndReturnItsList(maxMileage);
+ }
+
+ private List<Integer> checkAllMileagesMaxAndReturnItsList(int maxMileage) {
+ List<Integer> list = new LinkedList<Integer>();
+ int rowCount = selenium.getXpathCount(format(cellsMileage, 0)).intValue();
+ for (int row = 1; row <= rowCount; row++) {
+ int rowMileage = Double.valueOf(
+ selenium.getText(format(cellsMileage, row))).intValue();
+ Assert.assertTrue(rowMileage <= maxMileage);
+ list.add(rowMileage);
+ }
+ return list;
+ }
+
+ private int getCurrentMileageFromInput() {
+ final String inputPrice = getLoc("data-filter-slider--input--price");
+ return Integer.valueOf(selenium.getValue(inputPrice));
+ }
+
+ private void clickSliderAtPercent(double percent) {
+ final String handle = getLoc("data-filter-slider--handle");
+ final String track = getLoc("data-filter-slider--track");
+
+ final Number handlePosition = selenium.getElementPositionLeft(handle);
+
+ int width = selenium.getElementWidth(track).intValue();
+ int height = selenium.getElementHeight(track).intValue();
+ String coords = format("{0,number,integer},{1}", width * percent / 100,
+ height / 2);
+
+ selenium.mouseDownAt(track, coords);
+ selenium.mouseUpAt(track, coords);
+
+ Wait.until(new Condition() {
+ public boolean isTrue() {
+ return !handlePosition.equals(selenium
+ .getElementPositionLeft(handle));
+ }
+ });
+ }
+}
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/dataGrid/DataGridTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/dataGrid/DataGridTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/dataGrid/DataGridTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,65 @@
+package org.jboss.richfaces.integrationTest.dataGrid;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import junit.framework.Assert;
+
+import org.jboss.richfaces.integrationTest.AbstractDataIterationTestCase;
+import org.testng.annotations.Test;
+
+/**
+ * @author <a href="mailto:lfryc@redhat.com">Lukas Fryc</a>
+ * @version $Revision$
+ */
+public class DataGridTestCase extends AbstractDataIterationTestCase {
+ /**
+ * Opens specified page
+ */
+ public void openPage() {
+ selenium.open(format("{0}/{1}", contextPath, PAGE));
+
+ scrollIntoView(table, true);
+ }
+
+ private final String PAGE = "richfaces/dataGrid.jsf?c=dataGrid&tab=usage";
+ private final String grid = getLoc("data-grid--cells--preformatted");
+ private final int cellsPerColumn = Integer
+ .valueOf(getMess("data-grid--cells-per-column"));
+ private final int cellsPerPage = Integer
+ .valueOf(getMess("data-grid--cells-per-page"));
+
+ @Test
+ public void functionalityTest() {
+ openPage();
+
+ final Set<String> cellTexts = new HashSet<String>();
+
+ while (getActivePage() < getLastVisiblePage()) {
+ if (!cellTexts.isEmpty()) {
+ gotoPage(buttonNextPage);
+ }
+
+ int cells = selenium.getXpathCount(format(grid, 0, 0)).intValue();
+ Assert.assertTrue(cells > 0 && cells <= cellsPerPage);
+
+ int rows = selenium.getXpathCount(format(grid, 0, 1)).intValue();
+
+
+ for (int row = 1; row <= rows; row++) {
+ int columns = selenium.getXpathCount(format(grid, row, 0))
+ .intValue();
+ Assert.assertTrue(columns > 0 && columns <= cellsPerColumn);
+
+ for (int column = 1; column <= columns; column++) {
+ String cellText = selenium
+ .getText(format(grid, row, column));
+ if (cellTexts.contains(cellText)) {
+ Assert.fail();
+ }
+ cellTexts.add(cellText);
+ }
+ }
+ }
+ }
+}
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/dataList/DataListTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/dataList/DataListTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/dataList/DataListTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,33 @@
+package org.jboss.richfaces.integrationTest.dataList;
+
+import junit.framework.Assert;
+
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.testng.annotations.Test;
+
+/**
+ * @author <a href="mailto:lfryc@redhat.com">Lukas Fryc</a>
+ * @version $Revision$
+ */
+public class DataListTestCase extends AbstractSeleniumRichfacesTestCase {
+
+ /**
+ * Opens specified page
+ */
+ public void openPage() {
+ selenium.open(format("{0}/{1}", contextPath, PAGE));
+
+ scrollIntoView(header, true);
+ }
+
+ private final String PAGE = "richfaces/dataLists.jsf?c=dataList&tab=usage";
+ private final String header = getLoc("data-list--header");
+
+ @Test
+ public void staticContentTest() {
+ openPage();
+
+ Assert.assertTrue(selenium.isTextPresent(getMess("data-list--part1")));
+ Assert.assertTrue(selenium.isTextPresent(getMess("data-list--part2")));
+ }
+}
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/dataScroller/DataScrollerTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/dataScroller/DataScrollerTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/dataScroller/DataScrollerTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,146 @@
+package org.jboss.richfaces.integrationTest.dataScroller;
+
+import junit.framework.Assert;
+
+import org.apache.commons.lang.StringUtils;
+import org.jboss.richfaces.integrationTest.AbstractDataIterationTestCase;
+import org.testng.annotations.Test;
+
+/**
+ * @author <a href="mailto:lfryc@redhat.com">Lukas Fryc</a>
+ * @version $Revision$
+ */
+public class DataScrollerTestCase extends AbstractDataIterationTestCase {
+ /**
+ * Opens specified page
+ */
+ public void openPage() {
+ selenium.open(format("{0}/{1}", contextPath, PAGE));
+
+ scrollIntoView(header, true);
+ }
+
+ private final String PAGE = "richfaces/dataTableScroller.jsf?c=dataTableScroller&tab=usage";
+ private final String header = getLoc("data-scroller--header");
+ private final String[] numberedPages = StringUtils.split(getMess("data-scroller--numbered-pages"), ',');
+
+ @Test
+ public void numberedPageTest() {
+ openPage();
+ String tableText = getTableText();
+ for (String page : numberedPages) {
+ gotoPage(format(buttonPagePreformatted, Integer.valueOf(page)));
+ tableText = checkThatTextDiffersAndReturn(tableText);
+ }
+ gotoFirstPage();
+ checkThatTextDiffersAndReturn(tableText);
+ checkFirstPage();
+ }
+
+ @Test(dependsOnMethods = "numberedPageTest")
+ public void remembersActivePage() {
+ openPage();
+ gotoFirstPage();
+ Integer page = 2;
+ gotoPage(format(buttonPagePreformatted, page));
+ selenium.refresh();
+ Assert.assertTrue(page.equals(getActivePage()));
+ openPage();
+ Assert.assertTrue(page.equals(getActivePage()));
+ }
+
+ @Test(dependsOnMethods = "numberedPageTest")
+ public void lastPageTest() {
+ openPage();
+ gotoFirstPage();
+ String tableText = getTableText();
+ gotoPage(buttonLastPage);
+ checkThatTextDiffersAndReturn(tableText);
+ checkLastPage();
+ }
+
+ @Test(dependsOnMethods = "lastPageTest")
+ public void firstPageTest() {
+ openPage();
+ gotoFirstPage();
+ gotoPage(buttonLastPage);
+ String tableText = getTableText();
+ gotoPage(buttonFirstPage);
+ checkThatTextDiffersAndReturn(tableText);
+ checkFirstPage();
+ }
+
+ @Test(dependsOnMethods = "numberedPageTest")
+ public void nextPageTest() {
+ openPage();
+ gotoFirstPage();
+ String tableText = getTableText();
+ for (int page = 2; page < getLastVisiblePage(); page++) {
+ gotoPage(buttonNextPage);
+ checkNonExtremePage();
+ tableText = checkThatTextDiffersAndReturn(tableText);
+ }
+ gotoPage(buttonNextPage);
+ checkThatTextDiffersAndReturn(tableText);
+ checkLastPage();
+ }
+
+ @Test(dependsOnMethods = "lastPageTest")
+ public void previousPageTest() {
+ openPage();
+ gotoFirstPage();
+ gotoPage(buttonLastPage);
+ String tableText = getTableText();
+ for (int page = getActivePage() - 1; page > 1; page--) {
+ gotoPage(buttonPreviousPage);
+ checkNonExtremePage();
+ tableText = checkThatTextDiffersAndReturn(tableText);
+ }
+ gotoPage(buttonPreviousPage);
+ checkThatTextDiffersAndReturn(tableText);
+ checkFirstPage();
+ }
+
+ private void checkFirstPage() {
+ Assert.assertTrue(belongsClass("rich-datascr-button-dsbld",
+ buttonFirstPage));
+ Assert.assertTrue(belongsClass("rich-datascr-button-dsbld",
+ buttonPreviousPage));
+ Assert.assertTrue(belongsClass("rich-datascr-button", buttonNextPage));
+ Assert.assertTrue(belongsClass("rich-datascr-button", buttonLastPage));
+ Assert.assertTrue("1".equals(selenium.getText(outputActivePage)));
+ }
+
+ private void checkNonExtremePage() {
+ Assert.assertTrue(belongsClass("rich-datascr-button", buttonFirstPage));
+ Assert.assertTrue(belongsClass("rich-datascr-button",
+ buttonPreviousPage));
+ Assert.assertTrue(belongsClass("rich-datascr-button", buttonNextPage));
+ Assert.assertTrue(belongsClass("rich-datascr-button", buttonLastPage));
+ String activePage = selenium.getText(outputActivePage);
+ Assert.assertFalse("1".equals(activePage));
+ Assert.assertFalse(getLastVisiblePage().toString().equals(activePage));
+ }
+
+ private void checkLastPage() {
+ Assert.assertTrue(belongsClass("rich-datascr-button", buttonFirstPage));
+ Assert.assertTrue(belongsClass("rich-datascr-button",
+ buttonPreviousPage));
+ Assert.assertTrue(belongsClass("rich-datascr-button-dsbld",
+ buttonNextPage));
+ Assert.assertTrue(belongsClass("rich-datascr-button-dsbld",
+ buttonLastPage));
+ Assert.assertTrue(getLastVisiblePage().toString().equals(
+ selenium.getText(outputActivePage)));
+ }
+
+ private void gotoFirstPage() {
+ gotoPage(buttonFirstPage);
+ }
+
+ private String checkThatTextDiffersAndReturn(String lastTableText) {
+ String tableText = getTableText();
+ Assert.assertFalse(lastTableText.equals(tableText));
+ return tableText;
+ }
+}
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/dataTable/DataTableTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/dataTable/DataTableTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/dataTable/DataTableTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,353 @@
+package org.jboss.richfaces.integrationTest.dataTable;
+
+import java.text.DecimalFormat;
+import java.text.NumberFormat;
+import java.text.ParseException;
+
+import junit.framework.Assert;
+
+import org.apache.commons.lang.StringUtils;
+import org.jboss.richfaces.integrationTest.AbstractDataIterationTestCase;
+import org.jboss.test.selenium.dom.Event;
+import org.jboss.test.selenium.waiting.Condition;
+import org.jboss.test.selenium.waiting.Wait;
+import org.testng.annotations.Test;
+
+/**
+ * @author <a href="mailto:lfryc@redhat.com">Lukas Fryc</a>
+ * @version $Revision$
+ */
+public class DataTableTestCase extends AbstractDataIterationTestCase {
+ {
+ // each test will be ran in separated browser session
+ setCleanSessionForEachMethod(true);
+ }
+
+ /**
+ * Opens specified page
+ */
+ private void openPage(final String tabTitle,
+ String scrollToLocator) {
+ openComponent("Column");
+ openTab(tabTitle);
+ scrollIntoView(scrollToLocator, true);
+ }
+
+ private final String modifiableTableCells = getLoc("data-table-modifiable--table-cell--preformatted-locators");
+
+ @Test
+ public void wholeDataTableContentTest() {
+ openPage(getMsg("data-table--open-tab"), getLoc("data-table--header"));
+
+ String expected = getMess("data-table--text--whole-table");
+ String text = selenium
+ .getText(getLoc("data-table--output--whole-table"));
+
+ Assert.assertEquals(expected, text);
+ }
+
+ @Test
+ public void extendedDataTableTest() throws ParseException {
+
+ String actual;
+ final String tableCellHighestBid = getLoc("data-table-extended--table-cell--highest-bid");
+ final String tableCellAmount = getLoc("data-table-extended--table-cell--amount");
+ final String inputYoutBid = getLoc("data-table-extended--input--your-bid");
+ final String linkPlaceBid = getLoc("data-table-extended--link--place-bid");
+
+ final String header = buttonNextPage;
+
+ // opens tab
+ openPage(getMsg("data-table-extended--open-tab"), header);
+
+ // get a actual value of highest bid in specified row
+ actual = selenium.getText(tableCellHighestBid);
+ NumberFormat numberFormat = DecimalFormat.getInstance();
+ final double highestBid = numberFormat.parse(actual.replace("$", ""))
+ .doubleValue();
+
+ // asserts blank value of "amount" cell
+ Assert.assertTrue(StringUtils
+ .isBlank(selenium.getText(tableCellAmount)));
+
+ // fill new highest bid like a number smaller than actual highest bid
+ selenium.type(inputYoutBid, Double.toString(highestBid - 1));
+ selenium.click(linkPlaceBid);
+
+ // waits for validation fails message
+ waitForText(getMess("data-table-extended--message--lower-bid"));
+
+ // fix your bid to number greater than actual bid
+ selenium.type(inputYoutBid, Double.toString(highestBid + 1));
+ selenium.click(linkPlaceBid);
+
+ // test that amount was saved as a highest bid
+ final String yourBid = formatMess(
+ "data-table-extended--format--amount", highestBid + 1);
+ Wait.until(new Condition() {
+ public boolean isTrue() {
+ String actual = selenium.getText(tableCellAmount);
+ if (StringUtils.isNotBlank(actual)) {
+ Assert.assertEquals(yourBid, actual);
+ return true;
+ }
+ return false;
+ }
+ });
+ Assert.assertEquals(yourBid, selenium.getText(tableCellHighestBid));
+
+ // relocate on second page
+ selenium.click(buttonNextPage);
+ Wait.until(new Condition() {
+ public boolean isTrue() {
+ return "2".equals(selenium.getText(outputActivePage));
+ }
+ });
+
+ // relocate on first page
+ selenium.click(buttonPreviousPage);
+ Wait.until(new Condition() {
+ public boolean isTrue() {
+ return "1".equals(selenium.getText(outputActivePage));
+ }
+ });
+
+ // check if all things stay changed
+ actual = selenium.getText(tableCellAmount);
+ Assert.assertEquals(yourBid, actual);
+ actual = selenium.getText(tableCellHighestBid);
+ Assert.assertEquals(yourBid, actual);
+ }
+
+ @Test
+ public void modifiableDataModelSortingTest() {
+ // opens tab
+ openPage(getMsg("data-table-modifiable--open-tab"), table);
+
+ final String tableHeaderCellKey = getLoc("data-table-modifiable--table-header-cell--key");
+
+ // clicks on "key" column-header to sort table by keys
+ final String tableContentBeforeSorting = selenium.getText(table);
+ selenium.click(tableHeaderCellKey);
+ Wait.dontFail().until(new Condition() {
+ public boolean isTrue() {
+ return !tableContentBeforeSorting.equals(selenium
+ .getText(table));
+ }
+ });
+
+ // check if keys on all pages are sorted in right way
+ int pageCount = selenium.getXpathCount(
+ format(buttonPagePreformatted, 0)).intValue();
+ String lastText = null; // remembers last cell text
+ for (int i = 1; i <= pageCount; i++) {
+ // switch on the wanted page
+ final String buttonPage = format(buttonPagePreformatted, i);
+ selenium.click(buttonPage);
+ Wait.until(new Condition() {
+ public boolean isTrue() {
+ return belongsClass("rich-datascr-act", buttonPage);
+ }
+ });
+
+ // count how many rows (cells in one column) table have
+ int cellCount = selenium.getXpathCount(
+ format(modifiableTableCells, 0)).intValue();
+
+ // checks that columns are correctly sorted
+ for (int j = 1; j <= cellCount; j++) {
+ String cell = format(modifiableTableCells, j);
+ String cellText = selenium.getText(cell);
+ if (lastText != null && cellText.compareToIgnoreCase(lastText) <= 0) {
+ Assert.fail();
+ }
+ lastText = cellText;
+ }
+ }
+ }
+
+ @Test
+ public void modifiableDataModelSearchingTest() {
+ // opens tab
+ openPage(getMsg("data-table-modifiable--open-tab"), table);
+
+ String expected, actual;
+ final String inputAssignee = getLoc("data-table-modifiable--input--assignee");
+ final String assigneeName = getMess("data-model-modifiable--input--assignee-name");
+
+ // types a name to the assignee column input
+ final String tableContentBeforeSorting = selenium.getText(table);
+ selenium.type(inputAssignee, assigneeName);
+ selenium.fireEvent(inputAssignee, Event.KEYUP);
+ Wait.dontFail().until(new Condition() {
+ public boolean isTrue() {
+ return !tableContentBeforeSorting.equals(selenium
+ .getText(table));
+ }
+ });
+
+ // check how many pages should be displayed
+ expected = getMess("data-model-modifiable--count--assignee-table-pages");
+ String pageCount = selenium.getXpathCount(
+ format(buttonPagePreformatted, 0)).toString();
+ Assert.assertEquals(expected, pageCount);
+
+ // checks how many columns should be displayed
+ expected = getMess("data-model-modifiable--count--assignee-table-rows");
+ String cellCount = selenium.getXpathCount(
+ format(modifiableTableCells, 0)).toString();
+ Assert.assertEquals(expected, cellCount);
+
+ // checks that assignee column contains assignee name
+ actual = selenium
+ .getText(getLoc("data-table-modifiable--table-cell--assignee"));
+ Assert.assertTrue(actual.contains(assigneeName));
+ }
+
+ @Test
+ public void editableTableWithModalPanelEditTest() {
+ final int row = 2;
+ final String linkEdit = formatLoc("data-table-editable--link--edit",
+ row);
+ final String panelEdit = getLoc("data-table-editable--panel--edit");
+ final String outputPrice = formatLoc(
+ "data-table-editable--output--price", row);
+ final String inputPrice = getLoc("data-table-editable--input--price");
+ final String buttonStore = getLoc("data-table-editable--button--store");
+
+ // opens tab
+ openPage(getMsg("data-table-editable--open-tab"), table);
+
+ // get a initial value of selected row
+ int value = Integer.valueOf(selenium.getText(outputPrice));
+
+ // open and wait for editation modal panel
+ selenium.click(linkEdit);
+ Wait.until(new Condition() {
+ public boolean isTrue() {
+ return !"none".equals(getStyle(panelEdit, "display"));
+ }
+ });
+
+ // check that value in input is same like initial
+ Assert.assertEquals(selenium.getValue(inputPrice), Integer
+ .toString(value));
+
+ // increase price in input
+ value += 2;
+ selenium.type(inputPrice, Integer.toString(value));
+
+ // store new price and wait for modal panel disappears
+ selenium.click(buttonStore);
+ Wait.until(new Condition() {
+ public boolean isTrue() {
+ return "none".equals(getStyle(panelEdit, "display"));
+ }
+ });
+
+ // check that new price was stored successfully
+ Assert.assertEquals(selenium.getText(outputPrice), Integer
+ .toString(value));
+
+ // goto next page and then back to first
+ gotoNextAndThenBack();
+
+ // check that new price is shown right after page movement
+ Assert.assertEquals(selenium.getText(outputPrice), Integer
+ .toString(value));
+ }
+
+ @Test
+ public void editableTableWithModalPanelDeleteTest() {
+ final int row = 2;
+ final String linkDelete = formatLoc(
+ "data-table-editable--link--delete", row);
+ final String panelDelete = getLoc("data-table-editable--panel--delete");
+ final String outputPrice = formatLoc(
+ "data-table-editable--output--price", row);
+ final String outputPriceAbove = formatLoc(
+ "data-table-editable--output--price", row - 1);
+ final String outputPriceBelow = formatLoc(
+ "data-table-editable--output--price", row + 1);
+ final String buttonYes = getLoc("data-table-editable--button--yes");
+ final String buttonCancel = getLoc("data-table-editable--button--cancel");
+
+ // opens tab
+ openPage(getMsg("data-table-editable--open-tab"), table);
+
+ // get a initial value of selected row and its neighbour
+ String value = selenium.getText(outputPrice);
+ String valueAbove = selenium.getText(outputPriceAbove);
+ String valueBelow = selenium.getText(outputPriceBelow);
+
+ // open delete modal panel
+ selenium.click(linkDelete);
+ Wait.until(new Condition() {
+ public boolean isTrue() {
+ return !"none".equals(getStyle(panelDelete, "display"));
+ }
+ });
+
+ // try to cancel delete action
+ selenium.click(buttonCancel);
+ Wait.until(new Condition() {
+ public boolean isTrue() {
+ return "none".equals(getStyle(panelDelete, "display"));
+ }
+ });
+
+ // check that nothing happened with data model
+ Assert.assertEquals(value, selenium.getText(outputPrice));
+ Assert.assertEquals(valueAbove, selenium.getText(outputPriceAbove));
+ Assert.assertEquals(valueBelow, selenium.getText(outputPriceBelow));
+
+ // try to open delete modal panel again
+ selenium.click(linkDelete);
+ Wait.until(new Condition() {
+ public boolean isTrue() {
+ return !"none".equals(getStyle(panelDelete, "display"));
+ }
+ });
+
+ // try to cancel delete action
+ selenium.click(buttonYes);
+ Wait.until(new Condition() {
+ public boolean isTrue() {
+ return "none".equals(getStyle(panelDelete, "display"));
+ }
+ });
+
+ // check that value below moved to place where was value
+ // and that nothing happened with value above
+ Assert.assertEquals(valueBelow, selenium.getText(outputPrice));
+ Assert.assertEquals(valueAbove, selenium.getText(outputPriceAbove));
+
+ // goto next page and then back to first
+ gotoNextAndThenBack();
+
+ // check that value below moved to place where was value
+ // and that nothing happened with value above
+ Assert.assertEquals(valueBelow, selenium.getText(outputPrice));
+ Assert.assertEquals(valueAbove, selenium.getText(outputPriceAbove));
+ }
+
+ private void gotoNextAndThenBack() {
+ Assert.assertEquals("1", selenium.getText(outputActivePage));
+
+ // go to next page
+ selenium.click(buttonNextPage);
+ Wait.until(new Condition() {
+ public boolean isTrue() {
+ return "2".equals(selenium.getText(outputActivePage));
+ }
+ });
+
+ // go back to previous page
+ selenium.click(buttonPreviousPage);
+ Wait.until(new Condition() {
+ public boolean isTrue() {
+ return "1".equals(selenium.getText(outputActivePage));
+ }
+ });
+ }
+}
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/dataTable/TableFilteringTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/dataTable/TableFilteringTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/dataTable/TableFilteringTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,134 @@
+package org.jboss.richfaces.integrationTest.dataTable;
+
+import junit.framework.Assert;
+
+import org.apache.commons.lang.StringUtils;
+import org.jboss.richfaces.integrationTest.AbstractDataIterationTestCase;
+import org.jboss.test.selenium.dom.Event;
+import org.jboss.test.selenium.waiting.Retrieve;
+import org.jboss.test.selenium.waiting.Wait;
+import org.testng.annotations.Test;
+
+/**
+ * @author <a href="mailto:lfryc@redhat.com">Lukas Fryc</a>
+ * @version $Revision$
+ */
+public class TableFilteringTestCase extends AbstractDataIterationTestCase {
+ /**
+ * Opens specified page
+ */
+ public void openPage(String page) {
+ selenium.open(format("{0}/{1}", contextPath, page));
+
+ scrollIntoView(table, true);
+ }
+
+ private final String inputState = getLoc("table-filtering--input--state-name");
+ private final String inputCapital = getLoc("table-filtering--input--state-capital");
+ private final String cellsState = getLoc("table-filtering--table-cell--state-name-preformatted");
+ private final String cellsCapital = getLoc("table-filtering--table-cell--state-capital-preformatted");
+ private final String[] statePrefixes = StringUtils.splitPreserveAllTokens(
+ getMess("table-filtering--input--state-prefixes"), ',');
+ private final String[] capitalPrefixes = StringUtils
+ .splitPreserveAllTokens(
+ getMess("table-filtering--input--capital-prefixes"), ',');
+ private final String selectTimezone = getLoc("table-filtering-external--select--timezone");
+ private final String optionTimezoneSelected = getLoc("table-filtering-external--option--selected");
+ private final String cellsTimezone = cellsCapital;
+ private final String outputTimezonePreformatted = getMess("data-filtering-external--output--timezone-preformatted");
+ private final String[] pairs = StringUtils.splitPreserveAllTokens(
+ getMess("table-filtering-external--input--pairs"), '|');
+
+ @Test
+ public void builtInFilteringTest() {
+ openPage("richfaces/filteringFeature.jsf?c=filtering&tab=usage");
+
+ Assert.assertTrue(statePrefixes.length == capitalPrefixes.length);
+
+ for (int i = 0; i < statePrefixes.length; i++) {
+ final String statePrefix = statePrefixes[i];
+ final String capitalPrefix = capitalPrefixes[i];
+
+ String tableText = selenium.getText(table);
+ selenium.type(inputState, statePrefix);
+ selenium.fireEvent(inputState, Event.KEYUP);
+ waitForTextChanges(table, tableText);
+ checkFiltering();
+
+ tableText = selenium.getText(table);
+ selenium.type(inputCapital, capitalPrefix);
+ selenium.fireEvent(inputCapital, Event.KEYUP);
+ waitForTextChanges(table, tableText);
+ checkFiltering();
+ }
+ }
+
+ @Test
+ public void externalFilteringTest() {
+ openPage("richfaces/filteringFeature.jsf?c=filtering&tab=ex-usage");
+
+ for (int i = 0; i < pairs.length; i++) {
+ String[] pair = StringUtils.splitPreserveAllTokens(pairs[i], ':');
+
+ String tableText = selenium.getText(table);
+ selenium.type(inputState, pair[0]);
+ selenium.fireEvent(inputState, Event.KEYUP);
+ Wait.dontFail().timeout(5000).waitForChange(tableText, retrieveTableText);
+ checkExternalFiltering();
+
+ tableText = selenium.getText(table);
+ selenium.select(selectTimezone, pair[1]);
+ selenium.fireEvent(selectTimezone, Event.CHANGE);
+ Wait.dontFail().timeout(5000).waitForChange(tableText, retrieveTableText);
+ checkExternalFiltering();
+ }
+ }
+
+ Retrieve<String> retrieveTableText = new Retrieve<String>() {
+ public String retrieve() {
+ return selenium.getText(table);
+ }
+ };
+
+ private void checkFiltering() {
+ String statePrefix = selenium.getValue(inputState);
+ String capitalPrefix = selenium.getValue(inputCapital);
+
+ int rows = selenium.getXpathCount(format(cellsState, 0)).intValue();
+
+ for (int row = 1; row <= rows; row++) {
+ if (statePrefix.length() > 0) {
+ String state = selenium.getText(format(cellsState, row));
+ Assert.assertTrue(state.startsWith(statePrefix));
+ }
+ if (capitalPrefix.length() > 0) {
+ String capital = selenium.getText(format(cellsCapital, row));
+ Assert.assertTrue(capital.startsWith(capitalPrefix));
+ }
+ }
+ }
+
+ private void checkExternalFiltering() {
+ String statePrefix = selenium.getValue(inputState);
+ String selectedTimezone = selenium.getText(optionTimezoneSelected);
+
+ int rows = selenium.getXpathCount(format(cellsState, 0)).intValue();
+
+ for (int row = 1; row <= rows; row++) {
+ if (statePrefix.length() > 0) {
+ String state = selenium.getText(format(cellsState, row));
+ Assert.assertTrue(state.startsWith(statePrefix));
+ }
+ String actualTimezone = selenium
+ .getText(format(cellsTimezone, row));
+ if (StringUtils.isNotBlank(selectedTimezone)) {
+ String expected = format(outputTimezonePreformatted,
+ selectedTimezone);
+ Assert.assertEquals(expected, actualTimezone);
+ } else {
+ String prefix = format(outputTimezonePreformatted, "");
+ actualTimezone.startsWith(prefix);
+ }
+ }
+ }
+}
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/dataTable/TableSortingTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/dataTable/TableSortingTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/dataTable/TableSortingTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,96 @@
+package org.jboss.richfaces.integrationTest.dataTable;
+
+
+import org.apache.commons.lang.StringUtils;
+import org.jboss.richfaces.integrationTest.AbstractDataIterationTestCase;
+import org.jboss.test.selenium.waiting.Condition;
+import org.jboss.test.selenium.waiting.Wait;
+import org.testng.annotations.Test;
+
+/**
+ * @author <a href="mailto:lfryc@redhat.com">Lukas Fryc</a>
+ * @version $Revision$
+ */
+public class TableSortingTestCase extends AbstractDataIterationTestCase {
+ /**
+ * Opens specified page
+ */
+ public void openPage(String page) {
+ selenium.open(format("{0}/{1}", contextPath, page));
+
+ scrollIntoView(table, true);
+ }
+
+ private final String table = getLoc("data-table-common--table");
+ private final String headerCellState = getLoc("table-sorting--header-cell--state");
+ private final String headerCellCapital = getLoc("table-sorting--header-cell--capital");
+ private final String srcSortIconRelative = getLoc("table-sorting--image-src--sort-icon-relative");
+ private final String srcSortIconState = format(srcSortIconRelative,
+ headerCellState);
+ private final String srcSortIconCapital = format(srcSortIconRelative,
+ headerCellCapital);
+ private final String cellsState = getLoc("table-sorting--cells--state-preformatted");
+ private final String cellsCapital = getLoc("table-sorting--cells--capital-preformatted");
+
+ @Test
+ public void builtInSortingTest() {
+ openPage("richfaces/sortingFeature.jsf?c=sorting&tab=usage");
+
+ String iconSrc = selenium.getAttribute(srcSortIconState);
+ selenium.click(headerCellState);
+ iconSrc = waitForAttributeChangesAndReturn(srcSortIconState, iconSrc);
+ checkSorting(cellsState);
+
+ selenium.click(headerCellState);
+ waitForAttributeChanges(srcSortIconState, iconSrc);
+ checkSorting(cellsState);
+
+ iconSrc = selenium.getAttribute(srcSortIconCapital);
+ selenium.click(headerCellCapital);
+ iconSrc = waitForAttributeChangesAndReturn(srcSortIconCapital, iconSrc);
+ checkSorting(cellsCapital);
+
+ selenium.click(headerCellCapital);
+ waitForAttributeChanges(srcSortIconCapital, iconSrc);
+ checkSorting(cellsCapital);
+ }
+
+ private final String buttonSort = getLoc("table-sorting-external--button--sort");
+ private final String selectColumn = getLoc("table-sorting-external--select--column");
+ private final String selectOrder = getLoc("table-sorting-external--select--order");
+ private final String[] externalSortingColumns = StringUtils
+ .splitPreserveAllTokens(getMess("table-sorting-external--columns"),
+ '#');
+ private final String[] externalColumns = new String[] {
+ getLoc("table-sorting-external--cells--column1-preformatted"),
+ getLoc("table-sorting-external--cells--column2-preformatted"),
+ getLoc("table-sorting-external--cells--column3-preformatted") };
+
+ @Test
+ public void externalSortingTest() {
+ openPage("richfaces/sortingFeature.jsf?c=sorting&tab=ex-usage");
+
+ final int columns = externalSortingColumns.length;
+
+ for (int column = 0; column < columns; column++) {
+ String[] trio = StringUtils.splitPreserveAllTokens(
+ externalSortingColumns[column], '|');
+ selenium.select(format(selectColumn, trio[0]), trio[1]);
+ selenium.select(format(selectOrder, trio[0]), trio[2]);
+ Wait.until(new Condition() {
+ public boolean isTrue() {
+ return !selenium.isElementPresent(format("{0}/@disabled",
+ buttonSort));
+ }
+ });
+ }
+
+ String tableText = getTableText();
+ selenium.click(buttonSort);
+ waitForTextChanges(table, tableText);
+
+ checkSortingForColumnOrder(externalColumns);
+ }
+
+
+}
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/dragSupport/DragSupportTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/dragSupport/DragSupportTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/dragSupport/DragSupportTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,183 @@
+package org.jboss.richfaces.integrationTest.dragSupport;
+
+import java.util.regex.Pattern;
+
+import junit.framework.Assert;
+
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.jboss.test.selenium.actions.Drag;
+import org.jboss.test.selenium.waiting.Condition;
+import org.jboss.test.selenium.waiting.Wait;
+import org.testng.annotations.Test;
+
+/**
+ * @author <a href="mailto:lfryc@redhat.com">Lukas Fryc</a>
+ * @version $Revision$
+ */
+public class DragSupportTestCase extends AbstractSeleniumRichfacesTestCase {
+ {
+ // each test will be ran in separated browser session
+ setCleanSessionForEachMethod(true);
+ }
+
+ /**
+ * Opens specified page
+ */
+ private void openPage() {
+ selenium.open(contextPath
+ + "/richfaces/dragSupport.jsf?c=dragSupport&tab=usage");
+ scrollIntoView(header, true);
+ }
+
+ private String header = getLoc("drag-support--header");
+ private String indicator = getLoc("drag-support--div--indicator");
+ private String classIndicator = getLoc("drag-support--class--indicator");
+ private String imageSourceIndicator = getLoc("drag-support--image-source--indicator");
+ private String itemTexts = getMess("drag-support--text--items");
+ private String itemPattern = getLoc("drag-support--div--item");
+ private String targets = getLoc("drag-support--div--targets");
+ private String relativeFirstInsertedItem = getLoc("drag-support--relative--first-inserted-item");
+ private String regexpMovingClass = getMess("drag-support--regexp--moving--class");
+ private String regexpMovingImageSource = getMess("drag-support--regexp--moving--image-source");
+ private String regexpAcceptingClass = getMess("drag-support--regexp--accepting--class");
+ private String regexpAcceptingImageSource = getMess("drag-support--regexp--accepting--image-source");
+ private String regexpRejectingClass = getMess("drag-support--regexp--rejecting--class");
+ private String regexpRejectingImageSource = getMess("drag-support--regexp--rejecting--image-source");
+
+ @Test
+ public void testMoving() {
+ accepting(0);
+ }
+
+ @Test
+ public void testAcceptingEnter() {
+ accepting(1);
+ }
+
+ @Test
+ public void testAcceptingDrop() {
+ accepting(2);
+ }
+
+ @Test
+ public void testRejectingEnter() {
+ rejecting(1);
+ }
+
+ @Test
+ public void testRejectingDrop() {
+ rejecting(2);
+ }
+
+ private void accepting(int phase) {
+ openPage();
+
+ String itemText = format(itemTexts, 1);
+ String item = format(itemPattern, itemText);
+ String target = format(targets, 1);
+
+ if (phase == 0) {
+ Assert.assertTrue(selenium.isElementPresent(indicator));
+ Assert.assertEquals("none", getStyle(indicator, "display"));
+ }
+
+ Drag drag = new Drag(selenium, item, target);
+
+ drag.move();
+
+ if (phase == 0) {
+ Wait.until(new Condition() {
+ public boolean isTrue() {
+ return "block".equals(getStyle(indicator, "display"));
+ }
+ });
+
+ Assert.assertTrue(Pattern.matches(regexpMovingClass, selenium
+ .getAttribute(classIndicator)));
+ Assert.assertTrue(Pattern.matches(regexpMovingImageSource, selenium
+ .getAttribute(imageSourceIndicator)));
+ }
+
+ drag.enter();
+
+ if (phase == 1) {
+ Wait.until(new Condition() {
+ public boolean isTrue() {
+ return "block".equals(getStyle(indicator, "display"));
+ }
+ });
+
+ Assert.assertEquals("block", getStyle(indicator, "display"));
+ Assert.assertTrue(Pattern.matches(regexpAcceptingClass, selenium
+ .getAttribute(classIndicator)));
+ Assert.assertTrue(Pattern.matches(regexpAcceptingImageSource,
+ selenium.getAttribute(imageSourceIndicator)));
+ }
+
+ String firstInsertedItem = format(relativeFirstInsertedItem, target);
+
+ if (phase == 2) {
+ Assert.assertFalse(selenium.isElementPresent(firstInsertedItem));
+ }
+
+ drag.drop();
+
+ if (phase == 2) {
+ Wait.until(new Condition() {
+ public boolean isTrue() {
+ return "none".equals(getStyle(indicator, "display"));
+ }
+ });
+
+ Assert.assertTrue(selenium.isElementPresent(firstInsertedItem));
+ Assert.assertFalse(selenium.isElementPresent(item));
+
+ String actual = selenium.getText(firstInsertedItem);
+ Assert.assertEquals(itemText, actual);
+ }
+ }
+
+ private void rejecting(int phase) {
+ openPage();
+
+ String itemText = format(itemTexts, 1);
+ String item = format(itemPattern, itemText);
+ String target = format(targets, 2);
+
+ Drag drag = new Drag(selenium, item, target);
+ drag.move();
+ drag.enter();
+
+ if (phase == 1) {
+ Wait.until(new Condition() {
+ public boolean isTrue() {
+ return "block".equals(getStyle(indicator, "display"));
+ }
+ });
+
+ Assert.assertTrue(Pattern.matches(regexpRejectingClass, selenium
+ .getAttribute(classIndicator)));
+ Assert.assertTrue(Pattern.matches(regexpRejectingImageSource,
+ selenium.getAttribute(imageSourceIndicator)));
+ }
+
+ String firstInsertedItem = format(relativeFirstInsertedItem, target);
+
+ if (phase == 2) {
+ Assert.assertFalse(selenium.isElementPresent(firstInsertedItem));
+ }
+
+ drag.drop();
+
+ if (phase == 2) {
+ Wait.until(new Condition() {
+ public boolean isTrue() {
+ return "none".equals(getStyle(indicator, "display"));
+ }
+ });
+
+ Assert.assertFalse(selenium.isElementPresent(firstInsertedItem));
+ Assert.assertTrue(selenium.isElementPresent(item));
+ }
+ }
+}
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/dropDownMenu/HorizontalMenuTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/dropDownMenu/HorizontalMenuTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/dropDownMenu/HorizontalMenuTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,123 @@
+package org.jboss.richfaces.integrationTest.dropDownMenu;
+
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertTrue;
+
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+/**
+ *
+ * @author <a href="mailto:ppitonak@redhat.com">Pavol Pitonak</a>
+ * @version $Revision$
+ */
+public class HorizontalMenuTestCase extends AbstractSeleniumRichfacesTestCase {
+
+ private String xpathPrefix;
+
+ @Test
+ public void testHorizontalMenu() {
+ xpathPrefix = "//fieldset[1]/div/form/table/tbody/tr/td[1]";
+
+ String text = selenium.getAttribute(xpathPrefix
+ + "/div/div[2]/div[1]@style");
+ assertTrue(text.contains("display: none;"),
+ "Menu should not be expanded at start.");
+
+ // FIXME menu does not show after click or fireEvent
+ // click on 'File'
+ // selenium.click(xpathPrefix + "/div/div[1]/img");
+ // selenium.fireEvent(xpathPrefix + "/div/div[1]/img", "click");
+ // waitFor(1000);
+ // text = selenium.getAttribute(xpathPrefix +
+ // "/div/div[2]/div[1]@style");
+ // System.out.println("------------- " + text + " ------------------");
+ // assertFalse(text.contains("display: none;"),
+ // "Menu should be expanded after clicking on File.");
+
+ // check that the 'Last Menu Action' is empty
+ text = selenium.getText("//fieldset[1]/div/span[1]/span[1]");
+ assertEquals(text, "", "Last menu action should be empty.");
+ }
+
+ @Test
+ public void testMenuItem() {
+ xpathPrefix = "//fieldset[1]/div/form/table/tbody/tr/td[1]/div/div[2]/div/div/div[1]";
+ String text = null;
+
+ selenium.click(xpathPrefix);
+ waitFor(400);
+
+ text = selenium.getText("//fieldset[1]/div/span/span");
+ assertEquals(text, "New", "Text shown in 'Current Selection:'");
+ }
+
+ @Test
+ public void testMenuGroup() {
+ xpathPrefix = "//fieldset[1]/div/form/table/tbody/tr/td[1]/div/div[2]/div[2]/div/div[2]";
+ String text = null;
+
+ selenium.click(xpathPrefix);
+ waitFor(400);
+
+ text = selenium.getText("//fieldset[1]/div/span/span");
+ assertEquals(text, "Save All", "Text shown in 'Current Selection:'");
+ }
+
+ @Test
+ public void testSeparator() {
+ xpathPrefix = "//fieldset[1]/div/form/table/tbody/tr/td[1]/div/div[2]/div[1]/div/div[5]";
+ String text = null;
+
+ text = selenium.getAttribute(xpathPrefix + "@class");
+ assertTrue(text.equals("rich-menu-separator"),
+ "There should be a separator in the menu.");
+ }
+
+ @Test
+ public void testIcon() {
+ xpathPrefix = "//fieldset[1]/div/form/table/tbody/tr/td[1]/div/div[1]/img";
+
+ int width = selenium.getElementWidth(xpathPrefix).intValue();
+ int height = selenium.getElementHeight(xpathPrefix).intValue();
+
+ assertTrue(width > 0,
+ "Menu item 'File' should have a visible icon (width > 0).");
+ assertTrue(height > 0,
+ "Menu item 'File' should have a visible icon (height > 0).");
+ }
+
+ @Test
+ public void testLinkRFHomePage() {
+ xpathPrefix = "//fieldset[1]/div/form/table/tbody/tr/td[2]/div/div[2]/div/div/div[1]/span[2]/a";
+
+ String location = selenium.getAttribute(xpathPrefix + "@href");
+ assertTrue(location.contains("http://"), "Href has to contain http://");
+ }
+
+ @Test
+ public void testLinkRFForum() {
+ xpathPrefix = "//fieldset[1]/div/form/table/tbody/tr/td[2]/div/div[2]/div/div/div[2]/span[2]/a";
+
+ String location = selenium.getAttribute(xpathPrefix + "@href");
+ assertTrue(location.contains("http://"), "Href has to contain http://");
+ }
+
+ @Test
+ public void testListShuttleSource() {
+ abstractTestSource(1, 1, "<", "ui:composition");
+ }
+
+ /**
+ * Loads the needed page.
+ */
+ @BeforeMethod
+ private void loadPage() {
+ super
+ .loadPage(
+ "richMenu",
+ 2,
+ "RichFaces Drop Down menu is a component that allows to organize the hierarchical menu");
+ }
+}
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/editor/AdvancedEditorTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/editor/AdvancedEditorTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/editor/AdvancedEditorTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,863 @@
+/**
+ * License Agreement.
+ *
+ * JBoss RichFaces
+ *
+ * Copyright (C) 2009 Red Hat, Inc.
+ *
+ * This code is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this code; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package org.jboss.richfaces.integrationTest.editor;
+
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertTrue;
+import static org.testng.Assert.fail;
+
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.jboss.test.selenium.waiting.Condition;
+import org.jboss.test.selenium.waiting.Wait;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+/**
+ * Test case that tests the advanced version of the editor.
+ *
+ * @author <a href="mailto:ppitonak@redhat.com">Pavol Pitonak</a>
+ * @version $Revision$
+ */
+public class AdvancedEditorTestCase extends AbstractSeleniumRichfacesTestCase {
+
+ // messages
+ private final String MSG_STRINGS_SHOULD_BE_BOLD = getMsg("STRINGS_SHOULD_BE_BOLD");
+ private final String MSG_STRINGS_SHOULD_BE_ITALIC = getMsg("STRINGS_SHOULD_BE_ITALIC");
+ private final String MSG_STRINGS_SHOULD_BE_UNDERLINED = getMsg("STRINGS_SHOULD_BE_UNDERLINED");
+ private final String MSG_STRINGS_SHOULD_HAVE_A_LINE_THROUGH = getMsg("STRINGS_SHOULD_HAVE_A_LINE_THROUGH");
+ private final String MSG_CONTENT_OF_THE_EDITOR = getMsg("CONTENT_OF_THE_EDITOR");
+ private final String MSG_EDITOR_SHOULD_CONTAIN_OL = getMsg("EDITOR_SHOULD_CONTAIN_OL");
+ private final String MSG_EDITOR_SHOULD_CONTAIN_UL = getMsg("EDITOR_SHOULD_CONTAIN_UL");
+ private final String MSG_TWO_LINES_SHOULD_CONTAIN_A_PARAGRAPH = getMsg("TWO_LINES_SHOULD_CONTAIN_A_PARAGRAPH");
+ private final String MSG_TWO_LINES_IN_THE_EDITOR = getMsg("TWO_LINES_IN_THE_EDITOR");
+ private final String MSG_LIST_SHOULD_CONTAIN_THREE_ITEMS = getMsg("LIST_SHOULD_CONTAIN_THREE_ITEMS");
+ private final String MSG_PARAGRAPH_ALIGNED_TO_THE_SIDE_S = getMsg("PARAGRAPH_ALIGNED_TO_THE_SIDE_S");
+ private final String MSG_PARAGRAPH_JUSTIFIED = getMsg("PARAGRAPH_JUSTIFIED");
+ private final String MSG_PARAGRAPH_SHOULD_HAVE_NO_STYLE = getMsg("PARAGRAPH_SHOULD_HAVE_NO_STYLE");
+ private final String MSG_PARAGRAPHS_CLASS_ATTRIBUTE = getMsg("PARAGRAPHS_CLASS_ATTRIBUTE");
+ private final String MSG_TAG_S_SHOULD_BE_IN_EDITOR = getMsg("TAG_S_SHOULD_BE_IN_EDITOR");
+ private final String MSG_TAG_S_SHOULD_NOT_BE_IN_EDITOR = getMsg("TAG_S_SHOULD_NOT_BE_IN_EDITOR");
+ private final String MSG_CONTENT_OF_TAG_S = getMsg("CONTENT_OF_TAG_S");
+ private final String MSG_PARAGRAPH_INDENTED_BY_N_PX = getMsg("PARAGRAPH_INDENTED_BY_N_PX");
+ private final String MSG_NUMBER_OF_RULERS = getMsg("NUMBER_OF_RULERS");
+ private final String MSG_TEXT_IN_SUBSCRIPT = getMsg("TEXT_IN_SUBSCRIPT");
+ private final String MSG_TEXT_IN_SUPERSCRIPT = getMsg("TEXT_IN_SUPERSCRIPT");
+ private final String MSG_LABEL_OF_LINK = getMsg("LABEL_OF_LINK");
+ private final String MSG_LINK_ATTRIBUTE_S = getMsg("LINK_ATTRIBUTE_S");
+ private final String MSG_CLASS_ATTRIBUTE = getMsg("CLASS_ATTRIBUTE");
+ private final String MSG_IMG_ATTRIBUTE_S = getMsg("IMG_ATTRIBUTE_S");
+
+ private final String LOC_ADVANCED_BUTTON = getLoc("ADVANCED_BUTTON");
+ private final String LOC_EXAMPLE_HEADER = getLoc("EXAMPLE_HEADER");
+
+ // editor
+ private final String LOC_TEXT_AREA = getLoc("TEXT_AREA");
+ private final String LOC_IFRAME = getLoc("IFRAME");
+ private final String LOC_ADV_DIALOG_IFRAME = getLoc("ADV_DIALOG_IFRAME");
+
+ private final String LOC_TEXT_AREA_P = getLoc("TEXT_AREA_P");
+ private final String LOC_TEXT_AREA_P_A = getLoc("TEXT_AREA_P_A");
+ private final String LOC_TEXT_AREA_P_IMG = getLoc("TEXT_AREA_P_IMG");
+ private final String LOC_TEXT_AREA_P_SPAN = getLoc("TEXT_AREA_P_SPAN");
+ private final String LOC_TEXT_AREA_P_HR = getLoc("TEXT_AREA_P_HR");
+ private final String LOC_TEXT_AREA_P_SUB = getLoc("TEXT_AREA_P_SUB");
+ private final String LOC_TEXT_AREA_P_SUP = getLoc("TEXT_AREA_P_SUP");
+ private final String LOC_TEXT_AREA_P2 = getLoc("TEXT_AREA_P2");
+ private final String LOC_TEXT_AREA_P2_B = getLoc("TEXT_AREA_P2_B");
+ private final String LOC_TEXT_AREA_P2_I = getLoc("TEXT_AREA_P2_I");
+ private final String LOC_TEXT_AREA_P2_U = getLoc("TEXT_AREA_P2_U");
+ private final String LOC_TEXT_AREA_P2_STRIKE = getLoc("TEXT_AREA_P2_STRIKE");
+ private final String LOC_TEXT_AREA_OL = getLoc("TEXT_AREA_OL");
+ private final String LOC_TEXT_AREA_OL_LI = getLoc("TEXT_AREA_OL_LI");
+ private final String LOC_TEXT_AREA_UL = getLoc("TEXT_AREA_UL");
+ private final String LOC_TEXT_AREA_UL_LI = getLoc("TEXT_AREA_UL_LI");
+ private final String LOC_TEXT_AREA_ADDRESS = getLoc("TEXT_AREA_ADDRESS");
+ private final String LOC_TEXT_AREA_PRE = getLoc("TEXT_AREA_PRE");
+ private final String LOC_TEXT_AREA_HN = getLoc("TEXT_AREA_HN");
+
+ // simple editor buttons
+ private final String LOC_BOLD_BUTTON = getLoc("BOLD_BUTTON");
+ private final String LOC_ITALIC_BUTTON = getLoc("ITALIC_BUTTON");
+ private final String LOC_UNDERLINE_BUTTON = getLoc("UNDERLINE_BUTTON");
+ private final String LOC_STRIKETHROUGH_BUTTON = getLoc("STRIKETHROUGH_BUTTON");
+ private final String LOC_UNDO_BUTTON = getLoc("UNDO_BUTTON");
+ private final String LOC_REDO_BUTTON = getLoc("REDO_BUTTON");
+
+ // advanced editor buttons
+ private final String LOC_ADV_UNORDERED_LIST_BUTTON = getLoc("ADV_UNORDERED_LIST_BUTTON");
+ private final String LOC_ADV_ORDERED_LIST_BUTTON = getLoc("ADV_ORDERED_LIST_BUTTON");
+ private final String LOC_ADV_ALIGN_LEFT_BUTTON = getLoc("ADV_ALIGN_LEFT_BUTTON");
+ private final String LOC_ADV_ALIGN_RIGHT_BUTTON = getLoc("ADV_ALIGN_RIGHT_BUTTON");
+ private final String LOC_ADV_ALIGN_CENTER_BUTTON = getLoc("ADV_ALIGN_CENTER_BUTTON");
+ private final String LOC_ADV_ALIGN_FULL_BUTTON = getLoc("ADV_ALIGN_FULL_BUTTON");
+ private final String LOC_ADV_STYLE_SELECT_BUTTON = getLoc("ADV_STYLE_SELECT_BUTTON");
+ private final String LOC_ADV_FORMAT_SELECT_BUTTON = getLoc("ADV_FORMAT_SELECT_BUTTON");
+ private final String LOC_ADV_STYLE_N = getLoc("ADV_STYLE_N");
+ private final String LOC_ADV_FORMAT_N = getLoc("ADV_FORMAT_N");
+ private final String LOC_ADV_INDENT_BUTTON = getLoc("ADV_INDENT_BUTTON");
+ private final String LOC_ADV_OUTDENT_BUTTON = getLoc("ADV_OUTDENT_BUTTON");
+ private final String LOC_ADV_HORIZONTAL_RULER_BUTTON = getLoc("ADV_HORIZONTAL_RULER_BUTTON");
+ private final String LOC_ADV_REMOVE_FORMATTING_BUTTON = getLoc("ADV_REMOVE_FORMATTING_BUTTON");
+ private final String LOC_ADV_SUBSCRIPT_BUTTON = getLoc("ADV_SUBSCRIPT_BUTTON");
+ private final String LOC_ADV_SUPERSCRIPT_BUTTON = getLoc("ADV_SUPERSCRIPT_BUTTON");
+ private final String LOC_ADV_LINK_DLG_URL = getLoc("ADV_LINK_DLG_URL");
+ private final String LOC_ADV_LINK_DLG_TARGET_N = getLoc("ADV_LINK_DLG_TARGET_N");
+ private final String LOC_ADV_LINK_DLG_TITLE = getLoc("ADV_LINK_DLG_TITLE");
+ private final String LOC_ADV_LINK_DLG_CLASS_N = getLoc("ADV_LINK_DLG_CLASS_N");
+ private final String LOC_ADV_LINK_DLG_UPDATE = getLoc("ADV_LINK_DLG_UPDATE");
+ private final String LOC_ADV_LINK_BUTTON = getLoc("ADV_LINK_BUTTON");
+ private final String LOC_ADV_UNLINK_BUTTON = getLoc("ADV_UNLINK_BUTTON");
+ private final String LOC_ADV_TOGGLE_INVISIBLE_BUTTON = getLoc("ADV_TOGGLE_INVISIBLE_BUTTON");
+ private final String LOC_ADV_ANCHOR_BUTTON = getLoc("ADV_ANCHOR_BUTTON");
+ private final String LOC_ADV_ANCHOR_DLG_NAME = getLoc("ADV_ANCHOR_DLG_NAME");
+ private final String LOC_ADV_ANCHOR_DLG_INSERT_BUTTON = getLoc("ADV_ANCHOR_DLG_INSERT_BUTTON");
+ private final String LOC_ADV_IMAGE_BUTTON = getLoc("ADV_IMAGE_BUTTON");
+ private final String LOC_ADV_IMAGE_DLG_URL = getLoc("ADV_IMAGE_DLG_URL");
+ private final String LOC_ADV_IMAGE_DLG_DESCRIPTION = getLoc("ADV_IMAGE_DLG_DESCRIPTION");
+ private final String LOC_ADV_IMAGE_DLG_ALIGNMENT = getLoc("ADV_IMAGE_DLG_ALIGNMENT");
+ private final String LOC_ADV_IMAGE_DLG_WIDTH = getLoc("ADV_IMAGE_DLG_WIDTH");
+ private final String LOC_ADV_IMAGE_DLG_HEIGHT = getLoc("ADV_IMAGE_DLG_HEIGHT");
+ private final String LOC_ADV_IMAGE_DLG_BORDER = getLoc("ADV_IMAGE_DLG_BORDER");
+ private final String LOC_ADV_IMAGE_DLG_VSPACE = getLoc("ADV_IMAGE_DLG_VSPACE");
+ private final String LOC_ADV_IMAGE_DLG_HSPACE = getLoc("ADV_IMAGE_DLG_HSPACE");
+ private final String LOC_ADV_IMAGE_DLG_INSERT_BUTTON = getLoc("ADV_IMAGE_DLG_INSERT_BUTTON");
+ private final String LOC_ADV_CUSTOM_CHAR_BUTTON = getLoc("ADV_CUSTOM_CHAR_BUTTON");
+ private final String LOC_ADV_CUSTOM_CHAR_DLG_M_N = getLoc("ADV_CUSTOM_CHAR_DLG_M_N");
+
+ /**
+ * Tests the bold button. It types "aaaa", presses enter followed by the
+ * bold button, and types "bbbb ". Then again bold button, "cccc ", bold
+ * button and "dddd ". Then it checks that the editor's text area contains
+ * the entered text. After that, it checks that there are two lines of text
+ * in the editor and that the second line contains two bold strings.
+ */
+ @Test
+ public void testBoldButton() {
+ selenium.typeKeys(LOC_TEXT_AREA, "aaaa"); // normal text
+ selenium.keyPress(LOC_TEXT_AREA, "13"); // press <Enter>
+
+ selenium.click(LOC_BOLD_BUTTON);
+ selenium.typeKeys(LOC_TEXT_AREA, "bbbb "); // bold text
+ selenium.click(LOC_BOLD_BUTTON);
+ selenium.typeKeys(LOC_TEXT_AREA, "cccc "); // normal text
+ selenium.click(LOC_BOLD_BUTTON);
+ selenium.typeKeys(LOC_TEXT_AREA, "dddd "); // bold text
+
+ String text = selenium.getText(LOC_TEXT_AREA);
+ assertEquals(text, "aaaa\nbbbb cccc dddd", MSG_CONTENT_OF_THE_EDITOR);
+
+ // select the iframe for Selenium to be able to get iframe's content
+ selenium.selectFrame(LOC_IFRAME);
+
+ int count = selenium.getXpathCount(LOC_TEXT_AREA_P).intValue();
+ assertEquals(count, 2, MSG_TWO_LINES_IN_THE_EDITOR);
+
+ count = selenium.getXpathCount(LOC_TEXT_AREA_P2_B).intValue();
+ assertEquals(count, 2, MSG_STRINGS_SHOULD_BE_BOLD);
+
+ selenium.selectFrame("relative=top");
+ }
+
+ /**
+ * Tests the italic button. It types "aaaa", presses enter followed by the
+ * italic button, and types "bbbb ". Then again italic button, "cccc ",
+ * italic button and "dddd ". Then it checks that the editor's text area
+ * contains the entered text. After that, it checks that there are two lines
+ * of text in the editor and that the second line contains two italic
+ * strings.
+ */
+ @Test
+ public void testItalicButton() {
+ selenium.typeKeys(LOC_TEXT_AREA, "aaaa"); // normal text
+ selenium.keyPress(LOC_TEXT_AREA, "13"); // press <Enter>
+
+ selenium.click(LOC_ITALIC_BUTTON);
+ selenium.typeKeys(LOC_TEXT_AREA, "bbbb "); // italic text
+ selenium.click(LOC_ITALIC_BUTTON);
+ selenium.typeKeys(LOC_TEXT_AREA, "cccc "); // normal text
+ selenium.click(LOC_ITALIC_BUTTON);
+ selenium.typeKeys(LOC_TEXT_AREA, "dddd "); // italic text
+
+ String text = selenium.getText(LOC_TEXT_AREA);
+ assertEquals(text, "aaaa\nbbbb cccc dddd", MSG_CONTENT_OF_THE_EDITOR);
+
+ // select the iframe for Selenium to be able to get iframe's content
+ selenium.selectFrame(LOC_IFRAME);
+
+ int count = selenium.getXpathCount(LOC_TEXT_AREA_P).intValue();
+ assertEquals(count, 2, MSG_TWO_LINES_IN_THE_EDITOR);
+
+ count = selenium.getXpathCount(LOC_TEXT_AREA_P2_I).intValue();
+ assertEquals(count, 2, MSG_STRINGS_SHOULD_BE_ITALIC);
+
+ selenium.selectFrame("relative=top");
+ }
+
+ /**
+ * Tests the underline button. It types "aaaa", presses enter followed by
+ * the underline button, and types "bbbb ". Then again underline button,
+ * "cccc ", underline button and "dddd ". Then it checks that the editor's
+ * text area contains the entered text. After that, it checks that there are
+ * two lines of text in the editor and that the second line contains two
+ * underlined strings.
+ */
+ @Test
+ public void testUnderlineButton() {
+ selenium.typeKeys(LOC_TEXT_AREA, "aaaa"); // normal text
+ selenium.keyPress(LOC_TEXT_AREA, "13"); // press <Enter>
+
+ selenium.click(LOC_UNDERLINE_BUTTON);
+ selenium.typeKeys(LOC_TEXT_AREA, "bbbb "); // underlined text
+ selenium.click(LOC_UNDERLINE_BUTTON);
+ selenium.typeKeys(LOC_TEXT_AREA, "cccc "); // normal text
+ selenium.click(LOC_UNDERLINE_BUTTON);
+ selenium.typeKeys(LOC_TEXT_AREA, "dddd "); // underlined text
+
+ String text = selenium.getText(LOC_TEXT_AREA);
+ assertEquals(text, "aaaa\nbbbb cccc dddd", MSG_CONTENT_OF_THE_EDITOR);
+
+ // select the iframe for Selenium to be able to get iframe's content
+ selenium.selectFrame(LOC_IFRAME);
+
+ int count = selenium.getXpathCount(LOC_TEXT_AREA_P).intValue();
+ assertEquals(count, 2, MSG_TWO_LINES_IN_THE_EDITOR);
+
+ count = selenium.getXpathCount(LOC_TEXT_AREA_P2_U).intValue();
+ assertEquals(count, 2, MSG_STRINGS_SHOULD_BE_UNDERLINED);
+
+ selenium.selectFrame("relative=top");
+ }
+
+ /**
+ * Tests the strikethrough button. It types "aaaa", presses enter followed
+ * by the strikethrough button, and types "bbbb ". Then again strikethrough
+ * button, "cccc ", strikethrough button and "dddd ". Then it checks that
+ * the editor's text area contains the entered text. After that, it checks
+ * that there are two lines of text in the editor and that the second line
+ * contains two strings having a line through.
+ */
+ @Test
+ public void testStrikethroughButton() {
+ selenium.typeKeys(LOC_TEXT_AREA, "aaaa"); // normal text
+ selenium.keyPress(LOC_TEXT_AREA, "13"); // press <Enter>
+
+ selenium.click(LOC_STRIKETHROUGH_BUTTON);
+ selenium.typeKeys(LOC_TEXT_AREA, "bbbb "); // text with line through
+ selenium.click(LOC_STRIKETHROUGH_BUTTON);
+ selenium.typeKeys(LOC_TEXT_AREA, "cccc "); // normal text
+ selenium.click(LOC_STRIKETHROUGH_BUTTON);
+ selenium.typeKeys(LOC_TEXT_AREA, "dddd "); // text with line through
+
+ String text = selenium.getText(LOC_TEXT_AREA);
+ assertEquals(text, "aaaa\nbbbb cccc dddd", MSG_CONTENT_OF_THE_EDITOR);
+
+ // select the iframe for Selenium to be able to get iframe's content
+ selenium.selectFrame(LOC_IFRAME);
+
+ int count = selenium.getXpathCount(LOC_TEXT_AREA_P).intValue();
+ assertEquals(count, 2, MSG_TWO_LINES_IN_THE_EDITOR);
+
+ count = selenium.getXpathCount(LOC_TEXT_AREA_P2_STRIKE).intValue();
+ assertEquals(count, 2, MSG_STRINGS_SHOULD_HAVE_A_LINE_THROUGH);
+
+ selenium.selectFrame("relative=top");
+ }
+
+ /**
+ * Tests both the undo and redo buttons. It types into text area, checks the
+ * content of the editor, reverts changes by clicking on the undo button,
+ * and checks the content of the editor again. Then, it clicks on the redo
+ * button and checks the text area.
+ */
+ @Test
+ public void testUndoRedo() {
+ selenium.typeKeys(LOC_TEXT_AREA, "aaaabbbb");
+
+ String text = selenium.getText(LOC_TEXT_AREA);
+ assertEquals(text, "aaaabbbb", MSG_CONTENT_OF_THE_EDITOR);
+
+ // small hack to enable the undo button
+ selenium.click(LOC_UNDO_BUTTON);
+ selenium.click(LOC_TEXT_AREA);
+
+ selenium.click(LOC_UNDO_BUTTON);
+
+ text = selenium.getText(LOC_TEXT_AREA);
+ assertEquals(text, "", MSG_CONTENT_OF_THE_EDITOR);
+
+ selenium.click(LOC_REDO_BUTTON);
+ text = selenium.getText(LOC_TEXT_AREA);
+ assertEquals(text, "aaaabbbb", MSG_CONTENT_OF_THE_EDITOR);
+ }
+
+ /**
+ * Tests the unordered list button. It types a normal string, then clicks on
+ * the unordered list button, types three strings, clicks on the unordered
+ * list button, and types one more string. Then it checks that the text area
+ * contains all strings, then checks that there are two paragraphs, presence
+ * of unordered list, and the number of list's items.
+ */
+ @Test
+ public void testUnorderedList() {
+ selenium.typeKeys(LOC_TEXT_AREA, "aaaa");
+ selenium.keyPress(LOC_TEXT_AREA, "13"); // press <Enter>
+
+ selenium.click(LOC_ADV_UNORDERED_LIST_BUTTON);
+ selenium.typeKeys(LOC_TEXT_AREA, "bbbb");
+ selenium.keyPress(LOC_TEXT_AREA, "13"); // press <Enter>
+ selenium.typeKeys(LOC_TEXT_AREA, "cccc");
+ selenium.keyPress(LOC_TEXT_AREA, "13"); // press <Enter>
+ selenium.typeKeys(LOC_TEXT_AREA, "dddd");
+ selenium.keyPress(LOC_TEXT_AREA, "13"); // press <Enter>
+ selenium.click(LOC_ADV_UNORDERED_LIST_BUTTON);
+
+ selenium.typeKeys(LOC_TEXT_AREA, "eeee");
+
+ // select the iframe for Selenium to be able to get iframe's content
+ selenium.selectFrame(LOC_IFRAME);
+
+ String text = selenium.getText(LOC_TEXT_AREA);
+ assertEquals(text, "aaaa\nbbbbccccddddeeee", MSG_CONTENT_OF_THE_EDITOR);
+
+ int count = selenium.getXpathCount(LOC_TEXT_AREA_P).intValue();
+ assertEquals(count, 2, MSG_TWO_LINES_SHOULD_CONTAIN_A_PARAGRAPH);
+
+ boolean isPresent = selenium.isElementPresent(LOC_TEXT_AREA_UL);
+ assertTrue(isPresent, MSG_EDITOR_SHOULD_CONTAIN_UL);
+
+ count = selenium.getXpathCount(LOC_TEXT_AREA_UL_LI).intValue();
+ assertEquals(count, 3, MSG_LIST_SHOULD_CONTAIN_THREE_ITEMS);
+
+ selenium.selectFrame("relative=top");
+ }
+
+ /**
+ * Tests the ordered list button. It types a normal string, then clicks on
+ * the ordered list button, types three strings, clicks on the ordered list
+ * button, and types one more string. Then it checks that the text area
+ * contains all strings, then checks that there are two paragraphs, presence
+ * of ordered list, and the number of list's items.
+ */
+ @Test
+ public void testOrderedList() {
+ selenium.typeKeys(LOC_TEXT_AREA, "aaaa");
+ selenium.keyPress(LOC_TEXT_AREA, "13"); // press <Enter>
+
+ selenium.click(LOC_ADV_ORDERED_LIST_BUTTON);
+ selenium.typeKeys(LOC_TEXT_AREA, "bbbb");
+ selenium.keyPress(LOC_TEXT_AREA, "13"); // press <Enter>
+ selenium.typeKeys(LOC_TEXT_AREA, "cccc");
+ selenium.keyPress(LOC_TEXT_AREA, "13"); // press <Enter>
+ selenium.typeKeys(LOC_TEXT_AREA, "dddd");
+ selenium.keyPress(LOC_TEXT_AREA, "13"); // press <Enter>
+ selenium.click(LOC_ADV_ORDERED_LIST_BUTTON);
+
+ selenium.typeKeys(LOC_TEXT_AREA, "eeee");
+
+ // select the iframe for Selenium to be able to get iframe's content
+ selenium.selectFrame(LOC_IFRAME);
+
+ String text = selenium.getText(LOC_TEXT_AREA);
+ assertEquals(text, "aaaa\nbbbbccccddddeeee", MSG_CONTENT_OF_THE_EDITOR);
+
+ int count = selenium.getXpathCount(LOC_TEXT_AREA_P).intValue();
+ assertEquals(count, 2, MSG_TWO_LINES_SHOULD_CONTAIN_A_PARAGRAPH);
+
+ boolean isPresent = selenium.isElementPresent(LOC_TEXT_AREA_OL);
+ assertTrue(isPresent, MSG_EDITOR_SHOULD_CONTAIN_OL);
+
+ count = selenium.getXpathCount(LOC_TEXT_AREA_OL_LI).intValue();
+ assertEquals(count, 3, MSG_LIST_SHOULD_CONTAIN_THREE_ITEMS);
+
+ selenium.selectFrame("relative=top");
+ }
+
+ /**
+ * Tests aligning paragraphs. First it types long text into editor, then it
+ * checks the style attribute of the paragraph. Then it tries to align the
+ * paragraph to the left, right, center and justify it.
+ */
+ @Test
+ public void testAlignParagraph() {
+ for (int i = 0; i < 5; i++) {
+ selenium.typeKeys(LOC_TEXT_AREA, "aaa bbb ccc ddd eee fff ggg ");
+ }
+
+ String attr = null;
+ try {
+ attr = selenium.getAttribute(LOC_TEXT_AREA_P + "@style");
+ fail(MSG_PARAGRAPH_SHOULD_HAVE_NO_STYLE);
+ } catch (Exception e) {
+ // OK - there is no attribute
+ }
+
+ selenium.click(LOC_ADV_ALIGN_LEFT_BUTTON);
+ attr = selenium.getAttribute(LOC_TEXT_AREA_P + "@style");
+ assertEquals(attr, "text-align: left;", String.format(MSG_PARAGRAPH_ALIGNED_TO_THE_SIDE_S, "left"));
+
+ selenium.click(LOC_ADV_ALIGN_RIGHT_BUTTON);
+ attr = selenium.getAttribute(LOC_TEXT_AREA_P + "@style");
+ assertEquals(attr, "text-align: right;", String.format(MSG_PARAGRAPH_ALIGNED_TO_THE_SIDE_S, "right"));
+
+ selenium.click(LOC_ADV_ALIGN_CENTER_BUTTON);
+ attr = selenium.getAttribute(LOC_TEXT_AREA_P + "@style");
+ assertEquals(attr, "text-align: center;", String.format(MSG_PARAGRAPH_ALIGNED_TO_THE_SIDE_S, "center"));
+
+ selenium.click(LOC_ADV_ALIGN_FULL_BUTTON);
+ attr = selenium.getAttribute(LOC_TEXT_AREA_P + "@style");
+ assertEquals(attr, "text-align: justify;", MSG_PARAGRAPH_JUSTIFIED);
+ }
+
+ /**
+ * Tests all styles of the text. It goes through all options from the Styles
+ * select.
+ */
+ @Test
+ public void testStyles() {
+ selenium.typeKeys(LOC_TEXT_AREA, "aaa bbb ccc ddd eee fff ggg");
+
+ String attr = null;
+ try {
+ attr = selenium.getAttribute(LOC_TEXT_AREA_P + "@class");
+ fail(MSG_PARAGRAPH_SHOULD_HAVE_NO_STYLE);
+ } catch (Exception e) {
+ // OK - there is no attribute
+ }
+
+ selenium.click(LOC_ADV_STYLE_SELECT_BUTTON);
+ selenium.click(String.format(LOC_ADV_STYLE_N, 2));
+ attr = selenium.getAttribute(LOC_TEXT_AREA_P + "@class");
+ assertEquals(attr, "bold-larger", MSG_PARAGRAPHS_CLASS_ATTRIBUTE);
+
+ selenium.click(LOC_ADV_STYLE_SELECT_BUTTON);
+ selenium.click(String.format(LOC_ADV_STYLE_N, 3));
+ attr = selenium.getAttribute(LOC_TEXT_AREA_P + "@class");
+ assertEquals(attr, "bold-smaller", MSG_PARAGRAPHS_CLASS_ATTRIBUTE);
+
+ selenium.click(LOC_ADV_STYLE_SELECT_BUTTON);
+ selenium.click(String.format(LOC_ADV_STYLE_N, 4));
+ attr = selenium.getAttribute(LOC_TEXT_AREA_P + "@class");
+ assertEquals(attr, "red-bold", MSG_PARAGRAPHS_CLASS_ATTRIBUTE);
+
+ selenium.click(LOC_ADV_STYLE_SELECT_BUTTON);
+ selenium.click(String.format(LOC_ADV_STYLE_N, 5));
+ attr = selenium.getAttribute(LOC_TEXT_AREA_P + "@class");
+ assertEquals(attr, "red-bold-larger", MSG_PARAGRAPHS_CLASS_ATTRIBUTE);
+
+ selenium.click(LOC_ADV_STYLE_SELECT_BUTTON);
+ selenium.click(String.format(LOC_ADV_STYLE_N, 6));
+ attr = selenium.getAttribute(LOC_TEXT_AREA_P + "@class");
+ assertEquals(attr, "red-bold-smaller", MSG_PARAGRAPHS_CLASS_ATTRIBUTE);
+
+ selenium.click(LOC_ADV_STYLE_SELECT_BUTTON);
+ selenium.click(String.format(LOC_ADV_STYLE_N, 1));
+ try {
+ attr = selenium.getAttribute(LOC_TEXT_AREA_P + "@class");
+ fail(MSG_PARAGRAPH_SHOULD_HAVE_NO_STYLE);
+ } catch (Exception e) {
+ // OK - there is no attribute
+ }
+ }
+
+ /**
+ * Tests various formats of the paragraph. It goes through all options from
+ * Format select.
+ */
+ @Test
+ public void testFormat() {
+ selenium.typeKeys(LOC_TEXT_AREA, "aaa bbb ccc ddd eee fff ggg");
+
+ // initial state
+ selenium.selectFrame(LOC_IFRAME);
+ int count = selenium.getXpathCount(LOC_TEXT_AREA_P).intValue();
+ assertEquals(count, 1, String.format(MSG_TAG_S_SHOULD_BE_IN_EDITOR, "p"));
+ String text = selenium.getText(LOC_TEXT_AREA_P);
+ assertEquals(text, "aaa bbb ccc ddd eee fff ggg", String.format(MSG_CONTENT_OF_TAG_S, "p"));
+ selenium.selectFrame("relative=top");
+
+ // address
+ selenium.click(LOC_ADV_FORMAT_SELECT_BUTTON);
+ selenium.click(String.format(LOC_ADV_FORMAT_N, 3));
+ selenium.selectFrame(LOC_IFRAME);
+ count = selenium.getXpathCount(LOC_TEXT_AREA_ADDRESS).intValue();
+ assertEquals(count, 1, String.format(MSG_TAG_S_SHOULD_BE_IN_EDITOR, "address"));
+ text = selenium.getText(LOC_TEXT_AREA_ADDRESS);
+ assertEquals(text, "aaa bbb ccc ddd eee fff ggg", String.format(MSG_CONTENT_OF_TAG_S, "address"));
+ selenium.selectFrame("relative=top");
+
+ // paragraph
+ selenium.click(LOC_ADV_FORMAT_SELECT_BUTTON);
+ selenium.click(String.format(LOC_ADV_FORMAT_N, 2));
+ selenium.selectFrame(LOC_IFRAME);
+ count = selenium.getXpathCount(LOC_TEXT_AREA_P).intValue();
+ assertEquals(count, 1, String.format(MSG_TAG_S_SHOULD_BE_IN_EDITOR, "p"));
+ text = selenium.getText(LOC_TEXT_AREA_P);
+ assertEquals(text, "aaa bbb ccc ddd eee fff ggg", String.format(MSG_CONTENT_OF_TAG_S, "p"));
+ selenium.selectFrame("relative=top");
+
+ // preformatted
+ selenium.click(LOC_ADV_FORMAT_SELECT_BUTTON);
+ selenium.click(String.format(LOC_ADV_FORMAT_N, 4));
+ selenium.selectFrame(LOC_IFRAME);
+ count = selenium.getXpathCount(LOC_TEXT_AREA_PRE).intValue();
+ assertEquals(count, 1, String.format(MSG_TAG_S_SHOULD_BE_IN_EDITOR, "pre"));
+ text = selenium.getText(LOC_TEXT_AREA_PRE);
+ assertEquals(text, "aaa bbb ccc ddd eee fff ggg", String.format(MSG_CONTENT_OF_TAG_S, "pre"));
+ selenium.selectFrame("relative=top");
+
+ // change back to the initial state by clicking on "Format"
+ selenium.click(LOC_ADV_FORMAT_SELECT_BUTTON);
+ selenium.click(String.format(LOC_ADV_FORMAT_N, 1));
+ selenium.selectFrame(LOC_IFRAME);
+ count = selenium.getXpathCount(LOC_TEXT_AREA_P).intValue();
+ assertEquals(count, 1, String.format(MSG_TAG_S_SHOULD_BE_IN_EDITOR, "p"));
+ text = selenium.getText(LOC_TEXT_AREA_P);
+ assertEquals(text, "aaa bbb ccc ddd eee fff ggg", String.format(MSG_CONTENT_OF_TAG_S, "p"));
+ selenium.selectFrame("relative=top");
+
+ // heading 1-6
+ for (int i = 1; i < 7; i++) {
+ selenium.click(LOC_ADV_FORMAT_SELECT_BUTTON);
+ selenium.click(String.format(LOC_ADV_FORMAT_N, 4 + i));
+ selenium.selectFrame(LOC_IFRAME);
+ count = selenium.getXpathCount(String.format(LOC_TEXT_AREA_HN, i)).intValue();
+ assertEquals(count, 1, String.format(MSG_TAG_S_SHOULD_BE_IN_EDITOR, "h" + i));
+ text = selenium.getText(String.format(LOC_TEXT_AREA_HN, i));
+ assertEquals(text, "aaa bbb ccc ddd eee fff ggg", String.format(MSG_CONTENT_OF_TAG_S, "h" + i));
+ selenium.selectFrame("relative=top");
+ }
+ }
+
+ /**
+ * Tests indenting and outdenting. It click the indent button and checks
+ * indenting. Then it clicks it second time and again checks the style
+ * attribute. Then it outdents the paragraph twice and checks the padding
+ * after each click.
+ */
+ @Test
+ public void testIndentOutdent() {
+ selenium.typeKeys(LOC_TEXT_AREA, "aaa bbb ccc ddd eee fff ggg");
+
+ selenium.click(LOC_ADV_INDENT_BUTTON);
+ String attr = selenium.getAttribute(LOC_TEXT_AREA_P + "@style");
+ assertEquals(attr, "padding-left: 30px;", String.format(MSG_PARAGRAPH_INDENTED_BY_N_PX, 30));
+
+ selenium.click(LOC_ADV_INDENT_BUTTON);
+ attr = selenium.getAttribute(LOC_TEXT_AREA_P + "@style");
+ assertEquals(attr, "padding-left: 60px;", String.format(MSG_PARAGRAPH_INDENTED_BY_N_PX, 60));
+
+ selenium.click(LOC_ADV_OUTDENT_BUTTON);
+ attr = selenium.getAttribute(LOC_TEXT_AREA_P + "@style");
+ assertEquals(attr, "padding-left: 30px;", String.format(MSG_PARAGRAPH_INDENTED_BY_N_PX, 30));
+
+ selenium.click(LOC_ADV_OUTDENT_BUTTON);
+ try {
+ attr = selenium.getAttribute(LOC_TEXT_AREA_P + "@style");
+ fail(String.format(MSG_PARAGRAPH_INDENTED_BY_N_PX, 0));
+ } catch (Exception e) {
+ // OK - no attribute
+ }
+ }
+
+ /**
+ * Tests inserting horizontal lines. First it clicks on ruler button three
+ * times. Then it checks that there are 3 rulers in the editor.
+ */
+ @Test
+ public void testInsertHorizontalRuler() {
+ selenium.click(LOC_ADV_HORIZONTAL_RULER_BUTTON);
+ selenium.click(LOC_ADV_HORIZONTAL_RULER_BUTTON);
+ selenium.click(LOC_ADV_HORIZONTAL_RULER_BUTTON);
+
+ selenium.selectFrame(LOC_IFRAME);
+
+ Wait.failWith(MSG_NUMBER_OF_RULERS).interval(3000).until(new Condition() {
+ public boolean isTrue() {
+ return selenium.getXpathCount(LOC_TEXT_AREA_P_HR).intValue() == 3;
+ }
+ });
+
+ selenium.selectFrame("relative=top");
+ }
+
+ /**
+ * Tests removing formatting from selected text. First it types two lines of
+ * text, from which the second is in bold. Then it presses Ctrl+A to select
+ * the content of the editor and clicks the "Remove formatting" button. Then
+ * it checks that formatting was removed.
+ */
+ @Test
+ public void testRemoveFormatting() {
+ selenium.typeKeys(LOC_TEXT_AREA, "aaa");
+ selenium.keyPress(LOC_TEXT_AREA, "13"); // press <Enter>
+ selenium.click(LOC_BOLD_BUTTON);
+ selenium.typeKeys(LOC_TEXT_AREA, "bbb");
+
+ selenium.selectFrame(LOC_IFRAME);
+ int count = selenium.getXpathCount(LOC_TEXT_AREA_P2_B).intValue();
+ assertEquals(count, 1, String.format(MSG_TAG_S_SHOULD_BE_IN_EDITOR, "b"));
+ String text = selenium.getText(LOC_TEXT_AREA_P2_B);
+ assertEquals(text, "bbb", String.format(MSG_CONTENT_OF_TAG_S, "b"));
+
+ // press Ctrl+A to select content of the editor
+ selenium.controlKeyDown();
+ selenium.keyPress("//body", "a");
+ selenium.controlKeyUp();
+
+ selenium.selectFrame("relative=top");
+ selenium.click(LOC_ADV_REMOVE_FORMATTING_BUTTON);
+
+ count = selenium.getXpathCount(LOC_TEXT_AREA_P2_B).intValue();
+ assertEquals(count, 0, String.format(MSG_TAG_S_SHOULD_NOT_BE_IN_EDITOR, "b"));
+ text = selenium.getText(LOC_TEXT_AREA_P2);
+ assertEquals(text, "bbb", String.format(MSG_CONTENT_OF_TAG_S, "b"));
+ }
+
+ /**
+ * Test subscript and superscript. First it types a string containg normal
+ * font, subscript, and superscript. Then it verifies that the editor
+ * contains whole string and checks the subscript and superscript part.
+ */
+ @Test
+ public void testSubscriptSuperscript() {
+ selenium.typeKeys(LOC_TEXT_AREA, "aaa"); // normal
+ selenium.click(LOC_ADV_SUBSCRIPT_BUTTON);
+ selenium.typeKeys(LOC_TEXT_AREA, "bbb"); // subscript
+ selenium.click(LOC_ADV_SUBSCRIPT_BUTTON);
+ selenium.typeKeys(LOC_TEXT_AREA, "ccc"); // normal
+ selenium.click(LOC_ADV_SUPERSCRIPT_BUTTON);
+ selenium.typeKeys(LOC_TEXT_AREA, "ddd"); // superscript
+ selenium.click(LOC_ADV_SUPERSCRIPT_BUTTON);
+ selenium.typeKeys(LOC_TEXT_AREA, "eee"); // normal
+
+ selenium.selectFrame(LOC_IFRAME);
+
+ String text = selenium.getText(LOC_TEXT_AREA_P);
+ assertEquals(text, "aaabbbcccdddeee", MSG_CONTENT_OF_THE_EDITOR);
+
+ text = selenium.getText(LOC_TEXT_AREA_P_SUB);
+ assertEquals(text, "bbb", MSG_TEXT_IN_SUBSCRIPT);
+
+ text = selenium.getText(LOC_TEXT_AREA_P_SUP);
+ assertEquals(text, "ddd", MSG_TEXT_IN_SUPERSCRIPT);
+
+ selenium.selectFrame("relative=top");
+ }
+
+ /**
+ * Tests inserting link and unlinking. First it types "aaa" into editor,
+ * presses Ctrl+A to select the text and makes a link from this string. Then
+ * it checks that proper tag with all settings was generated.
+ */
+ @Test
+ public void testInsertLinkUnlink() {
+ selenium.typeKeys(LOC_TEXT_AREA, "aaa");
+
+ // press Ctrl+A to select content of the editor
+ // XXX why is it necessary to do it twice - a bug in Selenium?
+ selenium.click(LOC_TEXT_AREA_P);
+ selenium.controlKeyDown();
+ selenium.keyPress("//body", "a");
+ selenium.controlKeyUp();
+ selenium.click(LOC_TEXT_AREA_P);
+ selenium.controlKeyDown();
+ selenium.keyPress("//body", "a");
+ selenium.controlKeyUp();
+
+ waitForElement(LOC_ADV_LINK_BUTTON);
+ selenium.click(LOC_ADV_LINK_BUTTON);
+
+ waitForElement(LOC_ADV_DIALOG_IFRAME);
+ selenium.selectFrame(LOC_ADV_DIALOG_IFRAME);
+
+ waitForElement(LOC_ADV_LINK_DLG_URL);
+ selenium.type(LOC_ADV_LINK_DLG_URL, "http://www.redhat.com");
+ selenium.select(LOC_ADV_LINK_DLG_TARGET_N, "Open link in a new window");
+ selenium.type(LOC_ADV_LINK_DLG_TITLE, "title title");
+ selenium.select(LOC_ADV_LINK_DLG_CLASS_N, "red-bold");
+ selenium.click(LOC_ADV_LINK_DLG_UPDATE);
+
+ selenium.selectFrame(LOC_IFRAME);
+
+ String text = selenium.getText(LOC_TEXT_AREA_P_A);
+ assertEquals(text, "aaa", MSG_LABEL_OF_LINK);
+ text = selenium.getAttribute(LOC_TEXT_AREA_P_A + "@class");
+ assertEquals(text, "red-bold", String.format(MSG_LINK_ATTRIBUTE_S, "class"));
+ text = selenium.getAttribute(LOC_TEXT_AREA_P_A + "@href");
+ assertEquals(text, "http://www.redhat.com", String.format(MSG_LINK_ATTRIBUTE_S, "href"));
+ text = selenium.getAttribute(LOC_TEXT_AREA_P_A + "@title");
+ assertEquals(text, "title title", String.format(MSG_LINK_ATTRIBUTE_S, "title"));
+ text = selenium.getAttribute(LOC_TEXT_AREA_P_A + "@target");
+ assertEquals(text, "_blank", String.format(MSG_LINK_ATTRIBUTE_S, "target"));
+
+ selenium.selectFrame("relative=top");
+
+ // press Ctrl+A to select content of the editor
+ selenium.click(LOC_TEXT_AREA_P);
+ selenium.controlKeyDown();
+ selenium.keyPress("//body", "a");
+ selenium.controlKeyUp();
+ selenium.click(LOC_TEXT_AREA_P);
+ selenium.controlKeyDown();
+ selenium.keyPress("//body", "a");
+ selenium.controlKeyUp();
+
+ selenium.click(LOC_ADV_UNLINK_BUTTON);
+
+ selenium.selectFrame(LOC_IFRAME);
+
+ text = selenium.getText(LOC_TEXT_AREA_P_SPAN);
+ assertEquals(text, "aaa", String.format(MSG_CONTENT_OF_TAG_S, "span"));
+ text = selenium.getAttribute(LOC_TEXT_AREA_P_SPAN + "@class");
+ assertEquals(text, "red-bold", MSG_CLASS_ATTRIBUTE);
+
+ selenium.selectFrame("relative=top");
+ }
+
+ /**
+ * Tests inserting an anchor and hiding it in the editor.
+ */
+ @Test
+ public void testToggleInvisibleElementsAndAnchor() {
+ selenium.click(LOC_ADV_ANCHOR_BUTTON);
+
+ waitForElement(LOC_ADV_DIALOG_IFRAME);
+ selenium.selectFrame(LOC_ADV_DIALOG_IFRAME);
+
+ selenium.type(LOC_ADV_ANCHOR_DLG_NAME, "aaa");
+ selenium.click(LOC_ADV_ANCHOR_DLG_INSERT_BUTTON);
+
+ String attr = selenium.getAttribute(LOC_TEXT_AREA_P_A + "@name");
+ assertEquals(attr, "aaa", String.format(MSG_LINK_ATTRIBUTE_S, "name"));
+
+ attr = selenium.getAttribute(LOC_TEXT_AREA_P_A + "@class");
+ assertEquals(attr, "mceItemAnchor", String.format(MSG_LINK_ATTRIBUTE_S, "class"));
+
+ selenium.click(LOC_ADV_TOGGLE_INVISIBLE_BUTTON);
+
+ attr = selenium.getAttribute(LOC_TEXT_AREA_P_A + "@name");
+ assertEquals(attr, "aaa", String.format(MSG_LINK_ATTRIBUTE_S, "name"));
+
+ try {
+ attr = selenium.getAttribute(LOC_TEXT_AREA_P_A + "@class");
+ fail(String.format(MSG_LINK_ATTRIBUTE_S, "class"));
+ } catch (Exception e) {
+ // OK -- there is no class attribute
+ }
+ }
+
+ /**
+ * Tests inserting an image into editor. It tries to insert the "Editor"
+ * image that is on the page. It sets the URL, alternative text, alignment,
+ * width, height, border, vertical space, and horizontal space.
+ */
+ @Test
+ public void testInsertImage() {
+ selenium.click(LOC_ADV_IMAGE_BUTTON);
+ waitForElement(LOC_ADV_DIALOG_IFRAME);
+ selenium.selectFrame(LOC_ADV_DIALOG_IFRAME);
+
+ int index = selenium.getLocation().indexOf('/', 7);
+ String url = selenium.getLocation().substring(0, index);
+ url += "/richfaces-demo/images/cn_Editor.gif";
+
+ selenium.type(LOC_ADV_IMAGE_DLG_URL, url);
+ selenium.type(LOC_ADV_IMAGE_DLG_DESCRIPTION, "Editor");
+ selenium.select(LOC_ADV_IMAGE_DLG_ALIGNMENT, "Right");
+ selenium.type(LOC_ADV_IMAGE_DLG_WIDTH, "192");
+ selenium.type(LOC_ADV_IMAGE_DLG_HEIGHT, "62");
+ selenium.type(LOC_ADV_IMAGE_DLG_BORDER, "3");
+ selenium.type(LOC_ADV_IMAGE_DLG_VSPACE, "10");
+ selenium.type(LOC_ADV_IMAGE_DLG_HSPACE, "8");
+
+ selenium.click(LOC_ADV_IMAGE_DLG_INSERT_BUTTON);
+
+ waitForElement(LOC_TEXT_AREA_P_IMG);
+ String attr = selenium.getAttribute(LOC_TEXT_AREA_P_IMG + "@src");
+ assertEquals(attr, "../images/cn_Editor.gif", String.format(MSG_IMG_ATTRIBUTE_S, "src"));
+
+ attr = selenium.getAttribute(LOC_TEXT_AREA_P_IMG + "@alt");
+ assertEquals(attr, "Editor", String.format(MSG_IMG_ATTRIBUTE_S, "alt"));
+
+ attr = selenium.getAttribute(LOC_TEXT_AREA_P_IMG + "@style");
+ assertTrue(attr.contains("float: right;"), String.format(MSG_IMG_ATTRIBUTE_S, "style"));
+ assertTrue(attr.contains("border: 3px solid black;"), String.format(MSG_IMG_ATTRIBUTE_S, "style"));
+ assertTrue(attr.contains("margin: 10px 8px"), String.format(MSG_IMG_ATTRIBUTE_S, "style"));
+
+ attr = selenium.getAttribute(LOC_TEXT_AREA_P_IMG + "@width");
+ assertEquals(attr, "192", String.format(MSG_IMG_ATTRIBUTE_S, "width"));
+
+ attr = selenium.getAttribute(LOC_TEXT_AREA_P_IMG + "@height");
+ assertEquals(attr, "62", String.format(MSG_IMG_ATTRIBUTE_S, "height"));
+
+ selenium.selectFrame("relative=top");
+ }
+
+ /**
+ * Tests inserting custom character. It tries to insert euro sign, upper
+ * case omega, and a symbol for heart suite.
+ */
+ @Test
+ public void testInsertCustomCharacter() {
+ selenium.click(LOC_ADV_CUSTOM_CHAR_BUTTON);
+ waitForElement(LOC_ADV_DIALOG_IFRAME);
+ selenium.selectFrame(LOC_ADV_DIALOG_IFRAME);
+ waitForElement(String.format(LOC_ADV_CUSTOM_CHAR_DLG_M_N, 1, 5));
+ // euro sign
+ selenium.click(String.format(LOC_ADV_CUSTOM_CHAR_DLG_M_N, 1, 5));
+
+ selenium.click(LOC_ADV_CUSTOM_CHAR_BUTTON);
+ waitForElement(LOC_ADV_DIALOG_IFRAME);
+ selenium.selectFrame(LOC_ADV_DIALOG_IFRAME);
+ waitForElement(String.format(LOC_ADV_CUSTOM_CHAR_DLG_M_N, 9, 5));
+ // Omega
+ selenium.click(String.format(LOC_ADV_CUSTOM_CHAR_DLG_M_N, 9, 5));
+
+ selenium.click(LOC_ADV_CUSTOM_CHAR_BUTTON);
+ waitForElement(LOC_ADV_DIALOG_IFRAME);
+ selenium.selectFrame(LOC_ADV_DIALOG_IFRAME);
+ waitForElement(String.format(LOC_ADV_CUSTOM_CHAR_DLG_M_N, 10, 18));
+ // heart suite
+ selenium.click(String.format(LOC_ADV_CUSTOM_CHAR_DLG_M_N, 10, 18));
+
+ String text = selenium.getText(LOC_TEXT_AREA_P);
+ assertEquals(text, "€Ω♥", MSG_CONTENT_OF_THE_EDITOR);
+ }
+
+ /**
+ * Loads the page containing the calendar component.
+ */
+ @BeforeMethod
+ private void loadPage() {
+ openComponent("Editor");
+
+ // wait for iframe to load
+ selenium.click(LOC_ADVANCED_BUTTON);
+ Wait.until(new Condition() {
+ public boolean isTrue() {
+ return selenium.isElementPresent(LOC_ADV_ANCHOR_BUTTON);
+ }
+ });
+
+ scrollIntoView(LOC_EXAMPLE_HEADER, true);
+ }
+}
Property changes on: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/editor/AdvancedEditorTestCase.java
___________________________________________________________________
Name: svn:executable
+ *
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/editor/SimpleEditorTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/editor/SimpleEditorTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/editor/SimpleEditorTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,320 @@
+package org.jboss.richfaces.integrationTest.editor;
+
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertTrue;
+
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+/**
+ * Test case that tests the editor component.
+ * <ul>
+ * <li><b>TODO</b> implement the test for cleaning up</li>
+ * </ul>
+ *
+ * @author <a href="mailto:ppitonak@redhat.com">Pavol Pitonak</a>
+ * @version $Revision$
+ */
+public class SimpleEditorTestCase extends AbstractSeleniumRichfacesTestCase {
+
+ // messages
+ private final String MSG_COMPONENT_DESCRIPTION = getMess("COMPONENT_DESCRIPTION");
+ private final String MSG_STRINGS_SHOULD_BE_BOLD = getMess("STRINGS_SHOULD_BE_BOLD");
+ private final String MSG_STRINGS_SHOULD_BE_ITALIC = getMess("STRINGS_SHOULD_BE_ITALIC");
+ private final String MSG_STRINGS_SHOULD_BE_UNDERLINED = getMess("STRINGS_SHOULD_BE_UNDERLINED");
+ private final String MSG_STRINGS_SHOULD_HAVE_A_LINE_THROUGH = getMess("STRINGS_SHOULD_HAVE_A_LINE_THROUGH");
+ private final String MSG_CONTENT_OF_THE_EDITOR = getMess("CONTENT_OF_THE_EDITOR");
+ private final String MSG_EDITOR_SHOULD_CONTAIN_OL = getMess("EDITOR_SHOULD_CONTAIN_OL");
+ private final String MSG_EDITOR_SHOULD_CONTAIN_UL = getMess("EDITOR_SHOULD_CONTAIN_UL");
+ private final String MSG_TWO_LINES_SHOULD_CONTAIN_A_PARAGRAPH = getMess("TWO_LINES_SHOULD_CONTAIN_A_PARAGRAPH");
+ private final String MSG_TWO_LINES_IN_THE_EDITOR = getMess("TWO_LINES_IN_THE_EDITOR");
+ private final String MSG_LIST_SHOULD_CONTAIN_THREE_ITEMS = getMess("LIST_SHOULD_CONTAIN_THREE_ITEMS");
+
+ // editor
+ private final String LOC_TEXT_AREA = getLoc("TEXT_AREA");
+ private final String LOC_IFRAME = getLoc("IFRAME");
+ private final String LOC_TEXT_AREA_P = getLoc("TEXT_AREA_P");
+ private final String LOC_TEXT_AREA_P2_B = getLoc("TEXT_AREA_P2_B");
+ private final String LOC_TEXT_AREA_P2_I = getLoc("TEXT_AREA_P2_I");
+ private final String LOC_TEXT_AREA_P2_U = getLoc("TEXT_AREA_P2_U");
+ private final String LOC_TEXT_AREA_P2_STRIKE = getLoc("TEXT_AREA_P2_STRIKE");
+ private final String LOC_TEXT_AREA_OL = getLoc("TEXT_AREA_OL");
+ private final String LOC_TEXT_AREA_OL_LI = getLoc("TEXT_AREA_OL_LI");
+ private final String LOC_TEXT_AREA_UL = getLoc("TEXT_AREA_UL");
+ private final String LOC_TEXT_AREA_UL_LI = getLoc("TEXT_AREA_UL_LI");
+
+ // buttons in simple mode
+ private final String LOC_BOLD_BUTTON = getLoc("BOLD_BUTTON");
+ private final String LOC_ITALIC_BUTTON = getLoc("ITALIC_BUTTON");
+ private final String LOC_UNDERLINE_BUTTON = getLoc("UNDERLINE_BUTTON");
+ private final String LOC_STRIKETHROUGH_BUTTON = getLoc("STRIKETHROUGH_BUTTON");
+ private final String LOC_UNDO_BUTTON = getLoc("UNDO_BUTTON");
+ private final String LOC_REDO_BUTTON = getLoc("REDO_BUTTON");
+ private final String LOC_UNORDERED_LIST_BUTTON = getLoc("UNORDERED_LIST_BUTTON");
+ private final String LOC_ORDERED_LIST_BUTTON = getLoc("ORDERED_LIST_BUTTON");
+
+ /**
+ * Tests the bold button. It types "aaaa", presses enter followed by the
+ * bold button, and types "bbbb ". Then again bold button, "cccc ", bold
+ * button and "dddd ". Then it checks that the editor's text area contains
+ * the entered text. After that, it checks that there are two lines of text
+ * in the editor and that the second line contains two bold strings.
+ */
+ @Test
+ public void testBoldButton() {
+ selenium.typeKeys(LOC_TEXT_AREA, "aaaa"); // normal text
+ selenium.keyPress(LOC_TEXT_AREA, "13"); // press <Enter>
+
+ selenium.click(LOC_BOLD_BUTTON);
+ selenium.typeKeys(LOC_TEXT_AREA, "bbbb "); // bold text
+ selenium.click(LOC_BOLD_BUTTON);
+ selenium.typeKeys(LOC_TEXT_AREA, "cccc "); // normal text
+ selenium.click(LOC_BOLD_BUTTON);
+ selenium.typeKeys(LOC_TEXT_AREA, "dddd "); // bold text
+
+ String text = selenium.getText(LOC_TEXT_AREA);
+ assertEquals(text, "aaaa\nbbbb cccc dddd", MSG_CONTENT_OF_THE_EDITOR);
+
+ // select the iframe for Selenium to be able to get iframe's content
+ selenium.selectFrame(LOC_IFRAME);
+
+ int count = selenium.getXpathCount(LOC_TEXT_AREA_P).intValue();
+ assertEquals(count, 2, MSG_TWO_LINES_IN_THE_EDITOR);
+
+ count = selenium.getXpathCount(LOC_TEXT_AREA_P2_B).intValue();
+ assertEquals(count, 2, MSG_STRINGS_SHOULD_BE_BOLD);
+
+ selenium.selectFrame("relative=top");
+ }
+
+ /**
+ * Tests the italic button. It types "aaaa", presses enter followed by the
+ * italic button, and types "bbbb ". Then again italic button, "cccc ",
+ * italic button and "dddd ". Then it checks that the editor's text area
+ * contains the entered text. After that, it checks that there are two lines
+ * of text in the editor and that the second line contains two italic
+ * strings.
+ */
+ @Test
+ public void testItalicButton() {
+ selenium.typeKeys(LOC_TEXT_AREA, "aaaa"); // normal text
+ selenium.keyPress(LOC_TEXT_AREA, "13"); // press <Enter>
+
+ selenium.click(LOC_ITALIC_BUTTON);
+ selenium.typeKeys(LOC_TEXT_AREA, "bbbb "); // italic text
+ selenium.click(LOC_ITALIC_BUTTON);
+ selenium.typeKeys(LOC_TEXT_AREA, "cccc "); // normal text
+ selenium.click(LOC_ITALIC_BUTTON);
+ selenium.typeKeys(LOC_TEXT_AREA, "dddd "); // italic text
+
+ String text = selenium.getText(LOC_TEXT_AREA);
+ assertEquals(text, "aaaa\nbbbb cccc dddd", MSG_CONTENT_OF_THE_EDITOR);
+
+ // select the iframe for Selenium to be able to get iframe's content
+ selenium.selectFrame(LOC_IFRAME);
+
+ int count = selenium.getXpathCount(LOC_TEXT_AREA_P).intValue();
+ assertEquals(count, 2, MSG_TWO_LINES_IN_THE_EDITOR);
+
+ count = selenium.getXpathCount(LOC_TEXT_AREA_P2_I).intValue();
+ assertEquals(count, 2, MSG_STRINGS_SHOULD_BE_ITALIC);
+
+ selenium.selectFrame("relative=top");
+ }
+
+ /**
+ * Tests the underline button. It types "aaaa", presses enter followed by
+ * the underline button, and types "bbbb ". Then again underline button,
+ * "cccc ", underline button and "dddd ". Then it checks that the editor's
+ * text area contains the entered text. After that, it checks that there are
+ * two lines of text in the editor and that the second line contains two
+ * underlined strings.
+ */
+ @Test
+ public void testUnderlineButton() {
+ selenium.typeKeys(LOC_TEXT_AREA, "aaaa"); // normal text
+ selenium.keyPress(LOC_TEXT_AREA, "13"); // press <Enter>
+
+ selenium.click(LOC_UNDERLINE_BUTTON);
+ selenium.typeKeys(LOC_TEXT_AREA, "bbbb "); // underlined text
+ selenium.click(LOC_UNDERLINE_BUTTON);
+ selenium.typeKeys(LOC_TEXT_AREA, "cccc "); // normal text
+ selenium.click(LOC_UNDERLINE_BUTTON);
+ selenium.typeKeys(LOC_TEXT_AREA, "dddd "); // underlined text
+
+ String text = selenium.getText(LOC_TEXT_AREA);
+ assertEquals(text, "aaaa\nbbbb cccc dddd", MSG_CONTENT_OF_THE_EDITOR);
+
+ // select the iframe for Selenium to be able to get iframe's content
+ selenium.selectFrame(LOC_IFRAME);
+
+ int count = selenium.getXpathCount(LOC_TEXT_AREA_P).intValue();
+ assertEquals(count, 2, MSG_TWO_LINES_IN_THE_EDITOR);
+
+ count = selenium.getXpathCount(LOC_TEXT_AREA_P2_U).intValue();
+ assertEquals(count, 2, MSG_STRINGS_SHOULD_BE_UNDERLINED);
+
+ selenium.selectFrame("relative=top");
+ }
+
+ /**
+ * Tests the strikethrough button. It types "aaaa", presses enter followed
+ * by the strikethrough button, and types "bbbb ". Then again strikethrough
+ * button, "cccc ", strikethrough button and "dddd ". Then it checks that
+ * the editor's text area contains the entered text. After that, it checks
+ * that there are two lines of text in the editor and that the second line
+ * contains two strings having a line through.
+ */
+ @Test
+ public void testStrikethroughButton() {
+ selenium.typeKeys(LOC_TEXT_AREA, "aaaa"); // normal text
+ selenium.keyPress(LOC_TEXT_AREA, "13"); // press <Enter>
+
+ selenium.click(LOC_STRIKETHROUGH_BUTTON);
+ selenium.typeKeys(LOC_TEXT_AREA, "bbbb "); // text with line through
+ selenium.click(LOC_STRIKETHROUGH_BUTTON);
+ selenium.typeKeys(LOC_TEXT_AREA, "cccc "); // normal text
+ selenium.click(LOC_STRIKETHROUGH_BUTTON);
+ selenium.typeKeys(LOC_TEXT_AREA, "dddd "); // text with line through
+
+ String text = selenium.getText(LOC_TEXT_AREA);
+ assertEquals(text, "aaaa\nbbbb cccc dddd", MSG_CONTENT_OF_THE_EDITOR);
+
+ // select the iframe for Selenium to be able to get iframe's content
+ selenium.selectFrame(LOC_IFRAME);
+
+ int count = selenium.getXpathCount(LOC_TEXT_AREA_P).intValue();
+ assertEquals(count, 2, MSG_TWO_LINES_IN_THE_EDITOR);
+
+ count = selenium.getXpathCount(LOC_TEXT_AREA_P2_STRIKE).intValue();
+ assertEquals(count, 2, MSG_STRINGS_SHOULD_HAVE_A_LINE_THROUGH);
+
+ selenium.selectFrame("relative=top");
+ }
+
+ /**
+ * Tests both the undo and redo buttons. It types into text area, checks the
+ * content of the editor, reverts changes by clicking on the undo button,
+ * and checks the content of the editor again. Then, it clicks on the redo
+ * button and checks the text area.
+ */
+ @Test
+ public void testUndoRedo() {
+ selenium.typeKeys(LOC_TEXT_AREA, "aaaabbbb");
+
+ String text = selenium.getText(LOC_TEXT_AREA);
+ assertEquals(text, "aaaabbbb", MSG_CONTENT_OF_THE_EDITOR);
+
+ selenium.click(LOC_UNDO_BUTTON);
+ text = selenium.getText(LOC_TEXT_AREA);
+ assertEquals(text, "", MSG_CONTENT_OF_THE_EDITOR);
+
+ selenium.click(LOC_REDO_BUTTON);
+ text = selenium.getText(LOC_TEXT_AREA);
+ assertEquals(text, "aaaabbbb", MSG_CONTENT_OF_THE_EDITOR);
+ }
+
+ /**
+ * Tests the unordered list button. It types a normal string, then clicks on
+ * the unordered list button, types three strings, clicks on the unordered
+ * list button, and types one more string. Then it checks that the text area
+ * contains all strings, then checks that there are two paragraphs, presence
+ * of unordered list, and the number of list's items.
+ */
+ @Test
+ public void testUnorderedList() {
+ selenium.typeKeys(LOC_TEXT_AREA, "aaaa");
+ selenium.keyPress(LOC_TEXT_AREA, "13"); // press <Enter>
+
+ selenium.click(LOC_UNORDERED_LIST_BUTTON);
+ selenium.typeKeys(LOC_TEXT_AREA, "bbbb");
+ selenium.keyPress(LOC_TEXT_AREA, "13"); // press <Enter>
+ selenium.typeKeys(LOC_TEXT_AREA, "cccc");
+ selenium.keyPress(LOC_TEXT_AREA, "13"); // press <Enter>
+ selenium.typeKeys(LOC_TEXT_AREA, "dddd");
+ selenium.keyPress(LOC_TEXT_AREA, "13"); // press <Enter>
+ selenium.click(LOC_UNORDERED_LIST_BUTTON);
+
+ selenium.typeKeys(LOC_TEXT_AREA, "eeee");
+
+ // select the iframe for Selenium to be able to get iframe's content
+ selenium.selectFrame(LOC_IFRAME);
+
+ String text = selenium.getText(LOC_TEXT_AREA);
+ assertEquals(text, "aaaa\nbbbbccccddddeeee", MSG_CONTENT_OF_THE_EDITOR);
+
+ int count = selenium.getXpathCount(LOC_TEXT_AREA_P).intValue();
+ assertEquals(count, 2, MSG_TWO_LINES_SHOULD_CONTAIN_A_PARAGRAPH);
+
+ boolean isPresent = selenium.isElementPresent(LOC_TEXT_AREA_UL);
+ assertTrue(isPresent, MSG_EDITOR_SHOULD_CONTAIN_UL);
+
+ count = selenium.getXpathCount(LOC_TEXT_AREA_UL_LI).intValue();
+ assertEquals(count, 3, MSG_LIST_SHOULD_CONTAIN_THREE_ITEMS);
+
+ selenium.selectFrame("relative=top");
+ }
+
+ /**
+ * Tests the ordered list button. It types a normal string, then clicks on
+ * the ordered list button, types three strings, clicks on the ordered list
+ * button, and types one more string. Then it checks that the text area
+ * contains all strings, then checks that there are two paragraphs, presence
+ * of ordered list, and the number of list's items.
+ */
+ @Test
+ public void testOrderedList() {
+ selenium.typeKeys(LOC_TEXT_AREA, "aaaa");
+ selenium.keyPress(LOC_TEXT_AREA, "13"); // press <Enter>
+
+ selenium.click(LOC_ORDERED_LIST_BUTTON);
+ selenium.typeKeys(LOC_TEXT_AREA, "bbbb");
+ selenium.keyPress(LOC_TEXT_AREA, "13"); // press <Enter>
+ selenium.typeKeys(LOC_TEXT_AREA, "cccc");
+ selenium.keyPress(LOC_TEXT_AREA, "13"); // press <Enter>
+ selenium.typeKeys(LOC_TEXT_AREA, "dddd");
+ selenium.keyPress(LOC_TEXT_AREA, "13"); // press <Enter>
+ selenium.click(LOC_ORDERED_LIST_BUTTON);
+
+ selenium.typeKeys(LOC_TEXT_AREA, "eeee");
+
+ // select the iframe for Selenium to be able to get iframe's content
+ selenium.selectFrame(LOC_IFRAME);
+
+ String text = selenium.getText(LOC_TEXT_AREA);
+ assertEquals(text, "aaaa\nbbbbccccddddeeee", MSG_CONTENT_OF_THE_EDITOR);
+
+ int count = selenium.getXpathCount(LOC_TEXT_AREA_P).intValue();
+ assertEquals(count, 2, MSG_TWO_LINES_SHOULD_CONTAIN_A_PARAGRAPH);
+
+ boolean isPresent = selenium.isElementPresent(LOC_TEXT_AREA_OL);
+ assertTrue(isPresent, MSG_EDITOR_SHOULD_CONTAIN_OL);
+
+ count = selenium.getXpathCount(LOC_TEXT_AREA_OL_LI).intValue();
+ assertEquals(count, 3, MSG_LIST_SHOULD_CONTAIN_THREE_ITEMS);
+
+ selenium.selectFrame("relative=top");
+ }
+
+ /**
+ * Tests the "View Source". It checks that the source code is not visible,
+ * clicks on the link, and checks the first 2 components of source code,
+ * i.e. that the source code begins with "<ui:composition".
+ */
+ @Test
+ public void testEditorSource() {
+ abstractTestSource(1, 1, "<", "ui:composition");
+ }
+
+ /**
+ * Loads the page containing the calendar component.
+ */
+ @BeforeMethod
+ private void loadPage() {
+ super.loadPage("richInputs", 4, MSG_COMPONENT_DESCRIPTION);
+ // wait for iframe to load
+ waitFor(1000);
+ scrollIntoView(LOC_TEXT_AREA, true);
+ }
+}
Property changes on: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/editor/SimpleEditorTestCase.java
___________________________________________________________________
Name: svn:executable
+ *
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/extendedDataTable/ExtendedDataTableTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/extendedDataTable/ExtendedDataTableTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/extendedDataTable/ExtendedDataTableTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,468 @@
+package org.jboss.richfaces.integrationTest.extendedDataTable;
+
+import java.util.HashMap;
+import java.util.Vector;
+
+import org.apache.commons.lang.ArrayUtils;
+import org.apache.commons.lang.StringUtils;
+import org.jboss.richfaces.integrationTest.AbstractDataIterationTestCase;
+import org.jboss.test.selenium.actions.Drag;
+import org.jboss.test.selenium.dom.Event;
+import org.jboss.test.selenium.utils.array.ArrayTransform;
+import org.jboss.test.selenium.waiting.Condition;
+import org.jboss.test.selenium.waiting.Wait;
+import org.testng.Assert;
+import org.testng.annotations.AfterClass;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.Test;
+
+/**
+ * @author <a href="mailto:lfryc@redhat.com">Lukas Fryc</a>
+ * @version $Revision$
+ */
+public class ExtendedDataTableTestCase extends AbstractDataIterationTestCase {
+ /**
+ * Opens specified page
+ */
+ public void openPage() {
+ openComponent("Extended Data Table");
+ openTab("Usage");
+
+ scrollIntoView(table, true);
+ }
+
+ @BeforeClass
+ public void allowNativeXPath() {
+ selenium.allowNativeXpath("true");
+ }
+
+ @AfterClass
+ public void allowInitialXPath() {
+ selenium.allowNativeXpath("false");
+ }
+
+ private final String table = getLoc("extended-data-table--table");
+ private final String cells = getLoc("extended-data-table--cells");
+ private final String selectSortMode = getLoc("extended-data-table--select--sort");
+ private final String selectSelectionMode = getLoc("extended-data-table--select--selection");
+ private final String columnHeaderState = getLoc("extended-data-table--column-header--state");
+ private final String columnHeaderCapital = getLoc("extended-data-table--column-header--capital");
+ private final String columnHeaderTimeZone = getLoc("extended-data-table--column-header--time-zone");
+ private final String columnHeaderFlag = getLoc("extended-data-table--column-header--flag");
+ private final String[] columnHeadersSorting = new String[] {
+ columnHeaderState, columnHeaderCapital };
+ private final String[] columnHeadersDragging = new String[] {
+ columnHeaderState, columnHeaderCapital, columnHeaderFlag,
+ columnHeaderTimeZone };
+ private final String relativeColumnHeaderToItsLabel = getLoc("extended-data-table--relative-column-header--from-label");
+
+ @Test
+ public void groupingTest() {
+ openPage();
+
+ final String columnHeader = format(relativeColumnHeaderToItsLabel,
+ columnHeaderState);
+ final String buttonContextMenu = formatLoc(
+ "extended-data-table--relative-div--context-menu-button",
+ columnHeader);
+ final String menuItemGroupByColumn = getLoc("extended-data-table--menu-item--group-by-column");
+ final String groupTextsPreformatted = getLoc("extended-data-table--table-row--group-text-preformatted");
+ final String rowsPreformatted = getLoc("extended-data-table--table-row--regular-row-preformatted");
+ final String rowClass = getMess("extended-data-table--class--group-row");
+
+ selenium.fireEvent(columnHeader, Event.MOUSEOVER);
+ selenium.clickAt(buttonContextMenu, "1,1");
+ waitForElement(menuItemGroupByColumn);
+ selenium.click(menuItemGroupByColumn);
+ waitForSplash();
+
+ final int rows = selenium.getXpathCount(format(rowsPreformatted, 0))
+ .intValue();
+ String expected = null;
+ for (int row = 1, group = 0, tabular = 0; row <= rows; row++) {
+ if (belongsClass(rowClass, format(rowsPreformatted, row))) {
+ group++;
+ expected = selenium.getText(format(groupTextsPreformatted,
+ group));
+ } else {
+ tabular++;
+ Assert
+ .assertNotNull(
+ expected,
+ format(
+ "First row in grouped table has to belong to class '{0}'",
+ rowClass));
+ String actual = selenium.getText(format(
+ preformatColumn(columnHeader), tabular));
+ Assert.assertEquals(actual, expected, format(
+ "Cell ('{0}', row {1}) doesn't belong to group '{2}'",
+ actual, row, expected));
+ }
+ }
+ }
+
+ @Test
+ public void draggingTest() {
+ openPage();
+
+ Assert.assertEquals(1, getColumnIndex(columnHeaderFlag));
+ Assert.assertEquals(2, getColumnIndex(columnHeaderState));
+ Assert.assertEquals(3, getColumnIndex(columnHeaderCapital));
+ Assert.assertEquals(4, getColumnIndex(columnHeaderTimeZone));
+
+ String inputFilterState = getInputFilterState();
+ selenium
+ .type(
+ inputFilterState,
+ getMess("extended-data-table--input--sorting-letter-in-dragging"));
+ selenium.fireEvent(inputFilterState, Event.KEYUP);
+ waitForSplash();
+
+ int associationHash = getAssociationMap().hashCode();
+
+ selenium.click(columnHeaderCapital);
+ waitForSplash();
+
+ Assert.assertEquals(associationHash, getAssociationMap().hashCode());
+
+ new Drag(selenium, columnHeaderTimeZone, formatLoc(
+ "extended-data-table--relative-div--drop-zone-left",
+ columnHeaderState)).drop();
+ waitForSplash();
+
+ Assert.assertEquals(associationHash, getAssociationMap().hashCode());
+
+ Assert.assertEquals(1, getColumnIndex(columnHeaderFlag));
+ Assert.assertEquals(2, getColumnIndex(columnHeaderTimeZone));
+ Assert.assertEquals(3, getColumnIndex(columnHeaderState));
+ Assert.assertEquals(4, getColumnIndex(columnHeaderCapital));
+
+ new Drag(selenium, columnHeaderState, formatLoc(
+ "extended-data-table--relative-div--drop-zone-right",
+ columnHeaderCapital)).drop();
+ waitForSplash();
+
+ Assert.assertEquals(associationHash, getAssociationMap().hashCode());
+
+ Assert.assertEquals(1, getColumnIndex(columnHeaderFlag));
+ Assert.assertEquals(2, getColumnIndex(columnHeaderTimeZone));
+ Assert.assertEquals(3, getColumnIndex(columnHeaderCapital));
+ Assert.assertEquals(4, getColumnIndex(columnHeaderState));
+ }
+
+ @Test
+ public void filteringTest() {
+ openPage();
+
+ final String[] statePrefixes = StringUtils.splitPreserveAllTokens(
+ getMess("extended-data-table--input--state-prefixes"), ',');
+ final String[] capitalPrefixes = StringUtils.splitPreserveAllTokens(
+ getMess("extended-data-table--input--capital-prefixes"), ',');
+ final String inputFilterState = preformatFilterInput(columnHeaderState);
+ final String inputFilterCapital = preformatFilterInput(columnHeaderCapital);
+
+ Assert.assertTrue(statePrefixes.length == capitalPrefixes.length);
+
+ for (int i = 0; i < statePrefixes.length; i++) {
+ final String statePrefix = statePrefixes[i];
+ final String capitalPrefix = capitalPrefixes[i];
+
+ selenium.type(inputFilterState, statePrefix);
+ selenium.fireEvent(inputFilterState, Event.KEYUP);
+ waitForSplash();
+ checkFiltering();
+
+ selenium.type(inputFilterCapital, capitalPrefix);
+ selenium.fireEvent(inputFilterCapital, Event.KEYUP);
+ waitForSplash();
+ checkFiltering();
+ }
+ }
+
+ @Test
+ public void sortingModeSingleTest() {
+ openPage();
+
+ final String singleSortMode = getMess("extended-data-table--option--sort-single");
+ selectMode(selectSortMode, singleSortMode);
+
+ for (String columnHeader : columnHeadersSorting) {
+ // two iterations -- one for ascending and one for descending order
+ for (int i = 0; i < 2; i++) {
+ selenium.click(columnHeader);
+ waitForSplash();
+
+ String columnPreformatted = preformatColumn(columnHeader);
+ checkSorting(columnPreformatted);
+ }
+ }
+ }
+
+ @Test
+ public void sortingModeMultiTest() {
+ openPage();
+
+ final String multiSortMode = getMess("extended-data-table--option--sort-multi");
+ selectMode(selectSortMode, multiSortMode);
+
+ Assert.assertTrue(columnHeadersSorting.length == 2);
+
+ String[] columnsPreformatted = new String[] {
+ preformatColumn(columnHeadersSorting[0]),
+ preformatColumn(columnHeadersSorting[1]) };
+
+ // two iterations -- one for ascending and one for descending order
+ for (int i = 0; i < 2; i++) {
+ selenium.click(columnHeadersSorting[0]);
+ waitForSplash();
+
+ // two iterations -- one for ascending and one for descending order
+ for (int j = 0; j < 2; j++) {
+ selenium.click(columnHeadersSorting[1]);
+ waitForSplash();
+
+ checkSortingForColumnOrder(columnsPreformatted);
+ }
+ }
+ }
+
+ @Test
+ public void selectionModeNoneTest() {
+ final String noneSelectionMode = getMess("extended-data-table--option--selection-none");
+
+ openPage();
+ selectMode(selectSelectionMode, noneSelectionMode);
+
+ int[] rows, selectedRows;
+
+ rows = getRowSelection("extended-data-table--input--single-row");
+ multiSelection(rows);
+ selectedRows = getRowSelection("extended-data-table--output--mode-none");
+ checkSelection(selectedRows);
+
+ openPage();
+ selectMode(selectSelectionMode, noneSelectionMode);
+
+ rows = getRowSelection("extended-data-table--input--multiple-rows");
+ multiSelection(rows);
+ selectedRows = getRowSelection("extended-data-table--output--mode-none");
+ checkSelection(selectedRows);
+ }
+
+ @Test
+ public void selectionModeSingleTest() {
+ final String singleSelectionMode = getMess("extended-data-table--option--selection-single");
+
+ openPage();
+ selectMode(selectSelectionMode, singleSelectionMode);
+
+ int[] rows, selectedRows;
+
+ rows = getRowSelection("extended-data-table--input--single-row");
+ multiSelection(rows);
+ selectedRows = getRowSelection("extended-data-table--output--mode-single--single-row");
+ checkSelection(selectedRows);
+
+ openPage();
+ selectMode(selectSelectionMode, singleSelectionMode);
+
+ rows = getRowSelection("extended-data-table--input--multiple-rows");
+ multiSelection(rows);
+ selectedRows = getRowSelection("extended-data-table--output--mode-single--multiple-rows");
+ checkSelection(selectedRows);
+ }
+
+ @Test
+ public void selectionModeMultiTest() {
+ final String multiSelectionMode = getMess("extended-data-table--option--selection-multi");
+
+ openPage();
+ selectMode(selectSelectionMode, multiSelectionMode);
+
+ int[] rows, selectedRows;
+
+ rows = getRowSelection("extended-data-table--input--single-row");
+ multiSelection(rows);
+ selectedRows = getRowSelection("extended-data-table--output--mode-multi--single-row");
+ checkSelection(selectedRows);
+
+ openPage();
+ selectMode(selectSelectionMode, multiSelectionMode);
+
+ rows = getRowSelection("extended-data-table--input--multiple-rows");
+ multiSelection(rows);
+ selectedRows = getRowSelection("extended-data-table--output--mode-multi--multiple-rows");
+ checkSelection(selectedRows);
+ }
+
+ private void selectMode(String selectLocator, String selectionMode) {
+ if (!selectionMode.equals(selenium.getValue(selectLocator))) {
+ selenium
+ .select(
+ selectLocator,
+ formatMess(
+ "extended-data-table--option-value--selection-mode-preformatted",
+ selectionMode));
+ waitForSplash();
+ }
+ }
+
+ private int[] getRowSelection(String messageKey) {
+ String message = getMess(messageKey);
+ String[] tokens = StringUtils.splitPreserveAllTokens(message, ',');
+ int[] rows = new int[tokens.length];
+
+ for (int i = 0; i < tokens.length; i++) {
+ rows[i] = Integer.valueOf(tokens[i]);
+ }
+
+ return rows;
+ }
+
+ private void multiSelection(int[] rows) {
+ int column = 2;
+
+ for (int i = 0; i < rows.length; i++) {
+ final int row = rows[i];
+ String cell = format(cells, row, column);
+
+ if (i > 0) {
+ selenium.controlKeyDown();
+ }
+
+ selenium.click(cell);
+
+ if (i > 0) {
+ selenium.controlKeyUp();
+ }
+ }
+ }
+
+ private void checkSelection(int[] rows) {
+ checkSelection(rows, true);
+ checkSelection(rows, false);
+ }
+
+ private void checkSelection(int[] rows, boolean positiveComparison) {
+ final String selectedRow = getLoc("extended-data-table--selected-row");
+
+ String comparison = (positiveComparison) ? "position()="
+ : "position()!=";
+ String conjuction = (positiveComparison) ? " or " : " and ";
+
+ String condition = " and ("
+ + comparison
+ + StringUtils.join(ArrayUtils.toObject(rows), conjuction
+ + comparison) + ")";
+
+ if (rows.length == 0) {
+ condition = "";
+ }
+
+ int count = selenium.getXpathCount(format(selectedRow, condition))
+ .intValue();
+
+ Assert.assertTrue(positiveComparison ? count == rows.length
+ : count == 0);
+ }
+
+ private void waitForSplash() {
+ final String splashScreen = getLoc("extended-data-table--splash-screen");
+ Wait.dontFail().interval(1).timeout(2000).until(new Condition() {
+ public boolean isTrue() {
+ return selenium.isElementPresent(splashScreen);
+ }
+ });
+ Wait.interval(1).timeout(2000).until(new Condition() {
+ public boolean isTrue() {
+ return !selenium.isElementPresent(splashScreen);
+ }
+ });
+ }
+
+ private String preformatColumn(String columnHeader) {
+ int columnIndex = getColumnIndex(columnHeader);
+ String columnPreformatted = format(cells, Integer.MAX_VALUE,
+ columnIndex);
+ return columnPreformatted.replaceFirst(format("\\[{0,number}\\]",
+ Integer.MAX_VALUE), "{0,choice,0#|1#[{0}]}");
+ }
+
+ private String preformatFilterInput(String columnHeader) {
+ final String inputFilterPreformatted = getLoc("extended-data-table--input--filter-column");
+ int columnIndex = getColumnIndex(columnHeader);
+ return format(inputFilterPreformatted, columnIndex);
+ }
+
+ private int getColumnIndex(String columnHeader) {
+ return 1 + selenium.getElementIndex(
+ format(relativeColumnHeaderToItsLabel, columnHeader))
+ .intValue();
+ }
+
+ private void checkFiltering() {
+ final String inputFilterState = preformatFilterInput(columnHeaderState);
+ final String inputFilterCapital = preformatFilterInput(columnHeaderCapital);
+ final String cellsState = preformatColumn(columnHeaderState);
+ final String cellsCapital = preformatColumn(columnHeaderCapital);
+
+ String statePrefix = selenium.getValue(inputFilterState);
+ String capitalPrefix = selenium.getValue(inputFilterCapital);
+
+ int rows = selenium.getXpathCount(format(cellsState, 0)).intValue();
+
+ for (int row = 1; row <= rows; row++) {
+ if (statePrefix.length() > 0) {
+ String state = selenium.getText(format(cellsState, row));
+ Assert.assertTrue(state.startsWith(statePrefix));
+ }
+ if (capitalPrefix.length() > 0) {
+ String capital = selenium.getText(format(cellsCapital, row));
+ Assert.assertTrue(capital.startsWith(capitalPrefix));
+ }
+ }
+ }
+
+ private String getImgSrcOrText(String locator) {
+ String imgSrc = formatLoc(
+ "extended-data-table--relative-image-src--flag", locator);
+ if (selenium.isElementPresent(imgSrc)) {
+ return selenium.getAttribute(imgSrc);
+ } else {
+ return selenium.getText(locator);
+ }
+ }
+
+ private HashMap<String, Vector<String>> getAssociationMap() {
+ HashMap<String, Vector<String>> association = new HashMap<String, Vector<String>>();
+
+ String[] columnsPreformatted = new ArrayTransform<String, String>(String.class) {
+ public String transformation(String columnHeaderDragging) {
+ return preformatColumn(columnHeaderDragging);
+ }
+ }.transform(columnHeadersDragging);
+
+ int rows = selenium.getXpathCount(format(columnsPreformatted[0], 0))
+ .intValue();
+
+ for (int row = 1; row <= rows; row++) {
+ String key = selenium.getText(format(columnsPreformatted[0], row));
+ Vector<String> values = new Vector<String>(
+ columnsPreformatted.length - 1);
+ for (int column = 1; column < columnsPreformatted.length; column++) {
+ String columnsContentDiv = formatLoc(
+ "extended-data-table--relative-div--column-to-its-content",
+ columnsPreformatted[column]);
+ String value = getImgSrcOrText(format(columnsContentDiv, row));
+ values.add(column - 1, value);
+ }
+ association.put(key, values);
+ }
+
+ return association;
+ }
+
+ private String getInputFilterState() {
+ return preformatFilterInput(columnHeaderState);
+ }
+}
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/fileUpload/FileUploadTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/fileUpload/FileUploadTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/fileUpload/FileUploadTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,534 @@
+/**
+ * License Agreement.
+ *
+ * JBoss RichFaces
+ *
+ * Copyright (C) 2009 Red Hat, Inc.
+ *
+ * This code is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this code; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package org.jboss.richfaces.integrationTest.fileUpload;
+
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertFalse;
+import static org.testng.Assert.assertTrue;
+import static org.testng.Assert.fail;
+
+import java.awt.Color;
+import java.awt.Graphics2D;
+import java.awt.image.BufferedImage;
+import java.io.File;
+import java.io.IOException;
+import java.net.MalformedURLException;
+import java.net.URL;
+
+import javax.imageio.ImageIO;
+
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.jboss.test.selenium.waiting.Condition;
+import org.jboss.test.selenium.waiting.Wait;
+import org.testng.annotations.AfterClass;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+/**
+ * Test case that tests the component for uploading files. Before test it
+ * generates 6 images, each with size 128x128px with solid color - one of red,
+ * blue, cyan, yellow, orange, or green as defined in the java.awt.Color. It
+ * saves the images in temporary directory. After test it deletes all files.
+ *
+ * @author <a href="mailto:ppitonak@redhat.com">Pavol Pitonak</a>
+ * @version $Revision$
+ */
+public class FileUploadTestCase extends AbstractSeleniumRichfacesTestCase {
+
+ private static final String FILE_RED = "/tmp/selenium-test" + Color.RED.getRGB() + ".jpg";
+ private static final String FILE_BLUE = "/tmp/selenium-test" + Color.BLUE.getRGB() + ".jpg";
+ private static final String FILE_CYAN = "/tmp/selenium-test" + Color.CYAN.getRGB() + ".jpg";
+ private static final String FILE_YELLOW = "/tmp/selenium-test" + Color.YELLOW.getRGB() + ".jpg";
+ private static final String FILE_ORANGE = "/tmp/selenium-test" + Color.ORANGE.getRGB() + ".jpg";
+ private static final String FILE_BIG = "/tmp/selenium-test" + Color.GREEN.getRGB() + ".jpg";
+
+ // messages
+ private final String MSG_COULD_NOT_CREATE_IMAGE = getMsg("COULD_NOT_CREATE_IMAGE");
+ private final String MSG_PROVIDED_URL_NOT_VALID = getMsg("PROVIDED_URL_NOT_VALID");
+ private final String MSG_COULD_NOT_READ_IMAGE = getMsg("COULD_NOT_READ_IMAGE");
+
+ private final String MSG_LEFT_PANEL_NUMBER_OF_ITEMS = getMsg("LEFT_PANEL_NUMBER_OF_ITEMS");
+ private final String MSG_LEFT_PANEL_NAME_N = getMsg("LEFT_PANEL_NAME_N");
+ private final String MSG_LEFT_PANEL_CANCEL_N = getMsg("LEFT_PANEL_CANCEL_N");
+ private final String MSG_LEFT_PANEL_DONE_N = getMsg("LEFT_PANEL_DONE_N");
+
+ private final String MSG_RIGHT_PANEL_CONTENT = getMsg("RIGHT_PANEL_CONTENT");
+ private final String MSG_RIGHT_PANEL_NUMBER_OF_ITEMS = getMsg("RIGHT_PANEL_NUMBER_OF_ITEMS");
+ private final String MSG_RIGHT_PANEL_NAME_N = getMsg("RIGHT_PANEL_NAME_N");
+ private final String MSG_RIGHT_PANEL_SIZE_N = getMsg("RIGHT_PANEL_SIZE_N");
+ private final String MSG_RIGHT_PANEL_COLOR_N_X_Y = getMsg("RIGHT_PANEL_COLOR_N_X_Y");
+
+ private final String MSG_ADD_BUTTON_ENABLED = getMsg("ADD_BUTTON_ENABLED");
+ private final String MSG_ADD_BUTTON_NOT_ENABLED = getMsg("ADD_BUTTON_NOT_ENABLED");
+ private final String MSG_UPLOAD_BUTTON_VISIBLE = getMsg("UPLOAD_BUTTON_VISIBLE");
+ private final String MSG_UPLOAD_BUTTON_NOT_VISIBLE = getMsg("UPLOAD_BUTTON_NOT_VISIBLE");
+ private final String MSG_CLEAR_ALL_BUTTON_VISIBLE = getMsg("CLEAR_ALL_BUTTON_VISIBLE");
+ private final String MSG_CLEAR_ALL_BUTTON_NOT_VISIBLE = getMsg("CLEAR_ALL_BUTTON_NOT_VISIBLE");
+ private final String MSG_CLEAR_UPLOADED_DATA_BUTTON_VISIBLE = getMsg("CLEAR_UPLOADED_DATA_BUTTON_VISIBLE");
+ private final String MSG_CLEAR_UPLOADED_DATA_BUTTON_NOT_VISIBLE = getMsg("CLEAR_UPLOADED_DATA_BUTTON_NOT_VISIBLE");
+
+ // locators
+ private final String LOC_EXAMPLE_HEADER = getLoc("EXAMPLE_HEADER");
+ private final String LOC_ADD_BUTTON_N = getLoc("ADD_BUTTON_N");
+ private final String LOC_ADD_BUTTON_CLASS = getLoc("ADD_BUTTON_CLASS");
+ private final String LOC_UPLOAD_BUTTON = getLoc("UPLOAD_BUTTON");
+ private final String LOC_UPLOAD_BUTTON_STYLE = getLoc("UPLOAD_BUTTON_STYLE");
+ private final String LOC_CLEAR_ALL_BUTTON = getLoc("CLEAR_ALL_BUTTON");
+ private final String LOC_CLEAR_ALL_BUTTON_STYLE = getLoc("CLEAR_ALL_BUTTON_STYLE");
+ private final String LOC_CLEAR_UPLOADED_DATA_BUTTON = getLoc("CLEAR_UPLOADED_DATA_BUTTON");
+
+ private final String LOC_NOT_UPLOADED_LIST_TR = getLoc("NOT_UPLOADED_LIST_TR");
+ private final String LOC_NOT_UPLOADED_LIST_N_NAME = getLoc("NOT_UPLOADED_LIST_N_NAME");
+ private final String LOC_NOT_UPLOADED_LIST_N_DONE = getLoc("NOT_UPLOADED_LIST_N_DONE");
+ private final String LOC_NOT_UPLOADED_LIST_N_CANCEL = getLoc("NOT_UPLOADED_LIST_N_CANCEL");
+
+ private final String LOC_UPLOADED_FILES_INFO = getLoc("UPLOADED_FILES_INFO");
+ private final String LOC_UPLOADED_LIST_TR = getLoc("UPLOADED_LIST_TR");
+ private final String LOC_UPLOADED_LIST_N_IMG = getLoc("UPLOADED_LIST_N_IMG");
+ private final String LOC_UPLOADED_LIST_N_NAME = getLoc("UPLOADED_LIST_N_NAME");
+ private final String LOC_UPLOADED_LIST_N_SIZE = getLoc("UPLOADED_LIST_N_SIZE");
+
+ private final String LOC_AUTOMATIC_UPLOAD = getLoc("AUTOMATIC_UPLOAD");
+ private final String LOC_FLASH = getLoc("FLASH");
+
+ /**
+ * Tests uploading one file. First it checks that the component is empty,
+ * add button is enabled and that upload button and clear all buttons are
+ * disabled. Then it checks that button for clearing uploaded data is not
+ * visible. After that it attaches yellow picture and verifies that it
+ * appeared in left part of component. It checks all buttons again and
+ * clicks the upload button. Then it checks all button third time.
+ */
+ @Test
+ public void testUploadOneFile() {
+ String text = selenium.getText(LOC_UPLOADED_FILES_INFO);
+ assertEquals(text, "No files currently uploaded", MSG_RIGHT_PANEL_CONTENT);
+
+ int count = selenium.getXpathCount(LOC_NOT_UPLOADED_LIST_TR).intValue();
+ assertEquals(count, 0, MSG_LEFT_PANEL_NUMBER_OF_ITEMS);
+
+ assertTrue(!belongsClass("rich-fileupload-button-dis", LOC_ADD_BUTTON_CLASS), MSG_ADD_BUTTON_ENABLED);
+ assertFalse(isDisplayed(LOC_UPLOAD_BUTTON_STYLE), MSG_UPLOAD_BUTTON_NOT_VISIBLE);
+ assertFalse(isDisplayed(LOC_CLEAR_ALL_BUTTON_STYLE), MSG_CLEAR_ALL_BUTTON_NOT_VISIBLE);
+
+ boolean isPresent = selenium.isElementPresent(LOC_CLEAR_UPLOADED_DATA_BUTTON);
+ assertFalse(isPresent, MSG_CLEAR_UPLOADED_DATA_BUTTON_NOT_VISIBLE);
+
+ selenium.attachFile(String.format(LOC_ADD_BUTTON_N, 1), "file://" + FILE_YELLOW);
+
+ count = selenium.getXpathCount(LOC_NOT_UPLOADED_LIST_TR).intValue();
+ assertEquals(count, 1, MSG_LEFT_PANEL_NUMBER_OF_ITEMS);
+
+ assertTrue(!belongsClass("rich-fileupload-button-dis", LOC_ADD_BUTTON_CLASS), MSG_ADD_BUTTON_ENABLED);
+ assertTrue(isDisplayed(LOC_UPLOAD_BUTTON_STYLE), MSG_UPLOAD_BUTTON_VISIBLE);
+ assertFalse(isDisplayed(LOC_CLEAR_ALL_BUTTON_STYLE), MSG_CLEAR_ALL_BUTTON_NOT_VISIBLE);
+
+ isPresent = selenium.isElementPresent(LOC_CLEAR_UPLOADED_DATA_BUTTON);
+ assertFalse(isPresent, MSG_CLEAR_UPLOADED_DATA_BUTTON_NOT_VISIBLE);
+
+ selenium.click(LOC_UPLOAD_BUTTON);
+ waitFor(2000);
+
+ assertTrue(!belongsClass("rich-fileupload-button-dis", LOC_ADD_BUTTON_CLASS), MSG_ADD_BUTTON_ENABLED);
+ assertFalse(isDisplayed(LOC_UPLOAD_BUTTON_STYLE), MSG_UPLOAD_BUTTON_NOT_VISIBLE);
+ assertTrue(isDisplayed(LOC_CLEAR_ALL_BUTTON_STYLE), MSG_CLEAR_ALL_BUTTON_VISIBLE);
+
+ isPresent = selenium.isElementPresent(LOC_CLEAR_UPLOADED_DATA_BUTTON);
+ assertTrue(isPresent, MSG_CLEAR_UPLOADED_DATA_BUTTON_VISIBLE);
+ }
+
+ /**
+ * Tests information in the left list. First it attaches 2 files -- yellow
+ * and blue. Then it verifies that these two files appeared in left list. It
+ * verifies the name of the file in the list and checks that the cancel
+ * button is visible. Then it clicks upload button and verifies that there
+ * are two files in the right list. Then it checks the left list again.
+ */
+ @Test
+ void testFilesToBeUploadedInfo() {
+ int count = selenium.getXpathCount(LOC_NOT_UPLOADED_LIST_TR).intValue();
+ assertEquals(count, 0, MSG_LEFT_PANEL_NUMBER_OF_ITEMS);
+
+ selenium.attachFile(String.format(LOC_ADD_BUTTON_N, 1), "file://" + FILE_YELLOW);
+ selenium.attachFile(String.format(LOC_ADD_BUTTON_N, 2), "file://" + FILE_BLUE);
+
+ count = selenium.getXpathCount(LOC_NOT_UPLOADED_LIST_TR).intValue();
+ assertEquals(count, 2, MSG_LEFT_PANEL_NUMBER_OF_ITEMS);
+
+ String text = selenium.getText(String.format(LOC_NOT_UPLOADED_LIST_N_NAME, 1));
+ assertEquals(text, "selenium-test" + Color.YELLOW.getRGB() + ".jpg", String.format(MSG_LEFT_PANEL_NAME_N, 1));
+ text = selenium.getText(String.format(LOC_NOT_UPLOADED_LIST_N_NAME, 2));
+ assertEquals(text, "selenium-test" + Color.BLUE.getRGB() + ".jpg", String.format(MSG_LEFT_PANEL_NAME_N, 2));
+
+ text = selenium.getText(String.format(LOC_NOT_UPLOADED_LIST_N_CANCEL, 1));
+ assertEquals(text, "Cancel", String.format(MSG_LEFT_PANEL_CANCEL_N, 1));
+ text = selenium.getText(String.format(LOC_NOT_UPLOADED_LIST_N_CANCEL, 2));
+ assertEquals(text, "Cancel", String.format(MSG_LEFT_PANEL_CANCEL_N, 2));
+
+ text = selenium.getText(String.format(LOC_NOT_UPLOADED_LIST_N_DONE, 1));
+ assertEquals(text, "", String.format(MSG_LEFT_PANEL_DONE_N, 1));
+ text = selenium.getText(String.format(LOC_NOT_UPLOADED_LIST_N_DONE, 2));
+ assertEquals(text, "", String.format(MSG_LEFT_PANEL_DONE_N, 1));
+
+ selenium.click(LOC_UPLOAD_BUTTON);
+ waitFor(2000);
+
+ count = selenium.getXpathCount(LOC_NOT_UPLOADED_LIST_TR).intValue();
+ assertEquals(count, 2, MSG_LEFT_PANEL_NUMBER_OF_ITEMS);
+
+ text = selenium.getText(String.format(LOC_NOT_UPLOADED_LIST_N_NAME, 1));
+ assertEquals(text, "selenium-test" + Color.YELLOW.getRGB() + ".jpg", String.format(MSG_LEFT_PANEL_NAME_N, 1));
+ text = selenium.getText(String.format(LOC_NOT_UPLOADED_LIST_N_NAME, 2));
+ assertEquals(text, "selenium-test" + Color.BLUE.getRGB() + ".jpg", String.format(MSG_LEFT_PANEL_NAME_N, 2));
+
+ text = selenium.getText(String.format(LOC_NOT_UPLOADED_LIST_N_CANCEL, 1));
+ assertEquals(text, "Clear", String.format(MSG_LEFT_PANEL_CANCEL_N, 1));
+ text = selenium.getText(String.format(LOC_NOT_UPLOADED_LIST_N_CANCEL, 2));
+ assertEquals(text, "Clear", String.format(MSG_LEFT_PANEL_CANCEL_N, 1));
+
+ text = selenium.getText(String.format(LOC_NOT_UPLOADED_LIST_N_DONE, 1));
+ assertEquals(text, "Done", String.format(MSG_LEFT_PANEL_DONE_N, 1));
+ text = selenium.getText(String.format(LOC_NOT_UPLOADED_LIST_N_DONE, 2));
+ assertEquals(text, "Done", String.format(MSG_LEFT_PANEL_DONE_N, 1));
+ }
+
+ /**
+ * Tests information in the right part of the component. First it uploads
+ * two files -- cyan and orange. Then it checks the name and size of both
+ * files in the right list.
+ */
+ @Test
+ public void testUploadedFilesInfo() {
+ int count = selenium.getXpathCount(LOC_UPLOADED_LIST_TR).intValue();
+ assertEquals(count, 0, MSG_RIGHT_PANEL_NUMBER_OF_ITEMS);
+
+ selenium.attachFile(String.format(LOC_ADD_BUTTON_N, 1), "file://" + FILE_CYAN);
+ selenium.attachFile(String.format(LOC_ADD_BUTTON_N, 2), "file://" + FILE_ORANGE);
+
+ selenium.click(LOC_UPLOAD_BUTTON);
+
+ count = selenium.getXpathCount(LOC_UPLOADED_LIST_TR).intValue();
+ assertEquals(count, 0, MSG_RIGHT_PANEL_NUMBER_OF_ITEMS);
+
+ waitForElement(String.format(LOC_UPLOADED_LIST_N_NAME, 1));
+
+ String text = selenium.getText(String.format(LOC_UPLOADED_LIST_N_NAME, 1));
+ assertEquals(text, "selenium-test" + Color.CYAN.getRGB() + ".jpg", String.format(MSG_RIGHT_PANEL_NAME_N, 1));
+ text = selenium.getText(String.format(LOC_UPLOADED_LIST_N_NAME, 2));
+ assertEquals(text, "selenium-test" + Color.ORANGE.getRGB() + ".jpg", String.format(MSG_RIGHT_PANEL_NAME_N, 2));
+
+ long size1 = Long.parseLong(selenium.getText(String.format(LOC_UPLOADED_LIST_N_SIZE, 1)));
+ long size2 = new File(FILE_CYAN).length();
+ assertEquals(size1, size2, String.format(MSG_RIGHT_PANEL_SIZE_N, 1));
+
+ size1 = Long.parseLong(selenium.getText(String.format(LOC_UPLOADED_LIST_N_SIZE, 2)));
+ size2 = new File(FILE_ORANGE).length();
+ assertEquals(size1, size2, String.format(MSG_RIGHT_PANEL_SIZE_N, 1));
+
+ // FIXME it cannot download the image
+ // String url =
+ // selenium.getAttribute(String.format(LOC_UPLOADED_LIST_N_IMG, 1) +
+ // "@src");
+ // assertImageColorEquals(url, Color.CYAN);
+ //
+ // url = selenium.getAttribute(String.format(LOC_UPLOADED_LIST_N_IMG, 2)
+ // + "@src");
+ // assertImageColorEquals(url, Color.BLUE);
+ }
+
+ /**
+ * Tests automatic upload. First it clicks the button activating automatic
+ * upload and attaches the cyan image. Then it waits for the right list to
+ * update.
+ */
+ @Test
+ public void testAutomaticUpload() {
+ selenium.click(LOC_AUTOMATIC_UPLOAD);
+
+ int count = selenium.getXpathCount(LOC_UPLOADED_LIST_TR).intValue();
+ assertEquals(count, 0, MSG_RIGHT_PANEL_NUMBER_OF_ITEMS);
+
+ selenium.attachFile(String.format(LOC_ADD_BUTTON_N, 1), "file://" + FILE_CYAN);
+
+ waitForElement(LOC_UPLOADED_LIST_TR);
+ count = selenium.getXpathCount(LOC_UPLOADED_LIST_TR).intValue();
+ assertEquals(count, 1, MSG_RIGHT_PANEL_NUMBER_OF_ITEMS);
+ }
+
+ /**
+ * Tests uploading maximal allowed number of files -- 5.
+ */
+ @Test
+ public void testUploadFiveFiles() {
+ assertTrue(!belongsClass("rich-fileupload-button-dis", LOC_ADD_BUTTON_CLASS), MSG_ADD_BUTTON_ENABLED);
+
+ selenium.attachFile(String.format(LOC_ADD_BUTTON_N, 1), "file://" + FILE_YELLOW);
+ selenium.attachFile(String.format(LOC_ADD_BUTTON_N, 2), "file://" + FILE_BLUE);
+ selenium.attachFile(String.format(LOC_ADD_BUTTON_N, 3), "file://" + FILE_CYAN);
+ selenium.attachFile(String.format(LOC_ADD_BUTTON_N, 4), "file://" + FILE_ORANGE);
+ selenium.attachFile(String.format(LOC_ADD_BUTTON_N, 5), "file://" + FILE_RED);
+
+ assertFalse(!belongsClass("rich-fileupload-button-dis", LOC_ADD_BUTTON_CLASS), MSG_ADD_BUTTON_NOT_ENABLED);
+ }
+
+ /**
+ * Tests uploading a file with size that is bigger than allowed maximum.
+ * First it attaches yellow image, then the big image and clicks the upload
+ * button. Then it checks properties of files in the left list.
+ */
+ @Test
+ public void testUploadBigFile() {
+ selenium.attachFile(String.format(LOC_ADD_BUTTON_N, 1), "file://" + FILE_YELLOW);
+ selenium.attachFile(String.format(LOC_ADD_BUTTON_N, 2), "file://" + FILE_BIG);
+
+ selenium.click(LOC_UPLOAD_BUTTON);
+ waitFor(2000);
+
+ String text = selenium.getText(String.format(LOC_NOT_UPLOADED_LIST_N_NAME, 1));
+ assertEquals(text, "selenium-test" + Color.YELLOW.getRGB() + ".jpg", String.format(MSG_LEFT_PANEL_NAME_N, 1));
+ text = selenium.getText(String.format(LOC_NOT_UPLOADED_LIST_N_NAME, 2));
+ assertEquals(text, "selenium-test" + Color.GREEN.getRGB() + ".jpg", String.format(MSG_LEFT_PANEL_NAME_N, 2));
+
+ text = selenium.getText(String.format(LOC_NOT_UPLOADED_LIST_N_CANCEL, 1));
+ assertEquals(text, "Clear", String.format(MSG_LEFT_PANEL_CANCEL_N, 1));
+ text = selenium.getText(String.format(LOC_NOT_UPLOADED_LIST_N_CANCEL, 2));
+ assertEquals(text, "Cancel", String.format(MSG_LEFT_PANEL_CANCEL_N, 2));
+
+ text = selenium.getText(String.format(LOC_NOT_UPLOADED_LIST_N_DONE, 1));
+ assertEquals(text, "Done", String.format(MSG_LEFT_PANEL_DONE_N, 2));
+ text = selenium.getText(String.format(LOC_NOT_UPLOADED_LIST_N_DONE, 2));
+ assertEquals(text, "File size restricted", String.format(MSG_LEFT_PANEL_DONE_N, 2));
+
+ int count = selenium.getXpathCount(LOC_UPLOADED_LIST_TR).intValue();
+ assertEquals(count, 1, MSG_RIGHT_PANEL_NUMBER_OF_ITEMS);
+ }
+
+ /**
+ * Tests the "Clear All" button. It uploads two files -- yellow and cyan,
+ * verifies that the clear all button is visible, and clicks it. Then it
+ * checks that the button disappeared and that the left list is empty.
+ */
+ @Test
+ public void testClearAllButton() {
+ selenium.attachFile(String.format(LOC_ADD_BUTTON_N, 1), "file://" + FILE_YELLOW);
+ selenium.attachFile(String.format(LOC_ADD_BUTTON_N, 2), "file://" + FILE_CYAN);
+
+ assertFalse(isDisplayed(LOC_CLEAR_ALL_BUTTON_STYLE), MSG_CLEAR_ALL_BUTTON_NOT_VISIBLE);
+
+ selenium.click(LOC_UPLOAD_BUTTON);
+ waitForElement(LOC_UPLOADED_LIST_TR);
+
+ assertTrue(isDisplayed(LOC_CLEAR_ALL_BUTTON_STYLE), MSG_CLEAR_ALL_BUTTON_VISIBLE);
+
+ selenium.click(LOC_CLEAR_ALL_BUTTON);
+
+ assertFalse(isDisplayed(LOC_CLEAR_ALL_BUTTON_STYLE), MSG_CLEAR_ALL_BUTTON_NOT_VISIBLE);
+
+ int count = selenium.getXpathCount(LOC_NOT_UPLOADED_LIST_TR).intValue();
+ assertEquals(count, 0, MSG_LEFT_PANEL_NUMBER_OF_ITEMS);
+ }
+
+ /**
+ * Tests the "Clear Up Uploaded Data" button. First it verifies that the
+ * button is hidden and then uploads two images - yellow and cyan. Then it
+ * checks that the button is visible now and clicks it. After that it checks
+ * that button disappeared again. At the end it verifies that both left and
+ * right lists are empty.
+ */
+ @Test
+ public void testClearUploadedDataButton() {
+ selenium.attachFile(String.format(LOC_ADD_BUTTON_N, 1), "file://" + FILE_YELLOW);
+ selenium.attachFile(String.format(LOC_ADD_BUTTON_N, 2), "file://" + FILE_CYAN);
+
+ assertFalse(selenium.isElementPresent(LOC_CLEAR_UPLOADED_DATA_BUTTON),
+ MSG_CLEAR_UPLOADED_DATA_BUTTON_NOT_VISIBLE);
+
+ waitFor(2000);
+
+ selenium.click(LOC_UPLOAD_BUTTON);
+ waitForElement(LOC_UPLOADED_LIST_TR);
+
+ assertTrue(selenium.isElementPresent(LOC_CLEAR_UPLOADED_DATA_BUTTON), MSG_CLEAR_UPLOADED_DATA_BUTTON_VISIBLE);
+
+ selenium.click(LOC_CLEAR_UPLOADED_DATA_BUTTON);
+
+ // wait for JavaScript to finish its work
+ Wait.until(new Condition() {
+ public boolean isTrue() {
+ return !selenium.isElementPresent(LOC_UPLOADED_LIST_TR);
+ }
+ });
+
+ assertFalse(selenium.isElementPresent(LOC_CLEAR_UPLOADED_DATA_BUTTON),
+ MSG_CLEAR_UPLOADED_DATA_BUTTON_NOT_VISIBLE);
+
+ int count = selenium.getXpathCount(LOC_NOT_UPLOADED_LIST_TR).intValue();
+ assertEquals(count, 0, MSG_LEFT_PANEL_NUMBER_OF_ITEMS);
+
+ count = selenium.getXpathCount(LOC_UPLOADED_LIST_TR).intValue();
+ assertEquals(count, 0, MSG_RIGHT_PANEL_NUMBER_OF_ITEMS);
+ }
+
+ // /**
+ // * TODO Test the Flash version of the component.
+ // */
+ // @Test
+ // public void testFlash() {
+ //
+ // }
+
+ /**
+ * Tests the "View Source". It checks that the source code is not visible,
+ * clicks on the link, and checks 8 lines of source code.
+ */
+ @Test
+ public void testPageSource() {
+ String[] strings = new String[] { "<ui:composition xmlns=\"http://www.w3.org/1999/xhtml\"",
+ "<h:panelGrid columns=\"2\" columnClasses=\"top,top\">",
+ "<rich:fileUpload fileUploadListener=\"#{fileUploadBean.listener}\"",
+ "maxFilesQuantity=\"#{fileUploadBean.uploadsAvailable}\"", "id=\"upload\"",
+ "immediateUpload=\"#{fileUploadBean.autoUpload}\"",
+ "acceptedTypes=\"jpg, gif, png, bmp\" allowFlash=\"#{fileUploadBean.useFlash}\">",
+ "<a4j:support event=\"onuploadcomplete\" reRender=\"info\" />", };
+
+ abstractTestSource(1, "View Source", strings);
+ }
+
+ /**
+ * Tests the "View FileUploadBean.java Source". It checks that the source
+ * code is not visible, clicks on the link, and checks 8 lines of source
+ * code.
+ */
+ @Test
+ public void testBeanSource() {
+ String[] strings = new String[] { "package org.richfaces.demo.fileUpload;", "public FileUploadBean() {",
+ "public void paint(OutputStream stream, Object object) throws IOException {",
+ "public void listener(UploadEvent event) throws Exception{", "public String clearUploadData() {",
+ "public long getTimeStamp(){", "public ArrayList<File> getFiles() {",
+ "public void setFiles(ArrayList<File> files) { ", };
+
+ abstractTestSource(1, "View FileUploadBean.java Source", strings);
+ }
+
+ /**
+ * Creates an image of given width, height, and color.
+ *
+ * @param c
+ * color of the image to be created
+ * @param width
+ * width of the image to be created
+ * @param height
+ * height of the image to be created
+ */
+ private void createImage(Color c, int width, int height) {
+ BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
+ Graphics2D graphics = image.createGraphics();
+ graphics.setColor(c);
+ graphics.fillRect(0, 0, width, height);
+ try {
+ ImageIO.write(image, "JPEG", new File("/tmp/selenium-test" + c.getRGB() + ".jpg"));
+ } catch (IOException e) {
+ fail(MSG_COULD_NOT_CREATE_IMAGE);
+ }
+ }
+
+ /**
+ * Asserts that the image's color equals the one from method's parameter.
+ *
+ * @param url
+ * relative url of the image
+ * @param expecteColor
+ * expected color of the image
+ */
+ private void assertImageColorEquals(String url, Color expecteColor) {
+ assertEquals(getPixelColor(url, 0, 0), expecteColor, String.format(MSG_RIGHT_PANEL_COLOR_N_X_Y, 0, 0));
+ assertEquals(getPixelColor(url, 10, 18), expecteColor, String.format(MSG_RIGHT_PANEL_COLOR_N_X_Y, 10, 18));
+ assertEquals(getPixelColor(url, 120, 4), expecteColor, String.format(MSG_RIGHT_PANEL_COLOR_N_X_Y, 120, 4));
+ assertEquals(getPixelColor(url, 5, 9), expecteColor, String.format(MSG_RIGHT_PANEL_COLOR_N_X_Y, 5, 9));
+ assertEquals(getPixelColor(url, 84, 84), expecteColor, String.format(MSG_RIGHT_PANEL_COLOR_N_X_Y, 84, 84));
+ assertEquals(getPixelColor(url, 71, 55), expecteColor, String.format(MSG_RIGHT_PANEL_COLOR_N_X_Y, 71, 55));
+ }
+
+ /**
+ * Returns the color of the pixel with specified coordinates.
+ *
+ * @param url
+ * relative URL of the image
+ * @param x
+ * the horizontal coordinate of the pixel
+ * @param y
+ * the vertical coordinate of the pixel
+ * @return color of the pixel
+ */
+ private Color getPixelColor(String url, int x, int y) {
+ // the index of first '/' not counting http://
+ int index = selenium.getLocation().indexOf('/', 7);
+ url = selenium.getLocation().substring(0, index) + url;
+
+ BufferedImage image = null;
+ try {
+ image = ImageIO.read(new URL(url));
+ } catch (MalformedURLException e) {
+ fail(MSG_PROVIDED_URL_NOT_VALID);
+ } catch (IOException e) {
+ e.printStackTrace();
+ fail(MSG_COULD_NOT_READ_IMAGE);
+ }
+ int c = image.getRGB(18, 97);
+ int red = (c & 0x00ff0000) >> 16;
+ int green = (c & 0x0000ff00) >> 8;
+ int blue = c & 0x000000ff;
+
+ return new Color(red, green, blue);
+ }
+
+ @BeforeClass
+ private void createImages() {
+ createImage(Color.RED, 128, 128);
+ createImage(Color.BLUE, 128, 128);
+ createImage(Color.CYAN, 128, 128);
+ createImage(Color.YELLOW, 128, 128);
+ createImage(Color.ORANGE, 128, 128);
+ createImage(Color.GREEN, 2000, 3500);
+ }
+
+ @AfterClass
+ private void cleanUpImages() {
+ new File(FILE_RED).delete();
+ new File(FILE_BLUE).delete();
+ new File(FILE_CYAN).delete();
+ new File(FILE_YELLOW).delete();
+ new File(FILE_ORANGE).delete();
+ }
+
+ /**
+ * Loads the page containing the component.
+ */
+ @BeforeMethod
+ private void loadPage() {
+ openComponent("File Upload");
+ openTab("Usage");
+
+ scrollIntoView(LOC_EXAMPLE_HEADER, true);
+ }
+}
Property changes on: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/fileUpload/FileUploadTestCase.java
___________________________________________________________________
Name: svn:executable
+ *
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/graphValidator/GraphValidatorAfterModelUpdateTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/graphValidator/GraphValidatorAfterModelUpdateTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/graphValidator/GraphValidatorAfterModelUpdateTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,103 @@
+package org.jboss.richfaces.integrationTest.graphValidator;
+
+import junit.framework.Assert;
+
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.jboss.test.selenium.waiting.Condition;
+import org.jboss.test.selenium.waiting.Wait;
+import org.testng.annotations.Test;
+
+/**
+ * @author <a href="mailto:lfryc@redhat.com">Lukas Fryc</a>
+ * @version $Revision$
+ */
+public class GraphValidatorAfterModelUpdateTestCase extends
+ AbstractSeleniumRichfacesTestCase {
+ /**
+ * Opens specified page
+ */
+ public void openPage() {
+ selenium.open(contextPath
+ + "/richfaces/graphValidator.jsf?c=graphValidator&tab=usage");
+ scrollIntoView(header, true);
+ }
+
+ private String header = getLoc("graph-validator--header2");
+ private String buttonSubmit = getLoc("graph-validator--button--submit2");
+ private String validationMessage = getLoc("graph-validator--output--validation-message");
+ private String validationMessageClass = getLoc("graph-validator--attribute--validation-message-class");
+ private String activityTimes = getLoc("graph-validator--input--activity-times");
+ private String validMessageClass = getMess("graph-validator--attribute--class-valid");
+ private String invalidMessageClass = getMess("graph-validator--attribute--class-invalid");
+
+ @Test
+ public void noChangeIntoFormTest() {
+ openPage();
+
+ submitAndWaitForMessageAppears();
+
+ validateMessages(
+ invalidMessageClass,
+ getMess("graph-validator--message--please-fill-at-least-one-entry"));
+ }
+
+ @Test
+ public void changeStoredSuccessfullyTest() {
+ openPage();
+
+ typeAndSubmit(format(activityTimes, 1),
+ getMess("graph-validator--input--ok"));
+
+ validateMessages(
+ validMessageClass,
+ getMess("graph-validator--message--changes-stored-successfully"));
+ }
+
+ @Test
+ public void oneValueTooGreatTest() {
+ openPage();
+
+ typeAndSubmit(format(activityTimes, 1),
+ getMess("graph-validator--input--too-great"));
+
+ validateMessages(invalidMessageClass,
+ getMess("graph-validator--message--invalid-values"));
+ }
+
+ @Test
+ public void sumOfValuesTooGreatTest() {
+ openPage();
+
+ for (int i = 1; i <= 3; i++) {
+ selenium.type(format(activityTimes, i),
+ getMess("graph-validator--input--sum-too-great"));
+ }
+ submitAndWaitForMessageAppears();
+
+ validateMessages(invalidMessageClass,
+ getMess("graph-validator--message--sum-too-great"));
+ }
+
+ /* HELP METHODS */
+
+ private void typeAndSubmit(String locator, String text) {
+ selenium.type(locator, text);
+ submitAndWaitForMessageAppears();
+ }
+
+ private void submitAndWaitForMessageAppears() {
+ selenium.click(buttonSubmit);
+
+ Wait.until(new Condition() {
+ public boolean isTrue() {
+ return selenium.isElementPresent(validationMessage);
+ }
+ });
+ }
+
+ private void validateMessages(String className, String text) {
+ Assert.assertEquals(className, selenium
+ .getAttribute(validationMessageClass));
+ Assert.assertEquals(text, selenium.getText(validationMessage));
+ }
+}
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/graphValidator/GraphValidatorTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/graphValidator/GraphValidatorTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/graphValidator/GraphValidatorTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,151 @@
+package org.jboss.richfaces.integrationTest.graphValidator;
+
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.testng.annotations.Test;
+
+/**
+ * @author <a href="mailto:lfryc@redhat.com">Lukas Fryc</a>
+ * @version $Revision$
+ */
+public class GraphValidatorTestCase extends AbstractSeleniumRichfacesTestCase {
+ /**
+ * Opens specified page
+ */
+ public void openPage() {
+ selenium.open(contextPath
+ + "/richfaces/graphValidator.jsf?c=graphValidator&tab=usage");
+ scrollIntoView(header, true);
+ }
+
+ private String header = getLoc("graph-validator--header1");
+ private String buttonSubmit = getLoc("graph-validator--button--submit1");
+ private String inputName = getLoc("graph-validator--input--name");
+ private String inputEmail = getLoc("graph-validator--input--email");
+ private String inputAge = getLoc("graph-validator--input--age");
+ private String relativeValidationMessage = getLoc("graph-validator--relative--validation-message");
+
+ private void typeAndSubmit(String locator, String value) {
+ selenium.type(locator, value);
+ selenium.click(buttonSubmit);
+ }
+
+ public String getMessageFor(String locator) {
+ return format(relativeValidationMessage, locator);
+ }
+
+ @Test
+ public void nameValueRequired() {
+ openPage();
+ typeAndSubmit(inputName, "");
+ waitForTextEquals(getMessageFor(inputName),
+ getMess("may-not-be-null-or-empty"));
+ }
+
+ @Test
+ public void nameMinimumLength() {
+ openPage();
+ typeAndSubmit(inputName, getMess("less-than-minimum--enter"));
+ waitForTextEquals(getMessageFor(inputName),
+ getMess("bean-name--length"));
+ }
+
+ @Test
+ public void nameMaximumLength() {
+ openPage();
+ typeAndSubmit(inputName, getMess("greater-than-maximum--enter"));
+ waitForTextEquals(getMessageFor(inputName),
+ getMess("bean-name--length"));
+ }
+
+ @Test
+ public void nameOnlySpacesPattern() {
+ openPage();
+ typeAndSubmit(inputName, " ");
+ waitForTextEquals(getMessageFor(inputName), formatMess(
+ "less-than-minimum-of-2", selenium.getAttribute(format(
+ "{0}/@id", inputName))));
+ }
+
+ @Test
+ public void nameMessageDisappers() {
+ nameValueRequired();
+ typeAndSubmit(inputName, getMess("bean-name--valid-input"));
+ waitForTextEquals(getMessageFor(inputName), "");
+ }
+
+ @Test
+ public void ageValueRequired() {
+ openPage();
+ typeAndSubmit(inputAge, "");
+ waitForTextEquals(getMessageFor(inputAge), getMess("may-not-be-null"));
+ }
+
+ @Test
+ public void ageMinimumValue() {
+ openPage();
+ typeAndSubmit(inputAge, getMess("long-range--bellow"));
+ waitForTextEquals(getMessageFor(inputAge), getMess("bean-age--min"));
+ }
+
+ @Test
+ public void ageMaximumValue() {
+ openPage();
+ typeAndSubmit(inputAge, getMess("bean-age--max--enter"));
+ waitForTextEquals(getMessageFor(inputAge), getMess("bean-age--max"));
+ }
+
+ @Test
+ public void ageIntegerOnly() {
+ openPage();
+ typeAndSubmit(inputAge, formatMess("age-integer-only--enter", inputAge));
+ waitForTextEquals(getMessageFor(inputAge), formatMess(
+ "bean-age--integer-only", selenium.getAttribute(format(
+ "{0}/@id", inputAge))));
+ }
+
+ @Test
+ public void ageMessageDisappers() {
+ ageValueRequired();
+ typeAndSubmit(inputAge, getMess("valid-age"));
+ waitForTextEquals(getMessageFor(inputAge), "");
+ }
+
+ @Test
+ public void emailMayNotBeNullOrEmpty() {
+ openPage();
+ typeAndSubmit(inputEmail, "");
+ waitForTextEquals(getMessageFor(inputEmail),
+ getMess("may-not-be-null-or-empty"));
+ }
+
+ @Test
+ public void emailOnlySpaces() {
+ openPage();
+ typeAndSubmit(inputEmail, " ");
+ waitForTextEquals(getMessageFor(inputEmail),
+ getMess("not-well-formed-email"));
+ }
+
+ @Test
+ public void emailBad1() {
+ openPage();
+ typeAndSubmit(inputEmail, getMess("bad-email-1"));
+ waitForTextEquals(getMessageFor(inputEmail),
+ getMess("not-well-formed-email"));
+ }
+
+ @Test
+ public void emailBad2() {
+ openPage();
+ typeAndSubmit(inputEmail, getMess("bad-email-2"));
+ waitForTextEquals(getMessageFor(inputEmail),
+ getMess("not-well-formed-email"));
+ }
+
+ @Test
+ public void emailMessageDisappers() {
+ emailMayNotBeNullOrEmpty();
+ typeAndSubmit(inputEmail, getMess("well-formed-email"));
+ waitForTextEquals(getMessageFor(inputEmail), "");
+ }
+}
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/include/IncludeTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/include/IncludeTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/include/IncludeTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,193 @@
+package org.jboss.richfaces.integrationTest.include;
+
+import junit.framework.Assert;
+
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.jboss.test.selenium.waiting.Condition;
+import org.jboss.test.selenium.waiting.Wait;
+import org.testng.annotations.Test;
+
+/**
+ * @author <a href="mailto:lfryc@redhat.com">Lukas Fryc</a>
+ * @version $Revision$
+ */
+public class IncludeTestCase extends AbstractSeleniumRichfacesTestCase {
+ /**
+ * Opens specified page
+ */
+ public void openPage() {
+ selenium.open(contextPath
+ + "/richfaces/include.jsf?c=include&tab=usage");
+ scrollIntoView(header, true);
+ }
+
+ private String header = getLoc("include--header");
+ private String buttonNext = getLoc("include--button--next");
+ private String buttonPrevious = getLoc("include--button--previous");
+ private String inputFirstName = getLoc("include--input--first-name");
+ private String inputLastName = getLoc("include--input--last-name");
+ private String inputCompany = getLoc("include--input--company");
+ private String inputNotes = getLoc("include--input--notes");
+ private String outputFirstName = getLoc("include--output--first-name");
+ private String outputLastName = getLoc("include--output--last-name");
+ private String outputCompany = getLoc("include--output--company");
+ private String outputNotes = getLoc("include--output--notes");
+ private String sample = getMess("include--input--sample");
+
+ @Test
+ public void goThroughStepsTest() {
+ openPage();
+
+ goThroughSteps();
+ }
+
+ @Test(dependsOnMethods = { "goThroughStepsTest" })
+ public void goThroughStepsBackTest() {
+ openPage();
+
+ goThroughSteps();
+ goThroughStepsBack();
+ }
+
+ @Test
+ public void tryFailedValidationTest() {
+ openPage();
+
+ Assert.assertTrue(isFirstPage());
+
+ selenium.type(inputFirstName, format(sample, 1));
+ selenium.type(inputLastName, format(sample, 2));
+ selenium.click(buttonNext);
+
+ waitForText(getMess("include--message--company-required"));
+
+ selenium.type(inputCompany, format(sample, 3));
+ selenium.click(buttonNext);
+
+ Wait.until(new Condition() {
+ public boolean isTrue() {
+ return isSecondPage();
+ }
+ });
+
+ selenium.click(buttonPrevious);
+
+ Wait.until(new Condition() {
+ public boolean isTrue() {
+ return isFirstPage();
+ }
+ });
+
+ selenium.type(inputLastName, "");
+ selenium.click(buttonNext);
+
+ waitForText(getMess("include--message--last-name-required"));
+
+ selenium.type(inputLastName, format(sample, 2));
+ selenium.click(buttonNext);
+
+ Wait.until(new Condition() {
+ public boolean isTrue() {
+ return isSecondPage();
+ }
+ });
+
+ selenium.click(buttonNext);
+
+ waitForText(getMess("include--message--notes-required"));
+
+ selenium.type(inputNotes, format(sample, 4));
+ selenium.click(buttonNext);
+
+ Wait.until(new Condition() {
+ public boolean isTrue() {
+ return isLastPage();
+ }
+ });
+
+ Assert.assertEquals(format(sample, 1), selenium
+ .getText(outputFirstName));
+ Assert
+ .assertEquals(format(sample, 2), selenium
+ .getText(outputLastName));
+ Assert.assertEquals(format(sample, 3), selenium.getText(outputCompany));
+ Assert.assertEquals(format(sample, 4), selenium.getText(outputNotes));
+ }
+
+ public void goThroughSteps() {
+ Assert.assertTrue(isFirstPage());
+
+ selenium.type(inputFirstName, format(sample, 1));
+ selenium.type(inputLastName, format(sample, 2));
+ selenium.type(inputCompany, format(sample, 3));
+ selenium.click(buttonNext);
+
+ Wait.until(new Condition() {
+ public boolean isTrue() {
+ return isSecondPage();
+ }
+ });
+
+ selenium.type(inputNotes, format(sample, 4));
+ selenium.click(buttonNext);
+
+ Wait.until(new Condition() {
+ public boolean isTrue() {
+ return isLastPage();
+ }
+ });
+
+ Assert.assertEquals(format(sample, 1), selenium
+ .getText(outputFirstName));
+ Assert
+ .assertEquals(format(sample, 2), selenium
+ .getText(outputLastName));
+ Assert.assertEquals(format(sample, 3), selenium.getText(outputCompany));
+ Assert.assertEquals(format(sample, 4), selenium.getText(outputNotes));
+ }
+
+ private void goThroughStepsBack() {
+ selenium.click(buttonPrevious);
+
+ Wait.until(new Condition() {
+ public boolean isTrue() {
+ return isSecondPage();
+ }
+ });
+
+ Assert.assertEquals(format(sample, 4), selenium.getValue(inputNotes));
+
+ selenium.click(buttonPrevious);
+
+ Wait.until(new Condition() {
+ public boolean isTrue() {
+ return isFirstPage();
+ }
+ });
+
+ Assert.assertEquals(format(sample, 1), selenium
+ .getValue(inputFirstName));
+ Assert
+ .assertEquals(format(sample, 2), selenium
+ .getValue(inputLastName));
+ Assert.assertEquals(format(sample, 3), selenium.getValue(inputCompany));
+ }
+
+ private boolean isFirstPage() {
+ return isButtonsPresent(false, true);
+ }
+
+ private boolean isSecondPage() {
+ return isButtonsPresent(true, true);
+ }
+
+ private boolean isLastPage() {
+ return isButtonsPresent(true, false);
+ }
+
+ private boolean isButtonsPresent(boolean previousPresent,
+ boolean nextPresent) {
+ return (previousPresent == selenium.isElementPresent(buttonPrevious))
+ && (nextPresent == selenium.isElementPresent(buttonNext));
+ }
+}
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/inplaceInput/InplaceInputTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/inplaceInput/InplaceInputTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/inplaceInput/InplaceInputTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,286 @@
+package org.jboss.richfaces.integrationTest.inplaceInput;
+
+import static org.testng.Assert.assertFalse;
+import static org.testng.Assert.assertTrue;
+
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.jboss.test.selenium.dom.Event;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+/**
+ * Test case that tests the inplace input component.
+ * <ul>
+ * <li><b>TODO</b> create tests for the fourth example (table)
+ * </ul>
+ *
+ * @author <a href="mailto:ppitonak@redhat.com">Pavol Pitonak</a>
+ * @version $Revision$
+ */
+public class InplaceInputTestCase extends AbstractSeleniumRichfacesTestCase {
+
+ // messages
+ private final String MSG_COMPONENT_DESCRIPTION = getMess("COMPONENT_DESCRIPTION");
+ private final String MSG_INITIAL_VALUE_NAME = getMess("INITIAL_VALUE_NAME");
+ private final String MSG_INITIAL_VALUE_EMAIL = getMess("INITIAL_VALUE_EMAIL");
+ private final String MSG_NAME_JOHN_SMITH = getMess("NAME_JOHN_SMITH");
+ private final String MSG_EMAIL_JOHN_SMITH = getMess("EMAIL_JOHN_SMITH");
+ private final String MSG_RICH_INPLACE_VIEW = getMess("RICH_INPLACE_VIEW");
+ private final String MSG_RICH_INPLACE_CHANGED = getMess("RICH_INPLACE_CHANGED");
+ private final String MSG_NOT_RICH_INPLACE_CHANGED = getMess("NOT_RICH_INPLACE_CHANGED");
+ private final String MSG_RICH_INPLACE_EDIT = getMess("RICH_INPLACE_EDIT");
+ private final String MSG_NOT_RICH_INPLACE_EDIT = getMess("NOT_RICH_INPLACE_EDIT");
+
+ // locators
+ private final String LOC_FIRST_NAME = getLoc("FIRST_NAME");
+ private final String LOC_FIRST_NAME_INPUT = getLoc("FIRST_NAME_INPUT");
+ private final String LOC_FIRST_EMAIL = getLoc("FIRST_EMAIL");
+ private final String LOC_FIRST_EMAIL_INPUT = getLoc("FIRST_EMAIL_INPUT");
+ private final String LOC_SECOND_NAME = getLoc("SECOND_NAME");
+ private final String LOC_SECOND_NAME_INPUT = getLoc("SECOND_NAME_INPUT");
+ private final String LOC_SECOND_NAME_OK = getLoc("SECOND_NAME_OK");
+ private final String LOC_SECOND_NAME_CANCEL = getLoc("SECOND_NAME_CANCEL");
+ private final String LOC_SECOND_EMAIL = getLoc("SECOND_EMAIL");
+ private final String LOC_SECOND_EMAIL_INPUT = getLoc("SECOND_EMAIL_INPUT");
+ private final String LOC_SECOND_EMAIL_OK = getLoc("SECOND_EMAIL_OK");
+ private final String LOC_SECOND_EMAIL_CANCEL = getLoc("SECOND_EMAIL_CANCEL");
+ private final String LOC_THIRD = getLoc("THIRD");
+ private final String LOC_THIRD_INPUT = getLoc("THIRD_INPUT");
+ private final String LOC_THIRD_SAVE = getLoc("THIRD_SAVE");
+ private final String LOC_THIRD_CANCEL = getLoc("THIRD_CANCEL");
+
+ /**
+ * Tests the input for name in the first example. First it checks the attribute
+ * "class" of the input. Then it clicks on text, edits the text and fires the
+ * event "blur" so that the text is changed permanently. After that, it
+ * checks the attribute "class" and verifies that the text was changed.
+ */
+ @Test
+ public void testFirstName() {
+ scrollIntoView(LOC_FIRST_NAME, true);
+
+ String attr = selenium.getAttribute(LOC_FIRST_NAME + "@class");
+ assertTrue(attr.contains("rich-inplace-view"), MSG_RICH_INPLACE_VIEW);
+ assertFalse(attr.contains("rich-inplace-changed"),
+ MSG_NOT_RICH_INPLACE_CHANGED);
+ assertFalse(attr.contains("rich-inplace-edit"),
+ MSG_NOT_RICH_INPLACE_EDIT);
+
+ String text = selenium.getText(LOC_FIRST_NAME);
+ assertTrue(text.endsWith("click to enter your name"),
+ MSG_INITIAL_VALUE_NAME);
+
+ selenium.click(LOC_FIRST_NAME);
+
+ attr = selenium.getAttribute(LOC_FIRST_NAME + "@class");
+ assertTrue(attr.contains("rich-inplace-edit"), MSG_RICH_INPLACE_EDIT);
+
+ selenium.type(LOC_FIRST_NAME_INPUT, "John Smith");
+ selenium.fireEvent(LOC_FIRST_NAME_INPUT, "blur");
+
+ attr = selenium.getAttribute(LOC_FIRST_NAME + "@class");
+ assertTrue(attr.contains("rich-inplace-changed"),
+ MSG_RICH_INPLACE_CHANGED);
+ assertFalse(attr.contains("rich-inplace-edit"),
+ MSG_NOT_RICH_INPLACE_EDIT);
+
+ text = selenium.getText(LOC_FIRST_NAME);
+ assertTrue(text.endsWith("John Smith"), MSG_NAME_JOHN_SMITH);
+ }
+
+ /**
+ * Tests the input for email in the first example. First it checks the attribute
+ * "class" of the input. Then it clicks on text, edits the text and fires the
+ * event "blur" so that the text is changed permanently. After that, it
+ * checks the attribute "class" and verifies that the text was changed.
+ */
+ @Test
+ public void testFirstEmail() {
+ scrollIntoView(LOC_FIRST_EMAIL, true);
+
+ String attr = selenium.getAttribute(LOC_FIRST_EMAIL + "@class");
+ assertTrue(attr.contains("rich-inplace-view"), MSG_RICH_INPLACE_VIEW);
+ assertFalse(attr.contains("rich-inplace-changed"),
+ MSG_NOT_RICH_INPLACE_CHANGED);
+ assertFalse(attr.contains("rich-inplace-edit"),
+ MSG_NOT_RICH_INPLACE_EDIT);
+
+ String text = selenium.getText(LOC_FIRST_EMAIL);
+ assertTrue(text.endsWith("click to enter your email"),
+ MSG_INITIAL_VALUE_EMAIL);
+
+ selenium.click(LOC_FIRST_EMAIL);
+
+ attr = selenium.getAttribute(LOC_FIRST_EMAIL + "@class");
+ assertTrue(attr.contains("rich-inplace-edit"), MSG_RICH_INPLACE_EDIT);
+
+ selenium.type(LOC_FIRST_EMAIL_INPUT, "john(a)smith.name");
+ selenium.fireEvent(LOC_FIRST_EMAIL_INPUT, "blur");
+
+ attr = selenium.getAttribute(LOC_FIRST_EMAIL + "@class");
+ assertTrue(attr.contains("rich-inplace-changed"),
+ MSG_RICH_INPLACE_CHANGED);
+ assertFalse(attr.contains("rich-inplace-edit"),
+ MSG_NOT_RICH_INPLACE_EDIT);
+
+ text = selenium.getText(LOC_FIRST_EMAIL);
+ assertTrue(text.endsWith("john(a)smith.name"), MSG_EMAIL_JOHN_SMITH);
+ }
+
+ /**
+ * Tests the input for name in the second example. First it checks the attribute
+ * "class" of the input. Then it clicks on text, edits the text and
+ * clicks on the button so that the text is changed permanently. After that, it
+ * checks the attribute "class" and verifies that the text was changed.
+ */
+ @Test
+ public void testSecondName() {
+ scrollIntoView(LOC_SECOND_NAME, true);
+
+ String attr = selenium.getAttribute(LOC_SECOND_NAME + "@class");
+ assertTrue(attr.contains("rich-inplace-view"), MSG_RICH_INPLACE_VIEW);
+ assertFalse(attr.contains("rich-inplace-changed"),
+ MSG_NOT_RICH_INPLACE_CHANGED);
+ assertFalse(attr.contains("rich-inplace-edit"),
+ MSG_NOT_RICH_INPLACE_EDIT);
+
+ String text = selenium.getText(LOC_SECOND_NAME);
+ assertTrue(text.endsWith("click to enter your name"),
+ MSG_INITIAL_VALUE_NAME);
+
+ selenium.click(LOC_SECOND_NAME);
+
+ attr = selenium.getAttribute(LOC_SECOND_NAME + "@class");
+ assertTrue(attr.contains("rich-inplace-edit"), MSG_RICH_INPLACE_EDIT);
+
+ selenium.type(LOC_SECOND_NAME_INPUT, "John Smith");
+ // TODO check that the button is visible
+ selenium.fireEvent(LOC_SECOND_NAME_OK, Event.MOUSEDOWN);
+
+ attr = selenium.getAttribute(LOC_SECOND_NAME + "@class");
+ assertTrue(attr.contains("rich-inplace-changed"),
+ MSG_RICH_INPLACE_CHANGED);
+ assertFalse(attr.contains("rich-inplace-edit"),
+ MSG_NOT_RICH_INPLACE_EDIT);
+
+ text = selenium.getText(LOC_SECOND_NAME);
+ assertTrue(text.endsWith("John Smith"), MSG_NAME_JOHN_SMITH);
+ }
+
+ /**
+ * Tests the input for email in the second example. First it checks the attribute
+ * "class" of the input. Then it clicks on text, edits the text and
+ * clicks on the button so that the text is changed permanently. After that, it
+ * checks the attribute "class" and verifies that the text was changed.
+ */
+ @Test
+ public void testSecondEmail() {
+ scrollIntoView(LOC_SECOND_EMAIL, true);
+
+ String attr = selenium.getAttribute(LOC_SECOND_EMAIL + "@class");
+ assertTrue(attr.contains("rich-inplace-view"), MSG_RICH_INPLACE_VIEW);
+ assertFalse(attr.contains("rich-inplace-changed"),
+ MSG_NOT_RICH_INPLACE_CHANGED);
+ assertFalse(attr.contains("rich-inplace-edit"),
+ MSG_NOT_RICH_INPLACE_EDIT);
+
+ String text = selenium.getText(LOC_SECOND_EMAIL);
+ assertTrue(text.endsWith("click to enter your email"),
+ MSG_INITIAL_VALUE_EMAIL);
+
+ selenium.click(LOC_SECOND_EMAIL);
+
+ attr = selenium.getAttribute(LOC_SECOND_EMAIL + "@class");
+ assertTrue(attr.contains("rich-inplace-edit"), MSG_RICH_INPLACE_EDIT);
+
+ selenium.type(LOC_SECOND_EMAIL_INPUT, "john(a)smith.name");
+ // TODO check that the button is visible
+ selenium.fireEvent(LOC_SECOND_EMAIL_OK, Event.MOUSEDOWN);
+
+ attr = selenium.getAttribute(LOC_SECOND_EMAIL + "@class");
+ assertTrue(attr.contains("rich-inplace-changed"),
+ MSG_RICH_INPLACE_CHANGED);
+ assertFalse(attr.contains("rich-inplace-edit"),
+ MSG_NOT_RICH_INPLACE_EDIT);
+
+ text = selenium.getText(LOC_SECOND_EMAIL);
+ assertTrue(text.endsWith("john(a)smith.name"), MSG_EMAIL_JOHN_SMITH);
+ }
+
+ /**
+ * Tests the input in the third example. First it checks the attribute
+ * "class" of the input. Then it clicks on text, edits the text and
+ * clicks on the "Save" button so that the text is changed permanently.
+ * After that, it checks the attribute "class" and verifies that the text was changed.
+ */
+ @Test
+ public void testThird() {
+ scrollIntoView(LOC_THIRD, true);
+
+ String attr = selenium.getAttribute(LOC_THIRD + "@class");
+ assertTrue(attr.contains("rich-inplace-view"), MSG_RICH_INPLACE_VIEW);
+ assertFalse(attr.contains("rich-inplace-changed"),
+ MSG_NOT_RICH_INPLACE_CHANGED);
+ assertFalse(attr.contains("rich-inplace-edit"),
+ MSG_NOT_RICH_INPLACE_EDIT);
+
+ String text = selenium.getText(LOC_THIRD);
+ assertTrue(text.endsWith("Click here to edit"), MSG_INITIAL_VALUE_EMAIL);
+
+ selenium.click(LOC_THIRD);
+
+ attr = selenium.getAttribute(LOC_THIRD + "@class");
+ assertTrue(attr.contains("rich-inplace-edit"), MSG_RICH_INPLACE_EDIT);
+
+ selenium.type(LOC_THIRD_INPUT, "John Smith");
+ // TODO check that the button is visible
+ selenium.fireEvent(LOC_THIRD_SAVE, Event.MOUSEDOWN);
+
+ attr = selenium.getAttribute(LOC_THIRD + "@class");
+ assertTrue(attr.contains("rich-inplace-changed"),
+ MSG_RICH_INPLACE_CHANGED);
+ assertFalse(attr.contains("rich-inplace-edit"),
+ MSG_NOT_RICH_INPLACE_EDIT);
+
+ text = selenium.getText(LOC_THIRD);
+ assertTrue(text.endsWith("John Smith"), MSG_NAME_JOHN_SMITH);
+ }
+
+ /**
+ * Tests the "View Source". It checks that the source code is not visible,
+ * clicks on the link, and checks the first 2 components of source code,
+ * i.e. that the source code begins with "<ui:composition".
+ */
+ @Test
+ public void testFirstInputSource() {
+ abstractTestSource(1, 2, "<", "ui:composition");
+ }
+
+ /**
+ * Tests the "View Source". It checks that the source code is not visible,
+ * clicks on the link, and checks the first 2 components of source code,
+ * i.e. that the source code begins with "<ui:composition".
+ */
+ @Test
+ public void testSecondInputSource() {
+ abstractTestSource(2, 2, "<", "ui:composition");
+ }
+
+ /**
+ * Tests the "View Source". It checks that the source code is not visible,
+ * clicks on the link, and checks the first 2 components of source code,
+ * i.e. that the source code begins with "<ui:composition".
+ */
+ @Test
+ public void testThirdInputSource() {
+ abstractTestSource(3, 1, "<", "ui:composition");
+ }
+
+ /**
+ * Loads the page containing the calendar component.
+ */
+ @BeforeMethod
+ private void loadPage() {
+ super.loadPage("richInputs", 6, MSG_COMPONENT_DESCRIPTION);
+ }
+}
Property changes on: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/inplaceInput/InplaceInputTestCase.java
___________________________________________________________________
Name: svn:executable
+ *
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/inplaceSelect/InplaceSelectTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/inplaceSelect/InplaceSelectTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/inplaceSelect/InplaceSelectTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,226 @@
+package org.jboss.richfaces.integrationTest.inplaceSelect;
+
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertTrue;
+
+import java.awt.event.KeyEvent;
+
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+/**
+ * Test case that tests the inplace select component.
+ * <ul>
+ * <li><b>TODO</b> test cancel buttons
+ * </ul>
+ *
+ * @author <a href="mailto:ppitonak@redhat.com">Pavol Pitonak</a>
+ * @version $Revision$
+ */
+public class InplaceSelectTestCase extends AbstractSeleniumRichfacesTestCase {
+
+ // messages
+ private final String MSG_COMPONENT_DESCRIPTION = getMess("COMPONENT_DESCRIPTION");
+ private final String MSG_CLICK_HERE_TO_EDIT = getMess("CLICK_HERE_TO_EDIT");
+ private final String MSG_DOUBLE_CLICK_TO_EDIT = getMess("DOUBLE_CLICK_TO_EDIT");
+ private final String MSG_READ_ONLY = getMess("READ_ONLY");
+ private final String MSG_DISPLAY_NONE = getMess("DISPLAY_NONE");
+ private final String MSG_OPTION4_SELECTED = getMess("OPTION4_SELECTED");
+ private final String MSG_ARKANSAS_SELECTED = getMess("ARKANSAS_SELECTED");
+ private final String MSG_LITTLE_ROCK = getMess("LITTLE_ROCK");
+ private final String MSG_COUNT_OF_ITEMS = getMess("COUNT_OF_ITEMS");
+
+ // locators
+ private final String LOC_FIRST = getLoc("FIRST");
+ private final String LOC_FIRST_INPUT_1 = getLoc("FIRST_INPUT_1");
+ private final String LOC_FIRST_INPUT_2 = getLoc("FIRST_INPUT_2");
+ private final String LOC_FIRST_SELECT_VIEW = getLoc("FIRST_SELECT_VIEW");
+ private final String LOC_FIRST_LIST_SPAN = getLoc("FIRST_LIST_SPAN");
+ private final String LOC_FIRST_LIST_SPAN_N = getLoc("FIRST_LIST_SPAN_N");
+ private final String LOC_SECOND_OK_BUTTON = getLoc("SECOND_OK_BUTTON");
+
+ private final String LOC_SECOND = getLoc("SECOND");
+ private final String LOC_SECOND_INPUT_1 = getLoc("SECOND_INPUT_1");
+ private final String LOC_SECOND_INPUT_2 = getLoc("SECOND_INPUT_2");
+ private final String LOC_SECOND_LIST_SPAN = getLoc("SECOND_LIST_SPAN");
+ private final String LOC_SECOND_LIST_SPAN_N = getLoc("SECOND_LIST_SPAN_N");
+
+ private final String LOC_THIRD = getLoc("THIRD");
+ private final String LOC_THIRD_INPUT_1 = getLoc("THIRD_INPUT_1");
+ private final String LOC_THIRD_INPUT_2 = getLoc("THIRD_INPUT_2");
+ private final String LOC_THIRD_LIST_SPAN = getLoc("THIRD_LIST_SPAN");
+ private final String LOC_THIRD_LIST_SPAN_N = getLoc("THIRD_LIST_SPAN_N");
+ private final String LOC_THIRD_CAPITAL = getLoc("THIRD_CAPITAL");
+ private final String LOC_THIRD_SAVE_BUTTON = getLoc("THIRD_SAVE_BUTTON");
+
+ /**
+ * Tests the first example. It checks the "readonly" and "style" attribute
+ * of the inplace select. Then it clicks into and out of the component and
+ * verifies that nothing changed. Consequently it checks the number of items
+ * in the component. In the end it selects the fourth item from the inplace
+ * select and checks the text.
+ */
+ @Test
+ public void testFirstInput() {
+ scrollIntoView(LOC_FIRST, true);
+
+ String text = selenium.getText(LOC_FIRST);
+ assertTrue(text.equals("Click here to edit"), MSG_CLICK_HERE_TO_EDIT);
+
+ String attr = selenium.getAttribute(LOC_FIRST_INPUT_1 + "@readonly");
+ assertTrue(attr.equals("readonly"), MSG_READ_ONLY);
+
+ attr = selenium.getAttribute(LOC_FIRST_INPUT_2 + "@style");
+ assertTrue(attr.contains("display: none;"), MSG_DISPLAY_NONE);
+
+ // expand and collapse the inplace select
+ selenium.click(LOC_FIRST_INPUT_1);
+ selenium.click(LOC_FIRST_INPUT_2);
+
+ text = selenium.getText(LOC_FIRST);
+ assertTrue(text.equals("Click here to edit"), MSG_CLICK_HERE_TO_EDIT);
+
+ // expand the component and select "Option 4"
+ selenium.click(LOC_FIRST);
+
+ int count = selenium.getXpathCount(LOC_FIRST_LIST_SPAN).intValue();
+ assertEquals(count, 5, MSG_COUNT_OF_ITEMS);
+
+ selenium.mouseMove(String.format(LOC_FIRST_LIST_SPAN_N, 4));
+
+ // TODO explore whether this isn't too low-level
+ selenium.getEval(format("selenium.browserbot.findElement(\"{0}\").component.save()", LOC_FIRST_SELECT_VIEW));
+
+ // another way to select it
+ // selenium.selectWindow(null); // select the main window
+ // selenium.windowFocus();
+ // selenium.keyPressNative(Integer.toString(KeyEvent.VK_ENTER));
+
+ text = selenium.getText(LOC_FIRST);
+ assertTrue(text.equals("Option 4"), MSG_OPTION4_SELECTED);
+ }
+
+ /**
+ * Tests the second example. It checks the "readonly" and "style" attribute
+ * of the inplace select. Then it clicks into and out of the component and
+ * verifies that nothing changed. Consequently it checks the number of items
+ * in the component. In the end it selects the fourth item from the inplace
+ * select and checks the text.
+ */
+ @Test
+ public void testSecondInput() {
+ scrollIntoView(LOC_SECOND, true);
+
+ String text = selenium.getText(LOC_SECOND);
+ assertTrue(text.equals("Double Click to edit"),
+ MSG_DOUBLE_CLICK_TO_EDIT);
+
+ String attr = selenium.getAttribute(LOC_SECOND_INPUT_1 + "@readonly");
+ assertTrue(attr.equals("readonly"), MSG_READ_ONLY);
+
+ attr = selenium.getAttribute(LOC_SECOND_INPUT_2 + "@style");
+ assertTrue(attr.contains("display: none;"), MSG_DISPLAY_NONE);
+
+ // expand and collapse the inplace select
+ selenium.click(LOC_SECOND_INPUT_1);
+ selenium.click(LOC_SECOND_INPUT_2);
+
+ int count = selenium.getXpathCount(LOC_SECOND_LIST_SPAN).intValue();
+ assertEquals(count, 50, MSG_COUNT_OF_ITEMS);
+
+ text = selenium.getText(LOC_SECOND);
+ assertTrue(text.equals("Double Click to edit"),
+ MSG_DOUBLE_CLICK_TO_EDIT);
+
+ // expand the inplace select and click "Arkansas"
+ selenium.mouseMove(String.format(LOC_SECOND_LIST_SPAN_N, 4));
+ selenium.mouseDown(LOC_SECOND_OK_BUTTON);
+
+ text = selenium.getText(LOC_SECOND);
+ assertTrue(text.equals("Arkansas"), MSG_ARKANSAS_SELECTED);
+ }
+
+ /**
+ * Tests the third example. It checks the "readonly" and "style" attribute
+ * of the inplace select. Then it clicks into and out of the component and
+ * verifies that nothing changed. Consequently it checks the number of items
+ * in the component. In the end it selects the fourth item from the inplace
+ * select and checks the text.
+ */
+ @Test
+ public void testThirdInput() {
+ scrollIntoView(LOC_THIRD, true);
+
+ String text = selenium.getText(LOC_THIRD);
+ assertTrue(text.equals("Click here to edit"), MSG_CLICK_HERE_TO_EDIT);
+
+ String attr = selenium.getAttribute(LOC_THIRD_INPUT_1 + "@readonly");
+ assertTrue(attr.equals("readonly"), MSG_READ_ONLY);
+
+ attr = selenium.getAttribute(LOC_THIRD_INPUT_2 + "@style");
+ assertTrue(attr.contains("display: none;"), MSG_DISPLAY_NONE);
+
+ // expand and collapse the inplace select
+ selenium.click(LOC_THIRD_INPUT_1);
+ selenium.click(LOC_THIRD_INPUT_2);
+
+ int count = selenium.getXpathCount(LOC_THIRD_LIST_SPAN).intValue();
+ assertEquals(count, 50, MSG_COUNT_OF_ITEMS);
+
+ text = selenium.getText(LOC_THIRD);
+ assertTrue(text.endsWith("Click here to edit"), MSG_CLICK_HERE_TO_EDIT);
+
+ // remember for waiting
+ text = selenium.getText(LOC_THIRD_CAPITAL);
+
+ // select "Arkansas"
+ selenium.mouseMove(String.format(LOC_THIRD_LIST_SPAN_N, 4));
+ selenium.mouseDown(LOC_THIRD_SAVE_BUTTON);
+
+ // wait for remembered value change
+ text = waitForTextChangesAndReturn(LOC_THIRD_CAPITAL, text);
+ assertTrue(text.endsWith("Little Rock"), MSG_LITTLE_ROCK);
+
+ text = selenium.getText(LOC_THIRD);
+ assertTrue(text.equals("Arkansas"), MSG_ARKANSAS_SELECTED);
+ }
+
+ /**
+ * Tests the "View Source". It checks that the source code is not visible,
+ * clicks on the link, and checks the first 2 components of source code,
+ * i.e. that the source code begins with "<ui:composition".
+ */
+ @Test
+ public void testFirstInputSource() {
+ abstractTestSource(1, 1, "<", "ui:composition");
+ }
+
+ /**
+ * Tests the "View Source". It checks that the source code is not visible,
+ * clicks on the link, and checks the first 2 components of source code,
+ * i.e. that the source code begins with "<ui:composition".
+ */
+ @Test
+ public void testSecondInputSource() {
+ abstractTestSource(2, 2, "<", "ui:composition");
+ }
+
+ /**
+ * Tests the "View Source". It checks that the source code is not visible,
+ * clicks on the link, and checks the first 2 components of source code,
+ * i.e. that the source code begins with "<ui:composition".
+ */
+ @Test
+ public void testThirdInputSource() {
+ abstractTestSource(3, 1, "<", "ui:composition");
+ }
+
+ /**
+ * Loads the page containing the calendar component.
+ */
+ @BeforeMethod
+ private void loadPage() {
+ super.loadPage("richInputs", 7, 1, MSG_COMPONENT_DESCRIPTION);
+ }
+}
Property changes on: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/inplaceSelect/InplaceSelectTestCase.java
___________________________________________________________________
Name: svn:executable
+ *
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/inputNumberSlider/InputNumberSliderTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/inputNumberSlider/InputNumberSliderTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/inputNumberSlider/InputNumberSliderTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,310 @@
+package org.jboss.richfaces.integrationTest.inputNumberSlider;
+
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertFalse;
+import static org.testng.Assert.assertTrue;
+
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+/**
+ * Test case that tests the input number slider.
+ *
+ * @author <a href="mailto:ppitonak@redhat.com">Pavol Pitonak</a>
+ * @version $Revision$
+ */
+public class InputNumberSliderTestCase extends
+ AbstractSeleniumRichfacesTestCase {
+
+ // messages
+ private final String MSG_COMPONENT_DESCRIPTION = getMess("COMPONENT_DESCRIPTION");
+ private final String MSG_HANDLE_N_PX = getMess("HANDLE_N_PX");
+ private final String MSG_TIP_N_PX = getMess("TIP_N_PX");
+ private final String MSG_TIP_SHOULD_BE_VISIBLE = getMess("TIP_SHOULD_BE_VISIBLE");
+ private final String MSG_TIP_SHOULD_NOT_BE_VISIBLE = getMess("TIP_SHOULD_NOT_BE_VISIBLE");
+ private final String MSG_OFFSETS_SHOULD_BE_THE_SAME = getMess("OFFSETS_SHOULD_BE_THE_SAME");
+ private final String MSG_TIP_FIRST_HALF = getMess("TIP_FIRST_HALF");
+ private final String MSG_TIP_SECOND_HALF = getMess("TIP_SECOND_HALF");
+ private final String MSG_HANDLE_FIRST_HALF = getMess("HANDLE_FIRST_HALF");
+ private final String MSG_HANDLE_SECOND_HALF = getMess("HANDLE_SECOND_HALF");
+ private final String MSG_VALUE_IN_INPUT = getMess("VALUE_IN_INPUT");
+
+ // locators
+ private final String LOC_FIRST = String.format(getLoc("SLIDER_N"), 1);
+ private final String LOC_FIRST_HANDLE = String.format(
+ getLoc("SLIDER_N_HANDLE"), 1);
+ private final String LOC_FIRST_TIP = String.format(getLoc("SLIDER_N_TIP"),
+ 1);
+ private final String LOC_FIRST_INPUT = String.format(
+ getLoc("SLIDER_N_INPUT"), 1);
+
+ private final String LOC_SECOND = String.format(getLoc("SLIDER_N"), 2);
+ private final String LOC_SECOND_HANDLE = String.format(
+ getLoc("SLIDER_N_HANDLE"), 2);
+ private final String LOC_SECOND_TIP = String.format(getLoc("SLIDER_N_TIP"),
+ 2);
+ private final String LOC_SECOND_INPUT = String.format(
+ getLoc("SLIDER_N_INPUT"), 2);
+
+ private final String LOC_THIRD = String.format(getLoc("SLIDER_N"), 3);
+ private final String LOC_THIRD_HANDLE = String.format(
+ getLoc("SLIDER_N_HANDLE"), 3);
+ private final String LOC_THIRD_TIP = String.format(getLoc("SLIDER_N_TIP"),
+ 3);
+ private final String LOC_THIRD_INPUT = String.format(
+ getLoc("SLIDER_N_INPUT"), 3);
+
+ /**
+ * Tests clicking on the first slider. First, it checks the offset of the handler and
+ * tip box and checks that tip is hidden. Then it clics to the first half of the slider
+ * and verifies that the tip is visible while the mouse button is pressed.
+ * In the end it verifies that the handler and tip box moved.
+ */
+ @Test
+ public void testFirstSliderMouse() {
+ scrollIntoView(LOC_FIRST, true);
+
+ // TODO find out why it isn't offset by 75px but 74px
+ assertTrue(Math.abs(getOffset(LOC_FIRST_HANDLE + "@style") - 75) < 2,
+ String.format(MSG_HANDLE_N_PX, 75));
+
+ assertTrue(Math.abs(getOffset(LOC_FIRST_TIP + "@style") - 75) < 2,
+ String.format(MSG_TIP_N_PX, 75));
+
+ String attr = selenium.getAttribute(LOC_FIRST_TIP + "@style");
+ assertFalse(!attr.contains("display: none;"),
+ MSG_TIP_SHOULD_NOT_BE_VISIBLE);
+
+ selenium.mouseDownAt(LOC_FIRST, "20,3");
+
+ attr = selenium.getAttribute(LOC_FIRST_TIP + "@style");
+ assertTrue(!attr.contains("display: none;"), MSG_TIP_SHOULD_BE_VISIBLE);
+
+ selenium.mouseUp(LOC_FIRST);
+
+ int tipOffset = getOffset(LOC_FIRST_TIP + "@style");
+ int handleOffset = getOffset(LOC_FIRST_HANDLE + "@style");
+ int value = Integer.parseInt(selenium.getValue(LOC_FIRST_INPUT));
+
+ assertEquals(tipOffset, handleOffset, MSG_OFFSETS_SHOULD_BE_THE_SAME);
+ assertTrue(Math.abs(tipOffset - value * 1.5) < 5, MSG_TIP_FIRST_HALF);
+ assertTrue(handleOffset < 75, MSG_HANDLE_FIRST_HALF);
+ }
+
+ /**
+ * Tests typing into first slider's input box. First it checks the position of the tip box and
+ * handle. Then it types a number from the first and second half of slider and checks
+ * the position of tip and
+ * handle. Then it clicks min value, max value, negative integer, an integer bigger than
+ * maximum, and decimal number and checks that the value of the input box changes to the
+ * right value.
+ */
+ @Test
+ public void testFirstSliderKeyboard() {
+ scrollIntoView(LOC_FIRST, true);
+
+ selenium.type(LOC_FIRST_INPUT, "10");
+ int tipOffset = getOffset(LOC_FIRST_TIP + "@style");
+ int handleOffset = getOffset(LOC_FIRST_HANDLE + "@style");
+
+ assertEquals(tipOffset, handleOffset, MSG_OFFSETS_SHOULD_BE_THE_SAME);
+ assertTrue(Math.abs(tipOffset - 10 * 1.5) < 5, MSG_TIP_FIRST_HALF);
+ assertTrue(handleOffset < 75, MSG_HANDLE_FIRST_HALF);
+
+ selenium.type(LOC_FIRST_INPUT, "90");
+ tipOffset = getOffset(LOC_FIRST_TIP + "@style");
+ handleOffset = getOffset(LOC_FIRST_HANDLE + "@style");
+
+ assertEquals(tipOffset, handleOffset, MSG_OFFSETS_SHOULD_BE_THE_SAME);
+ assertTrue(Math.abs(tipOffset - 90 * 1.5) < 5, MSG_TIP_SECOND_HALF);
+ assertTrue(handleOffset > 75, MSG_HANDLE_SECOND_HALF);
+
+ selenium.type(LOC_FIRST_INPUT, "0");
+ int value = Integer.parseInt(selenium.getValue(LOC_FIRST_INPUT));
+ assertEquals(value, 0, MSG_VALUE_IN_INPUT);
+
+ selenium.type(LOC_FIRST_INPUT, "100");
+ value = Integer.parseInt(selenium.getValue(LOC_FIRST_INPUT));
+ assertEquals(value, 100, MSG_VALUE_IN_INPUT);
+
+ selenium.type(LOC_FIRST_INPUT, "-10");
+ value = Integer.parseInt(selenium.getValue(LOC_FIRST_INPUT));
+ assertEquals(value, 0, MSG_VALUE_IN_INPUT);
+
+ selenium.type(LOC_FIRST_INPUT, "130");
+ value = Integer.parseInt(selenium.getValue(LOC_FIRST_INPUT));
+ assertEquals(value, 100, MSG_VALUE_IN_INPUT);
+
+ selenium.type(LOC_FIRST_INPUT, "1.30");
+ value = Integer.parseInt(selenium.getValue(LOC_FIRST_INPUT));
+ assertEquals(value, 1, MSG_VALUE_IN_INPUT);
+ }
+
+ /**
+ * Tests clicking on the second slider. First, it checks the offset of the handler and
+ * tip box and checks that tip is hidden. Then it clics to the first half of the slider
+ * and verifies that the tip is invisible while the mouse button is pressed.
+ * In the end it verifies that the handler and tip box moved.
+ */
+ @Test
+ public void testSecondSlider() {
+ scrollIntoView(LOC_SECOND, true);
+
+ // TODO find out why it isn't offset by 96px
+ assertTrue(Math.abs(getOffset(LOC_SECOND_HANDLE + "@style") - 96) < 2,
+ String.format(MSG_HANDLE_N_PX, 96));
+
+ assertTrue(Math.abs(getOffset(LOC_SECOND_TIP + "@style") - 96) < 2,
+ String.format(MSG_TIP_N_PX, 96));
+
+ String attr = selenium.getAttribute(LOC_SECOND_TIP + "@style");
+ assertFalse(!attr.contains("display: none;"),
+ MSG_TIP_SHOULD_NOT_BE_VISIBLE);
+
+ selenium.mouseDownAt(LOC_SECOND, "20,3");
+
+ attr = selenium.getAttribute(LOC_SECOND_TIP + "@style");
+ // it is a slider without tip so it cannot be visible
+ assertFalse(!attr.contains("display: none;"),
+ MSG_TIP_SHOULD_NOT_BE_VISIBLE);
+
+ selenium.mouseUp(LOC_SECOND);
+
+ int tipOffset = getOffset(LOC_SECOND_TIP + "@style");
+ int handleOffset = getOffset(LOC_SECOND_HANDLE + "@style");
+ int value = Integer.parseInt(selenium.getValue(LOC_SECOND_INPUT));
+
+ assertEquals(tipOffset, handleOffset, MSG_OFFSETS_SHOULD_BE_THE_SAME);
+ assertTrue(Math.abs(tipOffset - value * 1.5) < 5, MSG_TIP_FIRST_HALF);
+ assertTrue(handleOffset < 75, MSG_HANDLE_FIRST_HALF);
+ }
+
+ /**
+ * Tests clicking on the third slider. First, it checks the offset of the handler and
+ * tip box and checks that tip is hidden. Then it clics to the first half of the slider
+ * and verifies that the tip is invisible while the mouse button is pressed.
+ * In the end it verifies that the handler and tip box moved.
+ */
+ @Test
+ public void testThirdSliderMouse() {
+ scrollIntoView(LOC_THIRD, true);
+
+ // TODO find out why it isn't offset by 75px but 74px
+ assertTrue(Math.abs(getOffset(LOC_THIRD_HANDLE + "@style") - 225) < 2,
+ String.format(MSG_HANDLE_N_PX, 225));
+
+ assertTrue(Math.abs(getOffset(LOC_THIRD_TIP + "@style") - 225) < 2,
+ String.format(MSG_TIP_N_PX, 225));
+
+ String attr = selenium.getAttribute(LOC_THIRD_TIP + "@style");
+ assertFalse(!attr.contains("display: none;"),
+ MSG_TIP_SHOULD_NOT_BE_VISIBLE);
+
+ selenium.mouseDownAt(LOC_THIRD, "20,3");
+
+ attr = selenium.getAttribute(LOC_THIRD_TIP + "@style");
+ // slider does not use the tip so it has to be invisible
+ assertFalse(!attr.contains("display: none;"),
+ MSG_TIP_SHOULD_NOT_BE_VISIBLE);
+
+ selenium.mouseUp(LOC_THIRD);
+
+ int tipOffset = getOffset(LOC_THIRD_TIP + "@style");
+ int handleOffset = getOffset(LOC_THIRD_HANDLE + "@style");
+ int value = Integer.parseInt(selenium.getValue(LOC_THIRD_INPUT));
+
+ assertEquals(tipOffset, handleOffset, MSG_OFFSETS_SHOULD_BE_THE_SAME);
+ assertTrue(Math.abs(tipOffset - value * 0.46) < 12, MSG_TIP_FIRST_HALF);
+ assertTrue(handleOffset < 75, MSG_HANDLE_FIRST_HALF);
+ }
+
+ /**
+ * Tests typing into third slider's input box. First it checks the position of the tip box and
+ * handle. Then it types a number from the first and second half of the slider
+ * and checks the position of tip and
+ * handle. Then it clicks min value, max value, negative integer, an integer bigger than
+ * maximum, and decimal number and checks that the value of the input box changes to the
+ * right value. In the end it tries a number that should be rounded up and a number
+ * that should be rounded down.
+ */
+ @Test
+ public void testThirdSliderKeyboard() {
+ scrollIntoView(LOC_THIRD, true);
+
+ selenium.type(LOC_THIRD_INPUT, "10"); // 10 -> 0
+ int tipOffset = getOffset(LOC_THIRD_TIP + "@style");
+ int handleOffset = getOffset(LOC_THIRD_HANDLE + "@style");
+
+ assertEquals(tipOffset, handleOffset, MSG_OFFSETS_SHOULD_BE_THE_SAME);
+ assertTrue(tipOffset < 5, MSG_TIP_FIRST_HALF);
+ assertTrue(handleOffset < 75, MSG_HANDLE_FIRST_HALF);
+
+ selenium.type(LOC_THIRD_INPUT, "690"); // 690 -> 700
+ tipOffset = getOffset(LOC_THIRD_TIP + "@style");
+ handleOffset = getOffset(LOC_THIRD_HANDLE + "@style");
+
+ assertEquals(tipOffset, handleOffset, MSG_OFFSETS_SHOULD_BE_THE_SAME);
+ assertTrue(Math.abs(tipOffset - 0.69 * 450) < 5, MSG_TIP_SECOND_HALF);
+ assertTrue(handleOffset > 75, MSG_HANDLE_SECOND_HALF);
+
+ selenium.type(LOC_THIRD_INPUT, "0");
+ int value = Integer.parseInt(selenium.getValue(LOC_THIRD_INPUT));
+ assertEquals(value, 0, MSG_VALUE_IN_INPUT);
+
+ selenium.type(LOC_THIRD_INPUT, "1000");
+ value = Integer.parseInt(selenium.getValue(LOC_THIRD_INPUT));
+ assertEquals(value, 1000, MSG_VALUE_IN_INPUT);
+
+ selenium.type(LOC_THIRD_INPUT, "-10"); // -10 -> 0
+ value = Integer.parseInt(selenium.getValue(LOC_THIRD_INPUT));
+ assertEquals(value, 0, MSG_VALUE_IN_INPUT);
+
+ selenium.type(LOC_THIRD_INPUT, "1200"); // 1200 -> 1000
+ value = Integer.parseInt(selenium.getValue(LOC_THIRD_INPUT));
+ assertEquals(value, 1000, MSG_VALUE_IN_INPUT);
+
+ selenium.type(LOC_THIRD_INPUT, "1.30"); // 1.30 -> 0
+ value = Integer.parseInt(selenium.getValue(LOC_THIRD_INPUT));
+ assertEquals(value, 0, MSG_VALUE_IN_INPUT);
+
+ selenium.type(LOC_THIRD_INPUT, "524"); // 524 -> 500
+ value = Integer.parseInt(selenium.getValue(LOC_THIRD_INPUT));
+ assertEquals(value, 500, MSG_VALUE_IN_INPUT);
+
+ selenium.type(LOC_THIRD_INPUT, "525"); // 525 -> 500
+ value = Integer.parseInt(selenium.getValue(LOC_THIRD_INPUT));
+ assertEquals(value, 550, MSG_VALUE_IN_INPUT);
+ }
+
+ /**
+ * Tests the "View Source". It checks that the source code is not visible,
+ * clicks on the link, and checks the first 2 components of source code,
+ * i.e. that the source code begins with "<ui:composition".
+ */
+ @Test
+ public void testSliderSource() {
+ abstractTestSource(1, 1, "<", "ui:composition");
+ }
+
+ /**
+ * Returns the offset of the element. It requires a locator for an
+ * attribute, e.g. //div@style. It returns the 'left' attribute, e.g. for
+ * style="visibility: visible; left: 51px;" would return 51.
+ */
+ private int getOffset(String locator) {
+ StringBuilder attr = new StringBuilder(selenium.getAttribute(locator));
+ attr = attr.delete(0, attr.indexOf("left: "));
+ attr = attr.delete(0, 6);
+ attr = attr.delete(attr.indexOf("px;"), attr.length());
+ return Integer.parseInt(attr.toString());
+ }
+
+ /**
+ * Loads the page containing the calendar component.
+ */
+ @BeforeMethod
+ private void loadPage() {
+ super.loadPage("richInputs", 8, MSG_COMPONENT_DESCRIPTION);
+ }
+}
Property changes on: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/inputNumberSlider/InputNumberSliderTestCase.java
___________________________________________________________________
Name: svn:executable
+ *
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/jsFunction/JSFunctionTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/jsFunction/JSFunctionTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/jsFunction/JSFunctionTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,52 @@
+package org.jboss.richfaces.integrationTest.jsFunction;
+
+import org.apache.commons.lang.StringUtils;
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.jboss.test.selenium.dom.Event;
+import org.jboss.test.selenium.waiting.Condition;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+/**
+ * @author <a href="mailto:lfryc@redhat.com">Lukas Fryc</a>
+ * @version $Revision$
+ */
+public class JSFunctionTestCase extends AbstractSeleniumRichfacesTestCase {
+ /**
+ * Opens specified page
+ */
+ private void openPage() {
+ selenium.open(contextPath
+ + "/richfaces/jsFunction.jsf?c=jsFunction&tab=usage");
+ }
+
+ @Test
+ public void hoveringNames() {
+ openPage();
+
+ final String showName = getLoc("js-function--show-name");
+ String[] names = new String[] {getMess("js-function--name1"), getMess("js-function--name2"), getMess("js-function--name3")};
+
+ for (final String name : names) {
+ String span = formatLoc("js-function--active-span", name);
+
+ Assert.assertTrue(StringUtils.isBlank(selenium.getText(showName)));
+
+ selenium.fireEvent(span, Event.MOUSEOVER);
+
+ waitModelUpdate.until(new Condition() {
+ public boolean isTrue() {
+ return name.equals(selenium.getText(showName));
+ }
+ });
+
+ selenium.fireEvent(span, Event.MOUSEOUT);
+
+ waitModelUpdate.until(new Condition() {
+ public boolean isTrue() {
+ return StringUtils.isBlank(selenium.getText(showName));
+ }
+ });
+ }
+ }
+}
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/keepAlive/KeepAliveTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/keepAlive/KeepAliveTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/keepAlive/KeepAliveTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,103 @@
+package org.jboss.richfaces.integrationTest.keepAlive;
+
+import junit.framework.Assert;
+
+import org.apache.commons.lang.StringUtils;
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.jboss.test.selenium.dom.Event;
+import org.jboss.test.selenium.waiting.Condition;
+import org.jboss.test.selenium.waiting.Wait;
+import org.testng.annotations.Test;
+
+/**
+ * @author <a href="mailto:lfryc@redhat.com">Lukas Fryc</a>
+ * @version $Revision$
+ */
+public class KeepAliveTestCase extends AbstractSeleniumRichfacesTestCase {
+ /**
+ * Opens specified page
+ */
+ private void openPage() {
+ selenium.open(contextPath
+ + "/richfaces/keepAlive.jsf?c=keepAlive&tab=usage");
+ }
+
+ private String header = getLoc("keep-alive--header");
+ private String inputIncorrect1 = getLoc("keep-alive--input--incorrect1");
+ private String inputIncorrect2 = getLoc("keep-alive--input--incorrect2");
+ private String buttonIncorrect = getLoc("keep-alive--button--incorrect");
+ private String outputIncorrect = getLoc("keep-alive--output--incorrect");
+ private String inputCorrect1 = getLoc("keep-alive--input--correct1");
+ private String inputCorrect2 = getLoc("keep-alive--input--correct2");
+ private String buttonCorrect = getLoc("keep-alive--button--correct");
+ private String outputCorrect = getLoc("keep-alive--output--correct");
+ private String firstNumber = getMess("keep-alive--input--first-number");
+ private String secondNumber = getMess("keep-alive--input--second-number");
+ private String expectedResultNumber = getMess("keep-alive--output--expected-result-number");
+
+ @Test
+ public void usingIncorrectWay() {
+ openPage();
+ scrollIntoView(header, true);
+
+ // fill first two summands
+ selenium.type(inputIncorrect1, firstNumber);
+ selenium.fireEvent(inputIncorrect1, Event.KEYUP);
+ selenium.type(inputIncorrect2, secondNumber);
+ selenium.fireEvent(inputIncorrect2, Event.KEYUP);
+
+ // wait for "equal sign" button became enabled (lost disabled status)
+ Wait.until(new Condition() {
+ public boolean isTrue() {
+ boolean result = selenium.isElementPresent(format(
+ "{0}/@disabled", buttonIncorrect));
+ return !result;
+
+ }
+ });
+
+ // try to count result
+ selenium.click(buttonIncorrect);
+
+ // TODO: try to find exact way to catch "progress done" event
+ // waiting for summarization is processed
+ waitFor(5000);
+
+ // get a result and validate it
+ String result = selenium.getText(outputIncorrect);
+ Assert.assertTrue(StringUtils.isBlank(result));
+ }
+
+ @Test
+ public void usingCorrectWay() {
+ openPage();
+ scrollIntoView(header, true);
+
+ // fill first two summands
+ selenium.type(inputCorrect1, firstNumber);
+ selenium.fireEvent(inputCorrect1, Event.KEYUP);
+ selenium.type(inputCorrect2, secondNumber);
+ selenium.fireEvent(inputCorrect2, Event.KEYUP);
+
+ // wait for "equal sign" button became enabled (lost disabled status)
+ Wait.until(new Condition() {
+ public boolean isTrue() {
+ boolean result = selenium.isElementPresent(format(
+ "{0}/@disabled", buttonCorrect));
+ return !result;
+
+ }
+ });
+
+ // try to count result
+ selenium.click(buttonCorrect);
+
+ // waiting for result became right - If this not happen, waiting timeouts and test fail
+ Wait.until(new Condition() {
+ public boolean isTrue() {
+ String result = selenium.getText(outputCorrect);
+ return expectedResultNumber.equals(result);
+ }
+ });
+ }
+}
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/listShuttle/ListShuttleTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/listShuttle/ListShuttleTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/listShuttle/ListShuttleTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,361 @@
+/**
+ * License Agreement.
+ *
+ * JBoss RichFaces
+ *
+ * Copyright (C) 2009 Red Hat, Inc.
+ *
+ * This code is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this code; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package org.jboss.richfaces.integrationTest.listShuttle;
+
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertFalse;
+
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+/**
+ *
+ * @author <a href="mailto:ppitonak@redhat.com">Pavol Pitonak</a>
+ * @version $Revision$
+ */
+public class ListShuttleTestCase extends AbstractSeleniumRichfacesTestCase {
+
+ private final String toolbar = "//fieldset[1]/div/form/table[1]/tbody/tr[1]";
+ private final String leftTable = "//fieldset[1]/div/form/table[2]/tbody/tr[2]/td[1]/div/table/tbody/tr/td/div/div/table/tbody";
+ private final String leftButtons = "//fieldset[1]/div/form/table[2]/tbody/tr[2]/td[2]/div";
+ private final String rightTable = "//fieldset[1]/div/form/table[2]/tbody/tr[2]/td[3]/div/table/tbody/tr/td/div/div/table/tbody";
+ private final String rightButtons = "//fieldset[1]/div/form/table[2]/tbody/tr[2]/td[4]/div";
+
+ @Test
+ public void testCopyButton() {
+ // get the count of items in left table
+ int leftCount = selenium.getXpathCount(leftTable + "/tr").intValue();
+ // get the count of items in right table
+ int rightCount = selenium.getXpathCount(rightTable + "/tr").intValue();
+
+ // click the first item in left table
+ selenium.click(leftTable + "/tr[1]");
+
+ // check that the copy button is enabled
+ try {
+ String text = selenium.getAttribute(leftButtons + "/div[3]@style");
+ assertFalse(text.contains("display: none;"), "Copy button should not have style 'display: none;'");
+ } catch (Exception e) {
+ // OK
+ }
+
+ // click 'Copy' button
+ selenium.click(leftButtons + "/div[3]");
+
+ int tmpInt = selenium.getXpathCount(leftTable + "/tr").intValue();
+ assertEquals(tmpInt, leftCount - 1, "In left table, one item should be removed.");
+
+ tmpInt = selenium.getXpathCount(rightTable + "/tr").intValue();
+ assertEquals(tmpInt, rightCount + 1, "In right table, one item should be added.");
+
+ // check that it was added also to the toolbar
+ tmpInt = selenium.getXpathCount(toolbar + "/td[contains(@class,'rich-toolbar-item')]").intValue();
+ assertEquals(tmpInt, rightCount + 1, "Number of items in toolbar.");
+ }
+
+ // @Test
+ // public void testCopyWithShift() {
+ // fail("TODO");
+ // }
+
+ // @Test
+ // public void testCopyWithCtrl() {
+ // fail("TODO");
+ // }
+
+ @Test
+ public void testCopyAllButton() {
+ // click 'Remove All' button
+ selenium.click(leftButtons + "/div[7]");
+
+ // get the count of items in left table
+ int leftCount = selenium.getXpathCount(leftTable + "/tr").intValue();
+ // get the count of items in right table
+ int rightCount = selenium.getXpathCount(rightTable + "/tr").intValue();
+
+ // check that the 'Copy All' button is enabled
+ try {
+ String text = selenium.getAttribute(leftButtons + "/div[1]@style");
+ assertFalse(text.contains("display: none;"), "Copy all button should not have style 'display: none;'");
+ } catch (Exception e) {
+ // OK
+ }
+
+ // click 'Copy All' button
+ selenium.click(leftButtons + "/div[1]");
+
+ int count = selenium.getXpathCount(leftTable + "/tr").intValue();
+ assertEquals(count, 0, "All items from left table should be removed.");
+
+ count = selenium.getXpathCount(rightTable + "/tr").intValue();
+ assertEquals(count, rightCount + leftCount, "All items should be added to the right table.");
+
+ // check that they were added also to the toolbar
+ count = selenium.getXpathCount(toolbar + "/td[contains(@class,'rich-toolbar-item')]").intValue();
+ assertEquals(count, rightCount + leftCount, "Number of items in toolbar.");
+ }
+
+ @Test
+ public void testRemoveButton() {
+ // get the count of items in left table
+ int leftCount = selenium.getXpathCount(leftTable + "/tr").intValue();
+ // get the count of items in right table
+ int rightCount = selenium.getXpathCount(rightTable + "/tr").intValue();
+
+ // click the first item in the right table
+ selenium.click(rightTable + "/tr[1]");
+
+ // check that the 'Remove' button is enabled
+ try {
+ String text = selenium.getAttribute(leftButtons + "/div[5]@style");
+ assertFalse(text.contains("display: none;"), "Remove button should not have style 'display: none;'");
+ } catch (Exception e) {
+ // OK
+ }
+
+ // click 'Remove' button
+ selenium.click(leftButtons + "/div[5]");
+
+ int tmpInt = selenium.getXpathCount(leftTable + "/tr").intValue();
+ assertEquals(tmpInt, leftCount + 1, "One item should be added to the left table.");
+
+ tmpInt = selenium.getXpathCount(rightTable + "/tr").intValue();
+ assertEquals(tmpInt, rightCount - 1, "One item should be removed from the right table.");
+
+ // check that one item was removed from toolbar
+ tmpInt = selenium.getXpathCount(toolbar + "/td[contains(@class,'rich-toolbar-item')]").intValue();
+ assertEquals(tmpInt, rightCount - 1, "Number of items in toolbar.");
+ }
+
+ // @Test
+ // public void testRemoveWithShift() {
+ // fail("TODO");
+ // }
+
+ // @Test
+ // public void testRemoveWithCtrl() {
+ // fail("TODO");
+ // }
+
+ @Test
+ public void testRemoveAllButton() {
+ // get the count of items in left table
+ int leftCount = selenium.getXpathCount(leftTable + "/tr").intValue();
+ // get the count of items in right table
+ int rightCount = selenium.getXpathCount(rightTable + "/tr").intValue();
+
+ // check that the 'Remove All' button is enabled
+ try {
+ String text = selenium.getAttribute(leftButtons + "/div[7]@style");
+ assertFalse(text.contains("display: none;"), "Remove all button should not have style 'display: none;'");
+ } catch (Exception e) {
+ // OK
+ }
+
+ // click 'Remove All' button
+ selenium.click(leftButtons + "/div[7]");
+
+ int tmpInt = selenium.getXpathCount(leftTable + "/tr").intValue();
+ assertEquals(tmpInt, leftCount + rightCount, "All items should be added to the left table.");
+
+ tmpInt = selenium.getXpathCount(rightTable + "/tr").intValue();
+ assertEquals(tmpInt, 0, "All items from right table should be removed.");
+
+ // check that everything was removed from toolbar
+ tmpInt = selenium.getXpathCount(toolbar + "/td[contains(@class,'rich-toolbar-item')]").intValue();
+ assertEquals(tmpInt, 0, "Number of items in toolbar.");
+ }
+
+ @Test
+ public void testUpButton() {
+ // click 'Copy All' button
+ selenium.click(leftButtons + "/div[1]");
+
+ String firstItemFromTable = selenium.getText(rightTable + "/tr[1]/td[2]");
+ String firstItemFromToolbar = selenium.getText(toolbar + "/td[1]");
+ String secondItemFromTable = selenium.getText(rightTable + "/tr[2]/td[2]");
+ String secondItemFromToolbar = selenium.getText(toolbar + "/td[3]");
+
+ assertEquals(secondItemFromToolbar, secondItemFromTable,
+ "The second item in right table and toolbar should be the same.");
+
+ // click the second item in the right table
+ selenium.click(rightTable + "/tr[2]");
+ // click the 'Up' button
+ selenium.click(rightButtons + "/div[3]");
+
+ // check items in the table
+ String tmpString = selenium.getText(rightTable + "/tr[1]/td[2]");
+ assertEquals(tmpString, secondItemFromTable, "The first and the second item in the table should be swapped.");
+ tmpString = selenium.getText(rightTable + "/tr[2]/td[2]");
+ assertEquals(tmpString, firstItemFromTable, "The first and the second item in the table should be swapped.");
+
+ // check items in the toolbar
+ tmpString = selenium.getText(toolbar + "/td[1]");
+ assertEquals(tmpString, secondItemFromToolbar,
+ "The first and the second item in the toolbar should be swapped.");
+ tmpString = selenium.getText(toolbar + "/td[3]");
+ assertEquals(tmpString, firstItemFromToolbar, "The first and the second item in the toolbar should be swapped.");
+ }
+
+ // @Test
+ // public void testUpWithShift() {
+ // fail("TODO");
+ // }
+
+ // @Test
+ // public void testUpWithCtrl() {
+ // fail("TODO");
+ // }
+
+ @Test
+ public void testFirstButton() {
+ // click 'Copy All' button
+ selenium.click(leftButtons + "/div[1]");
+
+ String firstItemFromTable = selenium.getText(rightTable + "/tr[1]/td[2]");
+ String firstItemFromToolbar = selenium.getText(toolbar + "/td[1]");
+ String secondItemFromTable = selenium.getText(rightTable + "/tr[2]/td[2]");
+ String secondItemFromToolbar = selenium.getText(toolbar + "/td[3]");
+ String thirdItemFromTable = selenium.getText(rightTable + "/tr[3]/td[2]");
+ String thirdItemFromToolbar = selenium.getText(toolbar + "/td[5]");
+
+ assertEquals(secondItemFromToolbar, secondItemFromTable,
+ "The second item in right table and toolbar should be the same.");
+
+ // click the third item in the right table
+ selenium.click(rightTable + "/tr[3]");
+ // click the 'First' button
+ selenium.click(rightButtons + "/div[1]");
+
+ // check items in the table
+ String tmpString = selenium.getText(rightTable + "/tr[2]/td[2]");
+ assertEquals(tmpString, firstItemFromTable, "The first item from the table should be now the second.");
+ tmpString = selenium.getText(rightTable + "/tr[3]/td[2]");
+ assertEquals(tmpString, secondItemFromTable, "The second item from the table should be now the third.");
+ tmpString = selenium.getText(rightTable + "/tr[1]/td[2]");
+ assertEquals(tmpString, thirdItemFromTable, "The third item from the table should be now the first.");
+
+ // check items in the toolbar
+ tmpString = selenium.getText(toolbar + "/td[3]");
+ assertEquals(tmpString, firstItemFromToolbar, "The first item from the toolbar should be now the second.");
+ tmpString = selenium.getText(toolbar + "/td[5]");
+ assertEquals(tmpString, secondItemFromToolbar, "The second item from the toolbar should be now the third.");
+ tmpString = selenium.getText(toolbar + "/td[1]");
+ assertEquals(tmpString, thirdItemFromToolbar, "The third item from the toolbar should be now the first.");
+ }
+
+ @Test
+ public void testDownButton() {
+ // click 'Copy All' button
+ selenium.click(leftButtons + "/div[1]");
+
+ String firstItemFromTable = selenium.getText(rightTable + "/tr[1]/td[2]");
+ String firstItemFromToolbar = selenium.getText(toolbar + "/td[1]");
+ String secondItemFromTable = selenium.getText(rightTable + "/tr[2]/td[2]");
+ String secondItemFromToolbar = selenium.getText(toolbar + "/td[3]");
+
+ assertEquals(secondItemFromToolbar, secondItemFromTable,
+ "The second item in right table and toolbar should be the same.");
+
+ // click the first item in the right table
+ selenium.click(rightTable + "/tr[1]");
+ // click the 'Down' button
+ selenium.click(rightButtons + "/div[5]");
+
+ // check items in the table
+ String tmpString = selenium.getText(rightTable + "/tr[1]/td[2]");
+ assertEquals(tmpString, secondItemFromTable, "The first and the second item in the table should be swapped.");
+ tmpString = selenium.getText(rightTable + "/tr[2]/td[2]");
+ assertEquals(tmpString, firstItemFromTable, "The first and the second item in the table should be swapped.");
+
+ // check items in the toolbar
+ tmpString = selenium.getText(toolbar + "/td[1]");
+ assertEquals(tmpString, secondItemFromToolbar,
+ "The first and the second item in the toolbar should be swapped.");
+ tmpString = selenium.getText(toolbar + "/td[3]");
+ assertEquals(tmpString, firstItemFromToolbar, "The first and the second item in the toolbar should be swapped.");
+ }
+
+ // @Test
+ // public void testDownWithShift() {
+ // fail("TODO");
+ // }
+
+ // @Test
+ // public void testDownWithCtrl() {
+ // fail("TODO");
+ // }
+
+ @Test
+ public void testLastButton() {
+ // click 'Copy All' button
+ selenium.click(leftButtons + "/div[1]");
+
+ String firstItemFromTable = selenium.getText(rightTable + "/tr[1]/td[2]");
+ String firstItemFromToolbar = selenium.getText(toolbar + "/td[1]");
+ String secondItemFromTable = selenium.getText(rightTable + "/tr[2]/td[2]");
+ String secondItemFromToolbar = selenium.getText(toolbar + "/td[3]");
+ String thirdItemFromTable = selenium.getText(rightTable + "/tr[3]/td[2]");
+ String thirdItemFromToolbar = selenium.getText(toolbar + "/td[5]");
+
+ assertEquals(secondItemFromToolbar, secondItemFromTable,
+ "The second item in right table and toolbar should be the same.");
+
+ // click the first item in the right table
+ selenium.click(rightTable + "/tr[1]");
+ // click the 'Last' button
+ selenium.click(rightButtons + "/div[7]");
+
+ // check items in the table
+ String tmpString = selenium.getText(rightTable + "/tr[7]/td[2]");
+ assertEquals(tmpString, firstItemFromTable, "The first item from the table should be now last.");
+ tmpString = selenium.getText(rightTable + "/tr[1]/td[2]");
+ assertEquals(tmpString, secondItemFromTable, "The second item from the table should be now the first.");
+ tmpString = selenium.getText(rightTable + "/tr[2]/td[2]");
+ assertEquals(tmpString, thirdItemFromTable, "The third item from the table should be now the second.");
+
+ // check items in the toolbar
+ tmpString = selenium.getText(toolbar + "/td[13]");
+ assertEquals(tmpString, firstItemFromToolbar, "The first item from the toolbar should be now last.");
+ tmpString = selenium.getText(toolbar + "/td[1]");
+ assertEquals(tmpString, secondItemFromToolbar, "The second item from the toolbar should be now the first.");
+ tmpString = selenium.getText(toolbar + "/td[3]");
+ assertEquals(tmpString, thirdItemFromToolbar, "The third item from the toolbar should be now the second.");
+ }
+
+ @Test
+ public void testListShuttleSource() {
+ abstractTestSource(1, 1, "<", "ui:composition");
+ }
+
+ /**
+ * Loads the needed page.
+ */
+ @BeforeMethod
+ private void loadPage() {
+ super.loadPage("richSelect", 1, "listShuttle component allows to select items using two lists");
+ openComponent("List Shuttle");
+ scrollIntoView("//fieldset[1]/legend", true);
+ }
+}
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/log/LogTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/log/LogTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/log/LogTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,104 @@
+package org.jboss.richfaces.integrationTest.log;
+
+import junit.framework.Assert;
+
+import org.apache.commons.lang.StringUtils;
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.jboss.test.selenium.dom.Event;
+import org.jboss.test.selenium.waiting.Condition;
+import org.jboss.test.selenium.waiting.Wait;
+import org.testng.annotations.Test;
+
+/**
+ * @author <a href="mailto:lfryc@redhat.com">Lukas Fryc</a>
+ * @version $Revision$
+ */
+public class LogTestCase extends AbstractSeleniumRichfacesTestCase {
+ /**
+ * Opens specified page
+ */
+ private void openPage() {
+ selenium.open(contextPath + "/richfaces/log.jsf?c=log&tab=usage");
+ scrollIntoView(header, true);
+ }
+
+ private String header = getLoc("log--header");
+ private String inputText = getLoc("log--input--text");
+ private String buttonClear = getLoc("log--button--clear");
+ private String outputText = getLoc("log--output--text");
+ private String outputDivs = getLoc("log--output--divs");
+ private String messageSample = getMess("log--input--sample");
+ private String messageDebug = getMess("log--output--debug");
+ private String messageClear = getMess("log--output--clear");
+
+ @Test
+ public void testFillLog() {
+ openPage();
+
+ fillLog();
+ }
+
+ @Test
+ public void testClearLog() {
+ openPage();
+
+ fillLog();
+ waitForLogStabilize();
+ clearLog();
+ }
+
+ @Test
+ public void testRepeatingFillAndClear() {
+ openPage();
+
+ fillLog();
+ waitForLogStabilize();
+ clearLog();
+ waitForLogStabilize();
+ fillLog();
+ waitForLogStabilize();
+ clearLog();
+ }
+
+ public void waitForLogStabilize() {
+ Wait.interval(3000).timeout(9000).until(new Condition() {
+ long count = -1;
+
+ public boolean isTrue() {
+ long actual = selenium.getXpathCount(outputDivs).longValue();
+ if (actual == count) {
+ return true;
+ }
+ count = actual;
+ return false;
+ }
+ });
+ }
+
+ public void fillLog() {
+ final long startCount = selenium.getXpathCount(outputDivs).longValue();
+
+ selenium.type(inputText, messageSample);
+ selenium.fireEvent(inputText, Event.KEYUP);
+
+ Wait.until(new Condition() {
+ public boolean isTrue() {
+ return selenium.getXpathCount(outputDivs).longValue() > startCount;
+ }
+ });
+
+ String output = selenium.getText(outputText);
+ Assert.assertTrue(output.contains(messageDebug));
+ }
+
+ public void clearLog() {
+ selenium.click(buttonClear);
+
+ Wait.until(new Condition() {
+ public boolean isTrue() {
+ String output = selenium.getText(outputText);
+ return messageClear.equals(StringUtils.trim(output));
+ }
+ });
+ }
+}
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/mediaOutput/MediaOutputTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/mediaOutput/MediaOutputTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/mediaOutput/MediaOutputTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,63 @@
+package org.jboss.richfaces.integrationTest.mediaOutput;
+
+import java.io.IOException;
+import java.security.NoSuchAlgorithmException;
+
+import junit.framework.Assert;
+
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.jboss.test.selenium.utils.URLUtils;
+import org.jboss.test.selenium.waiting.Wait;
+import org.testng.annotations.Test;
+
+/**
+ * @author <a href="mailto:lfryc@redhat.com">Lukas Fryc</a>
+ * @version $Revision$
+ */
+public class MediaOutputTestCase extends AbstractSeleniumRichfacesTestCase {
+ /**
+ * Opens specified page
+ */
+ public void openPage() {
+ selenium.open(format("{0}/{1}", contextPath, PAGE));
+ scrollIntoView(header, true);
+ }
+
+ private final String PAGE = "richfaces/mediaOutput.jsf?c=mediaOutput&tab=usage";
+
+ private String header = getLoc("media-output--header");
+
+ @Test
+ public void imageMd5DigestTest() throws IOException,
+ NoSuchAlgorithmException {
+ openPage();
+
+ waitForElement(getLoc("media-output--attribute--image-src"), Wait.DEFAULT_TIMEOUT);
+
+ String imageSrc = selenium
+ .getAttribute(getLoc("media-output--attribute--image-src"));
+
+ String url = URLUtils
+ .buildUrl(contextRoot, contextPath, PAGE, imageSrc);
+
+ Assert.assertEquals(getMess("media-output--md5-digest--image"),
+ URLUtils.resourceMd5Digest(url));
+ }
+
+ @Test
+ public void flashMd5DigestTest() throws IOException,
+ NoSuchAlgorithmException {
+ openPage();
+
+ waitForElement(getLoc("media-output--attribute--flash-object-data"), Wait.DEFAULT_TIMEOUT);
+
+ String flashData = selenium
+ .getAttribute(getLoc("media-output--attribute--flash-object-data"));
+
+ String url = URLUtils.buildUrl(contextRoot, contextPath, PAGE,
+ flashData);
+
+ Assert.assertEquals(getMess("media-output--md5-digest--flash"),
+ URLUtils.resourceMd5Digest(url));
+ }
+}
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/modalPanel/ModalPanelTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/modalPanel/ModalPanelTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/modalPanel/ModalPanelTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,266 @@
+/**
+ * License Agreement.
+ *
+ * JBoss RichFaces
+ *
+ * Copyright (C) 2009 Red Hat, Inc.
+ *
+ * This code is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this code; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package org.jboss.richfaces.integrationTest.modalPanel;
+
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertFalse;
+import static org.testng.Assert.assertTrue;
+
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+/**
+ * Test case that tests modal panels.
+ *
+ * @author <a href="mailto:ppitonak@redhat.com">Pavol Pitonak</a>
+ * @version $Revision$
+ */
+public class ModalPanelTestCase extends AbstractSeleniumRichfacesTestCase {
+
+ // messages
+ private final String MSG_COMPONENT_DESCRIPTION = getMsg("COMPONENT_DESCRIPTION");
+
+ private final String MSG_FIRST_PANEL_NOT_VISIBLE = getMsg("FIRST_PANEL_NOT_VISIBLE");
+ private final String MSG_FIRST_PANEL_VISIBLE = getMsg("FIRST_PANEL_VISIBLE");
+ private final String MSG_FIRST_PANEL_WRONG_CONTENT = getMsg("FIRST_PANEL_WRONG_CONTENT");
+ private final String MSG_FIRST_PANEL_WRONG_HEADER = getMsg("FIRST_PANEL_WRONG_HEADER");
+
+ private final String MSG_SECOND_PANEL_NOT_VISIBLE = getMsg("SECOND_PANEL_NOT_VISIBLE");
+ private final String MSG_SECOND_PANEL_VISIBLE = getMsg("SECOND_PANEL_VISIBLE");
+ private final String MSG_SECOND_PANEL_WRONG_CONTENT = getMsg("SECOND_PANEL_WRONG_CONTENT");
+ private final String MSG_SECOND_PANEL_WRONG_HEADER = getMsg("SECOND_PANEL_WRONG_HEADER");
+
+ // locators
+ private final String LOC_FIRST_EXAMPLE_HEADER = getLoc("FIRST_EXAMPLE_HEADER");
+ private final String LOC_FIRST_PANEL = getLoc("FIRST_PANEL");
+ private final String LOC_FIRST_PANEL_POSITION = getLoc("FIRST_PANEL_POSITION");
+ private final String LOC_FIRST_PANEL_OPEN = getLoc("FIRST_PANEL_OPEN");
+ private final String LOC_FIRST_PANEL_CLOSE = getLoc("FIRST_PANEL_CLOSE");
+ private final String LOC_FIRST_PANEL_HEADER = getLoc("FIRST_PANEL_HEADER");
+ private final String LOC_FIRST_PANEL_CONTENT = getLoc("FIRST_PANEL_CONTENT");
+
+ private final String LOC_SECOND_EXAMPLE_HEADER = getLoc("SECOND_EXAMPLE_HEADER");
+ private final String LOC_SECOND_PANEL = getLoc("SECOND_PANEL");
+ private final String LOC_SECOND_PANEL_POSITION = getLoc("SECOND_PANEL_POSITION");
+ private final String LOC_SECOND_PANEL_OPEN = getLoc("SECOND_PANEL_OPEN");
+ private final String LOC_SECOND_PANEL_CLOSE = getLoc("SECOND_PANEL_CLOSE");
+ private final String LOC_SECOND_PANEL_HEADER = getLoc("SECOND_PANEL_HEADER");
+ private final String LOC_SECOND_PANEL_CONTENT = getLoc("SECOND_PANEL_CONTENT");
+
+ /**
+ * Tests the first panel. First it checks that the panel is invisible
+ * initially, then opens the panel and verifies it is visible. Then it
+ * checks the content of the panel's header and its content. In the end it
+ * closes the panel.
+ */
+ @Test
+ public void testFirstPanelOpenClose() {
+ String tmp = selenium.getAttribute(LOC_FIRST_PANEL + "@style");
+ assertFalse(!tmp.contains("display: none;"),
+ MSG_FIRST_PANEL_NOT_VISIBLE);
+
+ selenium.click(LOC_FIRST_PANEL_OPEN);
+
+ tmp = selenium.getAttribute(LOC_FIRST_PANEL + "@style");
+ assertTrue(!tmp.contains("display: none;"), MSG_FIRST_PANEL_VISIBLE);
+
+ tmp = selenium.getText(LOC_FIRST_PANEL_HEADER);
+ assertEquals(tmp, "Modal Panel", MSG_FIRST_PANEL_WRONG_HEADER);
+
+ tmp = selenium.getText(LOC_FIRST_PANEL_CONTENT);
+ assertEquals(
+ tmp,
+ "This panel is called using Component Control Component \n"
+ + "Closure link (X) works also through Component Control",
+ MSG_FIRST_PANEL_WRONG_CONTENT);
+
+ selenium.click(LOC_FIRST_PANEL_CLOSE);
+
+ tmp = selenium.getAttribute(LOC_FIRST_PANEL + "@style");
+ assertFalse(!tmp.contains("display: none;"),
+ MSG_FIRST_PANEL_NOT_VISIBLE);
+ }
+
+ /**
+ * Tests moving the panel. It opens the panel, gets panel's position on the
+ * page, and moves it 20px right, 20px down. Then it verifies the position,
+ * closes the panel, and opens it again. Then it verifies that the panel is
+ * locatet on the new position.
+ */
+ @Test
+ public void testFirstPanelMove() {
+ selenium.click(LOC_FIRST_PANEL_OPEN);
+
+ int firstX = getPosition("left", LOC_FIRST_PANEL_POSITION);
+ int firstY = getPosition("top", LOC_FIRST_PANEL_POSITION);
+
+ for (int i = 0; i < 40; i++) {
+ if (i % 2 == 0) {
+ selenium.dragAndDrop(LOC_FIRST_PANEL_HEADER, "+1,0");
+ } else {
+ selenium.dragAndDrop(LOC_FIRST_PANEL_HEADER, "0,+1");
+ }
+ }
+
+ int secondX = getPosition("left", LOC_FIRST_PANEL_POSITION);
+ int secondY = getPosition("top", LOC_FIRST_PANEL_POSITION);
+
+ assertEquals(secondX, firstX + 20, "sdlkfj");
+ assertEquals(secondY, firstY + 20, "skldfjsk");
+
+ selenium.click(LOC_FIRST_PANEL_CLOSE);
+ selenium.click(LOC_FIRST_PANEL_OPEN);
+
+ int thirdX = getPosition("left", LOC_FIRST_PANEL_POSITION);
+ int thirdY = getPosition("top", LOC_FIRST_PANEL_POSITION);
+
+ assertEquals(thirdX, secondX, "sdsdflkfj");
+ assertEquals(thirdY, secondY, "skldfsdfjsk");
+ }
+
+ /**
+ * Tests the second panel. First it checks that the panel is invisible
+ * initially, then opens the panel and verifies it is visible. Then it
+ * checks the content of the panel's header and its content. In the end it
+ * closes the panel.
+ */
+ @Test
+ public void testSecondPanelOpenClose() {
+ String tmp = selenium.getAttribute(LOC_SECOND_PANEL + "@style");
+ assertFalse(!tmp.contains("display: none;"),
+ MSG_SECOND_PANEL_NOT_VISIBLE);
+
+ selenium.click(LOC_SECOND_PANEL_OPEN);
+
+ tmp = selenium.getAttribute(LOC_SECOND_PANEL + "@style");
+ assertTrue(!tmp.contains("display: none;"), MSG_SECOND_PANEL_VISIBLE);
+
+ tmp = selenium.getText(LOC_SECOND_PANEL_HEADER);
+ assertEquals(tmp, "Modal Panel Title", MSG_SECOND_PANEL_WRONG_HEADER);
+
+ tmp = selenium.getText(LOC_SECOND_PANEL_CONTENT);
+ assertTrue(tmp.contains("Any JSF content might be inside the panel."),
+ MSG_SECOND_PANEL_WRONG_CONTENT);
+
+ selenium.click(LOC_SECOND_PANEL_CLOSE);
+
+ tmp = selenium.getAttribute(LOC_SECOND_PANEL + "@style");
+ assertFalse(!tmp.contains("display: none;"),
+ MSG_SECOND_PANEL_NOT_VISIBLE);
+ }
+
+ /**
+ * Tests moving the panel. It opens the panel, gets panel's position on the
+ * page, and moves it 20px right, 20px down. Then it verifies the position,
+ * closes the panel, and opens it again. Then it verifies that the panel is
+ * locatet on the new position.
+ */
+ @Test
+ public void testSecondPanelMove() {
+ selenium.click(LOC_SECOND_PANEL_OPEN);
+
+ int firstX = getPosition("left", LOC_SECOND_PANEL_POSITION);
+ int firstY = getPosition("top", LOC_SECOND_PANEL_POSITION);
+
+ for (int i = 0; i < 40; i++) {
+ if (i % 2 == 0) {
+ selenium.dragAndDrop(LOC_SECOND_PANEL_HEADER, "+1,0");
+ } else {
+ selenium.dragAndDrop(LOC_SECOND_PANEL_HEADER, "0,+1");
+ }
+ }
+
+ int secondX = getPosition("left", LOC_SECOND_PANEL_POSITION);
+ int secondY = getPosition("top", LOC_SECOND_PANEL_POSITION);
+
+ assertEquals(secondX, firstX + 20, "sdlkfj");
+ assertEquals(secondY, firstY + 20, "skldfjsk");
+
+ selenium.click(LOC_SECOND_PANEL_CLOSE);
+ selenium.click(LOC_SECOND_PANEL_OPEN);
+
+ int thirdX = getPosition("left", LOC_SECOND_PANEL_POSITION);
+ int thirdY = getPosition("top", LOC_SECOND_PANEL_POSITION);
+
+ assertEquals(thirdX, secondX, "sdsdflkfj");
+ assertEquals(thirdY, secondY, "skldfsdfjsk");
+ }
+
+ /**
+ * Tests the "View Source". It checks that the source code is not visible,
+ * clicks on the link, and checks 5 lines of source code.
+ */
+ @Test
+ public void testFirstSource() {
+ String [] strings = new String [] {
+ "<rich:modalPanel id=\"panel\" width=\"350\" height=\"100\">",
+ "<f:facet name=\"header\">",
+ "<h:graphicImage value=\"/images/modal/close.png\" styleClass=\"hidelink\" id=\"hidelink\"/>",
+ "<h:outputText value=\"This panel is called using Component Control Component\"></h:outputText>",
+ "<h:outputLink value=\"#\" id=\"link\">",
+ };
+
+ abstractTestSource(1, "View Source", strings);
+ }
+
+ /**
+ * Tests the "View Source". It checks that the source code is not visible,
+ * clicks on the link, and checks 5 lines of source code.
+ */
+ @Test
+ public void testSecondSource() {
+ String [] strings = new String [] {
+ "function getRightTop(ref) {",
+ "<h:outputText value=\"Modal Panel Title\" />",
+ "<p>Any JSF content might be inside the panel. In case of using ",
+ "<a href=\"#\" onclick=\"#{rich:component('mp')}.hide()\">hide this panel</a>:",
+ "<f:verbatim>#</f:verbatim>{rich:component('mp')}.hide()</p>",
+ };
+
+ abstractTestSource(2, "View Source", strings);
+ }
+
+ /**
+ * Returns one component of the position from the attribute "style".
+ *
+ * @param which
+ * one of left, right, top, bottom
+ * @param locator
+ * locator of the style attribute
+ * @return the value of the attribute in pixels
+ */
+ private int getPosition(String which, String locator) {
+ String attr = selenium.getAttribute(locator);
+ attr = attr.substring(attr.indexOf(which));
+ attr = attr.substring(which.length() + 2, attr.indexOf("px;"));
+ return Integer.parseInt(attr);
+ }
+
+ /**
+ * Loads the page containing the calendar component.
+ */
+ @BeforeMethod
+ private void loadPage() {
+ openComponent("Modal Panel");
+ }
+}
Property changes on: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/modalPanel/ModalPanelTestCase.java
___________________________________________________________________
Name: svn:executable
+ *
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/orderingList/OrderingListTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/orderingList/OrderingListTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/orderingList/OrderingListTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,483 @@
+package org.jboss.richfaces.integrationTest.orderingList;
+
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertEqualsNoOrder;
+import static org.testng.Assert.assertTrue;
+
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+/**
+ *
+ * <ul>
+ * <li><b>TODO</b> check that the number of lines does not change on Up, Down,
+ * First, Last (+Ctrl/Shift)</li>
+ * <li><b>TODO</b> check that all buttons are disabled if no lines selected</li>
+ * <li><b>TODO</b> refactor tests so that the common functionality is in one
+ * method</li>
+ * </ul>
+ *
+ * @author <a href="mailto:ppitonak@redhat.com">Pavol Pitonak</a>
+ * @version $Revision$
+ */
+public class OrderingListTestCase extends AbstractSeleniumRichfacesTestCase {
+
+ private final String table = "//fieldset[1]/div/form/table/tbody/tr/td[1]/div/table/tbody/tr[2]/td[1]/div/div[2]/table/tbody";
+ private final String buttons = "//fieldset[1]/div/form/table/tbody/tr/td[1]/div/table/tbody/tr[2]/td[2]/div";
+ private final String selection = "//fieldset[1]/div/form/table/tbody/tr/td[2]/div/div[2]";
+
+ @Test
+ public void testOrderingList() {
+ int count = selenium.getXpathCount(table + "/tr").intValue();
+ assertTrue(count > 0, "There are no lines in the table.");
+
+ waitFor(1000);
+ String text = selenium.getText(selection);
+ assertEquals(text, "No Songs Selected",
+ "Selection should not contain any name of song.");
+
+ }
+
+ @Test
+ public void testClickSingleFile() {
+ selenium.click(table + "/tr[1]");
+ String text = selenium.getText(table + "/tr[1]/td[1]");
+
+ waitFor(1000);
+ String text2 = selenium.getText(selection);
+
+ assertEquals(text2, text,
+ "Selected song is not shown in the selection panel.");
+ }
+
+ @Test
+ public void testClickMultipleFilesCtrl() {
+ String[] fromTable = new String[3];
+ String[] fromPanel = new String[3];
+
+ // click lines nr. 1, 3, and 5 in the table
+ selenium.click(table + "/tr[1]");
+ selenium.controlKeyDown();
+ selenium.click(table + "/tr[3]");
+ selenium.click(table + "/tr[5]");
+ selenium.controlKeyUp();
+
+ fromTable[0] = selenium.getText(table + "/tr[1]/td[1]");
+ fromTable[1] = selenium.getText(table + "/tr[3]/td[1]");
+ fromTable[2] = selenium.getText(table + "/tr[5]/td[1]");
+
+ waitFor(1000);
+
+ // get all selections from the panel on the right
+ for (int i = 0; i < 3; i++) {
+ fromPanel[i] = selenium.getText(selection + "/ul/li[" + (i + 1)
+ + "]");
+ }
+
+ assertEqualsNoOrder(fromPanel, fromTable,
+ "Items chosen in table should be also in the right panel.");
+ }
+
+ @Test
+ public void testClickMultipleFilesShift() {
+ String[] fromTable = new String[3];
+ String[] fromPanel = new String[3];
+
+ // click lines nr. 1 and 3 in the table
+ selenium.click(table + "/tr[1]");
+ selenium.shiftKeyDown();
+ selenium.click(table + "/tr[3]");
+ selenium.shiftKeyUp();
+
+ fromTable[0] = selenium.getText(table + "/tr[1]/td[1]");
+ fromTable[1] = selenium.getText(table + "/tr[2]/td[1]");
+ fromTable[2] = selenium.getText(table + "/tr[3]/td[1]");
+
+ waitFor(1000);
+
+ // get all selections from the panel on the right
+ for (int i = 0; i < 3; i++) {
+ fromPanel[i] = selenium.getText(selection + "/ul/li[" + (i + 1)
+ + "]");
+ }
+
+ assertEqualsNoOrder(fromPanel, fromTable,
+ "Items chosen in table should be also in the right panel.");
+ }
+
+ @Test
+ public void testUpSingleFile() {
+ String[] before = new String[2];
+ String[] after = new String[2];
+
+ before[0] = selenium.getText(table + "/tr[5]/td[1]");
+ before[1] = selenium.getText(table + "/tr[6]/td[1]");
+
+ // click line nr. 6 in the table
+ selenium.click(table + "/tr[6]");
+ // click the 'Up' button
+ selenium.click(buttons + "/div[3]");
+
+ after[0] = selenium.getText(table + "/tr[5]/td[1]");
+ after[1] = selenium.getText(table + "/tr[6]/td[1]");
+
+ assertEquals(after[0], before[1], "The sixth line should be now fifth.");
+ assertEquals(after[1], before[0], "The fifth line should be now sixth.");
+ }
+
+ @Test
+ public void testUpMultipleFilesShift() {
+ String[] before = new String[3];
+ String[] after = new String[3];
+
+ before[0] = selenium.getText(table + "/tr[5]/td[1]");
+ before[1] = selenium.getText(table + "/tr[6]/td[1]");
+ before[2] = selenium.getText(table + "/tr[7]/td[1]");
+
+ // click line nr. 6 and 7 in the table
+ selenium.click(table + "/tr[6]");
+ selenium.shiftKeyDown();
+ selenium.click(table + "/tr[7]");
+ selenium.shiftKeyUp();
+
+ // click the 'Up' button (5,6,7 -> 6,7,5)
+ selenium.click(buttons + "/div[3]");
+
+ after[0] = selenium.getText(table + "/tr[5]/td[1]");
+ after[1] = selenium.getText(table + "/tr[6]/td[1]");
+ after[2] = selenium.getText(table + "/tr[7]/td[1]");
+
+ assertEquals(after[0], before[1], "The sixth line should be now fifth.");
+ assertEquals(after[1], before[2],
+ "The seventh line should be now sixth.");
+ assertEquals(after[2], before[0],
+ "The fifth line should be now seventh.");
+ }
+
+ @Test
+ public void testUpMultipleFilesCtrl() {
+ String[] before = new String[3];
+ String[] after = new String[3];
+
+ before[0] = selenium.getText(table + "/tr[5]/td[1]");
+ before[1] = selenium.getText(table + "/tr[6]/td[1]");
+ before[2] = selenium.getText(table + "/tr[7]/td[1]");
+
+ // click line nr. 6 and 7 in the table
+ selenium.click(table + "/tr[6]");
+ selenium.controlKeyDown();
+ selenium.click(table + "/tr[7]");
+ selenium.controlKeyUp();
+
+ // click the 'Up' button (5,6,7 -> 6,7,5)
+ selenium.click(buttons + "/div[3]");
+
+ after[0] = selenium.getText(table + "/tr[5]/td[1]");
+ after[1] = selenium.getText(table + "/tr[6]/td[1]");
+ after[2] = selenium.getText(table + "/tr[7]/td[1]");
+
+ assertEquals(after[0], before[1], "The sixth line should be now fifth.");
+ assertEquals(after[1], before[2],
+ "The seventh line should be now sixth.");
+ assertEquals(after[2], before[0],
+ "The fifth line should be now seventh.");
+ }
+
+ @Test
+ public void testDownSingleFile() {
+ String[] before = new String[2];
+ String[] after = new String[2];
+
+ before[0] = selenium.getText(table + "/tr[6]/td[1]");
+ before[1] = selenium.getText(table + "/tr[7]/td[1]");
+
+ // click line nr. 6 in the table
+ selenium.click(table + "/tr[6]");
+ // click the 'Up' button
+ selenium.click(buttons + "/div[5]");
+
+ after[0] = selenium.getText(table + "/tr[6]/td[1]");
+ after[1] = selenium.getText(table + "/tr[7]/td[1]");
+
+ assertEquals(after[0], before[1],
+ "The sixth line should be now seventh.");
+ assertEquals(after[1], before[0],
+ "The seventh line should be now sixth.");
+ }
+
+ @Test
+ public void testDownMultipleFilesShift() {
+ String[] before = new String[3];
+ String[] after = new String[3];
+
+ before[0] = selenium.getText(table + "/tr[5]/td[1]");
+ before[1] = selenium.getText(table + "/tr[6]/td[1]");
+ before[2] = selenium.getText(table + "/tr[7]/td[1]");
+
+ // click line nr. 5 and 6 in the table
+ selenium.click(table + "/tr[5]");
+ selenium.shiftKeyDown();
+ selenium.click(table + "/tr[6]");
+ selenium.shiftKeyUp();
+
+ // click the 'Up' button (5,6,7 -> 7,5,6)
+ selenium.click(buttons + "/div[5]");
+
+ after[0] = selenium.getText(table + "/tr[5]/td[1]");
+ after[1] = selenium.getText(table + "/tr[6]/td[1]");
+ after[2] = selenium.getText(table + "/tr[7]/td[1]");
+
+ assertEquals(after[0], before[2],
+ "The seventh line should be now fifth.");
+ assertEquals(after[1], before[0], "The fifth line should be now sixth.");
+ assertEquals(after[2], before[1],
+ "The sixth line should be now seventh.");
+ }
+
+ @Test
+ public void testDownMultipleFilesCtrl() {
+ String[] before = new String[3];
+ String[] after = new String[3];
+
+ before[0] = selenium.getText(table + "/tr[5]/td[1]");
+ before[1] = selenium.getText(table + "/tr[6]/td[1]");
+ before[2] = selenium.getText(table + "/tr[7]/td[1]");
+
+ // click line nr. 5 and 6 in the table
+ selenium.click(table + "/tr[5]");
+ selenium.controlKeyDown();
+ selenium.click(table + "/tr[6]");
+ selenium.controlKeyUp();
+
+ // click the 'Up' button (5,6,7 -> 7,5,6)
+ selenium.click(buttons + "/div[5]");
+
+ after[0] = selenium.getText(table + "/tr[5]/td[1]");
+ after[1] = selenium.getText(table + "/tr[6]/td[1]");
+ after[2] = selenium.getText(table + "/tr[7]/td[1]");
+
+ assertEquals(after[0], before[2],
+ "The seventh line should be now fifth.");
+ assertEquals(after[1], before[0], "The fifth line should be now sixth.");
+ assertEquals(after[2], before[1],
+ "The sixth line should be now seventh.");
+ }
+
+ @Test
+ public void testLastSingleFile() {
+ String[] before = new String[3];
+ String[] after = new String[3];
+ int countOfLines = selenium.getXpathCount(table + "/tr").intValue();
+
+ before[0] = selenium.getText(table + "/tr[1]/td[1]");
+ before[1] = selenium.getText(table + "/tr[2]/td[1]");
+ before[2] = selenium.getText(table + "/tr[" + countOfLines + "]/td[1]");
+
+ // click line nr. 1 in the table
+ selenium.click(table + "/tr[1]");
+ // click the 'Last' button (1,2,..,last-1,last --> 2,..,last,1)
+ selenium.click(buttons + "/div[7]");
+
+ after[0] = selenium.getText(table + "/tr[1]/td[1]");
+ after[1] = selenium.getText(table + "/tr[" + (countOfLines - 1)
+ + "]/td[1]");
+ after[2] = selenium.getText(table + "/tr[" + countOfLines + "]/td[1]");
+
+ assertEquals(after[0], before[1],
+ "The second line should be now first.");
+ assertEquals(after[1], before[2],
+ "The last line should be now last but one.");
+ assertEquals(after[2], before[0], "The first line should be now last.");
+ }
+
+ @Test
+ public void testLastMultipleFilesShift() {
+ String[] before = new String[4];
+ String[] after = new String[4];
+ int countOfLines = selenium.getXpathCount(table + "/tr").intValue();
+
+ before[0] = selenium.getText(table + "/tr[1]/td[1]");
+ before[1] = selenium.getText(table + "/tr[2]/td[1]");
+ before[2] = selenium.getText(table + "/tr[3]/td[1]");
+ before[3] = selenium.getText(table + "/tr[" + countOfLines + "]/td[1]");
+
+ // click line nr. 1 and 2 in the table
+ selenium.click(table + "/tr[1]");
+ selenium.shiftKeyDown();
+ selenium.click(table + "/tr[2]");
+ selenium.shiftKeyUp();
+
+ // click the 'Last' button (1,2,3,..,last --> 3,..,last,1,2)
+ selenium.click(buttons + "/div[7]");
+
+ after[0] = selenium.getText(table + "/tr[1]/td[1]");
+ after[1] = selenium.getText(table + "/tr[" + (countOfLines - 2)
+ + "]/td[1]");
+ after[2] = selenium.getText(table + "/tr[" + (countOfLines - 1)
+ + "]/td[1]");
+ after[3] = selenium.getText(table + "/tr[" + countOfLines + "]/td[1]");
+
+ assertEquals(after[0], before[2], "The third line should be now first.");
+ assertEquals(after[1], before[3],
+ "The last line should be now last but two.");
+ assertEquals(after[2], before[0],
+ "The first line should be now last but one.");
+ assertEquals(after[3], before[1], "The second line should be now last.");
+ }
+
+ @Test
+ public void testLastMultipleFilesCtrl() {
+ String[] before = new String[4];
+ String[] after = new String[4];
+ int countOfLines = selenium.getXpathCount(table + "/tr").intValue();
+
+ before[0] = selenium.getText(table + "/tr[1]/td[1]");
+ before[1] = selenium.getText(table + "/tr[2]/td[1]");
+ before[2] = selenium.getText(table + "/tr[3]/td[1]");
+ before[3] = selenium.getText(table + "/tr[" + countOfLines + "]/td[1]");
+
+ // click line nr. 1 and 2 in the table
+ selenium.click(table + "/tr[1]");
+ selenium.controlKeyDown();
+ selenium.click(table + "/tr[2]");
+ selenium.controlKeyUp();
+
+ // click the 'Last' button (1,2,3,..,last --> 3,..,last,1,2)
+ selenium.click(buttons + "/div[7]");
+
+ after[0] = selenium.getText(table + "/tr[1]/td[1]");
+ after[1] = selenium.getText(table + "/tr[" + (countOfLines - 2)
+ + "]/td[1]");
+ after[2] = selenium.getText(table + "/tr[" + (countOfLines - 1)
+ + "]/td[1]");
+ after[3] = selenium.getText(table + "/tr[" + countOfLines + "]/td[1]");
+
+ assertEquals(after[0], before[2], "The third line should be now first.");
+ assertEquals(after[1], before[3],
+ "The last line should be now last but two.");
+ assertEquals(after[2], before[0],
+ "The first line should be now last but one.");
+ assertEquals(after[3], before[1], "The second line should be now last.");
+ }
+
+ @Test
+ public void testFirstSingleFile() {
+ String[] before = new String[3];
+ String[] after = new String[3];
+ int countOfLines = selenium.getXpathCount(table + "/tr").intValue();
+
+ before[0] = selenium.getText(table + "/tr[1]/td[1]");
+ before[1] = selenium.getText(table + "/tr[" + (countOfLines - 1)
+ + "]/td[1]");
+ before[2] = selenium.getText(table + "/tr[" + countOfLines + "]/td[1]");
+
+ // click the last line in the table
+ selenium.click(table + "/tr[" + countOfLines + "]");
+ // click the 'First' button (1...last-1,last --> last,1...last-1)
+ selenium.click(buttons + "/div[1]");
+
+ after[0] = selenium.getText(table + "/tr[1]/td[1]");
+ after[1] = selenium.getText(table + "/tr[2]/td[1]");
+ after[2] = selenium.getText(table + "/tr[" + countOfLines + "]/td[1]");
+
+ assertEquals(after[0], before[2],
+ "The second line should be now first.");
+ assertEquals(after[1], before[0],
+ "The first line should be now second.");
+ assertEquals(after[2], before[1],
+ "The last but one line should be now last.");
+ }
+
+ @Test
+ public void testFirstMultipleFilesShift() {
+ String[] before = new String[4];
+ String[] after = new String[4];
+ int countOfLines = selenium.getXpathCount(table + "/tr").intValue();
+
+ before[0] = selenium.getText(table + "/tr[1]/td[1]");
+ before[1] = selenium.getText(table + "/tr[" + (countOfLines - 2)
+ + "]/td[1]");
+ before[2] = selenium.getText(table + "/tr[" + (countOfLines - 1)
+ + "]/td[1]");
+ before[3] = selenium.getText(table + "/tr[" + countOfLines + "]/td[1]");
+
+ // click last 2 lines in the table
+ selenium.click(table + "/tr[" + (countOfLines - 1) + "]");
+ selenium.shiftKeyDown();
+ selenium.click(table + "/tr[" + countOfLines + "]");
+ selenium.shiftKeyUp();
+
+ // click the 'First' button (1...last-2,last-1,last -->
+ // last-1,last,1...last-2)
+ selenium.click(buttons + "/div[1]");
+
+ after[0] = selenium.getText(table + "/tr[1]/td[1]");
+ after[1] = selenium.getText(table + "/tr[2]/td[1]");
+ after[2] = selenium.getText(table + "/tr[3]/td[1]");
+ after[3] = selenium.getText(table + "/tr[" + countOfLines + "]/td[1]");
+
+ assertEquals(after[0], before[2],
+ "The last but one line should be now first.");
+ assertEquals(after[1], before[3], "The last line should be now second.");
+ assertEquals(after[2], before[0], "The first line should be now third.");
+ assertEquals(after[3], before[1],
+ "The last but two line should be now last.");
+ }
+
+ @Test
+ public void testFirstMultipleFilesCtrl() {
+ String[] before = new String[4];
+ String[] after = new String[4];
+ int countOfLines = selenium.getXpathCount(table + "/tr").intValue();
+
+ before[0] = selenium.getText(table + "/tr[1]/td[1]");
+ before[1] = selenium.getText(table + "/tr[" + (countOfLines - 2)
+ + "]/td[1]");
+ before[2] = selenium.getText(table + "/tr[" + (countOfLines - 1)
+ + "]/td[1]");
+ before[3] = selenium.getText(table + "/tr[" + countOfLines + "]/td[1]");
+
+ // click last 2 lines in the table
+ selenium.click(table + "/tr[" + (countOfLines - 1) + "]");
+ selenium.controlKeyDown();
+ selenium.click(table + "/tr[" + countOfLines + "]");
+ selenium.controlKeyUp();
+
+ // click the 'First' button (1...last-2,last-1,last -->
+ // last-1,last,1...last-2)
+ selenium.click(buttons + "/div[1]");
+
+ after[0] = selenium.getText(table + "/tr[1]/td[1]");
+ after[1] = selenium.getText(table + "/tr[2]/td[1]");
+ after[2] = selenium.getText(table + "/tr[3]/td[1]");
+ after[3] = selenium.getText(table + "/tr[" + countOfLines + "]/td[1]");
+
+ assertEquals(after[0], before[2],
+ "The last but one line should be now first.");
+ assertEquals(after[1], before[3], "The last line should be now second.");
+ assertEquals(after[2], before[0], "The first line should be now third.");
+ assertEquals(after[3], before[1],
+ "The last but two line should be now last.");
+ }
+
+ @Test
+ public void testOrderingListSource() {
+ abstractTestSource(1, 1, "<", "ui:composition");
+ }
+
+ /**
+ * Loads the needed page and makes us sure that no lines are selected.
+ */
+ @BeforeMethod
+ private void loadPage() {
+ super.loadPage("richSelect", 2,
+ "orderingList component allows to reorder items in a list.");
+
+ // ensure that no lines will be selected
+ selenium.click(table + "/tr[1]");
+ selenium.controlKeyDown();
+ selenium.click(table + "/tr[1]");
+ selenium.controlKeyUp();
+ }
+}
Property changes on: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/orderingList/OrderingListTestCase.java
___________________________________________________________________
Name: svn:executable
+ *
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/outputPanel/OutputPanelTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/outputPanel/OutputPanelTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/outputPanel/OutputPanelTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,83 @@
+package org.jboss.richfaces.integrationTest.outputPanel;
+
+import junit.framework.Assert;
+
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.jboss.test.selenium.dom.Event;
+import org.jboss.test.selenium.waiting.Condition;
+import org.testng.annotations.Test;
+
+/**
+ * @author <a href="mailto:lfryc@redhat.com">Lukas Fryc</a>
+ * @version $Revision$
+ */
+public class OutputPanelTestCase extends AbstractSeleniumRichfacesTestCase {
+ /**
+ * Opens specified page
+ */
+ public void openPage() {
+ selenium.open(contextPath
+ + "/richfaces/outputPanel.jsf?c=outputPanel&tab=usage");
+ scrollIntoView(header, true);
+ }
+
+ private String header = getLoc("output-panel--header");
+ private String inputFail = getLoc("output-panel--input--fail");
+ private String inputSuccess = getLoc("output-panel--input--success");
+ private String textCorrect = getMess("output-panel--input--correct");
+ private String textWrong = getMess("output-panel--input--wrong");
+ private String textValidationError = getMess("output-panel--output--validation-error");
+ private String formatMessage = getLoc("output-panel--output--message");
+
+ Condition isApprovedTextPresent = new Condition() {
+ public boolean isTrue() {
+ return true;
+ }
+ };
+
+ @Test
+ public void correctTextIntoFailInputTest() {
+ textIntoInput(inputFail, textCorrect, false, false);
+ }
+
+ @Test
+ public void wrongTextIntoFailInputTest() {
+ textIntoInput(inputFail, textWrong, false, false);
+ }
+
+ @Test
+ public void correctTextIntoSuccessInputTest() {
+ textIntoInput(inputSuccess, textCorrect, true, false);
+ }
+
+ @Test
+ public void wrongTextIntoSuccessInputTest() {
+ textIntoInput(inputSuccess, textWrong, false, true);
+ }
+
+ public void textIntoInput(String input, final String text,
+ final boolean textAppears, final boolean errorAppears) {
+ openPage();
+
+ selenium.type(input, text);
+ selenium.fireEvent(input, Event.KEYUP);
+
+ waitModelUpdate.dontFail().until(new Condition() {
+ public boolean isTrue() {
+ if (errorAppears || textAppears) {
+ return selenium.getXpathCount(format(formatMessage, text))
+ .intValue() > 0
+ || selenium.getXpathCount(
+ format(formatMessage, textValidationError))
+ .intValue() > 0;
+ }
+ return false;
+ }
+ });
+
+ Assert.assertEquals(textAppears ? 1 : 0, selenium.getXpathCount(format(
+ formatMessage, text)));
+ Assert.assertEquals(errorAppears ? 1 : 0, selenium
+ .getXpathCount(format(formatMessage, textValidationError)));
+ }
+}
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/paint2d/Paint2DTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/paint2d/Paint2DTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/paint2d/Paint2DTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,281 @@
+/**
+ * License Agreement.
+ *
+ * JBoss RichFaces
+ *
+ * Copyright (C) 2009 Red Hat, Inc.
+ *
+ * This code is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this code; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package org.jboss.richfaces.integrationTest.paint2d;
+
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.fail;
+
+import java.io.IOException;
+import java.security.NoSuchAlgorithmException;
+
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.jboss.test.selenium.utils.URLUtils;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+/**
+ * Test case that tests Paint2D.
+ *
+ * @author <a href="mailto:ppitonak@redhat.com">Pavol Pitonak</a>
+ * @version $Revision$
+ */
+public class Paint2DTestCase extends AbstractSeleniumRichfacesTestCase {
+
+ // messages
+ private final String MSG_TEXT_IN_IMAGE = getMsg("TEXT_IN_IMAGE");
+ private final String MSG_COLOR_OF_IMAGE = getMsg("COLOR_OF_IMAGE");
+ private final String MSG_SHADOW_SIZE = getMsg("SHADOW_SIZE");
+ private final String MSG_POSITION_OF_SLIDERS_HANDLE = getMsg("POSITION_OF_SLIDERS_HANDLE");
+ private final String MSG_IMAGE_HASH = getMsg("IMAGE_HASH");
+
+ // locators
+ private final String LOC_EXAMPLE_HEADER = getLoc("EXAMPLE_HEADER");
+ private final String LOC_INPUT_TEXT = getLoc("INPUT_TEXT");
+ private final String LOC_INPUT_COLOR = getLoc("INPUT_COLOR");
+ private final String LOC_BUTTON_APPLY_COLOR = getLoc("BUTTON_APPLY_COLOR");
+ private final String LOC_SHADOW_SLIDER = getLoc("SHADOW_SLIDER");
+ private final String LOC_SHADOW_SLIDER_HANDLE = getLoc("SHADOW_SLIDER_HANDLE");
+ private final String LOC_IMAGE = getLoc("IMAGE");
+
+ /**
+ * Tests all component on the page as they appear after the page is loaded.
+ * It checks the value in the text input, color, position of the slider, and
+ * hash code of the displayed image.
+ */
+ @Test
+ public void testInitialState() {
+ String text = selenium.getValue(LOC_INPUT_TEXT);
+ assertEquals(text, "Paint 2D", MSG_TEXT_IN_IMAGE);
+
+ text = selenium.getValue(LOC_INPUT_COLOR);
+ assertEquals(text, "0003e8", MSG_COLOR_OF_IMAGE);
+
+ int position = Integer.parseInt(getStyle(LOC_SHADOW_SLIDER_HANDLE, "left").replace("px", ""));
+ assertEquals(position, 127, MSG_SHADOW_SIZE);
+
+ assertImageHash("da54ff0e62ee33804e270a863d7001a4");
+ }
+
+ /**
+ * Tests changing text that should be in the image.
+ */
+ @Test
+ public void testChangeText() {
+ selenium.type(LOC_INPUT_TEXT, "XoXoXoXoX");
+ selenium.typeKeys(LOC_INPUT_TEXT, " "); // why is this necessary?
+ waitFor(1500);
+ assertImageHash("490d3b23e3f8c19290d3fbe351409be");
+
+ selenium.type(LOC_INPUT_TEXT, "Red Hat");
+ selenium.typeKeys(LOC_INPUT_TEXT, " "); // why is this necessary?
+ waitFor(1500);
+ assertImageHash("f56c23afa5207cfdea008d298480c750");
+ }
+
+ /**
+ * Tests changing color of the image.
+ */
+ @Test
+ public void testChangeColor() {
+ selenium.type(LOC_INPUT_COLOR, "fbff00");
+ selenium.click(LOC_BUTTON_APPLY_COLOR);
+
+ waitFor(1500);
+ assertImageHash("8f71bfc38cf5a26cdd548d3bb0f67291");
+
+ selenium.type(LOC_INPUT_COLOR, "00ffbb");
+ selenium.click(LOC_BUTTON_APPLY_COLOR);
+
+ waitFor(1500);
+ assertImageHash("6623c69f0397e00a955ed6bbb41e68e1");
+ }
+
+ /**
+ * Tests 3 positions of the slider. Verifies that the image changed.
+ */
+ @Test
+ public void testChangeShadow() {
+ selenium.mouseDownAt(LOC_SHADOW_SLIDER, "0,0");
+ selenium.mouseUp(LOC_SHADOW_SLIDER);
+ int position = Integer.parseInt(getStyle(LOC_SHADOW_SLIDER_HANDLE, "left").replace("px", ""));
+ assertEquals(position, 0, MSG_POSITION_OF_SLIDERS_HANDLE);
+
+ waitFor(1500);
+ assertImageHash("6f15cab627ffd32528a66ef9731990a2");
+
+ selenium.mouseDownAt(LOC_SHADOW_SLIDER, "96,0");
+ selenium.mouseUp(LOC_SHADOW_SLIDER);
+ position = Integer.parseInt(getStyle(LOC_SHADOW_SLIDER_HANDLE, "left").replace("px", ""));
+ assertEquals(position, 96, MSG_POSITION_OF_SLIDERS_HANDLE);
+
+ waitFor(1500);
+ assertImageHash("19063b8ea31e2939699abd7dc92cf23e");
+
+ selenium.mouseDownAt(LOC_SHADOW_SLIDER, "191,0");
+ selenium.mouseUp(LOC_SHADOW_SLIDER);
+ position = Integer.parseInt(getStyle(LOC_SHADOW_SLIDER_HANDLE, "left").replace("px", ""));
+ assertEquals(position, 191, MSG_POSITION_OF_SLIDERS_HANDLE);
+
+ waitFor(1500);
+ assertImageHash("d9e5b2f628d230b7dc41b8ece16a83ff");
+ }
+
+ /**
+ * Tests changing text and color at the same time.
+ */
+ @Test
+ public void testChangeTextAndColor() {
+ selenium.type(LOC_INPUT_TEXT, "RichFaces");
+
+ selenium.type(LOC_INPUT_COLOR, "894bd6");
+ selenium.click(LOC_BUTTON_APPLY_COLOR);
+
+ waitFor(1500);
+ assertImageHash("a18ff3c5c86154fc1c3ca2a59e60bbbf");
+ }
+
+ /**
+ * Tests changing text and shadow at the same time.
+ */
+ @Test
+ public void testChangeTextAndShadow() {
+ selenium.type(LOC_INPUT_TEXT, "RichFaces");
+
+ selenium.mouseDownAt(LOC_SHADOW_SLIDER, "159,0");
+ selenium.mouseUp(LOC_SHADOW_SLIDER);
+ int position = Integer.parseInt(getStyle(LOC_SHADOW_SLIDER_HANDLE, "left").replace("px", ""));
+ assertEquals(position, 159, MSG_POSITION_OF_SLIDERS_HANDLE);
+
+ waitFor(1500);
+ assertImageHash("74e992e595303a2f16c72a178a116189");
+ }
+
+ /**
+ * Tests changing color and shadow at the same time.
+ */
+ @Test
+ public void testChangeColorAndShadow() {
+ selenium.type(LOC_INPUT_COLOR, "6bab57");
+ selenium.click(LOC_BUTTON_APPLY_COLOR);
+
+ selenium.mouseDownAt(LOC_SHADOW_SLIDER, "96,0");
+ selenium.mouseUp(LOC_SHADOW_SLIDER);
+ int position = Integer.parseInt(getStyle(LOC_SHADOW_SLIDER_HANDLE, "left").replace("px", ""));
+ assertEquals(position, 96, MSG_POSITION_OF_SLIDERS_HANDLE);
+
+ waitFor(1500);
+ assertImageHash("fd6a4503b768b0a197851b78948b497c");
+ }
+
+ /**
+ * Tests changing text, color and size of shadow.
+ */
+ @Test
+ public void testChangeAll() {
+ selenium.type(LOC_INPUT_TEXT, "RichFaces");
+
+ selenium.type(LOC_INPUT_COLOR, "e8a54c");
+ selenium.click(LOC_BUTTON_APPLY_COLOR);
+
+ selenium.mouseDownAt(LOC_SHADOW_SLIDER, "127,0");
+ selenium.mouseUp(LOC_SHADOW_SLIDER);
+ int position = Integer.parseInt(getStyle(LOC_SHADOW_SLIDER_HANDLE, "left").replace("px", ""));
+ assertEquals(position, 127, MSG_POSITION_OF_SLIDERS_HANDLE);
+
+ waitFor(1500);
+ assertImageHash("f2016d2528b7d288f752bdaaefc7a666");
+ }
+
+ /**
+ * Tests the "View Source". It checks that the source code is not visible,
+ * clicks on the link, and checks 5 lines of source code.
+ */
+ @Test
+ public void testPageSource() {
+ String[] strings = new String[] { "<ui:composition xmlns=\"http://www.w3.org/1999/xhtml\"",
+ "<h:panelGrid columns=\"3\" width=\"100%\">", "<h:inputText value=\"#{paintData.text}\">",
+ "<a4j:support event=\"onchange\" reRender=\":painter\" />",
+ "<rich:inputNumberSlider showInput=\"false\"", };
+
+ abstractTestSource(1, "View Source", strings);
+ }
+
+ /**
+ * Tests the "View PaintBean.java Source". It checks that the source code is
+ * not visible, clicks on the link, and checks 5 lines of source code.
+ */
+ @Test
+ public void testPaintBeanSource() {
+ String[] strings = new String[] { "package org.richfaces.demo.paint2d;", "import java.awt.Graphics2D;",
+ "public void paint(Graphics2D g2d, Object obj) {", "int testLenght = data.text.length();",
+ "g2d.setPaint(new Color(color.getRed(),color.getGreen(), color.getBlue(), 30));", };
+
+ abstractTestSource(1, "View PaintBean.java Source", strings);
+ }
+
+ /**
+ * Tests the "View PaintData.java Source". It checks that the source code is
+ * not visible, clicks on the link, and checks 5 lines of source code.
+ */
+ @Test
+ public void testPaintDataSource() {
+ String[] strings = new String[] { "package org.richfaces.demo.paint2d;",
+ "public class PaintData implements Serializable{", "public int getColor() {", "return color;",
+ "public void setText(String text) {", };
+
+ abstractTestSource(1, "View PaintData.java Source", strings);
+ }
+
+ /**
+ * Verifies the hash code of the displayed image.
+ *
+ * @param hashCode
+ * expected hash code of the image
+ */
+ private void assertImageHash(String hashCode) {
+ // create URL of the image
+ int index = selenium.getLocation().indexOf('/', 7);
+ String tmp = selenium.getLocation().substring(0, index);
+ tmp += selenium.getAttribute(LOC_IMAGE + "@src");
+
+ try {
+ tmp = URLUtils.resourceMd5Digest(tmp);
+ } catch (NoSuchAlgorithmException e) {
+ e.printStackTrace();
+ fail(e.getMessage());
+ } catch (IOException e) {
+ e.printStackTrace();
+ fail(e.getMessage());
+ }
+
+ assertEquals(tmp, hashCode, MSG_IMAGE_HASH);
+ }
+
+ /**
+ * Loads the page containing the component.
+ */
+ @BeforeMethod
+ private void loadPage() {
+ openComponent("Paint2D");
+ scrollIntoView(LOC_EXAMPLE_HEADER, true);
+ }
+}
Property changes on: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/paint2d/Paint2DTestCase.java
___________________________________________________________________
Name: svn:executable
+ *
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/panel/PanelCustomizationTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/panel/PanelCustomizationTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/panel/PanelCustomizationTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,106 @@
+/**
+ * License Agreement.
+ *
+ * JBoss RichFaces
+ *
+ * Copyright (C) 2009 Red Hat, Inc.
+ *
+ * This code is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this code; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package org.jboss.richfaces.integrationTest.panel;
+
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertTrue;
+
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+/**
+ * Test case that tests customization of panels.
+ *
+ * @author <a href="mailto:ppitonak@redhat.com">Pavol Pitonak</a>
+ * @version $Revision$
+ */
+public class PanelCustomizationTestCase extends AbstractSeleniumRichfacesTestCase {
+
+ // messages
+ private final String MSG_CUST_PANEL_HEADER = getMsg("CUST_PANEL_HEADER");
+ private final String MSG_CUST_CLASS_HEADER = getMsg("CUST_CLASS_HEADER");
+ private final String MSG_CUST_THIRD_HEADER = getMsg("CUST_THIRD_HEADER");
+ private final String MSG_CUST_THIRD_BODY = getMsg("CUST_THIRD_BODY");
+ private final String MSG_CUST_FOURTH_PANEL_BODY_SCROLLABLE = getMsg("CUST_FOURTH_PANEL_BODY_SCROLLABLE");
+ private final String MSG_CUST_FIFTH_PANEL_NO_HEADER = getMsg("CUST_FIFTH_PANEL_NO_HEADER");
+
+ // locators
+ private final String LOC_CUST_FIRST_PANEL_HEADER = getLoc("CUST_FIRST_PANEL_HEADER");
+ private final String LOC_CUST_SECOND_PANEL_HEADER = getLoc("CUST_SECOND_PANEL_HEADER");
+ private final String LOC_CUST_THIRD_PANEL_HEADER = getLoc("CUST_THIRD_PANEL_HEADER");
+ private final String LOC_CUST_THIRD_PANEL_BODY = getLoc("CUST_THIRD_PANEL_BODY");
+ private final String LOC_CUST_FOURTH_PANEL_BODY = getLoc("CUST_FOURTH_PANEL_BODY");
+ private final String LOC_CUST_FOURTH_PANEL_HEADER = getLoc("CUST_FOURTH_PANEL_HEADER");
+ private final String LOC_CUST_FIFTH_PANEL_PARTS = getLoc("CUST_FIFTH_PANEL_PARTS");
+
+ @Test
+ public void testFirstPanel() {
+ String text = selenium.getText(LOC_CUST_FIRST_PANEL_HEADER);
+ assertEquals(text, "Panel #1. Changing Style Synchronously", MSG_CUST_PANEL_HEADER);
+
+ text = selenium.getAttribute(LOC_CUST_FIRST_PANEL_HEADER + "@class");
+ assertTrue(text.contains("rich-panel-header"), MSG_CUST_CLASS_HEADER);
+ }
+
+ @Test
+ public void testSecondPanel() {
+ String text = selenium.getText(LOC_CUST_SECOND_PANEL_HEADER);
+ assertEquals(text, "Panel #2. Changing Style Synchronously", MSG_CUST_PANEL_HEADER);
+
+ text = selenium.getAttribute(LOC_CUST_SECOND_PANEL_HEADER + "@class");
+ assertTrue(text.contains("rich-panel-header"), MSG_CUST_CLASS_HEADER);
+ }
+
+ @Test
+ public void testThirdPanel() {
+ String text = selenium.getAttribute(LOC_CUST_THIRD_PANEL_HEADER + "@class");
+ assertTrue(text.contains("head2"), MSG_CUST_THIRD_HEADER);
+
+ text = selenium.getAttribute(LOC_CUST_THIRD_PANEL_BODY + "@class");
+ assertTrue(text.contains("body3"), MSG_CUST_THIRD_BODY);
+ }
+
+ @Test
+ public void testFourthPanel() {
+ String text = selenium.getText(LOC_CUST_FOURTH_PANEL_HEADER);
+ assertEquals(text, "Scrolling Text Panel", MSG_CUST_PANEL_HEADER);
+
+ text = selenium.getAttribute(LOC_CUST_FOURTH_PANEL_BODY + "@class");
+ assertTrue(text.contains("body3"), MSG_CUST_FOURTH_PANEL_BODY_SCROLLABLE);
+ }
+
+ @Test
+ public void testFifthPanel() {
+ int count = selenium.getXpathCount(LOC_CUST_FIFTH_PANEL_PARTS).intValue();
+ assertEquals(count, 1, MSG_CUST_FIFTH_PANEL_NO_HEADER);
+ }
+
+ /**
+ * Loads the page containing the component.
+ */
+ @BeforeMethod
+ private void loadPage() {
+ openComponent("Panel");
+ openTab("Look Customization");
+ }
+}
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/panel/PanelTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/panel/PanelTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/panel/PanelTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,168 @@
+/**
+ * License Agreement.
+ *
+ * JBoss RichFaces
+ *
+ * Copyright (C) 2009 Red Hat, Inc.
+ *
+ * This code is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this code; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package org.jboss.richfaces.integrationTest.panel;
+
+import static org.testng.Assert.assertEquals;
+
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+/**
+ * Test case that tests panels.
+ *
+ * @author <a href="mailto:ppitonak@redhat.com">Pavol Pitonak</a>
+ * @version $Revision$
+ */
+public class PanelTestCase extends AbstractSeleniumRichfacesTestCase {
+
+ // messages
+ private final String MSG_FIRST_PANEL_TWO_PARTS = getMsg("FIRST_PANEL_TWO_PARTS");
+ private final String MSG_FIRST_HEADER = getMsg("FIRST_HEADER");
+ private final String MSG_SECOND_PANEL_NO_HEADER = getMsg("SECOND_PANEL_NO_HEADER");
+ private final String MSG_THIRD_PANEL_TWO_PARTS = getMsg("THIRD_PANEL_TWO_PARTS");
+ private final String MSG_SHOULD_BE_TWO_NESTED_PANELS = getMsg("SHOULD_BE_TWO_NESTED_PANELS");
+ private final String MSG_SIX_ITEMS_IN_LIST_LEFT = getMsg("SIX_ITEMS_IN_LIST_LEFT");
+ private final String MSG_SIX_ITEMS_IN_LIST_RIGHT = getMsg("SIX_ITEMS_IN_LIST_RIGHT");
+ private final String MSG_THIRD_HEADER = getMsg("THIRD_HEADER");
+
+ // locators
+ private final String LOC_FIRST_DIVS = getLoc("FIRST_DIVS");
+ private final String LOC_FIRST_HEADER = getLoc("FIRST_HEADER");
+ private final String LOC_SECOND_DIVS = getLoc("SECOND_DIVS");
+ private final String LOC_THIRD_DIVS = getLoc("THIRD_DIVS");
+ private final String LOC_THIRD_HEADER = getLoc("THIRD_HEADER");
+ private final String LOC_THIRD_NESTED_PANELS = getLoc("THIRD_NESTED_PANELS");
+ private final String LOC_LEFT_NESTED_PANEL_LIST_LI = getLoc("LEFT_NESTED_PANEL_LIST_LI");
+ private final String LOC_RIGHT_NESTED_PANEL_LIST_LI = getLoc("RIGHT_NESTED_PANEL_LIST_LI");
+
+ /**
+ * Tests the first example. It verifies that there are both header and body of the panel.
+ * Then it checks the content of the header.
+ */
+ @Test
+ public void testFirstExample() {
+ int count = selenium.getXpathCount(LOC_FIRST_DIVS).intValue();
+ assertEquals(count, 2, MSG_FIRST_PANEL_TWO_PARTS);
+
+ String text = selenium.getText(LOC_FIRST_HEADER);
+ assertEquals(
+ text,
+ "Write your own custom rich components with built-in AJAX support",
+ MSG_FIRST_HEADER);
+ }
+
+ /**
+ * Tests the second example. It verifies that there is no header.
+ */
+ @Test
+ public void testSecondExample() {
+ int count = selenium.getXpathCount(LOC_SECOND_DIVS).intValue();
+ assertEquals(count, 1, MSG_SECOND_PANEL_NO_HEADER);
+ }
+
+ /**
+ * Tests the third example. Verifies that the main panel has both header and body and checks
+ * its header. Then it checks the count of nested panels. For both left and right nested
+ * panel it checks that there are 6 items in lists.
+ */
+ @Test
+ public void testThirdExample() {
+ int count = selenium.getXpathCount(LOC_THIRD_DIVS).intValue();
+ assertEquals(count, 2, MSG_THIRD_PANEL_TWO_PARTS);
+
+ String text = selenium.getText(LOC_THIRD_HEADER);
+ assertEquals(text, "", MSG_THIRD_HEADER);
+
+ count = selenium.getXpathCount(LOC_THIRD_NESTED_PANELS).intValue();
+ assertEquals(count, 2, MSG_SHOULD_BE_TWO_NESTED_PANELS);
+
+ count = selenium.getXpathCount(LOC_LEFT_NESTED_PANEL_LIST_LI)
+ .intValue();
+ assertEquals(count, 6, MSG_SIX_ITEMS_IN_LIST_LEFT);
+
+ count = selenium.getXpathCount(LOC_RIGHT_NESTED_PANEL_LIST_LI)
+ .intValue();
+ assertEquals(count, 6, MSG_SIX_ITEMS_IN_LIST_RIGHT);
+ }
+
+ /**
+ * Tests the "View Source" of the first example. It checks that the source
+ * code is not visible, clicks on the link, and checks 7 lines of source
+ * code.
+ */
+ @Test
+ public void testFirstExampleSource() {
+ String[] strings = new String[] {
+ "<ui:composition xmlns=\"http://www.w3.org/1999/xhtml\"",
+ "<rich:panel>",
+ "<f:facet name=\"header\">",
+ "Write your own custom rich components with built-in AJAX support",
+ "The CDK includes a code-generation facility and a",
+ "</rich:panel>", "</ui:composition>", };
+
+ abstractTestSource(1, "View Source", strings);
+ }
+
+ /**
+ * Tests the "View Source" of the second example. It checks that the source
+ * code is not visible, clicks on the link, and checks 6 lines of source
+ * code.
+ */
+ @Test
+ public void testSecondExampleSource() {
+ String[] strings = new String[] {
+ "<ui:composition xmlns=\"http://www.w3.org/1999/xhtml\"",
+ "xmlns:a4j=\"http://richfaces.org/a4j\"",
+ "<rich:panel bodyClass=\"rich-laguna-panel-no-header\">",
+ "RichFaces is a library for adding rich user interface features to JSF",
+ "</rich:panel>", "</ui:composition>", };
+
+ abstractTestSource(2, "View Source", strings);
+ }
+
+ /**
+ * Tests the "View Source" of the third example. It checks that the source
+ * code is not visible, clicks on the link, and checks 7 lines of source
+ * code.
+ */
+ @Test
+ public void testThirdExampleSource() {
+ String[] strings = new String[] {
+ "<ui:composition xmlns=\"http://www.w3.org/1999/xhtml\"",
+ "<rich:panel style=\"padding:0\" headerClass=\"outpanelHeader\">",
+ "<f:facet name=\"header\">",
+ "<h2 align=\"center\"><h:outputText value=\"Benefits of Using Ajax4jsf\" /></h2>",
+ "<rich:panel bodyClass=\"inpanelBody\">",
+ "<li>Production quality Open Source</li>", "</ui:composition>", };
+
+ abstractTestSource(3, "View Source", strings);
+ }
+
+ /**
+ * Loads the page containing the component.
+ */
+ @BeforeMethod
+ private void loadPage() {
+ openComponent("Panel");
+ }
+}
Property changes on: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/panel/PanelTestCase.java
___________________________________________________________________
Name: svn:executable
+ *
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/panelBar/PanelBarTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/panelBar/PanelBarTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/panelBar/PanelBarTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,122 @@
+/**
+ * License Agreement.
+ *
+ * JBoss RichFaces
+ *
+ * Copyright (C) 2009 Red Hat, Inc.
+ *
+ * This code is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this code; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package org.jboss.richfaces.integrationTest.panelBar;
+
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertFalse;
+import static org.testng.Assert.assertTrue;
+
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+/**
+ * Test case that tests panel bar.
+ *
+ * @author <a href="mailto:ppitonak@redhat.com">Pavol Pitonak</a>
+ * @version $Revision$
+ */
+public class PanelBarTestCase extends AbstractSeleniumRichfacesTestCase {
+
+ // messages
+ private final String MSG_HEADER_N = getMsg("HEADER_N");
+ private final String MSG_PANEL_N_SHOULD_BE_VISIBLE = getMsg("PANEL_N_SHOULD_BE_VISIBLE");
+ private final String MSG_PANEL_N_SHOULD_NOT_BE_VISIBLE = getMsg("PANEL_N_SHOULD_NOT_BE_VISIBLE");
+
+ // locators
+ private final String LOC_EXAMPLE_HEADER = getLoc("EXAMPLE_HEADER");
+ private final String LOC_HEADER_1_N = getLoc("HEADER_1_N");
+ private final String LOC_HEADER_2_N = getLoc("HEADER_2_N");
+ private final String LOC_CONTENT_N = getLoc("CONTENT_N");
+
+ /**
+ * Tests all components as they appear after page is loaded.
+ */
+ @Test
+ public void testInitialState() {
+ String[] headers = new String[] {
+ "Leverage the whole set of JSF benefits while working with AJAX",
+ "Add AJAX capability to existing JSF applications",
+ "Write your own custom rich components with built-in AJAX support",
+ "Package resources with the application's Java classes",
+ "Easily generate images on-the-fly",
+ "Create a modern rich user interface look-and-feel with skins-based technology",
+ "Test the components, actions, listeners, and pages as you are creating them" };
+
+ String text = selenium.getText(format(LOC_HEADER_2_N, 1));
+ assertEquals(text, headers[0], format(MSG_HEADER_N, 1));
+ assertTrue(isDisplayed(format(LOC_CONTENT_N, 1)), format(MSG_PANEL_N_SHOULD_BE_VISIBLE, 1));
+
+ for (int i = 2; i < 8; i++) {
+ text = selenium.getText(format(LOC_HEADER_1_N, i));
+ assertEquals(text, headers[i - 1], format(MSG_HEADER_N, i));
+ assertFalse(isDisplayed(format(LOC_CONTENT_N, i)), format(MSG_PANEL_N_SHOULD_NOT_BE_VISIBLE, i));
+ }
+ }
+
+ /**
+ * Tests expanding each panel. It verifies that the clicked panel is visible
+ * and that none of the other panels is visible.
+ */
+ @Test
+ public void testExpanding() {
+ for (int i = 7; i > 0; i--) {
+ selenium.click(format(LOC_HEADER_1_N, i));
+
+ // check that clicked panel is visible
+ assertTrue(isDisplayed(format(LOC_CONTENT_N, i)), format(MSG_PANEL_N_SHOULD_BE_VISIBLE, i));
+
+ // check that other panel are not visible
+ for (int j = 1; j < 8; j++) {
+ if (j == i) {
+ continue;
+ }
+ assertFalse(isDisplayed(format(LOC_CONTENT_N, j)), format(MSG_PANEL_N_SHOULD_NOT_BE_VISIBLE, i));
+ }
+ }
+ }
+
+ /**
+ * Tests the "View Source". It checks that the source code is not visible,
+ * clicks on the link, and checks 6 lines of source code.
+ */
+ @Test
+ public void testPageSource() {
+ String[] strings = new String[] {
+ "<ui:composition xmlns=\"http://www.w3.org/1999/xhtml\"",
+ "<rich:panelBar height=\"400\" width=\"500\">",
+ "label=\"Leverage the whole set of JSF benefits while working with AJAX\">",
+ "</rich:panelBarItem>", "</rich:panelBar>",
+ "</ui:composition>", };
+
+ abstractTestSource(1, "View Source", strings);
+ }
+
+ /**
+ * Loads the page containing the component.
+ */
+ @BeforeMethod
+ private void loadPage() {
+ openComponent("Panel Bar");
+ scrollIntoView(LOC_EXAMPLE_HEADER, true);
+ }
+}
Property changes on: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/panelBar/PanelBarTestCase.java
___________________________________________________________________
Name: svn:executable
+ *
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/panelMenu/PanelMenuTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/panelMenu/PanelMenuTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/panelMenu/PanelMenuTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,274 @@
+package org.jboss.richfaces.integrationTest.panelMenu;
+
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertFalse;
+import static org.testng.Assert.assertTrue;
+
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+/**
+ * Test case that tests panel menu.
+ *
+ * @author <a href="mailto:ppitonak@redhat.com">Pavol Pitonak</a>
+ * @version $Revision$
+ */
+public class PanelMenuTestCase extends AbstractSeleniumRichfacesTestCase {
+
+ // messages
+ private final String MSG_COMPONENT_DESCRIPTION = getMess("COMPONENT_DESCRIPTION");
+ private final String MSG_CONTENT_OF_PANEL_ON_LOAD = getMess("CONTENT_OF_PANEL_ON_LOAD");
+ private final String MSG_CONTENT_OF_PANEL = getMess("CONTENT_OF_PANEL");
+ private final String MSG_IMAGE_BEFORE_GROUP_NAME = getMess("IMAGE_BEFORE_GROUP_NAME");
+ private final String MSG_NAME_OF_GROUP = getMess("NAME_OF_GROUP");
+ private final String MSG_IMAGE_AFTER_GROUP_NAME_DOWN = getMess("IMAGE_AFTER_GROUP_NAME_DOWN");
+ private final String MSG_IMAGE_AFTER_GROUP_NAME_UP = getMess("IMAGE_AFTER_GROUP_NAME_UP");
+ private final String MSG_IMAGE_AFTER_GROUP_NAME_SPACER = getMess("IMAGE_AFTER_GROUP_NAME_SPACER");
+ private final String MSG_ITEM_M_N_NOT_VISIBLE = getMess("ITEM_M_N_NOT_VISIBLE");
+ private final String MSG_ITEM_M_N_VISIBLE = getMess("ITEM_M_N_VISIBLE");
+ private final String MSG_IMAGE_BEFORE_ITEM_GRID = getMess("IMAGE_BEFORE_ITEM_GRID");
+ private final String MSG_DISK_BEFORE_GROUP_NAME = getMess("DISK_BEFORE_GROUP_NAME");
+ private final String MSG_SUBITEM_M_NOT_VISIBLE = getMess("SUBITEM_M_NOT_VISIBLE");
+ private final String MSG_SUBITEM_M_VISIBLE = getMess("SUBITEM_M_VISIBLE");
+
+ // locators
+ private final String LOC_EXAMPLE_HEADER = getLoc("EXAMPLE_HEADER");
+ private final String LOC_PANEL = getLoc("PANEL");
+
+ private final String LOC_GROUP_N_IMAGE_BEFORE = getLoc("GROUP_N_IMAGE_BEFORE");
+ private final String LOC_GROUP_N_IMAGE_AFTER = getLoc("GROUP_N_IMAGE_AFTER");
+ private final String LOC_GROUP_N_TEXT = getLoc("GROUP_N_TEXT");
+
+ private final String LOC_ITEM_M_N_IMAGE_BEFORE = getLoc("ITEM_M_N_IMAGE_BEFORE");
+ private final String LOC_ITEM_M_N_IMAGE_AFTER = getLoc("ITEM_M_N_IMAGE_AFTER");
+ private final String LOC_ITEM_M_N_TEXT = getLoc("ITEM_M_N_TEXT");
+ private final String LOC_ITEM_M_N_STYLE = getLoc("ITEM_M_N_STYLE");
+
+ private final String LOC_SUBITEM_GROUP = getLoc("SUBITEM_GROUP");
+ private final String LOC_SUBITEM_M_IMAGE_BEFORE = formatLoc("SUBITEM_M_IMAGE_BEFORE_RELATIVE_TO_GROUP", LOC_SUBITEM_GROUP);
+ private final String LOC_SUBITEM_M_TEXT = formatLoc("SUBITEM_M_TEXT_RELATIVE_TO_GROUP", LOC_SUBITEM_GROUP);
+ private final String LOC_SUBITEM_M_STYLE = formatLoc("SUBITEM_M_STYLE_RELATIVE_TO_GROUP", LOC_SUBITEM_GROUP);
+
+ /**
+ * Tests the first group. First it checks the image before group name, group
+ * name, and image after group name. Then it checks that all items from the
+ * group are hidden. Then it expands the group and verifies that the image
+ * right of group name changed and that all items are visible. In the end it
+ * checks that there is a grid in front of each item.
+ */
+ @Test
+ public void testFirstGroup() {
+ abstractTestGroupN(1);
+ }
+
+ /**
+ * Tests the second group. First it checks the image before group name,
+ * group name, and image after group name. Then it checks that all items
+ * from the group are hidden. Then it expands the group and verifies that
+ * the image right of group name changed and that all items are visible. In
+ * the end it checks that there is a grid in front of each item.
+ */
+ @Test
+ public void testSecondGroup() {
+ abstractTestGroupN(2);
+ }
+
+ /**
+ * Tests the third group. First it checks the image before group name, group
+ * name, and image after group name. Then it checks that all items from the
+ * group are hidden. Then it expands the group and verifies that the image
+ * right of group name changed and that all items are visible. In the end it
+ * checks that there is a grid in front of each item.
+ */
+ @Test
+ public void testThirdGroup() {
+ abstractTestGroupN(3);
+ }
+
+ /**
+ * Tests subgroup (2.4). First it checks the image before group name, group
+ * name, and image after group name. Then it checks that all items from the
+ * group are hidden. Then it expands the group and verifies that the image
+ * right of group name is the same and that all items are visible. In the
+ * end it checks that there is a grid in front of each item.
+ */
+ @Test
+ public void testSubgroup() {
+ String text = null;
+
+ selenium.click(String.format(LOC_GROUP_N_TEXT, 2));
+
+ // image before subgroup name
+ text = selenium.getAttribute(String.format(LOC_ITEM_M_N_IMAGE_BEFORE, 2, 4));
+ assertTrue(text.contains("PanelMenuIconDisc"),
+ MSG_DISK_BEFORE_GROUP_NAME);
+
+ // subgroup name
+ text = selenium.getText(String.format(LOC_ITEM_M_N_TEXT, 2, 4));
+ assertEquals(text, "Group 2.4", MSG_NAME_OF_GROUP);
+
+ // image after subgroup name
+ text = selenium.getAttribute(String.format(LOC_ITEM_M_N_IMAGE_AFTER, 2,
+ 4));
+ assertTrue(text.contains("PanelMenuIconSpacer"),
+ MSG_IMAGE_AFTER_GROUP_NAME_SPACER);
+
+ for (int i = 1; i < 4; i++) {
+ text = selenium.getAttribute(String.format(LOC_SUBITEM_M_STYLE, i));
+ assertFalse(!text.contains("display: none;"), String.format(
+ MSG_SUBITEM_M_NOT_VISIBLE, i));
+ }
+
+ // click Group 2.4
+ selenium.click(String.format(LOC_ITEM_M_N_TEXT, 2, 4));
+
+ // image after subgroup name
+ text = selenium.getAttribute(String.format(LOC_ITEM_M_N_IMAGE_AFTER, 2,
+ 4));
+ assertTrue(text.contains("PanelMenuIconSpacer"),
+ MSG_IMAGE_AFTER_GROUP_NAME_SPACER);
+
+ for (int i = 1; i < 4; i++) {
+ // check that items are not hidden
+ try {
+ text = selenium.getAttribute(String.format(LOC_SUBITEM_M_STYLE,
+ i));
+ assertTrue(!text.contains("display: none;"), String.format(
+ MSG_SUBITEM_M_VISIBLE, i));
+ } catch (Exception e) {
+ // OK -- there is no style attribute
+ }
+
+ // check the image left of the item
+ System.out.println("--------------"
+ + String.format(LOC_SUBITEM_M_IMAGE_BEFORE, i) + "-----");
+ text = selenium.getAttribute(String.format(
+ LOC_SUBITEM_M_IMAGE_BEFORE, i));
+ System.out.println("--------------" + text + "-----");
+ assertTrue(text.contains("PanelMenuIconGrid"),
+ MSG_IMAGE_BEFORE_ITEM_GRID);
+ }
+ }
+
+ /**
+ * Tests content of the panel. First it verifies the default string in the
+ * panel. Then it goes through first three items from each group and
+ * verifies the text in the panel. After that it clicks all items in group
+ * 2.4 and checks content of the panel again.
+ */
+ @Test
+ public void testPanel() {
+ String text = selenium.getText(LOC_PANEL);
+ assertEquals(text, "Nothing selected", MSG_CONTENT_OF_PANEL_ON_LOAD);
+
+ // check items on the first level (1.1, 1.2, etc.)
+ for (int i = 1; i < 4; i++) {
+ selenium.click(String.format(LOC_GROUP_N_TEXT, i));
+ for (int j = 1; j < 4; j++) {
+ selenium.click(String.format(LOC_ITEM_M_N_TEXT, i, j));
+ waitFor(500); // it use Ajax mode
+ text = selenium.getText(LOC_PANEL);
+ assertEquals(text, String.format("Item %d.%d selected", i, j),
+ MSG_CONTENT_OF_PANEL);
+ }
+ }
+
+ // check items on the second level (2.4.1, 2.4.2, 2.4.3)
+ selenium.click(String.format(LOC_ITEM_M_N_TEXT, 2, 4));
+ for (int i = 1; i < 4; i++) {
+ selenium.click(String.format(LOC_SUBITEM_M_TEXT, i));
+ waitFor(500); // it use Ajax mode
+ text = selenium.getText(LOC_PANEL);
+ assertEquals(text, String.format("Item 2.4.%d selected", i),
+ MSG_CONTENT_OF_PANEL);
+ }
+ }
+
+ /**
+ * Tests the "View Source". It checks that the source code is not visible,
+ * clicks on the link, and checks 7 lines of source code.
+ */
+ @Test
+ public void testExampleSource() {
+ String[] strings = new String[] {
+ "<ui:composition xmlns=\"http://www.w3.org/1999/xhtml\"",
+ "<h:form id=\"form\">",
+ "iconExpandedTopGroup=\"chevronUp\" iconGroupTopPosition=\"right\"",
+ "<f:param name=\"current\" value=\"Item 1.1\"/>",
+ "<rich:panel bodyClass=\"rich-laguna-panel-no-header\">",
+ "<h:outputText value=\"#{panelMenu.current} selected\" id=\"current\"/>",
+ "</ui:composition>", };
+
+ abstractTestSource(1, "View Source", strings);
+ }
+
+ /**
+ * Tests one group.
+ *
+ * @param index
+ * number of group to be tested
+ */
+ private void abstractTestGroupN(int index) {
+ String text = null;
+
+ // spacer before group name
+ text = selenium.getAttribute(String.format(LOC_GROUP_N_IMAGE_BEFORE,
+ index));
+ assertTrue(text.contains("PanelMenuIconSpacer"),
+ MSG_IMAGE_BEFORE_GROUP_NAME);
+
+ // group name
+ text = selenium.getText(String.format(LOC_GROUP_N_TEXT, index));
+ assertEquals(text, "Group " + index, MSG_NAME_OF_GROUP);
+
+ // image after group name
+ text = selenium.getAttribute(String.format(LOC_GROUP_N_IMAGE_AFTER,
+ index));
+ assertTrue(text.contains("PanelMenuIconChevronDown"),
+ MSG_IMAGE_AFTER_GROUP_NAME_DOWN);
+
+ for (int i = 1; i < 4; i++) {
+ text = selenium.getAttribute(String.format(LOC_ITEM_M_N_STYLE,
+ index, i));
+ assertFalse(!text.contains("display: none;"), String.format(
+ MSG_ITEM_M_N_NOT_VISIBLE, index, i));
+ }
+
+ selenium.click(String.format(LOC_GROUP_N_TEXT, index));
+
+ // image after group name
+ text = selenium.getAttribute(String.format(LOC_GROUP_N_IMAGE_AFTER,
+ index));
+ assertTrue(text.contains("PanelMenuIconChevronUp"),
+ MSG_IMAGE_AFTER_GROUP_NAME_UP);
+
+ for (int i = 1; i < 4; i++) {
+ // check that items are not hidden
+ try {
+ text = selenium.getAttribute(String.format(LOC_ITEM_M_N_STYLE,
+ index, i));
+ assertTrue(!text.contains("display: none;"), String.format(
+ MSG_ITEM_M_N_VISIBLE, index, i));
+ } catch (Exception e) {
+ // OK -- there is no style attribute
+ }
+
+ // check the image left of the item
+ text = selenium.getAttribute(String.format(
+ LOC_ITEM_M_N_IMAGE_BEFORE, index, i));
+ assertTrue(text.contains("PanelMenuIconGrid"),
+ MSG_IMAGE_BEFORE_ITEM_GRID);
+ }
+ }
+
+ /**
+ * Loads the page containing the component.
+ */
+ @BeforeMethod
+ private void loadPage() {
+// selenium.allowNativeXpath("true");
+ super.loadPage("richOutputs", 5, 1, MSG_COMPONENT_DESCRIPTION);
+ scrollIntoView(LOC_EXAMPLE_HEADER, true);
+ }
+}
Property changes on: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/panelMenu/PanelMenuTestCase.java
___________________________________________________________________
Name: svn:executable
+ *
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/pickList/PickListTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/pickList/PickListTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/pickList/PickListTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,274 @@
+package org.jboss.richfaces.integrationTest.pickList;
+
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertTrue;
+
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+/**
+ *
+ * <ul>
+ * <li><b>TODO</b> check that buttons are enabled and disabled properly</li>
+ * <li><b>TODO</b> implement tests for multiple files with shift and control key
+ * </li>
+ * <li><b>TODO</b> check not only one table, but both</li>
+ * <li><b>TODO</b> check the header of panel with capitals</li>
+ * </ul>
+ *
+ * @author <a href="mailto:ppitonak@redhat.com">Pavol Pitonak</a>
+ * @version $Revision$
+ */
+public class PickListTestCase extends AbstractSeleniumRichfacesTestCase {
+
+ private final String leftUpperTable = "//fieldset[1]/div/table/tbody/tr/td[1]/div/table/tbody/tr/td/div/div/table/tbody";
+ private final String upperButtons = "//fieldset[1]/div/table/tbody/tr/td[2]/div";
+ private final String rightUpperTable = "//fieldset[1]/div/table/tbody/tr/td[3]/div/table/tbody/tr/td/div/div/table/tbody";
+
+ private final String leftLowerTable = "//fieldset[2]/div/form/table/tbody/tr/td[1]/table/tbody/tr/td[1]/div/table/tbody/tr/td/div/div/table/tbody";
+ private final String lowerButtons = "//fieldset[2]/div/form/table/tbody/tr/td[1]/table/tbody/tr/td[2]/div";
+ private final String rightLowerTable = "//fieldset[2]/div/form/table/tbody/tr/td[1]/table/tbody/tr/td[3]/div/table/tbody/tr/td/div/div/table/tbody";
+ private final String chosenOptions = "//fieldset[2]/div/form/table/tbody/tr/td[2]/div/div[2]";
+
+ @Test
+ public void testUpperPickList() {
+ int count = selenium.getXpathCount(leftUpperTable + "/tr").intValue();
+ assertTrue(count > 0, "There are no lines in the upper left table.");
+
+ count = selenium.getXpathCount(rightUpperTable + "/tr").intValue();
+ assertEquals(count, 0,
+ "There should be no lines in the upper right table.");
+ }
+
+ @Test
+ public void testUpperCopySingleFile() {
+ int count = selenium.getXpathCount(leftUpperTable + "/tr").intValue();
+
+ // click the first line
+ selenium.click(leftUpperTable + "/tr[1]");
+ // click 'Copy'
+ selenium.click(upperButtons + "/div[3]");
+
+ int newCount = selenium.getXpathCount(leftUpperTable + "/tr")
+ .intValue();
+ assertEquals(newCount, count - 1,
+ "There should be less lines in the left table.");
+ }
+
+ // @Test
+ // public void testUpperCopyMultipleFilesShift() {
+ // fail("TODO");
+ // }
+ //
+ // @Test
+ // public void testUpperCopyMultipleFilesCtrl() {
+ // fail("TODO");
+ // }
+
+ @Test
+ public void testUpperCopyAll() {
+ int count = selenium.getXpathCount(leftUpperTable + "/tr").intValue();
+
+ // click 'Copy All'
+ selenium.click(upperButtons + "/div[1]");
+
+ int newCount = selenium.getXpathCount(leftUpperTable + "/tr")
+ .intValue();
+ assertEquals(newCount, 0, "There should be no lines in the left table.");
+
+ newCount = selenium.getXpathCount(rightUpperTable + "/tr").intValue();
+ assertEquals(newCount, count,
+ "All items from left table should be now in the right table.");
+ }
+
+ @Test
+ public void testUpperRemoveSingleFile() {
+ // click 'Copy All'
+ selenium.click(upperButtons + "/div[1]");
+
+ int count = selenium.getXpathCount(rightUpperTable + "/tr").intValue();
+
+ // click the first line
+ selenium.click(rightUpperTable + "/tr[1]");
+ // click 'Remove'
+ selenium.click(upperButtons + "/div[5]");
+
+ int newCount = selenium.getXpathCount(rightUpperTable + "/tr")
+ .intValue();
+ assertEquals(newCount, count - 1,
+ "There should be less lines in the right table.");
+ }
+
+ // @Test
+ // public void testUpperRemoveMultipleFilesShift() {
+ // fail("TODO");
+ // }
+ //
+ // @Test
+ // public void testUpperRemoveMultipleFilesCtrl() {
+ // fail("TODO");
+ // }
+
+ @Test
+ public void testUpperRemoveAll() {
+ int count = selenium.getXpathCount(leftUpperTable + "/tr").intValue();
+
+ // click 'Copy All'
+ selenium.click(upperButtons + "/div[1]");
+
+ // click 'Remove All'
+ selenium.click(upperButtons + "/div[7]");
+
+ int newCount = selenium.getXpathCount(rightUpperTable + "/tr")
+ .intValue();
+ assertEquals(newCount, 0,
+ "There should be no lines in the right table.");
+
+ newCount = selenium.getXpathCount(leftUpperTable + "/tr").intValue();
+ assertEquals(newCount, count,
+ "All items from right table should be now in the left table.");
+ }
+
+ @Test
+ public void testLowerPickList() {
+ int count = selenium.getXpathCount(leftLowerTable + "/tr").intValue();
+ assertTrue(count > 0, "There are no lines in the lower left table.");
+
+ count = selenium.getXpathCount(rightLowerTable + "/tr").intValue();
+ assertEquals(count, 0,
+ "There should be no lines in the lower right table.");
+
+ boolean empty = !selenium.isElementPresent(chosenOptions + "/ul");
+ assertTrue(empty, "Chosen options should not contain any items.");
+ }
+
+ @Test
+ public void testLowerCopySingleFile() {
+ int count = selenium.getXpathCount(leftLowerTable + "/tr").intValue();
+
+ // click the first line
+ selenium.click(leftLowerTable + "/tr[1]");
+ // click 'Copy'
+ selenium.click(lowerButtons + "/div[3]");
+
+ int newCount = selenium.getXpathCount(leftLowerTable + "/tr")
+ .intValue();
+ assertEquals(newCount, count - 1,
+ "There should be less lines in the left table.");
+
+ count = selenium.getXpathCount(chosenOptions + "/ul/li").intValue();
+ assertEquals(count, 1, "There should be only one capital city.");
+
+ String capital = selenium.getText(chosenOptions + "/ul/li[1]");
+ assertEquals(capital, "Montgomery", "Capital of Alaska.");
+ }
+
+ // @Test
+ // public void testLowerCopyMultipleFilesShift() {
+ // fail("TODO");
+ // }
+ //
+ // @Test
+ // public void testLowerCopyMultipleFilesCtrl() {
+ // fail("TODO");
+ // }
+
+ @Test
+ public void testLowerCopyAll() {
+ int count = selenium.getXpathCount(leftLowerTable + "/tr").intValue();
+
+ // click 'Copy All'
+ selenium.click(lowerButtons + "/div[1]");
+
+ int newCount = selenium.getXpathCount(leftLowerTable + "/tr")
+ .intValue();
+ assertEquals(newCount, 0, "There should be no lines in the left table.");
+
+ newCount = selenium.getXpathCount(rightLowerTable + "/tr").intValue();
+ assertEquals(newCount, count,
+ "All items from left table should be now in the right table.");
+
+ newCount = selenium.getXpathCount(chosenOptions + "/ul/li").intValue();
+ assertEquals(newCount, count,
+ "Not all capital cities were displayed in the panel.");
+ }
+
+ @Test
+ public void testLowerRemoveSingleFile() {
+ // click 'Copy All'
+ selenium.click(lowerButtons + "/div[1]");
+
+ int count = selenium.getXpathCount(rightLowerTable + "/tr").intValue();
+
+ // click the first line
+ selenium.click(rightLowerTable + "/tr[1]");
+ // click 'Remove'
+ selenium.click(lowerButtons + "/div[5]");
+
+ int newCount = selenium.getXpathCount(rightLowerTable + "/tr")
+ .intValue();
+ assertEquals(newCount, count - 1,
+ "There should be less lines in the right table.");
+
+ newCount = selenium.getXpathCount(chosenOptions + "/ul/li").intValue();
+ assertEquals(newCount, count - 1,
+ "The capital city was not removed from panel.");
+ }
+
+ // @Test
+ // public void testLowerRemoveMultipleFilesShift() {
+ // fail("TODO");
+ // }
+ //
+ // @Test
+ // public void testLowerRemoveMultipleFilesCtrl() {
+ // fail("TODO");
+ // }
+
+ @Test
+ public void testLowerRemoveAll() {
+ int count = selenium.getXpathCount(leftLowerTable + "/tr").intValue();
+
+ // click 'Copy All'
+ selenium.click(lowerButtons + "/div[1]");
+
+ // click 'Remove All'
+ selenium.click(lowerButtons + "/div[7]");
+
+ int newCount = selenium.getXpathCount(rightLowerTable + "/tr")
+ .intValue();
+ assertEquals(newCount, 0,
+ "There should be no lines in the right table.");
+
+ newCount = selenium.getXpathCount(leftLowerTable + "/tr").intValue();
+ assertEquals(newCount, count,
+ "All items from right table should be now in the left table.");
+
+ count = selenium.getXpathCount(chosenOptions + "/ul/li").intValue();
+ assertEquals(count, 0, "All capitals from the panel should be removed.");
+ }
+
+ @Test
+ public void testUpperPickListSource() {
+ abstractTestSource(1, 1, "<", "ui:composition");
+ }
+
+ @Test
+ public void testLowerPickListSource() {
+ abstractTestSource(2, 1, "<", "ui:composition");
+ }
+
+ /**
+ * Loads the needed page.
+ */
+ @BeforeMethod
+ private void loadPage() {
+ super.loadPage("richSelect", 3,
+ "Pick List component is a simple selection component");
+
+ // click 'Remove All'
+ selenium.click(upperButtons + "/div[7]");
+ selenium.click(lowerButtons + "/div[7]");
+ }
+}
Property changes on: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/pickList/PickListTestCase.java
___________________________________________________________________
Name: svn:executable
+ *
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/poll/PollTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/poll/PollTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/poll/PollTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,93 @@
+package org.jboss.richfaces.integrationTest.poll;
+
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.jboss.test.selenium.waiting.Condition;
+import org.jboss.test.selenium.waiting.Wait;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+/**
+ * @author <a href="mailto:lfryc@redhat.com">Lukas Fryc</a>
+ * @version $Revision$
+ */
+public class PollTestCase extends AbstractSeleniumRichfacesTestCase {
+ /**
+ * Opens specified page
+ */
+ private void openPage() {
+ selenium.open(contextPath + "/richfaces/poll.jsf?c=poll&tab=usage");
+ }
+
+ private String status = getLoc("poll--status");
+ private String control = getLoc("poll--control");
+ private String serverDate = getLoc("poll--server-date");
+
+ @Test
+ public void testPollingProgress() {
+ openPage();
+
+ setPollingStatus(true);
+
+ pollingProgress();
+ }
+
+ @Test
+ public void testPollingStop() {
+ openPage();
+
+ setPollingStatus(false);
+
+ pollingStopped();
+ }
+
+ @Test
+ public void testPollingStopAndStart() {
+ openPage();
+
+ setPollingStatus(false);
+
+ pollingStopped();
+
+ setPollingStatus(true);
+
+ pollingProgress();
+ }
+
+ public void pollingProgress() {
+ final String old = selenium.getText(serverDate);
+
+ Wait.timeout(3000).until(new Condition() {
+ public boolean isTrue() {
+ String actual = selenium.getText(serverDate);
+
+ return !old.equals(actual);
+ }
+ });
+ }
+
+ public void pollingStopped() {
+ Assert.assertEquals(selenium.getText(status),
+ getMess("poll--polling-inactive"));
+
+ String expected = selenium.getText(serverDate);
+ waitFor(2000);
+ String actual = selenium.getText(serverDate);
+
+ Assert.assertEquals(actual, expected);
+ }
+
+ public void setPollingStatus(final boolean pollingActive) {
+ if (pollingActive != getMess("poll--polling-active").equals(
+ selenium.getText(status))) {
+
+ selenium.click(control);
+
+ Wait.until(new Condition() {
+ public boolean isTrue() {
+ return pollingActive == getMess("poll--polling-active")
+ .equals(selenium.getText(status));
+ }
+ });
+ }
+ }
+}
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/progressBar/ProgressBarTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/progressBar/ProgressBarTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/progressBar/ProgressBarTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,200 @@
+package org.jboss.richfaces.integrationTest.progressBar;
+
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertFalse;
+import static org.testng.Assert.assertTrue;
+
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+/**
+ * Test case that tests progress bar.
+ *
+ * @author <a href="mailto:ppitonak@redhat.com">Pavol Pitonak</a>
+ * @version $Revision$
+ */
+public class ProgressBarTestCase extends AbstractSeleniumRichfacesTestCase {
+
+ // messages
+ private final String MSG_COMPONENT_DESCRIPTION = getMess("COMPONENT_DESCRIPTION");
+ private final String MSG_BUTTON_SHOULD_BE_PRESENT = getMess("BUTTON_SHOULD_BE_PRESENT");
+ private final String MSG_BUTTON_SHOULD_NOT_BE_PRESENT = getMess("BUTTON_SHOULD_NOT_BE_PRESENT");
+ private final String MSG_FIRST_PROGRESS_BAR_LABEL = getMess("FIRST_PROGRESS_BAR_LABEL");
+ private final String MSG_SECOND_PROGRESS_BAR_UPLOAD = getMess("SECOND_PROGRESS_BAR_UPLOAD");
+ private final String MSG_SECOND_PB_INITIAL_LABEL_SHOULD_BE_VISIBLE = getMess("SECOND_PB_INITIAL_LABEL_SHOULD_BE_VISIBLE");
+ private final String MSG_SECOND_PB_INITIAL_LABEL_SHOULD_NOT_BE_VISIBLE = getMess("SECOND_PB_INITIAL_LABEL_SHOULD_NOT_BE_VISIBLE");
+ private final String MSG_SECOND_PB_FINISHED_LABEL_SHOULD_BE_VISIBLE = getMess("SECOND_PB_FINISHED_LABEL_SHOULD_BE_VISIBLE");
+ private final String MSG_SECOND_PB_FINISHED_LABEL_SHOULD_NOT_BE_VISIBLE = getMess("SECOND_PB_FINISHED_LABEL_SHOULD_NOT_BE_VISIBLE");
+
+ // locators
+ private final String LOC_EXAMPLE_1_HEADER = getLoc("EXAMPLE_1_HEADER");
+ private final String LOC_EXAMPLE_2_HEADER = getLoc("EXAMPLE_2_HEADER");
+ private final String LOC_FIRST_BUTTON = getLoc("FIRST_BUTTON");
+ private final String LOC_FIRST_PROGRESS_BAR_LABEL = getLoc("FIRST_PROGRESS_BAR_LABEL");
+ private final String LOC_FIRST_PROGRESS_BAR_STYLE = getLoc("FIRST_PROGRESS_BAR_STYLE");
+ private final String LOC_SECOND_BUTTON = getLoc("SECOND_BUTTON");
+ private final String LOC_SECOND_LABEL_FINISHED = getLoc("SECOND_LABEL_FINISHED");
+ private final String LOC_SECOND_LABEL_INITIAL = getLoc("SECOND_LABEL_INITIAL");
+ private final String LOC_SECOND_PROGRESS_BAR_STYLE = getLoc("SECOND_PROGRESS_BAR_STYLE");
+
+ /**
+ * Tests the first example. It checks that the button is visible and then it
+ * click on the button. The process starts and the test checks 3 times that
+ * the label of the progress bar and its "width" attribute equal.
+ */
+ @Test
+ public void testFirstExample() {
+ scrollIntoView(LOC_EXAMPLE_1_HEADER, true);
+
+ boolean present = selenium.isElementPresent(LOC_FIRST_BUTTON);
+ assertTrue(present, MSG_BUTTON_SHOULD_BE_PRESENT);
+
+ selenium.click(LOC_FIRST_BUTTON);
+
+ waitFor(500);
+ present = selenium.isElementPresent(LOC_FIRST_BUTTON);
+ assertFalse(present, MSG_BUTTON_SHOULD_NOT_BE_PRESENT);
+
+ int value1 = 0;
+ int value2 = 0;
+
+ for (int i = 0; i < 4; i++) {
+ value1 = getValue(LOC_FIRST_PROGRESS_BAR_STYLE);
+ value2 = Integer.parseInt(selenium.getText(
+ LOC_FIRST_PROGRESS_BAR_LABEL).replace(" %", ""));
+ assertEquals(value1, value2, MSG_FIRST_PROGRESS_BAR_LABEL);
+ waitFor(6000);
+ }
+ }
+
+ /**
+ * Tests the second example. First it checks the displayed label. Then it
+ * clicks on the button and verifies several times that the progress bar is
+ * moving right. Then it waits for process to finish and checks that a label
+ * was displayed.
+ */
+ @Test
+ public void testSecondExample() {
+ scrollIntoView(LOC_EXAMPLE_2_HEADER, true);
+
+ String text = null;
+ try {
+ text = selenium.getAttribute(LOC_SECOND_LABEL_INITIAL + "@style");
+ assertTrue(!text.contains("display: none;"),
+ MSG_SECOND_PB_INITIAL_LABEL_SHOULD_BE_VISIBLE);
+ } catch (Exception e) {
+ // OK -- there is no style attribute
+ }
+ text = selenium.getAttribute(LOC_SECOND_LABEL_FINISHED + "@style");
+ assertFalse(!text.contains("display: none;"),
+ MSG_SECOND_PB_FINISHED_LABEL_SHOULD_NOT_BE_VISIBLE);
+
+ selenium.click(LOC_SECOND_BUTTON);
+
+ int current = 0;
+ int previous = 0;
+ waitFor(2200);
+
+ for (int i = 0; i < 10; i++) {
+ waitFor(2000);
+ current = getValue(LOC_SECOND_PROGRESS_BAR_STYLE);
+ assertTrue(current >= previous, MSG_SECOND_PROGRESS_BAR_UPLOAD);
+ previous = current;
+ }
+
+ waitFor(82000);
+
+ text = selenium.getAttribute(LOC_SECOND_LABEL_INITIAL + "@style");
+ assertFalse(!text.contains("display: none;"),
+ MSG_SECOND_PB_INITIAL_LABEL_SHOULD_NOT_BE_VISIBLE);
+ try {
+ text = selenium.getAttribute(LOC_SECOND_LABEL_FINISHED + "@style");
+ assertTrue(!text.contains("display: none;"),
+ MSG_SECOND_PB_FINISHED_LABEL_SHOULD_BE_VISIBLE);
+ } catch (Exception e) {
+ // OK -- there is no style attribute
+ }
+
+ }
+
+ /**
+ * Tests the "View Source" in the first example. It checks that the source
+ * code is not visible, clicks on the link, and checks 7 lines of source
+ * code.
+ */
+ @Test
+ public void testFirstExampleSource() {
+ String[] strings = new String[] {
+ "<ui:composition xmlns=\"http://www.w3.org/1999/xhtml\"",
+ "<a4j:outputPanel id=\"progressPanel\">",
+ "<rich:progressBar value=\"#{progressBarBean.currentValue}\"",
+ "interval=\"2000\" label=\"#{progressBarBean.currentValue} %\"",
+ "enabled=\"#{progressBarBean.enabled}\" minValue=\"-1\" maxValue=\"100\"",
+ "reRenderAfterComplete=\"progressPanel\">",
+ "<a4j:commandButton action=\"#{progressBarBean.startProcess}\"", };
+
+ abstractTestSource(1, "View Source", strings);
+ }
+
+ /**
+ * Tests the "View Java Bean Source" in the first example. It checks that
+ * the source code is not visible, clicks on the link, and checks 7 lines of
+ * source code.
+ */
+ @Test
+ public void testFirstExampleBeanSource() {
+ String[] strings = new String[] {
+ "package org.richfaces.demo.progressBar;",
+ "public class ProgressBarBean {",
+ "private boolean buttonRendered = true;",
+ "setStartTime(new Date().getTime());",
+ "Long current = (new Date().getTime() - startTime)/1000;",
+ "public void setEnabled(boolean enabled) {",
+ "this.buttonRendered = buttonRendered;", };
+
+ abstractTestSource(1, "View Java Bean Source", strings);
+ }
+
+ /**
+ * Tests the "View Source" in the second example. It checks that the source
+ * code is not visible, clicks on the link, and checks 7 lines of source
+ * code.
+ */
+ @Test
+ public void testSecondExampleSource() {
+ String[] strings = new String[] {
+ "<ui:composition xmlns=\"http://www.w3.org/1999/xhtml\"",
+ "$('form:progressBar').component.setValue(counter*5);",
+ "document.getElementById('button').disabled=false;",
+ "<h:form id=\"form\">",
+ "</f:facet>",
+ "</rich:progressBar>",
+ "<rich:progressBar mode=\"client\" id=\"progressBar\">",
+ "<button type=\"button\" onclick=\"startProgress();\" style=\"margin: 9px 0px 5px;\" id=\"button\">Start Progress</button>", };
+
+ abstractTestSource(2, "View Source", strings);
+ }
+
+ /**
+ * Returns the value of progress bar from the style attribute.
+ *
+ * @param locator
+ * locator of the style attribute
+ * @return the value of the attribute style (%)
+ */
+ private int getValue(String locator) {
+ String attr = selenium.getAttribute(locator);
+ attr = attr.substring(attr.indexOf("width"));
+ attr = attr.substring(7, attr.indexOf("%;"));
+ return (int) Double.parseDouble(attr);
+ }
+
+ /**
+ * Loads the page containing the component.
+ */
+ @BeforeMethod
+ private void loadPage() {
+ super.loadPage("richOutputs", 6, 1, MSG_COMPONENT_DESCRIPTION);
+ }
+}
Property changes on: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/progressBar/ProgressBarTestCase.java
___________________________________________________________________
Name: svn:executable
+ *
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/push/PushTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/push/PushTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/push/PushTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,106 @@
+package org.jboss.richfaces.integrationTest.push;
+
+import org.apache.commons.lang.StringUtils;
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.jboss.test.selenium.waiting.Condition;
+import org.jboss.test.selenium.waiting.Wait;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+/**
+ * @author <a href="mailto:lfryc@redhat.com">Lukas Fryc</a>
+ * @version $Revision$
+ */
+public class PushTestCase extends AbstractSeleniumRichfacesTestCase {
+ /**
+ * Opens specified page
+ */
+ private void openPage() {
+ selenium.open(contextPath + "/richfaces/push.jsf?c=push&tab=usage");
+
+ scrollIntoView(control, false);
+ }
+
+ private String control = getLoc("push--control");
+ private String outputText = getLoc("push--output-text");
+
+ @Test
+ public void testPushingProgress() {
+ openPage();
+
+ setPushingStatus(true);
+
+ pushingProgress();
+ }
+
+ @Test
+ public void testPushingStop() {
+ openPage();
+
+ setPushingStatus(false);
+
+ pushingStopped();
+ }
+
+ @Test
+ public void testPushingStopAndStart() {
+ openPage();
+
+ setPushingStatus(false);
+
+ pushingStopped();
+
+ setPushingStatus(true);
+
+ pushingProgress();
+ }
+
+ public void pushingProgress() {
+ Assert.assertTrue(isPushingActive());
+
+ final String old = selenium.getText(outputText);
+
+ Wait.interval(2500).timeout(20000).until(new Condition() {
+ public boolean isTrue() {
+ String actual = selenium.getText(outputText);
+
+ return !old.equals(actual);
+ }
+ });
+
+ String uuid = StringUtils.removeStart(selenium.getText(outputText),
+ getMess("push--active"));
+
+ Assert.assertTrue(StringUtils.isNotBlank(uuid));
+ }
+
+ public void pushingStopped() {
+ Assert.assertFalse(isPushingActive());
+
+ String expected = getMess("push--inactive");
+
+ for (int i = 0; i < 7; i++) {
+ if (i > 0) waitFor(2500);
+ String actual = selenium.getText(outputText);
+
+ Assert.assertEquals(actual, expected);
+ }
+ }
+
+ public void setPushingStatus(final boolean pushingActive) {
+ if (pushingActive != isPushingActive()) {
+
+ selenium.click(control);
+
+ Wait.until(new Condition() {
+ public boolean isTrue() {
+ return pushingActive == isPushingActive();
+ }
+ });
+ }
+ }
+
+ public boolean isPushingActive() {
+ return !getMess("push--inactive").equals(selenium.getText(outputText));
+ }
+}
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/queue/QueueSettingsTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/queue/QueueSettingsTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/queue/QueueSettingsTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,180 @@
+package org.jboss.richfaces.integrationTest.queue;
+
+import junit.framework.Assert;
+
+import org.apache.commons.lang.StringUtils;
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.jboss.test.selenium.dom.Event;
+import org.jboss.test.selenium.utils.array.ArrayTransform;
+import org.jboss.test.selenium.waiting.Condition;
+import org.jboss.test.selenium.waiting.Wait;
+import org.testng.annotations.Test;
+
+/**
+ * @author <a href="mailto:lfryc@redhat.com">Lukas Fryc</a>
+ * @version $Revision$
+ */
+public class QueueSettingsTestCase extends AbstractSeleniumRichfacesTestCase {
+ /**
+ * Opens specified page
+ */
+ public void openPage() {
+ selenium.allowNativeXpath("true");
+
+ selenium.open(format("{0}/{1}", contextPath, PAGE));
+
+ scrollIntoView(header, true);
+ }
+
+ private final String PAGE = "richfaces/queue.jsf?c=queue&tab=queueSettings";
+ private final String header = getLoc("queue-settings--header");
+ private final String inputText = getLoc("queue-settings--input--text");
+ private final String outputText = getLoc("queue-settings--output--text");
+ private final String outputEventsCount = getLoc("queue-settings--output--events-count");
+ private final String outputRequestsCount = getLoc("queue-settings--output--requests-count");
+ private final String outputDOMUpdatesCount = getLoc("queue-settings--output--dom-updates-count");
+
+// @Test
+ public void disabledQueueTest() {
+ openPage();
+
+ setQueue(10, false, true);
+ fastTyping();
+
+ int eventsCount = Integer.valueOf(selenium.getText(outputEventsCount));
+ int requestsCount = Integer.valueOf(selenium
+ .getText(outputRequestsCount));
+ int domUpdatesCount = Integer.valueOf(selenium
+ .getText(outputDOMUpdatesCount));
+
+ Assert.assertEquals(eventsCount, domUpdatesCount);
+ Assert.assertEquals(0, requestsCount);
+ }
+
+ @Test
+ public void dontIgnoreDuplicatedResponsesTest() {
+ openPage();
+
+ setQueue(10, false, false);
+ fastTyping();
+
+ int eventsCount = Integer.valueOf(selenium.getText(outputEventsCount));
+ int requestsCount = Integer.valueOf(selenium
+ .getText(outputRequestsCount));
+ int domUpdatesCount = Integer.valueOf(selenium
+ .getText(outputDOMUpdatesCount));
+
+ Assert.assertTrue(requestsCount <= eventsCount);
+ Assert.assertEquals(requestsCount, domUpdatesCount);
+ }
+
+// @Test
+ public void ignoreDuplicatedResponsesTest() {
+ openPage();
+
+ setQueue(10, true, false);
+
+ fastTyping();
+
+ int eventsCount = Integer.valueOf(selenium.getText(outputEventsCount));
+ int requestsCount = Integer.valueOf(selenium
+ .getText(outputRequestsCount));
+ int domUpdatesCount = Integer.valueOf(selenium
+ .getText(outputDOMUpdatesCount));
+
+ Assert.assertTrue(domUpdatesCount <= requestsCount);
+ Assert.assertTrue(requestsCount <= eventsCount);
+ }
+
+// @Test
+ public void requestDelayTest() {
+ openPage();
+
+ Integer[] delays = new ArrayTransform<String, Integer>(Integer.class) {
+ public Integer transformation(String source) {
+ return Integer.valueOf(source);
+ }
+ }.transform(StringUtils.splitPreserveAllTokens(
+ getMess("queue-settings--delays"), ','));
+
+ for (final int delay : delays) {
+ setQueue(delay, false, false);
+
+ int count = 1;
+ final long start = currentTime();
+ long end = start + 10000;
+ final StringBuffer text = new StringBuffer();
+
+ while (count <= 3 || (count <= 100 && currentTime() < end)) {
+ final String lastText = text.toString();
+ text.append(Integer.toString(count % 10));
+ selenium.type(inputText, text.toString());
+ final long eventTime = currentTime();
+ selenium.fireEvent(inputText, Event.KEYUP);
+ Wait.dontFail().interval(delay / 4).timeout(delay).until(
+ new Condition() {
+ public boolean isTrue() {
+ String actualText = selenium
+ .getText(outputText);
+ long currentTime = currentTime();
+ Assert.assertTrue(currentTime >= eventTime
+ + delay
+ || lastText.equals(actualText));
+ return currentTime >= eventTime + delay;
+ }
+ });
+ waitForTextEquals(outputText, text.toString());
+
+ String actualCount = Integer.toString(count);
+ Assert.assertEquals(actualCount, selenium
+ .getText(outputEventsCount));
+ Assert.assertEquals(actualCount, selenium
+ .getText(outputRequestsCount));
+ Assert.assertEquals(actualCount, selenium
+ .getText(outputDOMUpdatesCount));
+
+ count++;
+ }
+ }
+ }
+
+ private final long currentTime() {
+ return System.currentTimeMillis();
+ }
+
+ private void setQueue(int delay, boolean ignoreDuplicatedResponses,
+ boolean disableQueue) {
+ final String inputRequestDelay = getLoc("queue-settings--input--request-delay");
+ final String checkboxIgnoreDupResponces = getLoc("queue-settings--checkbox--ignore-dup-responses");
+ final String checkboxDisableQueue = getLoc("queue-settings--checkbox--disable-queue");
+ final String buttonApply = getLoc("queue-settings--button--apply");
+
+ selenium.type(inputRequestDelay, Integer.toString(delay));
+ check(checkboxIgnoreDupResponces, ignoreDuplicatedResponses);
+ check(checkboxDisableQueue, disableQueue);
+ selenium.click(buttonApply);
+ selenium.waitForPageToLoad(Long.toString(Wait.DEFAULT_TIMEOUT));
+ scrollIntoView(header, true);
+ }
+
+ private void check(String locator, boolean check) {
+ if (check) {
+ selenium.check(locator);
+ } else {
+ selenium.uncheck(locator);
+ }
+ }
+
+ private void fastTyping() {
+ StringBuffer text = new StringBuffer();
+ final String charToType = getMess("queue-settings--char-to-type");
+
+ for (int i = 1; i <= 75; i++) {
+ text.append(charToType);
+ selenium.type(inputText, text.toString());
+ selenium.fireEvent(inputText, Event.KEYUP);
+ }
+
+ waitModelUpdate.waitForTimeout();
+ }
+}
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/queue/QueueTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/queue/QueueTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/queue/QueueTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,39 @@
+package org.jboss.richfaces.integrationTest.queue;
+
+import junit.framework.Assert;
+
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.testng.annotations.Test;
+
+/**
+ * @author <a href="mailto:lfryc@redhat.com">Lukas Fryc</a>
+ * @version $Revision$
+ */
+public class QueueTestCase extends AbstractSeleniumRichfacesTestCase {
+ /**
+ * Opens specified page
+ */
+ private void openPage() {
+ selenium.open(contextPath + "/richfaces/queue.jsf?c=queue&tab=usage");
+ }
+
+ private String tableHeader = getLoc("queue--table-header");
+
+ @Test
+ public void simpleQueueImagesTest() {
+ openPage();
+
+ scrollIntoView(tableHeader, true);
+
+ int[] order = new int[] { 3, 7, 15, 3, 15 };
+
+ for (int i = 0; i < order.length; i++) {
+ selenium.click(formatLoc("queue--image-button", order[i]));
+
+ waitFor(1000);
+
+ Assert.assertTrue(selenium.isElementPresent(formatLoc(
+ "queue--item", order[i])));
+ }
+ }
+}
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/repeat/RepeatTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/repeat/RepeatTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/repeat/RepeatTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,100 @@
+package org.jboss.richfaces.integrationTest.repeat;
+
+import junit.framework.Assert;
+
+import org.jboss.richfaces.integrationTest.AbstractDataIterationTestCase;
+import org.jboss.test.selenium.waiting.*;
+import org.testng.annotations.Test;
+
+/**
+ * @author <a href="mailto:lfryc@redhat.com">Lukas Fryc</a>
+ * @version $Revision$
+ */
+public class RepeatTestCase extends AbstractDataIterationTestCase {
+ /**
+ * Opens specified page
+ */
+ public void openPage() {
+ selenium.allowNativeXpath("true");
+
+ selenium.open(format("{0}/{1}", contextPath, PAGE));
+
+ scrollIntoView(header, true);
+ }
+
+ private final String PAGE = "richfaces/repeat.jsf?c=repeat&tab=usage";
+ private final String header = getLoc("repeat--header");
+ private final String inputsProposedPrice = getLoc("repeat--inputs--proposed-price");
+ private final String selectsReason = getLoc("repeat--selects--reason");
+ private final String outputsSalesCost = getLoc("repeat--outputs--sales-cost");
+ private final String outputsGrossMargin = getLoc("repeat--outputs--gross-margin");
+
+ @Test
+ public void functionalTest() {
+ openPage();
+
+ int rows = selenium.getXpathCount(format(inputsProposedPrice, 0)).intValue();
+
+ String[] grossMargins = new String[rows];
+ // two run through all rows
+ for (int instance = 0; instance < rows * 2; instance++) {
+ final boolean isFirstIteration = (instance < rows);
+ final int row = 1 + (instance % rows);
+ final String inputProposedPrice = format(inputsProposedPrice, row);
+ final String selectReason = format(selectsReason, row);
+ final String outputGrossMargin = format(outputsGrossMargin, row);
+
+ int difference = (row%2==0 ? 1 : -1) * (instance%3);
+
+ double salesCost = Double.parseDouble(selenium.getText(format(outputsSalesCost, row)));
+ double proposedPrice = salesCost + difference;
+
+ String grossMarginString = selenium.getText(outputGrossMargin);
+
+ if (!isFirstIteration) {
+ Assert.assertEquals(grossMarginString, grossMargins[row-1]);
+ }
+
+ selenium.type(inputProposedPrice, Double.toString(proposedPrice));
+ if (isFirstIteration) {
+ Wait.waitForChange("", new Retrieve<String>() {
+ public String retrieve() {
+ return selenium.getValue(selectReason);
+ }
+ });
+ } else {
+ waitForTextChanges(outputGrossMargin, grossMarginString);
+ }
+
+ int options = selenium.getXpathCount(selectReason + "/*[@value]").intValue();
+ Assert.assertTrue(options > 0);
+ selenium.select(selectReason, format("index={0}", row % options));
+
+ grossMarginString = selenium.getText(outputGrossMargin);
+
+ double grossMargin = parseGrossMargin(grossMarginString);
+
+ if (difference > 0) {
+ Assert.assertTrue(grossMargin > 0);
+ } else if (difference < 0) {
+ Assert.assertTrue(grossMargin < 0);
+ } else {
+ Assert.assertTrue(grossMargin == 0);
+ }
+
+ grossMargins[row-1] = grossMarginString;
+ }
+
+ for (int row = 1; row <= rows; row++) {
+ final String outputGrossMargin = format(outputsGrossMargin, row);
+
+ String grossMarginString = selenium.getText(outputGrossMargin);
+ Assert.assertTrue(grossMarginString.equals(grossMargins[row-1]));
+ }
+ }
+
+ private double parseGrossMargin(String string) {
+ string = string.replaceFirst("\\$", "");
+ return Double.parseDouble(string);
+ }
+}
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/script/ScriptTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/script/ScriptTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/script/ScriptTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,126 @@
+package org.jboss.richfaces.integrationTest.script;
+
+import junit.framework.Assert;
+
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.jboss.test.selenium.waiting.Condition;
+import org.jboss.test.selenium.waiting.Wait;
+import org.testng.annotations.Test;
+
+/**
+ * @author <a href="mailto:lfryc@redhat.com">Lukas Fryc</a>
+ * @version $Revision$
+ */
+public class ScriptTestCase extends AbstractSeleniumRichfacesTestCase {
+ /**
+ * Opens specified page
+ */
+ private void openPage() {
+ selenium.open(contextPath
+ + "/richfaces/script.jsf?c=loadScript&tab=usage");
+ scrollIntoView(header, true);
+ }
+
+ private String header = getLoc("script--header");
+ private String buttonHide = getLoc("script--button--hide");
+ private String buttonShow = getLoc("script--button--show");
+ private String inputName = getLoc("script--input--name");
+ private String inputJob = getLoc("script--input--job");
+ private String buttonSubmit = getLoc("script--button--submit");
+ private String outputName = getLoc("script--output--name");
+ private String outputJob = getLoc("script--output--job");
+ private String panelMyPanel = getLoc("script--panel--mypanel");
+ private String messName = getMess("script--input--name");
+ private String messJob = getMess("script--input--job");
+ private String prefixName = getMess("script--regexp--name-prefix");
+ private String prefixJob = getMess("script--regexp--job-prefix");
+
+ @Test
+ public void testHide() {
+ openPage();
+
+ hide();
+ }
+
+ @Test
+ public void testHideAndShow() {
+ openPage();
+
+ hide();
+ show();
+ }
+
+ @Test
+ public void testFillIn() {
+ openPage();
+
+ fillIn();
+ submit();
+ validateOutput();
+ }
+
+ @Test
+ public void testFillInHideAndShow() {
+ testFillIn();
+ hide();
+ show();
+ validateOutput();
+ submit();
+ validateOutput();
+ }
+
+ private void fillIn() {
+ selenium.type(inputName, messName);
+ selenium.type(inputJob, messJob);
+ }
+
+ private void submit() {
+ // remember output values before submit
+ final String name = getName();
+ final String job = getJob();
+
+ // click on Submit
+ selenium.click(buttonSubmit);
+
+ // wait until output changes or 5 sec
+ Wait.dontFail().timeout(5000).until(new Condition() {
+ public boolean isTrue() {
+ // name or job changes
+ return !name.equals(getName()) || !job.equals(getJob());
+ }
+ });
+ }
+
+ private void validateOutput() {
+ Assert.assertEquals(messName, getName());
+ Assert.assertEquals(messJob, getJob());
+ }
+
+ private String getName() {
+ return selenium.getText(outputName).replaceFirst(prefixName, "");
+ }
+
+ private String getJob() {
+ return selenium.getText(outputJob).replaceFirst(prefixJob, "");
+ }
+
+ private void hide() {
+ selenium.click(buttonHide);
+
+ Wait.until(new Condition() {
+ public boolean isTrue() {
+ return "none".equals(getStyle(panelMyPanel, "display"));
+ }
+ });
+ }
+
+ private void show() {
+ selenium.click(buttonShow);
+
+ Wait.until(new Condition() {
+ public boolean isTrue() {
+ return "block".equals(getStyle(panelMyPanel, "display"));
+ }
+ });
+ }
+}
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/separator/SeparatorTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/separator/SeparatorTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/separator/SeparatorTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,177 @@
+package org.jboss.richfaces.integrationTest.separator;
+
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.fail;
+
+import java.io.IOException;
+import java.security.NoSuchAlgorithmException;
+
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.jboss.test.selenium.utils.URLUtils;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+/**
+ * Test case that tests progress bar.
+ *
+ * @author <a href="mailto:ppitonak@redhat.com">Pavol Pitonak</a>
+ * @version $Revision$
+ */
+public class SeparatorTestCase extends AbstractSeleniumRichfacesTestCase {
+
+ // messages
+ private final String MSG_COMPONENT_DESCRIPTION = getMess("COMPONENT_DESCRIPTION");
+ private final String MSG_HEIGHT_OF_SEPARATOR = getMess("HEIGHT_OF_SEPARATOR");
+ private final String MSG_WIDTH_OF_SEPARATOR = getMess("WIDTH_OF_SEPARATOR");
+ private final String MSG_HASH_CODE = getMess("HASH_CODE");
+
+ // locators
+ private final String LOC_EXAMPLE_HEADER = getLoc("EXAMPLE_HEADER");
+ private final String LOC_SEPARATOR_N = getLoc("SEPARATOR_N");
+
+ /**
+ * Tests the first separator. It checks both height of the separator and
+ * hash code of the image used in separator.
+ */
+ @Test
+ public void testFirstSeparator() {
+ String text = getStyle(String.format(LOC_SEPARATOR_N, 1), "height");
+ assertEquals(text, "6px", MSG_HEIGHT_OF_SEPARATOR);
+
+ text = getSeparatorHash(String.format(LOC_SEPARATOR_N, 1) + "@style");
+ assertEquals(text, "c8568515d1a22227648977798c87cfb0", MSG_HASH_CODE);
+ }
+
+ /**
+ * Tests the second separator. It checks height of the separator, width of
+ * the separator, and hash code of the image used in separator.
+ */
+ @Test
+ public void testSecondSeparator() {
+ String text = getStyle(String.format(LOC_SEPARATOR_N, 2), "height");
+ assertEquals(text, "8px", MSG_HEIGHT_OF_SEPARATOR);
+
+ double widthFull = Double.parseDouble(getStyle(
+ String.format(LOC_SEPARATOR_N, 1), "width").replace("px", ""));
+ double width75 = Double.parseDouble(getStyle(
+ String.format(LOC_SEPARATOR_N, 2), "width").replace("px", ""));
+
+ assertEquals(width75, widthFull * 0.75, MSG_WIDTH_OF_SEPARATOR);
+
+ text = getSeparatorHash(String.format(LOC_SEPARATOR_N, 2) + "@style");
+ assertEquals(text, "350f395b0570f1c1cb528ef18299dd5d", MSG_HASH_CODE);
+ }
+
+ /**
+ * Tests the third separator. It checks both height of the separator and
+ * hash code of the image used in separator.
+ */
+ @Test
+ public void testThirdSeparator() {
+ String text = getStyle(String.format(LOC_SEPARATOR_N, 3), "height");
+ assertEquals(text, "2px", MSG_HEIGHT_OF_SEPARATOR);
+
+ // FIXME the hash code is not valid
+ // text = getSeparatorHash(String.format(LOC_SEPARATOR_N, 3) +
+ // "@style");
+ // assertEquals(text, "0bf81058de26083a10657f2db675e3ea",
+ // MSG_HASH_CODE);
+ }
+
+ /**
+ * Tests the fourth separator. It checks both height of the separator and
+ * hash code of the image used in separator.
+ */
+ @Test
+ public void testFourthSeparator() {
+ String text = getStyle(String.format(LOC_SEPARATOR_N, 4), "height");
+ assertEquals(text, "2px", MSG_HEIGHT_OF_SEPARATOR);
+
+ text = getSeparatorHash(String.format(LOC_SEPARATOR_N, 4) + "@style");
+ assertEquals(text, "94779ca2ce53f57796d3704454cabb2f", MSG_HASH_CODE);
+ }
+
+ /**
+ * Tests the fifth separator. It checks both height of the separator and
+ * hash code of the image used in separator.
+ */
+ @Test
+ public void testFifthSeparator() {
+ String text = getStyle(String.format(LOC_SEPARATOR_N, 5), "height");
+ assertEquals(text, "4px", MSG_HEIGHT_OF_SEPARATOR);
+
+ text = getSeparatorHash(String.format(LOC_SEPARATOR_N, 5) + "@style");
+ assertEquals(text, "14c1dfe353747b738a586a51070f631a", MSG_HASH_CODE);
+ }
+
+ /**
+ * Tests the sixth separator. It checks both height of the separator and
+ * hash code of the image used in separator.
+ */
+ @Test
+ public void testSixthSeparator() {
+ String text = getStyle(String.format(LOC_SEPARATOR_N, 6), "height");
+ assertEquals(text, "2px", MSG_HEIGHT_OF_SEPARATOR);
+
+ text = getSeparatorHash(String.format(LOC_SEPARATOR_N, 6) + "@style");
+ assertEquals(text, "6ab8ba31211c2a0ecbbeff9cc61bc950", MSG_HASH_CODE);
+ }
+
+ /**
+ * Tests the "View Source" in the example. It checks that the source code is
+ * not visible, clicks on the link, and checks 7 lines of source code.
+ */
+ @Test
+ public void testFirstExampleSource() {
+ String[] strings = new String[] {
+ "<ui:composition xmlns=\"http://www.w3.org/1999/xhtml\"",
+ "<rich:separator/>",
+ "<rich:separator lineType=\"beveled\" height=\"8\" width=\"75%\" align=\"center\"/>",
+ "<rich:separator height=\"2\" lineType=\"dotted\"/><br/>",
+ "<rich:separator height=\"2\" lineType=\"dashed\"/><br/>",
+ "<rich:separator height=\"4\" lineType=\"double\"/><br/>",
+ "<rich:separator height=\"2\" lineType=\"solid\"/><br/>", };
+
+ abstractTestSource(1, "View Source", strings);
+ }
+
+ /**
+ * Returns hash code of the separator's image.
+ *
+ * @param locator
+ * style attribute of the separator
+ */
+ private String getSeparatorHash(String locator) {
+ // create URL of the image
+ String tmp = selenium.getAttribute(locator);
+
+ int index = tmp.indexOf("background-image:");
+ tmp = tmp.substring(index + 22);
+ tmp = tmp.substring(0, tmp.indexOf(");"));
+
+ index = selenium.getLocation().indexOf('/', 7);
+ String url = selenium.getLocation().substring(0, index);
+ url += tmp;
+
+ try {
+ tmp = URLUtils.resourceMd5Digest(url);
+ } catch (NoSuchAlgorithmException e) {
+ e.printStackTrace();
+ fail(e.getMessage());
+ } catch (IOException e) {
+ e.printStackTrace();
+ fail(e.getMessage());
+ }
+
+ return tmp;
+ }
+
+ /**
+ * Loads the page containing the component.
+ */
+ @BeforeMethod
+ private void loadPage() {
+ super.loadPage("richOutputs", 7, 1, MSG_COMPONENT_DESCRIPTION);
+ scrollIntoView(LOC_EXAMPLE_HEADER, true);
+ }
+}
Property changes on: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/separator/SeparatorTestCase.java
___________________________________________________________________
Name: svn:executable
+ *
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/simpleTogglePanel/SimpleTogglePanelTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/simpleTogglePanel/SimpleTogglePanelTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/simpleTogglePanel/SimpleTogglePanelTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,188 @@
+package org.jboss.richfaces.integrationTest.simpleTogglePanel;
+
+import static org.testng.Assert.assertFalse;
+import static org.testng.Assert.assertTrue;
+
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+/**
+ * Test case that tests simple toggle bar.
+ *
+ * @author <a href="mailto:ppitonak@redhat.com">Pavol Pitonak</a>
+ * @version $Revision$
+ */
+public class SimpleTogglePanelTestCase extends
+ AbstractSeleniumRichfacesTestCase {
+
+ // messages
+ private final String MSG_COMPONENT_DESCRIPTION = getMess("COMPONENT_DESCRIPTION");
+ private final String MSG_PANEL_HEADER = getMess("PANEL_HEADER");
+ private final String MSG_LEFT_ARROWS_SHOULD_BE_VISIBLE = getMess("LEFT_ARROWS_SHOULD_BE_VISIBLE");
+ private final String MSG_LEFT_ARROWS_SHOULD_NOT_BE_VISIBLE = getMess("LEFT_ARROWS_SHOULD_NOT_BE_VISIBLE");
+ private final String MSG_RIGHT_ARROWS_SHOULD_BE_VISIBLE = getMess("RIGHT_ARROWS_SHOULD_BE_VISIBLE");
+ private final String MSG_RIGHT_ARROWS_SHOULD_NOT_BE_VISIBLE = getMess("RIGHT_ARROWS_SHOULD_NOT_BE_VISIBLE");
+ private final String MSG_BODY_SHOULD_BE_VISIBLE = getMess("BODY_SHOULD_BE_VISIBLE");
+ private final String MSG_BODY_SHOULD_NOT_BE_VISIBLE = getMess("BODY_SHOULD_NOT_BE_VISIBLE");
+
+ // locators
+ private final String LOC_EXAMPLE_1_HEADER = getLoc("EXAMPLE_1_HEADER");
+ private final String LOC_EXAMPLE_2_HEADER = getLoc("EXAMPLE_2_HEADER");
+ private final String LOC_FIRST_EXAMPLE_HEADER = getLoc("FIRST_EXAMPLE_HEADER");
+ private final String LOC_FIRST_EXAMPLE_ARROWS_LEFT = formatLoc("FIRST_EXAMPLE_ARROWS_LEFT_RELATIVE_TO_HEADER", LOC_FIRST_EXAMPLE_HEADER);
+ private final String LOC_FIRST_EXAMPLE_ARROWS_RIGHT = formatLoc("FIRST_EXAMPLE_ARROWS_RIGHT_RELATIVE_TO_HEADER", LOC_FIRST_EXAMPLE_HEADER);
+ private final String LOC_FIRST_EXAMPLE_BODY = getLoc("FIRST_EXAMPLE_BODY");
+ private final String LOC_SECOND_EXAMPLE_N_HEADER = getLoc("SECOND_EXAMPLE_N_HEADER");
+ private final String LOC_SECOND_EXAMPLE_N_ARROWS_LEFT = formatLoc("SECOND_EXAMPLE_N_ARROWS_LEFT_RELATIVE_TO_HEADER", LOC_SECOND_EXAMPLE_N_HEADER);
+ private final String LOC_SECOND_EXAMPLE_N_ARROWS_RIGHT = formatLoc("SECOND_EXAMPLE_N_ARROWS_RIGHT_RELATIVE_TO_HEADER", LOC_SECOND_EXAMPLE_N_HEADER);
+ private final String LOC_SECOND_EXAMPLE_N_BODY = getLoc("SECOND_EXAMPLE_N_BODY");
+
+ /**
+ * Tests the first example. It verifies header's text and checks that there
+ * are right arrows displayed in the right side. Then it checks that the
+ * panel's content is displayed and clicks header to toggle panel. Then it
+ * checks again arrows and verifies that the content is hidden.
+ */
+ @Test
+ public void testFirstExample() {
+ scrollIntoView(LOC_EXAMPLE_1_HEADER, true);
+ String header = "Add AJAX capability to existing JSF applications";
+
+ String text = selenium.getText(LOC_FIRST_EXAMPLE_HEADER);
+ assertTrue(text.contains(header), String.format(MSG_PANEL_HEADER,
+ header));
+
+ assertTrue(isDisplayed(LOC_FIRST_EXAMPLE_ARROWS_LEFT),
+ MSG_LEFT_ARROWS_SHOULD_BE_VISIBLE);
+ assertFalse(isDisplayed(LOC_FIRST_EXAMPLE_ARROWS_RIGHT),
+ MSG_RIGHT_ARROWS_SHOULD_NOT_BE_VISIBLE);
+ assertTrue(isDisplayed(LOC_FIRST_EXAMPLE_BODY),
+ MSG_BODY_SHOULD_BE_VISIBLE);
+
+ selenium.click(LOC_FIRST_EXAMPLE_HEADER);
+
+ assertFalse(isDisplayed(LOC_FIRST_EXAMPLE_ARROWS_LEFT),
+ MSG_LEFT_ARROWS_SHOULD_NOT_BE_VISIBLE);
+ assertTrue(isDisplayed(LOC_FIRST_EXAMPLE_ARROWS_RIGHT),
+ MSG_RIGHT_ARROWS_SHOULD_BE_VISIBLE);
+ assertFalse(isDisplayed(LOC_FIRST_EXAMPLE_BODY),
+ MSG_BODY_SHOULD_NOT_BE_VISIBLE);
+ }
+
+ /**
+ * Tests the second example -- server switch type. It verifies header's text
+ * and checks that there are right arrows displayed in the right side. Then
+ * it checks that the panel's content is displayed and clicks header to
+ * toggle panel. Then it checks again arrows and verifies that the content
+ * is hidden.
+ */
+ @Test
+ public void testSecondExampleServerSwitch() {
+ abstractTestPanelInSecondExample(1, "Server Switch Type");
+ }
+
+ /**
+ * Tests the second example -- ajax switch type. It verifies header's text
+ * and checks that there are right arrows displayed in the right side. Then
+ * it checks that the panel's content is displayed and clicks header to
+ * toggle panel. Then it checks again arrows and verifies that the content
+ * is hidden.
+ */
+ @Test
+ public void testSecondExampleAjaxSwitch() {
+ abstractTestPanelInSecondExample(2, "Ajax Switch Type");
+ }
+
+ /**
+ * Tests the second example -- client switch type. It verifies header's text
+ * and checks that there are right arrows displayed in the right side. Then
+ * it checks that the panel's content is displayed and clicks header to
+ * toggle panel. Then it checks again arrows and verifies that the content
+ * is hidden.
+ */
+ @Test
+ public void testSecondExampleClientSwitch() {
+ abstractTestPanelInSecondExample(3, "Client Switch Type");
+ }
+
+ /**
+ * Tests the "View Source" in the first example. It checks that the source
+ * code is not visible, clicks on the link, and checks 5 lines of source
+ * code.
+ */
+ @Test
+ public void testFirstExampleSource() {
+ String[] strings = new String[] {
+ "<ui:composition xmlns=\"http://www.w3.org/1999/xhtml\"",
+ "<rich:simpleTogglePanel switchType=\"client\" label=\"Add AJAX capability to existing JSF applications\">",
+ "The framework is implemented by using a component library. The library",
+ "</rich:simpleTogglePanel>", "</ui:composition>", };
+
+ abstractTestSource(1, "View Source", strings);
+ }
+
+ /**
+ * Tests the "View Source" in the second example. It checks that the source
+ * code is not visible, clicks on the link, and checks 7 lines of source
+ * code.
+ */
+ @Test
+ public void testSecondExampleSource() {
+ String[] strings = new String[] {
+ "<ui:composition xmlns=\"http://www.w3.org/1999/xhtml\"",
+ "<h:form>",
+ "<h:panelGrid columns=\"3\" width=\"100%\" columnClasses=\"tpanels,tpanels,tpanels\">",
+ "<rich:simpleTogglePanel switchType=\"server\" label=\"Server Switch Type\" height=\"90px\">",
+ "<rich:simpleTogglePanel switchType=\"ajax\" label=\"Ajax Switch Type\" height=\"90px\">",
+ "<rich:simpleTogglePanel switchType=\"client\" label=\"Client Switch Type\" height=\"90px\">",
+ "</rich:simpleTogglePanel>", };
+
+ abstractTestSource(2, "View Source", strings);
+ }
+
+ /**
+ * Abstract method that is parametrized in tests.
+ *
+ * @param index
+ * which panel should be tested
+ * @param header
+ * a string appearing in panel's header
+ */
+ private void abstractTestPanelInSecondExample(int index, String header) {
+ scrollIntoView(LOC_EXAMPLE_2_HEADER, true);
+
+ String text = selenium.getText(String.format(
+ LOC_SECOND_EXAMPLE_N_HEADER, index));
+ assertTrue(text.contains(header), String.format(MSG_PANEL_HEADER,
+ header));
+
+ assertTrue(isDisplayed(String.format(LOC_SECOND_EXAMPLE_N_ARROWS_LEFT,
+ index)), MSG_LEFT_ARROWS_SHOULD_BE_VISIBLE);
+ assertFalse(isDisplayed(String.format(
+ LOC_SECOND_EXAMPLE_N_ARROWS_RIGHT, index)),
+ MSG_RIGHT_ARROWS_SHOULD_NOT_BE_VISIBLE);
+ // client type is a bit different
+ assertTrue(isDisplayed(String.format(LOC_SECOND_EXAMPLE_N_BODY, index,
+ index == 3 ? 3 : 2)), MSG_BODY_SHOULD_BE_VISIBLE);
+
+ selenium.click(String.format(LOC_SECOND_EXAMPLE_N_HEADER, index));
+ waitFor(2000);
+
+ assertFalse(isDisplayed(String.format(LOC_SECOND_EXAMPLE_N_ARROWS_LEFT,
+ index)), MSG_LEFT_ARROWS_SHOULD_NOT_BE_VISIBLE);
+ assertTrue(isDisplayed(String.format(LOC_SECOND_EXAMPLE_N_ARROWS_RIGHT,
+ index)), MSG_RIGHT_ARROWS_SHOULD_BE_VISIBLE);
+ // client type is a bit different
+ assertFalse(isDisplayed(String.format(LOC_SECOND_EXAMPLE_N_BODY, index,
+ index == 3 ? 3 : 2)), MSG_BODY_SHOULD_NOT_BE_VISIBLE);
+ }
+
+ /**
+ * Loads the page containing the component.
+ */
+ @BeforeMethod
+ private void loadPage() {
+ super.loadPage("richOutputs", 8, 1, MSG_COMPONENT_DESCRIPTION);
+ }
+}
Property changes on: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/simpleTogglePanel/SimpleTogglePanelTestCase.java
___________________________________________________________________
Name: svn:executable
+ *
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/spacer/SpacerTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/spacer/SpacerTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/spacer/SpacerTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,79 @@
+package org.jboss.richfaces.integrationTest.spacer;
+
+import static org.testng.Assert.assertEquals;
+
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+/**
+ * Test case that tests spacer.
+ *
+ * @author <a href="mailto:ppitonak@redhat.com">Pavol Pitonak</a>
+ * @version $Revision$
+ */
+public class SpacerTestCase extends AbstractSeleniumRichfacesTestCase {
+
+ // messages
+ private final String MSG_COMPONENT_DESCRIPTION = getMess("COMPONENT_DESCRIPTION");
+ private final String MSG_SPACER_HEIGHT = getMess("SPACER_HEIGHT");
+ private final String MSG_SPACER_WIDTH = getMess("SPACER_WIDTH");
+
+ // locators
+ private final String LOC_EXAMPLE_HEADER = getLoc("EXAMPLE_HEADER");
+ private final String LOC_FIRST_SPACER_HEIGHT = getLoc("FIRST_SPACER_HEIGHT");
+ private final String LOC_FIRST_SPACER_WIDTH = getLoc("FIRST_SPACER_WIDTH");
+ private final String LOC_SECOND_SPACER_HEIGHT = getLoc("SECOND_SPACER_HEIGHT");
+ private final String LOC_SECOND_SPACER_WIDTH = getLoc("SECOND_SPACER_WIDTH");
+
+ /**
+ * Tests the first spacer. Verifies its width and height.
+ */
+ @Test
+ public void testFirstSpacer() {
+ int num = Integer.parseInt(selenium
+ .getAttribute(LOC_FIRST_SPACER_HEIGHT));
+ assertEquals(num, 10, MSG_SPACER_HEIGHT);
+
+ num = Integer.parseInt(selenium.getAttribute(LOC_FIRST_SPACER_WIDTH));
+ assertEquals(num, 100, MSG_SPACER_WIDTH);
+ }
+
+ /**
+ * Tests the second spacer. Verifies its width and height.
+ */
+ @Test
+ public void testSecondSpacer() {
+ int num = Integer.parseInt(selenium
+ .getAttribute(LOC_SECOND_SPACER_HEIGHT));
+ assertEquals(num, 5, MSG_SPACER_HEIGHT);
+
+ num = Integer.parseInt(selenium.getAttribute(LOC_SECOND_SPACER_WIDTH));
+ assertEquals(num, 1, MSG_SPACER_WIDTH);
+ }
+
+ /**
+ * Tests the "View Source". It checks that the source code is not visible,
+ * clicks on the link, and checks 5 lines of source code.
+ */
+ @Test
+ public void testFirstExampleSource() {
+ String[] strings = new String[] {
+ "<ui:composition xmlns=\"http://www.w3.org/1999/xhtml\"",
+ "background-color: #{a4jSkin.panelBorderColor};",
+ "There is a spacer 100x10<rich:spacer width=\"100\" height=\"10\" title=\"Here is a spacer...\"/>before this.",
+ "<div class=\"div_near_spacer\" />",
+ "<rich:spacer width=\"1\" height=\"5\" title=\"Here is a spacer...\"/>", };
+
+ abstractTestSource(1, "View Source", strings);
+ }
+
+ /**
+ * Loads the page containing the component.
+ */
+ @BeforeMethod
+ private void loadPage() {
+ super.loadPage("richOutputs", 9, 1, MSG_COMPONENT_DESCRIPTION);
+ scrollIntoView(LOC_EXAMPLE_HEADER, true);
+ }
+}
Property changes on: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/spacer/SpacerTestCase.java
___________________________________________________________________
Name: svn:executable
+ *
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/spinner/SpinnerTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/spinner/SpinnerTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/spinner/SpinnerTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,256 @@
+package org.jboss.richfaces.integrationTest.spinner;
+
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertTrue;
+
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+/**
+ * Test case that tests the spinner component.
+ *
+ * @author <a href="mailto:ppitonak@redhat.com">Pavol Pitonak</a>
+ * @version $Revision$
+ */
+public class SpinnerTestCase extends
+ AbstractSeleniumRichfacesTestCase {
+
+ // upper spinner
+ private final String upperInput = "//fieldset[1]/div/form/table[1]/tbody/tr/td[1]/input";
+ private final String upperUpArrow = "//fieldset[1]/div/form/table[1]/tbody/tr/td[2]/table/tbody/tr[1]/td/input";
+ private final String upperDownArrow = "//fieldset[1]/div/form/table[1]/tbody/tr/td[2]/table/tbody/tr[2]/td/input";
+
+ // lower spinner
+ private final String lowerInput = "//fieldset[1]/div/form/table[2]/tbody/tr/td[1]/input";
+ private final String lowerUpArrow = "//fieldset[1]/div/form/table[2]/tbody/tr/td[2]/table/tbody/tr[1]/td/input";
+ private final String lowerDownArrow = "//fieldset[1]/div/form/table[2]/tbody/tr/td[2]/table/tbody/tr[2]/td/input";
+
+ /**
+ * Tests the initial state of both spinners. Both should be set to 50.
+ */
+ @Test
+ public void testInitialState() {
+ assertTrue(selenium.isElementPresent(upperInput),
+ "Upper input field is not present.");
+ assertTrue(selenium.isElementPresent(upperUpArrow),
+ "Upper arrow up is not present.");
+ assertTrue(selenium.isElementPresent(upperDownArrow),
+ "Upper arrow down is not present.");
+ assertTrue(selenium.isElementPresent(lowerInput),
+ "Lower input field is not present.");
+ assertTrue(selenium.isElementPresent(lowerUpArrow),
+ "Lower arrow up is not present.");
+ assertTrue(selenium.isElementPresent(lowerDownArrow),
+ "Lower arrow down is not present.");
+
+ int number = Integer.parseInt(selenium.getValue(upperInput));
+ assertEquals(number, 50, "Content of upper spinner.");
+
+ number = Integer.parseInt(selenium.getValue(lowerInput));
+ assertEquals(number, 50, "Content of lower spinner.");
+ }
+
+ /**
+ * Tests clicking on the up arrow of the upper spinner.
+ */
+ @Test
+ public void testUpperClickUp() {
+ int oldValue = Integer.parseInt(selenium.getValue(upperInput));
+
+ selenium.clickAt(upperUpArrow, "0,0");
+
+ int newValue = Integer.parseInt(selenium.getValue(upperInput));
+
+ assertEquals(newValue, oldValue + 1,
+ "The value should increase by 1 after clicking on up arrow.");
+ }
+
+ /**
+ * Tests clicking on the down arrow of the upper spinner.
+ */
+ @Test
+ public void testUpperClickDown() {
+ int oldValue = Integer.parseInt(selenium.getValue(upperInput));
+
+ selenium.clickAt(upperDownArrow, "0,0");
+
+ int newValue = Integer.parseInt(selenium.getValue(upperInput));
+
+ assertEquals(newValue, oldValue - 1,
+ "The value should decrease by 1 after clicking on down arrow.");
+
+ }
+
+ /**
+ * Tests clicking on the up arrow of the lower spinner.
+ */
+ @Test
+ public void testLowerClickUp() {
+ int oldValue = Integer.parseInt(selenium.getValue(lowerInput));
+
+ selenium.clickAt(lowerUpArrow, "0,0");
+
+ int newValue = Integer.parseInt(selenium.getValue(lowerInput));
+
+ assertEquals(newValue, oldValue + 10,
+ "The value should increase by 10 after clicking on up arrow.");
+ }
+
+ /**
+ * Tests clicking on the down arrow of the lower spinner.
+ */
+ @Test
+ public void testLowerClickDown() {
+ int oldValue = Integer.parseInt(selenium.getValue(lowerInput));
+
+ selenium.clickAt(lowerDownArrow, "0,0");
+
+ int newValue = Integer.parseInt(selenium.getValue(lowerInput));
+
+ assertEquals(newValue, oldValue - 10,
+ "The value should decrease by 10 after clicking on down arrow.");
+ }
+
+ /**
+ * Tests typing into the upper spinner. In the beginning it tries valid
+ * value (20), then a value bigger than maximum (2000), a value lower than
+ * minimum (-23), a decimal value (34.5), and a string ("aaa").
+ */
+ @Test
+ public void testTypeToUpper() {
+ selenium.type(upperInput, "20");
+ Number newValue = Integer.parseInt(selenium.getValue(upperInput));
+ assertEquals(newValue, 20, "Value in the input field did not change.");
+
+ selenium.type(upperInput, "2000");
+ newValue = Integer.parseInt(selenium.getValue(upperInput));
+ assertEquals(newValue, 100,
+ "Input field should contain 100 after 2000 was typed.");
+
+ selenium.type(upperInput, "-23");
+ newValue = Integer.parseInt(selenium.getValue(upperInput));
+ assertEquals(newValue, 0,
+ "Input field should contain 0 after -23 was typed.");
+
+ selenium.type(upperInput, "34.5");
+ newValue = Double.parseDouble(selenium.getValue(upperInput));
+ assertEquals(newValue, 34.5,
+ "Input field should contain 34.5 after 34.5 was typed.");
+
+ Number oldValue = Double.parseDouble(selenium.getValue(upperInput));
+ selenium.type(upperInput, "aaa");
+ newValue = Double.parseDouble(selenium.getValue(upperInput));
+ assertEquals(newValue, oldValue, "Input field should contain "
+ + oldValue + " after 'aaa' was typed.");
+ }
+
+ /**
+ * Tests typing into the lower spinner. In the beginning it tries valid
+ * value (20), then a value bigger than maximum (2000), a value lower than
+ * minimum (-23), a decimal value (34.5), and a string ("aaa").
+ */
+ @Test
+ public void testTypeToLower() {
+ selenium.type(upperInput, "20");
+ Number newValue = Integer.parseInt(selenium.getValue(upperInput));
+ assertEquals(newValue, 20, "Value in the input field did not change.");
+
+ selenium.type(upperInput, "2000");
+ newValue = Integer.parseInt(selenium.getValue(upperInput));
+ assertEquals(newValue, 100,
+ "Input field should contain 100 after 2000 was typed.");
+
+ selenium.type(upperInput, "-23");
+ newValue = Integer.parseInt(selenium.getValue(upperInput));
+ assertEquals(newValue, 0,
+ "Input field should contain 0 after -23 was typed.");
+
+ selenium.type(upperInput, "34.5");
+ newValue = Double.parseDouble(selenium.getValue(upperInput));
+ assertEquals(newValue, 34.5,
+ "Input field should contain 34.5 after 34.5 was typed.");
+
+ Number oldValue = Double.parseDouble(selenium.getValue(upperInput));
+ selenium.type(upperInput, "aaa");
+ newValue = Double.parseDouble(selenium.getValue(upperInput));
+ assertEquals(newValue, oldValue, "Input field should contain "
+ + oldValue + " after 'aaa' was typed.");
+ }
+
+ /**
+ * Tests value overflow. It clicks 51 times on the up button of the upper
+ * spinner and verifies that the value changed to 0. Then it clicks 6 times
+ * on the up button of the lower spinner and checks that the value changed
+ * to 0.
+ */
+ @Test
+ public void testOverflow() {
+ // it starts at 50, maximum is 100, increment 1, it will try to click 51
+ // times
+ for (int i = 0; i < 51; i++) {
+ selenium.clickAt(upperUpArrow, "0,0");
+ }
+
+ int newValue = Integer.parseInt(selenium.getValue(upperInput));
+ assertEquals(newValue, 0, "The value should change to 0 at overflow.");
+
+ // it starts at 50, maximum is 100, increment 10, it will try to click 6
+ // times
+ for (int i = 0; i < 6; i++) {
+ selenium.clickAt(lowerUpArrow, "0,0");
+ }
+
+ newValue = Integer.parseInt(selenium.getValue(lowerInput));
+ assertEquals(newValue, 0, "The value should change to 0 at overflow.");
+ }
+
+ /**
+ * Tests value underflow. It clicks 51 times on the down button of the lower
+ * spinner and verifies that the value changed to 100. Then it clicks 6
+ * times on the down button of the lower spinner and checks that the value
+ * changed to 100.
+ */
+ @Test
+ public void testUnderflow() {
+ // it starts at 50, minimum is 0, increment 1, it will try to click 51
+ // times
+ for (int i = 0; i < 51; i++) {
+ selenium.clickAt(upperDownArrow, "0,0");
+ }
+
+ int newValue = Integer.parseInt(selenium.getValue(upperInput));
+ assertEquals(newValue, 100,
+ "The value should change to 100 at underflow.");
+
+ // it starts at 50, minimum is 0, increment 10, it will try to click 6
+ // times
+ for (int i = 0; i < 6; i++) {
+ selenium.clickAt(lowerDownArrow, "0,0");
+ }
+
+ newValue = Integer.parseInt(selenium.getValue(lowerInput));
+ assertEquals(newValue, 100,
+ "The value should change to 100 at underflow.");
+ }
+
+ /**
+ * Tests the "View Source". It checks that the source code is not visible,
+ * clicks on the link, and checks the first 2 components of source code,
+ * i.e. that the source code begins with "<ui:composition".
+ */
+ @Test
+ public void testSpinnerSource() {
+ abstractTestSource(1, 1, "<", "ui:composition");
+ }
+
+ /**
+ * Loads the page containing the calendar component.
+ */
+ @BeforeMethod
+ private void loadPage() {
+ super.loadPage("richInputs", 9,
+ "InputNumberSpinner is a highly customizable component");
+ }
+
+}
Property changes on: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/spinner/SpinnerTestCase.java
___________________________________________________________________
Name: svn:executable
+ *
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/status/StatusTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/status/StatusTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/status/StatusTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,214 @@
+/**
+ * License Agreement.
+ *
+ * JBoss RichFaces
+ *
+ * Copyright (C) 2009 Red Hat, Inc.
+ *
+ * This code is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this test suite; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+package org.jboss.richfaces.integrationTest.status;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.jboss.test.selenium.dom.Event;
+import org.jboss.test.selenium.waiting.Condition;
+import static org.testng.Assert.*;
+import org.testng.annotations.Test;
+
+/**
+ * @author <a href="mailto:lfryc@redhat.com">Lukas Fryc</a>
+ * @version $Revision$
+ */
+public class StatusTestCase extends AbstractSeleniumRichfacesTestCase {
+ /**
+ * Opens specified page
+ */
+ private void openPage() {
+ selenium.allowNativeXpath("true");
+
+ openComponent("Status");
+ openTab("Usage");
+ }
+
+ private final String LOC_FIELDSET_PAGE_PART_PREFORMATTED = getLoc("FIELDSET_PAGE_PART_PREFORMATTED");
+ private final String LOC_OUTPUT_STATUS_MESSAGE_PREFORMATTED = getLoc("OUTPUT_STATUS_MESSAGE_PREFORMATTED");
+ private final String LOC_BUTTON_REQUEST_PREFORMATTED = getLoc("BUTTON_REQUEST_PREFORMATTED");
+ private final String LOC_INPUT_NAME = getLoc("INPUT_NAME");
+ private final String LOC_INPUT_JOB = getLoc("INPUT_JOB");
+ private final String LOC_OUTPUT_TEXT = getLoc("OUTPUT_TEXT");
+
+ private final String MSG_STYLE_DISPLAY = getMsg("STYLE_DISPLAY");
+ private final String MSG_PATTERN_NAME_JOB = getMsg("PATTERN_NAME_JOB");
+
+ /**
+ * <p>
+ * This test requests update by pressing button, waiting for processing
+ * (indicates by status message's change) and finally waiting to be
+ * completed (status changes to initial state).
+ * </p>
+ *
+ * <p>
+ * This version using text like a status message for user.
+ * </p>
+ */
+ @Test
+ public void testTextStatus() {
+ doStatusTesting(1);
+ }
+
+ /**
+ * <p>
+ * For description see {@link #testTextStatus()}
+ * </p>
+ *
+ * <p>
+ * This version using image like a status message for user.
+ * </p>
+ */
+ @Test
+ public void testImageStatus() {
+ doStatusTesting(2);
+ }
+
+ /**
+ * <p>
+ * Implementation for two tests distinguished by testNumber.
+ * </p>
+ *
+ * @param testNumber
+ * version of test (1 or 2)
+ */
+ private void doStatusTesting(final int testNumber) {
+ openPage();
+ scrollIntoView(format(LOC_FIELDSET_PAGE_PART_PREFORMATTED, testNumber), true);
+
+ // PAGE COMPONENTS
+ final String locOutputStatusMessage = format(LOC_OUTPUT_STATUS_MESSAGE_PREFORMATTED, testNumber);
+ final String locButtonRequest = format(LOC_BUTTON_REQUEST_PREFORMATTED, testNumber);
+
+ // get a initial style of status field
+ final String initialStyle = getStyle(locOutputStatusMessage, MSG_STYLE_DISPLAY);
+
+ selenium.click(locButtonRequest);
+
+ // wait for style is changed to "processing" state indicates that
+ // request is in progress
+ waitModelUpdate.interval(10).failWith("Test timeouted when waiting for request moves to processing state.")
+ .until(new Condition() {
+ public boolean isTrue() {
+ String actualStyle = getStyle(locOutputStatusMessage, MSG_STYLE_DISPLAY);
+ return !initialStyle.equals(actualStyle);
+ }
+ });
+
+ // wait for style is changed back to initial state after request is
+ // complete
+ waitModelUpdate.interval(10).failWith("Timeout when waiting for request moves to complete state.").until(
+ new Condition() {
+ public boolean isTrue() {
+ String actual = getStyle(locOutputStatusMessage, MSG_STYLE_DISPLAY);
+ return initialStyle.equals(actual);
+ }
+ });
+ }
+
+ /**
+ * <p>
+ * Alternates with typing 30 characters into two inputs and waiting for
+ * status to change properly.
+ * </p>
+ *
+ * <p>
+ * Watches the correct output value.
+ * </p>
+ */
+ @Test
+ public void testInputsStatus() {
+ openPage();
+ scrollIntoView(format(LOC_FIELDSET_PAGE_PART_PREFORMATTED, 3), true);
+
+ // PAGE CONTROLS
+ final String locOutputStatusMessage = format(LOC_OUTPUT_STATUS_MESSAGE_PREFORMATTED, 3);
+
+ // init buffers for typed text for each input
+ StringBuilder textName = new StringBuilder();
+ StringBuilder textJob = new StringBuilder();
+
+ // init pattern for getting name and job from output
+ Pattern patternNameJob = Pattern.compile(MSG_PATTERN_NAME_JOB);
+
+ // get a initial value of status message's style
+ final String initialStyle = getStyle(locOutputStatusMessage, MSG_STYLE_DISPLAY);
+
+ // cycle over 30 chars and alternating between two inputs
+ for (int counter = 1; counter <= 30; counter++) {
+ // select input and it's buffered text by state of counter
+ final String selectedInput = (counter % 3 == 0) ? LOC_INPUT_NAME : LOC_INPUT_JOB;
+ final StringBuilder selectedText = (counter % 3 == 0) ? textName : textJob;
+
+ // add one char according to chars [0-9] given by cycle counter
+ selectedText.append(counter % 10);
+
+ selenium.type(selectedInput, selectedText.toString());
+ selenium.fireEvent(selectedInput, Event.KEYUP);
+
+ // wait for display-style changes to value different than initial
+ waitForDisplayChanges(locOutputStatusMessage, initialStyle, false);
+
+ // wait for display-style changes to initial value
+ waitForDisplayChanges(locOutputStatusMessage, initialStyle, true);
+
+ String outputText = selenium.getText(LOC_OUTPUT_TEXT);
+
+ // matches output to pattern declared above?
+ Matcher matcher = patternNameJob.matcher(outputText);
+ if (matcher.matches()) {
+ // output matches, name is in group(1) and job in group(2)
+ assertEquals(matcher.group(1), textName.toString(), format(
+ "Name output '{0}' doesn't equal to typed value '{1}'", matcher.group(1), textName));
+ assertEquals(matcher.group(2), textJob.toString(), format(
+ "Job output '{0}' doesn't equal to typed value '{1}'", matcher.group(2), textJob));
+ } else {
+ fail(format("Output '{0}' doesn't matches to Name/Job pattern '{1}'", outputText, patternNameJob
+ .toString()));
+ }
+ }
+ }
+
+ /**
+ * Wait for display-style changes to specified initial (resp. other than
+ * initial) value depending on what we want.
+ *
+ * @param locator
+ * of element we want watch
+ * @param initialStyle
+ * initial display-style value
+ * @param shouldEqualOldValue
+ * if true, wait for element's display-style became initialStyle;
+ * if false, wait for element's display-style became other than
+ * initialStyle
+ */
+ private void waitForDisplayChanges(final String locator, final String initialStyle,
+ final boolean shouldEqualOldValue) {
+ waitModelUpdate.interval(10).until(new Condition() {
+ public boolean isTrue() {
+ String actualStyle = getStyle(locator, MSG_STYLE_DISPLAY);
+ return !shouldEqualOldValue ^ initialStyle.equals(actualStyle);
+ }
+ });
+ }
+}
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/style/StyleTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/style/StyleTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/style/StyleTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,57 @@
+package org.jboss.richfaces.integrationTest.style;
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+import junit.framework.Assert;
+
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.jboss.test.selenium.waiting.Wait;
+import org.testng.annotations.Test;
+
+/**
+ * @author <a href="mailto:lfryc@redhat.com">Lukas Fryc</a>
+ * @version $Revision$
+ */
+public class StyleTestCase extends AbstractSeleniumRichfacesTestCase {
+ /**
+ * Opens specified page
+ */
+ private void openPage() {
+ selenium.open(contextPath
+ + "/richfaces/style.jsf?c=loadStyle&tab=usage");
+ scrollIntoView(header, true);
+ }
+
+ private String header = getLoc("style--header");
+ private String linkDeepMarine = getLoc("style--link--deep-marine");
+ private String linkBlueSky = getLoc("style--link--blue-sky");
+ private String linkJapanCherry = getLoc("style--link--japan-cherry");
+ private String tableOutput = getLoc("style--table--output");
+ private String colorDeepMarine = getMess("style--color--deep-marine");
+ private String colorBlueSky = getMess("style--color--blue-sky");
+ private String colorJapanCherry = getMess("style--color--japan-cherry");
+
+ Map<String, String> relation = new LinkedHashMap<String, String>() {
+ {
+ put(linkDeepMarine, colorDeepMarine);
+ put(linkBlueSky, colorBlueSky);
+ put(linkJapanCherry, colorJapanCherry);
+ }
+ };
+
+ @Test
+ public void testBackgroundColor() {
+ openPage();
+
+ for (final String link : relation.keySet()) {
+ final String color = relation.get(link);
+
+ selenium.click(link);
+ selenium.waitForPageToLoad(Long.toString(Wait.DEFAULT_TIMEOUT));
+ scrollIntoView(header, true);
+
+ Assert.assertEquals(color, getStyle(tableOutput, "background-color"));
+ }
+ }
+}
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/suggestionBox/SuggestionBoxTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/suggestionBox/SuggestionBoxTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/suggestionBox/SuggestionBoxTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,502 @@
+package org.jboss.richfaces.integrationTest.suggestionBox;
+
+import static org.testng.Assert.assertEquals;
+
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+/**
+ * Test case that tests the suggestion box.
+ *
+ * @author <a href="mailto:ppitonak@redhat.com">Pavol Pitonak</a>
+ * @version $Revision$
+ */
+public class SuggestionBoxTestCase extends AbstractSeleniumRichfacesTestCase {
+
+ // messages
+ private final String MSG_COMPONENT_DESCRIPTION = getMsg("COMPONENT_DESCRIPTION");
+ private final String MSG_TABLE_M_N = getMsg("TABLE_M_N");
+ private final String MSG_NO_CAPITALS_FOUND = getMsg("NO_CAPITALS_FOUND");
+ private final String MSG_SUGGESTION_BOX_BORDER = getMsg("SUGGESTION_BOX_BORDER");
+ private final String MSG_SUGGESTION_BOX_WIDTH = getMsg("SUGGESTION_BOX_WIDTH");
+ private final String MSG_SUGGESTION_BOX_HEIGHT = getMsg("SUGGESTION_BOX_HEIGHT");
+ private final String MSG_SUGGESTION_BOX_SHADOW_DEPTH = getMsg("SUGGESTION_BOX_SHADOW_DEPTH");
+ private final String MSG_SUGGESTION_BOX_SHADOW_OPACITY = getMsg("SUGGESTION_BOX_SHADOW_OPACITY");
+ private final String MSG_SUGGESTION_BOX_CELLPADDING = getMsg("SUGGESTION_BOX_CELLPADDING");
+ private final String MSG_COUNT_OF_ALL_SUGGESTIONS = getMsg("COUNT_OF_ALL_SUGGESTIONS");
+ private final String MSG_AUGUSTA_MAINE = getMsg("AUGUSTA_MAINE");
+ private final String MSG_AUGUSTA_MADISON_MAINE_WISCONSIN = getMsg("AUGUSTA_MADISON_MAINE_WISCONSIN");
+
+ // locators
+ private final String LOC_FIRST_SUGGESTION_BOX_N = getLoc("FIRST_SUGGESTION_BOX_N");
+ private final String LOC_FIRST_TOWN_TABLE_M_N = getLoc("FIRST_TOWN_TABLE_M_N");
+
+ private final String LOC_FIRST_INPUT = getLoc("FIRST_INPUT");
+ private final String LOC_FIRST_BORDER_INPUT = getLoc("FIRST_BORDER_INPUT");
+ private final String LOC_FIRST_WIDTH_INPUT = getLoc("FIRST_WIDTH_INPUT");
+ private final String LOC_FIRST_HEIGHT_INPUT = getLoc("FIRST_HEIGHT_INPUT");
+ private final String LOC_FIRST_SHADOW_DEPTH_INPUT = getLoc("FIRST_SHADOW_DEPTH_INPUT");
+ private final String LOC_FIRST_SHADOW_OPACITY_INPUT = getLoc("FIRST_SHADOW_OPACITY_INPUT");
+ private final String LOC_FIRST_CELLPADDING_INPUT = getLoc("FIRST_CELLPADDING_INPUT");
+
+ private final String LOC_FIRST_BORDER_STYLE = getLoc("FIRST_BORDER_STYLE");
+ private final String LOC_FIRST_WIDTH_STYLE = getLoc("FIRST_WIDTH_STYLE");
+ private final String LOC_FIRST_HEIGHT_STYLE = getLoc("FIRST_HEIGHT_STYLE");
+ private final String LOC_FIRST_SHADOW_DEPTH_STYLE = getLoc("FIRST_SHADOW_DEPTH_STYLE");
+ private final String LOC_FIRST_SHADOW_OPACITY_STYLE = getLoc("FIRST_SHADOW_OPACITY_STYLE");
+ private final String LOC_FIRST_CELLPADDING = getLoc("FIRST_CELLPADDING");
+
+ private final String LOC_SECOND_INPUT = getLoc("SECOND_INPUT");
+ private final String LOC_SECOND_BUTTON = getLoc("SECOND_BUTTON");
+ private final String LOC_SECOND_SUGGESTION_LINES = getLoc("SECOND_SUGGESTION_LINES");
+ private final String LOC_SECOND_SUGGESTION_BOX_N = getLoc("SECOND_SUGGESTION_BOX_N");
+ private final String LOC_SECOND_STATE = getLoc("SECOND_STATE");
+
+ /**
+ * Tests inputting two cities separated by a comma. First it chooses Atlanta and Madison. Then
+ * it checks all items in the table on the right.
+ */
+ @Test
+ public void testCommaSeparatedTowns() {
+ scrollIntoView(LOC_FIRST_INPUT, true);
+
+ // select Atlanta
+ selenium.typeKeys(LOC_FIRST_INPUT, "at");
+ waitForElement(String.format(LOC_FIRST_SUGGESTION_BOX_N, 1));
+
+ selenium.click(String.format(LOC_FIRST_SUGGESTION_BOX_N, 1));
+
+ // select Madison
+ selenium.typeKeys(LOC_FIRST_INPUT, ",ma");
+
+ waitForTextEquals(String.format(LOC_FIRST_SUGGESTION_BOX_N, 1),
+ "MadisonWisconsin");
+ selenium.click(String.format(LOC_FIRST_SUGGESTION_BOX_N, 1));
+
+ String text = selenium.getText(String.format(LOC_FIRST_TOWN_TABLE_M_N,
+ 1, 1));
+ assertEquals(text, "Georgia", String.format(MSG_TABLE_M_N, 1, 1));
+
+ text = selenium.getText(String.format(LOC_FIRST_TOWN_TABLE_M_N, 1, 2));
+ assertEquals(text, "Atlanta", String.format(MSG_TABLE_M_N, 1, 2));
+
+ text = selenium.getText(String.format(LOC_FIRST_TOWN_TABLE_M_N, 1, 3));
+ assertEquals(text, "Augusta", String.format(MSG_TABLE_M_N, 1, 3));
+
+ text = selenium.getText(String.format(LOC_FIRST_TOWN_TABLE_M_N, 1, 4));
+ assertEquals(text, "Columbus", String.format(MSG_TABLE_M_N, 1, 4));
+
+ text = selenium.getText(String.format(LOC_FIRST_TOWN_TABLE_M_N, 2, 1));
+ assertEquals(text, "Wisconsin", String.format(MSG_TABLE_M_N, 2, 1));
+
+ text = selenium.getText(String.format(LOC_FIRST_TOWN_TABLE_M_N, 2, 2));
+ assertEquals(text, "Milwaukee", String.format(MSG_TABLE_M_N, 2, 2));
+
+ text = selenium.getText(String.format(LOC_FIRST_TOWN_TABLE_M_N, 2, 3));
+ assertEquals(text, "Madison", String.format(MSG_TABLE_M_N, 2, 3));
+
+ text = selenium.getText(String.format(LOC_FIRST_TOWN_TABLE_M_N, 2, 4));
+ assertEquals(text, "Green Bay", String.format(MSG_TABLE_M_N, 2, 4));
+ }
+
+ /**
+ * Tests inputting two cities separated by square brackets. First it chooses Atlanta and Madison. Then
+ * it checks all items in the table on the right.
+ */
+ @Test
+ public void testSquareBracketsSeparatedTowns() {
+ scrollIntoView(LOC_FIRST_INPUT, true);
+
+ // select Atlanta
+ selenium.typeKeys(LOC_FIRST_INPUT, "[at");
+ waitForElement(String.format(LOC_FIRST_SUGGESTION_BOX_N, 1));
+
+ selenium.click(String.format(LOC_FIRST_SUGGESTION_BOX_N, 1));
+ selenium.typeKeys(LOC_FIRST_INPUT, "]");
+
+ // select Madison
+ selenium.typeKeys(LOC_FIRST_INPUT, "[ma");
+ waitForTextEquals(String.format(LOC_FIRST_SUGGESTION_BOX_N, 1),
+ "MadisonWisconsin");
+ selenium.click(String.format(LOC_FIRST_SUGGESTION_BOX_N, 1));
+ selenium.typeKeys(LOC_FIRST_INPUT, "]");
+
+ String text = selenium.getText(String.format(LOC_FIRST_TOWN_TABLE_M_N,
+ 1, 1));
+ assertEquals(text, "Georgia", String.format(MSG_TABLE_M_N, 1, 1));
+
+ text = selenium.getText(String.format(LOC_FIRST_TOWN_TABLE_M_N, 1, 2));
+ assertEquals(text, "Atlanta", String.format(MSG_TABLE_M_N, 1, 2));
+
+ text = selenium.getText(String.format(LOC_FIRST_TOWN_TABLE_M_N, 1, 3));
+ assertEquals(text, "Augusta", String.format(MSG_TABLE_M_N, 1, 3));
+
+ text = selenium.getText(String.format(LOC_FIRST_TOWN_TABLE_M_N, 1, 4));
+ assertEquals(text, "Columbus", String.format(MSG_TABLE_M_N, 1, 4));
+
+ text = selenium.getText(String.format(LOC_FIRST_TOWN_TABLE_M_N, 2, 1));
+ assertEquals(text, "Wisconsin", String.format(MSG_TABLE_M_N, 2, 1));
+
+ text = selenium.getText(String.format(LOC_FIRST_TOWN_TABLE_M_N, 2, 2));
+ assertEquals(text, "Milwaukee", String.format(MSG_TABLE_M_N, 2, 2));
+
+ text = selenium.getText(String.format(LOC_FIRST_TOWN_TABLE_M_N, 2, 3));
+ assertEquals(text, "Madison", String.format(MSG_TABLE_M_N, 2, 3));
+
+ text = selenium.getText(String.format(LOC_FIRST_TOWN_TABLE_M_N, 2, 4));
+ assertEquals(text, "Green Bay", String.format(MSG_TABLE_M_N, 2, 4));
+ }
+
+ /**
+ * Tests typing in a non-existing city ('aaa'). It checks that the string "No capitals found" is shown.
+ */
+ @Test
+ public void testNonExisting() {
+ scrollIntoView(LOC_FIRST_INPUT, true);
+
+ // select aaa
+ selenium.typeKeys(LOC_FIRST_INPUT, "aaa");
+
+ waitForElement(String.format(LOC_FIRST_SUGGESTION_BOX_N, 1));
+
+ String text = selenium.getText(String.format(
+ LOC_FIRST_SUGGESTION_BOX_N, 1));
+
+ assertEquals(text, "No capitals found", MSG_NO_CAPITALS_FOUND);
+ }
+
+ /**
+ * Tests the "Border" slider. It tests values 3, 5, and 7.
+ */
+ @Test
+ public void testBorder() {
+ scrollIntoView(LOC_FIRST_INPUT, true);
+
+ selenium.type(LOC_FIRST_BORDER_INPUT, "3");
+ waitFor(1500);
+ int width = getValue(LOC_FIRST_BORDER_STYLE, "border-width");
+ assertEquals(width, 3, String.format(MSG_SUGGESTION_BOX_BORDER, 3));
+
+ selenium.type(LOC_FIRST_BORDER_INPUT, "5");
+ waitFor(1500);
+ width = getValue(LOC_FIRST_BORDER_STYLE, "border-width");
+ assertEquals(width, 5, String.format(MSG_SUGGESTION_BOX_BORDER, 5));
+
+ selenium.type(LOC_FIRST_BORDER_INPUT, "7"); // 7 -> 5
+ waitFor(1500);
+ width = getValue(LOC_FIRST_BORDER_STYLE, "border-width");
+ assertEquals(width, 5, String.format(MSG_SUGGESTION_BOX_BORDER, 7));
+ }
+
+ /**
+ * Tests the "Width" slider. It tests values 150, 350, 400, and 176.
+ */
+ @Test
+ public void testWidth() {
+ scrollIntoView(LOC_FIRST_INPUT, true);
+
+ selenium.type(LOC_FIRST_WIDTH_INPUT, "150");
+ waitFor(1500);
+ int width = getValue(LOC_FIRST_WIDTH_STYLE, "width");
+ assertEquals(width, 150, String.format(MSG_SUGGESTION_BOX_WIDTH, 150));
+
+ selenium.type(LOC_FIRST_WIDTH_INPUT, "350");
+ waitFor(1500);
+ width = getValue(LOC_FIRST_WIDTH_STYLE, "width");
+ assertEquals(width, 350, String.format(MSG_SUGGESTION_BOX_WIDTH, 350));
+
+ selenium.type(LOC_FIRST_WIDTH_INPUT, "400"); // 400 -> 350
+ waitFor(1500);
+ width = getValue(LOC_FIRST_WIDTH_STYLE, "width");
+ assertEquals(width, 350, String.format(MSG_SUGGESTION_BOX_WIDTH, 400));
+
+ selenium.type(LOC_FIRST_WIDTH_INPUT, "176"); // 176 -> 200
+ waitFor(1500);
+ width = getValue(LOC_FIRST_WIDTH_STYLE, "width");
+ assertEquals(width, 200, String.format(MSG_SUGGESTION_BOX_WIDTH, 176));
+ }
+
+ /**
+ * Tests the "Height" slider. It tests values 100, 300, 400, and 176.
+ */
+ @Test
+ public void testHeight() {
+ scrollIntoView(LOC_FIRST_INPUT, true);
+
+ selenium.type(LOC_FIRST_HEIGHT_INPUT, "100");
+ waitFor(1500);
+ int height = getValue(LOC_FIRST_HEIGHT_STYLE, "height");
+ assertEquals(height, 100, String.format(MSG_SUGGESTION_BOX_HEIGHT, 100));
+
+ selenium.type(LOC_FIRST_HEIGHT_INPUT, "300");
+ waitFor(1500);
+ height = getValue(LOC_FIRST_HEIGHT_STYLE, "height");
+ assertEquals(height, 300, String.format(MSG_SUGGESTION_BOX_HEIGHT, 300));
+
+ selenium.type(LOC_FIRST_HEIGHT_INPUT, "400"); // 400 -> 300
+ waitFor(1500);
+ height = getValue(LOC_FIRST_HEIGHT_STYLE, "height");
+ assertEquals(height, 300, String.format(MSG_SUGGESTION_BOX_HEIGHT, 400));
+
+ selenium.type(LOC_FIRST_HEIGHT_INPUT, "176"); // 176 -> 200
+ waitFor(1500);
+ height = getValue(LOC_FIRST_HEIGHT_STYLE, "height");
+ assertEquals(height, 200, String.format(MSG_SUGGESTION_BOX_HEIGHT, 176));
+ }
+
+ /**
+ * Tests the "Shadow Depth" slider. It tests values 3, 5, 6, and 7. It test both top and left offset.
+ */
+ @Test
+ public void testShadowDepth() {
+ scrollIntoView(LOC_FIRST_INPUT, true);
+
+ selenium.type(LOC_FIRST_SHADOW_DEPTH_INPUT, "3");
+ waitFor(1500);
+ int top = getValue(LOC_FIRST_SHADOW_DEPTH_STYLE, "top");
+ assertEquals(top, 3, String.format(MSG_SUGGESTION_BOX_SHADOW_DEPTH, 3));
+ int left = getValue(LOC_FIRST_SHADOW_DEPTH_STYLE, "left");
+ assertEquals(left, 3, String.format(MSG_SUGGESTION_BOX_SHADOW_DEPTH, 3));
+
+ selenium.type(LOC_FIRST_SHADOW_DEPTH_INPUT, "5");
+ waitFor(1500);
+ top = getValue(LOC_FIRST_SHADOW_DEPTH_STYLE, "top");
+ assertEquals(top, 5, String.format(MSG_SUGGESTION_BOX_SHADOW_DEPTH, 5));
+ left = getValue(LOC_FIRST_SHADOW_DEPTH_STYLE, "left");
+ assertEquals(left, 5, String.format(MSG_SUGGESTION_BOX_SHADOW_DEPTH, 5));
+
+ selenium.type(LOC_FIRST_SHADOW_DEPTH_INPUT, "6");
+ waitFor(1500);
+ top = getValue(LOC_FIRST_SHADOW_DEPTH_STYLE, "top");
+ assertEquals(top, 6, String.format(MSG_SUGGESTION_BOX_SHADOW_DEPTH, 6));
+ left = getValue(LOC_FIRST_SHADOW_DEPTH_STYLE, "left");
+ assertEquals(left, 6, String.format(MSG_SUGGESTION_BOX_SHADOW_DEPTH, 6));
+
+ selenium.type(LOC_FIRST_SHADOW_DEPTH_INPUT, "7"); // 7 -> 6
+ waitFor(1500);
+ top = getValue(LOC_FIRST_SHADOW_DEPTH_STYLE, "top");
+ assertEquals(top, 6, String.format(MSG_SUGGESTION_BOX_SHADOW_DEPTH, 7));
+ left = getValue(LOC_FIRST_SHADOW_DEPTH_STYLE, "left");
+ assertEquals(left, 6, String.format(MSG_SUGGESTION_BOX_SHADOW_DEPTH, 7));
+ }
+
+ /**
+ * Tests the "Shadow Opacity" slider. It tests values 1, 5, 9, and 11.
+ */
+ @Test
+ public void testShadowOpacity() {
+ scrollIntoView(LOC_FIRST_INPUT, true);
+
+ selenium.type(LOC_FIRST_SHADOW_OPACITY_INPUT, "1");
+ waitFor(1500);
+ double opacity = getOpacity(LOC_FIRST_SHADOW_OPACITY_STYLE);
+ assertEquals(opacity, 0.1, String.format(
+ MSG_SUGGESTION_BOX_SHADOW_OPACITY, 1));
+
+ selenium.type(LOC_FIRST_SHADOW_OPACITY_INPUT, "5");
+ waitFor(1500);
+ opacity = getOpacity(LOC_FIRST_SHADOW_OPACITY_STYLE);
+ assertEquals(opacity, 0.5, String.format(
+ MSG_SUGGESTION_BOX_SHADOW_OPACITY, 5));
+
+ selenium.type(LOC_FIRST_SHADOW_OPACITY_INPUT, "9");
+ waitFor(1500);
+ opacity = getOpacity(LOC_FIRST_SHADOW_OPACITY_STYLE);
+ assertEquals(opacity, 0.9, String.format(
+ MSG_SUGGESTION_BOX_SHADOW_OPACITY, 9));
+
+ selenium.type(LOC_FIRST_SHADOW_OPACITY_INPUT, "11"); // 11 -> 9
+ waitFor(1500);
+ opacity = getOpacity(LOC_FIRST_SHADOW_OPACITY_STYLE);
+ assertEquals(opacity, 0.9, String.format(
+ MSG_SUGGESTION_BOX_SHADOW_OPACITY, 11));
+ }
+
+ /**
+ * Tests the "Cellpadding" slider. It tests values 1, 10, 20, and 25.
+ */
+ @Test
+ public void testCellpadding() {
+ scrollIntoView(LOC_FIRST_INPUT, true);
+
+ selenium.type(LOC_FIRST_CELLPADDING_INPUT, "1");
+ waitFor(1500);
+ int cellpadding = Integer.parseInt(selenium
+ .getAttribute(LOC_FIRST_CELLPADDING));
+ assertEquals(cellpadding, 1, String.format(
+ MSG_SUGGESTION_BOX_CELLPADDING, 1));
+
+ selenium.type(LOC_FIRST_CELLPADDING_INPUT, "10");
+ waitFor(1500);
+ cellpadding = Integer.parseInt(selenium
+ .getAttribute(LOC_FIRST_CELLPADDING));
+ assertEquals(cellpadding, 10, String.format(
+ MSG_SUGGESTION_BOX_CELLPADDING, 10));
+
+ selenium.type(LOC_FIRST_CELLPADDING_INPUT, "20");
+ waitFor(1500);
+ cellpadding = Integer.parseInt(selenium
+ .getAttribute(LOC_FIRST_CELLPADDING));
+ assertEquals(cellpadding, 20, String.format(
+ MSG_SUGGESTION_BOX_CELLPADDING, 20));
+
+ selenium.type(LOC_FIRST_CELLPADDING_INPUT, "25"); // 25 -> 20
+ waitFor(1500);
+ cellpadding = Integer.parseInt(selenium
+ .getAttribute(LOC_FIRST_CELLPADDING));
+ assertEquals(cellpadding, 20, String.format(
+ MSG_SUGGESTION_BOX_CELLPADDING, 25));
+ }
+
+ /**
+ * Tests the button with arrow in the second example. It checks that there are 50 suggestions.
+ */
+ @Test
+ void testSecondExampleButton() {
+ scrollIntoView(LOC_SECOND_INPUT, true);
+
+ selenium.click(LOC_SECOND_BUTTON);
+ waitForElement(LOC_SECOND_SUGGESTION_LINES);
+
+ int count = selenium.getXpathCount(LOC_SECOND_SUGGESTION_LINES)
+ .intValue();
+ assertEquals(count, 50, MSG_COUNT_OF_ALL_SUGGESTIONS);
+ }
+
+ /**
+ * Tests inputting one city in the second example. It presses 'a' and clicks on the second suggestion.
+ */
+ @Test
+ public void testSecondExampleOneCity() {
+ scrollIntoView(LOC_SECOND_INPUT, true);
+
+ selenium.typeKeys(LOC_SECOND_INPUT, "a");
+ waitForElement(String.format(LOC_SECOND_SUGGESTION_BOX_N, 2));
+ selenium.click(String.format(LOC_SECOND_SUGGESTION_BOX_N, 2)); // Augusta
+
+ String state = selenium.getText(LOC_SECOND_STATE);
+ assertEquals(state, "Maine", MSG_AUGUSTA_MAINE);
+ }
+
+ /**
+ * Tests inputting two cities separated by a comma in the second example. It presses 'a', clicks
+ * on the second suggestion, presses ',' and 'm' and clicks on the third suggestion (Augusta and Madison).
+ * Then it checks that states belonging to these cities are shown below the combo box.
+ */
+ @Test
+ public void testSecondExampleMoreCities() {
+ scrollIntoView(LOC_SECOND_INPUT, true);
+
+ selenium.typeKeys(LOC_SECOND_INPUT, "a");
+ waitForElement(String.format(LOC_SECOND_SUGGESTION_BOX_N, 2));
+ selenium.click(String.format(LOC_SECOND_SUGGESTION_BOX_N, 2)); // Augusta
+
+ selenium.typeKeys(LOC_SECOND_INPUT, ",m");
+ waitForTextEquals(String.format(LOC_SECOND_SUGGESTION_BOX_N, 3),
+ "Madison");
+ selenium.click(String.format(LOC_SECOND_SUGGESTION_BOX_N, 3)); // Madison
+
+ waitFor(700);
+ String state = selenium.getText(LOC_SECOND_STATE);
+ assertEquals(state, "Maine,Wisconsin",
+ MSG_AUGUSTA_MADISON_MAINE_WISCONSIN);
+ }
+
+ /**
+ * Tests the "View Page Source" in the first example. It checks that the source
+ * code is not visible, clicks on the link, and checks 10 lines of source
+ * code.
+ */
+ @Test
+ public void testFirstExamplePageSource() {
+ String[] strings = new String[] { "<ui:composition xmlns=\"http://www.w3.org/1999/xhtml\"",
+ "<script type=\"text/javascript\">//<![CDATA[",
+ "\"<tr><td>State</td><td>1st City</td><td>2nd City</td><td>3rd City</td></tr>\" +",
+ "vertical-align: top;",
+ "<h:panelGrid columns=\"2\" columnClasses=\"sb_test_column1,sb_test_column2\" width=\"100%\">",
+ "<rich:suggestionbox id=\"suggestionBoxId\" for=\"text\" tokens=\",[]\"",
+ " rules=\"#{suggestionBox.rules}\"",
+ "suggestionAction=\"#{capitalsBean.autocomplete}\" var=\"result\"",
+ "height=\"#{suggestionBox.height}\"",
+ "nothingLabel=\"No capitals found\" columnClasses=\"center\"",
+ };
+
+ abstractTestSource(1, "View Page Source", strings);
+ }
+
+ /**
+ * Tests the "View CapitalsBean.java Source" in the first example. It checks that the source
+ * code is not visible, clicks on the link, and checks 8 lines of source
+ * code.
+ */
+ @Test
+ public void testFirstExampleBeanSource() {
+ String[] strings = new String[] {
+ "package org.richfaces.demo.capitals;",
+ "import javax.faces.FacesException;",
+ "public class CapitalsBean {",
+ "public List<Capital> autocomplete(Object suggest) {",
+ "if ((elem.getName() != null && elem.getName().toLowerCase().indexOf(pref.toLowerCase()) == 0) || \"\".equals(pref))",
+ "URL rulesUrl = getClass().getResource(\"capitals-rules.xml\");",
+ "digester.parse(getClass().getResourceAsStream(\"capitals.xml\"));",
+ "public ArrayList<Capital> getCapitals() {",
+ };
+
+ abstractTestSource(1, "View CapitalsBean.java Source", strings);
+ }
+
+ /**
+ * Tests the "View Source" in the second example. It checks that the source
+ * code is not visible, clicks on the link, and checks 8 lines of source
+ * code.
+ */
+ @Test
+ public void testSecondExamplePageSource() {
+ String[] strings = new String[] {
+ "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">",
+ "<h:form id=\"form\">",
+ "<h:panelGrid columns=\"2\">",
+ "<rich:suggestionbox height=\"200\" width=\"200\"",
+ "usingSuggestObjects=\"true\"",
+ "onobjectchange=\"printObjectsSelected(#{rich:element('objects')}, #{rich:component('suggestion')});\"",
+ "suggestionAction=\"#{capitalsBean.autocomplete}\" var=\"cap\"",
+ "for=\"statesinput\" fetchValue=\"#{cap.name}\" id=\"suggestion\" tokens=\",\">",
+ };
+
+ abstractTestSource(2, "View Source", strings);
+ }
+
+ /**
+ * Pulls out the value of the specified attribute from the specified location.
+ * @param loc an attribute locator
+ * @param attr an 'subattribute' whose value we want (e.g. <div style="left: 4px;"/>, then loc=//div@style and attr=left
+ * @return the value of the subattribute
+ */
+ private int getValue(String loc, String attr) {
+ String tmp = selenium.getAttribute(loc);
+ int firstIdx = tmp.indexOf(attr) + 2 + attr.length();
+ int secondIdx = tmp.indexOf("px;", firstIdx);
+ return Integer.parseInt(tmp.substring(firstIdx, secondIdx));
+ }
+
+ /**
+ * Pulls out opacity from the specified attribute.
+ * @param loc an attribute locator
+ * @return the value of opacity
+ */
+ private double getOpacity(String loc) {
+ String tmp = selenium.getAttribute(loc);
+ int firstIdx = tmp.indexOf("opacity") + 9;
+ int secondIdx = tmp.indexOf(";", firstIdx);
+ return Double.parseDouble(tmp.substring(firstIdx, secondIdx));
+ }
+
+ /**
+ * Loads the page containing the calendar component.
+ */
+ @BeforeMethod
+ private void loadPage() {
+ super.loadPage("richInputs", 10, 1, MSG_COMPONENT_DESCRIPTION);
+ }
+}
Property changes on: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/suggestionBox/SuggestionBoxTestCase.java
___________________________________________________________________
Name: svn:executable
+ *
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/tabPanel/TabPanelTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/tabPanel/TabPanelTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/tabPanel/TabPanelTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,191 @@
+package org.jboss.richfaces.integrationTest.tabPanel;
+
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertFalse;
+import static org.testng.Assert.assertTrue;
+
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.testng.annotations.Test;
+
+/**
+ * Test case that tests tab panel. Tests all three tabs -- usage, customization,
+ * and deletion.
+ *
+ * @author <a href="mailto:ppitonak@redhat.com">Pavol Pitonak</a>
+ * @version $Revision$
+ */
+public class TabPanelTestCase extends AbstractSeleniumRichfacesTestCase {
+
+ // messages -- Usage
+ private final String MSG_USAGE_COMPONENT_DESCRIPTION = getMess("USAGE_COMPONENT_DESCRIPTION");
+ private final String MSG_USAGE_CONTENT_OF_PANEL_N = getMess("USAGE_CONTENT_OF_PANEL_N");
+ private final String MSG_USAGE_SECOND_TAB_SHOULD_BE_DISABLED = getMess("USAGE_SECOND_TAB_SHOULD_BE_DISABLED");
+
+ // messages -- Look Customization
+ private final String MSG_CUST_COMPONENT_DESCRIPTION = getMess("CUST_COMPONENT_DESCRIPTION");
+ private final String MSG_CUST_TABS_RIGHT_ALIGNED = getMess("CUST_TABS_RIGHT_ALIGNED");
+
+ // messages -- Tabs Deletion
+ private final String MSG_DELET_COMPONENT_DESCRIPTION = getMess("DELET_COMPONENT_DESCRIPTION");
+ private final String MSG_DELET_NUMBER_OF_TABS = getMess("DELET_NUMBER_OF_TABS");
+
+ // locators -- Usage
+ private final String LOC_USAGE_EXAMPLE_HEADER = getLoc("USAGE_EXAMPLE_HEADER");
+ private final String LOC_USAGE_PANEL_N_TAB_M = getLoc("USAGE_PANEL_N_TAB_M");
+ private final String LOC_USAGE_PANEL_N_TEXT = getLoc("USAGE_PANEL_N_TEXT");
+ private final String LOC_USAGE_PANEL_3_N_TEXT = getLoc("USAGE_PANEL_3_N_TEXT");
+
+ // locators -- Look Customization
+ private final String LOC_CUST_EXAMPLE_HEADER = getLoc("CUST_EXAMPLE_HEADER");
+ private final String LOC_CUST_TABS_ALIGN = getLoc("CUST_TABS_ALIGN");
+ private final String LOC_CUST_PANEL_TEXT = getLoc("CUST_PANEL_TEXT");
+ private final String LOC_CUST_PANEL_TAB_N = getLoc("CUST_PANEL_TAB_N");
+
+ // locators -- Tabs Deletion
+ private final String LOC_DELET_EXAMPLE_HEADER = getLoc("DELET_EXAMPLE_HEADER");
+ private final String LOC_DELET_PANEL_TABS = getLoc("DELET_PANEL_TABS");
+ private final String LOC_DELET_PANEL_TAB_N_CLOSE = getLoc("DELET_PANEL_TAB_N_CLOSE");
+ private final String LOC_DELET_RESET_BUTTON = getLoc("DELET_RESET_BUTTON");
+
+ /**
+ * Tests three tab panels from the usage tab. It click on each tab and
+ * verifies that the content of panel changed appropriately.
+ */
+ @Test
+ public void testTabPanelExample() {
+ super.loadPage("richOutputs", 10, 1, MSG_USAGE_COMPONENT_DESCRIPTION);
+ String text;
+
+ // test the first tab panel
+ for (int i = 3; i > 0; i--) {
+ scrollIntoView(LOC_USAGE_EXAMPLE_HEADER, true); // scrolling is
+ // forgotten after
+ // page reload
+ selenium.click(String.format(LOC_USAGE_PANEL_N_TAB_M, 1, i));
+ waitFor(2000);
+ text = selenium.getText(String.format(LOC_USAGE_PANEL_N_TEXT, 1));
+ assertEquals(text, "Here is tab #" + i, String.format(
+ MSG_USAGE_CONTENT_OF_PANEL_N, 1));
+ }
+
+ // test the second tab panel
+ scrollIntoView(LOC_USAGE_EXAMPLE_HEADER, true);
+ selenium.click(String.format(LOC_USAGE_PANEL_N_TAB_M, 2, 3));
+ waitFor(2000);
+ text = selenium.getText(String.format(LOC_USAGE_PANEL_N_TEXT, 2));
+ assertEquals(text, "Here is tab #" + 3, String.format(
+ MSG_USAGE_CONTENT_OF_PANEL_N, 2));
+
+ selenium.click(String.format(LOC_USAGE_PANEL_N_TAB_M, 2, 1));
+ waitFor(2000);
+ text = selenium.getText(String.format(LOC_USAGE_PANEL_N_TEXT, 2));
+ assertEquals(text, "Here is tab #" + 1, String.format(
+ MSG_USAGE_CONTENT_OF_PANEL_N, 2));
+
+ // test the disabled tab
+ boolean isEnabled = true;
+ try {
+ selenium.getAttribute(
+ String.format(LOC_USAGE_PANEL_N_TAB_M, 2, 2) + "@class")
+ .contains("rich-tab-diabled");
+ assertFalse(isEnabled, MSG_USAGE_SECOND_TAB_SHOULD_BE_DISABLED);
+ } catch (Exception e) {
+ // OK - there is no class attribute
+ }
+ selenium.click(String.format(LOC_USAGE_PANEL_N_TAB_M, 2, 2));
+ waitFor(2000);
+ text = selenium.getText(String.format(LOC_USAGE_PANEL_N_TEXT, 2));
+ assertEquals(text, "Here is tab #1", String.format(
+ MSG_USAGE_CONTENT_OF_PANEL_N, 2));
+
+ // test the third tab panel -- client type work different
+ scrollIntoView(LOC_USAGE_EXAMPLE_HEADER, true);
+ for (int i = 3; i > 0; i--) {
+ selenium.click(String.format(LOC_USAGE_PANEL_N_TAB_M, 3, i));
+ waitFor(2000);
+ for (int j = 1; j < 4; j++) {
+ if (i == j) {
+ assertTrue(isDisplayed(String.format(
+ LOC_USAGE_PANEL_3_N_TEXT, j)));
+ } else {
+ assertFalse(isDisplayed(String.format(
+ LOC_USAGE_PANEL_3_N_TEXT, j)));
+ }
+ }
+ }
+ }
+
+ /**
+ * Tests tab panel customization. It clicks every tab and verifies that the
+ * content of panel changed. Then it checks that the tabs are aligned to the
+ * right.
+ */
+ @Test
+ public void testCustomization() {
+ super.loadPage("richOutputs", 10, 2, MSG_CUST_COMPONENT_DESCRIPTION);
+ scrollIntoView(LOC_CUST_EXAMPLE_HEADER, true);
+
+ String text;
+
+ for (int i = 3; i > 0; i--) {
+ selenium.click(String.format(LOC_CUST_PANEL_TAB_N, i));
+ waitFor(2000);
+ for (int j = 1; j < 4; j++) {
+ if (i == j) {
+ assertTrue(isDisplayed(String
+ .format(LOC_CUST_PANEL_TEXT, j)));
+ } else {
+ assertFalse(isDisplayed(String.format(LOC_CUST_PANEL_TEXT,
+ j)));
+ }
+ }
+ }
+
+ text = selenium.getAttribute(LOC_CUST_TABS_ALIGN);
+ assertEquals(text, "right", MSG_CUST_TABS_RIGHT_ALIGNED);
+ }
+
+ /**
+ * Tests tabs deletion. First it check that there are 3 tabs, then deletes
+ * the third, the second, and the first tab. After each deletion it verifies
+ * the number of remaining tabs. In the end it clicks the reset button and
+ * checks that all tabs were restored.
+ */
+ @Test
+ public void testTabsDeletion() {
+ super.loadPage("richOutputs", 10, 3, MSG_DELET_COMPONENT_DESCRIPTION);
+ scrollIntoView(LOC_DELET_EXAMPLE_HEADER, true);
+
+ int count = selenium.getXpathCount(LOC_DELET_PANEL_TABS).intValue();
+ assertEquals(count - 4, 3, MSG_DELET_NUMBER_OF_TABS);
+
+ for (int i = 3; i > 0; i--) {
+ selenium.click(String.format(LOC_DELET_PANEL_TAB_N_CLOSE, i));
+ waitFor(2000);
+ count = selenium.getXpathCount(LOC_DELET_PANEL_TABS).intValue();
+ assertEquals(count / 2, i - 1, MSG_DELET_NUMBER_OF_TABS);
+ }
+
+ selenium.click(LOC_DELET_RESET_BUTTON);
+ waitFor(2000);
+ count = selenium.getXpathCount(LOC_DELET_PANEL_TABS).intValue();
+ assertEquals(count - 4, 3, MSG_DELET_NUMBER_OF_TABS);
+ }
+
+ /**
+ * Tests the "View Source". It checks that the source code is not visible,
+ * clicks on the link, and checks 5 lines of source code.
+ */
+ @Test
+ public void testUsageTabExampleSource() {
+ String[] strings = new String[] {
+ "<ui:composition xmlns=\"http://www.w3.org/1999/xhtml\"",
+ "<rich:tabPanel>", "<rich:tab label=\"First\">",
+ "Here is tab #2", "<rich:tabPanel switchType=\"ajax\">",
+ "<rich:tab label=\"Second\" disabled=\"true\">",
+ "<rich:tabPanel switchType=\"client\">", };
+
+ abstractTestSource(1, "View Source", strings);
+ }
+
+}
Property changes on: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/tabPanel/TabPanelTestCase.java
___________________________________________________________________
Name: svn:executable
+ *
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/togglePanel/TogglePanelTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/togglePanel/TogglePanelTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/togglePanel/TogglePanelTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,172 @@
+package org.jboss.richfaces.integrationTest.togglePanel;
+
+import static org.testng.Assert.assertFalse;
+import static org.testng.Assert.assertTrue;
+
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+/**
+ * Test case that tests toggle panel.
+ *
+ * @author <a href="mailto:ppitonak@redhat.com">Pavol Pitonak</a>
+ * @version $Revision$
+ */
+public class TogglePanelTestCase extends AbstractSeleniumRichfacesTestCase {
+
+ // messages
+ private final String MSG_COMPONENT_DESCRIPTION = getMess("COMPONENT_DESCRIPTION");
+ private final String MSG_CLICK_ME_BUTTON_VISIBLE = getMess("CLICK_ME_BUTTON_VISIBLE");
+ private final String MSG_CLICK_ME_BUTTON_NOT_VISIBLE = getMess("CLICK_ME_BUTTON_NOT_VISIBLE");
+ private final String MSG_PANEL_N_VISIBLE = getMess("PANEL_N_VISIBLE");
+ private final String MSG_PANEL_N_NOT_VISIBLE = getMess("PANEL_N_NOT_VISIBLE");
+
+ // locators
+ private final String LOC_EXAMPLE_HEADER = getLoc("EXAMPLE_HEADER");
+ private final String LOC_CLICK_ME_BUTTON = getLoc("CLICK_ME_BUTTON");
+ private final String LOC_CLICK_ME_BUTTON_A = formatLoc("CLICK_ME_BUTTON_A_RELATIVE", LOC_CLICK_ME_BUTTON);
+ private final String LOC_CLOSE_BUTTON = getLoc("CLOSE_BUTTON");
+ private final String LOC_PANEL_N = getLoc("PANEL_N");
+ private final String LOC_PREVIOUS_BUTTON_N = getLoc("PREVIOUS_BUTTON_N");
+ private final String LOC_NEXT_BUTTON_N = getLoc("NEXT_BUTTON_N");
+
+ /**
+ * Tests opening and closing the panel. It verifies that the "Click Me"
+ * button and all panels are in proper state.
+ */
+ @Test
+ public void testOpenClosePanel() {
+ assertTrue(isDisplayed(LOC_CLICK_ME_BUTTON),
+ MSG_CLICK_ME_BUTTON_VISIBLE);
+ assertFalse(isDisplayed(String.format(LOC_PANEL_N, 1)), String.format(
+ MSG_PANEL_N_NOT_VISIBLE, 1));
+ assertFalse(isDisplayed(String.format(LOC_PANEL_N, 2)), String.format(
+ MSG_PANEL_N_NOT_VISIBLE, 2));
+ assertFalse(isDisplayed(String.format(LOC_PANEL_N, 3)), String.format(
+ MSG_PANEL_N_NOT_VISIBLE, 3));
+
+ // open the panel
+ selenium.click(LOC_CLICK_ME_BUTTON_A);
+ assertFalse(isDisplayed(LOC_CLICK_ME_BUTTON),
+ MSG_CLICK_ME_BUTTON_NOT_VISIBLE);
+ assertTrue(isDisplayed(String.format(LOC_PANEL_N, 1)), String.format(
+ MSG_PANEL_N_VISIBLE, 1));
+ assertFalse(isDisplayed(String.format(LOC_PANEL_N, 2)), String.format(
+ MSG_PANEL_N_NOT_VISIBLE, 2));
+ assertFalse(isDisplayed(String.format(LOC_PANEL_N, 3)), String.format(
+ MSG_PANEL_N_NOT_VISIBLE, 3));
+
+ // close the panel
+ selenium.click(LOC_CLOSE_BUTTON);
+ assertTrue(isDisplayed(LOC_CLICK_ME_BUTTON),
+ MSG_CLICK_ME_BUTTON_VISIBLE);
+ assertFalse(isDisplayed(String.format(LOC_PANEL_N, 1)), String.format(
+ MSG_PANEL_N_NOT_VISIBLE, 1));
+ assertFalse(isDisplayed(String.format(LOC_PANEL_N, 2)), String.format(
+ MSG_PANEL_N_NOT_VISIBLE, 2));
+ assertFalse(isDisplayed(String.format(LOC_PANEL_N, 3)), String.format(
+ MSG_PANEL_N_NOT_VISIBLE, 3));
+ }
+
+ /**
+ * Tests navigating between panels. First it opens the toggle panel and then
+ * click next twice and previous twice. After each click it verifies that
+ * only necessary elements are visible.
+ */
+ @Test
+ public void testNavigation() {
+ // open the panel
+ selenium.click(LOC_CLICK_ME_BUTTON_A);
+
+ // 1st panel is open
+ assertTrue(isDisplayed(String.format(LOC_PANEL_N, 1)), String.format(
+ MSG_PANEL_N_VISIBLE, 1));
+ assertFalse(isDisplayed(String.format(LOC_PANEL_N, 2)), String.format(
+ MSG_PANEL_N_NOT_VISIBLE, 2));
+ assertFalse(isDisplayed(String.format(LOC_PANEL_N, 3)), String.format(
+ MSG_PANEL_N_NOT_VISIBLE, 3));
+
+ // click next -- move to the 2nd panel
+ selenium.click(String.format(LOC_NEXT_BUTTON_N, 1));
+ assertFalse(isDisplayed(String.format(LOC_PANEL_N, 1)), String.format(
+ MSG_PANEL_N_NOT_VISIBLE, 1));
+ assertTrue(isDisplayed(String.format(LOC_PANEL_N, 2)), String.format(
+ MSG_PANEL_N_VISIBLE, 2));
+ assertFalse(isDisplayed(String.format(LOC_PANEL_N, 3)), String.format(
+ MSG_PANEL_N_NOT_VISIBLE, 3));
+
+ // click next -- move to the 3rd panel
+ selenium.click(String.format(LOC_NEXT_BUTTON_N, 2));
+ assertFalse(isDisplayed(String.format(LOC_PANEL_N, 1)), String.format(
+ MSG_PANEL_N_NOT_VISIBLE, 1));
+ assertFalse(isDisplayed(String.format(LOC_PANEL_N, 2)), String.format(
+ MSG_PANEL_N_NOT_VISIBLE, 2));
+ assertTrue(isDisplayed(String.format(LOC_PANEL_N, 3)), String.format(
+ MSG_PANEL_N_VISIBLE, 3));
+
+ // click previous -- move to the 2nd panel
+ selenium.click(String.format(LOC_PREVIOUS_BUTTON_N, 3));
+ assertFalse(isDisplayed(String.format(LOC_PANEL_N, 1)), String.format(
+ MSG_PANEL_N_NOT_VISIBLE, 1));
+ assertTrue(isDisplayed(String.format(LOC_PANEL_N, 2)), String.format(
+ MSG_PANEL_N_VISIBLE, 2));
+ assertFalse(isDisplayed(String.format(LOC_PANEL_N, 3)), String.format(
+ MSG_PANEL_N_NOT_VISIBLE, 3));
+
+ // click previous -- move to the 1st panel
+ selenium.click(String.format(LOC_PREVIOUS_BUTTON_N, 2));
+ assertTrue(isDisplayed(String.format(LOC_PANEL_N, 1)), String.format(
+ MSG_PANEL_N_VISIBLE, 1));
+ assertFalse(isDisplayed(String.format(LOC_PANEL_N, 2)), String.format(
+ MSG_PANEL_N_NOT_VISIBLE, 2));
+ assertFalse(isDisplayed(String.format(LOC_PANEL_N, 3)), String.format(
+ MSG_PANEL_N_NOT_VISIBLE, 3));
+ }
+
+ /**
+ * Tests the "View Source". It checks that the source code is not visible,
+ * clicks on the link, and checks 8 lines of source code.
+ */
+ @Test
+ public void testComponentSource() {
+ String[] strings = new String[] {
+ "<ui:composition xmlns=\"http://www.w3.org/1999/xhtml\"",
+ ".infopanel { border:2px solid #{richSkin.panelBorderColor}; }",
+ "<rich:togglePanel value=\"#{toggleBean.skinChooserState1}\" switchType=\"client\"",
+ "stateOrder=\"closed,tip1, tip2,tip3\">",
+ "<h:graphicImage id=\"pic\" style=\"border-width:0\" value=\"/richfaces/togglePanel/picture/clickme.gif\" />",
+ "<f:facet name=\"tip1\">",
+ "<ui:include src=\"/richfaces/togglePanel/examples/tipBlock.xhtml\">",
+ "<ui:param name=\"tip\" value=\"rich:toggleControl might bre located inside of outside", };
+
+ abstractTestSource(1, "View Source", strings);
+ }
+
+ /**
+ * Tests the "View TipBlock.xhtml Source". It checks that the source code is
+ * not visible, clicks on the link, and checks 7 lines of source code.
+ */
+ @Test
+ public void testXhtmlSource() {
+ String[] strings = new String[] {
+ "<ui:composition xmlns=\"http://www.w3.org/1999/xhtml\"",
+ "<f:subview>",
+ "<h:panelGrid styleClass=\"infopanel\" cellpadding=\"0\" cellspacing=\"0\" columnClasses=\"col\"",
+ "<h:outputText value=\"#{tip}\" />",
+ "<rich:separator height=\"1\" />",
+ "<h:panelGrid columns=\"3\">",
+ "<rich:toggleControl switchToState=\"#{previous}\" value=\"#{empty previous? '': '« Previous'}\" />", };
+
+ abstractTestSource(1, "View TipBlock.xhtml Source", strings);
+ }
+
+ /**
+ * Loads the page containing the component.
+ */
+ @BeforeMethod
+ private void loadPage() {
+ super.loadPage("richOutputs", 11, 1, MSG_COMPONENT_DESCRIPTION);
+ scrollIntoView(LOC_EXAMPLE_HEADER, true);
+ }
+}
Property changes on: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/togglePanel/TogglePanelTestCase.java
___________________________________________________________________
Name: svn:executable
+ *
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/toolBar/ToolBarTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/toolBar/ToolBarTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/toolBar/ToolBarTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,263 @@
+/**
+ * License Agreement.
+ *
+ * JBoss RichFaces
+ *
+ * Copyright (C) 2009 Red Hat, Inc.
+ *
+ * This code is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this code; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package org.jboss.richfaces.integrationTest.toolBar;
+
+import static org.testng.Assert.assertTrue;
+
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.jboss.test.selenium.waiting.*;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+/**
+ * Test case that tests tool bar.
+ *
+ * @author <a href="mailto:ppitonak@redhat.com">Pavol Pitonak</a>
+ * @version $Revision$
+ */
+public class ToolBarTestCase extends AbstractSeleniumRichfacesTestCase {
+
+ // messages
+ private final String MSG_ITEM_CLASS_ATTRIBUTE = getMsg("ITEM_CLASS_ATTRIBUTE");
+ private final String MSG_GROUP_SEPARATOR = getMsg("GROUP_SEPARATOR");
+ private final String MSG_ITEM_SEPARATOR = getMsg("GROUP_SEPARATOR");
+ private final String MSG_ITEM_IMAGE_S = getMsg("ITEM_IMAGE_S");
+ private final String MSG_THERE_IS_NO_GROUP_SEPARATOR = getMsg("THERE_IS_NO_GROUP_SEPARATOR");
+ private final String MSG_THERE_IS_GROUP_SEPARATOR = getMsg("THERE_IS_GROUP_SEPARATOR");
+ private final String MSG_THERE_IS_NO_ITEM_SEPARATOR = getMsg("THERE_IS_NO_ITEM_SEPARATOR");
+ private final String MSG_THERE_IS_ITEM_SEPARATOR = getMsg("THERE_IS_ITEM_SEPARATOR");
+ private final String MSG_GROUP_SEPARATOR_S = getMsg("GROUP_SEPARATOR_S");
+ private final String MSG_ITEM_SEPARATOR_S = getMsg("ITEM_SEPARATOR_S");
+
+ // locators
+ private final String LOC_EXAMPLE_N_HEADER = getLoc("EXAMPLE_N_HEADER");
+ private final String LOC_FIRST_TOOLBAR_ITEM_N = getLoc("FIRST_TOOLBAR_ITEM_N");
+ private final String LOC_SECOND_TOOLBAR_ITEM_N = getLoc("SECOND_TOOLBAR_ITEM_N");
+ private final String LOC_THIRD_TOOLBAR_GROUP_SEPARATOR_N = getLoc("THIRD_TOOLBAR_GROUP_SEPARATOR_N");
+ private final String LOC_THIRD_TOOLBAR_ITEM_SEPARATOR_N = getLoc("THIRD_TOOLBAR_ITEM_SEPARATOR_N");
+ private final String LOC_GROUP_SEPARATOR_IMG = getLoc("GROUP_SEPARATOR_IMG");
+ private final String LOC_ITEM_SEPARATOR_IMG = getLoc("ITEM_SEPARATOR_IMG");
+
+ /**
+ * Tests the first tool bar. It checks the class attribute of three items
+ * from toolbar, align attribute of the group separator, and style attribute
+ * of the big separator. Then it checks that three chosen items display
+ * necessary image.
+ */
+ @Test
+ public void testFirstToolBar() {
+ scrollIntoView(format(LOC_EXAMPLE_N_HEADER, 1), true);
+
+ assertTrue(belongsClass("rich-toolbar-item", format(LOC_FIRST_TOOLBAR_ITEM_N, 1)), MSG_ITEM_CLASS_ATTRIBUTE);
+ assertTrue(belongsClass("rich-toolbar-item", format(LOC_FIRST_TOOLBAR_ITEM_N, 5)), MSG_ITEM_CLASS_ATTRIBUTE);
+ assertTrue(belongsClass("rich-toolbar-item", format(LOC_FIRST_TOOLBAR_ITEM_N, 9)), MSG_ITEM_CLASS_ATTRIBUTE);
+
+ String text = selenium.getAttribute(format(LOC_FIRST_TOOLBAR_ITEM_N, 4) + "@align");
+ assertTrue(text.contains("center"), MSG_GROUP_SEPARATOR);
+
+ text = selenium.getAttribute(format(LOC_FIRST_TOOLBAR_ITEM_N, 1) + "/img@src");
+ assertTrue(text.contains("create_doc.gif"), format(MSG_ITEM_IMAGE_S, "create_doc.gif"));
+
+ text = selenium.getAttribute(format(LOC_FIRST_TOOLBAR_ITEM_N, 2) + "/img@src");
+ assertTrue(text.contains("create_folder.gif"), format(MSG_ITEM_IMAGE_S, "create_folder.gif"));
+
+ text = selenium.getAttribute(format(LOC_FIRST_TOOLBAR_ITEM_N, 6) + "/img@src");
+ assertTrue(text.contains("save_as.gif"), format(MSG_ITEM_IMAGE_S, "save_as.gif"));
+ }
+
+ /**
+ * Tests the second tool bar. It checks the class attribute of three items
+ * from toolbar, align attribute of the item separator, and style attribute
+ * of the big separator. Then it checks that two chosen items display
+ * necessary image.
+ */
+ @Test
+ public void testSecondToolBar() {
+ scrollIntoView(format(LOC_EXAMPLE_N_HEADER, 2), true);
+
+ assertTrue(belongsClass("rich-toolbar-item", format(LOC_SECOND_TOOLBAR_ITEM_N, 1)), MSG_ITEM_CLASS_ATTRIBUTE);
+ assertTrue(belongsClass("rich-toolbar-item", format(LOC_SECOND_TOOLBAR_ITEM_N, 4)), MSG_ITEM_CLASS_ATTRIBUTE);
+ assertTrue(belongsClass("rich-toolbar-item", format(LOC_SECOND_TOOLBAR_ITEM_N, 7)), MSG_ITEM_CLASS_ATTRIBUTE);
+
+ String text = selenium.getAttribute(format(LOC_SECOND_TOOLBAR_ITEM_N, 3) + "@align");
+ assertTrue(text.contains("center"), MSG_ITEM_SEPARATOR);
+
+ text = selenium.getAttribute(format(LOC_SECOND_TOOLBAR_ITEM_N, 1) + "/img@src");
+ assertTrue(text.contains("edit.gif"), format(MSG_ITEM_IMAGE_S, "edit.gif"));
+
+ text = selenium.getAttribute(format(LOC_SECOND_TOOLBAR_ITEM_N, 4) + "/img@src");
+ assertTrue(text.contains("find.gif"), format(MSG_ITEM_IMAGE_S, "find.gif"));
+ }
+
+ /**
+ * Tests all types of group separators in the third tool bar.
+ */
+ @Test
+ public void testThirdToolBarGroupSeparators() {
+ scrollIntoView(format(LOC_EXAMPLE_N_HEADER, 3), true);
+ String text;
+
+ // select line
+ selenium.click(format(LOC_THIRD_TOOLBAR_GROUP_SEPARATOR_N, 1));
+ waitForElement(LOC_GROUP_SEPARATOR_IMG);
+ assertTrue(selenium.isElementPresent(LOC_GROUP_SEPARATOR_IMG), MSG_THERE_IS_NO_GROUP_SEPARATOR);
+ text = selenium.getAttribute(LOC_GROUP_SEPARATOR_IMG + "@src");
+ assertTrue(text.contains("LineSeparatorImage"), format(MSG_GROUP_SEPARATOR_S, "LineSeparatorImage"));
+
+ // select grid
+ selenium.click(format(LOC_THIRD_TOOLBAR_GROUP_SEPARATOR_N, 2));
+ waitForElement(LOC_GROUP_SEPARATOR_IMG);
+ assertTrue(selenium.isElementPresent(LOC_GROUP_SEPARATOR_IMG), MSG_THERE_IS_NO_GROUP_SEPARATOR);
+ text = selenium.getAttribute(LOC_GROUP_SEPARATOR_IMG + "@src");
+ assertTrue(text.contains("GridSeparatorImage"), format(MSG_GROUP_SEPARATOR_S, "GridSeparatorImage"));
+
+ // select disc
+ selenium.click(format(LOC_THIRD_TOOLBAR_GROUP_SEPARATOR_N, 3));
+ waitForElement(LOC_GROUP_SEPARATOR_IMG);
+ assertTrue(selenium.isElementPresent(LOC_GROUP_SEPARATOR_IMG), MSG_THERE_IS_NO_GROUP_SEPARATOR);
+ text = selenium.getAttribute(LOC_GROUP_SEPARATOR_IMG + "@src");
+ assertTrue(text.contains("DotSeparatorImage"), format(MSG_GROUP_SEPARATOR_S, "DotSeparatorImage"));
+
+ // select square
+ selenium.click(format(LOC_THIRD_TOOLBAR_GROUP_SEPARATOR_N, 4));
+ waitForElement(LOC_GROUP_SEPARATOR_IMG);
+ assertTrue(selenium.isElementPresent(LOC_GROUP_SEPARATOR_IMG), MSG_THERE_IS_NO_GROUP_SEPARATOR);
+ text = selenium.getAttribute(LOC_GROUP_SEPARATOR_IMG + "@src");
+ assertTrue(text.contains("SquareSeparatorImage"), format(MSG_GROUP_SEPARATOR_S, "SquareSeparatorImage"));
+
+ // select none
+ selenium.click(format(LOC_THIRD_TOOLBAR_GROUP_SEPARATOR_N, 5));
+ Wait.failWith(MSG_THERE_IS_GROUP_SEPARATOR).until(new Condition() {
+ public boolean isTrue() {
+ return !selenium.isElementPresent(LOC_GROUP_SEPARATOR_IMG);
+ }
+ });
+ }
+
+ /**
+ * Tests all types of item separators in the third tool bar.
+ */
+ @Test
+ public void testToolBarItemSeparators() {
+ scrollIntoView(format(LOC_EXAMPLE_N_HEADER, 3), true);
+ String text;
+
+ // select line
+ selenium.click(format(LOC_THIRD_TOOLBAR_ITEM_SEPARATOR_N, 1));
+ waitForElement(LOC_ITEM_SEPARATOR_IMG);
+ assertTrue(selenium.isElementPresent(LOC_ITEM_SEPARATOR_IMG), MSG_THERE_IS_NO_ITEM_SEPARATOR);
+ text = selenium.getAttribute(LOC_ITEM_SEPARATOR_IMG + "@src");
+ assertTrue(text.contains("LineSeparatorImage"), format(MSG_ITEM_SEPARATOR_S, "LineSeparatorImage"));
+
+ // select grid
+ selenium.click(format(LOC_THIRD_TOOLBAR_ITEM_SEPARATOR_N, 2));
+ waitForElement(LOC_ITEM_SEPARATOR_IMG);
+ assertTrue(selenium.isElementPresent(LOC_ITEM_SEPARATOR_IMG), MSG_THERE_IS_NO_ITEM_SEPARATOR);
+ text = selenium.getAttribute(LOC_ITEM_SEPARATOR_IMG + "@src");
+ assertTrue(text.contains("GridSeparatorImage"), format(MSG_ITEM_SEPARATOR_S, "GridSeparatorImage"));
+
+ // select disc
+ selenium.click(format(LOC_THIRD_TOOLBAR_ITEM_SEPARATOR_N, 3));
+ waitForElement(LOC_ITEM_SEPARATOR_IMG);
+ assertTrue(selenium.isElementPresent(LOC_ITEM_SEPARATOR_IMG), MSG_THERE_IS_NO_ITEM_SEPARATOR);
+ text = selenium.getAttribute(LOC_ITEM_SEPARATOR_IMG + "@src");
+ assertTrue(text.contains("DotSeparatorImage"), format(MSG_ITEM_SEPARATOR_S, "DotSeparatorImage"));
+
+ // select square
+ selenium.click(format(LOC_THIRD_TOOLBAR_ITEM_SEPARATOR_N, 4));
+ waitForElement(LOC_ITEM_SEPARATOR_IMG);
+ assertTrue(selenium.isElementPresent(LOC_ITEM_SEPARATOR_IMG), MSG_THERE_IS_NO_ITEM_SEPARATOR);
+ text = selenium.getAttribute(LOC_ITEM_SEPARATOR_IMG + "@src");
+ assertTrue(text.contains("SquareSeparatorImage"), format(MSG_ITEM_SEPARATOR_S, "SquareSeparatorImage"));
+
+ // select none
+ selenium.click(format(LOC_THIRD_TOOLBAR_ITEM_SEPARATOR_N, 5));
+ Wait.failWith(MSG_THERE_IS_ITEM_SEPARATOR).until(new Condition() {
+ public boolean isTrue() {
+ return !selenium.isElementPresent(LOC_ITEM_SEPARATOR_IMG);
+ }
+ });
+ }
+
+ /**
+ * Tests the "View Source" in the first example. It checks that the source
+ * code is not visible, clicks on the link, and checks 8 lines of source
+ * code.
+ */
+ @Test
+ public void testFirstExampleSource() {
+ String[] strings = new String[] { "<ui:composition xmlns=\"http://www.w3.org/1999/xhtml\"",
+ "margin-bottom: -4px;", "<rich:toolBar height=\"26\" itemSeparator=\"grid\">", "<rich:toolBarGroup>",
+ "<h:graphicImage value=\"/images/icons/create_doc.gif\" styleClass=\"pic\"/>",
+ "<h:graphicImage value=\"/images/icons/create_folder.gif\" styleClass=\"pic\"/>",
+ "<h:graphicImage value=\"/images/icons/save.gif\" styleClass=\"pic\"/>",
+ "<h:graphicImage value=\"/images/icons/filter.gif\" styleClass=\"pic\"/>", };
+
+ abstractTestSource(1, "View Source", strings);
+ }
+
+ /**
+ * Tests the "View Source" in the second example. It checks that the source
+ * code is not visible, clicks on the link, and checks 8 lines of source
+ * code.
+ */
+ @Test
+ public void testSecondExampleSource() {
+ String[] strings = new String[] { "<ui:composition xmlns=\"http://www.w3.org/1999/xhtml\"",
+ "<rich:toolBar height=\"34\" itemSeparator=\"line\">", "<rich:toolBarGroup>",
+ "<h:graphicImage id=\"edit\" value=\"/images/icons/edit.gif\" />",
+ "<h:outputLabel value=\"Edit\" for=\"edit\" />", "<rich:toolBarGroup location=\"right\">",
+ "<h:inputText styleClass=\"barsearch\" />",
+ "<h:commandButton styleClass=\"barsearchbutton\" onclick=\"return false;\" value=\"Search\" />", };
+
+ abstractTestSource(2, "View Source", strings);
+ }
+
+ /**
+ * Tests the "View Source" in the third example. It checks that the source
+ * code is not visible, clicks on the link, and checks 10 lines of source
+ * code.
+ */
+ @Test
+ public void testThirdExampleSource() {
+ String[] strings = new String[] {
+ "<ui:composition xmlns=\"http://www.w3.org/1999/xhtml\"",
+ "<h:panelGrid columns=\"3\" width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" style=\"margin-bottom : 4px\">",
+ "<h:panelGrid columns=\"8\">", "<a4j:commandLink value=\"Line\" reRender=\"bar\">",
+ "<a4j:actionparam name=\"gs\" value=\"line\" assignTo=\"#{tbBean.groupSeparator}\" />",
+ "<h:panelGroup style=\"padding-left : 4px\">",
+ "<rich:panel bodyClass=\"rich-laguna-panel-no-header\">",
+ "<h:outputText value=\"Group Item Separator:\" />",
+ "<rich:toolBar id=\"bar\" height=\"30\" itemSeparator=\"#{tbBean.groupSeparator}\">",
+ "<rich:toolBarGroup itemSeparator=\"#{tbBean.groupItemSeparator}\">", };
+
+ abstractTestSource(3, "View Source", strings);
+ }
+
+ /**
+ * Loads the page containing the component.
+ */
+ @BeforeMethod
+ private void loadPage() {
+ openComponent("Tool Bar");
+ }
+}
Property changes on: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/toolBar/ToolBarTestCase.java
___________________________________________________________________
Name: svn:executable
+ *
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/tooltip/TooltipDataTableTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/tooltip/TooltipDataTableTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/tooltip/TooltipDataTableTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,90 @@
+package org.jboss.richfaces.integrationTest.tooltip;
+
+import junit.framework.Assert;
+
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.jboss.test.selenium.waiting.Condition;
+import org.testng.annotations.Test;
+
+/**
+ * @author <a href="mailto:lfryc@redhat.com">Lukas Fryc</a>
+ * @version $Revision$
+ */
+public class TooltipDataTableTestCase extends AbstractSeleniumRichfacesTestCase {
+ /**
+ * Opens specified page
+ */
+ public void openPage() {
+ selenium.allowNativeXpath("true");
+
+ selenium.open(format("{0}/{1}", contextPath, PAGE));
+
+ scrollIntoView(table, true);
+ }
+
+ private static class Column {
+ public static final int MAKE = 0;
+ public static final int MODEL = 1;
+ public static final int YEAR = 2;
+ }
+
+ private final String PAGE = "richfaces/toolTip.jsf?c=toolTip&tab=table";
+ private final String table = getLoc("data-table--table");
+ private final String cells = getLoc("data-table--cells-preformatted");
+ private final String coords = getMess("data-table--coords--event-at-cell");
+ private final String itemsOnTooltip = getLoc("data-table--items-on-tooltip");
+ private final String outputTooltipMake = format(itemsOnTooltip, Column.MAKE);
+ private final String outputTooltipModel = format(itemsOnTooltip,
+ Column.MODEL);
+ private final String outputTooltipYear = format(itemsOnTooltip, Column.YEAR);
+
+ @Test
+ public void iterateThroughTableTest() {
+ openPage();
+
+ int rows = selenium.getXpathCount(format(cells, 0, Column.MAKE))
+ .intValue();
+
+ for (int row = 1; row <= rows; row++) {
+ final String cellMake = format(cells, row, Column.MAKE);
+ final String cellModel = format(cells, row, Column.MODEL);
+ final String cellYear = format(cells, row, Column.YEAR);
+ final String activeTooltipArea = formatLoc(
+ "data-table--relative--cell-make-to-its-active-tooltip-area",
+ cellMake);
+
+ if (row == 1)
+ selenium.mouseMoveAt(activeTooltipArea, coords);
+ mouseOverAt(activeTooltipArea, coords);
+ waitForElementAppears(outputTooltipMake);
+
+ Assert.assertEquals(selenium.getText(outputTooltipMake), selenium
+ .getText(formatLoc(
+ "data-table--relative--cell-make-to-its-label",
+ cellMake)));
+ Assert.assertEquals(selenium.getText(outputTooltipModel), selenium
+ .getText(cellModel));
+ Assert.assertEquals(selenium.getText(outputTooltipYear), selenium
+ .getText(cellYear));
+
+ selenium.mouseOut(activeTooltipArea);
+ waitForElementDisappears(outputTooltipMake);
+ }
+ }
+
+ private void waitForElementAppears(final String locator) {
+ waitModelUpdate.until(new Condition() {
+ public boolean isTrue() {
+ return selenium.isElementPresent(locator);
+ }
+ });
+ }
+
+ private void waitForElementDisappears(final String locator) {
+ waitModelUpdate.until(new Condition() {
+ public boolean isTrue() {
+ return !selenium.isElementPresent(locator);
+ }
+ });
+ }
+}
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/tooltip/TooltipTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/tooltip/TooltipTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/tooltip/TooltipTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,164 @@
+package org.jboss.richfaces.integrationTest.tooltip;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.jboss.test.selenium.waiting.*;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+/**
+ * @author <a href="mailto:lfryc@redhat.com">Lukas Fryc</a>
+ * @version $Revision$
+ */
+public class TooltipTestCase extends AbstractSeleniumRichfacesTestCase {
+ /**
+ * Opens specified page
+ */
+ public void openPage() {
+ selenium.allowNativeXpath("true");
+
+ selenium.open(format("{0}/{1}", contextPath, PAGE));
+
+ scrollIntoView(header, true);
+ }
+
+ private final String PAGE = "richfaces/toolTip.jsf?c=toolTip&tab=usage";
+ private final String header = getLoc("header");
+
+ private final String coords = getMess("coords--event-at-panel");
+ private final String tooltip = getLoc("tooltip--text-part--tooltips-requested");
+ private final String toolTipWait = getMess("output--tooltip3-4-wait");
+ private final String toolTipText = getMess("output--tooltip3-4-text-part");
+ private final Pattern pattern = Pattern.compile(getMess("regexp--tooltips-requested"));
+
+ @Test
+ public void defaultToolTipTest() {
+ openPage();
+
+ final String panel = getLoc("panel--sample1");
+ final String toolTipText = getMess("output--tooltip1-text-part");
+
+ for (int i = 0; i < 3; i++) {
+ Assert.assertFalse(selenium.isTextPresent(toolTipText));
+
+ if (i == 0) /*
+ * satisfies that mouseOverAt will work as expected -
+ * without this mouseOverAt do nothing
+ */
+ selenium.mouseMoveAt(panel, coords);
+ mouseOverAt(panel, coords);
+
+ waitForText(toolTipText);
+
+ selenium.mouseOut(panel);
+ waitForTextDisappears(toolTipText);
+ }
+ }
+
+ @Test
+ public void followMouseDelayedTest() {
+ openPage();
+
+ final String panel = getLoc("panel--sample2");
+ final String toolTipText = getMess("output--tooltip2-text-part");
+
+ for (int i = 0; i < 3; i++) {
+ Assert.assertFalse(selenium.isTextPresent(toolTipText));
+
+ if (i == 0)
+ selenium.mouseMoveAt(panel, coords);
+ mouseOverAt(panel, coords);
+
+ waitForText(toolTipText);
+
+ selenium.mouseOut(panel);
+ waitForTextDisappears(toolTipText);
+ }
+ }
+
+ @Test
+ public void separateServerRequestsTest() {
+ openPage();
+
+ final String panel = getLoc("panel--sample3");
+ Integer tooltipsRequested = null;
+
+ for (int i = 0; i < 3; i++) {
+ Assert.assertFalse(selenium.isTextPresent(toolTipWait));
+ Assert.assertFalse(selenium.isTextPresent(toolTipText));
+
+ if (i == 0)
+ selenium.mouseMoveAt(panel, coords);
+ mouseOverAt(panel, coords);
+
+ tooltipsRequested = waitForTooltipChanges(tooltipsRequested, i == 0);
+
+ selenium.mouseOut(panel);
+ waitForTextDisappears(toolTipText);
+ }
+ }
+
+ @Test
+ public void mouseClickActivationTest() {
+ openPage();
+
+ final String panel = getLoc("panel--sample4");
+ Integer tooltipsRequested = null;
+
+ for (int i = 0; i < 3; i++) {
+ Assert.assertFalse(selenium.isTextPresent(toolTipWait));
+ Assert.assertFalse(selenium.isTextPresent(toolTipText));
+
+ selenium.clickAt(panel, coords);
+
+ tooltipsRequested = waitForTooltipChanges(tooltipsRequested, i == 0);
+
+ selenium.mouseOut(panel);
+ waitForTextDisappears(toolTipText);
+ }
+ }
+
+ private Integer waitForTooltipChanges(Integer tooltipsRequestedOld, boolean firstLoop) {
+ Integer tooltipsRequested = null;
+
+ if (firstLoop) {
+ waitForText(toolTipWait);
+ waitForText(toolTipText);
+ tooltipsRequested = retrieveRequestedTooltips.retrieve();
+ } else {
+ waitForText(toolTipText);
+ tooltipsRequested = Wait.waitForChangeAndReturn(tooltipsRequestedOld, retrieveRequestedTooltips);
+
+ if (tooltipsRequestedOld != null) {
+ Assert.assertEquals(tooltipsRequested, Integer.valueOf(tooltipsRequestedOld + 1));
+ }
+ }
+
+ return tooltipsRequested;
+ }
+
+ private Retrieve<Integer> retrieveRequestedTooltips = new Retrieve<Integer>() {
+ public Integer retrieve() {
+ String text = Wait.interval(20).timeout(2000).waitForChangeAndReturn(null, new Retrieve<String>() {
+ public String retrieve() {
+ return getTextOrNull(tooltip);
+ }
+ });
+ Matcher matcher = pattern.matcher(text);
+ if (!matcher.matches()) {
+ Assert.fail();
+ }
+ return Integer.valueOf(matcher.group(1));
+ }
+ };
+
+ private void waitForTextDisappears(final String text) {
+ waitModelUpdate.until(new Condition() {
+ public boolean isTrue() {
+ return !selenium.isElementPresent(text);
+ }
+ });
+ }
+}
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/tree/TreeNodesAdaptorTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/tree/TreeNodesAdaptorTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/tree/TreeNodesAdaptorTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,182 @@
+/**
+ * License Agreement.
+ *
+ * JBoss RichFaces
+ *
+ * Copyright (C) 2009 Red Hat, Inc.
+ *
+ * This code is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this code; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package org.jboss.richfaces.integrationTest.tree;
+
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertFalse;
+
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.jboss.test.selenium.waiting.Condition;
+import org.jboss.test.selenium.waiting.Wait;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+/**
+ * Test for tree nodes adaptors.
+ *
+ * @author <a href="mailto:ppitonak@redhat.com">Pavol Pitonak</a>
+ * @version $Revision$
+ */
+public class TreeNodesAdaptorTestCase extends AbstractSeleniumRichfacesTestCase {
+
+ private final String LOC_EXAMPLE_HEADER = getLoc("EXAMPLE_HEADER");
+ private final String LOC_TABLE_SUBNODES = getLoc("TABLE_SUBNODES");
+ private final String LOC_DEMO_NODE = getLoc("DEMO_NODE");
+ private final String LOC_DIV_SUBNODES_PREFORMATTED = getLoc("DIV_SUBNODES_PREFORMATTED");
+
+ private final int MSG_CHILDREN_COUNT = Integer.parseInt(getMsg("CHILDREN_COUNT"));
+
+ /**
+ * Tests tree on the page. First it clicks on "org/richfaces/demo" to expand
+ * it. Then it verifies that the node was expanded and that its siblings are
+ * collapsed. After that it clicks on "org/richfaces/demo" again and checks
+ * that tha node and all its siblings are collapsed.
+ */
+ @Test
+ public void testTreeNodesAdaptor() {
+ scrollIntoView(LOC_EXAMPLE_HEADER, true);
+
+ int count = selenium.getXpathCount(LOC_TABLE_SUBNODES).intValue();
+ assertEquals(count, MSG_CHILDREN_COUNT, "Nodes in org/richfaces.");
+
+ // click "demo"
+ selenium.click(LOC_DEMO_NODE);
+
+ // wait until the node is expanded
+ Wait.failWith("The node org/richfaces/demo should be expanded.").until(new Condition() {
+ public boolean isTrue() {
+ return isDisplayed(format(LOC_DIV_SUBNODES_PREFORMATTED, 1));
+ }
+ });
+
+ // check that all siblings of node "demo" are collapsed
+ for (int i = 2; i < 5; i++) {
+ assertFalse(isDisplayed(format(LOC_DIV_SUBNODES_PREFORMATTED, i)), format(
+ "Node nr. {0} in /org/richfaces should be collapsed.", i));
+ }
+
+ // click "demo" (to collapse node)
+ selenium.click(LOC_DEMO_NODE);
+
+ // wait until the node is collapsed
+ Wait.failWith("The node org/richfaces/demo should be collapsed.").until(new Condition() {
+ public boolean isTrue() {
+ return !isDisplayed(format(LOC_DIV_SUBNODES_PREFORMATTED, 1));
+ }
+ });
+
+ // check that all siblings of node "demo" are collapsed
+ for (int i = 2; i < 5; i++) {
+ assertFalse(isDisplayed(format(LOC_DIV_SUBNODES_PREFORMATTED, i)), format(
+ "Node nr. {0} in /org/richfaces should be collapsed.", i));
+ }
+ }
+
+ /**
+ * Tests the "View Source". It checks that the source code is not visible,
+ * clicks on the link, and checks 7 lines of source code.
+ */
+ @Test
+ public void testPageSource() {
+ String[] strings = new String[] {
+ "<ui:composition xmlns=\"http://www.w3.org/1999/xhtml\"",
+ "<h:form> ",
+ "<rich:tree style=\"width:300px\" switchType=\"ajax\" stateAdvisor=\"#{treeDemoStateAdvisor}\">",
+ "<rich:recursiveTreeNodesAdaptor roots=\"#{fileSystemBean.sourceRoots}\" var=\"item\" nodes=\"#{item.nodes}\" />",
+ "</rich:tree>", "</h:form>", "</ui:composition>", };
+
+ abstractTestSource(1, "View Source", strings);
+ }
+
+ /**
+ * Tests the "View FileSystemBean.java Source". It checks that the source
+ * code is not visible, clicks on the link, and checks 8 lines of source
+ * code.
+ */
+ @Test
+ public void testFileSystemBeanSource() {
+ String[] strings = new String[] { "package org.richfaces.treemodeladaptor;", "public class FileSystemBean {",
+ "private static String SRC_PATH = \"/WEB-INF/src\";", "private FileSystemNode[] srcRoots;",
+ "public synchronized FileSystemNode[] getSourceRoots() {", "if (srcRoots == null) {",
+ "srcRoots = new FileSystemNode(SRC_PATH).getNodes();", "return srcRoots;", };
+
+ abstractTestSource(1, "View FileSystemBean.java Source", strings);
+ }
+
+ /**
+ * Tests the "View FileSystemNode.java Source". It checks that the source
+ * code is not visible, clicks on the link, and checks 8 lines of source
+ * code.
+ */
+ @Test
+ public void testFileSystemNodeSource() {
+ String[] strings = new String[] { "package org.richfaces.treemodeladaptor;", "public class FileSystemNode {",
+ "public FileSystemNode(String path) {", "public synchronized FileSystemNode[] getNodes() {",
+ "FacesContext facesContext = FacesContext.getCurrentInstance();",
+ "ExternalContext externalContext = facesContext.getExternalContext();",
+ "Set resourcePaths = externalContext.getResourcePaths(this.path);",
+ "Object[] nodes = (Object[]) resourcePaths.toArray();", };
+
+ abstractTestSource(1, "View FileSystemNode.java Source", strings);
+ }
+
+ /**
+ * Tests the "View PostbackPhaseListener.java Source". It checks that the
+ * source code is not visible, clicks on the link, and checks 8 lines of
+ * source code.
+ */
+ @Test
+ public void testPostbackPhaseListenerSource() {
+ String[] strings = new String[] { "package org.richfaces.treemodeladaptor;",
+ "public class PostbackPhaseListener implements PhaseListener {",
+ "public static final String POSTBACK_ATTRIBUTE_NAME = PostbackPhaseListener.class.getName();",
+ "public void afterPhase(PhaseEvent event) {", "public void beforePhase(PhaseEvent event) {",
+ "FacesContext facesContext = event.getFacesContext();", "public PhaseId getPhaseId() {",
+ "public static boolean isPostback() {", };
+
+ abstractTestSource(1, "View PostbackPhaseListener.java Source", strings);
+ }
+
+ /**
+ * Tests the "View TreeDemoStateAdvisor.java Source". It checks that the
+ * source code is not visible, clicks on the link, and checks 8 lines of
+ * source code.
+ */
+ @Test
+ public void testTreeDemoStateAdvisorSource() {
+ String[] strings = new String[] { "package org.richfaces.treemodeladaptor;",
+ "public class TreeDemoStateAdvisor implements TreeStateAdvisor {",
+ "public Boolean adviseNodeOpened(UITree tree) {", "if (!PostbackPhaseListener.isPostback()) {",
+ "Object key = tree.getRowKey();", "TreeRowKey treeRowKey = (TreeRowKey) key;",
+ "if (treeRowKey == null || treeRowKey.depth() <= 2) {", "return Boolean.TRUE;", };
+
+ abstractTestSource(1, "View TreeDemoStateAdvisor.java Source", strings);
+ }
+
+ /**
+ * Loads the needed page.
+ */
+ @BeforeMethod
+ private void loadPage() {
+ openComponent("Tree Adaptor");
+ }
+}
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/tree/TreeTestCase.java
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/tree/TreeTestCase.java (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/java/org/jboss/richfaces/integrationTest/tree/TreeTestCase.java 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,214 @@
+/**
+ * License Agreement.
+ *
+ * JBoss RichFaces
+ *
+ * Copyright (C) 2009 Red Hat, Inc.
+ *
+ * This code is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this code; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package org.jboss.richfaces.integrationTest.tree;
+
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertFalse;
+import static org.testng.Assert.assertTrue;
+
+import org.jboss.richfaces.integrationTest.AbstractSeleniumRichfacesTestCase;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+/**
+ * Test the first tab of tree component page.
+ *
+ * @author <a href="mailto:ppitonak@redhat.com">Pavol Pitonak</a>
+ * @version $Revision$
+ */
+public class TreeTestCase extends AbstractSeleniumRichfacesTestCase {
+
+ private final String LOC_HEADER_PREFORMATTED = getLoc("HEADER_PREFORMATTED");
+ private final String LOC_NODE_1_LINK_PREFORMATTED = getLoc("NODE_1_LINK_PREFORMATTED");
+ private final String LOC_NODE_1_1_LABEL_PREFORMATTED = getLoc("NODE_1_1_LABEL_PREFORMATTED");
+ private final String LOC_NODE_1_1_IMAGE_FIRST_PREFORMATTED = getLoc("NODE_1_1_IMAGE_FIRST_PREFORMATTED");
+ private final String LOC_NODE_1_1_IMAGE_SECOND_PREFORMATTED = getLoc("NODE_1_1_IMAGE_SECOND_PREFORMATTED");
+ private final String LOC_NODE_1_1_LINK_PREFORMATTED = getLoc("NODE_1_1_LINK_PREFORMATTED");
+ private final String LOC_NODE_1_1_4_LABEL_PREFORMATTED = getLoc("NODE_1_1_4_LABEL_PREFORMATTED");
+ private final String LOC_NODE_1_1_N_LABEL_PREFORMATTED = getLoc("NODE_1_1_N_LABEL_PREFORMATTED");
+ private final String LOC_NODE_N_PREFORMATTED = getLoc("NODE_N_PREFORMATTED");
+ private final String LOC_CHILDREN_1_1_PREFORMATTED = getLoc("CHILDREN_1_1_PREFORMATTED");
+ private final String LOC_CHILDREN_1_PREFORMATTED = getLoc("CHILDREN_1_PREFORMATTED");
+
+ private final String[] MSG_NODE_1_1_N_LABEL = new String[] { getMsg("NODE_1_1_1_LABEL"),
+ getMsg("NODE_1_1_2_LABEL"), getMsg("NODE_1_1_3_LABEL"), getMsg("NODE_1_1_4_LABEL"),
+ getMsg("NODE_1_1_5_LABEL"), getMsg("NODE_1_1_6_LABEL"), getMsg("NODE_1_1_7_LABEL"),
+ getMsg("NODE_1_1_8_LABEL"), getMsg("NODE_1_1_9_LABEL"), getMsg("NODE_1_1_10_LABEL"),
+ getMsg("NODE_1_1_11_LABEL"), };
+ private final String MSG_NODE_1_1_LABEL = getMsg("NODE_1_1_LABEL");
+ private final int MSG_CHILDREN_COUNT_1_1 = Integer.parseInt(getMsg("CHILDREN_COUNT_1_1"));
+ private final int MSG_CHILDREN_COUNT_TOP = Integer.parseInt(getMsg("CHILDREN_COUNT_TOP"));
+
+ /**
+ * Tests the first example.
+ *
+ * @see org.jboss.richfaces.integrationTest.tree.TreeTestCase#abstractTestTree
+ * abstractTestTree
+ */
+ @Test
+ public void testTreeAjax() {
+ abstractTestTree(1);
+ }
+
+ /**
+ * Tests the second example.
+ *
+ * @see org.jboss.richfaces.integrationTest.tree.TreeTestCase#abstractTestTree
+ * abstractTestTree
+ */
+ @Test
+ public void testTreeClient() {
+ abstractTestTree(2);
+ }
+
+ /**
+ * Tests the third example.
+ *
+ * @see org.jboss.richfaces.integrationTest.tree.TreeTestCase#abstractTestTree
+ * abstractTestTree
+ */
+ @Test
+ public void testTreeServer() {
+ abstractTestTree(3);
+ }
+
+ /**
+ * Tests the "View Source" in the first example -- Ajax switch type. It
+ * checks that the source code is not visible, clicks on the link, and
+ * checks 8 lines of source code.
+ */
+ @Test
+ public void testAjaxExampleSource() {
+ String[] strings = new String[] {
+ "<ui:composition xmlns=\"http://www.w3.org/1999/xhtml\"",
+ "<h:form>",
+ "<rich:tree style=\"width:300px\" value=\"#{library.data}\" var=\"item\" nodeFace=\"#{item.type}\">",
+ "<rich:treeNode type=\"artist\" iconLeaf=\"/images/tree/singer.gif\" icon=\"/images/tree/singer.gif\">",
+ "<h:outputText value=\"#{item.name}\" />", "</rich:treeNode>",
+ "<rich:treeNode type=\"album\" iconLeaf=\"/images/tree/disc.gif\" icon=\"/images/tree/disc.gif\">",
+ "<rich:treeNode type=\"song\" iconLeaf=\"/images/tree/song.gif\" icon=\"/images/tree/song.gif\">", };
+
+ abstractTestSource(1, "View Source", strings);
+ }
+
+ /**
+ * Tests the "View Source" in the second example -- client switch type. It
+ * checks that the source code is not visible, clicks on the link, and
+ * checks 8 lines of source code.
+ */
+ @Test
+ public void testClientExampleSource() {
+ String[] strings = new String[] {
+ "<ui:composition xmlns=\"http://www.w3.org/1999/xhtml\"",
+ "<h:form>",
+ "<rich:tree switchType=\"client\" style=\"width:300px\" value=\"#{library.data}\" var=\"item\" nodeFace=\"#{item.type}\">",
+ "<rich:treeNode type=\"artist\" iconLeaf=\"/images/tree/singer.gif\" icon=\"/images/tree/singer.gif\">",
+ "<h:outputText value=\"#{item.name}\" />", "</rich:treeNode>",
+ "<rich:treeNode type=\"album\" iconLeaf=\"/images/tree/disc.gif\" icon=\"/images/tree/disc.gif\">",
+ "<rich:treeNode type=\"song\" iconLeaf=\"/images/tree/song.gif\" icon=\"/images/tree/song.gif\">", };
+
+ abstractTestSource(2, "View Source", strings);
+ }
+
+ /**
+ * Tests the "View Source" in the third example -- server switch type. It
+ * checks that the source code is not visible, clicks on the link, and
+ * checks 8 lines of source code.
+ */
+ @Test
+ public void testServerExampleSource() {
+ String[] strings = new String[] {
+ "<ui:composition xmlns=\"http://www.w3.org/1999/xhtml\"",
+ "<h:form>",
+ "<rich:tree switchType=\"server\" style=\"width:300px\" value=\"#{library.data}\" var=\"item\" nodeFace=\"#{item.type}\">",
+ "<rich:treeNode type=\"artist\" iconLeaf=\"/images/tree/singer.gif\" icon=\"/images/tree/singer.gif\">",
+ "<h:outputText value=\"#{item.name}\" />", "</rich:treeNode>",
+ "<rich:treeNode type=\"album\" iconLeaf=\"/images/tree/disc.gif\" icon=\"/images/tree/disc.gif\">",
+ "<rich:treeNode type=\"song\" iconLeaf=\"/images/tree/song.gif\" icon=\"/images/tree/song.gif\">", };
+
+ abstractTestSource(3, "View Source", strings);
+ }
+
+ /**
+ * Tests selected tree. First it tries to expand "Chris Rea" node, checks
+ * its only child node, verifies that child's icon is displayed and expands
+ * it. Then it checks the number of nodes in "Chris Rea/The Road To Hell"
+ * node and verifies these nodes. In the end it checks that there are 4
+ * top-level nodes and that only the first is expanded.
+ *
+ * @param index
+ * which tree is being tested
+ */
+ private void abstractTestTree(int index) {
+ scrollIntoView(format(LOC_HEADER_PREFORMATTED, index), true);
+
+ // click 'Chris Rea'
+ waitForElement(format(LOC_NODE_1_LINK_PREFORMATTED, index));
+ selenium.click(format(LOC_NODE_1_LINK_PREFORMATTED, index));
+
+ // check Rea's child node
+ waitForElement(format(LOC_NODE_1_1_LABEL_PREFORMATTED, index));
+ String text = selenium.getText(format(LOC_NODE_1_1_LABEL_PREFORMATTED, index));
+ assertEquals(text, MSG_NODE_1_1_LABEL, "Name of the first child of first node.");
+
+ // check the icon of node
+ assertTrue(isDisplayed(format(LOC_NODE_1_1_IMAGE_FIRST_PREFORMATTED, index)),
+ "Node 1.1 should be collapsed -- wrong image.");
+ assertFalse(isDisplayed(format(LOC_NODE_1_1_IMAGE_SECOND_PREFORMATTED, index)),
+ "Node 1.1 should be collapsed -- wrong image.");
+
+ // click 'The Road to Hell'
+ selenium.click(format(LOC_NODE_1_1_LINK_PREFORMATTED, index));
+
+ // check the number of nodes
+ waitForElement(format(LOC_NODE_1_1_4_LABEL_PREFORMATTED, index));
+ int numberOfNodes = selenium.getXpathCount(format(LOC_CHILDREN_1_1_PREFORMATTED, index)).intValue();
+ assertEquals(numberOfNodes, MSG_CHILDREN_COUNT_1_1, "Number of children of node 1.1.");
+
+ // get all nodes
+ String label = null;
+ for (int i = 0; i < numberOfNodes; i++) {
+ label = selenium.getText(format(LOC_NODE_1_1_N_LABEL_PREFORMATTED, index, i + 1));
+ assertEquals(label, MSG_NODE_1_1_N_LABEL[i], format("Node 1.1.{0} should have name {1}.", i + 1,
+ MSG_NODE_1_1_N_LABEL[0]));
+ }
+
+ // check the number of expanded nodes on first level
+ numberOfNodes = selenium.getXpathCount(format(LOC_CHILDREN_1_PREFORMATTED, index)).intValue();
+ assertEquals(numberOfNodes, MSG_CHILDREN_COUNT_TOP, format("There should be {0} top nodes.",
+ MSG_CHILDREN_COUNT_TOP));
+
+ // check that only the first node is expanded
+ for (int i = 2; i < 5; i++) {
+ assertFalse(isDisplayed(format(LOC_NODE_N_PREFORMATTED, index, i)), format(
+ "Node nr. {0} should be collapsed.", i));
+ }
+ }
+
+ /**
+ * Loads the needed page.
+ */
+ @BeforeMethod
+ private void loadPage() {
+ openComponent("Tree");
+ }
+}
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/profiles/mac/testng.xml
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/profiles/mac/testng.xml (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/profiles/mac/testng.xml 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,524 @@
+<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
+<suite name="seleniumTest">
+
+ <test
+ name="org.jboss.richfaces.integrationTest.actionParameter.ActionParameterTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.actionParameter.ActionParameterTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.ajaxForm.AjaxFormTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.ajaxForm.AjaxFormTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.ajaxRegion.AjaxRegionTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.ajaxRegion.AjaxRegionTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.ajaxSupport.AjaxSupportTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.ajaxSupport.AjaxSupportTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.ajaxValidator.AjaxValidatorTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.ajaxValidator.AjaxValidatorTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.ajaxValidator.AjaxValidatorHibernatePartTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.ajaxValidator.AjaxValidatorHibernatePartTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.beanValidator.BeanValidatorTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.beanValidator.BeanValidatorTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.calendar.CalendarStylingTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.calendar.CalendarStylingTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.calendar.CalendarTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.calendar.CalendarTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.calendar.OrganizerTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.calendar.OrganizerTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.colorPicker.ColorPickerTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.colorPicker.ColorPickerTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.columns.ColumnsTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.columns.ColumnsTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.comboBox.ComboBoxTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.comboBox.ComboBoxTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.commandButton.CommandButtonTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.commandButton.CommandButtonTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.commandLink.CommandLinkTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.commandLink.CommandLinkTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.contextMenu.ContextMenuImageTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.contextMenu.ContextMenuImageTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.contextMenu.ContextMenuTableTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.contextMenu.ContextMenuTableTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.dataFilterSlider.DataFilterSliderTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.dataFilterSlider.DataFilterSliderTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.dataGrid.DataGridTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.dataGrid.DataGridTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.dataList.DataListTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.dataList.DataListTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.dataScroller.DataScrollerTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.dataScroller.DataScrollerTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.dataTable.DataTableTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.dataTable.DataTableTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.dataTable.TableFilteringTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.dataTable.TableFilteringTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.dataTable.TableSortingTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.dataTable.TableSortingTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.dragSupport.DragSupportTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.dragSupport.DragSupportTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.dropDownMenu.HorizontalMenuTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.dropDownMenu.HorizontalMenuTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.editor.AdvancedEditorTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.editor.AdvancedEditorTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.editor.SimpleEditorTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.editor.SimpleEditorTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.extendedDataTable.ExtendedDataTableTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.extendedDataTable.ExtendedDataTableTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.fileUpload.FileUploadTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.fileUpload.FileUploadTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.graphValidator.GraphValidatorAfterModelUpdateTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.graphValidator.GraphValidatorAfterModelUpdateTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.graphValidator.GraphValidatorTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.graphValidator.GraphValidatorTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.include.IncludeTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.include.IncludeTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.inplaceInput.InplaceInputTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.inplaceInput.InplaceInputTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.inplaceSelect.InplaceSelectTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.inplaceSelect.InplaceSelectTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.inputNumberSlider.InputNumberSliderTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.inputNumberSlider.InputNumberSliderTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.jsFunction.JSFunctionTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.jsFunction.JSFunctionTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.keepAlive.KeepAliveTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.keepAlive.KeepAliveTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.log.LogTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.log.LogTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.listShuttle.ListShuttleTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.listShuttle.ListShuttleTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.mediaOutput.MediaOutputTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.mediaOutput.MediaOutputTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.modalPanel.ModalPanelTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.modalPanel.ModalPanelTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.outputPanel.OutputPanelTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.outputPanel.OutputPanelTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.orderingList.OrderingListTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.orderingList.OrderingListTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.paint2d.Paint2DTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.paint2d.Paint2DTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.panel.PanelCustomizationTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.panel.PanelCustomizationTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.panel.PanelTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.panel.PanelTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.panelBar.PanelBarTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.panelBar.PanelBarTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.panelMenu.PanelMenuTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.panelMenu.PanelMenuTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.pickList.PickListTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.pickList.PickListTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.poll.PollTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.poll.PollTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.progressBar.ProgressBarTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.progressBar.ProgressBarTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.push.PushTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.push.PushTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.queue.QueueSettingsTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.queue.QueueSettingsTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.queue.QueueTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.queue.QueueTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.repeat.RepeatTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.repeat.RepeatTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.script.ScriptTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.script.ScriptTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.separator.SeparatorTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.separator.SeparatorTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.simpleTogglePanel.SimpleTogglePanelTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.simpleTogglePanel.SimpleTogglePanelTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.spacer.SpacerTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.spacer.SpacerTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.spinner.SpinnerTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.spinner.SpinnerTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.status.StatusTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.status.StatusTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.style.StyleTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.style.StyleTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.suggestionBox.SuggestionBoxTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.suggestionBox.SuggestionBoxTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.tabPanel.TabPanelTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.tabPanel.TabPanelTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.togglePanel.TogglePanelTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.togglePanel.TogglePanelTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.toolBar.ToolBarTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.toolBar.ToolBarTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.tooltip.TooltipDataTableTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.tooltip.TooltipDataTableTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.tooltip.TooltipTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.tooltip.TooltipTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.tree.TreeNodesAdaptorTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.tree.TreeNodesAdaptorTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.tree.TreeTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.tree.TreeTestCase" />
+ </classes>
+ </test>
+
+</suite>
+
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/profiles/unix/testng.xml
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/profiles/unix/testng.xml (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/profiles/unix/testng.xml 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,524 @@
+<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
+<suite name="seleniumTest">
+
+ <test
+ name="org.jboss.richfaces.integrationTest.actionParameter.ActionParameterTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.actionParameter.ActionParameterTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.ajaxForm.AjaxFormTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.ajaxForm.AjaxFormTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.ajaxRegion.AjaxRegionTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.ajaxRegion.AjaxRegionTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.ajaxSupport.AjaxSupportTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.ajaxSupport.AjaxSupportTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.ajaxValidator.AjaxValidatorTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.ajaxValidator.AjaxValidatorTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.ajaxValidator.AjaxValidatorHibernatePartTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.ajaxValidator.AjaxValidatorHibernatePartTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.beanValidator.BeanValidatorTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.beanValidator.BeanValidatorTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.calendar.CalendarStylingTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.calendar.CalendarStylingTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.calendar.CalendarTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.calendar.CalendarTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.calendar.OrganizerTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.calendar.OrganizerTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.colorPicker.ColorPickerTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.colorPicker.ColorPickerTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.columns.ColumnsTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.columns.ColumnsTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.comboBox.ComboBoxTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.comboBox.ComboBoxTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.commandButton.CommandButtonTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.commandButton.CommandButtonTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.commandLink.CommandLinkTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.commandLink.CommandLinkTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.contextMenu.ContextMenuImageTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.contextMenu.ContextMenuImageTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.contextMenu.ContextMenuTableTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.contextMenu.ContextMenuTableTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.dataFilterSlider.DataFilterSliderTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.dataFilterSlider.DataFilterSliderTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.dataGrid.DataGridTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.dataGrid.DataGridTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.dataList.DataListTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.dataList.DataListTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.dataScroller.DataScrollerTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.dataScroller.DataScrollerTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.dataTable.DataTableTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.dataTable.DataTableTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.dataTable.TableFilteringTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.dataTable.TableFilteringTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.dataTable.TableSortingTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.dataTable.TableSortingTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.dragSupport.DragSupportTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.dragSupport.DragSupportTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.dropDownMenu.HorizontalMenuTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.dropDownMenu.HorizontalMenuTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.editor.AdvancedEditorTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.editor.AdvancedEditorTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.editor.SimpleEditorTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.editor.SimpleEditorTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.extendedDataTable.ExtendedDataTableTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.extendedDataTable.ExtendedDataTableTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.fileUpload.FileUploadTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.fileUpload.FileUploadTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.graphValidator.GraphValidatorAfterModelUpdateTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.graphValidator.GraphValidatorAfterModelUpdateTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.graphValidator.GraphValidatorTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.graphValidator.GraphValidatorTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.include.IncludeTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.include.IncludeTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.inplaceInput.InplaceInputTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.inplaceInput.InplaceInputTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.inplaceSelect.InplaceSelectTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.inplaceSelect.InplaceSelectTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.inputNumberSlider.InputNumberSliderTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.inputNumberSlider.InputNumberSliderTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.jsFunction.JSFunctionTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.jsFunction.JSFunctionTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.keepAlive.KeepAliveTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.keepAlive.KeepAliveTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.log.LogTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.log.LogTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.listShuttle.ListShuttleTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.listShuttle.ListShuttleTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.mediaOutput.MediaOutputTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.mediaOutput.MediaOutputTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.modalPanel.ModalPanelTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.modalPanel.ModalPanelTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.outputPanel.OutputPanelTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.outputPanel.OutputPanelTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.orderingList.OrderingListTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.orderingList.OrderingListTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.paint2d.Paint2DTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.paint2d.Paint2DTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.panel.PanelCustomizationTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.panel.PanelCustomizationTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.panel.PanelTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.panel.PanelTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.panelBar.PanelBarTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.panelBar.PanelBarTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.panelMenu.PanelMenuTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.panelMenu.PanelMenuTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.pickList.PickListTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.pickList.PickListTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.poll.PollTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.poll.PollTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.progressBar.ProgressBarTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.progressBar.ProgressBarTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.push.PushTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.push.PushTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.queue.QueueSettingsTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.queue.QueueSettingsTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.queue.QueueTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.queue.QueueTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.repeat.RepeatTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.repeat.RepeatTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.script.ScriptTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.script.ScriptTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.separator.SeparatorTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.separator.SeparatorTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.simpleTogglePanel.SimpleTogglePanelTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.simpleTogglePanel.SimpleTogglePanelTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.spacer.SpacerTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.spacer.SpacerTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.spinner.SpinnerTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.spinner.SpinnerTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.status.StatusTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.status.StatusTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.style.StyleTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.style.StyleTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.suggestionBox.SuggestionBoxTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.suggestionBox.SuggestionBoxTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.tabPanel.TabPanelTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.tabPanel.TabPanelTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.togglePanel.TogglePanelTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.togglePanel.TogglePanelTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.toolBar.ToolBarTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.toolBar.ToolBarTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.tooltip.TooltipDataTableTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.tooltip.TooltipDataTableTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.tooltip.TooltipTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.tooltip.TooltipTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.tree.TreeNodesAdaptorTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.tree.TreeNodesAdaptorTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.tree.TreeTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.tree.TreeTestCase" />
+ </classes>
+ </test>
+
+</suite>
+
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/profiles/windows/testng.xml
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/profiles/windows/testng.xml (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/profiles/windows/testng.xml 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,524 @@
+<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
+<suite name="seleniumTest">
+
+ <test
+ name="org.jboss.richfaces.integrationTest.actionParameter.ActionParameterTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.actionParameter.ActionParameterTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.ajaxForm.AjaxFormTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.ajaxForm.AjaxFormTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.ajaxRegion.AjaxRegionTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.ajaxRegion.AjaxRegionTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.ajaxSupport.AjaxSupportTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.ajaxSupport.AjaxSupportTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.ajaxValidator.AjaxValidatorTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.ajaxValidator.AjaxValidatorTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.ajaxValidator.AjaxValidatorHibernatePartTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.ajaxValidator.AjaxValidatorHibernatePartTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.beanValidator.BeanValidatorTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.beanValidator.BeanValidatorTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.calendar.CalendarStylingTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.calendar.CalendarStylingTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.calendar.CalendarTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.calendar.CalendarTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.calendar.OrganizerTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.calendar.OrganizerTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.colorPicker.ColorPickerTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.colorPicker.ColorPickerTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.columns.ColumnsTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.columns.ColumnsTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.comboBox.ComboBoxTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.comboBox.ComboBoxTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.commandButton.CommandButtonTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.commandButton.CommandButtonTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.commandLink.CommandLinkTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.commandLink.CommandLinkTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.contextMenu.ContextMenuImageTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.contextMenu.ContextMenuImageTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.contextMenu.ContextMenuTableTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.contextMenu.ContextMenuTableTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.dataFilterSlider.DataFilterSliderTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.dataFilterSlider.DataFilterSliderTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.dataGrid.DataGridTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.dataGrid.DataGridTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.dataList.DataListTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.dataList.DataListTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.dataScroller.DataScrollerTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.dataScroller.DataScrollerTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.dataTable.DataTableTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.dataTable.DataTableTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.dataTable.TableFilteringTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.dataTable.TableFilteringTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.dataTable.TableSortingTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.dataTable.TableSortingTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.dragSupport.DragSupportTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.dragSupport.DragSupportTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.dropDownMenu.HorizontalMenuTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.dropDownMenu.HorizontalMenuTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.editor.AdvancedEditorTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.editor.AdvancedEditorTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.editor.SimpleEditorTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.editor.SimpleEditorTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.extendedDataTable.ExtendedDataTableTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.extendedDataTable.ExtendedDataTableTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.fileUpload.FileUploadTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.fileUpload.FileUploadTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.graphValidator.GraphValidatorAfterModelUpdateTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.graphValidator.GraphValidatorAfterModelUpdateTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.graphValidator.GraphValidatorTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.graphValidator.GraphValidatorTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.include.IncludeTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.include.IncludeTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.inplaceInput.InplaceInputTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.inplaceInput.InplaceInputTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.inplaceSelect.InplaceSelectTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.inplaceSelect.InplaceSelectTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.inputNumberSlider.InputNumberSliderTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.inputNumberSlider.InputNumberSliderTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.jsFunction.JSFunctionTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.jsFunction.JSFunctionTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.keepAlive.KeepAliveTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.keepAlive.KeepAliveTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.log.LogTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.log.LogTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.listShuttle.ListShuttleTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.listShuttle.ListShuttleTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.mediaOutput.MediaOutputTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.mediaOutput.MediaOutputTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.modalPanel.ModalPanelTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.modalPanel.ModalPanelTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.outputPanel.OutputPanelTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.outputPanel.OutputPanelTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.orderingList.OrderingListTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.orderingList.OrderingListTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.paint2d.Paint2DTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.paint2d.Paint2DTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.panel.PanelCustomizationTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.panel.PanelCustomizationTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.panel.PanelTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.panel.PanelTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.panelBar.PanelBarTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.panelBar.PanelBarTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.panelMenu.PanelMenuTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.panelMenu.PanelMenuTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.pickList.PickListTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.pickList.PickListTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.poll.PollTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.poll.PollTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.progressBar.ProgressBarTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.progressBar.ProgressBarTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.push.PushTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.push.PushTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.queue.QueueSettingsTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.queue.QueueSettingsTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.queue.QueueTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.queue.QueueTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.repeat.RepeatTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.repeat.RepeatTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.script.ScriptTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.script.ScriptTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.separator.SeparatorTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.separator.SeparatorTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.simpleTogglePanel.SimpleTogglePanelTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.simpleTogglePanel.SimpleTogglePanelTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.spacer.SpacerTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.spacer.SpacerTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.spinner.SpinnerTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.spinner.SpinnerTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.status.StatusTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.status.StatusTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.style.StyleTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.style.StyleTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.suggestionBox.SuggestionBoxTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.suggestionBox.SuggestionBoxTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.tabPanel.TabPanelTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.tabPanel.TabPanelTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.togglePanel.TogglePanelTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.togglePanel.TogglePanelTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.toolBar.ToolBarTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.toolBar.ToolBarTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.tooltip.TooltipDataTableTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.tooltip.TooltipDataTableTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.tooltip.TooltipTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.tooltip.TooltipTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.tree.TreeNodesAdaptorTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.tree.TreeNodesAdaptorTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.tree.TreeTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.tree.TreeTestCase" />
+ </classes>
+ </test>
+
+</suite>
+
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/actionParameter/locators.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/actionParameter/locators.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/actionParameter/locators.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,7 @@
+selected-name--text=//text()[starts-with(.,'{0}')]/..
+selected-name--button=//input[@type\='button' and @value\='Set Name to {0}']
+change-skin--label=//div[text()\='Change Demo Appplication Skin To\: ']
+change-skin--link-relative={0}/../div[2]/a[text()\='{1}']
+screen-size--button=//input[@type\='button' and @value\='Show Screen Size']
+screen-size--width--text-relative={0}/../div[1]//tr[1]/td[2]
+screen-size--height--text-relative={0}/../div[1]//tr[2]/td[2]
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/actionParameter/messages.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/actionParameter/messages.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/actionParameter/messages.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,8 @@
+selected-name--prefix=Selected Name\:
+selected-name--pattern={0}{1}
+first-guy=Alex
+second-guy=John
+skin-1-name=DeepMarine
+skin-1-color=rgb(0, 136, 148)
+skin-2-name=BlueSky
+skin-2-color=rgb(190, 214, 248)
\ No newline at end of file
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/ajaxForm/locators.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/ajaxForm/locators.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/ajaxForm/locators.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,3 @@
+ajax-form--ajax-button=//input[@type\='submit' and @value\="Set Local Name to John (Ajax)"]
+ajax-form--non-ajax-button=//input[@type\='submit' and @value\="Set Both Name to Mark (non-Ajax)"]
+ajax-form--text-relative={0}/../../../tr[2]/*/*/text()
\ No newline at end of file
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/ajaxForm/messages.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/ajaxForm/messages.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/ajaxForm/messages.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,2 @@
+ajax-form--ajax-result=Name\:John
+ajax-form--non-ajax-result=Name\:Mark
\ No newline at end of file
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/ajaxRegion/locators.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/ajaxRegion/locators.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/ajaxRegion/locators.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,4 @@
+ajax-region--input=//fieldset[{0}]//table//td[{1}]//table//tr[{2}]//input[@type\='text']
+ajax-region--messages=//fieldset[1]/div[1]/*[2]/ul/li
+ajax-region--typed-name=//span[@id\='outname{0}']
+ajax-region--influenced-text=//span[@id\='out{0}']
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/ajaxRegion/messages.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/ajaxRegion/messages.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/ajaxRegion/messages.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,4 @@
+ajax-region--input=input
+ajax-region--typed-name=Typed Name\:{0}
+ajax-region--value-is-required=Value is required
+ajax-region--fired-event=keyup
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/ajaxSupport/locators.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/ajaxSupport/locators.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/ajaxSupport/locators.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,2 @@
+ajax-support--input=//input[@type\='text']
+ajax-support--text-relative={0}/../../td[2]/*/text()
\ No newline at end of file
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/ajaxSupport/messages.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/ajaxSupport/messages.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/ajaxSupport/messages.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,2 @@
+ajax-support--non-empty=abc
+ajax-support--input-event=keyup
\ No newline at end of file
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/ajaxValidator/locators.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/ajaxValidator/locators.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/ajaxValidator/locators.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,6 @@
+name=ajaxValidatorForm\:name
+age=ajaxValidatorForm\:age
+hibernateName=ajaxValidatorForm2\:name
+hibernateAge=ajaxValidatorForm2\:age
+hibernateEmail=ajaxValidatorForm2\:email
+relativeMessageLink=//input[@id\='%s']/../../td[3]/*[1][@class\='rich-message']
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/ajaxValidator/messages.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/ajaxValidator/messages.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/ajaxValidator/messages.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,25 @@
+value-required={0}\: Validation Error\: Value is required.
+less-than-minimum={0}\: Validation Error\: Value is less than allowable minimum of '3'
+less-than-minimum--enter=12
+greater-than-maximum={0}\: Validation Error\: Value is greater than allowable maximum of '12'
+greater-than-maximum--enter=1234567890123
+valid-name=Sam
+long-range--bellow=17
+long-range--above=100
+long-range={0}\: Validation Error\: Specified attribute is not between the expected values of 18 and 99.
+valid-age=18
+bean-name--length=length must be between 3 and 12
+bad-email-1=corporation.com
+bad-email-2=(a)corporation.com
+well-formed-email=email(a)corporation.com
+bean-name--not-empty=This string contain only spaces
+bean-name--valid-input=Sam Hawkings
+bean-age--min=must be greater than or equal to 18
+bean-age--max--enter=101
+bean-age--max=must be less than or equal to 100
+age-integer-only--enter=abc
+age-integer-only={0}\: 'abc' is not a number. Example\: 99
+bean-age--integer-only={0}\: 'abc' must be a number between -2147483648 and 2147483647 Example\: 9346
+may-not-be-null-or-empty=may not be null or empty
+not-well-formed-email=not a well-formed email address
+may-not-be-null=may not be null
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/beanValidator/locators.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/beanValidator/locators.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/beanValidator/locators.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,6 @@
+bean-validator--header=//legend[text()\='Title']
+bean-validator--input--name=//input[@id\='beanValidatorForm\:name']
+bean-validator--input--email=//input[@id\='beanValidatorForm\:email']
+bean-validator--input--age=//input[@id\='beanValidatorForm\:age']
+bean-validator--relative--validation-message={0}/../../td[3]/*[1][@class\='rich-message']
+bean-validator--button--submit=//input[@type\='button' and @value\='Submit']
\ No newline at end of file
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/beanValidator/messages.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/beanValidator/messages.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/beanValidator/messages.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,18 @@
+may-not-be-null-or-empty=may not be null or empty
+less-than-minimum--enter=12
+bean-name--length=length must be between 3 and 12
+greater-than-maximum--enter=1234567890123
+bean-name--not-empty=This string contain only spaces
+bean-name--valid-input=Sam Hawkings
+may-not-be-null=may not be null
+long-range--bellow=17
+bean-age--min=must be greater than or equal to 18
+bean-age--max--enter=101
+bean-age--max=must be less than or equal to 100
+age-integer-only--enter=abc
+bean-age--integer-only={0}\: 'abc' must be a number between -2147483648 and 2147483647 Example\: 9346
+valid-age=18
+bad-email-1=corporation.com
+bad-email-2=(a)corporation.com
+well-formed-email=email(a)corporation.com
+not-well-formed-email=not a well-formed email address
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/calendar/locators.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/calendar/locators.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/calendar/locators.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,42 @@
+# first tab
+CALENDAR_HEADER=//fieldset[1]/legend
+DATE_INPUT=//fieldset[1]/div/form/table/tbody/tr/td[1]/div/span/input
+DATE_BUTTON=//fieldset[1]/div/form/table/tbody/tr/td[1]/div/span/img
+INPUTS=//fieldset[1]/div/form/table/tbody/tr/td[1]/div/span
+POPUP_MODE_CHECKBOX=//fieldset[1]/div/form/table/tbody/tr/td[2]/table/tbody/tr[1]/td[2]/input
+APPLY_BUTTON_CHECKBOX=//fieldset[1]/div/form/table/tbody/tr/td[2]/table/tbody/tr[2]/td[2]/input
+LOCALE_SELECT=//fieldset[1]/div/form/table/tbody/tr/td[2]/table/tbody/tr[3]/td[2]/table/tbody/tr
+DATE_PATTERN_SELECT=//fieldset[1]/div/form/table/tbody/tr/td[2]/table/tbody/tr[4]/td[2]/select
+
+CALENDAR=//div[contains(@id, 'calendar')]/table
+DOUBLE_LEFT_ARROW=//div[contains(@id, 'calendar')]/table/tbody/tr[1]/td[1]/table/tbody/tr/td[1]/div
+LEFT_ARROW=//div[contains(@id, 'calendar')]/table/tbody/tr[1]/td[1]/table/tbody/tr/td[2]/div
+MONTH_YEAR_LABEL=//div[contains(@id, 'calendar')]/table/tbody/tr[1]/td[1]/table/tbody/tr/td[3]/div
+RIGHT_ARROW=//div[contains(@id, 'calendar')]/table/tbody/tr[1]/td[1]/table/tbody/tr/td[4]/div
+DOUBLE_RIGHT_ARROW=//div[contains(@id, 'calendar')]/table/tbody/tr[1]/td[1]/table/tbody/tr/td[5]/div
+CLOSE_BUTTON=//div[contains(@id, 'calendar')]/table/tbody/tr[1]/td[1]/table/tbody/tr/td[6]/div
+CLEAN_BUTTON=//div[contains(@id, 'calendar')]/table/tbody/tr[9]/td/table/tbody/tr/td[2]/div
+TODAY_BUTTON=//div[contains(@id, 'calendar')]/table/tbody/tr[9]/td/table/tbody/tr/td[5]/div
+APPLY_BUTTON=//div[contains(@id, 'calendar')]/table/tbody/tr[9]/td/table/tbody/tr/td[6]/div
+RANDOM_DAY=//div[contains(@id, 'calendar')]/table/tbody/tr[6]/td[4]
+
+# second tab
+FIELDSET=//fieldset[1]/legend
+
+CELL_X_Y=//fieldset[1]/div/form/table/tbody/tr[%d]/td[%d]
+CELL_X_Y_DATE=//fieldset[1]/div/form/table/tbody/tr[%d]/td[%d]/div/div/table/tbody/tr[1]
+CELL_X_Y_DESC=//fieldset[1]/div/form/table/tbody/tr[%d]/td[%d]/div/div/table/tbody/tr[2]
+CELL_X_Y_NOTE=//fieldset[1]/div/form/table/tbody/tr[%d]/td[%d]/div/div/table/tbody/tr[3]
+
+DIALOG=//div[@id='panelContainer']
+DIALOG_DESCRIPTION=//table[@id='panelContentTable']/tbody/tr[2]/td/form/table/tbody/tr[1]/td[2]/input
+DIALOG_NOTE=//table[@id='panelContentTable']/tbody/tr[2]/td/form/table/tbody/tr[2]/td[2]/textarea
+DIALOG_STORE_BUTTON=//table[@id='panelContentTable']/tbody/tr[2]/td/form/table/tbody/tr[3]/td[1]/input
+DIALOG_CANCEL_BUTTON=//table[@id='panelContentTable']/tbody/tr[2]/td/form/table/tbody/tr[3]/td[2]/button
+DIALOG_CROSS_BUTTON=//div[@id\='panelContainer']/div[2]/div/div[2]/div/img
+
+# third tab
+STYLING_FIELDSET=//fieldset[1]/legend
+STYLING_CELL_X_Y=//fieldset[1]/div/table/tbody/tr[%d]/td[%d]
+STYLING_CALENDAR_BUTTON=//fieldset[1]/div/span/img
+STYLING_RIGHT_ARROW=//fieldset[1]/div/table/tbody/tr[1]/td[1]/table/tbody/tr[1]/td[4]
\ No newline at end of file
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/calendar/messages.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/calendar/messages.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/calendar/messages.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,13 @@
+# second tab
+COMPONENT_DESCRIPTION=This simple example shows the way of calendarDataModel usage for organizer creation.
+
+CLASS_ATTRIBUTE_TODAY=Class attribute of the cell with today's date should contain "rich-calendar-today".
+CLASS_ATTRIBUTE_GREY=Class attribute of the last cell should contain "rich-calendar-boundary-dates".
+DIALOG_VISIBLE=Dialog should be visible.
+DIALOG_NOT_VISIBLE=Dialog should not be visible.
+CELL_X_Y_NOTE=The note in the cell (week %d, day %d).
+CELL_X_Y_DESC=The description in the cell (week %d, day %d).
+
+# third tab
+COMPONENT_DESCRIPTION_3=This simple example shows the way of dates disablement and styling without dataModel usage.
+EVERY_THIRD_CELL=Every third cell should be either disabled (boundary dates) or styled (dates from current month).
\ No newline at end of file
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/colorPicker/locators.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/colorPicker/locators.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/colorPicker/locators.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,23 @@
+COMPONENT_HEADER=//fieldset[1]/legend
+
+IMAGE=//fieldset[1]/div/form/table/tbody/tr[1]/td/img
+COLOR_INPUT=//fieldset[1]/div/form/table/tbody/tr[2]/td[1]/span/input
+COLOR_BUTTON=//fieldset[1]/div/form/table/tbody/tr[2]/td[1]/span/img
+
+COLOR_AREA=//fieldset[1]/div/form/table/tbody/tr[2]/td/div[1]/div/div[1]
+CURSOR=//fieldset[1]/div/form/table/tbody/tr[2]/td/div[1]/div/div[1]/div/div
+RED_VALUE=//fieldset[1]/div/form/table/tbody/tr[2]/td/div[1]/div/div[6]/input
+GREEN_VALUE=//fieldset[1]/div/form/table/tbody/tr[2]/td/div[1]/div/div[7]/input
+BLUE_VALUE=//fieldset[1]/div/form/table/tbody/tr[2]/td/div[1]/div/div[8]/input
+HUE_VALUE=//fieldset[1]/div/form/table/tbody/tr[2]/td/div[1]/div/div[9]/input
+SATURATION_VALUE=//fieldset[1]/div/form/table/tbody/tr[2]/td/div[1]/div/div[10]/input
+BRIGHTNESS_VALUE=//fieldset[1]/div/form/table/tbody/tr[2]/td/div[1]/div/div[11]/input
+CURRENT_COLOR_BOX=//fieldset[1]/div/form/table/tbody/tr[2]/td/div[1]/div/div[3]
+ORIGINAL_COLOR_BOX=//fieldset[1]/div/form/table/tbody/tr[2]/td/div[1]/div/div[4]
+RAINBOW=//fieldset[1]/div/form/table/tbody/tr[2]/td/div[1]/div/div[2]/img
+
+HEX_COLOR=//fieldset[1]/div/form/table/tbody/tr[2]/td/div[1]/div/div[5]/input
+APPLY_BUTTON=//fieldset[1]/div/form/table/tbody/tr[2]/td/div[1]/div/button[1]
+CANCEL_BUTTON=//fieldset[1]/div/form/table/tbody/tr[2]/td/div[1]/div/button[2]
+
+
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/colorPicker/messages.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/colorPicker/messages.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/colorPicker/messages.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,44 @@
+VALUES_CHANGE_RED_1=0
+VALUES_CHANGE_GREEN_1=3
+VALUES_CHANGE_BLUE_1=232
+VALUES_CHANGE_HUE_1=239
+VALUES_CHANGE_SATURATION_1=100
+VALUES_CHANGE_BRIGHTNESS_1=91
+VALUES_CHANGE_HEXCOLOR_1=0003e8
+VALUES_CHANGE_RED_2=255
+VALUES_CHANGE_GREEN_2=255
+VALUES_CHANGE_BLUE_2=255
+VALUES_CHANGE_HUE_2=240
+VALUES_CHANGE_SATURATION_2=0
+VALUES_CHANGE_BRIGHTNESS_2=100
+VALUES_CHANGE_HEXCOLOR_2=ffffff
+
+SET_RGB_NUMBERS_HEXCOLOR=242463
+SET_HSB_NUMBERS_HEXCOLOR=fcd8a1
+
+SET_MAX_VALUE_RED=255
+SET_MAX_VALUE_GREEN=255
+SET_MAX_VALUE_BLUE=255
+SET_MAX_VALUE_HUE=360
+SET_MAX_VALUE_SATURATION=100
+SET_MAX_VALUE_BRIGHTNESS=100
+
+SET_NEGATIVE_VALUE_RED=0
+SET_NEGATIVE_VALUE_GREEN=0
+SET_NEGATIVE_VALUE_BLUE=0
+SET_NEGATIVE_VALUE_HUE=0
+SET_NEGATIVE_VALUE_SATURATION=0
+SET_NEGATIVE_VALUE_BRIGHTNESS=0
+
+SLIDER_HEXCOLOR_1=e80000
+SLIDER_RED_VALUE_1=230
+SLIDER_GREEN_VALUE_1=0
+SLIDER_BLUE_VALUE_1=0
+SLIDER_HEXCOLOR_2=e80000
+SLIDER_RED_VALUE_2=230
+SLIDER_GREEN_VALUE_2=0
+SLIDER_BLUE_VALUE_2=0
+SLIDER_RED_VALUE_3=0
+SLIDER_GREEN_VALUE_3=230
+SLIDER_BLUE_VALUE_3=230
+
\ No newline at end of file
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/columns/locators.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/columns/locators.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/columns/locators.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,3 @@
+columns--table=//form/*[contains(@class,'rich-table')]
+columns--table-cell-header--preformatted=//*[contains(@class,'rich-table-subheadercell')]{0,choice,0\#|1\#[{0}]}
+columns--table-cell--preformatted=//*[contains(@class,'rich-table-row')]{0,choice,0\#|1\#[{0}]}/*[contains(@class,'rich-table-cell')]{1,choice,0\#|1\#[{1}]}
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/columns/messages.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/columns/messages.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/columns/messages.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1 @@
+columns--price-regexp=.*\\s(\\d+)\\$$
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/commandButton/locators.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/commandButton/locators.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/commandButton/locators.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,3 @@
+ajax-support--input=//input[@type\='text']
+command-button--button=//input[@type\='button']
+command-button--text=//*[@id\='out']/*[{0}]/text()
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/commandButton/messages.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/commandButton/messages.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/commandButton/messages.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,3 @@
+ajax-support--non-empty=abc
+command-button--hello=Hello
+command-button--exclamation=\!
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/commandLink/locators.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/commandLink/locators.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/commandLink/locators.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,4 @@
+
+ajax-support--input=//input[@type\='text']
+command-button--text=//*[@id\='out']/*[{0}]/text()
+command-link--link=//a[text()\='Say Hello']
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/commandLink/messages.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/commandLink/messages.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/commandLink/messages.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,4 @@
+
+ajax-support--non-empty=abc
+command-button--hello=Hello
+command-button--exclamation=\!
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/contextMenu/locators.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/contextMenu/locators.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/contextMenu/locators.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,6 @@
+# ContextMenuImageTestCase
+HEADER=//fieldset[1]/legend
+IMAGE=//fieldset[1]/div/table//tr/td/span/img
+CONTEXT_MENU=//fieldset[1]/div/table//tr/td/span/div/div/div
+ZOOM_IN=//div[@id='zin']
+ZOOM_OUT=//div[@id='zout']
\ No newline at end of file
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/contextMenu/messages.properties
===================================================================
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/data-iteration--locators.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/data-iteration--locators.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/data-iteration--locators.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,7 @@
+data-table-common--table=//form/*[contains(@class,'rich-table')]
+data-scroller--button--first-page=//*[contains(@class,'rich-datascr')][1]//*[contains(@class,'rich-dtascroller-table')]//*[contains(@class,'rich-datascr-button')][1]
+data-scroller--button--last-page=//*[contains(@class,'rich-datascr')][1]//*[contains(@class,'rich-dtascroller-table')]//*[contains(@class,'rich-datascr-button')][6]
+data-scroller--button--previous-page=//*[contains(@class,'rich-datascr')][1]//*[contains(@class,'rich-dtascroller-table')]//*[contains(@class,'rich-datascr-button')][2]
+data-scroller--button--next-page=//*[contains(@class,'rich-datascr')][1]//*[contains(@class,'rich-dtascroller-table')]//*[contains(@class,'rich-datascr-button')][5]
+data-scroller--button--numbered-page-preformatted=//*[contains(@class,'rich-datascr')][1]//*[contains(@class,'rich-dtascroller-table')]//*[contains(@class,'rich-datascr-act') or contains(@class,'rich-datascr-inact')]{0,choice,0\#|1\#[{0}]}
+data-scroller--output--active-page=//*[contains(@class,'rich-datascr')][1]//*[contains(@class,'rich-datascr-act')]
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/data-iteration--messages.properties
===================================================================
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/dataFilterSlider/locators.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/dataFilterSlider/locators.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/dataFilterSlider/locators.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,7 @@
+data-filter-slider--header=//legend[text()\='DataFilterSlider example']
+data-filter-slider--table-cells--mileage-preformatted=//*[contains(@class,'rich-table-row')]{0,choice,0\#|1\#[{0}]}/*[contains(@class,'rich-table-cell')][4]
+data-filter-slider--table-cells--brand-preformatted=//*[contains(@class,'rich-table-row')]{0,choice,0\#|1\#[{0}]}/*[contains(@class,'rich-table-cell')][1]
+data-filter-slider--link--brand-preformatted=//a[text()\='{0}']
+data-filter-slider--input--price=//*[@type\='text' and contains(@class,'rich-dataFilterSlider-input-field')]
+data-filter-slider--handle=//*[contains(@class,'rich-dataFilterSlider-handle')]
+data-filter-slider--track=//*[contains(@class,'rich-dataFilterSlider-track')]
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/dataFilterSlider/messages.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/dataFilterSlider/messages.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/dataFilterSlider/messages.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,5 @@
+data-filter-slider--count--max-rows-in-table=10
+data-filter-slider--choices--brands={0,choice,0\#Chevrolet|1\#Toyota}
+data-filter-slider--choices--slider-percentages={0,choice,0\#15|1\#30|2\#0|3\#100}
+data-filter-slider--choices--slider-percentages-interleaving={0,choice,0\#20|1\#70|2\#55}
+data-filter-slider--simple-slider-percentage=35
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/dataGrid/locators.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/dataGrid/locators.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/dataGrid/locators.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1 @@
+data-grid--cells--preformatted=//*[contains(@class,'rich-table-row')]{0,choice,0\#|1\#[{0}]}/*[contains(@class,'rich-table-cell')]{1,choice,0\#|1\#[{1}]}
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/dataGrid/messages.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/dataGrid/messages.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/dataGrid/messages.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,2 @@
+data-grid--cells-per-page=9
+data-grid--cells-per-column=3
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/dataList/locators.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/dataList/locators.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/dataList/locators.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1 @@
+data-list--header=//legend[text()\='Example']
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/dataList/messages.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/dataList/messages.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/dataList/messages.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,2 @@
+data-list--part1=Chevrolet Malibu
+data-list--part2=Chevrolet Corvette
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/dataScroller/locators.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/dataScroller/locators.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/dataScroller/locators.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1 @@
+data-scroller--header=//legend[text()\='Table pagination using Data Scroller example']
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/dataScroller/messages.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/dataScroller/messages.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/dataScroller/messages.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1 @@
+data-scroller--numbered-pages=6,8,4,7,2,10
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/dataTable/locators.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/dataTable/locators.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/dataTable/locators.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,36 @@
+data-table--header=//legend[text()\='DataTable Column/ColumnGroup example']
+data-table--output--whole-table=//legend[text()\='DataTable Column/ColumnGroup example']/../div/table
+data-table-extended--table-cell--highest-bid=//*[contains(@id,'auction\:tb')]/*[contains(@class,'rich-table-row')][7]/*[contains(@class,'rich-table-cell')][2]
+data-table-extended--input--your-bid=//*[contains(@id,'auction\:tb')]/*[contains(@class,'rich-table-row')][7]/*[contains(@class,'rich-table-cell')][3]/*[@type\='text']
+data-table-extended--link--place-bid=//*[contains(@id,'auction\:tb')]/*[contains(@class,'rich-table-row')][7]/*[contains(@class,'rich-table-cell')][3]/*[text()\='Place a bid\!']
+data-table-extended--table-cell--amount=//*[contains(@id,'auction\:tb')]/*[contains(@class,'rich-table-row')][7]/*[contains(@class,'rich-table-cell')][4]
+data-table-modifiable--table-header-cell--key=//*[contains(@id,'column1header') and contains(@class,'rich-table-subheadercell')]
+data-table-modifiable--table-cell--preformatted-locators=//form/*[contains(@class,'rich-table')]/*/*[contains(@class,'rich-table-row')]{0,choice,0\#|1\#[{0}]}/*[contains(@class,'rich-table-cell')][2]
+data-table-modifiable--input--assignee=//*[contains(@id,'column2header') and contains(@class,'rich-table-subheadercell')]/*/*[@type\='text']
+data-table-modifiable--table-cell--assignee=//form/*[contains(@class,'rich-table')]/*/*[contains(@class,'rich-table-row')][1]/*[contains(@class,'rich-table-cell')][3]
+data-table-editable--link--edit=//form/*[contains(@class,'rich-table')]/*/*[contains(@class,'rich-table-row')][{0}]/*[contains(@class,'rich-table-cell')][7]/*[contains(@id,'editlink')]
+data-table-editable--link--delete=//form/*[contains(@class,'rich-table')]/*/*[contains(@class,'rich-table-row')][{0}]/*[contains(@class,'rich-table-cell')][7]/*[contains(@id,'deletelink')]
+data-table-editable--output--price=//form/*[contains(@class,'rich-table')]/*/*[contains(@class,'rich-table-row')][{0}]/*[contains(@class,'rich-table-cell')][3]
+data-table-editable--input--price=//*[text()\='Price']/../*[2]/*[@type\='text']
+data-table-editable--button--store=//*[@type\='button' and @value\='Store']
+data-table-editable--button--yes=//*[@type\='button' and @value\='Yes']
+data-table-editable--button--cancel=//*[@type\='button' and @value\='Cancel']
+data-table-editable--panel--edit=//*[@id\='editPanelContainer']
+data-table-editable--panel--delete=//*[@id\='deletePanelContainer']
+table-filtering--input--state-name=//form/*[contains(@class,'rich-table')]//*[contains(@class,'rich-table-subheadercell')][1]//*[@type\='text']
+table-filtering--input--state-capital=//form/*[contains(@class,'rich-table')]//*[contains(@class,'rich-table-subheadercell')][2]//*[@type\='text']
+table-filtering--table-cell--state-name-preformatted=//*[contains(@class,'rich-table-row')]{0,choice,0\#|1\#[{0}]}/*[contains(@class,'rich-table-cell')][1]
+table-filtering--table-cell--state-capital-preformatted=//*[contains(@class,'rich-table-row')]{0,choice,0\#|1\#[{0}]}/*[contains(@class,'rich-table-cell')][2]
+table-filtering-external--select--timezone=//form/*[contains(@class,'rich-table')]//*[contains(@class,'rich-table-subheadercell')][2]/*/*
+table-filtering-external--option--selected=//form/*[contains(@class,'rich-table')]//*[contains(@class,'rich-table-subheadercell')][2]/*/*/*[@selected]
+table-sorting--header-cell--state=//form/*[contains(@class,'rich-table')]//*[contains(@class,'rich-table-subheadercell')][1]
+table-sorting--header-cell--capital=//form/*[contains(@class,'rich-table')]//*[contains(@class,'rich-table-subheadercell')][2]
+table-sorting--image-src--sort-icon-relative={0}//*[contains(@class,'rich-sort-icon')]/@src
+table-sorting--cells--state-preformatted=//*[contains(@class,'rich-table-row')]{0,choice,0\#|1\#[{0}]}/*[contains(@class,'rich-table-cell')][1]
+table-sorting--cells--capital-preformatted=//*[contains(@class,'rich-table-row')]{0,choice,0\#|1\#[{0}]}/*[contains(@class,'rich-table-cell')][2]
+table-sorting-external--select--column=//*[@class\='equals' and text()\='{0}']/../*[2]/*
+table-sorting-external--select--order=//*[@class\='equals' and text()\='{0}']/../*[3]/*
+table-sorting-external--button--sort=//*[@type\='button' and @value\='Sort Table']
+table-sorting-external--cells--column1-preformatted=//*[contains(@class,'rich-table-row')]{0,choice,0\#|1\#[{0}]}/*[contains(@class,'rich-table-cell')][1]
+table-sorting-external--cells--column2-preformatted=//*[contains(@class,'rich-table-row')]{0,choice,0\#|1\#[{0}]}/*[contains(@class,'rich-table-cell')][2]
+table-sorting-external--cells--column3-preformatted=//*[contains(@class,'rich-table-row')]{0,choice,0\#|1\#[{0}]}/*[contains(@class,'rich-table-cell')][4]
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/dataTable/messages.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/dataTable/messages.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/dataTable/messages.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,15 @@
+data-table--text--whole-table=ExpensessubtotalsMealsHotelsTransportTotals$196.27$442.00$162.00$800.27San Jose25-Aug-97$37.74$112.00$45.0026-Aug-97$27.28$112.00$45.00$65.02$224.00$90.00$379.02Seattle27-Aug-97$96.25$109.00$36.0028-Aug-97$35.00$109.00$36.00$131.25$218.00$72.00$421.25
+data-table-extended--message--lower-bid=Bid amount is lower that highest bid
+data-table-extended--format--amount=${0,number,0.00}
+data-model-modifiable--input--assignee-name=Nick
+data-model-modifiable--count--assignee-table-pages=0
+data-model-modifiable--count--assignee-table-rows=1
+table-filtering--input--state-prefixes=M,A,,Ne,
+table-filtering--input--capital-prefixes=J,,H,C,
+table-filtering-external--input--pairs=M\:-5|\:-6|N\:-5|M\:-5|N\:-7|U\:-7|\:-7|N\:-7|A\:-9|\:-9
+data-filtering-external--output--timezone-preformatted=GMT{0}
+table-sorting-external--columns=First sort by\:|Make|Ascending\#Second sort by\:|Model|Ascending\#Third sort by\:|Mileage|Descending
+data-table-editable--open-tab=Edit Table with ModalPanel
+data-table-extended--open-tab=Extended Data Model
+data-table-modifiable--open-tab=Modifiable Data Model
+data-table--open-tab=Usage
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/dragSupport/locators.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/dragSupport/locators.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/dragSupport/locators.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,7 @@
+drag-support--header=//legend[text()\='Drag-n-Drop example']
+drag-support--div--targets=//div[text()\='{0,choice,1\#PHP Frameworks|2\#.NET Frameworks|3\#ColdFusion Frameworks}']/../../div
+drag-support--div--item=//table[contains(@id,'src')]//div[text()\='{0}']
+drag-support--div--indicator=//*[@id\='indicator']
+drag-support--class--indicator=//*[@id\='indicator']/@class
+drag-support--image-source--indicator=//*[@id\='indicator']//td[1]/img/@src
+drag-support--relative--first-inserted-item={0}/*[2]/*[2]/*/*/*[1]
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/dragSupport/messages.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/dragSupport/messages.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/dragSupport/messages.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,7 @@
+drag-support--regexp--moving--image-source=.*/default\\.gif\\.jsf$
+drag-support--regexp--moving--class=.*(^|\\s+)drgind_default($|\\s+).*
+drag-support--regexp--accepting--image-source=.*/accept\\.gif\\.jsf$
+drag-support--regexp--accepting--class=.*(^|\\s+)drgind_accept($|\\s+).*
+drag-support--regexp--rejecting--image-source=.*/reject\\.gif\\.jsf$
+drag-support--regexp--rejecting--class=.*(^|\\s+)drgind_reject($|\\s+).*
+drag-support--text--items={0,choice,1\#Flexible Ajax|2\#ajaxCFC|3\#AJAXEngine|4\#AjaxAC|5\#MonoRail|6\#wddxAjax|7\#AJAX AGENT|8\#FastPane|9\#JSMX|10\#PAJAJ|11\#Symfony|12\#PowerWEB}
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/editor/locators.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/editor/locators.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/editor/locators.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,87 @@
+ADVANCED_BUTTON=//div[@id='form:controls_body']/table/tbody/tr[1]/td[2]/table/tbody/tr[2]/td/input
+EXAMPLE_HEADER=//fieldset[1]/legend
+
+TEXT_AREA=id=tinymce
+IFRAME=id=form:editorTextArea_ifr
+ADV_DIALOG_IFRAME=//iframe[matches(@id, 'mce_\\d{1,2}_ifr')]
+TEXT_AREA_P=//body[@id='tinymce']/p
+TEXT_AREA_P_A=//body[@id='tinymce']/p/a
+TEXT_AREA_P_IMG=//body[@id='tinymce']/p/img
+TEXT_AREA_P_SPAN=//body[@id='tinymce']/p/span
+TEXT_AREA_P_HR=//body[@id='tinymce']/p/hr
+TEXT_AREA_P_SUB=//body[@id='tinymce']/p/sub
+TEXT_AREA_P_SUP=//body[@id='tinymce']/p/sup
+TEXT_AREA_P2=//body[@id='tinymce']/p[2]
+TEXT_AREA_P2_B=//body[@id='tinymce']/p[2]/b
+TEXT_AREA_P2_I=//body[@id='tinymce']/p[2]/i
+TEXT_AREA_P2_U=//body[@id='tinymce']/p[2]/u
+TEXT_AREA_P2_STRIKE=//body[@id='tinymce']/p[2]/strike
+TEXT_AREA_OL=//body[@id='tinymce']/ol
+TEXT_AREA_OL_LI=//body[@id='tinymce']/ol/li
+TEXT_AREA_UL=//body[@id='tinymce']/ul
+TEXT_AREA_UL_LI=//body[@id='tinymce']/ul/li
+TEXT_AREA_ADDRESS=//body[@id='tinymce']/address
+TEXT_AREA_PRE=//body[@id='tinymce']/pre
+TEXT_AREA_HN=//body[@id='tinymce']/h%d
+
+# simple editor' buttons
+BOLD_BUTTON=id=form:editorTextArea_bold
+ITALIC_BUTTON=id=form:editorTextArea_italic
+UNDERLINE_BUTTON=id=form:editorTextArea_underline
+STRIKETHROUGH_BUTTON=id=form:editorTextArea_strikethrough
+UNDO_BUTTON=id=form:editorTextArea_undo
+REDO_BUTTON=id=form:editorTextArea_redo
+UNORDERED_LIST_BUTTON=id=form:editorTextArea_insertunorderedlist
+ORDERED_LIST_BUTTON=id=form:editorTextArea_insertorderedlist
+
+# advanced editor's buttons
+ADV_UNORDERED_LIST_BUTTON=id=form:editorTextArea_bullist
+ADV_ORDERED_LIST_BUTTON=id=form:editorTextArea_numlist
+ADV_ALIGN_LEFT_BUTTON=id=form:editorTextArea_justifyleft
+ADV_ALIGN_RIGHT_BUTTON=id=form:editorTextArea_justifyright
+ADV_ALIGN_CENTER_BUTTON=id=form:editorTextArea_justifycenter
+ADV_ALIGN_FULL_BUTTON=id=form:editorTextArea_justifyfull
+ADV_STYLE_SELECT_BUTTON=id=form:editorTextArea_styleselect_open
+ADV_FORMAT_SELECT_BUTTON=id=form:editorTextArea_formatselect_open
+ADV_STYLE_N=//table[@id='menu_form:editorTextArea_form:editorTextArea_styleselect_menu_tbl']/tbody/tr[%d]
+ADV_FORMAT_N=//table[@id='menu_form:editorTextArea_form:editorTextArea_formatselect_menu_tbl']/tbody/tr[%d]
+ADV_INDENT_BUTTON=id=form:editorTextArea_indent
+ADV_OUTDENT_BUTTON=id=form:editorTextArea_outdent
+ADV_HORIZONTAL_RULER_BUTTON=id=form:editorTextArea_hr
+ADV_REMOVE_FORMATTING_BUTTON=id=form:editorTextArea_removeformat
+ADV_SUBSCRIPT_BUTTON=id=form:editorTextArea_sub
+ADV_SUPERSCRIPT_BUTTON=id=form:editorTextArea_sup
+ADV_LINK_BUTTON=id=form:editorTextArea_link
+ADV_UNLINK_BUTTON=id=form:editorTextArea_unlink
+ADV_TOGGLE_INVISIBLE_BUTTON=id=form:editorTextArea_visualaid
+ADV_ANCHOR_BUTTON=id=form:editorTextArea_anchor
+ADV_IMAGE_BUTTON=id=form:editorTextArea_image
+ADV_CUSTOM_CHAR_BUTTON=id=form:editorTextArea_charmap
+
+# insert/edit link dialog
+ADV_LINK_DLG_URL=id=href
+ADV_LINK_DLG_TARGET_N=id=target_list
+ADV_LINK_DLG_TITLE=id=linktitle
+ADV_LINK_DLG_CLASS_N=id=class_list
+ADV_LINK_DLG_UPDATE=id=insert
+
+# insert/edit anchor dialog
+ADV_ANCHOR_DLG_NAME=id=anchorName
+ADV_ANCHOR_DLG_INSERT_BUTTON=id=insert
+
+# insert/edit image dialog
+ADV_IMAGE_DLG_URL=id=src
+ADV_IMAGE_DLG_DESCRIPTION=id=alt
+ADV_IMAGE_DLG_ALIGNMENT=id=align
+ADV_IMAGE_DLG_WIDTH=id=width
+ADV_IMAGE_DLG_HEIGHT=id=height
+ADV_IMAGE_DLG_BORDER=id=border
+ADV_IMAGE_DLG_VSPACE=id=vspace
+ADV_IMAGE_DLG_HSPACE=id=hspace
+ADV_IMAGE_DLG_INSERT_BUTTON=id=insert
+
+# insert custom character dialog
+ADV_CUSTOM_CHAR_DLG_M_N=//td[@id='charmapView']/table/tbody/tr[%d]/td[%d]/a
+
+
+
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/editor/messages.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/editor/messages.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/editor/messages.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,29 @@
+COMPONENT_DESCRIPTION=RichFaces Editor component provides possibility to use tinyMCE widget
+STRINGS_SHOULD_BE_BOLD=The string "bbbb" and "dddd" should be in bold.
+STRINGS_SHOULD_BE_ITALIC=The strings "bbbb" and "dddd" should be in italic.
+STRINGS_SHOULD_BE_UNDERLINED=The strings "bbbb" and "dddd" should be underlined.
+STRINGS_SHOULD_HAVE_A_LINE_THROUGH=The strings "bbbb" and "dddd" should have a line through.
+CONTENT_OF_THE_EDITOR=Content of the editor.
+EDITOR_SHOULD_CONTAIN_OL=The editor should contain an ordered list.
+EDITOR_SHOULD_CONTAIN_UL=The editor should contain an unordered list.
+TWO_LINES_SHOULD_CONTAIN_A_PARAGRAPH=The first and the fifth line should contain a paragraph.
+TWO_LINES_IN_THE_EDITOR=There should be two lines in the editor.
+LIST_SHOULD_CONTAIN_THREE_ITEMS=The list should contain three items.
+PARAGRAPH_ALIGNED_TO_THE_SIDE_S=The paragraph should be aligned to the %s.
+PARAGRAPH_JUSTIFIED=The paragraph should be justified.
+PARAGRAPH_SHOULD_HAVE_NO_STYLE=The paragraph should not be styled.
+PARAGRAPHS_CLASS_ATTRIBUTE=Paragraph's class attribute.
+TAG_S_SHOULD_BE_IN_EDITOR=Tag %s should appear in the editor.
+TAG_S_SHOULD_NOT_BE_IN_EDITOR=Tag %s should not appear in the editor.
+CONTENT_OF_TAG_S=Content of tag %s.
+PARAGRAPH_INDENTED_BY_N_PX=Paragraph should be indented by %d pixels.
+NUMBER_OF_RULERS=The number of horizontal rulers in the editor.
+TEXT_IN_SUBSCRIPT=Text written as subscript.
+TEXT_IN_SUPERSCRIPT=Text written as superscript.
+LABEL_OF_LINK=Label of the link.
+LINK_ATTRIBUTE_S=Attribute %s of the link.
+CLASS_ATTRIBUTE=Attribute class of the text in the editor.
+IMG_ATTRIBUTE_S=Attribute %s of the image.
+
+
+
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/extendedDataTable/locators.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/extendedDataTable/locators.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/extendedDataTable/locators.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,20 @@
+extended-data-table--select--sort=//*[text()\='Sort Mode\:']/../td[2]/select
+extended-data-table--select--selection=//*[text()\='Selection Mode\:']/../td[2]/select
+extended-data-table--cells=//*[contains(@class,'rich-table')]//*[contains(@class,'rich-extdt-firstrow')]{0,choice,0\#|1\#[{0}]}/*[contains(@class,'rich-extdt-cell')]{1,choice,0\#|1\#[{1}]}
+extended-data-table--table=//*[contains(@class,'rich-table')]
+extended-data-table--selected-row=//*[contains(@class,'rich-table')]//*[contains(@class,'rich-extdt-firstrow') and contains(@class,'rich-sdt-row-selected') {0}]
+extended-data-table--relative-column-header--from-label={0}/../../..
+extended-data-table--relative-div--context-menu-button={0}/*[contains(@class,'extdt-menu-div')]
+extended-data-table--column-header--state=//*[contains(@class,'extdt-sortable-header') and text()\='State Name']
+extended-data-table--column-header--capital=//*[contains(@class,'extdt-sortable-header') and text()\='State Capital']
+extended-data-table--column-header--time-zone=//*[contains(@class,'extdt-sortable-header') and text()\='Time Zone']
+extended-data-table--column-header--flag=//*[contains(@class,'extdt-sortable-header') and text()\='Flag']
+extended-data-table--input--filter-column=//*[contains(@class,'rich-table')]//*[contains(@class,'extdt-table-filterrow')]//*[contains(@class,'rich-extdt-subheadercell')][{0}]//*[@type\='text']
+extended-data-table--menu-item--group-by-column=//*[contains(@class,'rich-menu-item-label') and text()\='Group by this column']
+extended-data-table--table-row--group-text-preformatted=//*[contains(@class,'rich-table')]//*[contains(@class,'extdt-group-row')]{0,choice,0\#|1\#[{0}]}/*/text()
+extended-data-table--table-row--regular-row-preformatted=//*[contains(@class,'rich-table')]/*[contains(@id,'table\:tb')]/*[contains(@class,'row')]{0,choice,0\#|1\#[{0}]}
+extended-data-table--relative-div--drop-zone-left={0}/../../../*[contains(@class,'extdt-hdrop') and contains(@id,'left')]
+extended-data-table--relative-div--drop-zone-right={0}/../../../*[contains(@class,'extdt-hdrop') and contains(@id,'right')]
+extended-data-table--splash-screen=//*[@class\='extdt-ss-vsbl']
+extended-data-table--relative-image-src--flag={0}/*/@src
+extended-data-table--relative-div--column-to-its-content={0}/*
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/extendedDataTable/messages.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/extendedDataTable/messages.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/extendedDataTable/messages.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,17 @@
+extended-data-table--option--selection-none=none
+extended-data-table--option--selection-single=single
+extended-data-table--option--selection-multi=multi
+extended-data-table--option--sort-single=single
+extended-data-table--option--sort-multi=multi
+extended-data-table--input--single-row=3
+extended-data-table--output--mode-single--single-row=3
+extended-data-table--output--mode-multi--single-row=3
+extended-data-table--input--multiple-rows=4,2,2,5,6,3,1,6
+extended-data-table--output--mode-single--multiple-rows=4
+extended-data-table--output--mode-multi--multiple-rows=4,5,3,1
+extended-data-table--output--mode-none=
+extended-data-table--input--state-prefixes=M,A,,Ne,
+extended-data-table--input--capital-prefixes=J,,H,C,
+extended-data-table--class--group-row=extdt-group-row
+extended-data-table--input--sorting-letter-in-dragging=M
+extended-data-table--option-value--selection-mode-preformatted=value\={0}
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/fileUpload/locators.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/fileUpload/locators.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/fileUpload/locators.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,22 @@
+EXAMPLE_HEADER=//fieldset[1]/legend
+ADD_BUTTON_N=//fieldset[1]/div/form/table/tbody/tr/td[1]/div/table/tbody/tr/td/div[1]/div/div[2]/input[%d]
+ADD_BUTTON_CLASS=//fieldset[1]/div/form/table/tbody/tr/td[1]/div/table/tbody/tr/td/div[1]/div
+UPLOAD_BUTTON_STYLE=//fieldset[1]/div/form/table/tbody/tr/td[1]/div/table/tbody/tr/td/div[2]
+UPLOAD_BUTTON=//fieldset[1]/div/form/table/tbody/tr/td[1]/div/table/tbody/tr/td/div[2]/div
+CLEAR_ALL_BUTTON=//fieldset[1]/div/form/table/tbody/tr/td[1]/div/table/tbody/tr/td/div[3]/div
+CLEAR_ALL_BUTTON_STYLE=//fieldset[1]/div/form/table/tbody/tr/td[1]/div/table/tbody/tr/td/div[3]
+CLEAR_UPLOADED_DATA_BUTTON=//fieldset[1]/div/form/table/tbody/tr/td[2]/span/input
+
+NOT_UPLOADED_LIST_TR=//fieldset[1]/div/form/table/tbody/tr/td[1]/div/div/table/tbody/tr
+NOT_UPLOADED_LIST_N_NAME=//fieldset[1]/div/form/table/tbody/tr/td[1]/div/div/table[%d]/tbody/tr/td[1]/div[1]
+NOT_UPLOADED_LIST_N_DONE=//fieldset[1]/div/form/table/tbody/tr/td[1]/div/div/table[%d]/tbody/tr/td[1]/div[3]
+NOT_UPLOADED_LIST_N_CANCEL=//fieldset[1]/div/form/table/tbody/tr/td[1]/div/div/table[%d]/tbody/tr/td[2]/div/a
+
+UPLOADED_FILES_INFO=//fieldset[1]/div/form/table/tbody/tr/td[2]/span/div/div[2]
+UPLOADED_LIST_TR=//fieldset[1]/div/form/table/tbody/tr/td[2]/span/div/div[2]/table/tbody/tr
+UPLOADED_LIST_N_IMG=//fieldset[1]/div/form/table/tbody/tr/td[2]/span/div/div[2]/table/tbody/tr[%d]/td/div/div/table/tbody/tr/td[1]/img
+UPLOADED_LIST_N_NAME=//fieldset[1]/div/form/table/tbody/tr/td[2]/span/div/div[2]/table/tbody/tr[%d]/td/div/div/table/tbody/tr/td[2]/table/tbody/tr[1]/td[2]
+UPLOADED_LIST_N_SIZE=//fieldset[1]/div/form/table/tbody/tr/td[2]/span/div/div[2]/table/tbody/tr[%d]/td/div/div/table/tbody/tr/td[2]/table/tbody/tr[2]/td[2]
+
+AUTOMATIC_UPLOAD=//fieldset[2]/form/table/tbody/tr/td[1]/input
+FLASH=//fieldset[2]/form/table/tbody/tr/td[2]/input
\ No newline at end of file
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/fileUpload/messages.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/fileUpload/messages.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/fileUpload/messages.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,24 @@
+COULD_NOT_CREATE_IMAGE=Could not create the image.
+PROVIDED_URL_NOT_VALID=The provided string is not a valid URL.
+COULD_NOT_READ_IMAGE=Could not read the image from the given URL.
+
+LEFT_PANEL_NUMBER_OF_ITEMS=The number of items in the left panel.
+LEFT_PANEL_NAME_N=The name of the item nr. %d in the left panel.
+LEFT_PANEL_CANCEL_N=The link of the item nr. %d in the left panel.
+LEFT_PANEL_DONE_N=The string under item nr. %d's name in the left panel.
+
+RIGHT_PANEL_CONTENT=The content of the right panel.
+RIGHT_PANEL_NUMBER_OF_ITEMS=The number of items in the right panel.
+RIGHT_PANEL_NAME_N=The name of the item nr. %d in the right panel.
+RIGHT_PANEL_SIZE_N=The size of the item nr. %d in the right panel.
+RIGHT_PANEL_COLOR_N_X_Y=The color of pixel [%d,%d] of image nr. %d in the right panel.
+
+ADD_BUTTON_ENABLED=The "Add" button should be enabled.
+ADD_BUTTON_NOT_ENABLED=The "Add" button should not be enabled.
+UPLOAD_BUTTON_VISIBLE=The "Upload" button should be visible.
+UPLOAD_BUTTON_NOT_VISIBLE=The "Upload" button should not be visible.
+CLEAR_ALL_BUTTON_VISIBLE=The "Clear all" button should be visible.
+CLEAR_ALL_BUTTON_NOT_VISIBLE=The "Clear all" button should not be visible.
+CLEAR_UPLOADED_DATA_BUTTON_VISIBLE=The "Clear uploaded data" button should be visible.
+CLEAR_UPLOADED_DATA_BUTTON_NOT_VISIBLE=The "Clear uploaded data" button should not be visible.
+
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/graphValidator/locators.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/graphValidator/locators.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/graphValidator/locators.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,11 @@
+graph-validator--header1=//fieldset[1]//legend[text()\='Title']
+graph-validator--input--name=//input[@id\='graphValidatorForm\:name']
+graph-validator--input--email=//input[@id\='graphValidatorForm\:email']
+graph-validator--input--age=//input[@id\='graphValidatorForm\:age']
+graph-validator--relative--validation-message={0}/../../td[3]/*[1][@class\='rich-message']
+graph-validator--button--submit1=//input[@type\='button' and @value\='Store changes']
+graph-validator--header2=//fieldset[2]//legend[text()\='Title']
+graph-validator--button--submit2=//input[@type\='button' and @value\='Store my details']
+graph-validator--output--validation-message=//form[@name\="graphValidatorForm2"]//*[@class\="rich-messages-label"]
+graph-validator--attribute--validation-message-class=//form[@name\="graphValidatorForm2"]/*[@class\="rich-messages"]/*/@class
+graph-validator--input--activity-times=//form[@id\='graphValidatorForm2']/table/tbody/tr[{0}]//input[@type\='text']
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/graphValidator/messages.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/graphValidator/messages.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/graphValidator/messages.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,27 @@
+graph-validator--attribute--class-valid=green
+graph-validator--attribute--class-invalid=red
+graph-validator--message--please-fill-at-least-one-entry=Invalid values\: Please feel at list one entry
+graph-validator--message--changes-stored-successfully=Changes Stored Successfully
+graph-validator--message--invalid-values=Invalid values\:
+graph-validator--message--sum-too-great=Invalid values\: Only 24h in a day\!
+graph-validator--input--ok=1
+graph-validator--input--too-great=13
+graph-validator--input--sum-too-great=9
+may-not-be-null-or-empty=may not be null or empty
+less-than-minimum--enter=12
+bean-name--length=length must be between 3 and 12
+greater-than-maximum--enter=1234567890123
+less-than-minimum-of-2={0}\: Validation Error\: Value is less than allowable minimum of '2'
+bean-name--valid-input=Sam Hawkings
+may-not-be-null=may not be null
+long-range--bellow=17
+bean-age--min=must be greater than or equal to 18
+bean-age--max--enter=101
+bean-age--max=must be less than or equal to 100
+age-integer-only--enter=abc
+bean-age--integer-only={0}\: 'abc' must be a number between -2147483648 and 2147483647 Example\: 9346
+valid-age=18
+not-well-formed-email=not a well-formed email address
+well-formed-email=email(a)corporation.com
+bad-email-1=corporation.com
+bad-email-2=(a)corporation.com
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/include/locators.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/include/locators.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/include/locators.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,11 @@
+include--header=//legend[text()\='Include example']
+include--button--previous=//*[@type\='button' and @value\='<<Previous']
+include--button--next=//*[@type\='button' and @value\='Next >>']
+include--input--first-name=//*[text()\='First Name\:']/../*[2]/*[@type\='text']
+include--input--last-name=//*[text()\='Last Name\:']/../*[2]/*[@type\='text']
+include--input--company=//*[text()\='Company\:']/../*[2]/*[@type\='text']
+include--input--notes=//*[contains(@id, 'notes')]
+include--output--first-name=//*[text()\='First Name\:']/../*[2]
+include--output--last-name=//*[text()\='Last Name\:']/../*[2]
+include--output--company=//*[text()\='Company\:']/../*[2]
+include--output--notes=//*[text()\='Notes\:']/../*[2]
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/include/messages.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/include/messages.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/include/messages.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,4 @@
+include--input--sample=sample{0}
+include--message--company-required=Company\: Validation Error\: Value is required.
+include--message--last-name-required=Last Name\: Validation Error\: Value is required.
+include--message--notes-required=Notes\: Validation Error\: Value is required.
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/inplaceInput/locators.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/inplaceInput/locators.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/inplaceInput/locators.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,16 @@
+FIRST_NAME=//fieldset[1]/div/div[1]/div[2]/table/tbody/tr[1]/td[2]/span
+FIRST_NAME_INPUT=//fieldset[1]/div/div[1]/div[2]/table/tbody/tr[1]/td[2]/span/input
+FIRST_EMAIL=//fieldset[1]/div/div[1]/div[2]/table/tbody/tr[2]/td[2]/span
+FIRST_EMAIL_INPUT=//fieldset[1]/div/div[1]/div[2]/table/tbody/tr[2]/td[2]/span/input
+SECOND_NAME=//fieldset[2]/div/div[1]/div[2]/table/tbody/tr[1]/td[2]/span
+SECOND_NAME_INPUT=//fieldset[2]/div/div[1]/div[2]/table/tbody/tr[1]/td[2]/span/input
+SECOND_NAME_OK=//fieldset[2]/div/div[1]/div[2]/table/tbody/tr[1]/td[2]/span/div/div[2]/input[1]
+SECOND_NAME_CANCEL=//fieldset[2]/div/div[1]/div[2]/table/tbody/tr[1]/td[2]/span/div/div[2]/input[2]
+SECOND_EMAIL=//fieldset[2]/div/div[1]/div[2]/table/tbody/tr[2]/td[2]/span
+SECOND_EMAIL_INPUT=//fieldset[2]/div/div[1]/div[2]/table/tbody/tr[2]/td[2]/span/input
+SECOND_EMAIL_OK=//fieldset[2]/div/div[1]/div[2]/table/tbody/tr[2]/td[2]/span/div/div[2]/input[1]
+SECOND_EMAIL_CANCEL=//fieldset[2]/div/div[1]/div[2]/table/tbody/tr[2]/td[2]/span/div/div[2]/input[2]
+THIRD=//fieldset[3]/div/span
+THIRD_INPUT=//fieldset[3]/div/span/input
+THIRD_SAVE=//fieldset[3]/div/span/div/button[1]
+THIRD_CANCEL=//fieldset[3]/div/span/div/button[2]
\ No newline at end of file
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/inplaceInput/messages.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/inplaceInput/messages.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/inplaceInput/messages.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,10 @@
+COMPONENT_DESCRIPTION=InplaceInput is a simple input component which displays the current value
+INITIAL_VALUE_NAME=Default value in the inplace input should be "click to enter your name".
+INITIAL_VALUE_EMAIL=Default value in the inplace input should be "click to enter your email".
+NAME_JOHN_SMITH=The input should contain "John Smith".
+EMAIL_JOHN_SMITH=The input should contain "john(a)smith.name".
+RICH_INPLACE_VIEW=The class attribute of the inplace input should contain "rich-inplace-view".
+NOT_RICH_INPLACE_CHANGED=The class attribute of the inplace input should not contain "rich-inplace-changed".
+RICH_INPLACE_CHANGED=The class attribute of the inplace input should contain "rich-inplace-changed".
+NOT_RICH_INPLACE_EDIT=The class attribute of the inplace input should not contain "rich-inplace-edit".
+RICH_INPLACE_EDIT=The class attribute of the inplace input should contain "rich-inplace-edit".
\ No newline at end of file
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/inplaceSelect/locators.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/inplaceSelect/locators.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/inplaceSelect/locators.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,21 @@
+FIRST=//fieldset[1]/div/span
+FIRST_SELECT_VIEW=//fieldset[1]//*[contains(@class,'rich-inplace-select-view')]
+FIRST_INPUT_1=//fieldset[1]/div/span/input[1]
+FIRST_INPUT_2=//fieldset[1]/div/span/input[2]
+FIRST_LIST_SPAN_N=//*[@class\='rich-inplace-select-list-scroll']/span[starts-with(text(),'Option')][%d]
+FIRST_LIST_SPAN=//*[@class\='rich-inplace-select-list-scroll']/span[starts-with(text(),'Option')]
+
+SECOND=//fieldset[2]/div/div[1]/div
+SECOND_INPUT_1=//fieldset[2]/div/div[1]/div/input[1]
+SECOND_INPUT_2=//fieldset[2]/div/div[1]/div/input[2]
+SECOND_LIST_SPAN_N=//*[not(contains(@class,'rich-inplace-select-view'))]/*/*/*/*[@class\='rich-inplace-select-list-scroll']/span[text()\='Alabama']/../span[%d]
+SECOND_LIST_SPAN=//*[not(contains(@class,'rich-inplace-select-view'))]/*/*/*/*[@class\='rich-inplace-select-list-scroll']/span[text()\='Alabama']/../span
+SECOND_OK_BUTTON=//fieldset[2]/div/div[1]/div/div/div[2]/input[1]
+
+THIRD=//fieldset[3]/div/form/table/tbody/tr/td[2]/span
+THIRD_INPUT_1=//fieldset[3]/div/form/table/tbody/tr/td[2]/span/input[1]
+THIRD_INPUT_2=//fieldset[3]/div/form/table/tbody/tr/td[2]/span/input[2]
+THIRD_LIST_SPAN_N=//*[not(contains(@class,'rich-inplace-select-view'))]/*/*/*/*[@class\='rich-inplace-select-list-scroll']/span[text()\='Alabama']/../span[%d]
+THIRD_LIST_SPAN=//*[not(contains(@class,'rich-inplace-select-view'))]/*/*/*/*[@class\='rich-inplace-select-list-scroll']/span[text()\='Alabama']/../span
+THIRD_CAPITAL=//fieldset[3]/div/form/table/tbody/tr/td[3]/span
+THIRD_SAVE_BUTTON=//fieldset[3]/div/form/table/tbody/tr/td[2]/span/div/button[1]
\ No newline at end of file
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/inplaceSelect/messages.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/inplaceSelect/messages.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/inplaceSelect/messages.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,9 @@
+COMPONENT_DESCRIPTION=Inplace Selectis a simple input component which displays current value as outputText
+CLICK_HERE_TO_EDIT=The component should contain "Click here to edit".
+DOUBLE_CLICK_TO_EDIT=The component should contain "Double click to edit".
+READ_ONLY=The input field of the component should be read only.
+DISPLAY_NONE=The select should not be expanded.
+OPTION4_SELECTED="Option 4" should be selected.
+ARKANSAS_SELECTED="Arkansas" should be selected.
+LITTLE_ROCK=The capital of the Arkansas is Little Rock.
+COUNT_OF_ITEMS=Count of items in the component.
\ No newline at end of file
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/inputNumberSlider/locators.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/inputNumberSlider/locators.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/inputNumberSlider/locators.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,4 @@
+SLIDER_N=//fieldset[1]/div/table[%d]/tbody/tr[2]/td/table/tbody/tr/td
+SLIDER_N_HANDLE=//fieldset[1]/div/table[%d]/tbody/tr[2]/td/table/tbody/tr/td/div[1]/div[2]
+SLIDER_N_TIP=//fieldset[1]/div/table[%d]/tbody/tr[2]/td/table/tbody/tr/td/div[1]/div[1]
+SLIDER_N_INPUT=//fieldset[1]/div/table[%d]/tbody/tr[1]/td[3]/input
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/inputNumberSlider/messages.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/inputNumberSlider/messages.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/inputNumberSlider/messages.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,11 @@
+COMPONENT_DESCRIPTION=InputNumberSlider is a highly customizable component
+HANDLE_N_PX=Handle should be offset by %d pixels.
+TIP_N_PX=The box with a tip should be offset by %d pixels.
+TIP_SHOULD_BE_VISIBLE=The box with a tip should be visible.
+TIP_SHOULD_NOT_BE_VISIBLE=The box with a tip should not be visible.
+OFFSETS_SHOULD_BE_THE_SAME=Tip and handle's offsets should be the same.
+TIP_FIRST_HALF=The box with tip should be in the first half of the slider.
+TIP_SECOND_HALF=The box with tip should be in the second half of the slider.
+HANDLE_FIRST_HALF=The handle should be in the first half of the slider.
+HANDLE_SECOND_HALF=The handle should be in the second half of the slider.
+VALUE_IN_INPUT=The value in slider's input box.
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/jsFunction/locators.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/jsFunction/locators.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/jsFunction/locators.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,2 @@
+js-function--active-span=//fieldset[1]/div[1]/table[1]//span[text()\='{0}']
+js-function--show-name=//*[@id\='showname']
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/jsFunction/messages.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/jsFunction/messages.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/jsFunction/messages.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,3 @@
+js-function--name1=Kate
+js-function--name2=John
+js-function--name3=Alex
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/keepAlive/locators.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/keepAlive/locators.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/keepAlive/locators.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,9 @@
+keep-alive--header=//legend[text()\='KeepAlive demo']
+keep-alive--input--incorrect1=//fieldset/div/table/tbody/tr[2]/td[1]/form/input[@type\='text'][1]
+keep-alive--input--incorrect2=//fieldset/div/table/tbody/tr[2]/td[1]/form/input[@type\='text'][2]
+keep-alive--button--incorrect=//fieldset/div/table/tbody/tr[2]/td[1]/form/*[@type\='button']
+keep-alive--output--incorrect=//fieldset/div/table/tbody/tr[2]/td[1]/form/*[contains(@id, 'sum')]
+keep-alive--input--correct1=//fieldset/div/table/tbody/tr[2]/td[2]/form/input[@type\='text'][1]
+keep-alive--input--correct2=//fieldset/div/table/tbody/tr[2]/td[2]/form/input[@type\='text'][2]
+keep-alive--button--correct=//fieldset/div/table/tbody/tr[2]/td[2]/form/*[@type\='button']
+keep-alive--output--correct=//fieldset/div/table/tbody/tr[2]/td[2]/form/*[contains(@id, 'sum')]
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/keepAlive/messages.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/keepAlive/messages.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/keepAlive/messages.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,3 @@
+keep-alive--input--first-number=2
+keep-alive--input--second-number=3
+keep-alive--output--expected-result-number=5
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/log/locators.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/log/locators.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/log/locators.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,5 @@
+log--header=//legend[text()\='Log demo']
+log--input--text=//input[@type\='text']
+log--button--clear=//button[text()\='Clear']
+log--output--text //div[@id\='logConsole']
+log--output--divs=//div[@id\='logConsole']/div
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/log/messages.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/log/messages.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/log/messages.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,3 @@
+log--input--sample=abc
+log--output--debug=debug
+log--output--clear=Clear
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/mediaOutput/locators.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/mediaOutput/locators.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/mediaOutput/locators.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,3 @@
+media-output--header=//legend[text()\='MediaOutput example']
+media-output--attribute--flash-object-data=//a[@id\='swfLink']/@href
+media-output--attribute--image-src=//p[text()\='Dynamically generated JPEG file\:']/../img/@src
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/mediaOutput/messages.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/mediaOutput/messages.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/mediaOutput/messages.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,2 @@
+media-output--md5-digest--flash=b979402c1c6aeba2a32821ce666621
+media-output--md5-digest--image=1fbdf5da30f854b9bdb797ed6b30393d
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/modalPanel/locators.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/modalPanel/locators.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/modalPanel/locators.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,16 @@
+FIRST_EXAMPLE_HEADER=//fieldset[1]/legend
+FIRST_PANEL=//div[contains(@class, 'rich-modalpanel') and contains(@id, 'panelContainer')]
+FIRST_PANEL_POSITION=//div[contains(@class, 'rich-modalpanel') and contains(@id, 'panelContainer')]/div[2]/div@style
+FIRST_PANEL_OPEN=//fieldset[1]/div/a
+FIRST_PANEL_CLOSE=//div[contains(@class, 'rich-modalpanel') and contains(@id, 'panelContainer')]/div[2]/div/div[2]/div/img
+FIRST_PANEL_HEADER=//div[contains(@class, 'rich-modalpanel') and contains(@id, 'panelContainer')]/div[2]/div/div[2]/table/tbody/tr[1]/td/div
+FIRST_PANEL_CONTENT=//div[contains(@class, 'rich-modalpanel') and contains(@id, 'panelContainer')]/div[2]/div/div[2]/table/tbody/tr[2]/td
+
+SECOND_EXAMPLE_HEADER=//fieldset[2]/legend
+SECOND_PANEL=//div[@id='mpContainer']
+SECOND_PANEL_POSITION=//div[@id='mpContainer']/div[2]/div@style
+SECOND_PANEL_OPEN=//fieldset[2]/div/a
+SECOND_PANEL_CLOSE=//div[@id='mpContainer']/div[2]/div/div[2]/table/tbody/tr[2]/td/p[3]/a
+SECOND_PANEL_HEADER=//div[@id='mpContainer']/div[2]/div/div[2]/table/tbody/tr[1]/td/div
+SECOND_PANEL_CONTENT=//div[@id='mpContainer']/div[2]/div/div[2]/table/tbody/tr[2]/td
+
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/modalPanel/messages.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/modalPanel/messages.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/modalPanel/messages.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,10 @@
+COMPONENT_DESCRIPTION=RichFaces Modal Panel is a container that blocks an operation on the base page when the modal panel is shown.
+FIRST_PANEL_NOT_VISIBLE=The first panel should not be visible.
+FIRST_PANEL_VISIBLE=The first panel should be visible.
+FIRST_PANEL_WRONG_CONTENT=The content of the first panel is wrong.
+FIRST_PANEL_WRONG_HEADER=The header of the first panel is wrong.
+
+SECOND_PANEL_NOT_VISIBLE=The second panel should not be visible.
+SECOND_PANEL_VISIBLE=The second panel should be visible.
+SECOND_PANEL_WRONG_CONTENT=The content of the second panel is wrong.
+SECOND_PANEL_WRONG_HEADER=The header of the second panel is wrong.
\ No newline at end of file
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/outputPanel/locators.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/outputPanel/locators.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/outputPanel/locators.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,4 @@
+output-panel--header=//legend[text()\='OutputPanel example']
+output-panel--input--fail=//input[@type\='text' and contains(@id,'text1')]
+output-panel--input--success=//input[@type\='text' and contains(@id,'text2')]
+output-panel--output--message=//*[contains(text(),'{0}')]
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/outputPanel/messages.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/outputPanel/messages.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/outputPanel/messages.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,3 @@
+output-panel--input--correct=1234567890
+output-panel--input--wrong=12345678901
+output-panel--output--validation-error=Validation Error
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/paint2d/locators.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/paint2d/locators.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/paint2d/locators.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,7 @@
+EXAMPLE_HEADER=//fieldset/legend
+INPUT_TEXT=//fieldset//form/table//td[1]/input
+INPUT_COLOR=//div[contains(@class, 'rich-color-picker-wrapper')]//div[5]/input
+BUTTON_APPLY_COLOR=//div[contains(@class, 'rich-color-picker-wrapper')]//button[1]
+SHADOW_SLIDER=//fieldset//form/table//td[3]//td[contains(@class, 'rich-inslider-track-decor-2')]
+SHADOW_SLIDER_HANDLE=//fieldset//form/table//td[3]//div[contains(@class, 'rich-inslider-handler')]
+IMAGE=//fieldset[1]/div/img
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/paint2d/messages.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/paint2d/messages.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/paint2d/messages.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,5 @@
+TEXT_IN_IMAGE=Text in the image.
+COLOR_OF_IMAGE=Color of the image.
+SHADOW_SIZE=Size of the shadow.
+POSITION_OF_SLIDERS_HANDLE=Position of the slider's handle.
+IMAGE_HASH=Hash of the image.
\ No newline at end of file
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/panel/locators.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/panel/locators.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/panel/locators.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,17 @@
+FIRST_DIVS=//fieldset[1]/div/div[1]/div
+FIRST_HEADER=//fieldset[1]/div/div[1]/div[1]
+SECOND_DIVS=//fieldset[2]/div/div[1]/div
+THIRD_DIVS=//fieldset[3]/div/div[1]/div
+THIRD_HEADER=//fieldset[3]/div/div[1]/div[1]
+THIRD_NESTED_PANELS=//fieldset[3]/div/div[1]/div[2]/table/tbody/tr/td/div[contains(@class, 'rich-panel')]
+LEFT_NESTED_PANEL_LIST_LI=//fieldset[3]//div/div[1]/div[2]/table//td[1]//ul/li
+RIGHT_NESTED_PANEL_LIST_LI=//fieldset[3]//div/div[1]/div[2]/table//td[2]//ul/li
+
+# second tab
+CUST_FIRST_PANEL_HEADER=//table[contains(@class, 'rich-tabpanel-content-position')]//table[1]//td[1]/div/div[1]
+CUST_SECOND_PANEL_HEADER=//table[contains(@class, 'rich-tabpanel-content-position')]//table[1]//td[2]/div/div[1]
+CUST_THIRD_PANEL_HEADER=//table[contains(@class, 'rich-tabpanel-content-position')]//table[2]//td[1]/div/div[1]
+CUST_THIRD_PANEL_BODY=//table[contains(@class, 'rich-tabpanel-content-position')]//table[2]//td[1]/div/div[2]
+CUST_FOURTH_PANEL_BODY=//table[contains(@class, 'rich-tabpanel-content-position')]//table[2]//td[2]/div/div[2]
+CUST_FOURTH_PANEL_HEADER=//table[contains(@class, 'rich-tabpanel-content-position')]//table[2]//td[2]/div/div[1]
+CUST_FIFTH_PANEL_PARTS=//table[contains(@class, 'rich-tabpanel-content-position')]//table[2]//td[3]/div/div
\ No newline at end of file
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/panel/messages.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/panel/messages.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/panel/messages.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,16 @@
+FIRST_PANEL_TWO_PARTS=The first panel should consist of two parts -- header and body.
+FIRST_HEADER=Header of the first panel.
+SECOND_PANEL_NO_HEADER=Second panel should consist of only one part -- there should be no header.
+THIRD_PANEL_TWO_PARTS=The third panel should consist of two parts -- header and body.
+SHOULD_BE_TWO_NESTED_PANELS=There should be two nested panels in the third example.
+SIX_ITEMS_IN_LIST_LEFT=There should be six items in the left nested panel.
+SIX_ITEMS_IN_LIST_RIGHT=There should be six items in the right nested panel.
+THIRD_HEADER=Header of the main panel in the third examnple.
+
+# second tab
+CUST_PANEL_HEADER=Header of the panel.
+CUST_CLASS_HEADER=The "class" attribute of the header should contain "rich-panel-header".
+CUST_THIRD_HEADER=Header of the third panel should be green -- its class attribute has to contain "head2".
+CUST_THIRD_BODY=Body of the third panel should be green -- its class attribute has to contain "body3".
+CUST_FOURTH_PANEL_BODY_SCROLLABLE=Body of the fourth panel should be scrollable -- its class attribute has to contain "body3".
+CUST_FIFTH_PANEL_NO_HEADER=The fifth panel should have no header.
\ No newline at end of file
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/panelBar/locators.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/panelBar/locators.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/panelBar/locators.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,7 @@
+EXAMPLE_HEADER=//fieldset/legend
+HEADER_1_N=//fieldset/div/div[1]/div[{0}]/div[1]
+HEADER_2_N=//fieldset/div/div[1]/div[{0}]/div[2]
+CONTENT_N=//fieldset/div/div[1]/div[{0}]/div[3]
+
+
+
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/panelBar/messages.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/panelBar/messages.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/panelBar/messages.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,3 @@
+HEADER_N=Header of the panel {0}.
+PANEL_N_SHOULD_BE_VISIBLE=Panel {0} should be visible.
+PANEL_N_SHOULD_NOT_BE_VISIBLE=Panel {0} should not be visible.
\ No newline at end of file
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/panelMenu/locators.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/panelMenu/locators.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/panelMenu/locators.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,23 @@
+EXAMPLE_HEADER=//fieldset/legend
+PANEL=//span[@id='form:current']
+
+GROUP_N_IMAGE_BEFORE=//form[@id='form']/table/tbody/tr/td[1]/div/div[%d]/table/tbody/tr/td[1]/img@src
+GROUP_N_IMAGE_AFTER=//form[@id='form']/table/tbody/tr/td[1]/div/div[%d]/table/tbody/tr/td[3]/img@src
+GROUP_N_TEXT=//form[@id='form']/table/tbody/tr/td[1]/div/div[%d]/table/tbody/tr/td[2]
+
+ITEM_M_N_IMAGE_BEFORE=//form[@id='form']/table/tbody/tr/td[1]/div/div[%d]/div[%d]/table/tbody/tr/td[1]/img[2]@src
+ITEM_M_N_IMAGE_AFTER=//form[@id='form']/table/tbody/tr/td[1]/div/div[%d]/div[%d]/table/tbody/tr/td[3]/img@src
+ITEM_M_N_TEXT=//form[@id='form']/table/tbody/tr/td[1]/div/div[%d]/div[%d]/table/tbody/tr/td[2]
+ITEM_M_N_STYLE=//form[@id='form']/table/tbody/tr/td[1]/div/div[%d]/div[%d]@style
+SUBITEM_GROUP=//*[@class\='rich-pmenu']/*[contains(@class,'top-group')][2]/div[*[@class\='rich-pmenu-group']]
+
+SUBITEM_M_IMAGE_BEFORE_RELATIVE_TO_GROUP={0}/div[%d]/table/tbody/tr/td[1]/img[3]@src
+SUBITEM_M_TEXT_RELATIVE_TO_GROUP={0}/div[%d]/table/tbody/tr/td[2]
+SUBITEM_M_STYLE_RELATIVE_TO_GROUP={0}/div[%d]@style
+
+
+
+
+
+
+
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/panelMenu/messages.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/panelMenu/messages.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/panelMenu/messages.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,22 @@
+COMPONENT_DESCRIPTION=The rich:panelMenu component is used to define a collapsible side-menu panel.
+CONTENT_OF_PANEL_ON_LOAD=Content of the panel after the page is loaded.
+CONTENT_OF_PANEL=Content of the panel.
+IMAGE_BEFORE_GROUP_NAME=There should be a spacer before group name.
+DISK_BEFORE_GROUP_NAME=There should be an image with disk left of subgroup name.
+NAME_OF_GROUP=Name of group.
+IMAGE_AFTER_GROUP_NAME_DOWN=There should be arrows down right of group name.
+IMAGE_AFTER_GROUP_NAME_UP=There should be arrows up right of group name.
+IMAGE_AFTER_GROUP_NAME_SPACER=There should be spacer right of group name.
+ITEM_M_N_NOT_VISIBLE=Item %d.%d should not be visible.
+ITEM_M_N_VISIBLE=Item %d.%d should be visible.
+IMAGE_BEFORE_ITEM_GRID=There should be an image with grid left of item name.
+SUBITEM_M_NOT_VISIBLE=Item 2.4.%d should not be visible.
+SUBITEM_M_VISIBLE=Item 2.4.%d should be visible.
+
+
+
+
+
+
+
+
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/poll/locators.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/poll/locators.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/poll/locators.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,3 @@
+poll--status=//*[starts-with(text(), 'Polling')]
+poll--control=//*[@type\='button' and contains(@id, 'control')]
+poll--server-date=//*[starts-with(text(), 'Server Date\:')]
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/poll/messages.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/poll/messages.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/poll/messages.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,3 @@
+poll--server-date=Server Date\: {0}
+poll--polling-active=Polling Active
+poll--polling-inactive=Polling Inactive
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/progressBar/locators.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/progressBar/locators.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/progressBar/locators.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,14 @@
+EXAMPLE_1_HEADER=//fieldset[1]/legend
+EXAMPLE_2_HEADER=//fieldset[2]/legend
+
+FIRST_BUTTON=//fieldset[1]/div/form/span/div/input
+FIRST_PROGRESS_BAR_LABEL=//fieldset[1]/div/form/span/div/div[2]
+FIRST_PROGRESS_BAR_STYLE=//fieldset[1]/div/form/span/div/div[2]@style
+
+SECOND_BUTTON=//button[@id='button']
+SECOND_LABEL_FINISHED=//fieldset[2]/div/form/div/div[3]
+SECOND_LABEL_INITIAL=//fieldset[2]/div/form/div/div[1]
+SECOND_PROGRESS_BAR_STYLE=//fieldset[2]/div/form/div/div[2]/div@style
+
+
+
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/progressBar/messages.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/progressBar/messages.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/progressBar/messages.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,11 @@
+COMPONENT_DESCRIPTION=rich:progressBar is a component which could be used to display progress of any client or server side process.
+
+BUTTON_SHOULD_BE_PRESENT=Button should be present on the page.
+BUTTON_SHOULD_NOT_BE_PRESENT=Button "Restart Process" should not be present on the page.
+FIRST_PROGRESS_BAR_LABEL=The value in the label and real value should equal.
+
+SECOND_PROGRESS_BAR_UPLOAD=Progress of the progress bar -- the current value should be greater then the one 2 seconds ago.
+SECOND_PB_INITIAL_LABEL_SHOULD_BE_VISIBLE=Initial label should be visible.
+SECOND_PB_INITIAL_LABEL_SHOULD_NOT_BE_VISIBLE=Initial label should not be visible.
+SECOND_PB_FINISHED_LABEL_SHOULD_BE_VISIBLE=Finished label should be visible.
+SECOND_PB_FINISHED_LABEL_SHOULD_NOT_BE_VISIBLE=Finished label should not be visible.
\ No newline at end of file
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/push/locators.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/push/locators.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/push/locators.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,2 @@
+push--control=//*[@type\='button' and (@value\='Start' or @value\='Stop')]
+push--output-text=//*[text()\='Press Start to run push example' or starts-with(text(), 'Generated UUID\:')]
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/push/messages.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/push/messages.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/push/messages.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,2 @@
+push--inactive=Press Start to run push example
+push--active=Generated UUID\:
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/queue/locators.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/queue/locators.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/queue/locators.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,13 @@
+queue--table-header=//th[text()\='Ajax Requests']
+queue--image-button=//*[@id\='_{0}']
+queue--item=//*[@id\='tr1']//*[starts-with(text(),'_{0}')]
+queue-settings--header=//legend[text()\='Queue demo']
+queue-settings--input--text=//*[text()\='Type here\:']/../*/*[@type\='text']
+queue-settings--output--text=//*[text()\='Repeated text\:']/../*/*
+queue-settings--output--events-count=//*[text()\='Events count\:']/../*/*
+queue-settings--output--requests-count=//*[text()\='Requests count\:']/../*/*
+queue-settings--output--dom-updates-count=//*[text()\='DOM updates count\:']/../*/*
+queue-settings--input--request-delay=//*[text()\='Request delay\:']/../*/*[@type\='text']
+queue-settings--checkbox--ignore-dup-responses=//*[text()\='Ignore Duplicated Responces']/../*/*[@type\='checkbox']
+queue-settings--checkbox--disable-queue=//*[text()\='Disable Queue']/../*/*[@type\='checkbox']
+queue-settings--button--apply=//*[@type\='submit' and @value\='Apply']
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/queue/messages.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/queue/messages.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/queue/messages.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,2 @@
+queue-settings--delays=9000,1000,200,50,10
+queue-settings--char-to-type=B
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/repeat/locators.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/repeat/locators.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/repeat/locators.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,5 @@
+repeat--header=//legend[text()\='Repeat example']
+repeat--inputs--proposed-price=//*[contains(@class,'rich-table')]/tbody/tr{0,choice,0\#|1\#[{0}]}/td[2]/input[@type\='text']
+repeat--selects--reason=//*[contains(@class,'rich-table')]/tbody/tr[1]/td[4]/*[contains(@id,'reason')]
+repeat--outputs--sales-cost=//*[contains(@class,'rich-table')]/tbody/tr{0,choice,0\#|1\#[{0}]}/td[3]
+repeat--outputs--gross-margin=//*[contains(@class,'rich-table')]/tbody/tr{0,choice,0\#|1\#[{0}]}/td[5]
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/repeat/messages.properties
===================================================================
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/script/locators.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/script/locators.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/script/locators.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,9 @@
+script--header=//legend[text()\='Script demo']
+script--button--hide=//*[@type\='submit' and @value\='Hide']
+script--button--show=//*[@type\='submit' and @value\='Show']
+script--button--submit=//*[@type\='submit' and @value\='Submit']
+script--input--name=//span[text()\='Name\:']/../../td[2]/input[@type\='text']
+script--input--job=//span[text()\='Job\:']/../../td[2]/input[@type\='text']
+script--output--name=//*[@id\='out']//*[starts-with(text(), 'Name\:')]
+script--output--job=//*[@id\='out']//*[starts-with(text(), 'Job\:')]
+script--panel--mypanel=//div[@id\='mypanel']
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/script/messages.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/script/messages.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/script/messages.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,4 @@
+script--input--name=abc
+script--input--job=def
+script--regexp--name-prefix=Name\:\\s*
+script--regexp--job-prefix=Job\:\\s*
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/separator/locators.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/separator/locators.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/separator/locators.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,5 @@
+EXAMPLE_HEADER=//fieldset/legend
+SEPARATOR_N=//fieldset/div/div[%d]/div
+
+
+
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/separator/messages.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/separator/messages.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/separator/messages.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,4 @@
+COMPONENT_DESCRIPTION= Separator is used to draw a horizontal line on a page.
+HEIGHT_OF_SEPARATOR=Height of the separator.
+WIDTH_OF_SEPARATOR=Width of the separator.
+HASH_CODE=Hash code of the image that makes the separator.
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/simpleTogglePanel/locators.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/simpleTogglePanel/locators.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/simpleTogglePanel/locators.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,10 @@
+EXAMPLE_1_HEADER=//fieldset[1]/legend
+EXAMPLE_2_HEADER=//fieldset[2]/legend
+FIRST_EXAMPLE_HEADER=//fieldset[legend/text()='Simple Toggle Panel example']//div[@class='rich-stglpanel-header']
+FIRST_EXAMPLE_ARROWS_LEFT_RELATIVE_TO_HEADER={0}//div[@class='rich-stglpnl-marker' and contains(@id,'switch_on')]
+FIRST_EXAMPLE_ARROWS_RIGHT_RELATIVE_TO_HEADER={0}//div[@class='rich-stglpnl-marker' and contains(@id,'switch_off')]
+FIRST_EXAMPLE_BODY=//fieldset[legend/text()='Simple Toggle Panel example']//div[@class='rich-stglpanel-body']
+SECOND_EXAMPLE_N_HEADER=//fieldset[legend/text()\='Switch types example']//td[@class\='tpanels'][%d]//div[@class\='rich-stglpanel-header']
+SECOND_EXAMPLE_N_ARROWS_LEFT_RELATIVE_TO_HEADER={0}//div[@class\='rich-stglpnl-marker' and contains(@id,'switch_on')]
+SECOND_EXAMPLE_N_ARROWS_RIGHT_RELATIVE_TO_HEADER={0}//div[@class\='rich-stglpnl-marker' and contains(@id,'switch_off')]
+SECOND_EXAMPLE_N_BODY=//fieldset[legend/text()\='Switch types example']//td[@class\='tpanels'][%d]//div[@class\='rich-stglpanel-body']
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/simpleTogglePanel/messages.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/simpleTogglePanel/messages.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/simpleTogglePanel/messages.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,10 @@
+COMPONENT_DESCRIPTION= SimpleTogglePanel represents a panel with a base text label at the top and additional content
+PANEL_HEADER=Header of the panel should be "%s".
+BODY_SHOULD_BE_VISIBLE=Content of the panel should be visible.
+BODY_SHOULD_NOT_BE_VISIBLE=Content of the panel should not be visible.
+
+LEFT_ARROWS_SHOULD_BE_VISIBLE=Picture with two arrow heading to the left in panel's header should be visible.
+LEFT_ARROWS_SHOULD_NOT_BE_VISIBLE=Picture with two arrow heading to the left in panel's header should not be visible.
+RIGHT_ARROWS_SHOULD_BE_VISIBLE=Picture with two arrow heading to the right in panel's header should be visible.
+RIGHT_ARROWS_SHOULD_NOT_BE_VISIBLE=Picture with two arrow heading to the right in panel's header should not be visible.
+
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/spacer/locators.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/spacer/locators.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/spacer/locators.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,6 @@
+EXAMPLE_HEADER=//fieldset[1]/legend
+FIRST_SPACER_HEIGHT=//fieldset/div/p[1]/img@height
+FIRST_SPACER_WIDTH=//fieldset/div/p[1]/img@width
+SECOND_SPACER_HEIGHT=//fieldset/div/img@height
+SECOND_SPACER_WIDTH=//fieldset/div/img@width
+
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/spacer/messages.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/spacer/messages.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/spacer/messages.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,3 @@
+COMPONENT_DESCRIPTION=Spacer is a simple component that renders an invisible image with the given width, height.
+SPACER_HEIGHT=Height of the spacer (in pixels).
+SPACER_WIDTH=Width of teh spacer (in pixels).
\ No newline at end of file
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/status/locators.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/status/locators.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/status/locators.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,6 @@
+FIELDSET_PAGE_PART_PREFORMATTED=//fieldset[{0}]
+OUTPUT_STATUS_MESSAGE_PREFORMATTED=//fieldset[{0}]//*[contains(@id, 'status.start')]
+BUTTON_REQUEST_PREFORMATTED=//fieldset[{0}]/div//input[@type\='button']
+INPUT_NAME=//fieldset[3]//*[@type\='text' and contains(@id, 'name')]
+INPUT_JOB=//fieldset[3]//*[@type\='text' and contains(@id, 'job')]
+OUTPUT_TEXT=//*[contains(@id,'out') and starts-with(text(),'Name\:')]
\ No newline at end of file
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/status/messages.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/status/messages.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/status/messages.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,2 @@
+STYLE_DISPLAY=display
+PATTERN_NAME_JOB=^Name: (\\w*), Job: (\\w*)\\s*$
\ No newline at end of file
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/style/locators.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/style/locators.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/style/locators.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,5 @@
+style--header=//legend[text()\='Style demo']
+style--link--deep-marine=//a[text()\='DeepMarine']
+style--link--blue-sky=//a[text()\='BlueSky']
+style--link--japan-cherry=//a[text()\='JapanCherry']
+style--table--output=//table[@class\='rsPanel']
\ No newline at end of file
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/style/messages.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/style/messages.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/style/messages.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,3 @@
+style--color--deep-marine=rgb(0, 136, 148)
+style--color--blue-sky=rgb(190, 214, 248)
+style--color--japan-cherry=rgb(232, 189, 189)
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/suggestionBox/locators.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/suggestionBox/locators.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/suggestionBox/locators.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,24 @@
+FIRST_SUGGESTION_BOX_N=//table[@id='suggestionbox_form:suggestionBoxId:suggest']/tbody/tr[%d]
+
+FIRST_INPUT=//fieldset[1]/div/form/table/tbody/tr/td[1]/input[1]
+FIRST_BORDER_INPUT=//fieldset[1]/div/form/table/tbody/tr/td[1]/table/tbody/tr[1]/td[2]/table/tbody/tr[1]/td[3]/input
+FIRST_WIDTH_INPUT=//fieldset[1]/div/form/table/tbody/tr/td[1]/table/tbody/tr[2]/td[2]/table/tbody/tr[1]/td[3]/input
+FIRST_HEIGHT_INPUT=//fieldset[1]/div/form/table/tbody/tr/td[1]/table/tbody/tr[3]/td[2]/table/tbody/tr[1]/td[3]/input
+FIRST_SHADOW_DEPTH_INPUT=//fieldset[1]/div/form/table/tbody/tr/td[1]/table/tbody/tr[4]/td[2]/table/tbody/tr[1]/td[3]/input
+FIRST_SHADOW_OPACITY_INPUT=//fieldset[1]/div/form/table/tbody/tr/td[1]/table/tbody/tr[5]/td[2]/table/tbody/tr[1]/td[3]/input
+FIRST_CELLPADDING_INPUT=//fieldset[1]/div/form/table/tbody/tr/td[1]/table/tbody/tr[6]/td[2]/table/tbody/tr[1]/td[3]/input
+
+FIRST_TOWN_TABLE_M_N=//fieldset[1]/div/form/table/tbody/tr/td[2]/div/table/tbody/tr[%d]/td[%d]
+
+FIRST_BORDER_STYLE=//div[@id='suggestionbox_form:suggestionBoxId']/div[1]/div@style
+FIRST_WIDTH_STYLE=//div[@id='suggestionbox_form:suggestionBoxId']@style
+FIRST_HEIGHT_STYLE=//div[@id='suggestionbox_form:suggestionBoxId']@style
+FIRST_SHADOW_DEPTH_STYLE=//div[@id='suggestionbox_form:suggestionBoxId']/div[2]@style
+FIRST_SHADOW_OPACITY_STYLE=//div[@id='suggestionbox_form:suggestionBoxId']/div[2]@style
+FIRST_CELLPADDING=//div[@id='suggestionbox_form:suggestionBoxId']/div[1]/div/table/tbody/tr/td/div/table@cellpadding
+
+SECOND_INPUT=//fieldset[2]/div/form/table/tbody/tr[1]/td[2]/table/tbody/tr/td[1]/input
+SECOND_BUTTON=//fieldset[2]/div/form/table/tbody/tr[1]/td[2]/table/tbody/tr/td[2]/img
+SECOND_SUGGESTION_LINES=//div[@id='form:suggestion']/div[1]/div/table/tbody/tr/td/div/table/tbody/tr
+SECOND_SUGGESTION_BOX_N=//div[@id='form:suggestion']/div[1]/div/table/tbody/tr/td/div/table/tbody/tr[%d]
+SECOND_STATE=//fieldset[2]/div/form/table/tbody/tr[2]/td[2]/span
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/suggestionBox/messages.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/suggestionBox/messages.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/suggestionBox/messages.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,24 @@
+COMPONENT_DESCRIPTION=RichFaces Suggestion Box component adds the autocomplete capability to the existing input component
+TABLE_M_N=String in the table on the position [%d,%d].
+NO_CAPITALS_FOUND=There should be no capitals.
+
+SUGGESTION_BOX_BORDER=Border width of the suggestion box after typing %d.
+SUGGESTION_BOX_WIDTH=Width of the suggestion box after typing %d.
+SUGGESTION_BOX_HEIGHT=Height of the suggestion box after typing %d.
+SUGGESTION_BOX_SHADOW_DEPTH=Depth of the shadow after typing %d.
+SUGGESTION_BOX_SHADOW_OPACITY=Opacity of the shadow after typing %d.
+SUGGESTION_BOX_CELLPADDING=Padding of the suggestion box's cells after typing %d.
+
+COUNT_OF_ALL_SUGGESTIONS=Count of all suggestions.
+AUGUSTA_MAINE=Augusta is the capital of Maine.
+AUGUSTA_MADISON_MAINE_WISCONSIN=Augusta and Madison are capitals of Maine and Wisconsin.
+
+
+
+
+
+
+
+
+
+
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/tabPanel/locators.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/tabPanel/locators.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/tabPanel/locators.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,17 @@
+# first tab
+USAGE_EXAMPLE_HEADER=//fieldset/legend
+USAGE_PANEL_N_TEXT=//fieldset/div/table[%d]/tbody/tr[2]/td/table/tbody/tr/td
+USAGE_PANEL_3_N_TEXT=//fieldset/div/table[3]/tbody/tr[2]/td[%d]
+USAGE_PANEL_N_TAB_M=//fieldset/div/table[%d]/tbody/tr[1]/td/form/table/tbody/tr/td[%d*2]/table
+
+# second tab
+CUST_EXAMPLE_HEADER=//div[@id='itme']/p
+CUST_TABS_ALIGN=//table[@class\='rich-tabpanel']/tbody/tr[1]/td@align
+CUST_PANEL_TEXT=//table[@class\='rich-tabpanel']/tbody/tr[2]/td[%d]
+CUST_PANEL_TAB_N=//table[@class\='rich-tabpanel']/tbody/tr[1]/td/form/table/tbody/tr/td[%d*2]/table
+
+# third tab
+DELET_EXAMPLE_HEADER=//form[@id='tabs_form']/../../p
+DELET_PANEL_TABS=//table[@id='tabs_form:RemoveAbleTabPanel']/tbody/tr[1]/td/table/tbody/tr/td
+DELET_PANEL_TAB_N_CLOSE=//img[@id='tabs_form:hidelink%d']
+DELET_RESET_BUTTON=//form[@id\='tabs_form']/input[2]
\ No newline at end of file
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/tabPanel/messages.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/tabPanel/messages.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/tabPanel/messages.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,12 @@
+# first tab
+USAGE_COMPONENT_DESCRIPTION=Tab panel is used to create "tabbed" pages.
+USAGE_CONTENT_OF_PANEL_N=Content of tab panel %d.
+USAGE_SECOND_TAB_SHOULD_BE_DISABLED=The second tab should be disabled.
+
+# second tab
+CUST_COMPONENT_DESCRIPTION=This is a demo of how to use stylesheets and skinnability features in order to adjust tab panel appearance.
+CUST_TABS_RIGHT_ALIGNED=Tabs should be aligned to the right.
+
+# third tab
+DELET_COMPONENT_DESCRIPTION=This simple sample is added according to numerous Forum requests and shows how to implement tabs deletion from tabPanel component.
+DELET_NUMBER_OF_TABS=Number of tabs in the example.
\ No newline at end of file
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/togglePanel/locators.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/togglePanel/locators.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/togglePanel/locators.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,8 @@
+EXAMPLE_HEADER=//fieldset[1]/legend
+CLICK_ME_BUTTON=//fieldset[legend/text()\='Toggle Panel example']//div[@class\='rich-toggle-panel']/div[contains(@id,'closed')]
+CLICK_ME_BUTTON_A_RELATIVE={0}/a
+CLOSE_BUTTON=//div[@class\='rich-toggle-panel']//div[contains(@id,'tip1')]//a[text()\='x Close']
+PANEL_N=//div[@class\='rich-toggle-panel']//div[contains(@id,'tip%d')]
+PREVIOUS_BUTTON_N=//div[@class\='rich-toggle-panel']//div[contains(@id,'tip%d')]//a[text()\='\u00AB Previous']
+NEXT_BUTTON_N=//div[@class\='rich-toggle-panel']//div[contains(@id,'tip%d')]//a[text()\='Next \u00BB']
+
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/togglePanel/messages.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/togglePanel/messages.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/togglePanel/messages.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,5 @@
+COMPONENT_DESCRIPTION=Toggle Panel renders sequence of states that can be switched (toggled) by a component called Toggle Control.
+CLICK_ME_BUTTON_VISIBLE=The "Click Me" button should be visible.
+CLICK_ME_BUTTON_NOT_VISIBLE=The "Click Me" button should not be visible.
+PANEL_N_VISIBLE=The panel %d should be visible.
+PANEL_N_NOT_VISIBLE=The panel %d should not be visible.
\ No newline at end of file
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/toolBar/locators.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/toolBar/locators.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/toolBar/locators.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,7 @@
+EXAMPLE_N_HEADER=//fieldset[{0}]/legend
+FIRST_TOOLBAR_ITEM_N=//fieldset[1]//td[{0}]
+SECOND_TOOLBAR_ITEM_N=//fieldset[2]//td[{0}]
+THIRD_TOOLBAR_GROUP_SEPARATOR_N=//fieldset[3]//form/table/tbody/tr/td[1]//td[1+{0}]/a
+THIRD_TOOLBAR_ITEM_SEPARATOR_N=//fieldset[3]//form/table/tbody/tr/td[3]//td[1+{0}]/a
+GROUP_SEPARATOR_IMG=//table[@id='bar']/tbody/tr/td[4]/img
+ITEM_SEPARATOR_IMG=//table[@id='bar']/tbody/tr/td[2]/img
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/toolBar/messages.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/toolBar/messages.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/toolBar/messages.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,16 @@
+ITEM_CLASS_ATTRIBUTE=Item's class attribute should contain "rich-toolbar-item".
+GROUP_SEPARATOR=Group separator should be centred.
+ITEM_SEPARATOR=Item separator should be centred.
+ITEM_IMAGE_S=The item should contain image "%s".
+THERE_IS_NO_GROUP_SEPARATOR=There is no group separator.
+THERE_IS_GROUP_SEPARATOR=There is a group separator despite the fact that "none" was chosen.
+THERE_IS_NO_ITEM_SEPARATOR=There is no item separator.
+THERE_IS_ITEM_SEPARATOR=There is an item separator despite the fact that "none" was chosen.
+GROUP_SEPARATOR_S=Group separator should contain image "{0}".
+ITEM_SEPARATOR_S =Item separator should contain image "{0}".
+
+
+
+
+
+
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/tooltip/locators.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/tooltip/locators.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/tooltip/locators.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,11 @@
+header=//legend[text()\='ToolTip example']
+panel--sample1=//div[contains(@id,'sample1')]
+panel--sample2=//div[contains(@id,'sample2')]
+panel--sample3=//div[contains(@id,'sample3')]
+panel--sample4=//div[contains(@id,'sample4')]
+tooltip--text-part--tooltips-requested=//*[contains(@style,'display\: block')]//*[contains(text(),'tooltips requested\:')]/../..
+data-table--table=//*[@class\='rich-table']
+data-table--cells-preformatted=//*[contains(@class,'rich-table')]//*[contains(@class,'rich-table-row')]{0,choice,0\#|1\#[{0}]}//*[contains(@class,'rich-table-cell')][{1,choice,0\#2|1\#3|2\#4}]
+data-table--items-on-tooltip=//*[contains(@class,'rich-tool-tip') and contains(@style,'display\: block')]//*[text()\='Vehicle details\:']/../../../*/*/*[text()\='{0,choice,0\#make|1\#model|2\#year}\:']/following-sibling\:\:*[1]
+data-table--relative--cell-make-to-its-active-tooltip-area={0}/*
+data-table--relative--cell-make-to-its-label={0}/*/*[contains(@id,'\:make')]
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/tooltip/messages.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/tooltip/messages.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/tooltip/messages.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,7 @@
+coords--event-at-panel=5,5
+output--tooltip1-text-part=This tool-tip content was pre-rendered to the page.
+output--tooltip2-text-part=This tool-tip content also pre-rendered to the page.
+output--tooltip3-4-wait=Wait...
+output--tooltip3-4-text-part=This tool-tip content was rendered on server
+regexp--tooltips-requested=.*\\s(\\d+)$
+data-table--coords--event-at-cell=2,2
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/tree/locators.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/tree/locators.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/tree/locators.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,18 @@
+# TreeTestCase -- first tab
+HEADER_PREFORMATTED=//fieldset[{0}]/legend
+NODE_1_LINK_PREFORMATTED=//fieldset[{0}]/div/form/div/div[1]/table[1]/tbody/tr/td[1]/div/a
+NODE_1_1_LABEL_PREFORMATTED=//fieldset[{0}]/div/form/div/div[1]/div/table/tbody/tr/td[3]
+NODE_1_1_IMAGE_FIRST_PREFORMATTED=//fieldset[{0}]/div/form/div/div[1]/div/table/tbody/tr/td[1]/div/a/img[1]
+NODE_1_1_IMAGE_SECOND_PREFORMATTED=//fieldset[{0}]/div/form/div/div[1]/div/table/tbody/tr/td[1]/div/a/img[2]
+NODE_1_1_LINK_PREFORMATTED=//fieldset[{0}]/div/form/div/div[1]/div[1]/table[1]/tbody/tr/td[1]/div/a
+NODE_1_1_4_LABEL_PREFORMATTED=//fieldset[{0}]/div/form/div/div[1]/div[1]/div[1]/table[4]/tbody/tr/td[3]
+NODE_1_1_N_LABEL_PREFORMATTED=//fieldset[{0}]/div/form/div/div[1]/div[1]/div[1]/table[{1}]/tbody/tr/td[3]
+NODE_N_PREFORMATTED=//fieldset[{0}]/div/form/div/div[1]/div[{1}]
+CHILDREN_1_1_PREFORMATTED=//fieldset[{0}]/div/form/div/div[1]/div[1]/div[1]/table
+CHILDREN_1_PREFORMATTED=//fieldset[{0}]/div/form/div/div[1]/table
+
+# TreeNodesAdaptorTestCase
+EXAMPLE_HEADER=//fieldset[1]/legend
+TABLE_SUBNODES=//fieldset[1]/div/form/div/div[1]/div/div/table
+DEMO_NODE=//fieldset[1]/div/form/div/div[1]/div/div/table[1]/tbody/tr/td[1]/div/a
+DIV_SUBNODES_PREFORMATTED=//fieldset[1]/div/form/div/div[1]/div/div/div{0,choice,0#|1#[{0}]}
\ No newline at end of file
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/tree/messages.properties
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/tree/messages.properties (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/org/jboss/richfaces/integrationTest/tree/messages.properties 2009-08-26 16:28:57 UTC (rev 15325)
@@ -0,0 +1,19 @@
+# TreeTestCase -- first tab
+NODE_1_1_1_LABEL=The Road To Hell (Part 1)
+NODE_1_1_2_LABEL=The Road To Hell (Part 2)
+NODE_1_1_3_LABEL=You Must Be Evil
+NODE_1_1_4_LABEL=Texas
+NODE_1_1_5_LABEL=Looking For A Rainbow
+NODE_1_1_6_LABEL=Your Warm And Tender Love
+NODE_1_1_7_LABEL=Daytona
+NODE_1_1_8_LABEL=That`s What They Always Say
+NODE_1_1_9_LABEL=Let`s Dance
+NODE_1_1_10_LABEL=I Just Wanna Be With You
+NODE_1_1_11_LABEL=Tell Me There`s A Heaven
+NODE_1_1_LABEL=The Road To Hell
+CHILDREN_COUNT_1_1=11
+CHILDREN_COUNT_TOP=4
+
+
+# TreeNodesAdaptorTestCase
+CHILDREN_COUNT=4
Added: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/user-extensions/rfqa-extensions.js
===================================================================
15 years, 4 months
JBoss Rich Faces SVN: r15322 - in branches/community/3.3.X/test-applications: facelets/src/main/webapp/CustomizePage and 44 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: prabhat.jha(a)jboss.com
Date: 2009-08-26 12:02:48 -0400 (Wed, 26 Aug 2009)
New Revision: 15322
Added:
branches/community/3.3.X/test-applications/selenium-testing-lib/
branches/community/3.3.X/test-applications/selenium-testing-lib/.classpath
branches/community/3.3.X/test-applications/selenium-testing-lib/.project
branches/community/3.3.X/test-applications/selenium-testing-lib/pom.xml
branches/community/3.3.X/test-applications/selenium-testing-lib/src/
branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/
branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/java/
branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/java/org/
branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/java/org/jboss/
branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/java/org/jboss/test/
branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/java/org/jboss/test/selenium/
branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/java/org/jboss/test/selenium/AbstractSeleniumTestCase.java
branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/java/org/jboss/test/selenium/actions/
branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/java/org/jboss/test/selenium/actions/Drag.java
branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/java/org/jboss/test/selenium/dom/
branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/java/org/jboss/test/selenium/dom/Event.java
branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/java/org/jboss/test/selenium/utils/
branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/java/org/jboss/test/selenium/utils/URLUtils.java
branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/java/org/jboss/test/selenium/utils/array/
branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/java/org/jboss/test/selenium/utils/array/ArrayTransform.java
branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/java/org/jboss/test/selenium/waiting/
branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/java/org/jboss/test/selenium/waiting/Condition.java
branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/java/org/jboss/test/selenium/waiting/Not.java
branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/java/org/jboss/test/selenium/waiting/Retrieve.java
branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/java/org/jboss/test/selenium/waiting/Wait.java
branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/resources/
branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/resources/jbossqa-extensions.js
branches/community/3.3.X/test-applications/selenium-testing-lib/src/test/
branches/community/3.3.X/test-applications/selenium-testing-lib/src/test/java/
branches/community/3.3.X/test-applications/selenium-testing-lib/target/
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/allclasses-frame.html
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/allclasses-noframe.html
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/constant-values.html
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/deprecated-list.html
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/help-doc.html
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/index-all.html
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/index.html
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/AbstractSeleniumTestCase.html
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/actions/
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/actions/Drag.html
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/actions/class-use/
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/actions/class-use/Drag.html
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/actions/package-frame.html
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/actions/package-summary.html
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/actions/package-tree.html
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/actions/package-use.html
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/class-use/
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/class-use/AbstractSeleniumTestCase.html
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/dom/
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/dom/Event.html
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/dom/class-use/
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/dom/class-use/Event.html
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/dom/package-frame.html
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/dom/package-summary.html
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/dom/package-tree.html
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/dom/package-use.html
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/package-frame.html
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/package-summary.html
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/package-tree.html
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/package-use.html
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/utils/
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/utils/URLUtils.html
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/utils/array/
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/utils/array/ArrayTransform.html
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/utils/array/class-use/
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/utils/array/class-use/ArrayTransform.html
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/utils/array/package-frame.html
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/utils/array/package-summary.html
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/utils/array/package-tree.html
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/utils/array/package-use.html
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/utils/class-use/
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/utils/class-use/URLUtils.html
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/utils/package-frame.html
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/utils/package-summary.html
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/utils/package-tree.html
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/utils/package-use.html
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/waiting/
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/waiting/Condition.html
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/waiting/Not.html
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/waiting/Retrieve.html
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/waiting/Wait.Waiting.html
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/waiting/Wait.html
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/waiting/class-use/
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/waiting/class-use/Condition.html
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/waiting/class-use/Not.html
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/waiting/class-use/Retrieve.html
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/waiting/class-use/Wait.Waiting.html
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/waiting/class-use/Wait.html
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/waiting/package-frame.html
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/waiting/package-summary.html
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/waiting/package-tree.html
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/waiting/package-use.html
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/overview-frame.html
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/overview-summary.html
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/overview-tree.html
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/package-list
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/resources/
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/resources/inherit.gif
branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/stylesheet.css
branches/community/3.3.X/test-applications/selenium-testing-lib/target/classes/
branches/community/3.3.X/test-applications/selenium-testing-lib/target/classes/jbossqa-extensions.js
branches/community/3.3.X/test-applications/selenium-testing-lib/target/classes/org/
branches/community/3.3.X/test-applications/selenium-testing-lib/target/classes/org/jboss/
branches/community/3.3.X/test-applications/selenium-testing-lib/target/classes/org/jboss/test/
branches/community/3.3.X/test-applications/selenium-testing-lib/target/classes/org/jboss/test/selenium/
branches/community/3.3.X/test-applications/selenium-testing-lib/target/classes/org/jboss/test/selenium/AbstractSeleniumTestCase$1.class
branches/community/3.3.X/test-applications/selenium-testing-lib/target/classes/org/jboss/test/selenium/AbstractSeleniumTestCase$2.class
branches/community/3.3.X/test-applications/selenium-testing-lib/target/classes/org/jboss/test/selenium/AbstractSeleniumTestCase$3.class
branches/community/3.3.X/test-applications/selenium-testing-lib/target/classes/org/jboss/test/selenium/AbstractSeleniumTestCase.class
branches/community/3.3.X/test-applications/selenium-testing-lib/target/classes/org/jboss/test/selenium/actions/
branches/community/3.3.X/test-applications/selenium-testing-lib/target/classes/org/jboss/test/selenium/actions/Drag.class
branches/community/3.3.X/test-applications/selenium-testing-lib/target/classes/org/jboss/test/selenium/dom/
branches/community/3.3.X/test-applications/selenium-testing-lib/target/classes/org/jboss/test/selenium/dom/Event.class
branches/community/3.3.X/test-applications/selenium-testing-lib/target/classes/org/jboss/test/selenium/utils/
branches/community/3.3.X/test-applications/selenium-testing-lib/target/classes/org/jboss/test/selenium/utils/URLUtils.class
branches/community/3.3.X/test-applications/selenium-testing-lib/target/classes/org/jboss/test/selenium/utils/array/
branches/community/3.3.X/test-applications/selenium-testing-lib/target/classes/org/jboss/test/selenium/utils/array/ArrayTransform.class
branches/community/3.3.X/test-applications/selenium-testing-lib/target/classes/org/jboss/test/selenium/waiting/
branches/community/3.3.X/test-applications/selenium-testing-lib/target/classes/org/jboss/test/selenium/waiting/Condition.class
branches/community/3.3.X/test-applications/selenium-testing-lib/target/classes/org/jboss/test/selenium/waiting/Not.class
branches/community/3.3.X/test-applications/selenium-testing-lib/target/classes/org/jboss/test/selenium/waiting/Retrieve.class
branches/community/3.3.X/test-applications/selenium-testing-lib/target/classes/org/jboss/test/selenium/waiting/Wait$Waiting$1.class
branches/community/3.3.X/test-applications/selenium-testing-lib/target/classes/org/jboss/test/selenium/waiting/Wait$Waiting.class
branches/community/3.3.X/test-applications/selenium-testing-lib/target/classes/org/jboss/test/selenium/waiting/Wait.class
branches/community/3.3.X/test-applications/selenium-testing-lib/target/maven-archiver/
branches/community/3.3.X/test-applications/selenium-testing-lib/target/maven-archiver/pom.properties
branches/community/3.3.X/test-applications/selenium-testing-lib/target/pom-transformed.xml
branches/community/3.3.X/test-applications/selenium-testing-lib/target/selenium-1.0-SNAPSHOT-javadoc.jar
branches/community/3.3.X/test-applications/selenium-testing-lib/target/selenium-1.0-SNAPSHOT-sources.jar
branches/community/3.3.X/test-applications/selenium-testing-lib/target/selenium-1.0-SNAPSHOT.jar
Modified:
branches/community/3.3.X/test-applications/facelets/src/main/webapp/CustomizePage/CustomizePage.xhtml
Log:
common selenium stuff that we will be using for all functional tests
Modified: branches/community/3.3.X/test-applications/facelets/src/main/webapp/CustomizePage/CustomizePage.xhtml
===================================================================
--- branches/community/3.3.X/test-applications/facelets/src/main/webapp/CustomizePage/CustomizePage.xhtml 2009-08-26 16:00:34 UTC (rev 15321)
+++ branches/community/3.3.X/test-applications/facelets/src/main/webapp/CustomizePage/CustomizePage.xhtml 2009-08-26 16:02:48 UTC (rev 15322)
@@ -1,76 +1,48 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
- xmlns:ui="http://java.sun.com/jsf/facelets"
- xmlns:h="http://java.sun.com/jsf/html"
- xmlns:f="http://java.sun.com/jsf/core"
- xmlns:a4j="http://richfaces.org/a4j"
- xmlns:rich="http://richfaces.org/rich">
- <meta http-equiv="Content-Type" content="text/xhtml; charset=UTF-8" />
- <body>
- <f:view>
- <rich:modalPanel id="mpID" showWhenRendered="true">
- <h:form>
- <f:facet name="header">
- <h:outputText value="Modal Panel Header" />
- </f:facet>
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:a4j="http://richfaces.org/a4j"
+ xmlns:rich="http://richfaces.org/rich">
+ <meta http-equiv="Content-Type" content="text/xhtml; charset=UTF-8" />
+ <body>
+ <f:view>
+
+ <h:form>
+ This is because such an error can easily be made at
+programming level, <br />
+and while invisible for the user who does not understand or cannot <br />
+acquire the source code, many of those
+<rich:inplaceInput id="id111" value="#{inplaceInput.value}"
+defaultLabel="defaultLabel1"></rich:inplaceInput>
+ are easy to exploit.
- <f:facet name="controls">
- <h:graphicImage value="/pics/error.gif"
- onclick="Richfaces.hideModalPanel('mpID'); return false;" />
- </f:facet>
-
- <h:inputText value="#{sb.property}" id="text">
- <f:validateLength minimum="0" maximum="30" />
- </h:inputText>
- <rich:suggestionbox id="suggestionBoxId"
- ajaxSingle="#{sb.ajaxSingle}" bgcolor="#{sb.bgColor}"
- binding="#{sb.mySuggestionBox}" bypassUpdates="#{sb.bypassUpdates}"
- cellpadding="#{sb.cellpadding}" cellspacing="#{sb.cellspacing}"
- dir="#{sb.dir}" entryClass="#{style.entryClass}"
- eventsQueue="myEventsQueue" fetchValue="#{result.text}"
- first="#{sb.first}" for="text" frame="#{sb.frame}"
- frequency="#{sb.frequency}" height="#{sb.height}"
- ignoreDupResponses="#{sb.ignoreDupResponses}"
- immediate="#{sb.immediate}" limitToList="false"
- minChars="#{sb.minchars}" nothingLabel="#{sb.nothingLabel}"
- onbeforedomupdate="#{event.onbeforedomupdate}"
- oncomplete="#{event.oncomplete}"
- onobjectchange="#{event.onobjectchange}"
- onselect="#{event.onselect}" onsubmit="#{event.onsubmit}"
- popupStyle="background-color: black;"
- usingSuggestObjects="#{sb.usingSuggestObjects}" reRender="label"
- rendered="#{sb.rendered}" requestDelay="#{sb.requestDelay}"
- selfRendered="#{sb.selfRendered}" var="result"
- suggestionAction="#{sb.autocomplete}" width="#{sb.width}"
- border="#{sb.border}" zindex="#{sb.zindex}" rules="#{sb.rules}"
- tokens="#{sb.tokens}" title="#{result.text}" summary="summary"
- shadowOpacity="#{sb.shadowOpacity}" shadowDepth="#{sb.shadowDepth}"
- selectValueClass="mousemove" style="#{style.style}"
- styleClass="#{style.styleClass}"
- selectedClass="#{style.selectedClass}"
- rowClasses="#{style.rowClasses}">
-
- <h:column>
- <h:outputText value="#{result.city}" />
- </h:column>
- <h:column>
- <h:outputText value="#{result.contry}" />
- </h:column>
- <h:column>
- <h:outputText value="#{result.flag}" />
- </h:column>
- <h:column>
- <a4j:htmlCommandLink actionListener="#{sb.selectValue}"
- value="Click me!" />
- </h:column>
- </rich:suggestionbox>
- <br/>
- <h:outputLink
- onclick="Richfaces.hideModalPanel('modalPanelID');return false;">
- <f:verbatim>Close</f:verbatim>
- </h:outputLink>
- </h:form>
- </rich:modalPanel>
- </f:view>
- </body>
+This is because such an error can easily be made at programming level,
+<br />
+and while invisible for the user who does not understand or cannot <br />
+acquire the source code, many of those
+<rich:inplaceInput id="id222"
+
+ value="#{inplaceInput.value}"
+ defaultLabel="defaultLabel2"
+ >
+ </rich:inplaceInput>
+ are easy to exploit.
+This is because such an error can easily be made at programming level,
+<br />
+and while invisible for the user who does not understand or cannot <br />
+acquire the source code, many of those
+<rich:inplaceInput id="id333"
+
+ value="#{inplaceInput.value}"
+ defaultLabel="defaultLabel2"
+ >
+ </rich:inplaceInput>
+ are easy to exploit.
+ </h:form>
+
+ </f:view>
+ </body>
</ui:composition>
\ No newline at end of file
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/.classpath
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/.classpath (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/.classpath 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" output="target/classes" path="src/main/java"/>
+ <classpathentry kind="src" path="src/main/resources"/>
+ <classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
+ <classpathentry kind="output" path="target/classes"/>
+</classpath>
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/.project
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/.project (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/.project 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>selenium-testing-lib</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.maven.ide.eclipse.maven2Builder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.maven.ide.eclipse.maven2Nature</nature>
+ </natures>
+</projectDescription>
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/pom.xml
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/pom.xml (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/pom.xml 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,144 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.jboss.test</groupId>
+ <artifactId>selenium</artifactId>
+ <packaging>jar</packaging>
+ <version>1.0-SNAPSHOT</version>
+ <name>selenium-testing-lib</name>
+ <url>http://maven.apache.org</url>
+
+ <scm>
+ <developerConnection>
+ scm:svn:https://svn.jboss.org/repos/richfaces/branches/community/3.3.X/te...
+ </developerConnection>
+ </scm>
+
+<distributionManagement>
+ <snapshotRepository>
+ <id>snapshots.jboss.org</id>
+ <name>JBoss Snapshot Repository</name>
+ <url>dav:https://snapshots.jboss.org/maven2</url>
+ </snapshotRepository>
+ </distributionManagement>
+
+
+ <repositories>
+ <repository>
+ <id>openqa</id>
+ <name>OpenQA Repository</name>
+ <url>http://archiva.openqa.org/repository/releases</url>
+ <layout>default</layout>
+ <snapshots>
+ <enabled>false</enabled>
+ </snapshots>
+ <releases>
+ <enabled>true</enabled>
+ </releases>
+ </repository>
+ </repositories>
+ <properties>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ </properties>
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>1.5</source>
+ <target>1.5</target>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-source-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>source-jar</id>
+ <phase>install</phase>
+ <goals>
+ <goal>jar</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>javadoc-jar</id>
+ <phase>install</phase>
+ <goals>
+ <goal>jar</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <artifactId>maven-install-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>install-sources</id>
+ <phase>install</phase>
+ <goals>
+ <goal>install-file</goal>
+ </goals>
+ <configuration>
+ <groupId>${groupId}</groupId>
+ <artifactId>${artifactId}</artifactId>
+ <version>${version}</version>
+ <packaging>jar</packaging>
+ <file>${project.build.directory}/${artifactId}-${version}-sources.jar</file>
+ <classifier>sources</classifier>
+ </configuration>
+ </execution>
+ <execution>
+ <id>install-javadoc</id>
+ <phase>install</phase>
+ <goals>
+ <goal>install-file</goal>
+ </goals>
+ <configuration>
+ <groupId>${groupId}</groupId>
+ <artifactId>${artifactId}</artifactId>
+ <version>${version}</version>
+ <packaging>jar</packaging>
+ <file>${project.build.directory}/${artifactId}-${version}-javadoc.jar</file>
+ <classifier>javadoc</classifier>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ <dependencies>
+ <dependency>
+ <groupId>org.testng</groupId>
+ <artifactId>testng</artifactId>
+ <version>5.8</version>
+ <classifier>jdk15</classifier>
+ </dependency>
+ <dependency>
+ <groupId>org.seleniumhq.selenium.client-drivers</groupId>
+ <artifactId>selenium-java-client-driver</artifactId>
+ <version>1.0.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.seleniumhq.selenium.server</groupId>
+ <artifactId>selenium-server-coreless</artifactId>
+ <version>1.0.1</version>
+ <exclusions>
+ <exclusion>
+ <groupId>jetty</groupId>
+ <artifactId>org.mortbay.jetty</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ <version>2.4</version>
+ </dependency>
+ </dependencies>
+</project>
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/java/org/jboss/test/selenium/AbstractSeleniumTestCase.java
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/java/org/jboss/test/selenium/AbstractSeleniumTestCase.java (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/java/org/jboss/test/selenium/AbstractSeleniumTestCase.java 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,837 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2009, Red Hat Middleware LLC, and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
+
+package org.jboss.test.selenium;
+
+import static com.thoughtworks.selenium.SeleneseTestCase.seleniumEquals;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.text.MessageFormat;
+import java.util.Properties;
+
+import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang.Validate;
+import org.jboss.test.selenium.waiting.Condition;
+import org.jboss.test.selenium.waiting.Retrieve;
+import org.jboss.test.selenium.waiting.Wait;
+import org.testng.Assert;
+
+import com.thoughtworks.selenium.DefaultSelenium;
+import com.thoughtworks.selenium.SeleniumException;
+
+/**
+ * Class that serves as basis for all Selenium-based tests.
+ *
+ * @author <a href="mailto:lfryc@redhat.com">Lukas Fryc</a>
+ * @author <a href="mailto:ppitonak@redhat.com">Pavol Pitonak</a>
+ * @version $Revision$
+ */
+public abstract class AbstractSeleniumTestCase {
+
+ protected Properties locatorsProperties;
+ protected Properties messagesProperties;
+ protected DefaultSelenium selenium;
+ /**
+ * Generic timeout in miliseconds used in every selenium function
+ * waitForPageToLoad()
+ */
+ public static String PAGE_LOAD = "180000";
+ /** Generic timeout in miliseconds used for AJAX timeouts */
+ public static long AJAX_LOAD = 3000;
+ /** Element timeout in seconds used in waitForElement functions */
+ public static int ELEM_TIMEOUT = 220;
+
+ public AbstractSeleniumTestCase() {
+ locatorsProperties = getLocatorsProperties();
+ messagesProperties = getMessagesProperties();
+ }
+
+ /**
+ * This method initializes properties with messages.
+ *
+ * Should be overridden to properly initialize properties.
+ *
+ * @return initialized properties
+ */
+ protected Properties getMessagesProperties() {
+ return new Properties();
+ }
+
+ /**
+ * This method initializes properties with locators.
+ *
+ * Should be overridden to properly initialize properties.
+ *
+ * @return initialized properties
+ */
+ protected Properties getLocatorsProperties() {
+ return new Properties();
+ }
+
+ /**
+ * Loads properties from specified resource file
+ *
+ * @param resource
+ * where in classpath the file is located
+ * @return loaded properties
+ * @throws IOException
+ * if an error occurred when reading resource file
+ */
+ protected static Properties getProperties(String resource) throws IOException {
+ ClassLoader cl = ClassLoader.getSystemClassLoader();
+ InputStream is = cl.getResourceAsStream(resource);
+
+ Properties props = new Properties();
+
+ if (is == null) {
+ is = AbstractSeleniumTestCase.class.getResourceAsStream(resource);
+ }
+
+ if (is != null) {
+ props.load(is);
+ }
+
+ return props;
+ }
+
+ /**
+ * Loads properties from specified resource file in context of specified
+ * class' package.
+ *
+ * @param tClass
+ * named resource will be searched in context of this class
+ * @param name
+ * name of resource contained in current class' package
+ * @return loaded properties
+ * @throws IllegalStateException
+ * if an error occurred when reading resource file
+ */
+ protected <T> Properties getNamedPropertiesForClass(Class<T> tClass, String name) throws IllegalStateException {
+ String propFile = tClass.getPackage().getName();
+ propFile = propFile.replace('.', '/');
+ propFile = String.format("%s/%s.properties", propFile, name);
+
+ try {
+ return getProperties(propFile);
+ } catch (IOException e) {
+ throw new IllegalStateException(e);
+ }
+ }
+
+ /**
+ * From given properties class gets property using "property" key or if
+ * value with given key doesn't exist, returns substitution'
+ *
+ * @param properties
+ * loaded properties
+ * @param property
+ * key that will be found in properties
+ * @param subst
+ * substitution which will be used in the case that property with
+ * given key doesn't exist
+ * @throws IllegalStateException
+ * when property wasn't found and substitution isn't set
+ * @return property value for given key or substitution if it doesn't exist
+ */
+ private String getProperty(Properties properties, String property, String subst) {
+ if (properties == null || properties.getProperty(property) == null) {
+ if (StringUtils.isEmpty(subst)) {
+ throw new IllegalStateException("property '" + property + "' wasn't found and substitution isn't set");
+ } else {
+ return subst;
+ }
+ } else {
+ return properties.getProperty(property);
+ }
+ }
+
+ /**
+ * Gets the property from messagesProperties. Use getMsg(String, String)
+ * instead of this deprecated method.
+ *
+ * @param prop
+ * the name of the property
+ * @param subst
+ * the value which is returned in the case the property isn't set
+ * @throws IllegalStateException
+ * when property wasn't found and substitution isn't set
+ * @return the property
+ * @see org.jboss.test.selenium.AbstractSeleniumTestCase#getMsg(String,
+ * String) getMsg(String, String)
+ * @see org.jboss.test.selenium.AbstractSeleniumTestCase#getMessagesProperties()
+ * getMessagesProperties()
+ */
+ @Deprecated
+ public String getMess(String prop, String subst) {
+ return getMsg(prop, subst);
+ }
+
+ /**
+ * Gets the property from messagesProperties. Use getMess(String) instead of
+ * this deprecated method.
+ *
+ * @param prop
+ * the name of the property
+ * @throws IllegalStateException
+ * when property wasn't found
+ * @return the property
+ * @see org.jboss.test.selenium.AbstractSeleniumTestCase#getMsg(String)
+ * getMsg(String)
+ * @see org.jboss.test.selenium.AbstractSeleniumTestCase#getMessagesProperties()
+ * getMessagesProperties()
+ */
+ @Deprecated
+ public String getMess(String prop) {
+ return getMsg(prop, null);
+ }
+
+ /**
+ * Gets the property from messagesProperties.
+ *
+ * @param prop
+ * the name of the property
+ * @param subst
+ * the value which is returned in the case the property isn't set
+ * @throws IllegalStateException
+ * when property wasn't found and substitution isn't set
+ * @return the property
+ * @see org.jboss.test.selenium.AbstractSeleniumTestCase#getMessagesProperties()
+ * getMessagesProperties()
+ */
+ public String getMsg(String prop, String subst) {
+ return getProperty(messagesProperties, prop, subst);
+ }
+
+ /**
+ * Gets the property from messagesProperties.
+ *
+ * @param prop
+ * the name of the property
+ * @throws IllegalStateException
+ * when property wasn't found
+ * @return the property
+ * @see org.jboss.test.selenium.AbstractSeleniumTestCase#getMessagesProperties()
+ * getMessagesProperties()
+ */
+ public String getMsg(String prop) {
+ return getMsg(prop, null);
+ }
+
+ /**
+ * Gets the property from messagesProperties and use it to format Message
+ * with given arguments. Use formatMsg instead of this deprecated method.
+ *
+ * @param prop
+ * the name of the property with message format.
+ * @param args
+ * an array of atributes to be formatted and substituted to prop
+ * @throws IllegalStateException
+ * when property wasn't found
+ * @return the property
+ * @see org.jboss.test.selenium.AbstractSeleniumTestCase#formatMsg(String,
+ * Object...) formattMsg(String, Object...)
+ */
+ @Deprecated
+ public String formatMess(String prop, Object... args) {
+ return format(getMsg(prop, null), args);
+ }
+
+ /**
+ * Gets the property from messagesProperties and use it to format Message
+ * with given arguments
+ *
+ * @param prop
+ * the name of the property with message format.
+ * @param args
+ * an array of atributes to be formatted and substituted to prop
+ * @throws IllegalStateException
+ * when property wasn't found
+ * @return the property
+ */
+ public String formatMsg(String prop, Object... args) {
+ return format(getMsg(prop, null), args);
+ }
+
+ /**
+ * Gets the property from locatorsProperties
+ *
+ * @param prop
+ * the name of the property
+ * @param subst
+ * the value which is returned in the case the property isn't set
+ * @throws IllegalStateException
+ * when property wasn't found and substitution isn't set
+ * @return the property
+ * @see org.jboss.test.selenium.AbstractSeleniumTestCase#getLocatorsProperties()
+ * getLocatorsProperties()
+ */
+ public String getLoc(String prop, String subst) {
+ return getProperty(locatorsProperties, prop, subst);
+ }
+
+ /**
+ * Gets the property from locatorsProperties
+ *
+ * @param prop
+ * the name of the property
+ * @throws IllegalStateException
+ * when property wasn't found
+ * @return the property
+ * @see org.jboss.test.selenium.AbstractSeleniumTestCase#getLocatorsProperties()
+ * getLocatorsProperties()
+ */
+ public String getLoc(String prop) {
+ return getLoc(prop, null);
+ }
+
+ /**
+ * Gets the property from messagesProperties and use it to format Message
+ * with given arguments
+ *
+ * @param prop
+ * the name of the property with message format.
+ * @param args
+ * an array of atributes to be formatted and substituted to prop
+ * @throws IllegalStateException
+ * when property wasn't found
+ * @return the property
+ * @see org.jboss.test.selenium.AbstractSeleniumTestCase#getLocatorsProperties()
+ * getLocatorsProperties()
+ */
+ public String formatLoc(String prop, Object... args) {
+ return format(getLoc(prop, null), args);
+ }
+
+ /**
+ * Uses a MessageFormat.format() to prepare given format string and use it
+ * to format result with given arguments.
+ *
+ * @param format
+ * string used in MessageFormat.format()
+ * @param args
+ * used to formatting given format string
+ * @return string formatted using given arguments
+ */
+ public String format(String format, Object... args) {
+ String message = preformat(format);
+ return MessageFormat.format(message, args);
+ }
+
+ /**
+ * Prepares a message to use in Message.format()
+ *
+ * @param message
+ * prepared to use in Message.format()
+ * @return message prepared to use in Message.format()
+ */
+ private String preformat(String message) {
+ return message.replace("'", "''").replace("\\''", "'");
+ }
+
+ /**
+ * Click on an element only in the case element is present on the screen.
+ *
+ * @param id
+ * element locator
+ */
+ public void clickIfVisible(String id) {
+
+ if (selenium.isElementPresent(id)) {
+ selenium.click(id);
+ selenium.waitForPageToLoad(PAGE_LOAD);
+ }
+ }
+
+ /**
+ * Finding the correct row in a table due to input string and columns. The
+ * function uses selenium javascript extension findTableRow. It tries to
+ * look up the input string in the chosen column in selected table. After
+ * the first occurrence of input string, it returns the number of row where
+ * it was found.
+ *
+ * @param tableLocation
+ * the table locator
+ * @param searchName
+ * the string which the function searches for
+ * @param searchCol
+ * the column in which the function searches for
+ * @return the number of row with the first occurrence of searchName string.
+ */
+ public int findTableRow(String tableLocation, String searchName, int searchCol) {
+ return Integer.valueOf(
+ selenium.getEval("selenium.findTableRow(\"" + tableLocation + "\",'" + searchName + "'," + searchCol
+ + ")")).intValue();
+ }
+
+ /**
+ * Counts table rows for selected table.
+ *
+ * @param tableLocation
+ * the table locator
+ * @return the number of rows of the table
+ */
+ public int countTableRows(String tableLocation) {
+ return Integer.valueOf(selenium.getEval("selenium.countTableRows(\"" + tableLocation + "\")")).intValue();
+ }
+
+ // TODO refactor
+ /**
+ * Selects a value only if the value is present in the select. If the value
+ * is not present, selection fails.
+ *
+ * @param locator
+ * the locator of the select tag
+ * @param value
+ * the value which should be selected
+ */
+ public void safeSelect(String locator, String value) {
+ waitForElement(locator);
+
+ for (int second = 0;; second++) {
+ if (second >= ELEM_TIMEOUT) {
+ Assert.fail("Element " + locator + " not found.");
+ }
+ try {
+ String[] opts = selenium.getSelectOptions(locator);
+ boolean isAvailable = false;
+
+ for (String opt : opts) {
+ if (opt.equals(value)) {
+ isAvailable = true;
+ }
+ }
+
+ if (isAvailable) {
+ break;
+ }
+ } catch (Exception e) {
+ }
+ waitFor(1000);
+ }
+
+ selenium.select(locator, "label=" + value);
+ }
+
+ /**
+ * Click and wait. Substitution for two selenium commands click and
+ * waitForPageToLoad.
+ *
+ * @param locator
+ * the locator of the element to be clicked on
+ */
+ public void clickAndWait(String locator) {
+ waitForElement(locator);
+ selenium.click(locator);
+ selenium.waitForPageToLoad(PAGE_LOAD);
+ }
+
+ /**
+ * Open and wait. Substitution for two selenium commands open and
+ * waitForPageToLoad.
+ *
+ * @param locator
+ * the address to be opened
+ */
+ public void openAndWait(String locator) {
+ selenium.open(locator);
+ selenium.waitForPageToLoad(PAGE_LOAD);
+ }
+
+ /**
+ * Select if not selected. If the value is already selected, the method does
+ * nothing.
+ *
+ * @param selector
+ * the selector locator
+ * @param label
+ * the label to be selected
+ */
+ public void selectIfNotSelected(String selector, String label) {
+ waitForElement(selector);
+ if (!selenium.getSelectedLabel(selector).equals(label)) {
+ selenium.select(selector, "label=" + label);
+ selenium.waitForPageToLoad(PAGE_LOAD);
+ }
+ }
+
+ /**
+ * Asserts the text order on the page. The messages which order is to be
+ * determined are inputed in a comma separated way. i.e.
+ * "string1;string2;string3". The method asserts that they appear on the
+ * page in the same order as typed in the input string. It returns true if
+ * the order is the same or false otherwise.
+ *
+ * @param text
+ * input text in comma separated format which order is to be
+ * asserted
+ *
+ * @return true if the order is the same or false otherwise
+ */
+ public boolean assertTextOrder(String text) {
+ return Boolean.valueOf(selenium.getEval("selenium.assertTextOrder(\"" + text + "\")"));
+ }
+
+ /**
+ * Waits for specified time in ms. Used mostly in AJAX based tests.
+ *
+ * @param time
+ * the time (in ms) to be waited for.
+ */
+ public void waitFor(long time) {
+ try {
+ Thread.sleep(time);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * Waits for element to appear on the screen. Used mostly in AJAX based
+ * tests.
+ *
+ * @param locator
+ * the locator of the element to be waited for
+ */
+ public void waitForElement(String locator) {
+ for (int second = 0;; second++) {
+ if (second >= ELEM_TIMEOUT) {
+ Assert.fail("Element " + locator + " not found.");
+ }
+ try {
+ if (selenium.isElementPresent(locator)) {
+ break;
+ }
+ } catch (Exception e) {
+ }
+ waitFor(1000);
+ }
+ }
+
+ /**
+ * Waits for element to appear on the screen. Used mostly in AJAX based
+ * tests.
+ *
+ * @param locatorElem
+ * the element locator
+ * @param timeToWait
+ * the time (in ms) to wait until timeout is reached
+ */
+ public void waitForElement(String locatorElem, long timeToWait) {
+ for (int i = 0;; i++) {
+ if (i * 500 >= timeToWait) {
+ Assert.fail("Element " + locatorElem + " not found.");
+ }
+ try {
+ if (selenium.isElementPresent(locatorElem)) {
+ break;
+ }
+ } catch (Exception e) {
+ }
+ waitFor(500);
+ }
+ }
+
+ /**
+ * Waits for element to appear on the screen. Used mostly in AJAX based
+ * tests.
+ *
+ * @param locatorElem
+ * the element locator
+ * @param locatorLink
+ * the link locator - not used
+ * @param timeToWait
+ * the time (in ms) to wait until timeout is reached
+ * @param n
+ * the n
+ * @see org.jboss.test.selenium.AbstractSeleniumTestCase#waitForElement(String,
+ * long) waitForElement(String, long)
+ */
+ @Deprecated
+ public void waitForElement(String locatorElem, String locatorLink, long timeToWait, long n) {
+ for (int i = 0;; i++) {
+ if (i >= n) {
+ Assert.fail("Element " + locatorElem + " not found.");
+ }
+ try {
+ if (selenium.isElementPresent(locatorElem)) {
+ break;
+ }
+ } catch (Exception e) {
+ }
+ waitFor(1000);
+ }
+ }
+
+ /**
+ * Waits for text to appear on the screen. Used mostly in AJAX based tests.
+ *
+ * @param text
+ * the text to be waited for
+ */
+ public void waitForText(String text) {
+ for (int second = 0;; second++) {
+ if (second >= ELEM_TIMEOUT) {
+ Assert.fail("Text '" + text + "' not found.");
+ }
+ try {
+ if (selenium.isTextPresent(text)) {
+ break;
+ }
+ } catch (Exception e) {
+ }
+ waitFor(100);
+ }
+ }
+
+ /**
+ * Waits for element specified by locator does contain text specified by
+ * pattern
+ *
+ * @param locator
+ * text of this locator's element will be tested for equivalence
+ * to pattern text
+ * @param pattern
+ * pattern text, which will be tested to equivalence to element's
+ * text given by locator
+ *
+ */
+ public void waitForTextEquals(final String locator, final String pattern) {
+ Wait.until(new Condition() {
+ public boolean isTrue() {
+ return seleniumEquals(selenium.getText(locator), pattern);
+ }
+ });
+ }
+
+ /**
+ * Wait for text of element given by locator changes from lastText to
+ * another text.
+ *
+ * @param locator
+ * locator of element
+ * @param lastText
+ * current text what we are waiting for change
+ */
+ public void waitForTextChanges(final String locator, final String lastText) {
+ waitForTextChangesAndReturn(locator, lastText);
+ }
+
+ /**
+ * Wait for text of element given by locator changes from lastText to
+ * another text and returns this new text.
+ *
+ * @param locator
+ * locator of element
+ * @param lastText
+ * current text what we are waiting for change
+ * @return new value of text
+ */
+ public String waitForTextChangesAndReturn(final String locator, final String lastText) {
+ return Wait.waitForChangeAndReturn(lastText, new Retrieve<String>() {
+ public String retrieve() {
+ return selenium.getText(locator);
+ }
+ });
+ }
+
+ /**
+ * Wait for attribute of element given by attributeLocator changes from
+ * attributeValue to another value.
+ *
+ * @param attributeLocator
+ * locator of attribute
+ * @param attributeValue
+ * current value attribute what we are waiting for change
+ */
+ public void waitForAttributeChanges(final String attributeLocator, final String attributeValue) {
+ waitForAttributeChangesAndReturn(attributeLocator, attributeValue);
+ }
+
+ /**
+ * Wait for attribute of element given by attributeLocator changes from
+ * attributeValue to another value and returns this new value.
+ *
+ * @param attributeLocator
+ * locator of attribute
+ * @param attributeValue
+ * current value attribute what we are waiting for change
+ * @return new value of attribute
+ */
+ public String waitForAttributeChangesAndReturn(final String attributeLocator, final String attributeValue) {
+ return Wait.waitForChangeAndReturn(attributeValue, new Retrieve<String>() {
+ public String retrieve() {
+ return selenium.getAttribute(attributeLocator);
+ }
+ });
+ }
+
+ /**
+ * Get current style value of element given by locator.
+ *
+ * Use CSS style notation instead of JavaScript's camel notation!
+ *
+ * This methods of getting current style value haven't absolute browser
+ * compatibility.
+ *
+ * E.g.: use property "background-color" instead of "backgroundColor"
+ *
+ * @param locator
+ * of element from what we want to get current style value
+ * @param property
+ * CSS style property what we can to recognize
+ * @return current value of property if its element exists and has this
+ * property value set; null value otherwise
+ * @throws IllegalStateException
+ * if is caught unrecognized throwable
+ */
+ public String getStyle(String locator, String property) {
+ String evaluate = MessageFormat.format("selenium.getStyle(\"{0}\", \"{1}\")", locator, property);
+ String result = null;
+ try {
+ result = selenium.getEval(evaluate);
+ } catch (Exception e) {
+ if ("ERROR: Threw an exception: null property value".equals(e.getMessage())) {
+ return null;
+ }
+ throw new SeleniumException(e);
+ }
+ return result;
+ }
+
+ /**
+ * Aligns screen to top (resp. bottom) of element given by locator.
+ *
+ * TODO should be reimplemented to use of JQuery.scrollTo
+ *
+ * @param locator
+ * of element which should be screen aligned to
+ * @param alignToTop
+ * should be top border of screen aligned to top border of
+ * element
+ */
+ public void scrollIntoView(String locator, boolean alignToTop) {
+ String evaluate = MessageFormat.format("selenium.scrollIntoView(\"{0}\", {1})", locator, Boolean
+ .toString(alignToTop));
+ selenium.getEval(evaluate);
+ }
+
+ /**
+ * Checks if element given by locator is member of CSS class given by
+ * className.
+ *
+ * @param className
+ * name of CSS class
+ * @param locator
+ * element's locator
+ * @return true if element given by locator is member of CSS class given by
+ * className
+ */
+ public boolean belongsClass(String className, String locator) {
+ Validate.notNull(className);
+ Validate.notNull(locator);
+
+ String classLocator = format("{0}/@class", locator);
+ String classNames = getAttributeOrNull(classLocator);
+
+ if (classNames == null) {
+ return false;
+ }
+
+ String regex = format("(?:^|.*\\s){0}(?:$|\\s.*)", className);
+ return classNames.matches(regex);
+ }
+
+ /**
+ * Returns whether the element is displayed on the page.
+ *
+ * @param locator
+ * element locator
+ * @return if style contains "display: none;" returns false, else returns
+ * true
+ */
+ public boolean isDisplayed(String locator) {
+ try {
+ return !getStyle(locator, "display").contains("none");
+ } catch (Exception e) {
+ // there is no attribute "style"
+ return true;
+ }
+ }
+
+ /**
+ * Simulates a user hovering a mouse over the specified element at specific
+ * coordinates relative to element.
+ *
+ * @param locator
+ * element's locator
+ * @param coordString
+ * specifies the x,y position (i.e. - 10,20) of the mouse event
+ * relative to the element returned by the locator.
+ */
+ public void mouseOverAt(String locator, String coordString) {
+ selenium.getEval(format("selenium.doMouseOverAt(\"{0}\", \"{1}\")", locator, coordString));
+ }
+
+ /**
+ * Gets the text of an element. This works for any element that contains
+ * text. This command uses either the textContent (Mozilla-like browsers) or
+ * the innerText (IE-like browsers) of the element, which is the rendered
+ * text shown to the user.
+ *
+ * If no element with given locator is found, returns null.
+ *
+ * @param locator
+ * an element locator
+ * @return the text of the element or null if element's wasn't found
+ */
+ public String getTextOrNull(String locator) {
+ try {
+ return selenium.getEval(format("selenium.getTextOrNull(\"{0}\")", locator));
+ } catch (Exception e) {
+ if ("ERROR: Threw an exception: element is not found".equals(e.getMessage())) {
+ return null;
+ }
+ throw new SeleniumException(e);
+ }
+ }
+
+ /**
+ * Gets the value of an element attribute. The value of the attribute may
+ * differ across browsers (this is the case for the "style" attribute, for
+ * example).
+ *
+ * If no element with given attribute's locator is found, returns null.
+ *
+ * @param attributeLocator
+ * an element's attribute locator
+ * @return the attribute of the element or null if element's attribute
+ * wasn't found
+ */
+ public String getAttributeOrNull(String attributeLocator) {
+ try {
+ return selenium.getAttribute(attributeLocator);
+ } catch (Exception e) {
+ if (e.getMessage().startsWith("ERROR: Could not find element attribute:")
+ || e.getMessage().matches("^ERROR: Element .* not found$")) {
+ return null;
+ }
+ throw new IllegalStateException("getAttributeOrNull unexpected state - " + e.getMessage(), e);
+ }
+ }
+}
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/java/org/jboss/test/selenium/actions/Drag.java
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/java/org/jboss/test/selenium/actions/Drag.java (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/java/org/jboss/test/selenium/actions/Drag.java 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,187 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2009, Red Hat Middleware LLC, and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
+
+package org.jboss.test.selenium.actions;
+
+import org.jboss.test.selenium.waiting.Wait;
+import org.jboss.test.selenium.waiting.Wait.Waiting;
+
+import com.thoughtworks.selenium.Selenium;
+
+/**
+ * Provides item dragging capability to Selenium tests.
+ *
+ * Methods can be call in following serie: start, mouseOut, move, enter, drop.
+ *
+ * If we are calling preceding phase (e.g. move, when drag was already called),
+ * IllegalStateException is thrown.
+ *
+ * If we are calling following phase (e.g. drop, when no action was called), all
+ * phases preceding requested phase will be done before requested phase can be
+ * done.
+ *
+ * @author <a href="mailto:lfryc@redhat.com">Lukas Fryc</a>
+ * @version $Revision$
+ */
+public class Drag {
+ // specifies phase in which is dragging state
+ private int phase;
+ private Selenium selenium;
+ private String item;
+ private String target;
+ private int x;
+ private int y;
+ private final int STEPS = 5;
+ private final int FIRST_STEP = 2;
+ private final Waiting wait = Wait.timeout(10);
+
+ /**
+ * @param selenium
+ * initialized and started Selenium instance
+ * @param item
+ * item to drag
+ * @param target
+ * target of item dragging
+ */
+ public Drag(Selenium selenium, String item, String target) {
+ this.phase = 0;
+ this.selenium = selenium;
+ this.item = item;
+ this.target = target;
+ x = selenium.getElementPositionLeft(target).intValue() - selenium.getElementPositionLeft(item).intValue();
+ y = selenium.getElementPositionTop(target).intValue() - selenium.getElementPositionTop(item).intValue();
+ }
+
+ /**
+ * Starts first phase of dragging.
+ *
+ * Simulate left mouse button pressing and small initial movement.
+ */
+ public void start() {
+ process(0);
+ }
+
+ /**
+ * Starts second phase of dragging.
+ *
+ * If there is some unfinished preceding phases, it will be done before this
+ * phase.
+ *
+ * Simulate movement of mouse cursor out of the item that ve want to drag.
+ */
+ public void mouseOut() {
+ process(1);
+ }
+
+ /**
+ * Starts third phase of dragging.
+ *
+ * If there is some unfinished preceding phases, it will be done before this
+ * phase.
+ *
+ * Simulate movement of mouse cursor near the target item.
+ */
+ public void move() {
+ process(2);
+ }
+
+ /**
+ * Starts fourth phase of dragging.
+ *
+ * If there is some unfinished preceding phases, it will be done before this
+ * phase.
+ */
+ public void enter() {
+ process(3);
+ }
+
+ /**
+ * Last phase of dragging.
+ *
+ * If there is some unfinished preceding phases, it will be done before this
+ * phase.
+ *
+ * Drop the item to target.
+ */
+ public void drop() {
+ process(4);
+ }
+
+ /**
+ * Holds whole process of dragging serialized to one switch condition.
+ *
+ * If some phase is called by its number, it will be recognized, that is
+ * possible to process this step.
+ *
+ * Internally is used counter 'phase' which will be decreased when passed to
+ * a new phase. Switch condition breaks when will finished in requesting
+ * phase.
+ */
+ private void process(int request) {
+ if (request < phase) {
+ throw new RuntimeException();
+ }
+
+ switch (phase) {
+ case 0: // START
+
+ selenium.mouseDown(item);
+ String moveCoords = coords((x < 0) ? FIRST_STEP : -FIRST_STEP, (y < 0) ? FIRST_STEP : -FIRST_STEP);
+ selenium.mouseMoveAt(item, moveCoords);
+
+ if (request < ++phase)
+ break;
+ case 1: // MOUSE OUT
+
+ selenium.mouseOut(item);
+
+ if (request < ++phase)
+ break;
+ case 2: // MOVE
+
+ for (int i = 0; i < STEPS; i++) {
+ selenium.mouseMoveAt(item, coords(x * i / STEPS, y * i / STEPS));
+ wait.waitForTimeout();
+ }
+
+ if (request < ++phase)
+ break;
+ case 3: // ENTER
+
+ selenium.mouseMoveAt(item, coords(x, y));
+ selenium.mouseOver(target);
+
+ if (request < ++phase)
+ break;
+ case 4: // DROP
+
+ selenium.mouseUp(target);
+
+ if (request < ++phase)
+ break;
+ }
+ }
+
+ /**
+ * Returns string with given coordinates by pattern "x,y" (e.g. "-30,100").
+ */
+ private String coords(int x, int y) {
+ return String.format("%d,%d", x, y);
+ }
+
+}
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/java/org/jboss/test/selenium/dom/Event.java
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/java/org/jboss/test/selenium/dom/Event.java (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/java/org/jboss/test/selenium/dom/Event.java 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,46 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2009, Red Hat Middleware LLC, and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
+
+package org.jboss.test.selenium.dom;
+
+/**
+ * @author <a href="mailto:lfryc@redhat.com">Lukas Fryc</a>
+ * @version $Revision$
+ */
+public class Event {
+ public static final String ABORT = "abort";
+ public static final String BLUR = "blur";
+ public static final String CHANGE = "change";
+ public static final String CLICK = "click";
+ public static final String ERROR = "error";
+ public static final String FOCUS = "focus";
+ public static final String KEYDOWN = "keydown";
+ public static final String KEYPRESS = "keypress";
+ public static final String KEYUP = "keyup";
+ public static final String LOAD = "load";
+ public static final String MOUSEDOWN = "mousedown";
+ public static final String MOUSEMOVE = "mousemove";
+ public static final String MOUSEOUT = "mouseout";
+ public static final String MOUSEOVER = "mouseover";
+ public static final String MOUSEUP = "mouseup";
+ public static final String RESET = "reset";
+ public static final String RESIZE = "resize";
+ public static final String SELECT = "select";
+ public static final String SUBMIT = "submit";
+ public static final String UNLOAD = "unload";
+}
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/java/org/jboss/test/selenium/utils/URLUtils.java
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/java/org/jboss/test/selenium/utils/URLUtils.java (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/java/org/jboss/test/selenium/utils/URLUtils.java 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,89 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2009, Red Hat Middleware LLC, and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
+
+package org.jboss.test.selenium.utils;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.math.BigInteger;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLConnection;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+
+/**
+ * Provides URL manipulations and functionality.
+ *
+ * @author <a href="mailto:lfryc@redhat.com">Lukas Fryc</a>
+ * @version $Revision$
+ */
+public class URLUtils {
+
+ /**
+ * Use URL context and one or more relocations to build end URL.
+ *
+ * @param context
+ * first URL used like a context root for all relocation changes
+ * @param relocations
+ * array of relocation URLs
+ * @return end url after all changes made on context with relocations
+ * @throws MalformedURLException
+ * when context or some of relocations are malformed
+ */
+ public static String buildUrl(String context, String... relocations) throws MalformedURLException {
+ URL url = new URL(context);
+
+ for (String move : relocations) {
+ url = new URL(url, move);
+ }
+
+ return url.toString();
+ }
+
+ /**
+ * Gets a MD5 digest of some resource obtains as input stream from
+ * connection to URL given by URL string.
+ *
+ * @param url of the resource
+ * @return MD5 message digest of resource
+ * @throws IOException when connection to URL fails
+ */
+ public static String resourceMd5Digest(String url) throws IOException,
+ NoSuchAlgorithmException {
+ URLConnection connection = new URL(url).openConnection();
+
+ InputStream in = connection.getInputStream();
+ MessageDigest digest;
+ try {
+ digest = MessageDigest.getInstance("MD5");
+ } catch (NoSuchAlgorithmException ex) {
+ throw new IllegalStateException("MD5 hashing is unsupported", ex);
+ }
+ byte[] buffer = new byte[8192];
+ int read = 0;
+
+ while ((read = in.read(buffer)) > 0) {
+ digest.update(buffer, 0, read);
+ }
+
+ byte[] md5sum = digest.digest();
+ BigInteger bigInt = new BigInteger(1, md5sum);
+ return bigInt.toString(16);
+ }
+}
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/java/org/jboss/test/selenium/utils/array/ArrayTransform.java
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/java/org/jboss/test/selenium/utils/array/ArrayTransform.java (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/java/org/jboss/test/selenium/utils/array/ArrayTransform.java 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,77 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2009, Red Hat Middleware LLC, and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
+
+package org.jboss.test.selenium.utils.array;
+
+/**
+ * Abstract class providing generic array transformations.
+ *
+ * Use overridden method transform(S[] sourceArray) to transform
+ * sourceArray to T[] targetArray. Method transform(S[] sourceArray) is
+ * implementation of transformation of each item from type S to type T.
+ *
+ * Items are transformed to target array as one-to-one preserving order of source.
+ *
+ * @author <a href="mailto:lfryc@redhat.com">Lukas Fryc</a>
+ * @version $Revision$
+ * @param <S> Type of source items.
+ * @param <T> Type of target items.
+ */
+public abstract class ArrayTransform<S, T> {
+
+ /**
+ * This method is implementation of transformation each item of sourceArray
+ * and type S to item of type T in targetArray.
+ *
+ * @param source
+ * transformation object
+ * @return transformation result
+ */
+ public abstract T transformation(S source);
+
+ private Class<T> tClass;
+
+ /**
+ * Constructs ArrayTransform with implementation of transformation
+ * predefining tClass like a class of transformation-target array.
+ *
+ * @param tClass
+ * class of type T in which should be typed resulting target array
+ */
+ public ArrayTransform(Class<T> tClass) {
+ this.tClass = tClass;
+ }
+
+ /**
+ * Process transformation of S[] sourceArray with T[] targetArray like
+ * return value.
+ *
+ * @param sourceArray
+ * array of type S which should be transformed to targetArray of type T
+ * @return targetArray of type T after transformation from S[] sourceArray
+ */
+ @SuppressWarnings("unchecked")
+ public T[] transform(S[] sourceArray) {
+ T[] targetArray = (T[]) java.lang.reflect.Array.newInstance(tClass,
+ sourceArray.length);
+ for (int i = 0; i < sourceArray.length; i++) {
+ targetArray[i] = transformation(sourceArray[i]);
+ }
+ return targetArray;
+ }
+}
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/java/org/jboss/test/selenium/waiting/Condition.java
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/java/org/jboss/test/selenium/waiting/Condition.java (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/java/org/jboss/test/selenium/waiting/Condition.java 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,34 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2009, Red Hat Middleware LLC, and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
+
+package org.jboss.test.selenium.waiting;
+
+/**
+ * Specifies when condition will be true.
+ *
+ * @author <a href="mailto:lfryc@redhat.com">Lukas Fryc</a>
+ * @version $Revision$
+ */
+public interface Condition {
+ /**
+ * Returns true if condition is satisfied, false if it isn't.
+ *
+ * @return true if desired condition is satisfied, false if it isn't
+ */
+ public boolean isTrue();
+}
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/java/org/jboss/test/selenium/waiting/Not.java
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/java/org/jboss/test/selenium/waiting/Not.java (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/java/org/jboss/test/selenium/waiting/Not.java 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,46 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2009, Red Hat Middleware LLC, and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
+
+package org.jboss.test.selenium.waiting;
+
+/**
+ * Opposite to Condition - you specify when desired conditions is not satisfied.
+ *
+ * @author <a href="mailto:lfryc@redhat.com">Lukas Fryc</a>
+ * @version $Revision$
+ */
+public abstract class Not implements Condition {
+
+ /**
+ * Implementation of condition, which will not be satisfied.
+ *
+ * @return true if desired condition is <b>not</b> satisfied
+ */
+ public final boolean isTrue() {
+ return !not();
+ }
+
+ /**
+ * This method has to be overridden to return condition which shouldn't be
+ * satisfied.
+ *
+ * @return true if desired condition is <b>not</b> satisfied, false if it is
+ *
+ */
+ public abstract boolean not();
+}
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/java/org/jboss/test/selenium/waiting/Retrieve.java
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/java/org/jboss/test/selenium/waiting/Retrieve.java (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/java/org/jboss/test/selenium/waiting/Retrieve.java 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,35 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2009, Red Hat Middleware LLC, and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
+
+package org.jboss.test.selenium.waiting;
+
+/**
+ * Implementing this method you get implementation of retrieving typed values from some source.
+ *
+ * @author <a href="mailto:lfryc@redhat.com">Lukas Fryc</a>
+ * @version $Revision$
+ * @param <T> type of retrieved value
+ */
+public interface Retrieve<T> {
+ /**
+ * Override with implementation of retrieving value from source.
+ *
+ * @return retrieved value
+ */
+ T retrieve();
+}
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/java/org/jboss/test/selenium/waiting/Wait.java
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/java/org/jboss/test/selenium/waiting/Wait.java (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/java/org/jboss/test/selenium/waiting/Wait.java 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,477 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2009, Red Hat Middleware LLC, and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ */
+
+package org.jboss.test.selenium.waiting;
+
+import java.util.Vector;
+import java.util.concurrent.atomic.AtomicReference;
+
+/**
+ * <p>
+ * Implementation of waiting to satisfy condition.
+ * </p>
+ *
+ * <p>
+ * This class constructs instances of Waiting by factory methods but
+ * provides its functionality (defaulted waiting) by static method until.
+ * </p>
+ *
+ * <p>
+ * Other factories (getDefault(), timeout(long), interval(long)) serves as simplified way to build new configured
+ * instance, which can simple run waiting loop.
+ * </p>
+ *
+ * <p>
+ * Class is intended to be used like these:
+ * </p>
+ *
+ * <ol>
+ * <li>
+ * <h3>direct waiting loop</h3>
+ * <pre>
+ * Wait.until(new Condition()) {
+ * public boolean isTrue() {
+ * return ...;
+ * }
+ * }
+ * </pre>
+ * </li>
+ *
+ * <li>
+ * <h3>direct waiting loop with parameters</h3>
+ * <pre>
+ * Wait.interval(100).timeout(3000).until(new Not()) {
+ * public boolean not() {
+ * return ...;
+ * }
+ * }
+ * </pre>
+ * </li>
+ *
+ * <li>
+ * <h3>save settings and run configured wait loop</h3>
+ * <pre>
+ * final String locator1 = "...";
+ * final String locator2 = "...";
+ *
+ * ...
+ *
+ * Condition locatorsEqual = new Condition() {
+ * public boolean isTrue() {
+ * return selenium.equals(locator1, locator2);
+ * }
+ * };
+ *
+ * Waiting waitResponse = Wait.interval(1000).timeout(30000);
+ *
+ * ...
+ *
+ * waitResponse.until(locatorsEqual); // some usage
+ *
+ * ...
+ *
+ * waitResponse.until(locatorsEqual); // other usage
+ * </pre>
+ * </li>
+ * </ol>
+ *
+ * @author <a href="mailto:lfryc@redhat.com">Lukas Fryc</a>
+ * @version $Revision$
+ */
+public class Wait {
+
+ /**
+ * Default waiting interval
+ */
+ public static final long DEFAULT_INTERVAL = com.thoughtworks.selenium.Wait.DEFAULT_INTERVAL;
+ /**
+ * Default timeout of waiting
+ */
+ public static final long DEFAULT_TIMEOUT = com.thoughtworks.selenium.Wait.DEFAULT_TIMEOUT;
+
+ /**
+ * Class cannot be constructed in standard way, use factories method instead
+ * since it has static members only and no other purposes.
+ */
+ private Wait() {
+ }
+
+ /**
+ * Constructs default preset instance of waiting (@see Waiting).
+ *
+ * @return default Waiting instance
+ */
+ public static Waiting getDefault() {
+ return Waiting.getInstance();
+ }
+
+ /**
+ * Constructs preset instance of waiting (@see Waiting) with given interval.
+ *
+ * @param interval
+ * in miliseconds that will be preset to Waiting
+ * @return Waiting instance initialized with given interval
+ */
+ public static Waiting interval(long interval) {
+ return getDefault().interval(interval);
+ }
+
+ /**
+ * Constructs preset instance of waiting (@see Waiting) with given timeout.
+ *
+ * @param timeout
+ * in miliseconds that will be preset to Waiting
+ * @return Waiting instance initialized with given timeout
+ */
+ public static Waiting timeout(long timeout) {
+ return getDefault().timeout(timeout);
+ }
+
+ /**
+ * Constructs preset instance of waiting (@see Waiting) with given throwable
+ * failure, which indicates timeout.
+ *
+ * If failure is set to null, timeout will not result to failure!
+ *
+ * @param failure
+ * throwable that will be thrown in case of waiting timeout or
+ * null if waiting timeout shouldn't result to failure
+ * @return Waiting instance initialized with given failure
+ */
+ public static Waiting failWith(Throwable failure) {
+ return getDefault().failWith(failure);
+ }
+
+ /**
+ * Constructs preset instance of waiting (@see Waiting) with failures
+ * initialized to AssertionError with given message.
+ *
+ * @param failMessage
+ * message which will be set to thrown AssertionError
+ * @return Waiting instance initialized with failures using AssertionError
+ * with given message
+ */
+ public static Waiting failWith(String failMessage) {
+ return getDefault().failWith(failMessage);
+ }
+
+ /**
+ * Constructs preset instance of waiting (@see Waiting) with no failure.
+ *
+ * Waiting timeout with this preset dont result to failure!
+ *
+ * @return Waiting instance initialized with no failure
+ */
+ public static Waiting dontFail() {
+ return getDefault().dontFail();
+ }
+
+ /**
+ * Will wait for default amount of time. Default timeout specified in
+ * Wait.DEFAULT_TIMEOUT
+ */
+ public static void waitForTimeout() {
+ getDefault().waitForTimeout();
+ }
+
+ /**
+ * Waits until Retrieve's implementation doesn't retrieve value other
+ * than oldValue.
+ *
+ * @param <T>
+ * type of value what we are waiting for change
+ * @param oldValue
+ * value that we are waiting for change
+ * @param retrieve
+ * implementation of retrieving actual value
+ */
+ public static <T> void waitForChange(T oldValue, Retrieve<T> retrieve) {
+ getDefault().waitForChangeAndReturn(oldValue, retrieve);
+ }
+
+ /**
+ * Waits until Retrieve's implementation doesn't retrieve value other
+ * than oldValue and this new value returns.
+ *
+ * @param <T>
+ * type of value what we are waiting for change
+ * @param oldValue
+ * value that we are waiting for change
+ * @param retrieve
+ * implementation of retrieving actual value
+ * @return new retrieved value
+ */
+ public static <T> T waitForChangeAndReturn(T oldValue, Retrieve<T> retrieve) {
+ return getDefault().waitForChangeAndReturn(oldValue, retrieve);
+ }
+
+ /**
+ * Will wait for specified amount of time.
+ *
+ * Timeout is specified in miliseconds
+ *
+ * @param timeoutInMilis
+ * time to wait in miliseconds
+ */
+ public static void waitFor(long timeoutInMilis) {
+ getDefault().timeout(timeoutInMilis).waitForTimeout();
+ }
+
+ /**
+ * Stars loop waiting to satisfy condition with default timeout and
+ * interval.
+ *
+ * @param condition
+ * what wait for to be satisfied
+ */
+ public static void until(Condition condition) {
+ getDefault().until(condition);
+ }
+
+ /**
+ * Class intented to construct by factories in Wait class.
+ *
+ * Implementation of waiting for satisfaction of condition.
+ */
+ public static class Waiting {
+ /**
+ * Interval between tries to test condition for satisfaction
+ */
+ private long interval = DEFAULT_INTERVAL;
+ /**
+ * Timeout of whole waiting procedure
+ */
+ private long timeout = DEFAULT_TIMEOUT;
+
+ /**
+ * Failure indicates waiting timeout.
+ *
+ * If is set to null, no failure will be thrown after timeout.
+ */
+ private Throwable failure = new AssertionError();
+
+ /**
+ * Singleton
+ */
+ private static final AtomicReference<Waiting> singleton = new AtomicReference<Waiting>(null);
+
+ /**
+ * Factory method
+ *
+ * @return singleton
+ */
+ private static Waiting getInstance() {
+ if (singleton.get() == null) {
+ singleton.compareAndSet(null, new Waiting());
+ }
+ return singleton.get();
+ }
+
+ /**
+ * This class cannot be constructed directly
+ */
+ private Waiting() {
+ }
+
+ /**
+ * Sets condition testing interval to this instance and return it.
+ *
+ * @param interval
+ * in miliseconds that will be preset to Waiting
+ * @return Waiting instance initialized with given interval
+ */
+ public Waiting interval(long interval) {
+ if (interval == this.interval) {
+ return this;
+ }
+ Waiting copy = this.copy();
+ copy.interval = interval;
+ return copy;
+ }
+
+ /**
+ * Sets waiting timeout to this instance and return it.
+ *
+ * @param timeout
+ * in miliseconds that will be preset to Waiting
+ * @return Waiting instance configured with given timeout
+ */
+ public Waiting timeout(long timeout) {
+ if (timeout == this.timeout) {
+ return this;
+ }
+ Waiting copy = this.copy();
+ copy.timeout = timeout;
+ return copy;
+ }
+
+ /**
+ * Sets failure of timeout to given throwable and return it.
+ *
+ * If failure is set to null, timeout will not result to failure!
+ *
+ * @param failure
+ * throwable that will be thrown in case of waiting timeout
+ * or null if waiting timeout shouldn't result to failure
+ * @return Waiting instance initialized with given failure
+ */
+ public Waiting failWith(Throwable failure) {
+ if (failure == null) {
+ if (this.failure == null) {
+ return this;
+ }
+ } else {
+ if (failure.equals(this.failure)) {
+ return this;
+ }
+ }
+ Waiting copy = this.copy();
+ copy.failure = failure;
+ return copy;
+ }
+
+ /**
+ * Sets failure of timeout to AssertionError with given failMessage.
+ *
+ * @param failMessage
+ * message which will be set to thrown AssertionError
+ * @return Waiting instance initialized with failures using
+ * AssertionError with given message
+ */
+ public Waiting failWith(String failMessage) {
+ return failWith(new AssertionError(failMessage));
+ }
+
+ /**
+ * Sets no failure after waiting timeout.
+ *
+ * Waiting timeout with this preset dont result to failure!
+ *
+ * @return Waiting instance initialized with no failure
+ */
+ public Waiting dontFail() {
+ return failWith((Throwable) null);
+ }
+
+ /**
+ * Stars loop waiting to satisfy condition.
+ *
+ * @param condition
+ * what wait for to be satisfied
+ */
+ public void until(Condition condition) {
+ long start = System.currentTimeMillis();
+ long end = start + timeout;
+ while (System.currentTimeMillis() < end) {
+ try {
+ Thread.sleep(interval);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ if (condition.isTrue())
+ return;
+ }
+ fail();
+ }
+
+ /**
+ * Waits for predefined amount of time.
+ */
+ public void waitForTimeout() {
+ try {
+ Thread.sleep(timeout);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ /**
+ * Waits until Retrieve's implementation doesn't retrieve value other
+ * than oldValue.
+ *
+ * @param <T>
+ * type of value what we are waiting for change
+ * @param oldValue
+ * value that we are waiting for change
+ * @param retrieve
+ * implementation of retrieving actual value
+ */
+ public <T> void waitForChange(T oldValue, Retrieve<T> retrieve) {
+ waitForChangeAndReturn(oldValue, retrieve);
+ }
+
+ /**
+ * Waits until Retrieve's implementation doesn't retrieve value other
+ * than oldValue and this new value returns.
+ *
+ * @param <T>
+ * type of value what we are waiting for change
+ * @param oldValue
+ * value that we are waiting for change
+ * @param retrieve
+ * implementation of retrieving actual value
+ * @return new retrieved value
+ */
+ public <T> T waitForChangeAndReturn(final T oldValue, final Retrieve<T> retrieve) {
+ final Vector<T> vector = new Vector<T>(1);
+
+ this.until(new Condition() {
+ public boolean isTrue() {
+ vector.add(0, retrieve.retrieve());
+ if (oldValue == null) {
+ return vector.get(0) != null;
+ }
+ return !oldValue.equals(vector.get(0));
+ }
+ });
+
+ return vector.get(0);
+ }
+
+ /**
+ * Tries to fail by throwing 'failure' throwable.
+ *
+ * If failure is instance of RuntimeException, will be directly thrown.
+ * Otherwise will be failure clothe to RuntimeException.
+ *
+ * If failure is null, method wont fail.
+ */
+ private void fail() {
+ if (failure != null) {
+ if (failure instanceof RuntimeException) {
+ throw (RuntimeException) failure;
+ } else {
+ throw new RuntimeException(failure);
+ }
+ }
+ }
+
+ /**
+ * This methods helps to make copies of current instance.
+ *
+ * @return copy of current instance
+ */
+ private Waiting copy() {
+ Waiting copy = new Waiting();
+ copy.interval = this.interval;
+ copy.timeout = this.timeout;
+ copy.failure = this.failure;
+ return copy;
+ }
+ }
+}
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/resources/jbossqa-extensions.js
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/resources/jbossqa-extensions.js (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/resources/jbossqa-extensions.js 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,186 @@
+Selenium.prototype.findTableRow = function(locator, searchText, searchCol){
+ var table = this.browserbot.findElement(locator);
+
+ var rowObj = table.rows;
+ var minCol = 0;
+
+ for (rowNo=0; rowNo<rowObj.length; rowNo++) {
+ // No need to read too short rows
+ var maxCol = rowObj[rowNo].cells.length;
+
+ if (maxCol <= searchCol || maxCol <= minCol)
+ continue;
+
+ searchHtml = rowObj[rowNo].cells[searchCol].innerHTML;
+ searchHtml = searchHtml.replace(/(<([^>]+)>)/ig,"");
+
+ //alert(searchHtml);
+ //if (searchHtml.replace(/\n/g, " ").match(/<TD.*>.*<\/TD>/i))
+ // continue;
+
+ // Build the pattern to check search column
+ var searchPat = new RegExp(".*"+searchText+".*", "m");
+
+ // No more processing for unmatched rows
+ if (!searchHtml.match(searchPat))
+ continue;
+
+ // Got the row! Let's simply return it
+ return rowNo;
+ }
+ return -1;
+}
+
+Selenium.prototype.countTableRows = function(locator){
+ var table = this.browserbot.findElement(locator);
+
+ return table.rows.length;
+}
+
+Selenium.prototype.fillInEditor = function(locator, content){
+ var iframe = this.browserbot.findElement(locator);
+ iframe.contentDocument.body.innerHTML= content;
+}
+
+Selenium.prototype.assertTextOrder = function(textValues) {
+
+ var allText = this.page().bodyText();
+ var expectedTextValues = textValues.split(";");
+
+ for (var i = 0; i < expectedTextValues.length - 1; i++) {
+ var index = allText.indexOf(expectedTextValues[i]);
+ var nextIndex = allText.indexOf(expectedTextValues[i+1]);
+ if (index == -1) {
+ return false;
+ //assert.fail("'" + expectedTextValues[i] + "' not found.");
+ }
+ if (nextIndex == -1) {
+ return false;
+ //assert.fail("'" + expectedTextValues[i+1] + "' not found.");
+ }
+
+ if (index > nextIndex) {
+ return false;
+ //assert.fail("'" + expectedTextValues[i+1] + "' found before '" + expectedTextValues[i] + "'");
+ }
+ }
+ return true;
+}
+
+/********************************************************
+ * Copyright (C) 2002-2003, CodeHouse.com. All rights reserved.
+ * CodeHouse(TM) is a registered trademark.
+ *
+ * THIS SOURCE CODE MAY BE USED FREELY PROVIDED THAT
+ * IT IS NOT MODIFIED OR DISTRIBUTED, AND IT IS USED
+ * ON A PUBLICLY ACCESSIBLE INTERNET WEB SITE.
+ *
+ * CodeHouse.com JavaScript Library Module: Get Current Style Method
+ *
+ * You can obtain this script at http://www.codehouse.com
+ ********************************************************
+ *
+ * getStyle(String locator, String property)
+ *
+ * Get current style property of element given by locator.
+ *
+ * This methods of getting current style value haven't absolute browser compatibility.
+ *
+ * Use CSS style notation instead of JavaScripts camel notation!
+ *
+ * E.g.: use property "background-color" instead of "backgroundColor"
+ */
+Selenium.prototype.getStyle = function(locator, property) {
+ var elem = this.browserbot.findElementOrNull(locator);
+
+ if (elem == null) {
+ throw new SeleniumError("null property value");
+ }
+
+ var currentDocument = this.browserbot.getCurrentWindow().document;
+
+ if( elem.currentStyle ) {
+ var ar = property.match(/\w[^-]*/g);
+ var s = ar[0];
+
+ for(var i = 1; i < ar.length; ++i) {
+ s += ar[i].replace(/\w/, ar[i].charAt(0).toUpperCase());
+ }
+
+ var result = elem.currentStyle[s];
+ if (result == undefined) {
+ throw new SeleniumError("null property value");
+ }
+ return result;
+ } else if( currentDocument.defaultView.getComputedStyle ) {
+ var computedStyle = currentDocument.defaultView.getComputedStyle(elem, null);
+
+ if (computedStyle.getPropertyCSSValue(property) == null) {
+ throw new SeleniumError("null property value");
+ }
+
+ return computedStyle.getPropertyValue(property);
+ }
+
+ throw new SeleniumError("browser incompability");
+}
+
+/**
+ * Aligns screen to top (resp. bottom) of element given by locator.
+ *
+ * TODO should be reimplemented to use of JQuery.scrollTo
+ *
+ * @param locator of element which should be screen aligned to
+ * @param alignToTop should be top border of screen aligned to top border of element
+ */
+Selenium.prototype.scrollIntoView = function(locator, alignToTop) {
+ var elem = this.browserbot.findElementOrNull(locator);
+
+ if (elem == null) {
+ throw new SeleniumError("null property value");
+ }
+
+ if (elem.scrollIntoView == undefined) {
+ throw new SeleniumError("scrollIntoView isn't supported at this element");
+ }
+
+ elem.scrollIntoView(alignToTop);
+}
+
+/**
+ * Simulates a user hovering a mouse over the specified element at specific
+ * coordinates relative to element.
+ *
+ * @param locator
+ * element's locator
+ * @param coordString
+ * specifies the x,y position (i.e. - 10,20) of the mouse event
+ * relative to the element returned by the locator.
+ */
+Selenium.prototype.doMouseOverAt = function(locator, coordString) {
+ var element = this.browserbot.findElement(locator);
+ var clientXY = getClientXY(element, coordString)
+
+ this.browserbot.triggerMouseEvent(element, 'mouseover', true, clientXY[0],
+ clientXY[1]);
+}
+
+/**
+ * Gets the text of an element. This works for any element that contains
+ * text. This command uses either the textContent (Mozilla-like browsers) or
+ * the innerText (IE-like browsers) of the element, which is the rendered
+ * text shown to the user.
+ *
+ * If no element with given locator is found, returns null.
+ *
+ * @param locator an element locator
+ * @return string the text of the element or null if element's wasn't found
+ */
+Selenium.prototype.getTextOrNull = function(locator) {
+ var element = this.browserbot.findElementOrNull(locator);
+ if (element == null) {
+ throw new SeleniumError("element is not found");
+ }
+ return getText(element).trim();
+};
+
\ No newline at end of file
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/allclasses-frame.html
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/allclasses-frame.html (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/allclasses-frame.html 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,50 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_14) on Wed Aug 26 10:58:15 CDT 2009 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+All Classes (selenium-testing-lib 1.0-SNAPSHOT API)
+</TITLE>
+
+<META NAME="date" CONTENT="2009-08-26">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameHeadingFont">
+<B>All Classes</B></FONT>
+<BR>
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="org/jboss/test/selenium/AbstractSeleniumTestCase.html" title="class in org.jboss.test.selenium" target="classFrame">AbstractSeleniumTestCase</A>
+<BR>
+<A HREF="org/jboss/test/selenium/utils/array/ArrayTransform.html" title="class in org.jboss.test.selenium.utils.array" target="classFrame">ArrayTransform</A>
+<BR>
+<A HREF="org/jboss/test/selenium/waiting/Condition.html" title="interface in org.jboss.test.selenium.waiting" target="classFrame"><I>Condition</I></A>
+<BR>
+<A HREF="org/jboss/test/selenium/actions/Drag.html" title="class in org.jboss.test.selenium.actions" target="classFrame">Drag</A>
+<BR>
+<A HREF="org/jboss/test/selenium/dom/Event.html" title="class in org.jboss.test.selenium.dom" target="classFrame">Event</A>
+<BR>
+<A HREF="org/jboss/test/selenium/waiting/Not.html" title="class in org.jboss.test.selenium.waiting" target="classFrame">Not</A>
+<BR>
+<A HREF="org/jboss/test/selenium/waiting/Retrieve.html" title="interface in org.jboss.test.selenium.waiting" target="classFrame"><I>Retrieve</I></A>
+<BR>
+<A HREF="org/jboss/test/selenium/utils/URLUtils.html" title="class in org.jboss.test.selenium.utils" target="classFrame">URLUtils</A>
+<BR>
+<A HREF="org/jboss/test/selenium/waiting/Wait.html" title="class in org.jboss.test.selenium.waiting" target="classFrame">Wait</A>
+<BR>
+<A HREF="org/jboss/test/selenium/waiting/Wait.Waiting.html" title="class in org.jboss.test.selenium.waiting" target="classFrame">Wait.Waiting</A>
+<BR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+</BODY>
+</HTML>
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/allclasses-noframe.html
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/allclasses-noframe.html (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/allclasses-noframe.html 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,50 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_14) on Wed Aug 26 10:58:15 CDT 2009 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+All Classes (selenium-testing-lib 1.0-SNAPSHOT API)
+</TITLE>
+
+<META NAME="date" CONTENT="2009-08-26">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameHeadingFont">
+<B>All Classes</B></FONT>
+<BR>
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="org/jboss/test/selenium/AbstractSeleniumTestCase.html" title="class in org.jboss.test.selenium">AbstractSeleniumTestCase</A>
+<BR>
+<A HREF="org/jboss/test/selenium/utils/array/ArrayTransform.html" title="class in org.jboss.test.selenium.utils.array">ArrayTransform</A>
+<BR>
+<A HREF="org/jboss/test/selenium/waiting/Condition.html" title="interface in org.jboss.test.selenium.waiting"><I>Condition</I></A>
+<BR>
+<A HREF="org/jboss/test/selenium/actions/Drag.html" title="class in org.jboss.test.selenium.actions">Drag</A>
+<BR>
+<A HREF="org/jboss/test/selenium/dom/Event.html" title="class in org.jboss.test.selenium.dom">Event</A>
+<BR>
+<A HREF="org/jboss/test/selenium/waiting/Not.html" title="class in org.jboss.test.selenium.waiting">Not</A>
+<BR>
+<A HREF="org/jboss/test/selenium/waiting/Retrieve.html" title="interface in org.jboss.test.selenium.waiting"><I>Retrieve</I></A>
+<BR>
+<A HREF="org/jboss/test/selenium/utils/URLUtils.html" title="class in org.jboss.test.selenium.utils">URLUtils</A>
+<BR>
+<A HREF="org/jboss/test/selenium/waiting/Wait.html" title="class in org.jboss.test.selenium.waiting">Wait</A>
+<BR>
+<A HREF="org/jboss/test/selenium/waiting/Wait.Waiting.html" title="class in org.jboss.test.selenium.waiting">Wait.Waiting</A>
+<BR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+</BODY>
+</HTML>
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/constant-values.html
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/constant-values.html (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/constant-values.html 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,313 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_14) on Wed Aug 26 10:58:15 CDT 2009 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+Constant Field Values (selenium-testing-lib 1.0-SNAPSHOT API)
+</TITLE>
+
+<META NAME="date" CONTENT="2009-08-26">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Constant Field Values (selenium-testing-lib 1.0-SNAPSHOT API)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Use</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html?constant-values.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="constant-values.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H1>
+Constant Field Values</H1>
+</CENTER>
+<HR SIZE="4" NOSHADE>
+<B>Contents</B><UL>
+<LI><A HREF="#org.jboss">org.jboss.*</A>
+</UL>
+
+<A NAME="org.jboss"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left"><FONT SIZE="+2">
+org.jboss.*</FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+
+<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="3">org.jboss.test.selenium.dom.<A HREF="org/jboss/test/selenium/dom/Event.html" title="class in org.jboss.test.selenium.dom">Event</A></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="org.jboss.test.selenium.dom.Event.ABORT"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="org/jboss/test/selenium/dom/Event.html#ABORT">ABORT</A></CODE></TD>
+<TD ALIGN="right"><CODE>"abort"</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="org.jboss.test.selenium.dom.Event.BLUR"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="org/jboss/test/selenium/dom/Event.html#BLUR">BLUR</A></CODE></TD>
+<TD ALIGN="right"><CODE>"blur"</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="org.jboss.test.selenium.dom.Event.CHANGE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="org/jboss/test/selenium/dom/Event.html#CHANGE">CHANGE</A></CODE></TD>
+<TD ALIGN="right"><CODE>"change"</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="org.jboss.test.selenium.dom.Event.CLICK"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="org/jboss/test/selenium/dom/Event.html#CLICK">CLICK</A></CODE></TD>
+<TD ALIGN="right"><CODE>"click"</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="org.jboss.test.selenium.dom.Event.ERROR"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="org/jboss/test/selenium/dom/Event.html#ERROR">ERROR</A></CODE></TD>
+<TD ALIGN="right"><CODE>"error"</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="org.jboss.test.selenium.dom.Event.FOCUS"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="org/jboss/test/selenium/dom/Event.html#FOCUS">FOCUS</A></CODE></TD>
+<TD ALIGN="right"><CODE>"focus"</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="org.jboss.test.selenium.dom.Event.KEYDOWN"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="org/jboss/test/selenium/dom/Event.html#KEYDOWN">KEYDOWN</A></CODE></TD>
+<TD ALIGN="right"><CODE>"keydown"</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="org.jboss.test.selenium.dom.Event.KEYPRESS"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="org/jboss/test/selenium/dom/Event.html#KEYPRESS">KEYPRESS</A></CODE></TD>
+<TD ALIGN="right"><CODE>"keypress"</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="org.jboss.test.selenium.dom.Event.KEYUP"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="org/jboss/test/selenium/dom/Event.html#KEYUP">KEYUP</A></CODE></TD>
+<TD ALIGN="right"><CODE>"keyup"</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="org.jboss.test.selenium.dom.Event.LOAD"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="org/jboss/test/selenium/dom/Event.html#LOAD">LOAD</A></CODE></TD>
+<TD ALIGN="right"><CODE>"load"</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="org.jboss.test.selenium.dom.Event.MOUSEDOWN"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="org/jboss/test/selenium/dom/Event.html#MOUSEDOWN">MOUSEDOWN</A></CODE></TD>
+<TD ALIGN="right"><CODE>"mousedown"</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="org.jboss.test.selenium.dom.Event.MOUSEMOVE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="org/jboss/test/selenium/dom/Event.html#MOUSEMOVE">MOUSEMOVE</A></CODE></TD>
+<TD ALIGN="right"><CODE>"mousemove"</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="org.jboss.test.selenium.dom.Event.MOUSEOUT"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="org/jboss/test/selenium/dom/Event.html#MOUSEOUT">MOUSEOUT</A></CODE></TD>
+<TD ALIGN="right"><CODE>"mouseout"</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="org.jboss.test.selenium.dom.Event.MOUSEOVER"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="org/jboss/test/selenium/dom/Event.html#MOUSEOVER">MOUSEOVER</A></CODE></TD>
+<TD ALIGN="right"><CODE>"mouseover"</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="org.jboss.test.selenium.dom.Event.MOUSEUP"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="org/jboss/test/selenium/dom/Event.html#MOUSEUP">MOUSEUP</A></CODE></TD>
+<TD ALIGN="right"><CODE>"mouseup"</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="org.jboss.test.selenium.dom.Event.RESET"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="org/jboss/test/selenium/dom/Event.html#RESET">RESET</A></CODE></TD>
+<TD ALIGN="right"><CODE>"reset"</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="org.jboss.test.selenium.dom.Event.RESIZE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="org/jboss/test/selenium/dom/Event.html#RESIZE">RESIZE</A></CODE></TD>
+<TD ALIGN="right"><CODE>"resize"</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="org.jboss.test.selenium.dom.Event.SELECT"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="org/jboss/test/selenium/dom/Event.html#SELECT">SELECT</A></CODE></TD>
+<TD ALIGN="right"><CODE>"select"</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="org.jboss.test.selenium.dom.Event.SUBMIT"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="org/jboss/test/selenium/dom/Event.html#SUBMIT">SUBMIT</A></CODE></TD>
+<TD ALIGN="right"><CODE>"submit"</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="org.jboss.test.selenium.dom.Event.UNLOAD"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="org/jboss/test/selenium/dom/Event.html#UNLOAD">UNLOAD</A></CODE></TD>
+<TD ALIGN="right"><CODE>"unload"</CODE></TD>
+</TR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+
+<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="3">org.jboss.test.selenium.waiting.<A HREF="org/jboss/test/selenium/waiting/Wait.html" title="class in org.jboss.test.selenium.waiting">Wait</A></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="org.jboss.test.selenium.waiting.Wait.DEFAULT_INTERVAL"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final long</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="org/jboss/test/selenium/waiting/Wait.html#DEFAULT_INTERVAL">DEFAULT_INTERVAL</A></CODE></TD>
+<TD ALIGN="right"><CODE>500L</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="org.jboss.test.selenium.waiting.Wait.DEFAULT_TIMEOUT"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public static final long</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="org/jboss/test/selenium/waiting/Wait.html#DEFAULT_TIMEOUT">DEFAULT_TIMEOUT</A></CODE></TD>
+<TD ALIGN="right"><CODE>30000L</CODE></TD>
+</TR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Use</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html?constant-values.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="constant-values.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+Copyright © 2009. All Rights Reserved.
+</BODY>
+</HTML>
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/deprecated-list.html
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/deprecated-list.html (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/deprecated-list.html 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,177 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_14) on Wed Aug 26 10:58:15 CDT 2009 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+Deprecated List (selenium-testing-lib 1.0-SNAPSHOT API)
+</TITLE>
+
+<META NAME="date" CONTENT="2009-08-26">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Deprecated List (selenium-testing-lib 1.0-SNAPSHOT API)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Use</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Deprecated</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html?deprecated-list.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="deprecated-list.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Deprecated API</B></H2>
+</CENTER>
+<HR SIZE="4" NOSHADE>
+<B>Contents</B><UL>
+<LI><A HREF="#method">Deprecated Methods</A>
+</UL>
+
+<A NAME="method"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Deprecated Methods</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="org/jboss/test/selenium/AbstractSeleniumTestCase.html#formatMess(java.lang.String, java.lang.Object...)">org.jboss.test.selenium.AbstractSeleniumTestCase.formatMess(String, Object...)</A>
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="org/jboss/test/selenium/AbstractSeleniumTestCase.html#getMess(java.lang.String)">org.jboss.test.selenium.AbstractSeleniumTestCase.getMess(String)</A>
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="org/jboss/test/selenium/AbstractSeleniumTestCase.html#getMess(java.lang.String, java.lang.String)">org.jboss.test.selenium.AbstractSeleniumTestCase.getMess(String, String)</A>
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="org/jboss/test/selenium/AbstractSeleniumTestCase.html#waitForElement(java.lang.String, java.lang.String, long, long)">org.jboss.test.selenium.AbstractSeleniumTestCase.waitForElement(String, String, long, long)</A>
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Use</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Deprecated</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html?deprecated-list.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="deprecated-list.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+Copyright © 2009. All Rights Reserved.
+</BODY>
+</HTML>
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/help-doc.html
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/help-doc.html (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/help-doc.html 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,224 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_14) on Wed Aug 26 10:58:15 CDT 2009 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+API Help (selenium-testing-lib 1.0-SNAPSHOT API)
+</TITLE>
+
+<META NAME="date" CONTENT="2009-08-26">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="API Help (selenium-testing-lib 1.0-SNAPSHOT API)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Use</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Help</B></FONT> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html?help-doc.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="help-doc.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H1>
+How This API Document Is Organized</H1>
+</CENTER>
+This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.<H3>
+Overview</H3>
+<BLOCKQUOTE>
+
+<P>
+The <A HREF="overview-summary.html">Overview</A> page is the front page of this API document and provides a list of all packages with a summary for each. This page can also contain an overall description of the set of packages.</BLOCKQUOTE>
+<H3>
+Package</H3>
+<BLOCKQUOTE>
+
+<P>
+Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain four categories:<UL>
+<LI>Interfaces (italic)<LI>Classes<LI>Enums<LI>Exceptions<LI>Errors<LI>Annotation Types</UL>
+</BLOCKQUOTE>
+<H3>
+Class/Interface</H3>
+<BLOCKQUOTE>
+
+<P>
+Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:<UL>
+<LI>Class inheritance diagram<LI>Direct Subclasses<LI>All Known Subinterfaces<LI>All Known Implementing Classes<LI>Class/interface declaration<LI>Class/interface description
+<P>
+<LI>Nested Class Summary<LI>Field Summary<LI>Constructor Summary<LI>Method Summary
+<P>
+<LI>Field Detail<LI>Constructor Detail<LI>Method Detail</UL>
+Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.</BLOCKQUOTE>
+</BLOCKQUOTE>
+<H3>
+Annotation Type</H3>
+<BLOCKQUOTE>
+
+<P>
+Each annotation type has its own separate page with the following sections:<UL>
+<LI>Annotation Type declaration<LI>Annotation Type description<LI>Required Element Summary<LI>Optional Element Summary<LI>Element Detail</UL>
+</BLOCKQUOTE>
+</BLOCKQUOTE>
+<H3>
+Enum</H3>
+<BLOCKQUOTE>
+
+<P>
+Each enum has its own separate page with the following sections:<UL>
+<LI>Enum declaration<LI>Enum description<LI>Enum Constant Summary<LI>Enum Constant Detail</UL>
+</BLOCKQUOTE>
+<H3>
+Use</H3>
+<BLOCKQUOTE>
+Each documented package, class and interface has its own Use page. This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A. You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.</BLOCKQUOTE>
+<H3>
+Tree (Class Hierarchy)</H3>
+<BLOCKQUOTE>
+There is a <A HREF="overview-tree.html">Class Hierarchy</A> page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with <code>java.lang.Object</code>. The interfaces do not inherit from <code>java.lang.Object</code>.<UL>
+<LI>When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.<LI>When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.</UL>
+</BLOCKQUOTE>
+<H3>
+Deprecated API</H3>
+<BLOCKQUOTE>
+The <A HREF="deprecated-list.html">Deprecated API</A> page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.</BLOCKQUOTE>
+<H3>
+Index</H3>
+<BLOCKQUOTE>
+The <A HREF="index-all.html">Index</A> contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.</BLOCKQUOTE>
+<H3>
+Prev/Next</H3>
+These links take you to the next or previous class, interface, package, or related page.<H3>
+Frames/No Frames</H3>
+These links show and hide the HTML frames. All pages are available with or without frames.
+<P>
+<H3>
+Serialized Form</H3>
+Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.
+<P>
+<H3>
+Constant Field Values</H3>
+The <a href="constant-values.html">Constant Field Values</a> page lists the static final fields and their values.
+<P>
+<FONT SIZE="-1">
+<EM>
+This help file applies to API documentation generated using the standard doclet.</EM>
+</FONT>
+<BR>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Use</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Help</B></FONT> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html?help-doc.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="help-doc.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+Copyright © 2009. All Rights Reserved.
+</BODY>
+</HTML>
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/index-all.html
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/index-all.html (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/index-all.html 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,576 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_14) on Wed Aug 26 10:58:15 CDT 2009 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+Index (selenium-testing-lib 1.0-SNAPSHOT API)
+</TITLE>
+
+<META NAME="date" CONTENT="2009-08-26">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="./stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Index (selenium-testing-lib 1.0-SNAPSHOT API)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="./overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Use</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="./overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="./deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="./help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="./index.html?index-all.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="index-all.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="./allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="./allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<A HREF="#_A_">A</A> <A HREF="#_B_">B</A> <A HREF="#_C_">C</A> <A HREF="#_D_">D</A> <A HREF="#_E_">E</A> <A HREF="#_F_">F</A> <A HREF="#_G_">G</A> <A HREF="#_I_">I</A> <A HREF="#_K_">K</A> <A HREF="#_L_">L</A> <A HREF="#_M_">M</A> <A HREF="#_N_">N</A> <A HREF="#_O_">O</A> <A HREF="#_P_">P</A> <A HREF="#_R_">R</A> <A HREF="#_S_">S</A> <A HREF="#_T_">T</A> <A HREF="#_U_">U</A> <A HREF="#_W_">W</A> <HR>
+<A NAME="_A_"><!-- --></A><H2>
+<B>A</B></H2>
+<DL>
+<DT><A HREF="./org/jboss/test/selenium/dom/Event.html#ABORT"><B>ABORT</B></A> -
+Static variable in class org.jboss.test.selenium.dom.<A HREF="./org/jboss/test/selenium/dom/Event.html" title="class in org.jboss.test.selenium.dom">Event</A>
+<DD>
+<DT><A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html" title="class in org.jboss.test.selenium"><B>AbstractSeleniumTestCase</B></A> - Class in <A HREF="./org/jboss/test/selenium/package-summary.html">org.jboss.test.selenium</A><DD>Class that serves as basis for all Selenium-based tests.<DT><A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html#AbstractSeleniumTestCase()"><B>AbstractSeleniumTestCase()</B></A> -
+Constructor for class org.jboss.test.selenium.<A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html" title="class in org.jboss.test.selenium">AbstractSeleniumTestCase</A>
+<DD>
+<DT><A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html#AJAX_LOAD"><B>AJAX_LOAD</B></A> -
+Static variable in class org.jboss.test.selenium.<A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html" title="class in org.jboss.test.selenium">AbstractSeleniumTestCase</A>
+<DD>Generic timeout in miliseconds used for AJAX timeouts
+<DT><A HREF="./org/jboss/test/selenium/utils/array/ArrayTransform.html" title="class in org.jboss.test.selenium.utils.array"><B>ArrayTransform</B></A><<A HREF="./org/jboss/test/selenium/utils/array/ArrayTransform.html" title="type parameter in ArrayTransform">S</A>,<A HREF="./org/jboss/test/selenium/utils/array/ArrayTransform.html" title="type parameter in ArrayTransform">T</A>> - Class in <A HREF="./org/jboss/test/selenium/utils/array/package-summary.html">org.jboss.test.selenium.utils.array</A><DD>Abstract class providing generic array transformations.<DT><A HREF="./org/jboss/test/selenium/utils/array/ArrayTransform.html#ArrayTransform(java.lang.Class)"><B>ArrayTransform(Class<T>)</B></A> -
+Constructor for class org.jboss.test.selenium.utils.array.<A HREF="./org/jboss/test/selenium/utils/array/ArrayTransform.html" title="class in org.jboss.test.selenium.utils.array">ArrayTransform</A>
+<DD>Constructs ArrayTransform with implementation of transformation
+ predefining tClass like a class of transformation-target array.
+<DT><A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html#assertTextOrder(java.lang.String)"><B>assertTextOrder(String)</B></A> -
+Method in class org.jboss.test.selenium.<A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html" title="class in org.jboss.test.selenium">AbstractSeleniumTestCase</A>
+<DD>Asserts the text order on the page.
+</DL>
+<HR>
+<A NAME="_B_"><!-- --></A><H2>
+<B>B</B></H2>
+<DL>
+<DT><A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html#belongsClass(java.lang.String, java.lang.String)"><B>belongsClass(String, String)</B></A> -
+Method in class org.jboss.test.selenium.<A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html" title="class in org.jboss.test.selenium">AbstractSeleniumTestCase</A>
+<DD>Checks if element given by locator is member of CSS class given by
+ className.
+<DT><A HREF="./org/jboss/test/selenium/dom/Event.html#BLUR"><B>BLUR</B></A> -
+Static variable in class org.jboss.test.selenium.dom.<A HREF="./org/jboss/test/selenium/dom/Event.html" title="class in org.jboss.test.selenium.dom">Event</A>
+<DD>
+<DT><A HREF="./org/jboss/test/selenium/utils/URLUtils.html#buildUrl(java.lang.String, java.lang.String...)"><B>buildUrl(String, String...)</B></A> -
+Static method in class org.jboss.test.selenium.utils.<A HREF="./org/jboss/test/selenium/utils/URLUtils.html" title="class in org.jboss.test.selenium.utils">URLUtils</A>
+<DD>Use URL context and one or more relocations to build end URL.
+</DL>
+<HR>
+<A NAME="_C_"><!-- --></A><H2>
+<B>C</B></H2>
+<DL>
+<DT><A HREF="./org/jboss/test/selenium/dom/Event.html#CHANGE"><B>CHANGE</B></A> -
+Static variable in class org.jboss.test.selenium.dom.<A HREF="./org/jboss/test/selenium/dom/Event.html" title="class in org.jboss.test.selenium.dom">Event</A>
+<DD>
+<DT><A HREF="./org/jboss/test/selenium/dom/Event.html#CLICK"><B>CLICK</B></A> -
+Static variable in class org.jboss.test.selenium.dom.<A HREF="./org/jboss/test/selenium/dom/Event.html" title="class in org.jboss.test.selenium.dom">Event</A>
+<DD>
+<DT><A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html#clickAndWait(java.lang.String)"><B>clickAndWait(String)</B></A> -
+Method in class org.jboss.test.selenium.<A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html" title="class in org.jboss.test.selenium">AbstractSeleniumTestCase</A>
+<DD>Click and wait.
+<DT><A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html#clickIfVisible(java.lang.String)"><B>clickIfVisible(String)</B></A> -
+Method in class org.jboss.test.selenium.<A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html" title="class in org.jboss.test.selenium">AbstractSeleniumTestCase</A>
+<DD>Click on an element only in the case element is present on the screen.
+<DT><A HREF="./org/jboss/test/selenium/waiting/Condition.html" title="interface in org.jboss.test.selenium.waiting"><B>Condition</B></A> - Interface in <A HREF="./org/jboss/test/selenium/waiting/package-summary.html">org.jboss.test.selenium.waiting</A><DD>Specifies when condition will be true.<DT><A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html#countTableRows(java.lang.String)"><B>countTableRows(String)</B></A> -
+Method in class org.jboss.test.selenium.<A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html" title="class in org.jboss.test.selenium">AbstractSeleniumTestCase</A>
+<DD>Counts table rows for selected table.
+</DL>
+<HR>
+<A NAME="_D_"><!-- --></A><H2>
+<B>D</B></H2>
+<DL>
+<DT><A HREF="./org/jboss/test/selenium/waiting/Wait.html#DEFAULT_INTERVAL"><B>DEFAULT_INTERVAL</B></A> -
+Static variable in class org.jboss.test.selenium.waiting.<A HREF="./org/jboss/test/selenium/waiting/Wait.html" title="class in org.jboss.test.selenium.waiting">Wait</A>
+<DD>Default waiting interval
+<DT><A HREF="./org/jboss/test/selenium/waiting/Wait.html#DEFAULT_TIMEOUT"><B>DEFAULT_TIMEOUT</B></A> -
+Static variable in class org.jboss.test.selenium.waiting.<A HREF="./org/jboss/test/selenium/waiting/Wait.html" title="class in org.jboss.test.selenium.waiting">Wait</A>
+<DD>Default timeout of waiting
+<DT><A HREF="./org/jboss/test/selenium/waiting/Wait.html#dontFail()"><B>dontFail()</B></A> -
+Static method in class org.jboss.test.selenium.waiting.<A HREF="./org/jboss/test/selenium/waiting/Wait.html" title="class in org.jboss.test.selenium.waiting">Wait</A>
+<DD>Constructs preset instance of waiting (@see Waiting) with no failure.
+<DT><A HREF="./org/jboss/test/selenium/waiting/Wait.Waiting.html#dontFail()"><B>dontFail()</B></A> -
+Method in class org.jboss.test.selenium.waiting.<A HREF="./org/jboss/test/selenium/waiting/Wait.Waiting.html" title="class in org.jboss.test.selenium.waiting">Wait.Waiting</A>
+<DD>Sets no failure after waiting timeout.
+<DT><A HREF="./org/jboss/test/selenium/actions/Drag.html" title="class in org.jboss.test.selenium.actions"><B>Drag</B></A> - Class in <A HREF="./org/jboss/test/selenium/actions/package-summary.html">org.jboss.test.selenium.actions</A><DD>Provides item dragging capability to Selenium tests.<DT><A HREF="./org/jboss/test/selenium/actions/Drag.html#Drag(com.thoughtworks.selenium.Selenium, java.lang.String, java.lang.String)"><B>Drag(Selenium, String, String)</B></A> -
+Constructor for class org.jboss.test.selenium.actions.<A HREF="./org/jboss/test/selenium/actions/Drag.html" title="class in org.jboss.test.selenium.actions">Drag</A>
+<DD>
+<DT><A HREF="./org/jboss/test/selenium/actions/Drag.html#drop()"><B>drop()</B></A> -
+Method in class org.jboss.test.selenium.actions.<A HREF="./org/jboss/test/selenium/actions/Drag.html" title="class in org.jboss.test.selenium.actions">Drag</A>
+<DD>Last phase of dragging.
+</DL>
+<HR>
+<A NAME="_E_"><!-- --></A><H2>
+<B>E</B></H2>
+<DL>
+<DT><A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html#ELEM_TIMEOUT"><B>ELEM_TIMEOUT</B></A> -
+Static variable in class org.jboss.test.selenium.<A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html" title="class in org.jboss.test.selenium">AbstractSeleniumTestCase</A>
+<DD>Element timeout in seconds used in waitForElement functions
+<DT><A HREF="./org/jboss/test/selenium/actions/Drag.html#enter()"><B>enter()</B></A> -
+Method in class org.jboss.test.selenium.actions.<A HREF="./org/jboss/test/selenium/actions/Drag.html" title="class in org.jboss.test.selenium.actions">Drag</A>
+<DD>Starts fourth phase of dragging.
+<DT><A HREF="./org/jboss/test/selenium/dom/Event.html#ERROR"><B>ERROR</B></A> -
+Static variable in class org.jboss.test.selenium.dom.<A HREF="./org/jboss/test/selenium/dom/Event.html" title="class in org.jboss.test.selenium.dom">Event</A>
+<DD>
+<DT><A HREF="./org/jboss/test/selenium/dom/Event.html" title="class in org.jboss.test.selenium.dom"><B>Event</B></A> - Class in <A HREF="./org/jboss/test/selenium/dom/package-summary.html">org.jboss.test.selenium.dom</A><DD> <DT><A HREF="./org/jboss/test/selenium/dom/Event.html#Event()"><B>Event()</B></A> -
+Constructor for class org.jboss.test.selenium.dom.<A HREF="./org/jboss/test/selenium/dom/Event.html" title="class in org.jboss.test.selenium.dom">Event</A>
+<DD>
+</DL>
+<HR>
+<A NAME="_F_"><!-- --></A><H2>
+<B>F</B></H2>
+<DL>
+<DT><A HREF="./org/jboss/test/selenium/waiting/Wait.html#failWith(java.lang.Throwable)"><B>failWith(Throwable)</B></A> -
+Static method in class org.jboss.test.selenium.waiting.<A HREF="./org/jboss/test/selenium/waiting/Wait.html" title="class in org.jboss.test.selenium.waiting">Wait</A>
+<DD>Constructs preset instance of waiting (@see Waiting) with given throwable
+ failure, which indicates timeout.
+<DT><A HREF="./org/jboss/test/selenium/waiting/Wait.html#failWith(java.lang.String)"><B>failWith(String)</B></A> -
+Static method in class org.jboss.test.selenium.waiting.<A HREF="./org/jboss/test/selenium/waiting/Wait.html" title="class in org.jboss.test.selenium.waiting">Wait</A>
+<DD>Constructs preset instance of waiting (@see Waiting) with failures
+ initialized to AssertionError with given message.
+<DT><A HREF="./org/jboss/test/selenium/waiting/Wait.Waiting.html#failWith(java.lang.Throwable)"><B>failWith(Throwable)</B></A> -
+Method in class org.jboss.test.selenium.waiting.<A HREF="./org/jboss/test/selenium/waiting/Wait.Waiting.html" title="class in org.jboss.test.selenium.waiting">Wait.Waiting</A>
+<DD>Sets failure of timeout to given throwable and return it.
+<DT><A HREF="./org/jboss/test/selenium/waiting/Wait.Waiting.html#failWith(java.lang.String)"><B>failWith(String)</B></A> -
+Method in class org.jboss.test.selenium.waiting.<A HREF="./org/jboss/test/selenium/waiting/Wait.Waiting.html" title="class in org.jboss.test.selenium.waiting">Wait.Waiting</A>
+<DD>Sets failure of timeout to AssertionError with given failMessage.
+<DT><A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html#findTableRow(java.lang.String, java.lang.String, int)"><B>findTableRow(String, String, int)</B></A> -
+Method in class org.jboss.test.selenium.<A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html" title="class in org.jboss.test.selenium">AbstractSeleniumTestCase</A>
+<DD>Finding the correct row in a table due to input string and columns.
+<DT><A HREF="./org/jboss/test/selenium/dom/Event.html#FOCUS"><B>FOCUS</B></A> -
+Static variable in class org.jboss.test.selenium.dom.<A HREF="./org/jboss/test/selenium/dom/Event.html" title="class in org.jboss.test.selenium.dom">Event</A>
+<DD>
+<DT><A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html#format(java.lang.String, java.lang.Object...)"><B>format(String, Object...)</B></A> -
+Method in class org.jboss.test.selenium.<A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html" title="class in org.jboss.test.selenium">AbstractSeleniumTestCase</A>
+<DD>Uses a MessageFormat.format() to prepare given format string and use it
+ to format result with given arguments.
+<DT><A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html#formatLoc(java.lang.String, java.lang.Object...)"><B>formatLoc(String, Object...)</B></A> -
+Method in class org.jboss.test.selenium.<A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html" title="class in org.jboss.test.selenium">AbstractSeleniumTestCase</A>
+<DD>Gets the property from messagesProperties and use it to format Message
+ with given arguments
+<DT><A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html#formatMess(java.lang.String, java.lang.Object...)"><B>formatMess(String, Object...)</B></A> -
+Method in class org.jboss.test.selenium.<A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html" title="class in org.jboss.test.selenium">AbstractSeleniumTestCase</A>
+<DD><B>Deprecated.</B>
+<DT><A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html#formatMsg(java.lang.String, java.lang.Object...)"><B>formatMsg(String, Object...)</B></A> -
+Method in class org.jboss.test.selenium.<A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html" title="class in org.jboss.test.selenium">AbstractSeleniumTestCase</A>
+<DD>Gets the property from messagesProperties and use it to format Message
+ with given arguments
+</DL>
+<HR>
+<A NAME="_G_"><!-- --></A><H2>
+<B>G</B></H2>
+<DL>
+<DT><A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html#getAttributeOrNull(java.lang.String)"><B>getAttributeOrNull(String)</B></A> -
+Method in class org.jboss.test.selenium.<A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html" title="class in org.jboss.test.selenium">AbstractSeleniumTestCase</A>
+<DD>Gets the value of an element attribute.
+<DT><A HREF="./org/jboss/test/selenium/waiting/Wait.html#getDefault()"><B>getDefault()</B></A> -
+Static method in class org.jboss.test.selenium.waiting.<A HREF="./org/jboss/test/selenium/waiting/Wait.html" title="class in org.jboss.test.selenium.waiting">Wait</A>
+<DD>Constructs default preset instance of waiting (@see Waiting).
+<DT><A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html#getLoc(java.lang.String, java.lang.String)"><B>getLoc(String, String)</B></A> -
+Method in class org.jboss.test.selenium.<A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html" title="class in org.jboss.test.selenium">AbstractSeleniumTestCase</A>
+<DD>Gets the property from locatorsProperties
+<DT><A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html#getLoc(java.lang.String)"><B>getLoc(String)</B></A> -
+Method in class org.jboss.test.selenium.<A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html" title="class in org.jboss.test.selenium">AbstractSeleniumTestCase</A>
+<DD>Gets the property from locatorsProperties
+<DT><A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html#getLocatorsProperties()"><B>getLocatorsProperties()</B></A> -
+Method in class org.jboss.test.selenium.<A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html" title="class in org.jboss.test.selenium">AbstractSeleniumTestCase</A>
+<DD>This method initializes properties with locators.
+<DT><A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html#getMess(java.lang.String, java.lang.String)"><B>getMess(String, String)</B></A> -
+Method in class org.jboss.test.selenium.<A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html" title="class in org.jboss.test.selenium">AbstractSeleniumTestCase</A>
+<DD><B>Deprecated.</B>
+<DT><A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html#getMess(java.lang.String)"><B>getMess(String)</B></A> -
+Method in class org.jboss.test.selenium.<A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html" title="class in org.jboss.test.selenium">AbstractSeleniumTestCase</A>
+<DD><B>Deprecated.</B>
+<DT><A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html#getMessagesProperties()"><B>getMessagesProperties()</B></A> -
+Method in class org.jboss.test.selenium.<A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html" title="class in org.jboss.test.selenium">AbstractSeleniumTestCase</A>
+<DD>This method initializes properties with messages.
+<DT><A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html#getMsg(java.lang.String, java.lang.String)"><B>getMsg(String, String)</B></A> -
+Method in class org.jboss.test.selenium.<A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html" title="class in org.jboss.test.selenium">AbstractSeleniumTestCase</A>
+<DD>Gets the property from messagesProperties.
+<DT><A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html#getMsg(java.lang.String)"><B>getMsg(String)</B></A> -
+Method in class org.jboss.test.selenium.<A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html" title="class in org.jboss.test.selenium">AbstractSeleniumTestCase</A>
+<DD>Gets the property from messagesProperties.
+<DT><A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html#getNamedPropertiesForClass(java.lang.Class, java.lang.String)"><B>getNamedPropertiesForClass(Class<T>, String)</B></A> -
+Method in class org.jboss.test.selenium.<A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html" title="class in org.jboss.test.selenium">AbstractSeleniumTestCase</A>
+<DD>Loads properties from specified resource file in context of specified
+ class' package.
+<DT><A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html#getProperties(java.lang.String)"><B>getProperties(String)</B></A> -
+Static method in class org.jboss.test.selenium.<A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html" title="class in org.jboss.test.selenium">AbstractSeleniumTestCase</A>
+<DD>Loads properties from specified resource file
+<DT><A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html#getStyle(java.lang.String, java.lang.String)"><B>getStyle(String, String)</B></A> -
+Method in class org.jboss.test.selenium.<A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html" title="class in org.jboss.test.selenium">AbstractSeleniumTestCase</A>
+<DD>Get current style value of element given by locator.
+<DT><A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html#getTextOrNull(java.lang.String)"><B>getTextOrNull(String)</B></A> -
+Method in class org.jboss.test.selenium.<A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html" title="class in org.jboss.test.selenium">AbstractSeleniumTestCase</A>
+<DD>Gets the text of an element.
+</DL>
+<HR>
+<A NAME="_I_"><!-- --></A><H2>
+<B>I</B></H2>
+<DL>
+<DT><A HREF="./org/jboss/test/selenium/waiting/Wait.html#interval(long)"><B>interval(long)</B></A> -
+Static method in class org.jboss.test.selenium.waiting.<A HREF="./org/jboss/test/selenium/waiting/Wait.html" title="class in org.jboss.test.selenium.waiting">Wait</A>
+<DD>Constructs preset instance of waiting (@see Waiting) with given interval.
+<DT><A HREF="./org/jboss/test/selenium/waiting/Wait.Waiting.html#interval(long)"><B>interval(long)</B></A> -
+Method in class org.jboss.test.selenium.waiting.<A HREF="./org/jboss/test/selenium/waiting/Wait.Waiting.html" title="class in org.jboss.test.selenium.waiting">Wait.Waiting</A>
+<DD>Sets condition testing interval to this instance and return it.
+<DT><A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html#isDisplayed(java.lang.String)"><B>isDisplayed(String)</B></A> -
+Method in class org.jboss.test.selenium.<A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html" title="class in org.jboss.test.selenium">AbstractSeleniumTestCase</A>
+<DD>Returns whether the element is displayed on the page.
+<DT><A HREF="./org/jboss/test/selenium/waiting/Condition.html#isTrue()"><B>isTrue()</B></A> -
+Method in interface org.jboss.test.selenium.waiting.<A HREF="./org/jboss/test/selenium/waiting/Condition.html" title="interface in org.jboss.test.selenium.waiting">Condition</A>
+<DD>Returns true if condition is satisfied, false if it isn't.
+<DT><A HREF="./org/jboss/test/selenium/waiting/Not.html#isTrue()"><B>isTrue()</B></A> -
+Method in class org.jboss.test.selenium.waiting.<A HREF="./org/jboss/test/selenium/waiting/Not.html" title="class in org.jboss.test.selenium.waiting">Not</A>
+<DD>Implementation of condition, which will not be satisfied.
+</DL>
+<HR>
+<A NAME="_K_"><!-- --></A><H2>
+<B>K</B></H2>
+<DL>
+<DT><A HREF="./org/jboss/test/selenium/dom/Event.html#KEYDOWN"><B>KEYDOWN</B></A> -
+Static variable in class org.jboss.test.selenium.dom.<A HREF="./org/jboss/test/selenium/dom/Event.html" title="class in org.jboss.test.selenium.dom">Event</A>
+<DD>
+<DT><A HREF="./org/jboss/test/selenium/dom/Event.html#KEYPRESS"><B>KEYPRESS</B></A> -
+Static variable in class org.jboss.test.selenium.dom.<A HREF="./org/jboss/test/selenium/dom/Event.html" title="class in org.jboss.test.selenium.dom">Event</A>
+<DD>
+<DT><A HREF="./org/jboss/test/selenium/dom/Event.html#KEYUP"><B>KEYUP</B></A> -
+Static variable in class org.jboss.test.selenium.dom.<A HREF="./org/jboss/test/selenium/dom/Event.html" title="class in org.jboss.test.selenium.dom">Event</A>
+<DD>
+</DL>
+<HR>
+<A NAME="_L_"><!-- --></A><H2>
+<B>L</B></H2>
+<DL>
+<DT><A HREF="./org/jboss/test/selenium/dom/Event.html#LOAD"><B>LOAD</B></A> -
+Static variable in class org.jboss.test.selenium.dom.<A HREF="./org/jboss/test/selenium/dom/Event.html" title="class in org.jboss.test.selenium.dom">Event</A>
+<DD>
+<DT><A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html#locatorsProperties"><B>locatorsProperties</B></A> -
+Variable in class org.jboss.test.selenium.<A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html" title="class in org.jboss.test.selenium">AbstractSeleniumTestCase</A>
+<DD>
+</DL>
+<HR>
+<A NAME="_M_"><!-- --></A><H2>
+<B>M</B></H2>
+<DL>
+<DT><A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html#messagesProperties"><B>messagesProperties</B></A> -
+Variable in class org.jboss.test.selenium.<A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html" title="class in org.jboss.test.selenium">AbstractSeleniumTestCase</A>
+<DD>
+<DT><A HREF="./org/jboss/test/selenium/dom/Event.html#MOUSEDOWN"><B>MOUSEDOWN</B></A> -
+Static variable in class org.jboss.test.selenium.dom.<A HREF="./org/jboss/test/selenium/dom/Event.html" title="class in org.jboss.test.selenium.dom">Event</A>
+<DD>
+<DT><A HREF="./org/jboss/test/selenium/dom/Event.html#MOUSEMOVE"><B>MOUSEMOVE</B></A> -
+Static variable in class org.jboss.test.selenium.dom.<A HREF="./org/jboss/test/selenium/dom/Event.html" title="class in org.jboss.test.selenium.dom">Event</A>
+<DD>
+<DT><A HREF="./org/jboss/test/selenium/actions/Drag.html#mouseOut()"><B>mouseOut()</B></A> -
+Method in class org.jboss.test.selenium.actions.<A HREF="./org/jboss/test/selenium/actions/Drag.html" title="class in org.jboss.test.selenium.actions">Drag</A>
+<DD>Starts second phase of dragging.
+<DT><A HREF="./org/jboss/test/selenium/dom/Event.html#MOUSEOUT"><B>MOUSEOUT</B></A> -
+Static variable in class org.jboss.test.selenium.dom.<A HREF="./org/jboss/test/selenium/dom/Event.html" title="class in org.jboss.test.selenium.dom">Event</A>
+<DD>
+<DT><A HREF="./org/jboss/test/selenium/dom/Event.html#MOUSEOVER"><B>MOUSEOVER</B></A> -
+Static variable in class org.jboss.test.selenium.dom.<A HREF="./org/jboss/test/selenium/dom/Event.html" title="class in org.jboss.test.selenium.dom">Event</A>
+<DD>
+<DT><A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html#mouseOverAt(java.lang.String, java.lang.String)"><B>mouseOverAt(String, String)</B></A> -
+Method in class org.jboss.test.selenium.<A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html" title="class in org.jboss.test.selenium">AbstractSeleniumTestCase</A>
+<DD>Simulates a user hovering a mouse over the specified element at specific
+ coordinates relative to element.
+<DT><A HREF="./org/jboss/test/selenium/dom/Event.html#MOUSEUP"><B>MOUSEUP</B></A> -
+Static variable in class org.jboss.test.selenium.dom.<A HREF="./org/jboss/test/selenium/dom/Event.html" title="class in org.jboss.test.selenium.dom">Event</A>
+<DD>
+<DT><A HREF="./org/jboss/test/selenium/actions/Drag.html#move()"><B>move()</B></A> -
+Method in class org.jboss.test.selenium.actions.<A HREF="./org/jboss/test/selenium/actions/Drag.html" title="class in org.jboss.test.selenium.actions">Drag</A>
+<DD>Starts third phase of dragging.
+</DL>
+<HR>
+<A NAME="_N_"><!-- --></A><H2>
+<B>N</B></H2>
+<DL>
+<DT><A HREF="./org/jboss/test/selenium/waiting/Not.html" title="class in org.jboss.test.selenium.waiting"><B>Not</B></A> - Class in <A HREF="./org/jboss/test/selenium/waiting/package-summary.html">org.jboss.test.selenium.waiting</A><DD>Opposite to Condition - you specify when desired conditions is not satisfied.<DT><A HREF="./org/jboss/test/selenium/waiting/Not.html#Not()"><B>Not()</B></A> -
+Constructor for class org.jboss.test.selenium.waiting.<A HREF="./org/jboss/test/selenium/waiting/Not.html" title="class in org.jboss.test.selenium.waiting">Not</A>
+<DD>
+<DT><A HREF="./org/jboss/test/selenium/waiting/Not.html#not()"><B>not()</B></A> -
+Method in class org.jboss.test.selenium.waiting.<A HREF="./org/jboss/test/selenium/waiting/Not.html" title="class in org.jboss.test.selenium.waiting">Not</A>
+<DD>This method has to be overridden to return condition which shouldn't be
+ satisfied.
+</DL>
+<HR>
+<A NAME="_O_"><!-- --></A><H2>
+<B>O</B></H2>
+<DL>
+<DT><A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html#openAndWait(java.lang.String)"><B>openAndWait(String)</B></A> -
+Method in class org.jboss.test.selenium.<A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html" title="class in org.jboss.test.selenium">AbstractSeleniumTestCase</A>
+<DD>Open and wait.
+<DT><A HREF="./org/jboss/test/selenium/package-summary.html"><B>org.jboss.test.selenium</B></A> - package org.jboss.test.selenium<DD> <DT><A HREF="./org/jboss/test/selenium/actions/package-summary.html"><B>org.jboss.test.selenium.actions</B></A> - package org.jboss.test.selenium.actions<DD> <DT><A HREF="./org/jboss/test/selenium/dom/package-summary.html"><B>org.jboss.test.selenium.dom</B></A> - package org.jboss.test.selenium.dom<DD> <DT><A HREF="./org/jboss/test/selenium/utils/package-summary.html"><B>org.jboss.test.selenium.utils</B></A> - package org.jboss.test.selenium.utils<DD> <DT><A HREF="./org/jboss/test/selenium/utils/array/package-summary.html"><B>org.jboss.test.selenium.utils.array</B></A> - package org.jboss.test.selenium.utils.array<DD> <DT><A HREF="./org/jboss/test/selenium/waiting/package-summary.html"><B>org.jboss.test.selenium.waiting</B></A> - package org.jboss.test.selenium.waiting<DD> </DL>
+<HR>
+<A NAME="_P_"><!-- --></A><H2>
+<B>P</B></H2>
+<DL>
+<DT><A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html#PAGE_LOAD"><B>PAGE_LOAD</B></A> -
+Static variable in class org.jboss.test.selenium.<A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html" title="class in org.jboss.test.selenium">AbstractSeleniumTestCase</A>
+<DD>Generic timeout in miliseconds used in every selenium function
+ waitForPageToLoad()
+</DL>
+<HR>
+<A NAME="_R_"><!-- --></A><H2>
+<B>R</B></H2>
+<DL>
+<DT><A HREF="./org/jboss/test/selenium/dom/Event.html#RESET"><B>RESET</B></A> -
+Static variable in class org.jboss.test.selenium.dom.<A HREF="./org/jboss/test/selenium/dom/Event.html" title="class in org.jboss.test.selenium.dom">Event</A>
+<DD>
+<DT><A HREF="./org/jboss/test/selenium/dom/Event.html#RESIZE"><B>RESIZE</B></A> -
+Static variable in class org.jboss.test.selenium.dom.<A HREF="./org/jboss/test/selenium/dom/Event.html" title="class in org.jboss.test.selenium.dom">Event</A>
+<DD>
+<DT><A HREF="./org/jboss/test/selenium/utils/URLUtils.html#resourceMd5Digest(java.lang.String)"><B>resourceMd5Digest(String)</B></A> -
+Static method in class org.jboss.test.selenium.utils.<A HREF="./org/jboss/test/selenium/utils/URLUtils.html" title="class in org.jboss.test.selenium.utils">URLUtils</A>
+<DD>Gets a MD5 digest of some resource obtains as input stream from
+ connection to URL given by URL string.
+<DT><A HREF="./org/jboss/test/selenium/waiting/Retrieve.html" title="interface in org.jboss.test.selenium.waiting"><B>Retrieve</B></A><<A HREF="./org/jboss/test/selenium/waiting/Retrieve.html" title="type parameter in Retrieve">T</A>> - Interface in <A HREF="./org/jboss/test/selenium/waiting/package-summary.html">org.jboss.test.selenium.waiting</A><DD>Implementing this method you get implementation of retrieving typed values from some source.<DT><A HREF="./org/jboss/test/selenium/waiting/Retrieve.html#retrieve()"><B>retrieve()</B></A> -
+Method in interface org.jboss.test.selenium.waiting.<A HREF="./org/jboss/test/selenium/waiting/Retrieve.html" title="interface in org.jboss.test.selenium.waiting">Retrieve</A>
+<DD>Override with implementation of retrieving value from source.
+</DL>
+<HR>
+<A NAME="_S_"><!-- --></A><H2>
+<B>S</B></H2>
+<DL>
+<DT><A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html#safeSelect(java.lang.String, java.lang.String)"><B>safeSelect(String, String)</B></A> -
+Method in class org.jboss.test.selenium.<A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html" title="class in org.jboss.test.selenium">AbstractSeleniumTestCase</A>
+<DD>Selects a value only if the value is present in the select.
+<DT><A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html#scrollIntoView(java.lang.String, boolean)"><B>scrollIntoView(String, boolean)</B></A> -
+Method in class org.jboss.test.selenium.<A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html" title="class in org.jboss.test.selenium">AbstractSeleniumTestCase</A>
+<DD>Aligns screen to top (resp.
+<DT><A HREF="./org/jboss/test/selenium/dom/Event.html#SELECT"><B>SELECT</B></A> -
+Static variable in class org.jboss.test.selenium.dom.<A HREF="./org/jboss/test/selenium/dom/Event.html" title="class in org.jboss.test.selenium.dom">Event</A>
+<DD>
+<DT><A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html#selectIfNotSelected(java.lang.String, java.lang.String)"><B>selectIfNotSelected(String, String)</B></A> -
+Method in class org.jboss.test.selenium.<A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html" title="class in org.jboss.test.selenium">AbstractSeleniumTestCase</A>
+<DD>Select if not selected.
+<DT><A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html#selenium"><B>selenium</B></A> -
+Variable in class org.jboss.test.selenium.<A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html" title="class in org.jboss.test.selenium">AbstractSeleniumTestCase</A>
+<DD>
+<DT><A HREF="./org/jboss/test/selenium/actions/Drag.html#start()"><B>start()</B></A> -
+Method in class org.jboss.test.selenium.actions.<A HREF="./org/jboss/test/selenium/actions/Drag.html" title="class in org.jboss.test.selenium.actions">Drag</A>
+<DD>Starts first phase of dragging.
+<DT><A HREF="./org/jboss/test/selenium/dom/Event.html#SUBMIT"><B>SUBMIT</B></A> -
+Static variable in class org.jboss.test.selenium.dom.<A HREF="./org/jboss/test/selenium/dom/Event.html" title="class in org.jboss.test.selenium.dom">Event</A>
+<DD>
+</DL>
+<HR>
+<A NAME="_T_"><!-- --></A><H2>
+<B>T</B></H2>
+<DL>
+<DT><A HREF="./org/jboss/test/selenium/waiting/Wait.html#timeout(long)"><B>timeout(long)</B></A> -
+Static method in class org.jboss.test.selenium.waiting.<A HREF="./org/jboss/test/selenium/waiting/Wait.html" title="class in org.jboss.test.selenium.waiting">Wait</A>
+<DD>Constructs preset instance of waiting (@see Waiting) with given timeout.
+<DT><A HREF="./org/jboss/test/selenium/waiting/Wait.Waiting.html#timeout(long)"><B>timeout(long)</B></A> -
+Method in class org.jboss.test.selenium.waiting.<A HREF="./org/jboss/test/selenium/waiting/Wait.Waiting.html" title="class in org.jboss.test.selenium.waiting">Wait.Waiting</A>
+<DD>Sets waiting timeout to this instance and return it.
+<DT><A HREF="./org/jboss/test/selenium/utils/array/ArrayTransform.html#transform(S[])"><B>transform(S[])</B></A> -
+Method in class org.jboss.test.selenium.utils.array.<A HREF="./org/jboss/test/selenium/utils/array/ArrayTransform.html" title="class in org.jboss.test.selenium.utils.array">ArrayTransform</A>
+<DD>Process transformation of S[] sourceArray with T[] targetArray like
+ return value.
+<DT><A HREF="./org/jboss/test/selenium/utils/array/ArrayTransform.html#transformation(S)"><B>transformation(S)</B></A> -
+Method in class org.jboss.test.selenium.utils.array.<A HREF="./org/jboss/test/selenium/utils/array/ArrayTransform.html" title="class in org.jboss.test.selenium.utils.array">ArrayTransform</A>
+<DD>This method is implementation of transformation each item of sourceArray
+ and type S to item of type T in targetArray.
+</DL>
+<HR>
+<A NAME="_U_"><!-- --></A><H2>
+<B>U</B></H2>
+<DL>
+<DT><A HREF="./org/jboss/test/selenium/dom/Event.html#UNLOAD"><B>UNLOAD</B></A> -
+Static variable in class org.jboss.test.selenium.dom.<A HREF="./org/jboss/test/selenium/dom/Event.html" title="class in org.jboss.test.selenium.dom">Event</A>
+<DD>
+<DT><A HREF="./org/jboss/test/selenium/waiting/Wait.html#until(org.jboss.test.selenium.waiting.Condition)"><B>until(Condition)</B></A> -
+Static method in class org.jboss.test.selenium.waiting.<A HREF="./org/jboss/test/selenium/waiting/Wait.html" title="class in org.jboss.test.selenium.waiting">Wait</A>
+<DD>Stars loop waiting to satisfy condition with default timeout and
+ interval.
+<DT><A HREF="./org/jboss/test/selenium/waiting/Wait.Waiting.html#until(org.jboss.test.selenium.waiting.Condition)"><B>until(Condition)</B></A> -
+Method in class org.jboss.test.selenium.waiting.<A HREF="./org/jboss/test/selenium/waiting/Wait.Waiting.html" title="class in org.jboss.test.selenium.waiting">Wait.Waiting</A>
+<DD>Stars loop waiting to satisfy condition.
+<DT><A HREF="./org/jboss/test/selenium/utils/URLUtils.html" title="class in org.jboss.test.selenium.utils"><B>URLUtils</B></A> - Class in <A HREF="./org/jboss/test/selenium/utils/package-summary.html">org.jboss.test.selenium.utils</A><DD>Provides URL manipulations and functionality.<DT><A HREF="./org/jboss/test/selenium/utils/URLUtils.html#URLUtils()"><B>URLUtils()</B></A> -
+Constructor for class org.jboss.test.selenium.utils.<A HREF="./org/jboss/test/selenium/utils/URLUtils.html" title="class in org.jboss.test.selenium.utils">URLUtils</A>
+<DD>
+</DL>
+<HR>
+<A NAME="_W_"><!-- --></A><H2>
+<B>W</B></H2>
+<DL>
+<DT><A HREF="./org/jboss/test/selenium/waiting/Wait.html" title="class in org.jboss.test.selenium.waiting"><B>Wait</B></A> - Class in <A HREF="./org/jboss/test/selenium/waiting/package-summary.html">org.jboss.test.selenium.waiting</A><DD>
+ Implementation of waiting to satisfy condition.<DT><A HREF="./org/jboss/test/selenium/waiting/Wait.Waiting.html" title="class in org.jboss.test.selenium.waiting"><B>Wait.Waiting</B></A> - Class in <A HREF="./org/jboss/test/selenium/waiting/package-summary.html">org.jboss.test.selenium.waiting</A><DD>Class intented to construct by factories in Wait class.<DT><A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html#waitFor(long)"><B>waitFor(long)</B></A> -
+Method in class org.jboss.test.selenium.<A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html" title="class in org.jboss.test.selenium">AbstractSeleniumTestCase</A>
+<DD>Waits for specified time in ms.
+<DT><A HREF="./org/jboss/test/selenium/waiting/Wait.html#waitFor(long)"><B>waitFor(long)</B></A> -
+Static method in class org.jboss.test.selenium.waiting.<A HREF="./org/jboss/test/selenium/waiting/Wait.html" title="class in org.jboss.test.selenium.waiting">Wait</A>
+<DD>Will wait for specified amount of time.
+<DT><A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html#waitForAttributeChanges(java.lang.String, java.lang.String)"><B>waitForAttributeChanges(String, String)</B></A> -
+Method in class org.jboss.test.selenium.<A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html" title="class in org.jboss.test.selenium">AbstractSeleniumTestCase</A>
+<DD>Wait for attribute of element given by attributeLocator changes from
+ attributeValue to another value.
+<DT><A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html#waitForAttributeChangesAndReturn(java.lang.String, java.lang.String)"><B>waitForAttributeChangesAndReturn(String, String)</B></A> -
+Method in class org.jboss.test.selenium.<A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html" title="class in org.jboss.test.selenium">AbstractSeleniumTestCase</A>
+<DD>Wait for attribute of element given by attributeLocator changes from
+ attributeValue to another value and returns this new value.
+<DT><A HREF="./org/jboss/test/selenium/waiting/Wait.html#waitForChange(T, org.jboss.test.selenium.waiting.Retrieve)"><B>waitForChange(T, Retrieve<T>)</B></A> -
+Static method in class org.jboss.test.selenium.waiting.<A HREF="./org/jboss/test/selenium/waiting/Wait.html" title="class in org.jboss.test.selenium.waiting">Wait</A>
+<DD>Waits until Retrieve's implementation doesn't retrieve value other
+ than oldValue.
+<DT><A HREF="./org/jboss/test/selenium/waiting/Wait.Waiting.html#waitForChange(T, org.jboss.test.selenium.waiting.Retrieve)"><B>waitForChange(T, Retrieve<T>)</B></A> -
+Method in class org.jboss.test.selenium.waiting.<A HREF="./org/jboss/test/selenium/waiting/Wait.Waiting.html" title="class in org.jboss.test.selenium.waiting">Wait.Waiting</A>
+<DD>Waits until Retrieve's implementation doesn't retrieve value other
+ than oldValue.
+<DT><A HREF="./org/jboss/test/selenium/waiting/Wait.html#waitForChangeAndReturn(T, org.jboss.test.selenium.waiting.Retrieve)"><B>waitForChangeAndReturn(T, Retrieve<T>)</B></A> -
+Static method in class org.jboss.test.selenium.waiting.<A HREF="./org/jboss/test/selenium/waiting/Wait.html" title="class in org.jboss.test.selenium.waiting">Wait</A>
+<DD>Waits until Retrieve's implementation doesn't retrieve value other
+ than oldValue and this new value returns.
+<DT><A HREF="./org/jboss/test/selenium/waiting/Wait.Waiting.html#waitForChangeAndReturn(T, org.jboss.test.selenium.waiting.Retrieve)"><B>waitForChangeAndReturn(T, Retrieve<T>)</B></A> -
+Method in class org.jboss.test.selenium.waiting.<A HREF="./org/jboss/test/selenium/waiting/Wait.Waiting.html" title="class in org.jboss.test.selenium.waiting">Wait.Waiting</A>
+<DD>Waits until Retrieve's implementation doesn't retrieve value other
+ than oldValue and this new value returns.
+<DT><A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html#waitForElement(java.lang.String)"><B>waitForElement(String)</B></A> -
+Method in class org.jboss.test.selenium.<A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html" title="class in org.jboss.test.selenium">AbstractSeleniumTestCase</A>
+<DD>Waits for element to appear on the screen.
+<DT><A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html#waitForElement(java.lang.String, long)"><B>waitForElement(String, long)</B></A> -
+Method in class org.jboss.test.selenium.<A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html" title="class in org.jboss.test.selenium">AbstractSeleniumTestCase</A>
+<DD>Waits for element to appear on the screen.
+<DT><A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html#waitForElement(java.lang.String, java.lang.String, long, long)"><B>waitForElement(String, String, long, long)</B></A> -
+Method in class org.jboss.test.selenium.<A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html" title="class in org.jboss.test.selenium">AbstractSeleniumTestCase</A>
+<DD><B>Deprecated.</B>
+<DT><A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html#waitForText(java.lang.String)"><B>waitForText(String)</B></A> -
+Method in class org.jboss.test.selenium.<A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html" title="class in org.jboss.test.selenium">AbstractSeleniumTestCase</A>
+<DD>Waits for text to appear on the screen.
+<DT><A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html#waitForTextChanges(java.lang.String, java.lang.String)"><B>waitForTextChanges(String, String)</B></A> -
+Method in class org.jboss.test.selenium.<A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html" title="class in org.jboss.test.selenium">AbstractSeleniumTestCase</A>
+<DD>Wait for text of element given by locator changes from lastText to
+ another text.
+<DT><A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html#waitForTextChangesAndReturn(java.lang.String, java.lang.String)"><B>waitForTextChangesAndReturn(String, String)</B></A> -
+Method in class org.jboss.test.selenium.<A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html" title="class in org.jboss.test.selenium">AbstractSeleniumTestCase</A>
+<DD>Wait for text of element given by locator changes from lastText to
+ another text and returns this new text.
+<DT><A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html#waitForTextEquals(java.lang.String, java.lang.String)"><B>waitForTextEquals(String, String)</B></A> -
+Method in class org.jboss.test.selenium.<A HREF="./org/jboss/test/selenium/AbstractSeleniumTestCase.html" title="class in org.jboss.test.selenium">AbstractSeleniumTestCase</A>
+<DD>Waits for element specified by locator does contain text specified by
+ pattern
+<DT><A HREF="./org/jboss/test/selenium/waiting/Wait.html#waitForTimeout()"><B>waitForTimeout()</B></A> -
+Static method in class org.jboss.test.selenium.waiting.<A HREF="./org/jboss/test/selenium/waiting/Wait.html" title="class in org.jboss.test.selenium.waiting">Wait</A>
+<DD>Will wait for default amount of time.
+<DT><A HREF="./org/jboss/test/selenium/waiting/Wait.Waiting.html#waitForTimeout()"><B>waitForTimeout()</B></A> -
+Method in class org.jboss.test.selenium.waiting.<A HREF="./org/jboss/test/selenium/waiting/Wait.Waiting.html" title="class in org.jboss.test.selenium.waiting">Wait.Waiting</A>
+<DD>Waits for predefined amount of time.
+</DL>
+<HR>
+<A HREF="#_A_">A</A> <A HREF="#_B_">B</A> <A HREF="#_C_">C</A> <A HREF="#_D_">D</A> <A HREF="#_E_">E</A> <A HREF="#_F_">F</A> <A HREF="#_G_">G</A> <A HREF="#_I_">I</A> <A HREF="#_K_">K</A> <A HREF="#_L_">L</A> <A HREF="#_M_">M</A> <A HREF="#_N_">N</A> <A HREF="#_O_">O</A> <A HREF="#_P_">P</A> <A HREF="#_R_">R</A> <A HREF="#_S_">S</A> <A HREF="#_T_">T</A> <A HREF="#_U_">U</A> <A HREF="#_W_">W</A>
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="./overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Use</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="./overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="./deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="./help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="./index.html?index-all.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="index-all.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="./allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="./allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+Copyright © 2009. All Rights Reserved.
+</BODY>
+</HTML>
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/index.html
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/index.html (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/index.html 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,40 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc on Wed Aug 26 10:58:15 CDT 2009-->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+selenium-testing-lib 1.0-SNAPSHOT API
+</TITLE>
+<SCRIPT type="text/javascript">
+ targetPage = "" + window.location.search;
+ if (targetPage != "" && targetPage != "undefined")
+ targetPage = targetPage.substring(1);
+ if (targetPage.indexOf(":") != -1)
+ targetPage = "undefined";
+ function loadFrames() {
+ if (targetPage != "" && targetPage != "undefined")
+ top.classFrame.location = top.targetPage;
+ }
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+</HEAD>
+<FRAMESET cols="20%,80%" title="" onLoad="top.loadFrames()">
+<FRAMESET rows="30%,70%" title="" onLoad="top.loadFrames()">
+<FRAME src="overview-frame.html" name="packageListFrame" title="All Packages">
+<FRAME src="allclasses-frame.html" name="packageFrame" title="All classes and interfaces (except non-static nested types)">
+</FRAMESET>
+<FRAME src="overview-summary.html" name="classFrame" title="Package, class and interface descriptions" scrolling="yes">
+<NOFRAMES>
+<H2>
+Frame Alert</H2>
+
+<P>
+This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client.
+<BR>
+Link to<A HREF="overview-summary.html">Non-frame version.</A>
+</NOFRAMES>
+</FRAMESET>
+</HTML>
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/AbstractSeleniumTestCase.html
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/AbstractSeleniumTestCase.html (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/AbstractSeleniumTestCase.html 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,1389 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_14) on Wed Aug 26 10:58:15 CDT 2009 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+AbstractSeleniumTestCase (selenium-testing-lib 1.0-SNAPSHOT API)
+</TITLE>
+
+<META NAME="date" CONTENT="2009-08-26">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="AbstractSeleniumTestCase (selenium-testing-lib 1.0-SNAPSHOT API)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/AbstractSeleniumTestCase.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html?org/jboss/test/selenium/AbstractSeleniumTestCase.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="AbstractSeleniumTestCase.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.jboss.test.selenium</FONT>
+<BR>
+Class AbstractSeleniumTestCase</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.jboss.test.selenium.AbstractSeleniumTestCase</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public abstract class <B>AbstractSeleniumTestCase</B><DT>extends java.lang.Object</DL>
+</PRE>
+
+<P>
+Class that serves as basis for all Selenium-based tests.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>$Revision$</DD>
+<DT><B>Author:</B></DT>
+ <DD><a href="mailto:lfryc@redhat.com">Lukas Fryc</a>, <a href="mailto:ppitonak@redhat.com">Pavol Pitonak</a></DD>
+</DL>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static long</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html#AJAX_LOAD">AJAX_LOAD</A></B></CODE>
+
+<BR>
+ Generic timeout in miliseconds used for AJAX timeouts</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html#ELEM_TIMEOUT">ELEM_TIMEOUT</A></B></CODE>
+
+<BR>
+ Element timeout in seconds used in waitForElement functions</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected java.util.Properties</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html#locatorsProperties">locatorsProperties</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected java.util.Properties</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html#messagesProperties">messagesProperties</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html#PAGE_LOAD">PAGE_LOAD</A></B></CODE>
+
+<BR>
+ Generic timeout in miliseconds used in every selenium function
+ waitForPageToLoad()</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected com.thoughtworks.selenium.DefaultSelenium</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html#selenium">selenium</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html#AbstractSeleniumTestCase()">AbstractSeleniumTestCase</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html#assertTextOrder(java.lang.String)">assertTextOrder</A></B>(java.lang.String text)</CODE>
+
+<BR>
+ Asserts the text order on the page.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html#belongsClass(java.lang.String, java.lang.String)">belongsClass</A></B>(java.lang.String className,
+ java.lang.String locator)</CODE>
+
+<BR>
+ Checks if element given by locator is member of CSS class given by
+ className.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html#clickAndWait(java.lang.String)">clickAndWait</A></B>(java.lang.String locator)</CODE>
+
+<BR>
+ Click and wait.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html#clickIfVisible(java.lang.String)">clickIfVisible</A></B>(java.lang.String id)</CODE>
+
+<BR>
+ Click on an element only in the case element is present on the screen.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html#countTableRows(java.lang.String)">countTableRows</A></B>(java.lang.String tableLocation)</CODE>
+
+<BR>
+ Counts table rows for selected table.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html#findTableRow(java.lang.String, java.lang.String, int)">findTableRow</A></B>(java.lang.String tableLocation,
+ java.lang.String searchName,
+ int searchCol)</CODE>
+
+<BR>
+ Finding the correct row in a table due to input string and columns.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html#format(java.lang.String, java.lang.Object...)">format</A></B>(java.lang.String format,
+ java.lang.Object... args)</CODE>
+
+<BR>
+ Uses a MessageFormat.format() to prepare given format string and use it
+ to format result with given arguments.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html#formatLoc(java.lang.String, java.lang.Object...)">formatLoc</A></B>(java.lang.String prop,
+ java.lang.Object... args)</CODE>
+
+<BR>
+ Gets the property from messagesProperties and use it to format Message
+ with given arguments</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html#formatMess(java.lang.String, java.lang.Object...)">formatMess</A></B>(java.lang.String prop,
+ java.lang.Object... args)</CODE>
+
+<BR>
+ <B>Deprecated.</B> </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html#formatMsg(java.lang.String, java.lang.Object...)">formatMsg</A></B>(java.lang.String prop,
+ java.lang.Object... args)</CODE>
+
+<BR>
+ Gets the property from messagesProperties and use it to format Message
+ with given arguments</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html#getAttributeOrNull(java.lang.String)">getAttributeOrNull</A></B>(java.lang.String attributeLocator)</CODE>
+
+<BR>
+ Gets the value of an element attribute.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html#getLoc(java.lang.String)">getLoc</A></B>(java.lang.String prop)</CODE>
+
+<BR>
+ Gets the property from locatorsProperties</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html#getLoc(java.lang.String, java.lang.String)">getLoc</A></B>(java.lang.String prop,
+ java.lang.String subst)</CODE>
+
+<BR>
+ Gets the property from locatorsProperties</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected java.util.Properties</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html#getLocatorsProperties()">getLocatorsProperties</A></B>()</CODE>
+
+<BR>
+ This method initializes properties with locators.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html#getMess(java.lang.String)">getMess</A></B>(java.lang.String prop)</CODE>
+
+<BR>
+ <B>Deprecated.</B> </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html#getMess(java.lang.String, java.lang.String)">getMess</A></B>(java.lang.String prop,
+ java.lang.String subst)</CODE>
+
+<BR>
+ <B>Deprecated.</B> </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected java.util.Properties</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html#getMessagesProperties()">getMessagesProperties</A></B>()</CODE>
+
+<BR>
+ This method initializes properties with messages.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html#getMsg(java.lang.String)">getMsg</A></B>(java.lang.String prop)</CODE>
+
+<BR>
+ Gets the property from messagesProperties.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html#getMsg(java.lang.String, java.lang.String)">getMsg</A></B>(java.lang.String prop,
+ java.lang.String subst)</CODE>
+
+<BR>
+ Gets the property from messagesProperties.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
+<TR ALIGN="right" VALIGN="">
+<TD NOWRAP><FONT SIZE="-1">
+<CODE><T> java.util.Properties</CODE></FONT></TD>
+</TR>
+</TABLE>
+</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html#getNamedPropertiesForClass(java.lang.Class, java.lang.String)">getNamedPropertiesForClass</A></B>(java.lang.Class<T> tClass,
+ java.lang.String name)</CODE>
+
+<BR>
+ Loads properties from specified resource file in context of specified
+ class' package.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected static java.util.Properties</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html#getProperties(java.lang.String)">getProperties</A></B>(java.lang.String resource)</CODE>
+
+<BR>
+ Loads properties from specified resource file</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html#getStyle(java.lang.String, java.lang.String)">getStyle</A></B>(java.lang.String locator,
+ java.lang.String property)</CODE>
+
+<BR>
+ Get current style value of element given by locator.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html#getTextOrNull(java.lang.String)">getTextOrNull</A></B>(java.lang.String locator)</CODE>
+
+<BR>
+ Gets the text of an element.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html#isDisplayed(java.lang.String)">isDisplayed</A></B>(java.lang.String locator)</CODE>
+
+<BR>
+ Returns whether the element is displayed on the page.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html#mouseOverAt(java.lang.String, java.lang.String)">mouseOverAt</A></B>(java.lang.String locator,
+ java.lang.String coordString)</CODE>
+
+<BR>
+ Simulates a user hovering a mouse over the specified element at specific
+ coordinates relative to element.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html#openAndWait(java.lang.String)">openAndWait</A></B>(java.lang.String locator)</CODE>
+
+<BR>
+ Open and wait.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html#safeSelect(java.lang.String, java.lang.String)">safeSelect</A></B>(java.lang.String locator,
+ java.lang.String value)</CODE>
+
+<BR>
+ Selects a value only if the value is present in the select.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html#scrollIntoView(java.lang.String, boolean)">scrollIntoView</A></B>(java.lang.String locator,
+ boolean alignToTop)</CODE>
+
+<BR>
+ Aligns screen to top (resp.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html#selectIfNotSelected(java.lang.String, java.lang.String)">selectIfNotSelected</A></B>(java.lang.String selector,
+ java.lang.String label)</CODE>
+
+<BR>
+ Select if not selected.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html#waitFor(long)">waitFor</A></B>(long time)</CODE>
+
+<BR>
+ Waits for specified time in ms.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html#waitForAttributeChanges(java.lang.String, java.lang.String)">waitForAttributeChanges</A></B>(java.lang.String attributeLocator,
+ java.lang.String attributeValue)</CODE>
+
+<BR>
+ Wait for attribute of element given by attributeLocator changes from
+ attributeValue to another value.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html#waitForAttributeChangesAndReturn(java.lang.String, java.lang.String)">waitForAttributeChangesAndReturn</A></B>(java.lang.String attributeLocator,
+ java.lang.String attributeValue)</CODE>
+
+<BR>
+ Wait for attribute of element given by attributeLocator changes from
+ attributeValue to another value and returns this new value.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html#waitForElement(java.lang.String)">waitForElement</A></B>(java.lang.String locator)</CODE>
+
+<BR>
+ Waits for element to appear on the screen.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html#waitForElement(java.lang.String, long)">waitForElement</A></B>(java.lang.String locatorElem,
+ long timeToWait)</CODE>
+
+<BR>
+ Waits for element to appear on the screen.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html#waitForElement(java.lang.String, java.lang.String, long, long)">waitForElement</A></B>(java.lang.String locatorElem,
+ java.lang.String locatorLink,
+ long timeToWait,
+ long n)</CODE>
+
+<BR>
+ <B>Deprecated.</B> </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html#waitForText(java.lang.String)">waitForText</A></B>(java.lang.String text)</CODE>
+
+<BR>
+ Waits for text to appear on the screen.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html#waitForTextChanges(java.lang.String, java.lang.String)">waitForTextChanges</A></B>(java.lang.String locator,
+ java.lang.String lastText)</CODE>
+
+<BR>
+ Wait for text of element given by locator changes from lastText to
+ another text.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html#waitForTextChangesAndReturn(java.lang.String, java.lang.String)">waitForTextChangesAndReturn</A></B>(java.lang.String locator,
+ java.lang.String lastText)</CODE>
+
+<BR>
+ Wait for text of element given by locator changes from lastText to
+ another text and returns this new text.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html#waitForTextEquals(java.lang.String, java.lang.String)">waitForTextEquals</A></B>(java.lang.String locator,
+ java.lang.String pattern)</CODE>
+
+<BR>
+ Waits for element specified by locator does contain text specified by
+ pattern</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="locatorsProperties"><!-- --></A><H3>
+locatorsProperties</H3>
+<PRE>
+protected java.util.Properties <B>locatorsProperties</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="messagesProperties"><!-- --></A><H3>
+messagesProperties</H3>
+<PRE>
+protected java.util.Properties <B>messagesProperties</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="selenium"><!-- --></A><H3>
+selenium</H3>
+<PRE>
+protected com.thoughtworks.selenium.DefaultSelenium <B>selenium</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="PAGE_LOAD"><!-- --></A><H3>
+PAGE_LOAD</H3>
+<PRE>
+public static java.lang.String <B>PAGE_LOAD</B></PRE>
+<DL>
+<DD>Generic timeout in miliseconds used in every selenium function
+ waitForPageToLoad()
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="AJAX_LOAD"><!-- --></A><H3>
+AJAX_LOAD</H3>
+<PRE>
+public static long <B>AJAX_LOAD</B></PRE>
+<DL>
+<DD>Generic timeout in miliseconds used for AJAX timeouts
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="ELEM_TIMEOUT"><!-- --></A><H3>
+ELEM_TIMEOUT</H3>
+<PRE>
+public static int <B>ELEM_TIMEOUT</B></PRE>
+<DL>
+<DD>Element timeout in seconds used in waitForElement functions
+<P>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="AbstractSeleniumTestCase()"><!-- --></A><H3>
+AbstractSeleniumTestCase</H3>
+<PRE>
+public <B>AbstractSeleniumTestCase</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="getMessagesProperties()"><!-- --></A><H3>
+getMessagesProperties</H3>
+<PRE>
+protected java.util.Properties <B>getMessagesProperties</B>()</PRE>
+<DL>
+<DD>This method initializes properties with messages.
+
+ Should be overridden to properly initialize properties.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>initialized properties</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getLocatorsProperties()"><!-- --></A><H3>
+getLocatorsProperties</H3>
+<PRE>
+protected java.util.Properties <B>getLocatorsProperties</B>()</PRE>
+<DL>
+<DD>This method initializes properties with locators.
+
+ Should be overridden to properly initialize properties.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>initialized properties</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getProperties(java.lang.String)"><!-- --></A><H3>
+getProperties</H3>
+<PRE>
+protected static java.util.Properties <B>getProperties</B>(java.lang.String resource)
+ throws java.io.IOException</PRE>
+<DL>
+<DD>Loads properties from specified resource file
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>resource</CODE> - where in classpath the file is located
+<DT><B>Returns:</B><DD>loaded properties
+<DT><B>Throws:</B>
+<DD><CODE>java.io.IOException</CODE> - if an error occurred when reading resource file</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getNamedPropertiesForClass(java.lang.Class, java.lang.String)"><!-- --></A><H3>
+getNamedPropertiesForClass</H3>
+<PRE>
+protected <T> java.util.Properties <B>getNamedPropertiesForClass</B>(java.lang.Class<T> tClass,
+ java.lang.String name)
+ throws java.lang.IllegalStateException</PRE>
+<DL>
+<DD>Loads properties from specified resource file in context of specified
+ class' package.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>tClass</CODE> - named resource will be searched in context of this class<DD><CODE>name</CODE> - name of resource contained in current class' package
+<DT><B>Returns:</B><DD>loaded properties
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.IllegalStateException</CODE> - if an error occurred when reading resource file</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getMess(java.lang.String, java.lang.String)"><!-- --></A><H3>
+getMess</H3>
+<PRE>
+<FONT SIZE="-1">@Deprecated
+</FONT>public java.lang.String <B>getMess</B>(java.lang.String prop,
+ java.lang.String subst)</PRE>
+<DL>
+<DD><B>Deprecated.</B>
+<P>
+<DD>Gets the property from messagesProperties. Use getMsg(String, String)
+ instead of this deprecated method.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>prop</CODE> - the name of the property<DD><CODE>subst</CODE> - the value which is returned in the case the property isn't set
+<DT><B>Returns:</B><DD>the property
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.IllegalStateException</CODE> - when property wasn't found and substitution isn't set<DT><B>See Also:</B><DD><A HREF="../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html#getMsg(java.lang.String, java.lang.String)"><CODE>getMsg(String, String)</CODE></A>,
+<A HREF="../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html#getMessagesProperties()"><CODE>getMessagesProperties()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getMess(java.lang.String)"><!-- --></A><H3>
+getMess</H3>
+<PRE>
+<FONT SIZE="-1">@Deprecated
+</FONT>public java.lang.String <B>getMess</B>(java.lang.String prop)</PRE>
+<DL>
+<DD><B>Deprecated.</B>
+<P>
+<DD>Gets the property from messagesProperties. Use getMess(String) instead of
+ this deprecated method.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>prop</CODE> - the name of the property
+<DT><B>Returns:</B><DD>the property
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.IllegalStateException</CODE> - when property wasn't found<DT><B>See Also:</B><DD><A HREF="../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html#getMsg(java.lang.String)"><CODE>getMsg(String)</CODE></A>,
+<A HREF="../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html#getMessagesProperties()"><CODE>getMessagesProperties()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getMsg(java.lang.String, java.lang.String)"><!-- --></A><H3>
+getMsg</H3>
+<PRE>
+public java.lang.String <B>getMsg</B>(java.lang.String prop,
+ java.lang.String subst)</PRE>
+<DL>
+<DD>Gets the property from messagesProperties.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>prop</CODE> - the name of the property<DD><CODE>subst</CODE> - the value which is returned in the case the property isn't set
+<DT><B>Returns:</B><DD>the property
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.IllegalStateException</CODE> - when property wasn't found and substitution isn't set<DT><B>See Also:</B><DD><A HREF="../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html#getMessagesProperties()"><CODE>getMessagesProperties()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getMsg(java.lang.String)"><!-- --></A><H3>
+getMsg</H3>
+<PRE>
+public java.lang.String <B>getMsg</B>(java.lang.String prop)</PRE>
+<DL>
+<DD>Gets the property from messagesProperties.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>prop</CODE> - the name of the property
+<DT><B>Returns:</B><DD>the property
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.IllegalStateException</CODE> - when property wasn't found<DT><B>See Also:</B><DD><A HREF="../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html#getMessagesProperties()"><CODE>getMessagesProperties()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="formatMess(java.lang.String, java.lang.Object...)"><!-- --></A><H3>
+formatMess</H3>
+<PRE>
+<FONT SIZE="-1">@Deprecated
+</FONT>public java.lang.String <B>formatMess</B>(java.lang.String prop,
+ java.lang.Object... args)</PRE>
+<DL>
+<DD><B>Deprecated.</B>
+<P>
+<DD>Gets the property from messagesProperties and use it to format Message
+ with given arguments. Use formatMsg instead of this deprecated method.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>prop</CODE> - the name of the property with message format.<DD><CODE>args</CODE> - an array of atributes to be formatted and substituted to prop
+<DT><B>Returns:</B><DD>the property
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.IllegalStateException</CODE> - when property wasn't found<DT><B>See Also:</B><DD><A HREF="../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html#formatMsg(java.lang.String, java.lang.Object...)"><CODE>formattMsg(String, Object...)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="formatMsg(java.lang.String, java.lang.Object...)"><!-- --></A><H3>
+formatMsg</H3>
+<PRE>
+public java.lang.String <B>formatMsg</B>(java.lang.String prop,
+ java.lang.Object... args)</PRE>
+<DL>
+<DD>Gets the property from messagesProperties and use it to format Message
+ with given arguments
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>prop</CODE> - the name of the property with message format.<DD><CODE>args</CODE> - an array of atributes to be formatted and substituted to prop
+<DT><B>Returns:</B><DD>the property
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.IllegalStateException</CODE> - when property wasn't found</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getLoc(java.lang.String, java.lang.String)"><!-- --></A><H3>
+getLoc</H3>
+<PRE>
+public java.lang.String <B>getLoc</B>(java.lang.String prop,
+ java.lang.String subst)</PRE>
+<DL>
+<DD>Gets the property from locatorsProperties
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>prop</CODE> - the name of the property<DD><CODE>subst</CODE> - the value which is returned in the case the property isn't set
+<DT><B>Returns:</B><DD>the property
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.IllegalStateException</CODE> - when property wasn't found and substitution isn't set<DT><B>See Also:</B><DD><A HREF="../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html#getLocatorsProperties()"><CODE>getLocatorsProperties()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getLoc(java.lang.String)"><!-- --></A><H3>
+getLoc</H3>
+<PRE>
+public java.lang.String <B>getLoc</B>(java.lang.String prop)</PRE>
+<DL>
+<DD>Gets the property from locatorsProperties
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>prop</CODE> - the name of the property
+<DT><B>Returns:</B><DD>the property
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.IllegalStateException</CODE> - when property wasn't found<DT><B>See Also:</B><DD><A HREF="../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html#getLocatorsProperties()"><CODE>getLocatorsProperties()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="formatLoc(java.lang.String, java.lang.Object...)"><!-- --></A><H3>
+formatLoc</H3>
+<PRE>
+public java.lang.String <B>formatLoc</B>(java.lang.String prop,
+ java.lang.Object... args)</PRE>
+<DL>
+<DD>Gets the property from messagesProperties and use it to format Message
+ with given arguments
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>prop</CODE> - the name of the property with message format.<DD><CODE>args</CODE> - an array of atributes to be formatted and substituted to prop
+<DT><B>Returns:</B><DD>the property
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.IllegalStateException</CODE> - when property wasn't found<DT><B>See Also:</B><DD><A HREF="../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html#getLocatorsProperties()"><CODE>getLocatorsProperties()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="format(java.lang.String, java.lang.Object...)"><!-- --></A><H3>
+format</H3>
+<PRE>
+public java.lang.String <B>format</B>(java.lang.String format,
+ java.lang.Object... args)</PRE>
+<DL>
+<DD>Uses a MessageFormat.format() to prepare given format string and use it
+ to format result with given arguments.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>format</CODE> - string used in MessageFormat.format()<DD><CODE>args</CODE> - used to formatting given format string
+<DT><B>Returns:</B><DD>string formatted using given arguments</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="clickIfVisible(java.lang.String)"><!-- --></A><H3>
+clickIfVisible</H3>
+<PRE>
+public void <B>clickIfVisible</B>(java.lang.String id)</PRE>
+<DL>
+<DD>Click on an element only in the case element is present on the screen.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>id</CODE> - element locator</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="findTableRow(java.lang.String, java.lang.String, int)"><!-- --></A><H3>
+findTableRow</H3>
+<PRE>
+public int <B>findTableRow</B>(java.lang.String tableLocation,
+ java.lang.String searchName,
+ int searchCol)</PRE>
+<DL>
+<DD>Finding the correct row in a table due to input string and columns. The
+ function uses selenium javascript extension findTableRow. It tries to
+ look up the input string in the chosen column in selected table. After
+ the first occurrence of input string, it returns the number of row where
+ it was found.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>tableLocation</CODE> - the table locator<DD><CODE>searchName</CODE> - the string which the function searches for<DD><CODE>searchCol</CODE> - the column in which the function searches for
+<DT><B>Returns:</B><DD>the number of row with the first occurrence of searchName string.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="countTableRows(java.lang.String)"><!-- --></A><H3>
+countTableRows</H3>
+<PRE>
+public int <B>countTableRows</B>(java.lang.String tableLocation)</PRE>
+<DL>
+<DD>Counts table rows for selected table.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>tableLocation</CODE> - the table locator
+<DT><B>Returns:</B><DD>the number of rows of the table</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="safeSelect(java.lang.String, java.lang.String)"><!-- --></A><H3>
+safeSelect</H3>
+<PRE>
+public void <B>safeSelect</B>(java.lang.String locator,
+ java.lang.String value)</PRE>
+<DL>
+<DD>Selects a value only if the value is present in the select. If the value
+ is not present, selection fails.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>locator</CODE> - the locator of the select tag<DD><CODE>value</CODE> - the value which should be selected</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="clickAndWait(java.lang.String)"><!-- --></A><H3>
+clickAndWait</H3>
+<PRE>
+public void <B>clickAndWait</B>(java.lang.String locator)</PRE>
+<DL>
+<DD>Click and wait. Substitution for two selenium commands click and
+ waitForPageToLoad.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>locator</CODE> - the locator of the element to be clicked on</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="openAndWait(java.lang.String)"><!-- --></A><H3>
+openAndWait</H3>
+<PRE>
+public void <B>openAndWait</B>(java.lang.String locator)</PRE>
+<DL>
+<DD>Open and wait. Substitution for two selenium commands open and
+ waitForPageToLoad.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>locator</CODE> - the address to be opened</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="selectIfNotSelected(java.lang.String, java.lang.String)"><!-- --></A><H3>
+selectIfNotSelected</H3>
+<PRE>
+public void <B>selectIfNotSelected</B>(java.lang.String selector,
+ java.lang.String label)</PRE>
+<DL>
+<DD>Select if not selected. If the value is already selected, the method does
+ nothing.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>selector</CODE> - the selector locator<DD><CODE>label</CODE> - the label to be selected</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="assertTextOrder(java.lang.String)"><!-- --></A><H3>
+assertTextOrder</H3>
+<PRE>
+public boolean <B>assertTextOrder</B>(java.lang.String text)</PRE>
+<DL>
+<DD>Asserts the text order on the page. The messages which order is to be
+ determined are inputed in a comma separated way. i.e.
+ "string1;string2;string3". The method asserts that they appear on the
+ page in the same order as typed in the input string. It returns true if
+ the order is the same or false otherwise.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>text</CODE> - input text in comma separated format which order is to be
+ asserted
+<DT><B>Returns:</B><DD>true if the order is the same or false otherwise</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="waitFor(long)"><!-- --></A><H3>
+waitFor</H3>
+<PRE>
+public void <B>waitFor</B>(long time)</PRE>
+<DL>
+<DD>Waits for specified time in ms. Used mostly in AJAX based tests.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>time</CODE> - the time (in ms) to be waited for.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="waitForElement(java.lang.String)"><!-- --></A><H3>
+waitForElement</H3>
+<PRE>
+public void <B>waitForElement</B>(java.lang.String locator)</PRE>
+<DL>
+<DD>Waits for element to appear on the screen. Used mostly in AJAX based
+ tests.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>locator</CODE> - the locator of the element to be waited for</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="waitForElement(java.lang.String, long)"><!-- --></A><H3>
+waitForElement</H3>
+<PRE>
+public void <B>waitForElement</B>(java.lang.String locatorElem,
+ long timeToWait)</PRE>
+<DL>
+<DD>Waits for element to appear on the screen. Used mostly in AJAX based
+ tests.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>locatorElem</CODE> - the element locator<DD><CODE>timeToWait</CODE> - the time (in ms) to wait until timeout is reached</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="waitForElement(java.lang.String, java.lang.String, long, long)"><!-- --></A><H3>
+waitForElement</H3>
+<PRE>
+<FONT SIZE="-1">@Deprecated
+</FONT>public void <B>waitForElement</B>(java.lang.String locatorElem,
+ java.lang.String locatorLink,
+ long timeToWait,
+ long n)</PRE>
+<DL>
+<DD><B>Deprecated.</B>
+<P>
+<DD>Waits for element to appear on the screen. Used mostly in AJAX based
+ tests.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>locatorElem</CODE> - the element locator<DD><CODE>locatorLink</CODE> - the link locator - not used<DD><CODE>timeToWait</CODE> - the time (in ms) to wait until timeout is reached<DD><CODE>n</CODE> - the n<DT><B>See Also:</B><DD><A HREF="../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html#waitForElement(java.lang.String, long)"><CODE>waitForElement(String, long)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="waitForText(java.lang.String)"><!-- --></A><H3>
+waitForText</H3>
+<PRE>
+public void <B>waitForText</B>(java.lang.String text)</PRE>
+<DL>
+<DD>Waits for text to appear on the screen. Used mostly in AJAX based tests.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>text</CODE> - the text to be waited for</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="waitForTextEquals(java.lang.String, java.lang.String)"><!-- --></A><H3>
+waitForTextEquals</H3>
+<PRE>
+public void <B>waitForTextEquals</B>(java.lang.String locator,
+ java.lang.String pattern)</PRE>
+<DL>
+<DD>Waits for element specified by locator does contain text specified by
+ pattern
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>locator</CODE> - text of this locator's element will be tested for equivalence
+ to pattern text<DD><CODE>pattern</CODE> - pattern text, which will be tested to equivalence to element's
+ text given by locator</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="waitForTextChanges(java.lang.String, java.lang.String)"><!-- --></A><H3>
+waitForTextChanges</H3>
+<PRE>
+public void <B>waitForTextChanges</B>(java.lang.String locator,
+ java.lang.String lastText)</PRE>
+<DL>
+<DD>Wait for text of element given by locator changes from lastText to
+ another text.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>locator</CODE> - locator of element<DD><CODE>lastText</CODE> - current text what we are waiting for change</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="waitForTextChangesAndReturn(java.lang.String, java.lang.String)"><!-- --></A><H3>
+waitForTextChangesAndReturn</H3>
+<PRE>
+public java.lang.String <B>waitForTextChangesAndReturn</B>(java.lang.String locator,
+ java.lang.String lastText)</PRE>
+<DL>
+<DD>Wait for text of element given by locator changes from lastText to
+ another text and returns this new text.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>locator</CODE> - locator of element<DD><CODE>lastText</CODE> - current text what we are waiting for change
+<DT><B>Returns:</B><DD>new value of text</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="waitForAttributeChanges(java.lang.String, java.lang.String)"><!-- --></A><H3>
+waitForAttributeChanges</H3>
+<PRE>
+public void <B>waitForAttributeChanges</B>(java.lang.String attributeLocator,
+ java.lang.String attributeValue)</PRE>
+<DL>
+<DD>Wait for attribute of element given by attributeLocator changes from
+ attributeValue to another value.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>attributeLocator</CODE> - locator of attribute<DD><CODE>attributeValue</CODE> - current value attribute what we are waiting for change</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="waitForAttributeChangesAndReturn(java.lang.String, java.lang.String)"><!-- --></A><H3>
+waitForAttributeChangesAndReturn</H3>
+<PRE>
+public java.lang.String <B>waitForAttributeChangesAndReturn</B>(java.lang.String attributeLocator,
+ java.lang.String attributeValue)</PRE>
+<DL>
+<DD>Wait for attribute of element given by attributeLocator changes from
+ attributeValue to another value and returns this new value.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>attributeLocator</CODE> - locator of attribute<DD><CODE>attributeValue</CODE> - current value attribute what we are waiting for change
+<DT><B>Returns:</B><DD>new value of attribute</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getStyle(java.lang.String, java.lang.String)"><!-- --></A><H3>
+getStyle</H3>
+<PRE>
+public java.lang.String <B>getStyle</B>(java.lang.String locator,
+ java.lang.String property)</PRE>
+<DL>
+<DD>Get current style value of element given by locator.
+
+ Use CSS style notation instead of JavaScript's camel notation!
+
+ This methods of getting current style value haven't absolute browser
+ compatibility.
+
+ E.g.: use property "background-color" instead of "backgroundColor"
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>locator</CODE> - of element from what we want to get current style value<DD><CODE>property</CODE> - CSS style property what we can to recognize
+<DT><B>Returns:</B><DD>current value of property if its element exists and has this
+ property value set; null value otherwise
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.IllegalStateException</CODE> - if is caught unrecognized throwable</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="scrollIntoView(java.lang.String, boolean)"><!-- --></A><H3>
+scrollIntoView</H3>
+<PRE>
+public void <B>scrollIntoView</B>(java.lang.String locator,
+ boolean alignToTop)</PRE>
+<DL>
+<DD>Aligns screen to top (resp. bottom) of element given by locator.
+
+ TODO should be reimplemented to use of JQuery.scrollTo
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>locator</CODE> - of element which should be screen aligned to<DD><CODE>alignToTop</CODE> - should be top border of screen aligned to top border of
+ element</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="belongsClass(java.lang.String, java.lang.String)"><!-- --></A><H3>
+belongsClass</H3>
+<PRE>
+public boolean <B>belongsClass</B>(java.lang.String className,
+ java.lang.String locator)</PRE>
+<DL>
+<DD>Checks if element given by locator is member of CSS class given by
+ className.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>className</CODE> - name of CSS class<DD><CODE>locator</CODE> - element's locator
+<DT><B>Returns:</B><DD>true if element given by locator is member of CSS class given by
+ className</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isDisplayed(java.lang.String)"><!-- --></A><H3>
+isDisplayed</H3>
+<PRE>
+public boolean <B>isDisplayed</B>(java.lang.String locator)</PRE>
+<DL>
+<DD>Returns whether the element is displayed on the page.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>locator</CODE> - element locator
+<DT><B>Returns:</B><DD>if style contains "display: none;" returns false, else returns
+ true</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="mouseOverAt(java.lang.String, java.lang.String)"><!-- --></A><H3>
+mouseOverAt</H3>
+<PRE>
+public void <B>mouseOverAt</B>(java.lang.String locator,
+ java.lang.String coordString)</PRE>
+<DL>
+<DD>Simulates a user hovering a mouse over the specified element at specific
+ coordinates relative to element.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>locator</CODE> - element's locator<DD><CODE>coordString</CODE> - specifies the x,y position (i.e. - 10,20) of the mouse event
+ relative to the element returned by the locator.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getTextOrNull(java.lang.String)"><!-- --></A><H3>
+getTextOrNull</H3>
+<PRE>
+public java.lang.String <B>getTextOrNull</B>(java.lang.String locator)</PRE>
+<DL>
+<DD>Gets the text of an element. This works for any element that contains
+ text. This command uses either the textContent (Mozilla-like browsers) or
+ the innerText (IE-like browsers) of the element, which is the rendered
+ text shown to the user.
+
+ If no element with given locator is found, returns null.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>locator</CODE> - an element locator
+<DT><B>Returns:</B><DD>the text of the element or null if element's wasn't found</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getAttributeOrNull(java.lang.String)"><!-- --></A><H3>
+getAttributeOrNull</H3>
+<PRE>
+public java.lang.String <B>getAttributeOrNull</B>(java.lang.String attributeLocator)</PRE>
+<DL>
+<DD>Gets the value of an element attribute. The value of the attribute may
+ differ across browsers (this is the case for the "style" attribute, for
+ example).
+
+ If no element with given attribute's locator is found, returns null.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>attributeLocator</CODE> - an element's attribute locator
+<DT><B>Returns:</B><DD>the attribute of the element or null if element's attribute
+ wasn't found</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/AbstractSeleniumTestCase.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html?org/jboss/test/selenium/AbstractSeleniumTestCase.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="AbstractSeleniumTestCase.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+Copyright © 2009. All Rights Reserved.
+</BODY>
+</HTML>
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/actions/Drag.html
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/actions/Drag.html (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/actions/Drag.html 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,384 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_14) on Wed Aug 26 10:58:15 CDT 2009 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+Drag (selenium-testing-lib 1.0-SNAPSHOT API)
+</TITLE>
+
+<META NAME="date" CONTENT="2009-08-26">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Drag (selenium-testing-lib 1.0-SNAPSHOT API)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/Drag.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html?org/jboss/test/selenium/actions/Drag.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Drag.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.jboss.test.selenium.actions</FONT>
+<BR>
+Class Drag</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.jboss.test.selenium.actions.Drag</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>Drag</B><DT>extends java.lang.Object</DL>
+</PRE>
+
+<P>
+Provides item dragging capability to Selenium tests.
+
+ Methods can be call in following serie: start, mouseOut, move, enter, drop.
+
+ If we are calling preceding phase (e.g. move, when drag was already called),
+ IllegalStateException is thrown.
+
+ If we are calling following phase (e.g. drop, when no action was called), all
+ phases preceding requested phase will be done before requested phase can be
+ done.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>$Revision$</DD>
+<DT><B>Author:</B></DT>
+ <DD><a href="mailto:lfryc@redhat.com">Lukas Fryc</a></DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../org/jboss/test/selenium/actions/Drag.html#Drag(com.thoughtworks.selenium.Selenium, java.lang.String, java.lang.String)">Drag</A></B>(com.thoughtworks.selenium.Selenium selenium,
+ java.lang.String item,
+ java.lang.String target)</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/jboss/test/selenium/actions/Drag.html#drop()">drop</A></B>()</CODE>
+
+<BR>
+ Last phase of dragging.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/jboss/test/selenium/actions/Drag.html#enter()">enter</A></B>()</CODE>
+
+<BR>
+ Starts fourth phase of dragging.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/jboss/test/selenium/actions/Drag.html#mouseOut()">mouseOut</A></B>()</CODE>
+
+<BR>
+ Starts second phase of dragging.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/jboss/test/selenium/actions/Drag.html#move()">move</A></B>()</CODE>
+
+<BR>
+ Starts third phase of dragging.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/jboss/test/selenium/actions/Drag.html#start()">start</A></B>()</CODE>
+
+<BR>
+ Starts first phase of dragging.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="Drag(com.thoughtworks.selenium.Selenium, java.lang.String, java.lang.String)"><!-- --></A><H3>
+Drag</H3>
+<PRE>
+public <B>Drag</B>(com.thoughtworks.selenium.Selenium selenium,
+ java.lang.String item,
+ java.lang.String target)</PRE>
+<DL>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>selenium</CODE> - initialized and started Selenium instance<DD><CODE>item</CODE> - item to drag<DD><CODE>target</CODE> - target of item dragging</DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="start()"><!-- --></A><H3>
+start</H3>
+<PRE>
+public void <B>start</B>()</PRE>
+<DL>
+<DD>Starts first phase of dragging.
+
+ Simulate left mouse button pressing and small initial movement.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="mouseOut()"><!-- --></A><H3>
+mouseOut</H3>
+<PRE>
+public void <B>mouseOut</B>()</PRE>
+<DL>
+<DD>Starts second phase of dragging.
+
+ If there is some unfinished preceding phases, it will be done before this
+ phase.
+
+ Simulate movement of mouse cursor out of the item that ve want to drag.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="move()"><!-- --></A><H3>
+move</H3>
+<PRE>
+public void <B>move</B>()</PRE>
+<DL>
+<DD>Starts third phase of dragging.
+
+ If there is some unfinished preceding phases, it will be done before this
+ phase.
+
+ Simulate movement of mouse cursor near the target item.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="enter()"><!-- --></A><H3>
+enter</H3>
+<PRE>
+public void <B>enter</B>()</PRE>
+<DL>
+<DD>Starts fourth phase of dragging.
+
+ If there is some unfinished preceding phases, it will be done before this
+ phase.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="drop()"><!-- --></A><H3>
+drop</H3>
+<PRE>
+public void <B>drop</B>()</PRE>
+<DL>
+<DD>Last phase of dragging.
+
+ If there is some unfinished preceding phases, it will be done before this
+ phase.
+
+ Drop the item to target.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/Drag.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html?org/jboss/test/selenium/actions/Drag.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Drag.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+Copyright © 2009. All Rights Reserved.
+</BODY>
+</HTML>
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/actions/class-use/Drag.html
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/actions/class-use/Drag.html (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/actions/class-use/Drag.html 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,145 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_14) on Wed Aug 26 10:58:15 CDT 2009 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+Uses of Class org.jboss.test.selenium.actions.Drag (selenium-testing-lib 1.0-SNAPSHOT API)
+</TITLE>
+
+<META NAME="date" CONTENT="2009-08-26">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Uses of Class org.jboss.test.selenium.actions.Drag (selenium-testing-lib 1.0-SNAPSHOT API)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../org/jboss/test/selenium/actions/Drag.html" title="class in org.jboss.test.selenium.actions"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../index.html?org/jboss/test/selenium/actions//class-useDrag.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Drag.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.jboss.test.selenium.actions.Drag</B></H2>
+</CENTER>
+No usage of org.jboss.test.selenium.actions.Drag
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../org/jboss/test/selenium/actions/Drag.html" title="class in org.jboss.test.selenium.actions"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../index.html?org/jboss/test/selenium/actions//class-useDrag.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Drag.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+Copyright © 2009. All Rights Reserved.
+</BODY>
+</HTML>
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/actions/package-frame.html
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/actions/package-frame.html (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/actions/package-frame.html 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,33 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_14) on Wed Aug 26 10:58:15 CDT 2009 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+org.jboss.test.selenium.actions (selenium-testing-lib 1.0-SNAPSHOT API)
+</TITLE>
+
+<META NAME="date" CONTENT="2009-08-26">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../../org/jboss/test/selenium/actions/package-summary.html" target="classFrame">org.jboss.test.selenium.actions</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="Drag.html" title="class in org.jboss.test.selenium.actions" target="classFrame">Drag</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/actions/package-summary.html
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/actions/package-summary.html (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/actions/package-summary.html 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,158 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_14) on Wed Aug 26 10:58:15 CDT 2009 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+org.jboss.test.selenium.actions (selenium-testing-lib 1.0-SNAPSHOT API)
+</TITLE>
+
+<META NAME="date" CONTENT="2009-08-26">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="org.jboss.test.selenium.actions (selenium-testing-lib 1.0-SNAPSHOT API)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../org/jboss/test/selenium/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../../org/jboss/test/selenium/dom/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html?org/jboss/test/selenium/actions/package-summary.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package org.jboss.test.selenium.actions
+</H2>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../org/jboss/test/selenium/actions/Drag.html" title="class in org.jboss.test.selenium.actions">Drag</A></B></TD>
+<TD>Provides item dragging capability to Selenium tests.</TD>
+</TR>
+</TABLE>
+
+
+<P>
+<DL>
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../org/jboss/test/selenium/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../../org/jboss/test/selenium/dom/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html?org/jboss/test/selenium/actions/package-summary.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+Copyright © 2009. All Rights Reserved.
+</BODY>
+</HTML>
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/actions/package-tree.html
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/actions/package-tree.html (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/actions/package-tree.html 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,154 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_14) on Wed Aug 26 10:58:15 CDT 2009 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+org.jboss.test.selenium.actions Class Hierarchy (selenium-testing-lib 1.0-SNAPSHOT API)
+</TITLE>
+
+<META NAME="date" CONTENT="2009-08-26">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="org.jboss.test.selenium.actions Class Hierarchy (selenium-testing-lib 1.0-SNAPSHOT API)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Use</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../org/jboss/test/selenium/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../../org/jboss/test/selenium/dom/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html?org/jboss/test/selenium/actions/package-tree.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package org.jboss.test.selenium.actions
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">java.lang.Object<UL>
+<LI TYPE="circle">org.jboss.test.selenium.actions.<A HREF="../../../../../org/jboss/test/selenium/actions/Drag.html" title="class in org.jboss.test.selenium.actions"><B>Drag</B></A></UL>
+</UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Use</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../org/jboss/test/selenium/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../../org/jboss/test/selenium/dom/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html?org/jboss/test/selenium/actions/package-tree.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+Copyright © 2009. All Rights Reserved.
+</BODY>
+</HTML>
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/actions/package-use.html
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/actions/package-use.html (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/actions/package-use.html 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,145 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_14) on Wed Aug 26 10:58:15 CDT 2009 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+Uses of Package org.jboss.test.selenium.actions (selenium-testing-lib 1.0-SNAPSHOT API)
+</TITLE>
+
+<META NAME="date" CONTENT="2009-08-26">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Uses of Package org.jboss.test.selenium.actions (selenium-testing-lib 1.0-SNAPSHOT API)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html?org/jboss/test/selenium/actions/package-use.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Package<br>org.jboss.test.selenium.actions</B></H2>
+</CENTER>
+No usage of org.jboss.test.selenium.actions
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html?org/jboss/test/selenium/actions/package-use.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+Copyright © 2009. All Rights Reserved.
+</BODY>
+</HTML>
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/class-use/AbstractSeleniumTestCase.html
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/class-use/AbstractSeleniumTestCase.html (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/class-use/AbstractSeleniumTestCase.html 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,145 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_14) on Wed Aug 26 10:58:15 CDT 2009 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+Uses of Class org.jboss.test.selenium.AbstractSeleniumTestCase (selenium-testing-lib 1.0-SNAPSHOT API)
+</TITLE>
+
+<META NAME="date" CONTENT="2009-08-26">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Uses of Class org.jboss.test.selenium.AbstractSeleniumTestCase (selenium-testing-lib 1.0-SNAPSHOT API)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html" title="class in org.jboss.test.selenium"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html?org/jboss/test/selenium//class-useAbstractSeleniumTestCase.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="AbstractSeleniumTestCase.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.jboss.test.selenium.AbstractSeleniumTestCase</B></H2>
+</CENTER>
+No usage of org.jboss.test.selenium.AbstractSeleniumTestCase
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html" title="class in org.jboss.test.selenium"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html?org/jboss/test/selenium//class-useAbstractSeleniumTestCase.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="AbstractSeleniumTestCase.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+Copyright © 2009. All Rights Reserved.
+</BODY>
+</HTML>
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/dom/Event.html
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/dom/Event.html (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/dom/Event.html 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,609 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_14) on Wed Aug 26 10:58:15 CDT 2009 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+Event (selenium-testing-lib 1.0-SNAPSHOT API)
+</TITLE>
+
+<META NAME="date" CONTENT="2009-08-26">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Event (selenium-testing-lib 1.0-SNAPSHOT API)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/Event.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html?org/jboss/test/selenium/dom/Event.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Event.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.jboss.test.selenium.dom</FONT>
+<BR>
+Class Event</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.jboss.test.selenium.dom.Event</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>Event</B><DT>extends java.lang.Object</DL>
+</PRE>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>$Revision$</DD>
+<DT><B>Author:</B></DT>
+ <DD><a href="mailto:lfryc@redhat.com">Lukas Fryc</a></DD>
+</DL>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/jboss/test/selenium/dom/Event.html#ABORT">ABORT</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/jboss/test/selenium/dom/Event.html#BLUR">BLUR</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/jboss/test/selenium/dom/Event.html#CHANGE">CHANGE</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/jboss/test/selenium/dom/Event.html#CLICK">CLICK</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/jboss/test/selenium/dom/Event.html#ERROR">ERROR</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/jboss/test/selenium/dom/Event.html#FOCUS">FOCUS</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/jboss/test/selenium/dom/Event.html#KEYDOWN">KEYDOWN</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/jboss/test/selenium/dom/Event.html#KEYPRESS">KEYPRESS</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/jboss/test/selenium/dom/Event.html#KEYUP">KEYUP</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/jboss/test/selenium/dom/Event.html#LOAD">LOAD</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/jboss/test/selenium/dom/Event.html#MOUSEDOWN">MOUSEDOWN</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/jboss/test/selenium/dom/Event.html#MOUSEMOVE">MOUSEMOVE</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/jboss/test/selenium/dom/Event.html#MOUSEOUT">MOUSEOUT</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/jboss/test/selenium/dom/Event.html#MOUSEOVER">MOUSEOVER</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/jboss/test/selenium/dom/Event.html#MOUSEUP">MOUSEUP</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/jboss/test/selenium/dom/Event.html#RESET">RESET</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/jboss/test/selenium/dom/Event.html#RESIZE">RESIZE</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/jboss/test/selenium/dom/Event.html#SELECT">SELECT</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/jboss/test/selenium/dom/Event.html#SUBMIT">SUBMIT</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/jboss/test/selenium/dom/Event.html#UNLOAD">UNLOAD</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../org/jboss/test/selenium/dom/Event.html#Event()">Event</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="ABORT"><!-- --></A><H3>
+ABORT</H3>
+<PRE>
+public static final java.lang.String <B>ABORT</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#org.jboss.test.selenium.dom.Event.ABORT">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="BLUR"><!-- --></A><H3>
+BLUR</H3>
+<PRE>
+public static final java.lang.String <B>BLUR</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#org.jboss.test.selenium.dom.Event.BLUR">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="CHANGE"><!-- --></A><H3>
+CHANGE</H3>
+<PRE>
+public static final java.lang.String <B>CHANGE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#org.jboss.test.selenium.dom.Event.CHANGE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="CLICK"><!-- --></A><H3>
+CLICK</H3>
+<PRE>
+public static final java.lang.String <B>CLICK</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#org.jboss.test.selenium.dom.Event.CLICK">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="ERROR"><!-- --></A><H3>
+ERROR</H3>
+<PRE>
+public static final java.lang.String <B>ERROR</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#org.jboss.test.selenium.dom.Event.ERROR">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="FOCUS"><!-- --></A><H3>
+FOCUS</H3>
+<PRE>
+public static final java.lang.String <B>FOCUS</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#org.jboss.test.selenium.dom.Event.FOCUS">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="KEYDOWN"><!-- --></A><H3>
+KEYDOWN</H3>
+<PRE>
+public static final java.lang.String <B>KEYDOWN</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#org.jboss.test.selenium.dom.Event.KEYDOWN">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="KEYPRESS"><!-- --></A><H3>
+KEYPRESS</H3>
+<PRE>
+public static final java.lang.String <B>KEYPRESS</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#org.jboss.test.selenium.dom.Event.KEYPRESS">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="KEYUP"><!-- --></A><H3>
+KEYUP</H3>
+<PRE>
+public static final java.lang.String <B>KEYUP</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#org.jboss.test.selenium.dom.Event.KEYUP">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="LOAD"><!-- --></A><H3>
+LOAD</H3>
+<PRE>
+public static final java.lang.String <B>LOAD</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#org.jboss.test.selenium.dom.Event.LOAD">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="MOUSEDOWN"><!-- --></A><H3>
+MOUSEDOWN</H3>
+<PRE>
+public static final java.lang.String <B>MOUSEDOWN</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#org.jboss.test.selenium.dom.Event.MOUSEDOWN">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="MOUSEMOVE"><!-- --></A><H3>
+MOUSEMOVE</H3>
+<PRE>
+public static final java.lang.String <B>MOUSEMOVE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#org.jboss.test.selenium.dom.Event.MOUSEMOVE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="MOUSEOUT"><!-- --></A><H3>
+MOUSEOUT</H3>
+<PRE>
+public static final java.lang.String <B>MOUSEOUT</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#org.jboss.test.selenium.dom.Event.MOUSEOUT">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="MOUSEOVER"><!-- --></A><H3>
+MOUSEOVER</H3>
+<PRE>
+public static final java.lang.String <B>MOUSEOVER</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#org.jboss.test.selenium.dom.Event.MOUSEOVER">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="MOUSEUP"><!-- --></A><H3>
+MOUSEUP</H3>
+<PRE>
+public static final java.lang.String <B>MOUSEUP</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#org.jboss.test.selenium.dom.Event.MOUSEUP">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="RESET"><!-- --></A><H3>
+RESET</H3>
+<PRE>
+public static final java.lang.String <B>RESET</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#org.jboss.test.selenium.dom.Event.RESET">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="RESIZE"><!-- --></A><H3>
+RESIZE</H3>
+<PRE>
+public static final java.lang.String <B>RESIZE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#org.jboss.test.selenium.dom.Event.RESIZE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="SELECT"><!-- --></A><H3>
+SELECT</H3>
+<PRE>
+public static final java.lang.String <B>SELECT</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#org.jboss.test.selenium.dom.Event.SELECT">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="SUBMIT"><!-- --></A><H3>
+SUBMIT</H3>
+<PRE>
+public static final java.lang.String <B>SUBMIT</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#org.jboss.test.selenium.dom.Event.SUBMIT">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="UNLOAD"><!-- --></A><H3>
+UNLOAD</H3>
+<PRE>
+public static final java.lang.String <B>UNLOAD</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#org.jboss.test.selenium.dom.Event.UNLOAD">Constant Field Values</A></DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="Event()"><!-- --></A><H3>
+Event</H3>
+<PRE>
+public <B>Event</B>()</PRE>
+<DL>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/Event.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html?org/jboss/test/selenium/dom/Event.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Event.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+Copyright © 2009. All Rights Reserved.
+</BODY>
+</HTML>
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/dom/class-use/Event.html
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/dom/class-use/Event.html (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/dom/class-use/Event.html 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,145 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_14) on Wed Aug 26 10:58:15 CDT 2009 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+Uses of Class org.jboss.test.selenium.dom.Event (selenium-testing-lib 1.0-SNAPSHOT API)
+</TITLE>
+
+<META NAME="date" CONTENT="2009-08-26">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Uses of Class org.jboss.test.selenium.dom.Event (selenium-testing-lib 1.0-SNAPSHOT API)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../org/jboss/test/selenium/dom/Event.html" title="class in org.jboss.test.selenium.dom"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../index.html?org/jboss/test/selenium/dom//class-useEvent.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Event.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.jboss.test.selenium.dom.Event</B></H2>
+</CENTER>
+No usage of org.jboss.test.selenium.dom.Event
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../org/jboss/test/selenium/dom/Event.html" title="class in org.jboss.test.selenium.dom"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../index.html?org/jboss/test/selenium/dom//class-useEvent.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Event.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+Copyright © 2009. All Rights Reserved.
+</BODY>
+</HTML>
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/dom/package-frame.html
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/dom/package-frame.html (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/dom/package-frame.html 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,33 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_14) on Wed Aug 26 10:58:15 CDT 2009 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+org.jboss.test.selenium.dom (selenium-testing-lib 1.0-SNAPSHOT API)
+</TITLE>
+
+<META NAME="date" CONTENT="2009-08-26">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../../org/jboss/test/selenium/dom/package-summary.html" target="classFrame">org.jboss.test.selenium.dom</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="Event.html" title="class in org.jboss.test.selenium.dom" target="classFrame">Event</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/dom/package-summary.html
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/dom/package-summary.html (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/dom/package-summary.html 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,158 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_14) on Wed Aug 26 10:58:15 CDT 2009 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+org.jboss.test.selenium.dom (selenium-testing-lib 1.0-SNAPSHOT API)
+</TITLE>
+
+<META NAME="date" CONTENT="2009-08-26">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="org.jboss.test.selenium.dom (selenium-testing-lib 1.0-SNAPSHOT API)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../org/jboss/test/selenium/actions/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../../org/jboss/test/selenium/utils/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html?org/jboss/test/selenium/dom/package-summary.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package org.jboss.test.selenium.dom
+</H2>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../org/jboss/test/selenium/dom/Event.html" title="class in org.jboss.test.selenium.dom">Event</A></B></TD>
+<TD> </TD>
+</TR>
+</TABLE>
+
+
+<P>
+<DL>
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../org/jboss/test/selenium/actions/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../../org/jboss/test/selenium/utils/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html?org/jboss/test/selenium/dom/package-summary.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+Copyright © 2009. All Rights Reserved.
+</BODY>
+</HTML>
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/dom/package-tree.html
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/dom/package-tree.html (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/dom/package-tree.html 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,154 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_14) on Wed Aug 26 10:58:15 CDT 2009 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+org.jboss.test.selenium.dom Class Hierarchy (selenium-testing-lib 1.0-SNAPSHOT API)
+</TITLE>
+
+<META NAME="date" CONTENT="2009-08-26">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="org.jboss.test.selenium.dom Class Hierarchy (selenium-testing-lib 1.0-SNAPSHOT API)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Use</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../org/jboss/test/selenium/actions/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../../org/jboss/test/selenium/utils/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html?org/jboss/test/selenium/dom/package-tree.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package org.jboss.test.selenium.dom
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">java.lang.Object<UL>
+<LI TYPE="circle">org.jboss.test.selenium.dom.<A HREF="../../../../../org/jboss/test/selenium/dom/Event.html" title="class in org.jboss.test.selenium.dom"><B>Event</B></A></UL>
+</UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Use</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../org/jboss/test/selenium/actions/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../../org/jboss/test/selenium/utils/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html?org/jboss/test/selenium/dom/package-tree.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+Copyright © 2009. All Rights Reserved.
+</BODY>
+</HTML>
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/dom/package-use.html
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/dom/package-use.html (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/dom/package-use.html 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,145 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_14) on Wed Aug 26 10:58:15 CDT 2009 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+Uses of Package org.jboss.test.selenium.dom (selenium-testing-lib 1.0-SNAPSHOT API)
+</TITLE>
+
+<META NAME="date" CONTENT="2009-08-26">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Uses of Package org.jboss.test.selenium.dom (selenium-testing-lib 1.0-SNAPSHOT API)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html?org/jboss/test/selenium/dom/package-use.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Package<br>org.jboss.test.selenium.dom</B></H2>
+</CENTER>
+No usage of org.jboss.test.selenium.dom
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html?org/jboss/test/selenium/dom/package-use.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+Copyright © 2009. All Rights Reserved.
+</BODY>
+</HTML>
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/package-frame.html
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/package-frame.html (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/package-frame.html 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,33 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_14) on Wed Aug 26 10:58:15 CDT 2009 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+org.jboss.test.selenium (selenium-testing-lib 1.0-SNAPSHOT API)
+</TITLE>
+
+<META NAME="date" CONTENT="2009-08-26">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../org/jboss/test/selenium/package-summary.html" target="classFrame">org.jboss.test.selenium</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="AbstractSeleniumTestCase.html" title="class in org.jboss.test.selenium" target="classFrame">AbstractSeleniumTestCase</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/package-summary.html
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/package-summary.html (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/package-summary.html 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,158 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_14) on Wed Aug 26 10:58:15 CDT 2009 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+org.jboss.test.selenium (selenium-testing-lib 1.0-SNAPSHOT API)
+</TITLE>
+
+<META NAME="date" CONTENT="2009-08-26">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="org.jboss.test.selenium (selenium-testing-lib 1.0-SNAPSHOT API)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV PACKAGE
+ <A HREF="../../../../org/jboss/test/selenium/actions/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html?org/jboss/test/selenium/package-summary.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package org.jboss.test.selenium
+</H2>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html" title="class in org.jboss.test.selenium">AbstractSeleniumTestCase</A></B></TD>
+<TD>Class that serves as basis for all Selenium-based tests.</TD>
+</TR>
+</TABLE>
+
+
+<P>
+<DL>
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV PACKAGE
+ <A HREF="../../../../org/jboss/test/selenium/actions/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html?org/jboss/test/selenium/package-summary.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+Copyright © 2009. All Rights Reserved.
+</BODY>
+</HTML>
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/package-tree.html
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/package-tree.html (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/package-tree.html 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,154 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_14) on Wed Aug 26 10:58:15 CDT 2009 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+org.jboss.test.selenium Class Hierarchy (selenium-testing-lib 1.0-SNAPSHOT API)
+</TITLE>
+
+<META NAME="date" CONTENT="2009-08-26">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="org.jboss.test.selenium Class Hierarchy (selenium-testing-lib 1.0-SNAPSHOT API)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Use</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ <A HREF="../../../../org/jboss/test/selenium/actions/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html?org/jboss/test/selenium/package-tree.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package org.jboss.test.selenium
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">java.lang.Object<UL>
+<LI TYPE="circle">org.jboss.test.selenium.<A HREF="../../../../org/jboss/test/selenium/AbstractSeleniumTestCase.html" title="class in org.jboss.test.selenium"><B>AbstractSeleniumTestCase</B></A></UL>
+</UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Use</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ <A HREF="../../../../org/jboss/test/selenium/actions/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html?org/jboss/test/selenium/package-tree.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+Copyright © 2009. All Rights Reserved.
+</BODY>
+</HTML>
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/package-use.html
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/package-use.html (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/package-use.html 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,145 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_14) on Wed Aug 26 10:58:15 CDT 2009 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+Uses of Package org.jboss.test.selenium (selenium-testing-lib 1.0-SNAPSHOT API)
+</TITLE>
+
+<META NAME="date" CONTENT="2009-08-26">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Uses of Package org.jboss.test.selenium (selenium-testing-lib 1.0-SNAPSHOT API)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html?org/jboss/test/selenium/package-use.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Package<br>org.jboss.test.selenium</B></H2>
+</CENTER>
+No usage of org.jboss.test.selenium
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html?org/jboss/test/selenium/package-use.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+Copyright © 2009. All Rights Reserved.
+</BODY>
+</HTML>
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/utils/URLUtils.html
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/utils/URLUtils.html (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/utils/URLUtils.html 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,300 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_14) on Wed Aug 26 10:58:15 CDT 2009 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+URLUtils (selenium-testing-lib 1.0-SNAPSHOT API)
+</TITLE>
+
+<META NAME="date" CONTENT="2009-08-26">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="URLUtils (selenium-testing-lib 1.0-SNAPSHOT API)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/URLUtils.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html?org/jboss/test/selenium/utils/URLUtils.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="URLUtils.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.jboss.test.selenium.utils</FONT>
+<BR>
+Class URLUtils</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.jboss.test.selenium.utils.URLUtils</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>URLUtils</B><DT>extends java.lang.Object</DL>
+</PRE>
+
+<P>
+Provides URL manipulations and functionality.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>$Revision$</DD>
+<DT><B>Author:</B></DT>
+ <DD><a href="mailto:lfryc@redhat.com">Lukas Fryc</a></DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../org/jboss/test/selenium/utils/URLUtils.html#URLUtils()">URLUtils</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/jboss/test/selenium/utils/URLUtils.html#buildUrl(java.lang.String, java.lang.String...)">buildUrl</A></B>(java.lang.String context,
+ java.lang.String... relocations)</CODE>
+
+<BR>
+ Use URL context and one or more relocations to build end URL.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/jboss/test/selenium/utils/URLUtils.html#resourceMd5Digest(java.lang.String)">resourceMd5Digest</A></B>(java.lang.String url)</CODE>
+
+<BR>
+ Gets a MD5 digest of some resource obtains as input stream from
+ connection to URL given by URL string.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="URLUtils()"><!-- --></A><H3>
+URLUtils</H3>
+<PRE>
+public <B>URLUtils</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="buildUrl(java.lang.String, java.lang.String...)"><!-- --></A><H3>
+buildUrl</H3>
+<PRE>
+public static java.lang.String <B>buildUrl</B>(java.lang.String context,
+ java.lang.String... relocations)
+ throws java.net.MalformedURLException</PRE>
+<DL>
+<DD>Use URL context and one or more relocations to build end URL.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>context</CODE> - first URL used like a context root for all relocation changes<DD><CODE>relocations</CODE> - array of relocation URLs
+<DT><B>Returns:</B><DD>end url after all changes made on context with relocations
+<DT><B>Throws:</B>
+<DD><CODE>java.net.MalformedURLException</CODE> - when context or some of relocations are malformed</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="resourceMd5Digest(java.lang.String)"><!-- --></A><H3>
+resourceMd5Digest</H3>
+<PRE>
+public static java.lang.String <B>resourceMd5Digest</B>(java.lang.String url)
+ throws java.io.IOException,
+ java.security.NoSuchAlgorithmException</PRE>
+<DL>
+<DD>Gets a MD5 digest of some resource obtains as input stream from
+ connection to URL given by URL string.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>url</CODE> - of the resource
+<DT><B>Returns:</B><DD>MD5 message digest of resource
+<DT><B>Throws:</B>
+<DD><CODE>java.io.IOException</CODE> - when connection to URL fails
+<DD><CODE>java.security.NoSuchAlgorithmException</CODE></DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/URLUtils.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html?org/jboss/test/selenium/utils/URLUtils.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="URLUtils.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+Copyright © 2009. All Rights Reserved.
+</BODY>
+</HTML>
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/utils/array/ArrayTransform.html
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/utils/array/ArrayTransform.html (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/utils/array/ArrayTransform.html 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,306 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_14) on Wed Aug 26 10:58:15 CDT 2009 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+ArrayTransform (selenium-testing-lib 1.0-SNAPSHOT API)
+</TITLE>
+
+<META NAME="date" CONTENT="2009-08-26">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="ArrayTransform (selenium-testing-lib 1.0-SNAPSHOT API)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/ArrayTransform.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../index.html?org/jboss/test/selenium/utils/array/ArrayTransform.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="ArrayTransform.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.jboss.test.selenium.utils.array</FONT>
+<BR>
+Class ArrayTransform<S,T></H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../../resources/inherit.gif" ALT="extended by "><B>org.jboss.test.selenium.utils.array.ArrayTransform<S,T></B>
+</PRE>
+<DL>
+<DT><DT><B>Type Parameters:</B><DD><CODE>S</CODE> - Type of source items.<DD><CODE>T</CODE> - Type of target items.</DL>
+<HR>
+<DL>
+<DT><PRE>public abstract class <B>ArrayTransform<S,T></B><DT>extends java.lang.Object</DL>
+</PRE>
+
+<P>
+Abstract class providing generic array transformations.
+
+ Use overridden method transform(S[] sourceArray) to transform
+ sourceArray to T[] targetArray. Method transform(S[] sourceArray) is
+ implementation of transformation of each item from type S to type T.
+
+ Items are transformed to target array as one-to-one preserving order of source.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>$Revision$</DD>
+<DT><B>Author:</B></DT>
+ <DD><a href="mailto:lfryc@redhat.com">Lukas Fryc</a></DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../../org/jboss/test/selenium/utils/array/ArrayTransform.html#ArrayTransform(java.lang.Class)">ArrayTransform</A></B>(java.lang.Class<<A HREF="../../../../../../org/jboss/test/selenium/utils/array/ArrayTransform.html" title="type parameter in ArrayTransform">T</A>> tClass)</CODE>
+
+<BR>
+ Constructs ArrayTransform with implementation of transformation
+ predefining tClass like a class of transformation-target array.</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../../org/jboss/test/selenium/utils/array/ArrayTransform.html" title="type parameter in ArrayTransform">T</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/jboss/test/selenium/utils/array/ArrayTransform.html#transform(S[])">transform</A></B>(<A HREF="../../../../../../org/jboss/test/selenium/utils/array/ArrayTransform.html" title="type parameter in ArrayTransform">S</A>[] sourceArray)</CODE>
+
+<BR>
+ Process transformation of S[] sourceArray with T[] targetArray like
+ return value.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract <A HREF="../../../../../../org/jboss/test/selenium/utils/array/ArrayTransform.html" title="type parameter in ArrayTransform">T</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/jboss/test/selenium/utils/array/ArrayTransform.html#transformation(S)">transformation</A></B>(<A HREF="../../../../../../org/jboss/test/selenium/utils/array/ArrayTransform.html" title="type parameter in ArrayTransform">S</A> source)</CODE>
+
+<BR>
+ This method is implementation of transformation each item of sourceArray
+ and type S to item of type T in targetArray.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="ArrayTransform(java.lang.Class)"><!-- --></A><H3>
+ArrayTransform</H3>
+<PRE>
+public <B>ArrayTransform</B>(java.lang.Class<<A HREF="../../../../../../org/jboss/test/selenium/utils/array/ArrayTransform.html" title="type parameter in ArrayTransform">T</A>> tClass)</PRE>
+<DL>
+<DD>Constructs ArrayTransform with implementation of transformation
+ predefining tClass like a class of transformation-target array.
+<P>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>tClass</CODE> - class of type T in which should be typed resulting target array</DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="transformation(java.lang.Object)"><!-- --></A><A NAME="transformation(S)"><!-- --></A><H3>
+transformation</H3>
+<PRE>
+public abstract <A HREF="../../../../../../org/jboss/test/selenium/utils/array/ArrayTransform.html" title="type parameter in ArrayTransform">T</A> <B>transformation</B>(<A HREF="../../../../../../org/jboss/test/selenium/utils/array/ArrayTransform.html" title="type parameter in ArrayTransform">S</A> source)</PRE>
+<DL>
+<DD>This method is implementation of transformation each item of sourceArray
+ and type S to item of type T in targetArray.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>source</CODE> - transformation object
+<DT><B>Returns:</B><DD>transformation result</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="transform(java.lang.Object[])"><!-- --></A><A NAME="transform(S[])"><!-- --></A><H3>
+transform</H3>
+<PRE>
+public <A HREF="../../../../../../org/jboss/test/selenium/utils/array/ArrayTransform.html" title="type parameter in ArrayTransform">T</A>[] <B>transform</B>(<A HREF="../../../../../../org/jboss/test/selenium/utils/array/ArrayTransform.html" title="type parameter in ArrayTransform">S</A>[] sourceArray)</PRE>
+<DL>
+<DD>Process transformation of S[] sourceArray with T[] targetArray like
+ return value.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>sourceArray</CODE> - array of type S which should be transformed to targetArray of type T
+<DT><B>Returns:</B><DD>targetArray of type T after transformation from S[] sourceArray</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/ArrayTransform.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../index.html?org/jboss/test/selenium/utils/array/ArrayTransform.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="ArrayTransform.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+Copyright © 2009. All Rights Reserved.
+</BODY>
+</HTML>
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/utils/array/class-use/ArrayTransform.html
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/utils/array/class-use/ArrayTransform.html (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/utils/array/class-use/ArrayTransform.html 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,145 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_14) on Wed Aug 26 10:58:15 CDT 2009 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+Uses of Class org.jboss.test.selenium.utils.array.ArrayTransform (selenium-testing-lib 1.0-SNAPSHOT API)
+</TITLE>
+
+<META NAME="date" CONTENT="2009-08-26">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Uses of Class org.jboss.test.selenium.utils.array.ArrayTransform (selenium-testing-lib 1.0-SNAPSHOT API)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../org/jboss/test/selenium/utils/array/ArrayTransform.html" title="class in org.jboss.test.selenium.utils.array"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../../index.html?org/jboss/test/selenium/utils/array//class-useArrayTransform.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="ArrayTransform.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.jboss.test.selenium.utils.array.ArrayTransform</B></H2>
+</CENTER>
+No usage of org.jboss.test.selenium.utils.array.ArrayTransform
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../org/jboss/test/selenium/utils/array/ArrayTransform.html" title="class in org.jboss.test.selenium.utils.array"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../../index.html?org/jboss/test/selenium/utils/array//class-useArrayTransform.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="ArrayTransform.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+Copyright © 2009. All Rights Reserved.
+</BODY>
+</HTML>
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/utils/array/package-frame.html
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/utils/array/package-frame.html (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/utils/array/package-frame.html 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,33 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_14) on Wed Aug 26 10:58:15 CDT 2009 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+org.jboss.test.selenium.utils.array (selenium-testing-lib 1.0-SNAPSHOT API)
+</TITLE>
+
+<META NAME="date" CONTENT="2009-08-26">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../../../org/jboss/test/selenium/utils/array/package-summary.html" target="classFrame">org.jboss.test.selenium.utils.array</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="ArrayTransform.html" title="class in org.jboss.test.selenium.utils.array" target="classFrame">ArrayTransform</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/utils/array/package-summary.html
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/utils/array/package-summary.html (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/utils/array/package-summary.html 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,158 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_14) on Wed Aug 26 10:58:15 CDT 2009 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+org.jboss.test.selenium.utils.array (selenium-testing-lib 1.0-SNAPSHOT API)
+</TITLE>
+
+<META NAME="date" CONTENT="2009-08-26">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="org.jboss.test.selenium.utils.array (selenium-testing-lib 1.0-SNAPSHOT API)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../org/jboss/test/selenium/utils/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../../../org/jboss/test/selenium/waiting/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../index.html?org/jboss/test/selenium/utils/array/package-summary.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package org.jboss.test.selenium.utils.array
+</H2>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../../org/jboss/test/selenium/utils/array/ArrayTransform.html" title="class in org.jboss.test.selenium.utils.array">ArrayTransform<S,T></A></B></TD>
+<TD>Abstract class providing generic array transformations.</TD>
+</TR>
+</TABLE>
+
+
+<P>
+<DL>
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../org/jboss/test/selenium/utils/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../../../org/jboss/test/selenium/waiting/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../index.html?org/jboss/test/selenium/utils/array/package-summary.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+Copyright © 2009. All Rights Reserved.
+</BODY>
+</HTML>
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/utils/array/package-tree.html
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/utils/array/package-tree.html (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/utils/array/package-tree.html 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,154 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_14) on Wed Aug 26 10:58:15 CDT 2009 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+org.jboss.test.selenium.utils.array Class Hierarchy (selenium-testing-lib 1.0-SNAPSHOT API)
+</TITLE>
+
+<META NAME="date" CONTENT="2009-08-26">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="org.jboss.test.selenium.utils.array Class Hierarchy (selenium-testing-lib 1.0-SNAPSHOT API)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Use</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../org/jboss/test/selenium/utils/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../../../org/jboss/test/selenium/waiting/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../index.html?org/jboss/test/selenium/utils/array/package-tree.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package org.jboss.test.selenium.utils.array
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">java.lang.Object<UL>
+<LI TYPE="circle">org.jboss.test.selenium.utils.array.<A HREF="../../../../../../org/jboss/test/selenium/utils/array/ArrayTransform.html" title="class in org.jboss.test.selenium.utils.array"><B>ArrayTransform</B></A><S,T></UL>
+</UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Use</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../org/jboss/test/selenium/utils/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../../../org/jboss/test/selenium/waiting/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../index.html?org/jboss/test/selenium/utils/array/package-tree.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+Copyright © 2009. All Rights Reserved.
+</BODY>
+</HTML>
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/utils/array/package-use.html
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/utils/array/package-use.html (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/utils/array/package-use.html 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,145 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_14) on Wed Aug 26 10:58:15 CDT 2009 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+Uses of Package org.jboss.test.selenium.utils.array (selenium-testing-lib 1.0-SNAPSHOT API)
+</TITLE>
+
+<META NAME="date" CONTENT="2009-08-26">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Uses of Package org.jboss.test.selenium.utils.array (selenium-testing-lib 1.0-SNAPSHOT API)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../index.html?org/jboss/test/selenium/utils/array/package-use.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Package<br>org.jboss.test.selenium.utils.array</B></H2>
+</CENTER>
+No usage of org.jboss.test.selenium.utils.array
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../index.html?org/jboss/test/selenium/utils/array/package-use.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+Copyright © 2009. All Rights Reserved.
+</BODY>
+</HTML>
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/utils/class-use/URLUtils.html
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/utils/class-use/URLUtils.html (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/utils/class-use/URLUtils.html 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,145 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_14) on Wed Aug 26 10:58:15 CDT 2009 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+Uses of Class org.jboss.test.selenium.utils.URLUtils (selenium-testing-lib 1.0-SNAPSHOT API)
+</TITLE>
+
+<META NAME="date" CONTENT="2009-08-26">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Uses of Class org.jboss.test.selenium.utils.URLUtils (selenium-testing-lib 1.0-SNAPSHOT API)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../org/jboss/test/selenium/utils/URLUtils.html" title="class in org.jboss.test.selenium.utils"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../index.html?org/jboss/test/selenium/utils//class-useURLUtils.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="URLUtils.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.jboss.test.selenium.utils.URLUtils</B></H2>
+</CENTER>
+No usage of org.jboss.test.selenium.utils.URLUtils
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../org/jboss/test/selenium/utils/URLUtils.html" title="class in org.jboss.test.selenium.utils"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../index.html?org/jboss/test/selenium/utils//class-useURLUtils.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="URLUtils.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+Copyright © 2009. All Rights Reserved.
+</BODY>
+</HTML>
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/utils/package-frame.html
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/utils/package-frame.html (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/utils/package-frame.html 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,33 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_14) on Wed Aug 26 10:58:15 CDT 2009 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+org.jboss.test.selenium.utils (selenium-testing-lib 1.0-SNAPSHOT API)
+</TITLE>
+
+<META NAME="date" CONTENT="2009-08-26">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../../org/jboss/test/selenium/utils/package-summary.html" target="classFrame">org.jboss.test.selenium.utils</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="URLUtils.html" title="class in org.jboss.test.selenium.utils" target="classFrame">URLUtils</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/utils/package-summary.html
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/utils/package-summary.html (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/utils/package-summary.html 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,158 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_14) on Wed Aug 26 10:58:15 CDT 2009 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+org.jboss.test.selenium.utils (selenium-testing-lib 1.0-SNAPSHOT API)
+</TITLE>
+
+<META NAME="date" CONTENT="2009-08-26">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="org.jboss.test.selenium.utils (selenium-testing-lib 1.0-SNAPSHOT API)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../org/jboss/test/selenium/dom/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../../org/jboss/test/selenium/utils/array/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html?org/jboss/test/selenium/utils/package-summary.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package org.jboss.test.selenium.utils
+</H2>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../org/jboss/test/selenium/utils/URLUtils.html" title="class in org.jboss.test.selenium.utils">URLUtils</A></B></TD>
+<TD>Provides URL manipulations and functionality.</TD>
+</TR>
+</TABLE>
+
+
+<P>
+<DL>
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../org/jboss/test/selenium/dom/package-summary.html"><B>PREV PACKAGE</B></A>
+ <A HREF="../../../../../org/jboss/test/selenium/utils/array/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html?org/jboss/test/selenium/utils/package-summary.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+Copyright © 2009. All Rights Reserved.
+</BODY>
+</HTML>
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/utils/package-tree.html
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/utils/package-tree.html (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/utils/package-tree.html 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,154 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_14) on Wed Aug 26 10:58:15 CDT 2009 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+org.jboss.test.selenium.utils Class Hierarchy (selenium-testing-lib 1.0-SNAPSHOT API)
+</TITLE>
+
+<META NAME="date" CONTENT="2009-08-26">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="org.jboss.test.selenium.utils Class Hierarchy (selenium-testing-lib 1.0-SNAPSHOT API)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Use</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../org/jboss/test/selenium/dom/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../../org/jboss/test/selenium/utils/array/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html?org/jboss/test/selenium/utils/package-tree.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package org.jboss.test.selenium.utils
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">java.lang.Object<UL>
+<LI TYPE="circle">org.jboss.test.selenium.utils.<A HREF="../../../../../org/jboss/test/selenium/utils/URLUtils.html" title="class in org.jboss.test.selenium.utils"><B>URLUtils</B></A></UL>
+</UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Use</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../org/jboss/test/selenium/dom/package-tree.html"><B>PREV</B></A>
+ <A HREF="../../../../../org/jboss/test/selenium/utils/array/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html?org/jboss/test/selenium/utils/package-tree.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+Copyright © 2009. All Rights Reserved.
+</BODY>
+</HTML>
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/utils/package-use.html
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/utils/package-use.html (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/utils/package-use.html 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,145 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_14) on Wed Aug 26 10:58:15 CDT 2009 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+Uses of Package org.jboss.test.selenium.utils (selenium-testing-lib 1.0-SNAPSHOT API)
+</TITLE>
+
+<META NAME="date" CONTENT="2009-08-26">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Uses of Package org.jboss.test.selenium.utils (selenium-testing-lib 1.0-SNAPSHOT API)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html?org/jboss/test/selenium/utils/package-use.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Package<br>org.jboss.test.selenium.utils</B></H2>
+</CENTER>
+No usage of org.jboss.test.selenium.utils
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html?org/jboss/test/selenium/utils/package-use.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+Copyright © 2009. All Rights Reserved.
+</BODY>
+</HTML>
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/waiting/Condition.html
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/waiting/Condition.html (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/waiting/Condition.html 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,223 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_14) on Wed Aug 26 10:58:15 CDT 2009 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+Condition (selenium-testing-lib 1.0-SNAPSHOT API)
+</TITLE>
+
+<META NAME="date" CONTENT="2009-08-26">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Condition (selenium-testing-lib 1.0-SNAPSHOT API)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/Condition.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../../org/jboss/test/selenium/waiting/Not.html" title="class in org.jboss.test.selenium.waiting"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html?org/jboss/test/selenium/waiting/Condition.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Condition.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.jboss.test.selenium.waiting</FONT>
+<BR>
+Interface Condition</H2>
+<DL>
+<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../../../org/jboss/test/selenium/waiting/Not.html" title="class in org.jboss.test.selenium.waiting">Not</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public interface <B>Condition</B></DL>
+</PRE>
+
+<P>
+Specifies when condition will be true.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>$Revision$</DD>
+<DT><B>Author:</B></DT>
+ <DD><a href="mailto:lfryc@redhat.com">Lukas Fryc</a></DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/jboss/test/selenium/waiting/Condition.html#isTrue()">isTrue</A></B>()</CODE>
+
+<BR>
+ Returns true if condition is satisfied, false if it isn't.</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="isTrue()"><!-- --></A><H3>
+isTrue</H3>
+<PRE>
+boolean <B>isTrue</B>()</PRE>
+<DL>
+<DD>Returns true if condition is satisfied, false if it isn't.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>true if desired condition is satisfied, false if it isn't</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/Condition.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../../org/jboss/test/selenium/waiting/Not.html" title="class in org.jboss.test.selenium.waiting"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html?org/jboss/test/selenium/waiting/Condition.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Condition.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+Copyright © 2009. All Rights Reserved.
+</BODY>
+</HTML>
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/waiting/Not.html
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/waiting/Not.html (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/waiting/Not.html 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,299 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_14) on Wed Aug 26 10:58:15 CDT 2009 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+Not (selenium-testing-lib 1.0-SNAPSHOT API)
+</TITLE>
+
+<META NAME="date" CONTENT="2009-08-26">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Not (selenium-testing-lib 1.0-SNAPSHOT API)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/Not.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../org/jboss/test/selenium/waiting/Condition.html" title="interface in org.jboss.test.selenium.waiting"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../org/jboss/test/selenium/waiting/Retrieve.html" title="interface in org.jboss.test.selenium.waiting"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html?org/jboss/test/selenium/waiting/Not.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Not.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.jboss.test.selenium.waiting</FONT>
+<BR>
+Class Not</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.jboss.test.selenium.waiting.Not</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../../org/jboss/test/selenium/waiting/Condition.html" title="interface in org.jboss.test.selenium.waiting">Condition</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public abstract class <B>Not</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../../../org/jboss/test/selenium/waiting/Condition.html" title="interface in org.jboss.test.selenium.waiting">Condition</A></DL>
+</PRE>
+
+<P>
+Opposite to Condition - you specify when desired conditions is not satisfied.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>$Revision$</DD>
+<DT><B>Author:</B></DT>
+ <DD><a href="mailto:lfryc@redhat.com">Lukas Fryc</a></DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../org/jboss/test/selenium/waiting/Not.html#Not()">Not</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/jboss/test/selenium/waiting/Not.html#isTrue()">isTrue</A></B>()</CODE>
+
+<BR>
+ Implementation of condition, which will not be satisfied.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/jboss/test/selenium/waiting/Not.html#not()">not</A></B>()</CODE>
+
+<BR>
+ This method has to be overridden to return condition which shouldn't be
+ satisfied.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="Not()"><!-- --></A><H3>
+Not</H3>
+<PRE>
+public <B>Not</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="isTrue()"><!-- --></A><H3>
+isTrue</H3>
+<PRE>
+public final boolean <B>isTrue</B>()</PRE>
+<DL>
+<DD>Implementation of condition, which will not be satisfied.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/jboss/test/selenium/waiting/Condition.html#isTrue()">isTrue</A></CODE> in interface <CODE><A HREF="../../../../../org/jboss/test/selenium/waiting/Condition.html" title="interface in org.jboss.test.selenium.waiting">Condition</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>true if desired condition is <b>not</b> satisfied</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="not()"><!-- --></A><H3>
+not</H3>
+<PRE>
+public abstract boolean <B>not</B>()</PRE>
+<DL>
+<DD>This method has to be overridden to return condition which shouldn't be
+ satisfied.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>true if desired condition is <b>not</b> satisfied, false if it is</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/Not.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../org/jboss/test/selenium/waiting/Condition.html" title="interface in org.jboss.test.selenium.waiting"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../org/jboss/test/selenium/waiting/Retrieve.html" title="interface in org.jboss.test.selenium.waiting"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html?org/jboss/test/selenium/waiting/Not.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Not.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+Copyright © 2009. All Rights Reserved.
+</BODY>
+</HTML>
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/waiting/Retrieve.html
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/waiting/Retrieve.html (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/waiting/Retrieve.html 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,222 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_14) on Wed Aug 26 10:58:15 CDT 2009 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+Retrieve (selenium-testing-lib 1.0-SNAPSHOT API)
+</TITLE>
+
+<META NAME="date" CONTENT="2009-08-26">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Retrieve (selenium-testing-lib 1.0-SNAPSHOT API)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/Retrieve.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../org/jboss/test/selenium/waiting/Not.html" title="class in org.jboss.test.selenium.waiting"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../org/jboss/test/selenium/waiting/Wait.html" title="class in org.jboss.test.selenium.waiting"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html?org/jboss/test/selenium/waiting/Retrieve.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Retrieve.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.jboss.test.selenium.waiting</FONT>
+<BR>
+Interface Retrieve<T></H2>
+<DL>
+<DT><DT><B>Type Parameters:</B><DD><CODE>T</CODE> - type of retrieved value</DL>
+<HR>
+<DL>
+<DT><PRE>public interface <B>Retrieve<T></B></DL>
+</PRE>
+
+<P>
+Implementing this method you get implementation of retrieving typed values from some source.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>$Revision$</DD>
+<DT><B>Author:</B></DT>
+ <DD><a href="mailto:lfryc@redhat.com">Lukas Fryc</a></DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../org/jboss/test/selenium/waiting/Retrieve.html" title="type parameter in Retrieve">T</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/jboss/test/selenium/waiting/Retrieve.html#retrieve()">retrieve</A></B>()</CODE>
+
+<BR>
+ Override with implementation of retrieving value from source.</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="retrieve()"><!-- --></A><H3>
+retrieve</H3>
+<PRE>
+<A HREF="../../../../../org/jboss/test/selenium/waiting/Retrieve.html" title="type parameter in Retrieve">T</A> <B>retrieve</B>()</PRE>
+<DL>
+<DD>Override with implementation of retrieving value from source.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>retrieved value</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/Retrieve.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../org/jboss/test/selenium/waiting/Not.html" title="class in org.jboss.test.selenium.waiting"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../org/jboss/test/selenium/waiting/Wait.html" title="class in org.jboss.test.selenium.waiting"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html?org/jboss/test/selenium/waiting/Retrieve.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Retrieve.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+Copyright © 2009. All Rights Reserved.
+</BODY>
+</HTML>
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/waiting/Wait.Waiting.html
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/waiting/Wait.Waiting.html (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/waiting/Wait.Waiting.html 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,433 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_14) on Wed Aug 26 10:58:15 CDT 2009 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+Wait.Waiting (selenium-testing-lib 1.0-SNAPSHOT API)
+</TITLE>
+
+<META NAME="date" CONTENT="2009-08-26">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Wait.Waiting (selenium-testing-lib 1.0-SNAPSHOT API)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/Wait.Waiting.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../org/jboss/test/selenium/waiting/Wait.html" title="class in org.jboss.test.selenium.waiting"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html?org/jboss/test/selenium/waiting/Wait.Waiting.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Wait.Waiting.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.jboss.test.selenium.waiting</FONT>
+<BR>
+Class Wait.Waiting</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.jboss.test.selenium.waiting.Wait.Waiting</B>
+</PRE>
+<DL>
+<DT><B>Enclosing class:</B><DD><A HREF="../../../../../org/jboss/test/selenium/waiting/Wait.html" title="class in org.jboss.test.selenium.waiting">Wait</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public static class <B>Wait.Waiting</B><DT>extends java.lang.Object</DL>
+</PRE>
+
+<P>
+Class intented to construct by factories in Wait class.
+
+ Implementation of waiting for satisfaction of condition.
+<P>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../org/jboss/test/selenium/waiting/Wait.Waiting.html" title="class in org.jboss.test.selenium.waiting">Wait.Waiting</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/jboss/test/selenium/waiting/Wait.Waiting.html#dontFail()">dontFail</A></B>()</CODE>
+
+<BR>
+ Sets no failure after waiting timeout.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../org/jboss/test/selenium/waiting/Wait.Waiting.html" title="class in org.jboss.test.selenium.waiting">Wait.Waiting</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/jboss/test/selenium/waiting/Wait.Waiting.html#failWith(java.lang.String)">failWith</A></B>(java.lang.String failMessage)</CODE>
+
+<BR>
+ Sets failure of timeout to AssertionError with given failMessage.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../org/jboss/test/selenium/waiting/Wait.Waiting.html" title="class in org.jboss.test.selenium.waiting">Wait.Waiting</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/jboss/test/selenium/waiting/Wait.Waiting.html#failWith(java.lang.Throwable)">failWith</A></B>(java.lang.Throwable failure)</CODE>
+
+<BR>
+ Sets failure of timeout to given throwable and return it.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../org/jboss/test/selenium/waiting/Wait.Waiting.html" title="class in org.jboss.test.selenium.waiting">Wait.Waiting</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/jboss/test/selenium/waiting/Wait.Waiting.html#interval(long)">interval</A></B>(long interval)</CODE>
+
+<BR>
+ Sets condition testing interval to this instance and return it.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../org/jboss/test/selenium/waiting/Wait.Waiting.html" title="class in org.jboss.test.selenium.waiting">Wait.Waiting</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/jboss/test/selenium/waiting/Wait.Waiting.html#timeout(long)">timeout</A></B>(long timeout)</CODE>
+
+<BR>
+ Sets waiting timeout to this instance and return it.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/jboss/test/selenium/waiting/Wait.Waiting.html#until(org.jboss.test.selenium.waiting.Condition)">until</A></B>(<A HREF="../../../../../org/jboss/test/selenium/waiting/Condition.html" title="interface in org.jboss.test.selenium.waiting">Condition</A> condition)</CODE>
+
+<BR>
+ Stars loop waiting to satisfy condition.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
+<TR ALIGN="right" VALIGN="">
+<TD NOWRAP><FONT SIZE="-1">
+<CODE><T> void</CODE></FONT></TD>
+</TR>
+</TABLE>
+</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/jboss/test/selenium/waiting/Wait.Waiting.html#waitForChange(T, org.jboss.test.selenium.waiting.Retrieve)">waitForChange</A></B>(T oldValue,
+ <A HREF="../../../../../org/jboss/test/selenium/waiting/Retrieve.html" title="interface in org.jboss.test.selenium.waiting">Retrieve</A><T> retrieve)</CODE>
+
+<BR>
+ Waits until Retrieve's implementation doesn't retrieve value other
+ than oldValue.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
+<TR ALIGN="right" VALIGN="">
+<TD NOWRAP><FONT SIZE="-1">
+<CODE><T> T</CODE></FONT></TD>
+</TR>
+</TABLE>
+</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/jboss/test/selenium/waiting/Wait.Waiting.html#waitForChangeAndReturn(T, org.jboss.test.selenium.waiting.Retrieve)">waitForChangeAndReturn</A></B>(T oldValue,
+ <A HREF="../../../../../org/jboss/test/selenium/waiting/Retrieve.html" title="interface in org.jboss.test.selenium.waiting">Retrieve</A><T> retrieve)</CODE>
+
+<BR>
+ Waits until Retrieve's implementation doesn't retrieve value other
+ than oldValue and this new value returns.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/jboss/test/selenium/waiting/Wait.Waiting.html#waitForTimeout()">waitForTimeout</A></B>()</CODE>
+
+<BR>
+ Waits for predefined amount of time.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="interval(long)"><!-- --></A><H3>
+interval</H3>
+<PRE>
+public <A HREF="../../../../../org/jboss/test/selenium/waiting/Wait.Waiting.html" title="class in org.jboss.test.selenium.waiting">Wait.Waiting</A> <B>interval</B>(long interval)</PRE>
+<DL>
+<DD>Sets condition testing interval to this instance and return it.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>interval</CODE> - in miliseconds that will be preset to Waiting
+<DT><B>Returns:</B><DD>Waiting instance initialized with given interval</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="timeout(long)"><!-- --></A><H3>
+timeout</H3>
+<PRE>
+public <A HREF="../../../../../org/jboss/test/selenium/waiting/Wait.Waiting.html" title="class in org.jboss.test.selenium.waiting">Wait.Waiting</A> <B>timeout</B>(long timeout)</PRE>
+<DL>
+<DD>Sets waiting timeout to this instance and return it.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>timeout</CODE> - in miliseconds that will be preset to Waiting
+<DT><B>Returns:</B><DD>Waiting instance configured with given timeout</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="failWith(java.lang.Throwable)"><!-- --></A><H3>
+failWith</H3>
+<PRE>
+public <A HREF="../../../../../org/jboss/test/selenium/waiting/Wait.Waiting.html" title="class in org.jboss.test.selenium.waiting">Wait.Waiting</A> <B>failWith</B>(java.lang.Throwable failure)</PRE>
+<DL>
+<DD>Sets failure of timeout to given throwable and return it.
+
+ If failure is set to null, timeout will not result to failure!
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>failure</CODE> - throwable that will be thrown in case of waiting timeout
+ or null if waiting timeout shouldn't result to failure
+<DT><B>Returns:</B><DD>Waiting instance initialized with given failure</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="failWith(java.lang.String)"><!-- --></A><H3>
+failWith</H3>
+<PRE>
+public <A HREF="../../../../../org/jboss/test/selenium/waiting/Wait.Waiting.html" title="class in org.jboss.test.selenium.waiting">Wait.Waiting</A> <B>failWith</B>(java.lang.String failMessage)</PRE>
+<DL>
+<DD>Sets failure of timeout to AssertionError with given failMessage.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>failMessage</CODE> - message which will be set to thrown AssertionError
+<DT><B>Returns:</B><DD>Waiting instance initialized with failures using
+ AssertionError with given message</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="dontFail()"><!-- --></A><H3>
+dontFail</H3>
+<PRE>
+public <A HREF="../../../../../org/jboss/test/selenium/waiting/Wait.Waiting.html" title="class in org.jboss.test.selenium.waiting">Wait.Waiting</A> <B>dontFail</B>()</PRE>
+<DL>
+<DD>Sets no failure after waiting timeout.
+
+ Waiting timeout with this preset dont result to failure!
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>Waiting instance initialized with no failure</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="until(org.jboss.test.selenium.waiting.Condition)"><!-- --></A><H3>
+until</H3>
+<PRE>
+public void <B>until</B>(<A HREF="../../../../../org/jboss/test/selenium/waiting/Condition.html" title="interface in org.jboss.test.selenium.waiting">Condition</A> condition)</PRE>
+<DL>
+<DD>Stars loop waiting to satisfy condition.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>condition</CODE> - what wait for to be satisfied</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="waitForTimeout()"><!-- --></A><H3>
+waitForTimeout</H3>
+<PRE>
+public void <B>waitForTimeout</B>()</PRE>
+<DL>
+<DD>Waits for predefined amount of time.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="waitForChange(java.lang.Object,org.jboss.test.selenium.waiting.Retrieve)"><!-- --></A><A NAME="waitForChange(T, org.jboss.test.selenium.waiting.Retrieve)"><!-- --></A><H3>
+waitForChange</H3>
+<PRE>
+public <T> void <B>waitForChange</B>(T oldValue,
+ <A HREF="../../../../../org/jboss/test/selenium/waiting/Retrieve.html" title="interface in org.jboss.test.selenium.waiting">Retrieve</A><T> retrieve)</PRE>
+<DL>
+<DD>Waits until Retrieve's implementation doesn't retrieve value other
+ than oldValue.
+<P>
+<DD><DL>
+<DT><B>Type Parameters:</B><DD><CODE>T</CODE> - type of value what we are waiting for change<DT><B>Parameters:</B><DD><CODE>oldValue</CODE> - value that we are waiting for change<DD><CODE>retrieve</CODE> - implementation of retrieving actual value</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="waitForChangeAndReturn(java.lang.Object,org.jboss.test.selenium.waiting.Retrieve)"><!-- --></A><A NAME="waitForChangeAndReturn(T, org.jboss.test.selenium.waiting.Retrieve)"><!-- --></A><H3>
+waitForChangeAndReturn</H3>
+<PRE>
+public <T> T <B>waitForChangeAndReturn</B>(T oldValue,
+ <A HREF="../../../../../org/jboss/test/selenium/waiting/Retrieve.html" title="interface in org.jboss.test.selenium.waiting">Retrieve</A><T> retrieve)</PRE>
+<DL>
+<DD>Waits until Retrieve's implementation doesn't retrieve value other
+ than oldValue and this new value returns.
+<P>
+<DD><DL>
+<DT><B>Type Parameters:</B><DD><CODE>T</CODE> - type of value what we are waiting for change<DT><B>Parameters:</B><DD><CODE>oldValue</CODE> - value that we are waiting for change<DD><CODE>retrieve</CODE> - implementation of retrieving actual value
+<DT><B>Returns:</B><DD>new retrieved value</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/Wait.Waiting.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../org/jboss/test/selenium/waiting/Wait.html" title="class in org.jboss.test.selenium.waiting"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html?org/jboss/test/selenium/waiting/Wait.Waiting.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Wait.Waiting.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+Copyright © 2009. All Rights Reserved.
+</BODY>
+</HTML>
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/waiting/Wait.html
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/waiting/Wait.html (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/waiting/Wait.html 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,627 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_14) on Wed Aug 26 10:58:15 CDT 2009 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+Wait (selenium-testing-lib 1.0-SNAPSHOT API)
+</TITLE>
+
+<META NAME="date" CONTENT="2009-08-26">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Wait (selenium-testing-lib 1.0-SNAPSHOT API)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/Wait.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../org/jboss/test/selenium/waiting/Retrieve.html" title="interface in org.jboss.test.selenium.waiting"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../org/jboss/test/selenium/waiting/Wait.Waiting.html" title="class in org.jboss.test.selenium.waiting"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html?org/jboss/test/selenium/waiting/Wait.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Wait.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: <A HREF="#nested_class_summary">NESTED</A> | <A HREF="#field_summary">FIELD</A> | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.jboss.test.selenium.waiting</FONT>
+<BR>
+Class Wait</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.jboss.test.selenium.waiting.Wait</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>Wait</B><DT>extends java.lang.Object</DL>
+</PRE>
+
+<P>
+<p>
+ Implementation of waiting to satisfy condition.
+ </p>
+
+ <p>
+ This class constructs instances of Waiting by factory methods but
+ provides its functionality (defaulted waiting) by static method until.
+ </p>
+
+ <p>
+ Other factories (getDefault(), timeout(long), interval(long)) serves as simplified way to build new configured
+ instance, which can simple run waiting loop.
+ </p>
+
+ <p>
+ Class is intended to be used like these:
+ </p>
+
+ <ol>
+ <li>
+ <h3>direct waiting loop</h3>
+ <pre>
+ Wait.until(new Condition()) {
+ public boolean isTrue() {
+ return ...;
+ }
+ }
+ </pre>
+ </li>
+
+ <li>
+ <h3>direct waiting loop with parameters</h3>
+ <pre>
+ Wait.interval(100).timeout(3000).until(new Not()) {
+ public boolean not() {
+ return ...;
+ }
+ }
+ </pre>
+ </li>
+
+ <li>
+ <h3>save settings and run configured wait loop</h3>
+ <pre>
+ final String locator1 = "...";
+ final String locator2 = "...";
+
+ ...
+
+ Condition locatorsEqual = new Condition() {
+ public boolean isTrue() {
+ return selenium.equals(locator1, locator2);
+ }
+ };
+
+ Waiting waitResponse = Wait.interval(1000).timeout(30000);
+
+ ...
+
+ waitResponse.until(locatorsEqual); // some usage
+
+ ...
+
+ waitResponse.until(locatorsEqual); // other usage
+ </pre>
+ </li>
+ </ol>
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+ <DD>$Revision$</DD>
+<DT><B>Author:</B></DT>
+ <DD><a href="mailto:lfryc@redhat.com">Lukas Fryc</a></DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+<A NAME="nested_class_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Nested Class Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static class</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/jboss/test/selenium/waiting/Wait.Waiting.html" title="class in org.jboss.test.selenium.waiting">Wait.Waiting</A></B></CODE>
+
+<BR>
+ Class intented to construct by factories in Wait class.</TD>
+</TR>
+</TABLE>
+ <!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static long</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/jboss/test/selenium/waiting/Wait.html#DEFAULT_INTERVAL">DEFAULT_INTERVAL</A></B></CODE>
+
+<BR>
+ Default waiting interval</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static long</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/jboss/test/selenium/waiting/Wait.html#DEFAULT_TIMEOUT">DEFAULT_TIMEOUT</A></B></CODE>
+
+<BR>
+ Default timeout of waiting</TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../../org/jboss/test/selenium/waiting/Wait.Waiting.html" title="class in org.jboss.test.selenium.waiting">Wait.Waiting</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/jboss/test/selenium/waiting/Wait.html#dontFail()">dontFail</A></B>()</CODE>
+
+<BR>
+ Constructs preset instance of waiting (@see Waiting) with no failure.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../../org/jboss/test/selenium/waiting/Wait.Waiting.html" title="class in org.jboss.test.selenium.waiting">Wait.Waiting</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/jboss/test/selenium/waiting/Wait.html#failWith(java.lang.String)">failWith</A></B>(java.lang.String failMessage)</CODE>
+
+<BR>
+ Constructs preset instance of waiting (@see Waiting) with failures
+ initialized to AssertionError with given message.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../../org/jboss/test/selenium/waiting/Wait.Waiting.html" title="class in org.jboss.test.selenium.waiting">Wait.Waiting</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/jboss/test/selenium/waiting/Wait.html#failWith(java.lang.Throwable)">failWith</A></B>(java.lang.Throwable failure)</CODE>
+
+<BR>
+ Constructs preset instance of waiting (@see Waiting) with given throwable
+ failure, which indicates timeout.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../../org/jboss/test/selenium/waiting/Wait.Waiting.html" title="class in org.jboss.test.selenium.waiting">Wait.Waiting</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/jboss/test/selenium/waiting/Wait.html#getDefault()">getDefault</A></B>()</CODE>
+
+<BR>
+ Constructs default preset instance of waiting (@see Waiting).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../../org/jboss/test/selenium/waiting/Wait.Waiting.html" title="class in org.jboss.test.selenium.waiting">Wait.Waiting</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/jboss/test/selenium/waiting/Wait.html#interval(long)">interval</A></B>(long interval)</CODE>
+
+<BR>
+ Constructs preset instance of waiting (@see Waiting) with given interval.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../../org/jboss/test/selenium/waiting/Wait.Waiting.html" title="class in org.jboss.test.selenium.waiting">Wait.Waiting</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/jboss/test/selenium/waiting/Wait.html#timeout(long)">timeout</A></B>(long timeout)</CODE>
+
+<BR>
+ Constructs preset instance of waiting (@see Waiting) with given timeout.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/jboss/test/selenium/waiting/Wait.html#until(org.jboss.test.selenium.waiting.Condition)">until</A></B>(<A HREF="../../../../../org/jboss/test/selenium/waiting/Condition.html" title="interface in org.jboss.test.selenium.waiting">Condition</A> condition)</CODE>
+
+<BR>
+ Stars loop waiting to satisfy condition with default timeout and
+ interval.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/jboss/test/selenium/waiting/Wait.html#waitFor(long)">waitFor</A></B>(long timeoutInMilis)</CODE>
+
+<BR>
+ Will wait for specified amount of time.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
+<TR ALIGN="right" VALIGN="">
+<TD NOWRAP><FONT SIZE="-1">
+<CODE><T> void</CODE></FONT></TD>
+</TR>
+</TABLE>
+</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/jboss/test/selenium/waiting/Wait.html#waitForChange(T, org.jboss.test.selenium.waiting.Retrieve)">waitForChange</A></B>(T oldValue,
+ <A HREF="../../../../../org/jboss/test/selenium/waiting/Retrieve.html" title="interface in org.jboss.test.selenium.waiting">Retrieve</A><T> retrieve)</CODE>
+
+<BR>
+ Waits until Retrieve's implementation doesn't retrieve value other
+ than oldValue.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
+<TR ALIGN="right" VALIGN="">
+<TD NOWRAP><FONT SIZE="-1">
+<CODE><T> T</CODE></FONT></TD>
+</TR>
+</TABLE>
+</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/jboss/test/selenium/waiting/Wait.html#waitForChangeAndReturn(T, org.jboss.test.selenium.waiting.Retrieve)">waitForChangeAndReturn</A></B>(T oldValue,
+ <A HREF="../../../../../org/jboss/test/selenium/waiting/Retrieve.html" title="interface in org.jboss.test.selenium.waiting">Retrieve</A><T> retrieve)</CODE>
+
+<BR>
+ Waits until Retrieve's implementation doesn't retrieve value other
+ than oldValue and this new value returns.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/jboss/test/selenium/waiting/Wait.html#waitForTimeout()">waitForTimeout</A></B>()</CODE>
+
+<BR>
+ Will wait for default amount of time.</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="DEFAULT_INTERVAL"><!-- --></A><H3>
+DEFAULT_INTERVAL</H3>
+<PRE>
+public static final long <B>DEFAULT_INTERVAL</B></PRE>
+<DL>
+<DD>Default waiting interval
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#org.jboss.test.selenium.waiting.Wait.DEFAULT_INTERVAL">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="DEFAULT_TIMEOUT"><!-- --></A><H3>
+DEFAULT_TIMEOUT</H3>
+<PRE>
+public static final long <B>DEFAULT_TIMEOUT</B></PRE>
+<DL>
+<DD>Default timeout of waiting
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#org.jboss.test.selenium.waiting.Wait.DEFAULT_TIMEOUT">Constant Field Values</A></DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="getDefault()"><!-- --></A><H3>
+getDefault</H3>
+<PRE>
+public static <A HREF="../../../../../org/jboss/test/selenium/waiting/Wait.Waiting.html" title="class in org.jboss.test.selenium.waiting">Wait.Waiting</A> <B>getDefault</B>()</PRE>
+<DL>
+<DD>Constructs default preset instance of waiting (@see Waiting).
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>default Waiting instance</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="interval(long)"><!-- --></A><H3>
+interval</H3>
+<PRE>
+public static <A HREF="../../../../../org/jboss/test/selenium/waiting/Wait.Waiting.html" title="class in org.jboss.test.selenium.waiting">Wait.Waiting</A> <B>interval</B>(long interval)</PRE>
+<DL>
+<DD>Constructs preset instance of waiting (@see Waiting) with given interval.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>interval</CODE> - in miliseconds that will be preset to Waiting
+<DT><B>Returns:</B><DD>Waiting instance initialized with given interval</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="timeout(long)"><!-- --></A><H3>
+timeout</H3>
+<PRE>
+public static <A HREF="../../../../../org/jboss/test/selenium/waiting/Wait.Waiting.html" title="class in org.jboss.test.selenium.waiting">Wait.Waiting</A> <B>timeout</B>(long timeout)</PRE>
+<DL>
+<DD>Constructs preset instance of waiting (@see Waiting) with given timeout.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>timeout</CODE> - in miliseconds that will be preset to Waiting
+<DT><B>Returns:</B><DD>Waiting instance initialized with given timeout</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="failWith(java.lang.Throwable)"><!-- --></A><H3>
+failWith</H3>
+<PRE>
+public static <A HREF="../../../../../org/jboss/test/selenium/waiting/Wait.Waiting.html" title="class in org.jboss.test.selenium.waiting">Wait.Waiting</A> <B>failWith</B>(java.lang.Throwable failure)</PRE>
+<DL>
+<DD>Constructs preset instance of waiting (@see Waiting) with given throwable
+ failure, which indicates timeout.
+
+ If failure is set to null, timeout will not result to failure!
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>failure</CODE> - throwable that will be thrown in case of waiting timeout or
+ null if waiting timeout shouldn't result to failure
+<DT><B>Returns:</B><DD>Waiting instance initialized with given failure</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="failWith(java.lang.String)"><!-- --></A><H3>
+failWith</H3>
+<PRE>
+public static <A HREF="../../../../../org/jboss/test/selenium/waiting/Wait.Waiting.html" title="class in org.jboss.test.selenium.waiting">Wait.Waiting</A> <B>failWith</B>(java.lang.String failMessage)</PRE>
+<DL>
+<DD>Constructs preset instance of waiting (@see Waiting) with failures
+ initialized to AssertionError with given message.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>failMessage</CODE> - message which will be set to thrown AssertionError
+<DT><B>Returns:</B><DD>Waiting instance initialized with failures using AssertionError
+ with given message</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="dontFail()"><!-- --></A><H3>
+dontFail</H3>
+<PRE>
+public static <A HREF="../../../../../org/jboss/test/selenium/waiting/Wait.Waiting.html" title="class in org.jboss.test.selenium.waiting">Wait.Waiting</A> <B>dontFail</B>()</PRE>
+<DL>
+<DD>Constructs preset instance of waiting (@see Waiting) with no failure.
+
+ Waiting timeout with this preset dont result to failure!
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>Waiting instance initialized with no failure</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="waitForTimeout()"><!-- --></A><H3>
+waitForTimeout</H3>
+<PRE>
+public static void <B>waitForTimeout</B>()</PRE>
+<DL>
+<DD>Will wait for default amount of time. Default timeout specified in
+ Wait.DEFAULT_TIMEOUT
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="waitForChange(java.lang.Object,org.jboss.test.selenium.waiting.Retrieve)"><!-- --></A><A NAME="waitForChange(T, org.jboss.test.selenium.waiting.Retrieve)"><!-- --></A><H3>
+waitForChange</H3>
+<PRE>
+public static <T> void <B>waitForChange</B>(T oldValue,
+ <A HREF="../../../../../org/jboss/test/selenium/waiting/Retrieve.html" title="interface in org.jboss.test.selenium.waiting">Retrieve</A><T> retrieve)</PRE>
+<DL>
+<DD>Waits until Retrieve's implementation doesn't retrieve value other
+ than oldValue.
+<P>
+<DD><DL>
+<DT><B>Type Parameters:</B><DD><CODE>T</CODE> - type of value what we are waiting for change<DT><B>Parameters:</B><DD><CODE>oldValue</CODE> - value that we are waiting for change<DD><CODE>retrieve</CODE> - implementation of retrieving actual value</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="waitForChangeAndReturn(java.lang.Object,org.jboss.test.selenium.waiting.Retrieve)"><!-- --></A><A NAME="waitForChangeAndReturn(T, org.jboss.test.selenium.waiting.Retrieve)"><!-- --></A><H3>
+waitForChangeAndReturn</H3>
+<PRE>
+public static <T> T <B>waitForChangeAndReturn</B>(T oldValue,
+ <A HREF="../../../../../org/jboss/test/selenium/waiting/Retrieve.html" title="interface in org.jboss.test.selenium.waiting">Retrieve</A><T> retrieve)</PRE>
+<DL>
+<DD>Waits until Retrieve's implementation doesn't retrieve value other
+ than oldValue and this new value returns.
+<P>
+<DD><DL>
+<DT><B>Type Parameters:</B><DD><CODE>T</CODE> - type of value what we are waiting for change<DT><B>Parameters:</B><DD><CODE>oldValue</CODE> - value that we are waiting for change<DD><CODE>retrieve</CODE> - implementation of retrieving actual value
+<DT><B>Returns:</B><DD>new retrieved value</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="waitFor(long)"><!-- --></A><H3>
+waitFor</H3>
+<PRE>
+public static void <B>waitFor</B>(long timeoutInMilis)</PRE>
+<DL>
+<DD>Will wait for specified amount of time.
+
+ Timeout is specified in miliseconds
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>timeoutInMilis</CODE> - time to wait in miliseconds</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="until(org.jboss.test.selenium.waiting.Condition)"><!-- --></A><H3>
+until</H3>
+<PRE>
+public static void <B>until</B>(<A HREF="../../../../../org/jboss/test/selenium/waiting/Condition.html" title="interface in org.jboss.test.selenium.waiting">Condition</A> condition)</PRE>
+<DL>
+<DD>Stars loop waiting to satisfy condition with default timeout and
+ interval.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>condition</CODE> - what wait for to be satisfied</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/Wait.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../org/jboss/test/selenium/waiting/Retrieve.html" title="interface in org.jboss.test.selenium.waiting"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../org/jboss/test/selenium/waiting/Wait.Waiting.html" title="class in org.jboss.test.selenium.waiting"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html?org/jboss/test/selenium/waiting/Wait.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Wait.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: <A HREF="#nested_class_summary">NESTED</A> | <A HREF="#field_summary">FIELD</A> | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+Copyright © 2009. All Rights Reserved.
+</BODY>
+</HTML>
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/waiting/class-use/Condition.html
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/waiting/class-use/Condition.html (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/waiting/class-use/Condition.html 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,206 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_14) on Wed Aug 26 10:58:15 CDT 2009 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+Uses of Interface org.jboss.test.selenium.waiting.Condition (selenium-testing-lib 1.0-SNAPSHOT API)
+</TITLE>
+
+<META NAME="date" CONTENT="2009-08-26">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Uses of Interface org.jboss.test.selenium.waiting.Condition (selenium-testing-lib 1.0-SNAPSHOT API)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../org/jboss/test/selenium/waiting/Condition.html" title="interface in org.jboss.test.selenium.waiting"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../index.html?org/jboss/test/selenium/waiting//class-useCondition.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Condition.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Interface<br>org.jboss.test.selenium.waiting.Condition</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../../org/jboss/test/selenium/waiting/Condition.html" title="interface in org.jboss.test.selenium.waiting">Condition</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.jboss.test.selenium.waiting"><B>org.jboss.test.selenium.waiting</B></A></TD>
+<TD> </TD>
+</TR>
+</TABLE>
+
+<P>
+<A NAME="org.jboss.test.selenium.waiting"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../../org/jboss/test/selenium/waiting/Condition.html" title="interface in org.jboss.test.selenium.waiting">Condition</A> in <A HREF="../../../../../../org/jboss/test/selenium/waiting/package-summary.html">org.jboss.test.selenium.waiting</A></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Classes in <A HREF="../../../../../../org/jboss/test/selenium/waiting/package-summary.html">org.jboss.test.selenium.waiting</A> that implement <A HREF="../../../../../../org/jboss/test/selenium/waiting/Condition.html" title="interface in org.jboss.test.selenium.waiting">Condition</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> class</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/jboss/test/selenium/waiting/Not.html" title="class in org.jboss.test.selenium.waiting">Not</A></B></CODE>
+
+<BR>
+ Opposite to Condition - you specify when desired conditions is not satisfied.</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../org/jboss/test/selenium/waiting/package-summary.html">org.jboss.test.selenium.waiting</A> with parameters of type <A HREF="../../../../../../org/jboss/test/selenium/waiting/Condition.html" title="interface in org.jboss.test.selenium.waiting">Condition</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static void</CODE></FONT></TD>
+<TD><CODE><B>Wait.</B><B><A HREF="../../../../../../org/jboss/test/selenium/waiting/Wait.html#until(org.jboss.test.selenium.waiting.Condition)">until</A></B>(<A HREF="../../../../../../org/jboss/test/selenium/waiting/Condition.html" title="interface in org.jboss.test.selenium.waiting">Condition</A> condition)</CODE>
+
+<BR>
+ Stars loop waiting to satisfy condition with default timeout and
+ interval.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B>Wait.Waiting.</B><B><A HREF="../../../../../../org/jboss/test/selenium/waiting/Wait.Waiting.html#until(org.jboss.test.selenium.waiting.Condition)">until</A></B>(<A HREF="../../../../../../org/jboss/test/selenium/waiting/Condition.html" title="interface in org.jboss.test.selenium.waiting">Condition</A> condition)</CODE>
+
+<BR>
+ Stars loop waiting to satisfy condition.</TD>
+</TR>
+</TABLE>
+
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../org/jboss/test/selenium/waiting/Condition.html" title="interface in org.jboss.test.selenium.waiting"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../index.html?org/jboss/test/selenium/waiting//class-useCondition.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Condition.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+Copyright © 2009. All Rights Reserved.
+</BODY>
+</HTML>
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/waiting/class-use/Not.html
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/waiting/class-use/Not.html (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/waiting/class-use/Not.html 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,145 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_14) on Wed Aug 26 10:58:15 CDT 2009 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+Uses of Class org.jboss.test.selenium.waiting.Not (selenium-testing-lib 1.0-SNAPSHOT API)
+</TITLE>
+
+<META NAME="date" CONTENT="2009-08-26">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Uses of Class org.jboss.test.selenium.waiting.Not (selenium-testing-lib 1.0-SNAPSHOT API)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../org/jboss/test/selenium/waiting/Not.html" title="class in org.jboss.test.selenium.waiting"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../index.html?org/jboss/test/selenium/waiting//class-useNot.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Not.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.jboss.test.selenium.waiting.Not</B></H2>
+</CENTER>
+No usage of org.jboss.test.selenium.waiting.Not
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../org/jboss/test/selenium/waiting/Not.html" title="class in org.jboss.test.selenium.waiting"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../index.html?org/jboss/test/selenium/waiting//class-useNot.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Not.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+Copyright © 2009. All Rights Reserved.
+</BODY>
+</HTML>
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/waiting/class-use/Retrieve.html
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/waiting/class-use/Retrieve.html (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/waiting/class-use/Retrieve.html 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,241 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_14) on Wed Aug 26 10:58:15 CDT 2009 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+Uses of Interface org.jboss.test.selenium.waiting.Retrieve (selenium-testing-lib 1.0-SNAPSHOT API)
+</TITLE>
+
+<META NAME="date" CONTENT="2009-08-26">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Uses of Interface org.jboss.test.selenium.waiting.Retrieve (selenium-testing-lib 1.0-SNAPSHOT API)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../org/jboss/test/selenium/waiting/Retrieve.html" title="interface in org.jboss.test.selenium.waiting"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../index.html?org/jboss/test/selenium/waiting//class-useRetrieve.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Retrieve.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Interface<br>org.jboss.test.selenium.waiting.Retrieve</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../../org/jboss/test/selenium/waiting/Retrieve.html" title="interface in org.jboss.test.selenium.waiting">Retrieve</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.jboss.test.selenium.waiting"><B>org.jboss.test.selenium.waiting</B></A></TD>
+<TD> </TD>
+</TR>
+</TABLE>
+
+<P>
+<A NAME="org.jboss.test.selenium.waiting"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../../org/jboss/test/selenium/waiting/Retrieve.html" title="interface in org.jboss.test.selenium.waiting">Retrieve</A> in <A HREF="../../../../../../org/jboss/test/selenium/waiting/package-summary.html">org.jboss.test.selenium.waiting</A></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../org/jboss/test/selenium/waiting/package-summary.html">org.jboss.test.selenium.waiting</A> with parameters of type <A HREF="../../../../../../org/jboss/test/selenium/waiting/Retrieve.html" title="interface in org.jboss.test.selenium.waiting">Retrieve</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
+<TR ALIGN="right" VALIGN="">
+<TD NOWRAP><FONT SIZE="-1">
+<CODE><T> void</CODE></FONT></TD>
+</TR>
+</TABLE>
+</CODE></FONT></TD>
+<TD><CODE><B>Wait.</B><B><A HREF="../../../../../../org/jboss/test/selenium/waiting/Wait.html#waitForChange(T, org.jboss.test.selenium.waiting.Retrieve)">waitForChange</A></B>(T oldValue,
+ <A HREF="../../../../../../org/jboss/test/selenium/waiting/Retrieve.html" title="interface in org.jboss.test.selenium.waiting">Retrieve</A><T> retrieve)</CODE>
+
+<BR>
+ Waits until Retrieve's implementation doesn't retrieve value other
+ than oldValue.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
+<TR ALIGN="right" VALIGN="">
+<TD NOWRAP><FONT SIZE="-1">
+<CODE><T> void</CODE></FONT></TD>
+</TR>
+</TABLE>
+</CODE></FONT></TD>
+<TD><CODE><B>Wait.Waiting.</B><B><A HREF="../../../../../../org/jboss/test/selenium/waiting/Wait.Waiting.html#waitForChange(T, org.jboss.test.selenium.waiting.Retrieve)">waitForChange</A></B>(T oldValue,
+ <A HREF="../../../../../../org/jboss/test/selenium/waiting/Retrieve.html" title="interface in org.jboss.test.selenium.waiting">Retrieve</A><T> retrieve)</CODE>
+
+<BR>
+ Waits until Retrieve's implementation doesn't retrieve value other
+ than oldValue.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
+<TR ALIGN="right" VALIGN="">
+<TD NOWRAP><FONT SIZE="-1">
+<CODE><T> T</CODE></FONT></TD>
+</TR>
+</TABLE>
+</CODE></FONT></TD>
+<TD><CODE><B>Wait.</B><B><A HREF="../../../../../../org/jboss/test/selenium/waiting/Wait.html#waitForChangeAndReturn(T, org.jboss.test.selenium.waiting.Retrieve)">waitForChangeAndReturn</A></B>(T oldValue,
+ <A HREF="../../../../../../org/jboss/test/selenium/waiting/Retrieve.html" title="interface in org.jboss.test.selenium.waiting">Retrieve</A><T> retrieve)</CODE>
+
+<BR>
+ Waits until Retrieve's implementation doesn't retrieve value other
+ than oldValue and this new value returns.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
+<TR ALIGN="right" VALIGN="">
+<TD NOWRAP><FONT SIZE="-1">
+<CODE><T> T</CODE></FONT></TD>
+</TR>
+</TABLE>
+</CODE></FONT></TD>
+<TD><CODE><B>Wait.Waiting.</B><B><A HREF="../../../../../../org/jboss/test/selenium/waiting/Wait.Waiting.html#waitForChangeAndReturn(T, org.jboss.test.selenium.waiting.Retrieve)">waitForChangeAndReturn</A></B>(T oldValue,
+ <A HREF="../../../../../../org/jboss/test/selenium/waiting/Retrieve.html" title="interface in org.jboss.test.selenium.waiting">Retrieve</A><T> retrieve)</CODE>
+
+<BR>
+ Waits until Retrieve's implementation doesn't retrieve value other
+ than oldValue and this new value returns.</TD>
+</TR>
+</TABLE>
+
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../org/jboss/test/selenium/waiting/Retrieve.html" title="interface in org.jboss.test.selenium.waiting"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../index.html?org/jboss/test/selenium/waiting//class-useRetrieve.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Retrieve.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+Copyright © 2009. All Rights Reserved.
+</BODY>
+</HTML>
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/waiting/class-use/Wait.Waiting.html
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/waiting/class-use/Wait.Waiting.html (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/waiting/class-use/Wait.Waiting.html 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,263 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_14) on Wed Aug 26 10:58:15 CDT 2009 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+Uses of Class org.jboss.test.selenium.waiting.Wait.Waiting (selenium-testing-lib 1.0-SNAPSHOT API)
+</TITLE>
+
+<META NAME="date" CONTENT="2009-08-26">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Uses of Class org.jboss.test.selenium.waiting.Wait.Waiting (selenium-testing-lib 1.0-SNAPSHOT API)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../org/jboss/test/selenium/waiting/Wait.Waiting.html" title="class in org.jboss.test.selenium.waiting"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../index.html?org/jboss/test/selenium/waiting//class-useWait.Waiting.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Wait.Waiting.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.jboss.test.selenium.waiting.Wait.Waiting</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../../org/jboss/test/selenium/waiting/Wait.Waiting.html" title="class in org.jboss.test.selenium.waiting">Wait.Waiting</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.jboss.test.selenium.waiting"><B>org.jboss.test.selenium.waiting</B></A></TD>
+<TD> </TD>
+</TR>
+</TABLE>
+
+<P>
+<A NAME="org.jboss.test.selenium.waiting"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../../org/jboss/test/selenium/waiting/Wait.Waiting.html" title="class in org.jboss.test.selenium.waiting">Wait.Waiting</A> in <A HREF="../../../../../../org/jboss/test/selenium/waiting/package-summary.html">org.jboss.test.selenium.waiting</A></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../org/jboss/test/selenium/waiting/package-summary.html">org.jboss.test.selenium.waiting</A> that return <A HREF="../../../../../../org/jboss/test/selenium/waiting/Wait.Waiting.html" title="class in org.jboss.test.selenium.waiting">Wait.Waiting</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../../../org/jboss/test/selenium/waiting/Wait.Waiting.html" title="class in org.jboss.test.selenium.waiting">Wait.Waiting</A></CODE></FONT></TD>
+<TD><CODE><B>Wait.</B><B><A HREF="../../../../../../org/jboss/test/selenium/waiting/Wait.html#dontFail()">dontFail</A></B>()</CODE>
+
+<BR>
+ Constructs preset instance of waiting (@see Waiting) with no failure.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../../org/jboss/test/selenium/waiting/Wait.Waiting.html" title="class in org.jboss.test.selenium.waiting">Wait.Waiting</A></CODE></FONT></TD>
+<TD><CODE><B>Wait.Waiting.</B><B><A HREF="../../../../../../org/jboss/test/selenium/waiting/Wait.Waiting.html#dontFail()">dontFail</A></B>()</CODE>
+
+<BR>
+ Sets no failure after waiting timeout.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../../../org/jboss/test/selenium/waiting/Wait.Waiting.html" title="class in org.jboss.test.selenium.waiting">Wait.Waiting</A></CODE></FONT></TD>
+<TD><CODE><B>Wait.</B><B><A HREF="../../../../../../org/jboss/test/selenium/waiting/Wait.html#failWith(java.lang.String)">failWith</A></B>(java.lang.String failMessage)</CODE>
+
+<BR>
+ Constructs preset instance of waiting (@see Waiting) with failures
+ initialized to AssertionError with given message.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../../org/jboss/test/selenium/waiting/Wait.Waiting.html" title="class in org.jboss.test.selenium.waiting">Wait.Waiting</A></CODE></FONT></TD>
+<TD><CODE><B>Wait.Waiting.</B><B><A HREF="../../../../../../org/jboss/test/selenium/waiting/Wait.Waiting.html#failWith(java.lang.String)">failWith</A></B>(java.lang.String failMessage)</CODE>
+
+<BR>
+ Sets failure of timeout to AssertionError with given failMessage.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../../../org/jboss/test/selenium/waiting/Wait.Waiting.html" title="class in org.jboss.test.selenium.waiting">Wait.Waiting</A></CODE></FONT></TD>
+<TD><CODE><B>Wait.</B><B><A HREF="../../../../../../org/jboss/test/selenium/waiting/Wait.html#failWith(java.lang.Throwable)">failWith</A></B>(java.lang.Throwable failure)</CODE>
+
+<BR>
+ Constructs preset instance of waiting (@see Waiting) with given throwable
+ failure, which indicates timeout.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../../org/jboss/test/selenium/waiting/Wait.Waiting.html" title="class in org.jboss.test.selenium.waiting">Wait.Waiting</A></CODE></FONT></TD>
+<TD><CODE><B>Wait.Waiting.</B><B><A HREF="../../../../../../org/jboss/test/selenium/waiting/Wait.Waiting.html#failWith(java.lang.Throwable)">failWith</A></B>(java.lang.Throwable failure)</CODE>
+
+<BR>
+ Sets failure of timeout to given throwable and return it.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../../../org/jboss/test/selenium/waiting/Wait.Waiting.html" title="class in org.jboss.test.selenium.waiting">Wait.Waiting</A></CODE></FONT></TD>
+<TD><CODE><B>Wait.</B><B><A HREF="../../../../../../org/jboss/test/selenium/waiting/Wait.html#getDefault()">getDefault</A></B>()</CODE>
+
+<BR>
+ Constructs default preset instance of waiting (@see Waiting).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../../../org/jboss/test/selenium/waiting/Wait.Waiting.html" title="class in org.jboss.test.selenium.waiting">Wait.Waiting</A></CODE></FONT></TD>
+<TD><CODE><B>Wait.</B><B><A HREF="../../../../../../org/jboss/test/selenium/waiting/Wait.html#interval(long)">interval</A></B>(long interval)</CODE>
+
+<BR>
+ Constructs preset instance of waiting (@see Waiting) with given interval.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../../org/jboss/test/selenium/waiting/Wait.Waiting.html" title="class in org.jboss.test.selenium.waiting">Wait.Waiting</A></CODE></FONT></TD>
+<TD><CODE><B>Wait.Waiting.</B><B><A HREF="../../../../../../org/jboss/test/selenium/waiting/Wait.Waiting.html#interval(long)">interval</A></B>(long interval)</CODE>
+
+<BR>
+ Sets condition testing interval to this instance and return it.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static <A HREF="../../../../../../org/jboss/test/selenium/waiting/Wait.Waiting.html" title="class in org.jboss.test.selenium.waiting">Wait.Waiting</A></CODE></FONT></TD>
+<TD><CODE><B>Wait.</B><B><A HREF="../../../../../../org/jboss/test/selenium/waiting/Wait.html#timeout(long)">timeout</A></B>(long timeout)</CODE>
+
+<BR>
+ Constructs preset instance of waiting (@see Waiting) with given timeout.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../../../../org/jboss/test/selenium/waiting/Wait.Waiting.html" title="class in org.jboss.test.selenium.waiting">Wait.Waiting</A></CODE></FONT></TD>
+<TD><CODE><B>Wait.Waiting.</B><B><A HREF="../../../../../../org/jboss/test/selenium/waiting/Wait.Waiting.html#timeout(long)">timeout</A></B>(long timeout)</CODE>
+
+<BR>
+ Sets waiting timeout to this instance and return it.</TD>
+</TR>
+</TABLE>
+
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../org/jboss/test/selenium/waiting/Wait.Waiting.html" title="class in org.jboss.test.selenium.waiting"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../index.html?org/jboss/test/selenium/waiting//class-useWait.Waiting.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Wait.Waiting.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+Copyright © 2009. All Rights Reserved.
+</BODY>
+</HTML>
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/waiting/class-use/Wait.html
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/waiting/class-use/Wait.html (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/waiting/class-use/Wait.html 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,145 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_14) on Wed Aug 26 10:58:15 CDT 2009 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+Uses of Class org.jboss.test.selenium.waiting.Wait (selenium-testing-lib 1.0-SNAPSHOT API)
+</TITLE>
+
+<META NAME="date" CONTENT="2009-08-26">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Uses of Class org.jboss.test.selenium.waiting.Wait (selenium-testing-lib 1.0-SNAPSHOT API)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../org/jboss/test/selenium/waiting/Wait.html" title="class in org.jboss.test.selenium.waiting"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../index.html?org/jboss/test/selenium/waiting//class-useWait.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Wait.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.jboss.test.selenium.waiting.Wait</B></H2>
+</CENTER>
+No usage of org.jboss.test.selenium.waiting.Wait
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../org/jboss/test/selenium/waiting/Wait.html" title="class in org.jboss.test.selenium.waiting"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../index.html?org/jboss/test/selenium/waiting//class-useWait.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="Wait.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+Copyright © 2009. All Rights Reserved.
+</BODY>
+</HTML>
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/waiting/package-frame.html
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/waiting/package-frame.html (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/waiting/package-frame.html 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,50 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_14) on Wed Aug 26 10:58:15 CDT 2009 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+org.jboss.test.selenium.waiting (selenium-testing-lib 1.0-SNAPSHOT API)
+</TITLE>
+
+<META NAME="date" CONTENT="2009-08-26">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../../org/jboss/test/selenium/waiting/package-summary.html" target="classFrame">org.jboss.test.selenium.waiting</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Interfaces</FONT>
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="Condition.html" title="interface in org.jboss.test.selenium.waiting" target="classFrame"><I>Condition</I></A>
+<BR>
+<A HREF="Retrieve.html" title="interface in org.jboss.test.selenium.waiting" target="classFrame"><I>Retrieve</I></A></FONT></TD>
+</TR>
+</TABLE>
+
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="Not.html" title="class in org.jboss.test.selenium.waiting" target="classFrame">Not</A>
+<BR>
+<A HREF="Wait.html" title="class in org.jboss.test.selenium.waiting" target="classFrame">Wait</A>
+<BR>
+<A HREF="Wait.Waiting.html" title="class in org.jboss.test.selenium.waiting" target="classFrame">Wait.Waiting</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/waiting/package-summary.html
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/waiting/package-summary.html (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/waiting/package-summary.html 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,185 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_14) on Wed Aug 26 10:58:15 CDT 2009 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+org.jboss.test.selenium.waiting (selenium-testing-lib 1.0-SNAPSHOT API)
+</TITLE>
+
+<META NAME="date" CONTENT="2009-08-26">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="org.jboss.test.selenium.waiting (selenium-testing-lib 1.0-SNAPSHOT API)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../org/jboss/test/selenium/utils/array/package-summary.html"><B>PREV PACKAGE</B></A>
+ NEXT PACKAGE</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html?org/jboss/test/selenium/waiting/package-summary.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package org.jboss.test.selenium.waiting
+</H2>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Interface Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../org/jboss/test/selenium/waiting/Condition.html" title="interface in org.jboss.test.selenium.waiting">Condition</A></B></TD>
+<TD>Specifies when condition will be true.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../org/jboss/test/selenium/waiting/Retrieve.html" title="interface in org.jboss.test.selenium.waiting">Retrieve<T></A></B></TD>
+<TD>Implementing this method you get implementation of retrieving typed values from some source.</TD>
+</TR>
+</TABLE>
+
+
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../org/jboss/test/selenium/waiting/Not.html" title="class in org.jboss.test.selenium.waiting">Not</A></B></TD>
+<TD>Opposite to Condition - you specify when desired conditions is not satisfied.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../org/jboss/test/selenium/waiting/Wait.html" title="class in org.jboss.test.selenium.waiting">Wait</A></B></TD>
+<TD>
+ Implementation of waiting to satisfy condition.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../org/jboss/test/selenium/waiting/Wait.Waiting.html" title="class in org.jboss.test.selenium.waiting">Wait.Waiting</A></B></TD>
+<TD>Class intented to construct by factories in Wait class.</TD>
+</TR>
+</TABLE>
+
+
+<P>
+<DL>
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../org/jboss/test/selenium/utils/array/package-summary.html"><B>PREV PACKAGE</B></A>
+ NEXT PACKAGE</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html?org/jboss/test/selenium/waiting/package-summary.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+Copyright © 2009. All Rights Reserved.
+</BODY>
+</HTML>
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/waiting/package-tree.html
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/waiting/package-tree.html (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/waiting/package-tree.html 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,160 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_14) on Wed Aug 26 10:58:15 CDT 2009 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+org.jboss.test.selenium.waiting Class Hierarchy (selenium-testing-lib 1.0-SNAPSHOT API)
+</TITLE>
+
+<META NAME="date" CONTENT="2009-08-26">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="org.jboss.test.selenium.waiting Class Hierarchy (selenium-testing-lib 1.0-SNAPSHOT API)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Use</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../org/jboss/test/selenium/utils/array/package-tree.html"><B>PREV</B></A>
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html?org/jboss/test/selenium/waiting/package-tree.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package org.jboss.test.selenium.waiting
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">java.lang.Object<UL>
+<LI TYPE="circle">org.jboss.test.selenium.waiting.<A HREF="../../../../../org/jboss/test/selenium/waiting/Not.html" title="class in org.jboss.test.selenium.waiting"><B>Not</B></A> (implements org.jboss.test.selenium.waiting.<A HREF="../../../../../org/jboss/test/selenium/waiting/Condition.html" title="interface in org.jboss.test.selenium.waiting">Condition</A>)
+<LI TYPE="circle">org.jboss.test.selenium.waiting.<A HREF="../../../../../org/jboss/test/selenium/waiting/Wait.html" title="class in org.jboss.test.selenium.waiting"><B>Wait</B></A><LI TYPE="circle">org.jboss.test.selenium.waiting.<A HREF="../../../../../org/jboss/test/selenium/waiting/Wait.Waiting.html" title="class in org.jboss.test.selenium.waiting"><B>Wait.Waiting</B></A></UL>
+</UL>
+<H2>
+Interface Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">org.jboss.test.selenium.waiting.<A HREF="../../../../../org/jboss/test/selenium/waiting/Condition.html" title="interface in org.jboss.test.selenium.waiting"><B>Condition</B></A><LI TYPE="circle">org.jboss.test.selenium.waiting.<A HREF="../../../../../org/jboss/test/selenium/waiting/Retrieve.html" title="interface in org.jboss.test.selenium.waiting"><B>Retrieve</B></A><T></UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Use</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../org/jboss/test/selenium/utils/array/package-tree.html"><B>PREV</B></A>
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html?org/jboss/test/selenium/waiting/package-tree.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+Copyright © 2009. All Rights Reserved.
+</BODY>
+</HTML>
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/waiting/package-use.html
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/waiting/package-use.html (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/org/jboss/test/selenium/waiting/package-use.html 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,183 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_14) on Wed Aug 26 10:58:15 CDT 2009 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+Uses of Package org.jboss.test.selenium.waiting (selenium-testing-lib 1.0-SNAPSHOT API)
+</TITLE>
+
+<META NAME="date" CONTENT="2009-08-26">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Uses of Package org.jboss.test.selenium.waiting (selenium-testing-lib 1.0-SNAPSHOT API)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html?org/jboss/test/selenium/waiting/package-use.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Package<br>org.jboss.test.selenium.waiting</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../org/jboss/test/selenium/waiting/package-summary.html">org.jboss.test.selenium.waiting</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.jboss.test.selenium.waiting"><B>org.jboss.test.selenium.waiting</B></A></TD>
+<TD> </TD>
+</TR>
+</TABLE>
+
+<P>
+<A NAME="org.jboss.test.selenium.waiting"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Classes in <A HREF="../../../../../org/jboss/test/selenium/waiting/package-summary.html">org.jboss.test.selenium.waiting</A> used by <A HREF="../../../../../org/jboss/test/selenium/waiting/package-summary.html">org.jboss.test.selenium.waiting</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../../org/jboss/test/selenium/waiting/class-use/Condition.html#org.jboss.test.selenium.waiting"><B>Condition</B></A></B>
+
+<BR>
+ Specifies when condition will be true.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../../org/jboss/test/selenium/waiting/class-use/Retrieve.html#org.jboss.test.selenium.waiting"><B>Retrieve</B></A></B>
+
+<BR>
+ Implementing this method you get implementation of retrieving typed values from some source.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../../org/jboss/test/selenium/waiting/class-use/Wait.Waiting.html#org.jboss.test.selenium.waiting"><B>Wait.Waiting</B></A></B>
+
+<BR>
+ Class intented to construct by factories in Wait class.</TD>
+</TR>
+</TABLE>
+
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html?org/jboss/test/selenium/waiting/package-use.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+Copyright © 2009. All Rights Reserved.
+</BODY>
+</HTML>
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/overview-frame.html
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/overview-frame.html (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/overview-frame.html 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,53 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_14) on Wed Aug 26 10:58:15 CDT 2009 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+Overview List (selenium-testing-lib 1.0-SNAPSHOT API)
+</TITLE>
+
+<META NAME="date" CONTENT="2009-08-26">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TH ALIGN="left" NOWRAP><FONT size="+1" CLASS="FrameTitleFont">
+<B></B></FONT></TH>
+</TR>
+</TABLE>
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="allclasses-frame.html" target="packageFrame">All Classes</A></FONT>
+<P>
+<FONT size="+1" CLASS="FrameHeadingFont">
+Packages</FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/jboss/test/selenium/package-frame.html" target="packageFrame">org.jboss.test.selenium</A></FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/jboss/test/selenium/actions/package-frame.html" target="packageFrame">org.jboss.test.selenium.actions</A></FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/jboss/test/selenium/dom/package-frame.html" target="packageFrame">org.jboss.test.selenium.dom</A></FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/jboss/test/selenium/utils/package-frame.html" target="packageFrame">org.jboss.test.selenium.utils</A></FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/jboss/test/selenium/utils/array/package-frame.html" target="packageFrame">org.jboss.test.selenium.utils.array</A></FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/jboss/test/selenium/waiting/package-frame.html" target="packageFrame">org.jboss.test.selenium.waiting</A></FONT>
+<BR>
+</TD>
+</TR>
+</TABLE>
+
+<P>
+
+</BODY>
+</HTML>
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/overview-summary.html
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/overview-summary.html (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/overview-summary.html 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,177 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_14) on Wed Aug 26 10:58:15 CDT 2009 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+Overview (selenium-testing-lib 1.0-SNAPSHOT API)
+</TITLE>
+
+<META NAME="date" CONTENT="2009-08-26">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Overview (selenium-testing-lib 1.0-SNAPSHOT API)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Overview</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Use</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html?overview-summary.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="overview-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H1>
+selenium-testing-lib 1.0-SNAPSHOT API
+</H1>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Packages</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="org/jboss/test/selenium/package-summary.html">org.jboss.test.selenium</A></B></TD>
+<TD> </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="org/jboss/test/selenium/actions/package-summary.html">org.jboss.test.selenium.actions</A></B></TD>
+<TD> </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="org/jboss/test/selenium/dom/package-summary.html">org.jboss.test.selenium.dom</A></B></TD>
+<TD> </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="org/jboss/test/selenium/utils/package-summary.html">org.jboss.test.selenium.utils</A></B></TD>
+<TD> </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="org/jboss/test/selenium/utils/array/package-summary.html">org.jboss.test.selenium.utils.array</A></B></TD>
+<TD> </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="org/jboss/test/selenium/waiting/package-summary.html">org.jboss.test.selenium.waiting</A></B></TD>
+<TD> </TD>
+</TR>
+</TABLE>
+
+<P>
+ <HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Overview</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Use</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html?overview-summary.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="overview-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+Copyright © 2009. All Rights Reserved.
+</BODY>
+</HTML>
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/overview-tree.html
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/overview-tree.html (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/overview-tree.html 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,159 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0_14) on Wed Aug 26 10:58:15 CDT 2009 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+Class Hierarchy (selenium-testing-lib 1.0-SNAPSHOT API)
+</TITLE>
+
+<META NAME="date" CONTENT="2009-08-26">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Class Hierarchy (selenium-testing-lib 1.0-SNAPSHOT API)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Use</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html?overview-tree.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="overview-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For All Packages</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="org/jboss/test/selenium/package-tree.html">org.jboss.test.selenium</A>, <A HREF="org/jboss/test/selenium/actions/package-tree.html">org.jboss.test.selenium.actions</A>, <A HREF="org/jboss/test/selenium/dom/package-tree.html">org.jboss.test.selenium.dom</A>, <A HREF="org/jboss/test/selenium/utils/package-tree.html">org.jboss.test.selenium.utils</A>, <A HREF="org/jboss/test/selenium/utils/array/package-tree.html">org.jboss.test.selenium.utils.array</A>, <A HREF="org/jboss/test/selenium/waiting/package-tree.html">org.jboss.test.selenium.waiting</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">java.lang.Object<UL>
+<LI TYPE="circle">org.jboss.test.selenium.<A HREF="org/jboss/test/selenium/AbstractSeleniumTestCase.html" title="class in org.jboss.test.selenium"><B>AbstractSeleniumTestCase</B></A><LI TYPE="circle">org.jboss.test.selenium.utils.array.<A HREF="org/jboss/test/selenium/utils/array/ArrayTransform.html" title="class in org.jboss.test.selenium.utils.array"><B>ArrayTransform</B></A><S,T><LI TYPE="circle">org.jboss.test.selenium.actions.<A HREF="org/jboss/test/selenium/actions/Drag.html" title="class in org.jboss.test.selenium.actions"><B>Drag</B></A><LI TYPE="circle">org.jboss.test.selenium.dom.<A HREF="org/jboss/test/selenium/dom/Event.html" title="class in org.jboss.test.selenium.dom"><B>Event</B></A><LI TYPE="circle">org.jboss.test.selenium.waiting.<A HREF="org/jboss/test/selenium/waiting/Not.html" title="class in org.jboss.test.selenium.waiting"><B>Not</B></A> (implements org.jboss.test.selenium.waiting.<A HREF="org/jboss/test/selenium/waiting/Condition.html" title="in!
terface in org.jboss.test.selenium.waiting">Condition</A>)
+<LI TYPE="circle">org.jboss.test.selenium.utils.<A HREF="org/jboss/test/selenium/utils/URLUtils.html" title="class in org.jboss.test.selenium.utils"><B>URLUtils</B></A><LI TYPE="circle">org.jboss.test.selenium.waiting.<A HREF="org/jboss/test/selenium/waiting/Wait.html" title="class in org.jboss.test.selenium.waiting"><B>Wait</B></A><LI TYPE="circle">org.jboss.test.selenium.waiting.<A HREF="org/jboss/test/selenium/waiting/Wait.Waiting.html" title="class in org.jboss.test.selenium.waiting"><B>Wait.Waiting</B></A></UL>
+</UL>
+<H2>
+Interface Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">org.jboss.test.selenium.waiting.<A HREF="org/jboss/test/selenium/waiting/Condition.html" title="interface in org.jboss.test.selenium.waiting"><B>Condition</B></A><LI TYPE="circle">org.jboss.test.selenium.waiting.<A HREF="org/jboss/test/selenium/waiting/Retrieve.html" title="interface in org.jboss.test.selenium.waiting"><B>Retrieve</B></A><T></UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Use</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html?overview-tree.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="overview-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+Copyright © 2009. All Rights Reserved.
+</BODY>
+</HTML>
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/package-list
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/package-list (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/package-list 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,6 @@
+org.jboss.test.selenium
+org.jboss.test.selenium.actions
+org.jboss.test.selenium.dom
+org.jboss.test.selenium.utils
+org.jboss.test.selenium.utils.array
+org.jboss.test.selenium.waiting
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/resources/inherit.gif
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/resources/inherit.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/stylesheet.css
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/stylesheet.css (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/target/apidocs/stylesheet.css 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,29 @@
+/* Javadoc style sheet */
+
+/* Define colors, fonts and other style attributes here to override the defaults */
+
+/* Page background color */
+body { background-color: #FFFFFF; color:#000000 }
+
+/* Headings */
+h1 { font-size: 145% }
+
+/* Table colors */
+.TableHeadingColor { background: #CCCCFF; color:#000000 } /* Dark mauve */
+.TableSubHeadingColor { background: #EEEEFF; color:#000000 } /* Light mauve */
+.TableRowColor { background: #FFFFFF; color:#000000 } /* White */
+
+/* Font used in left-hand frame lists */
+.FrameTitleFont { font-size: 100%; font-family: Helvetica, Arial, sans-serif; color:#000000 }
+.FrameHeadingFont { font-size: 90%; font-family: Helvetica, Arial, sans-serif; color:#000000 }
+.FrameItemFont { font-size: 90%; font-family: Helvetica, Arial, sans-serif; color:#000000 }
+
+/* Navigation bar fonts and colors */
+.NavBarCell1 { background-color:#EEEEFF; color:#000000} /* Light mauve */
+.NavBarCell1Rev { background-color:#00008B; color:#FFFFFF} /* Dark Blue */
+.NavBarFont1 { font-family: Arial, Helvetica, sans-serif; color:#000000;color:#000000;}
+.NavBarFont1Rev { font-family: Arial, Helvetica, sans-serif; color:#FFFFFF;color:#FFFFFF;}
+
+.NavBarCell2 { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF; color:#000000}
+.NavBarCell3 { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF; color:#000000}
+
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/classes/jbossqa-extensions.js
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/target/classes/jbossqa-extensions.js (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/target/classes/jbossqa-extensions.js 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,186 @@
+Selenium.prototype.findTableRow = function(locator, searchText, searchCol){
+ var table = this.browserbot.findElement(locator);
+
+ var rowObj = table.rows;
+ var minCol = 0;
+
+ for (rowNo=0; rowNo<rowObj.length; rowNo++) {
+ // No need to read too short rows
+ var maxCol = rowObj[rowNo].cells.length;
+
+ if (maxCol <= searchCol || maxCol <= minCol)
+ continue;
+
+ searchHtml = rowObj[rowNo].cells[searchCol].innerHTML;
+ searchHtml = searchHtml.replace(/(<([^>]+)>)/ig,"");
+
+ //alert(searchHtml);
+ //if (searchHtml.replace(/\n/g, " ").match(/<TD.*>.*<\/TD>/i))
+ // continue;
+
+ // Build the pattern to check search column
+ var searchPat = new RegExp(".*"+searchText+".*", "m");
+
+ // No more processing for unmatched rows
+ if (!searchHtml.match(searchPat))
+ continue;
+
+ // Got the row! Let's simply return it
+ return rowNo;
+ }
+ return -1;
+}
+
+Selenium.prototype.countTableRows = function(locator){
+ var table = this.browserbot.findElement(locator);
+
+ return table.rows.length;
+}
+
+Selenium.prototype.fillInEditor = function(locator, content){
+ var iframe = this.browserbot.findElement(locator);
+ iframe.contentDocument.body.innerHTML= content;
+}
+
+Selenium.prototype.assertTextOrder = function(textValues) {
+
+ var allText = this.page().bodyText();
+ var expectedTextValues = textValues.split(";");
+
+ for (var i = 0; i < expectedTextValues.length - 1; i++) {
+ var index = allText.indexOf(expectedTextValues[i]);
+ var nextIndex = allText.indexOf(expectedTextValues[i+1]);
+ if (index == -1) {
+ return false;
+ //assert.fail("'" + expectedTextValues[i] + "' not found.");
+ }
+ if (nextIndex == -1) {
+ return false;
+ //assert.fail("'" + expectedTextValues[i+1] + "' not found.");
+ }
+
+ if (index > nextIndex) {
+ return false;
+ //assert.fail("'" + expectedTextValues[i+1] + "' found before '" + expectedTextValues[i] + "'");
+ }
+ }
+ return true;
+}
+
+/********************************************************
+ * Copyright (C) 2002-2003, CodeHouse.com. All rights reserved.
+ * CodeHouse(TM) is a registered trademark.
+ *
+ * THIS SOURCE CODE MAY BE USED FREELY PROVIDED THAT
+ * IT IS NOT MODIFIED OR DISTRIBUTED, AND IT IS USED
+ * ON A PUBLICLY ACCESSIBLE INTERNET WEB SITE.
+ *
+ * CodeHouse.com JavaScript Library Module: Get Current Style Method
+ *
+ * You can obtain this script at http://www.codehouse.com
+ ********************************************************
+ *
+ * getStyle(String locator, String property)
+ *
+ * Get current style property of element given by locator.
+ *
+ * This methods of getting current style value haven't absolute browser compatibility.
+ *
+ * Use CSS style notation instead of JavaScripts camel notation!
+ *
+ * E.g.: use property "background-color" instead of "backgroundColor"
+ */
+Selenium.prototype.getStyle = function(locator, property) {
+ var elem = this.browserbot.findElementOrNull(locator);
+
+ if (elem == null) {
+ throw new SeleniumError("null property value");
+ }
+
+ var currentDocument = this.browserbot.getCurrentWindow().document;
+
+ if( elem.currentStyle ) {
+ var ar = property.match(/\w[^-]*/g);
+ var s = ar[0];
+
+ for(var i = 1; i < ar.length; ++i) {
+ s += ar[i].replace(/\w/, ar[i].charAt(0).toUpperCase());
+ }
+
+ var result = elem.currentStyle[s];
+ if (result == undefined) {
+ throw new SeleniumError("null property value");
+ }
+ return result;
+ } else if( currentDocument.defaultView.getComputedStyle ) {
+ var computedStyle = currentDocument.defaultView.getComputedStyle(elem, null);
+
+ if (computedStyle.getPropertyCSSValue(property) == null) {
+ throw new SeleniumError("null property value");
+ }
+
+ return computedStyle.getPropertyValue(property);
+ }
+
+ throw new SeleniumError("browser incompability");
+}
+
+/**
+ * Aligns screen to top (resp. bottom) of element given by locator.
+ *
+ * TODO should be reimplemented to use of JQuery.scrollTo
+ *
+ * @param locator of element which should be screen aligned to
+ * @param alignToTop should be top border of screen aligned to top border of element
+ */
+Selenium.prototype.scrollIntoView = function(locator, alignToTop) {
+ var elem = this.browserbot.findElementOrNull(locator);
+
+ if (elem == null) {
+ throw new SeleniumError("null property value");
+ }
+
+ if (elem.scrollIntoView == undefined) {
+ throw new SeleniumError("scrollIntoView isn't supported at this element");
+ }
+
+ elem.scrollIntoView(alignToTop);
+}
+
+/**
+ * Simulates a user hovering a mouse over the specified element at specific
+ * coordinates relative to element.
+ *
+ * @param locator
+ * element's locator
+ * @param coordString
+ * specifies the x,y position (i.e. - 10,20) of the mouse event
+ * relative to the element returned by the locator.
+ */
+Selenium.prototype.doMouseOverAt = function(locator, coordString) {
+ var element = this.browserbot.findElement(locator);
+ var clientXY = getClientXY(element, coordString)
+
+ this.browserbot.triggerMouseEvent(element, 'mouseover', true, clientXY[0],
+ clientXY[1]);
+}
+
+/**
+ * Gets the text of an element. This works for any element that contains
+ * text. This command uses either the textContent (Mozilla-like browsers) or
+ * the innerText (IE-like browsers) of the element, which is the rendered
+ * text shown to the user.
+ *
+ * If no element with given locator is found, returns null.
+ *
+ * @param locator an element locator
+ * @return string the text of the element or null if element's wasn't found
+ */
+Selenium.prototype.getTextOrNull = function(locator) {
+ var element = this.browserbot.findElementOrNull(locator);
+ if (element == null) {
+ throw new SeleniumError("element is not found");
+ }
+ return getText(element).trim();
+};
+
\ No newline at end of file
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/classes/org/jboss/test/selenium/AbstractSeleniumTestCase$1.class
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/test-applications/selenium-testing-lib/target/classes/org/jboss/test/selenium/AbstractSeleniumTestCase$1.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/classes/org/jboss/test/selenium/AbstractSeleniumTestCase$2.class
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/test-applications/selenium-testing-lib/target/classes/org/jboss/test/selenium/AbstractSeleniumTestCase$2.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/classes/org/jboss/test/selenium/AbstractSeleniumTestCase$3.class
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/test-applications/selenium-testing-lib/target/classes/org/jboss/test/selenium/AbstractSeleniumTestCase$3.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/classes/org/jboss/test/selenium/AbstractSeleniumTestCase.class
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/test-applications/selenium-testing-lib/target/classes/org/jboss/test/selenium/AbstractSeleniumTestCase.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/classes/org/jboss/test/selenium/actions/Drag.class
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/test-applications/selenium-testing-lib/target/classes/org/jboss/test/selenium/actions/Drag.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/classes/org/jboss/test/selenium/dom/Event.class
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/test-applications/selenium-testing-lib/target/classes/org/jboss/test/selenium/dom/Event.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/classes/org/jboss/test/selenium/utils/URLUtils.class
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/test-applications/selenium-testing-lib/target/classes/org/jboss/test/selenium/utils/URLUtils.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/classes/org/jboss/test/selenium/utils/array/ArrayTransform.class
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/test-applications/selenium-testing-lib/target/classes/org/jboss/test/selenium/utils/array/ArrayTransform.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/classes/org/jboss/test/selenium/waiting/Condition.class
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/test-applications/selenium-testing-lib/target/classes/org/jboss/test/selenium/waiting/Condition.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/classes/org/jboss/test/selenium/waiting/Not.class
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/test-applications/selenium-testing-lib/target/classes/org/jboss/test/selenium/waiting/Not.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/classes/org/jboss/test/selenium/waiting/Retrieve.class
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/test-applications/selenium-testing-lib/target/classes/org/jboss/test/selenium/waiting/Retrieve.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/classes/org/jboss/test/selenium/waiting/Wait$Waiting$1.class
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/test-applications/selenium-testing-lib/target/classes/org/jboss/test/selenium/waiting/Wait$Waiting$1.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/classes/org/jboss/test/selenium/waiting/Wait$Waiting.class
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/test-applications/selenium-testing-lib/target/classes/org/jboss/test/selenium/waiting/Wait$Waiting.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/classes/org/jboss/test/selenium/waiting/Wait.class
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/test-applications/selenium-testing-lib/target/classes/org/jboss/test/selenium/waiting/Wait.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/maven-archiver/pom.properties
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/target/maven-archiver/pom.properties (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/target/maven-archiver/pom.properties 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,5 @@
+#Generated by Maven
+#Wed Aug 26 10:57:09 CDT 2009
+version=1.0-SNAPSHOT
+groupId=org.jboss.test
+artifactId=selenium
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/pom-transformed.xml
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/target/pom-transformed.xml (rev 0)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/target/pom-transformed.xml 2009-08-26 16:02:48 UTC (rev 15322)
@@ -0,0 +1,144 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.jboss.test</groupId>
+ <artifactId>selenium</artifactId>
+ <packaging>jar</packaging>
+ <version>1.0-SNAPSHOT</version>
+ <name>selenium-testing-lib</name>
+ <url>http://maven.apache.org</url>
+
+ <scm>
+ <developerConnection>
+ scm:svn:https://svn.jboss.org/repos/richfaces/branches/community/3.3.X/te...
+ </developerConnection>
+ </scm>
+
+<distributionManagement>
+ <snapshotRepository>
+ <id>snapshots.jboss.org</id>
+ <name>JBoss Snapshot Repository</name>
+ <url>dav:https://snapshots.jboss.org/maven2</url>
+ </snapshotRepository>
+ </distributionManagement>
+
+
+ <repositories>
+ <repository>
+ <id>openqa</id>
+ <name>OpenQA Repository</name>
+ <url>http://archiva.openqa.org/repository/releases</url>
+ <layout>default</layout>
+ <snapshots>
+ <enabled>false</enabled>
+ </snapshots>
+ <releases>
+ <enabled>true</enabled>
+ </releases>
+ </repository>
+ </repositories>
+ <properties>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ </properties>
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>1.5</source>
+ <target>1.5</target>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-source-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>source-jar</id>
+ <phase>install</phase>
+ <goals>
+ <goal>jar</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>javadoc-jar</id>
+ <phase>install</phase>
+ <goals>
+ <goal>jar</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <artifactId>maven-install-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>install-sources</id>
+ <phase>install</phase>
+ <goals>
+ <goal>install-file</goal>
+ </goals>
+ <configuration>
+ <groupId>${groupId}</groupId>
+ <artifactId>${artifactId}</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <packaging>jar</packaging>
+ <file>${project.build.directory}/${artifactId}-${version}-sources.jar</file>
+ <classifier>sources</classifier>
+ </configuration>
+ </execution>
+ <execution>
+ <id>install-javadoc</id>
+ <phase>install</phase>
+ <goals>
+ <goal>install-file</goal>
+ </goals>
+ <configuration>
+ <groupId>${groupId}</groupId>
+ <artifactId>${artifactId}</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <packaging>jar</packaging>
+ <file>${project.build.directory}/${artifactId}-${version}-javadoc.jar</file>
+ <classifier>javadoc</classifier>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ <dependencies>
+ <dependency>
+ <groupId>org.testng</groupId>
+ <artifactId>testng</artifactId>
+ <version>5.8</version>
+ <classifier>jdk15</classifier>
+ </dependency>
+ <dependency>
+ <groupId>org.seleniumhq.selenium.client-drivers</groupId>
+ <artifactId>selenium-java-client-driver</artifactId>
+ <version>1.0.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.seleniumhq.selenium.server</groupId>
+ <artifactId>selenium-server-coreless</artifactId>
+ <version>1.0.1</version>
+ <exclusions>
+ <exclusion>
+ <groupId>jetty</groupId>
+ <artifactId>org.mortbay.jetty</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ <version>2.4</version>
+ </dependency>
+ </dependencies>
+</project>
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/selenium-1.0-SNAPSHOT-javadoc.jar
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/test-applications/selenium-testing-lib/target/selenium-1.0-SNAPSHOT-javadoc.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/selenium-1.0-SNAPSHOT-sources.jar
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/test-applications/selenium-testing-lib/target/selenium-1.0-SNAPSHOT-sources.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/test-applications/selenium-testing-lib/target/selenium-1.0-SNAPSHOT.jar
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/test-applications/selenium-testing-lib/target/selenium-1.0-SNAPSHOT.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
15 years, 4 months
JBoss Rich Faces SVN: r15321 - branches/community/3.3.X/docs/userguide/en/src/main/docbook/included.
by richfaces-svn-commits@lists.jboss.org
Author: smukhina
Date: 2009-08-26 12:00:34 -0400 (Wed, 26 Aug 2009)
New Revision: 15321
Modified:
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_colorPicker.xml
Log:
https://jira.jboss.org/jira/browse/RF-7739 Css class names for <rich:colorPicker> are wrong - corrected
Modified: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_colorPicker.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_colorPicker.xml 2009-08-26 15:23:11 UTC (rev 15320)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_colorPicker.xml 2009-08-26 16:00:34 UTC (rev 15321)
@@ -285,11 +285,11 @@
</thead>
<tbody>
<row>
- <entry>.rich-colorpicker-submit</entry>
+ <entry>.rich-color-picker-submit</entry>
<entry>Defines styles for the "Apply" button</entry>
</row>
<row>
- <entry>.rich-colorpicker-cancel</entry>
+ <entry>.rich-color-picker-cancel</entry>
<entry>Defines styles for the "Cancel" button</entry>
</row>
</tbody>
15 years, 4 months
JBoss Rich Faces SVN: r15320 - root.
by richfaces-svn-commits@lists.jboss.org
Author: Alex.Kolonitsky
Date: 2009-08-26 11:23:11 -0400 (Wed, 26 Aug 2009)
New Revision: 15320
Added:
root/JBossORG-EULA.txt
Modified:
root/richfaces-examples.xml
root/richfaces.xml
Log:
Update 4.0 ALPHA1 assembler for new structure
https://jira.jboss.org/jira/browse/RF-7745
Added: root/JBossORG-EULA.txt
===================================================================
--- root/JBossORG-EULA.txt (rev 0)
+++ root/JBossORG-EULA.txt 2009-08-26 15:23:11 UTC (rev 15320)
@@ -0,0 +1,104 @@
+LICENSE AGREEMENT
+JBOSS(r)
+
+This License Agreement governs the use of the Software Packages and any updates to the Software
+Packages, regardless of the delivery mechanism. Each Software Package is a collective work
+under U.S. Copyright Law. Subject to the following terms, Red Hat, Inc. ("Red Hat") grants to
+the user ("Client") a license to the applicable collective work(s) pursuant to the
+GNU Lesser General Public License v. 2.1 except for the following Software Packages:
+(a) JBoss Portal Forums and JBoss Transactions JTS, each of which is licensed pursuant to the
+GNU General Public License v.2;
+
+(b) JBoss Rules, which is licensed pursuant to the Apache License v.2.0;
+
+(c) an optional download for JBoss Cache for the Berkeley DB for Java database, which is licensed under the
+(open source) Sleepycat License (if Client does not wish to use the open source version of this database,
+it may purchase a license from Sleepycat Software);
+
+and (d) the BPEL extension for JBoss jBPM, which is licensed under the Common Public License v.1,
+and, pursuant to the OASIS BPEL4WS standard, requires parties wishing to redistribute to enter various
+royalty-free patent licenses.
+
+Each of the foregoing licenses is available at http://www.opensource.org/licenses/index.php.
+
+1. The Software. "Software Packages" refer to the various software modules that are created and made available
+for distribution by the JBoss.org open source community at http://www.jboss.org. Each of the Software Packages
+may be comprised of hundreds of software components. The end user license agreement for each component is located in
+the component's source code. With the exception of certain image files identified in Section 2 below,
+the license terms for the components permit Client to copy, modify, and redistribute the component,
+in both source code and binary code forms. This agreement does not limit Client's rights under,
+or grant Client rights that supersede, the license terms of any particular component.
+
+2. Intellectual Property Rights. The Software Packages are owned by Red Hat and others and are protected under copyright
+and other laws. Title to the Software Packages and any component, or to any copy, modification, or merged portion shall
+remain with the aforementioned, subject to the applicable license. The "JBoss" trademark, "Red Hat" trademark, the
+individual Software Package trademarks, and the "Shadowman" logo are registered trademarks of Red Hat and its affiliates
+in the U.S. and other countries. This agreement permits Client to distribute unmodified copies of the Software Packages
+using the Red Hat trademarks that Red Hat has inserted in the Software Packages on the condition that Client follows Red Hat's
+trademark guidelines for those trademarks located at http://www.redhat.com/about/corporate/trademark/. Client must abide by
+these trademark guidelines when distributing the Software Packages, regardless of whether the Software Packages have been modified.
+If Client modifies the Software Packages, then Client must replace all Red Hat trademarks and logos identified at
+http://www.jboss.com/company/logos unless a separate agreement with Red Hat is executed or other permission granted.
+Merely deleting the files containing the Red Hat trademarks may corrupt the Software Packages.
+
+3. Limited Warranty. Except as specifically stated in this Paragraph 3 or a license for a particular
+component, to the maximum extent permitted under applicable law, the Software Packages and the
+components are provided and licensed "as is" without warranty of any kind, expressed or implied,
+including the implied warranties of merchantability, non-infringement or fitness for a particular purpose.
+Red Hat warrants that the media on which Software Packages may be furnished will be free from defects in
+materials and manufacture under normal use for a period of 30 days from the date of delivery to Client.
+Red Hat does not warrant that the functions contained in the Software Packages will meet Client's requirements
+or that the operation of the Software Packages will be entirely error free or appear precisely as described
+in the accompanying documentation. This warranty extends only to the party that purchases the Services
+pertaining to the Software Packages from Red Hat or a Red Hat authorized distributor.
+
+4. Limitation of Remedies and Liability. To the maximum extent permitted by applicable law, the remedies
+described below are accepted by Client as its only remedies. Red Hat's entire liability, and Client's
+exclusive remedies, shall be: If the Software media is defective, Client may return it within 30 days of
+delivery along with a copy of Client's payment receipt and Red Hat, at its option, will replace it or
+refund the money paid by Client for the Software. To the maximum extent permitted by applicable law,
+Red Hat or any Red Hat authorized dealer will not be liable to Client for any incidental or consequential
+damages, including lost profits or lost savings arising out of the use or inability to use the Software,
+even if Red Hat or such dealer has been advised of the possibility of such damages. In no event shall
+Red Hat's liability under this agreement exceed the amount that Client paid to Red Hat under this
+Agreement during the twelve months preceding the action.
+
+5. Export Control. As required by U.S. law, Client represents and warrants that it:
+(a) understands that the Software Packages are subject to export controls under the
+U.S. Commerce Department's Export Administration Regulations ("EAR");
+
+(b) is not located in a prohibited destination country under the EAR or U.S. sanctions regulations
+(currently Cuba, Iran, Iraq, Libya, North Korea, Sudan and Syria);
+
+(c) will not export, re-export, or transfer the Software Packages to any prohibited destination, entity,
+or individual without the necessary export license(s) or authorizations(s) from the U.S. Government;
+
+(d) will not use or transfer the Software Packages for use in any sensitive nuclear, chemical or
+biological weapons, or missile technology end-uses unless authorized by the U.S. Government by
+regulation or specific license;
+
+(e) understands and agrees that if it is in the United States and exports or transfers the Software
+Packages to eligible end users, it will, as required by EAR Section 740.17(e), submit semi-annual
+reports to the Commerce Department's Bureau of Industry & Security (BIS), which include the name and
+address (including country) of each transferee;
+
+and (f) understands that countries other than the United States may restrict the import, use, or
+export of encryption products and that it shall be solely responsible for compliance with any such
+import, use, or export restrictions.
+
+6. Third Party Programs. Red Hat may distribute third party software programs with the Software Packages
+that are not part of the Software Packages and which Client must install separately. These third party
+programs are subject to their own license terms. The license terms either accompany the programs or
+can be viewed at http://www.redhat.com/licenses/. If Client does not agree to abide by the applicable
+license terms for such programs, then Client may not install them. If Client wishes to install the programs
+on more than one system or transfer the programs to another party, then Client must contact the licensor
+of the programs.
+
+7. General. If any provision of this agreement is held to be unenforceable, that shall not affect the
+enforceability of the remaining provisions. This License Agreement shall be governed by the laws of the
+State of North Carolina and of the United States, without regard to any conflict of laws provisions,
+except that the United Nations Convention on the International Sale of Goods shall not apply.
+
+Copyright 2006-2008 Red Hat, Inc. All rights reserved.
+"JBoss" and the JBoss logo are registered trademarks of Red Hat, Inc.
+All other trademarks are the property of their respective owners.
Modified: root/richfaces-examples.xml
===================================================================
--- root/richfaces-examples.xml 2009-08-26 15:01:44 UTC (rev 15319)
+++ root/richfaces-examples.xml 2009-08-26 15:23:11 UTC (rev 15320)
@@ -6,6 +6,7 @@
<files>
<file>
<source>lgpl.txt</source>
+ <source>JBossORG-EULA.txt</source>
</file>
</files>
Modified: root/richfaces.xml
===================================================================
--- root/richfaces.xml 2009-08-26 15:01:44 UTC (rev 15319)
+++ root/richfaces.xml 2009-08-26 15:23:11 UTC (rev 15320)
@@ -6,6 +6,7 @@
<files>
<file>
<source>lgpl.txt</source>
+ <source>JBossORG-EULA.txt</source>
</file>
</files>
15 years, 4 months
JBoss Rich Faces SVN: r15319 - root/framework/trunk/impl/src/main/java/org/ajax4jsf/renderkit.
by richfaces-svn-commits@lists.jboss.org
Author: abelevich
Date: 2009-08-26 11:01:44 -0400 (Wed, 26 Aug 2009)
New Revision: 15319
Modified:
root/framework/trunk/impl/src/main/java/org/ajax4jsf/renderkit/AjaxRendererUtils.java
Log:
remove generic buildEvents
Modified: root/framework/trunk/impl/src/main/java/org/ajax4jsf/renderkit/AjaxRendererUtils.java
===================================================================
--- root/framework/trunk/impl/src/main/java/org/ajax4jsf/renderkit/AjaxRendererUtils.java 2009-08-26 14:53:59 UTC (rev 15318)
+++ root/framework/trunk/impl/src/main/java/org/ajax4jsf/renderkit/AjaxRendererUtils.java 2009-08-26 15:01:44 UTC (rev 15319)
@@ -289,20 +289,6 @@
}
}
- public static <A,T> AjaxEventOptions buildEventOptions(A a, T t , CommonAttributesAccessor<A, T> accessor) {
-
- AjaxEventOptions ajaxEventOptions = new AjaxEventOptions();
- String ajaxStatusName = accessor.getStatusId(a,t);
- if(ajaxStatusName != null && ajaxStatusName.trim().length() != 0) {
- ajaxEventOptions.set(STATUS_ATTR_NAME, ajaxStatusName);
- }
-
- appendParameters(FacesContext.getCurrentInstance(), (UIComponent)t, ajaxEventOptions.getParameters());
- return ajaxEventOptions;
- }
-
-
-
private static enum EventOptionsData {
begin {
@Override
15 years, 4 months
JBoss Rich Faces SVN: r15318 - root/ui/trunk/components/core/src/main/java/org/ajax4jsf/component/behavior.
by richfaces-svn-commits@lists.jboss.org
Author: abelevich
Date: 2009-08-26 10:53:59 -0400 (Wed, 26 Aug 2009)
New Revision: 15318
Modified:
root/ui/trunk/components/core/src/main/java/org/ajax4jsf/component/behavior/AjaxBehavior.java
Log:
add support for the oncomplete, onbegin, onbeforedomupdate
Modified: root/ui/trunk/components/core/src/main/java/org/ajax4jsf/component/behavior/AjaxBehavior.java
===================================================================
--- root/ui/trunk/components/core/src/main/java/org/ajax4jsf/component/behavior/AjaxBehavior.java 2009-08-26 14:53:16 UTC (rev 15317)
+++ root/ui/trunk/components/core/src/main/java/org/ajax4jsf/component/behavior/AjaxBehavior.java 2009-08-26 14:53:59 UTC (rev 15318)
@@ -261,7 +261,15 @@
case similarityGroupingId :
this.similarityGroupingId = value != null ? (String)value: null; break;
+
+ case onbeforedomupdate :
+ this.onbeforedomupdate = value != null ? (String)value : null; break;
+
+ case onbegin :
+ this.onbegin = value != null ? (String)value : null; break;
+ case oncomplete :
+ this.oncomplete = value != null ? (String)value : null; break;
default: break;
}
@@ -285,7 +293,7 @@
values = new Object[] { superState };
}
} else {
- values = new Object[7];
+ values = new Object[10];
values[0] = superState;
values[1] = limitRender;
values[2] = execute;
@@ -293,6 +301,9 @@
values[4] = queueId;
values[5] = statusId;
values[6] = similarityGroupingId;
+ values[7] = onbeforedomupdate;
+ values[8] = onbegin;
+ values[9] = oncomplete;
}
return values;
@@ -312,6 +323,9 @@
this.queueId = (String)values[4];
this.statusId = (String)values[5];
this.similarityGroupingId = (String)values[6];
+ this.onbeforedomupdate = (String)values[7];
+ this.onbegin = (String)values[8];
+ this.oncomplete = (String)values[9];
clearInitialState();
}
}
15 years, 4 months
JBoss Rich Faces SVN: r15317 - root.
by richfaces-svn-commits@lists.jboss.org
Author: Alex.Kolonitsky
Date: 2009-08-26 10:53:16 -0400 (Wed, 26 Aug 2009)
New Revision: 15317
Modified:
root/richfaces-examples.xml
Log:
Update 4.0 ALPHA1 assembler for new structure
https://jira.jboss.org/jira/browse/RF-7745
Modified: root/richfaces-examples.xml
===================================================================
--- root/richfaces-examples.xml 2009-08-26 14:52:55 UTC (rev 15316)
+++ root/richfaces-examples.xml 2009-08-26 14:53:16 UTC (rev 15317)
@@ -21,24 +21,23 @@
<outputDirectoryMapping>${module.artifactId}</outputDirectoryMapping>
<excludeSubModuleDirectories>false</excludeSubModuleDirectories>
<fileSets>
- <fileSet>
- <directory>/</directory>
+ <fileSet>
<includes>
<include>src/**</include>
<include>pom.xml</include>
</includes>
- </fileSet>
+ </fileSet>
</fileSets>
</sources>
-<!--
- <binaries>
- <outputDirectory>${module.artifactId}</outputDirectory>
- <includeDependencies>false</includeDependencies>
- <unpack>false</unpack>
- <outputFileNameMapping>${module.artifactId}-${module.version}.${module.extension}</outputFileNameMapping>
- </binaries>
--->
+ <!--
+ <binaries>
+ <outputDirectory>${module.artifactId}</outputDirectory>
+ <includeDependencies>false</includeDependencies>
+ <unpack>false</unpack>
+ <outputFileNameMapping>${module.artifactId}-${module.version}.${module.extension}</outputFileNameMapping>
+ </binaries>
+ -->
</moduleSet>
<moduleSet>
@@ -52,7 +51,6 @@
<excludeSubModuleDirectories>false</excludeSubModuleDirectories>
<fileSets>
<fileSet>
- <directory>/</directory>
<includes>
<include>src/**</include>
<include>pom.xml</include>
@@ -61,14 +59,14 @@
</fileSets>
</sources>
-<!--
- <binaries>
- <outputDirectory>components/${module.artifactId}</outputDirectory>
- <includeDependencies>false</includeDependencies>
- <unpack>false</unpack>
- <outputFileNameMapping>${module.artifactId}-${module.version}.${module.extension}</outputFileNameMapping>
- </binaries>
--->
+ <!--
+ <binaries>
+ <outputDirectory>components/${module.artifactId}</outputDirectory>
+ <includeDependencies>false</includeDependencies>
+ <unpack>false</unpack>
+ <outputFileNameMapping>${module.artifactId}-${module.version}.${module.extension}</outputFileNameMapping>
+ </binaries>
+ -->
</moduleSet>
</moduleSets>
</assembly>
\ No newline at end of file
15 years, 4 months
JBoss Rich Faces SVN: r15316 - root/framework/trunk/impl/src/main/java/org/ajax4jsf/renderkit.
by richfaces-svn-commits@lists.jboss.org
Author: abelevich
Date: 2009-08-26 10:52:55 -0400 (Wed, 26 Aug 2009)
New Revision: 15316
Removed:
root/framework/trunk/impl/src/main/java/org/ajax4jsf/renderkit/CommonAttributesAccessor.java
Modified:
root/framework/trunk/impl/src/main/java/org/ajax4jsf/renderkit/AjaxRendererUtils.java
Log:
add AjaxClientBehavior support to the buildEventOption utility function
Modified: root/framework/trunk/impl/src/main/java/org/ajax4jsf/renderkit/AjaxRendererUtils.java
===================================================================
--- root/framework/trunk/impl/src/main/java/org/ajax4jsf/renderkit/AjaxRendererUtils.java 2009-08-26 13:36:01 UTC (rev 15315)
+++ root/framework/trunk/impl/src/main/java/org/ajax4jsf/renderkit/AjaxRendererUtils.java 2009-08-26 14:52:55 UTC (rev 15316)
@@ -328,9 +328,44 @@
public abstract String getAttributeValue(UIComponent component);
}
+ private static enum BehaviorEventOptionsData {
+ begin {
+ @Override
+ public String getAttributeValue(AjaxClientBehavior behavior) {
+ return behavior.getOnbegin();
+ }
+ },
+
+ beforedomupdate {
+ @Override
+ public String getAttributeValue(AjaxClientBehavior behavior) {
+ return behavior.getOnBeforeDomUpdate();
+ }
+ },
+
+ complete {
+ @Override
+ public String getAttributeValue(AjaxClientBehavior behavior) {
+ return behavior.getOncomplete();
+ }
+ },
+
+ error {
+ @Override
+ public String getAttributeValue(AjaxClientBehavior behavior) {
+ return behavior.getOnerror();
+ }
+ },
+
+ event {
+ @Override
+ public String getAttributeValue(AjaxClientBehavior behavior) {
+ return behavior.getOnevent();
+ }
+ };
+ public abstract String getAttributeValue(AjaxClientBehavior behavior);
+ }
-
-
public static AjaxEventOptions buildEventOptions(FacesContext facesContext, AjaxClientBehavior ajaxBehavior, UIComponent component) {
AjaxEventOptions ajaxEventOptions = new AjaxEventOptions();
@@ -340,7 +375,7 @@
if(ajaxBehavior != null) {
ajaxStatusName = ajaxBehavior.getStatusId() != null ? ajaxBehavior.getStatusId() : ajaxStatusName;
-
+ appenAjaxBehaviorParams(facesContext, ajaxBehavior, ajaxEventOptions);
} else {
appendBehaviorParams(facesContext, component, ajaxEventOptions, parametersMap);
}
@@ -355,8 +390,15 @@
return ajaxEventOptions;
}
+ private static void appenAjaxBehaviorParams(FacesContext context, AjaxClientBehavior behavior, AjaxEventOptions ajaxEventOptions) {
+ for(BehaviorEventOptionsData optionsData : BehaviorEventOptionsData.values()) {
+ String eventHandlerValue = optionsData.getAttributeValue(behavior);
+ if(isNonEmpty(eventHandlerValue)) {
+ ajaxEventOptions.set(optionsData.toString(), eventHandlerValue);
+ }
+ }
+ }
-
private static void appendBehaviorParams(FacesContext facesContext, UIComponent component, AjaxEventOptions ajaxEventOptions, Map<String, Object> parametersMap) {
Collection<Parameter> behaviorParametersList = null;
Map<String, List<ClientBehavior>> behaviorsMap = Collections.EMPTY_MAP; /* null object */
Deleted: root/framework/trunk/impl/src/main/java/org/ajax4jsf/renderkit/CommonAttributesAccessor.java
===================================================================
--- root/framework/trunk/impl/src/main/java/org/ajax4jsf/renderkit/CommonAttributesAccessor.java 2009-08-26 13:36:01 UTC (rev 15315)
+++ root/framework/trunk/impl/src/main/java/org/ajax4jsf/renderkit/CommonAttributesAccessor.java 2009-08-26 14:52:55 UTC (rev 15316)
@@ -1,115 +0,0 @@
-package org.ajax4jsf.renderkit;
-
-import javax.faces.component.UIComponent;
-
-import org.ajax4jsf.component.AjaxClientBehavior;
-
-
-/**
- * @author Anton Belevich
- *
- * @param <A>
- * @param <T>
- *
- * interface for accessors implementation
- */
-public interface CommonAttributesAccessor <A,T> {
-
-
- public String getOnComplete(A a, T t);
-
- public String getOnError(A a, T t);
-
- public String getOnBegin(A a, T t);
-
- public String getOnBeforeDomUpdate(A a, T t);
-
- public String getOnEvent(A a, T t);
-
- public String getStatusId(A a, T t);
-
-
- public static final CommonAttributesAccessor<AjaxClientBehavior, UIComponent> C = new CommonAttributesAccessor<AjaxClientBehavior, UIComponent>() {
-
- public String getOnBeforeDomUpdate(AjaxClientBehavior a, UIComponent t) {
- String value = null;
-
- if(t != null) {
- value = AjaxRendererUtils.getAjaxOnBeforeDomUpdate(t);
- }
-
- if(a != null) {
- value = a.getOnBeforeDomUpdate();
- }
-
- return value;
- }
-
- public String getOnBegin(AjaxClientBehavior a, UIComponent t) {
- String value = null;
-
- if(t != null) {
- value = AjaxRendererUtils.getAjaxOncomplete(t);
- }
-
- if(a != null) {
- value = a.getOncomplete();
- }
-
- return value;
- }
-
- public String getOnComplete(AjaxClientBehavior a, UIComponent t) {
- String value = null;
-
- if(t != null) {
- value = AjaxRendererUtils.getAjaxOncomplete(t);
- }
-
- if(a != null) {
- value = a.getOncomplete();
- }
-
- return value;
- }
-
- public String getOnError(AjaxClientBehavior a, UIComponent t) {
- String value = null;
- if(t != null) {
- // TODO AjaxRenderUtils add getAjaxOnError(UIComponent component) method ??
- }
-
- if(a != null) {
- value = a.getOnerror();
- }
-
- return value;
- }
-
- public String getOnEvent(AjaxClientBehavior a, UIComponent t) {
- String value = null;
- if(t != null) {
- // TODO AjaxRenderUtils add getAjaxOnEvent(UIComponent component) method ??
- }
-
- if(a != null) {
- value = a.getOnevent();
- }
-
- return value;
- }
-
- public String getStatusId(AjaxClientBehavior a, UIComponent t) {
- String value = null;
- if(t != null) {
- AjaxRendererUtils.getAjaxStatus(t);
- }
-
- if(a != null) {
- a.getStatusId();
- }
-
- return value;
- }
- };
-}
15 years, 4 months