You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@continuum.apache.org by oc...@apache.org on 2007/04/23 12:54:52 UTC
svn commit: r531425 - in
/maven/continuum/trunk/continuum-webapp-test/src/test/it/org/apache/continuum/web/test:
AbstractContinuumTestCase.java AddMavenTwoProjectTest.java AntTest.java
ProjectGroupTest.java SchedulesPageTest.java
Author: oching
Date: Mon Apr 23 03:54:47 2007
New Revision: 531425
URL: http://svn.apache.org/viewvc?view=rev&rev=531425
Log:
CONTINUUM-1237 Applied patch submitted by Teodoro Cue - additional web UI tests
Modified:
maven/continuum/trunk/continuum-webapp-test/src/test/it/org/apache/continuum/web/test/AbstractContinuumTestCase.java
maven/continuum/trunk/continuum-webapp-test/src/test/it/org/apache/continuum/web/test/AddMavenTwoProjectTest.java
maven/continuum/trunk/continuum-webapp-test/src/test/it/org/apache/continuum/web/test/AntTest.java
maven/continuum/trunk/continuum-webapp-test/src/test/it/org/apache/continuum/web/test/ProjectGroupTest.java
maven/continuum/trunk/continuum-webapp-test/src/test/it/org/apache/continuum/web/test/SchedulesPageTest.java
Modified: maven/continuum/trunk/continuum-webapp-test/src/test/it/org/apache/continuum/web/test/AbstractContinuumTestCase.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp-test/src/test/it/org/apache/continuum/web/test/AbstractContinuumTestCase.java?view=diff&rev=531425&r1=531424&r2=531425
==============================================================================
--- maven/continuum/trunk/continuum-webapp-test/src/test/it/org/apache/continuum/web/test/AbstractContinuumTestCase.java (original)
+++ maven/continuum/trunk/continuum-webapp-test/src/test/it/org/apache/continuum/web/test/AbstractContinuumTestCase.java Mon Apr 23 03:54:47 2007
@@ -46,6 +46,10 @@
public final static String TEST_POM_PASSWORD = "dummy";
+ public static final String TEST_PROJECT_GROUP_NAME = "Apache Maven";
+
+ public static final String TEST_PROJECT_NAME = "Apache Maven";
+
protected void postAdminUserCreation()
{
assertEditConfigurationPage();
@@ -76,6 +80,24 @@
}
//////////////////////////////////////
+ // About
+ //////////////////////////////////////
+ public void goToAboutPage()
+ {
+ clickLinkWithText( "About" );
+
+ assertAboutPage();
+ }
+
+ public void assertAboutPage()
+ {
+ assertPage( "Continuum - About" );
+ assertTextPresent( "About Continuum" );
+ assertTextPresent( "Version:" );
+ assertTextPresent( "1.1-SNAPSHOT" );
+ }
+
+ //////////////////////////////////////
// Configuration
//////////////////////////////////////
public void assertEditConfigurationPage()
@@ -264,7 +286,512 @@
// Confirm Project Group deletion
clickSubmitWithLocator( "removeProjectGroup_0" );
+ }
+
+ public void editProjectGroup( String name, String groupId, String description, String newName, String newDescription )
+ throws Exception
+ {
+ showProjectGroup( name, groupId, description );
+ clickButtonWithValue( "Edit" );
+ assertEditGroupPage( groupId );
+ setFieldValue( "saveProjectGroup_name", newName );
+ setFieldValue( "saveProjectGroup_description", newDescription );
+ clickButtonWithValue( "Save" );
+ }
+
+ public void assertEditGroupPage( String groupId ) throws Exception
+ {
+ assertPage( "Continuum - Update Project Group" );
+ assertTextPresent( "Update Project Group" );
+ assertTextPresent( "Project Group Name" );
+ assertElementPresent( "saveProjectGroup_name" );
+ assertTextPresent( "Project Group Id" );
+ assertTextPresent( groupId );
+ assertTextPresent( "Description" );
+ assertElementPresent( "saveProjectGroup_description" );
+
+ // Assert Projects actions
+ assertTextPresent( "Projects" );
+ assertTextPresent( "Project Name" );
+ assertTextPresent( "Move to Group" );
+
+ assertElementPresent( "saveProjectGroup_0" );
+ assertElementPresent( "Cancel" );
+ }
+
+ public void buildProjectGroup( String projectGroupName, String groupId, String description ) throws Exception
+ {
+ int tries = 0, maxTries = 100;
+
+ showProjectGroup( projectGroupName, groupId, description );
+ clickButtonWithValue( "Build" );
+
+ // make sure build will be completed
+ while ( isElementPresent( "//img[@alt='Updating sources']" ) )
+ {
+ Thread.sleep( 5000 );
+ showProjectGroup( projectGroupName, groupId, description );
+
+ if ( tries++ >= maxTries )
+ {
+ assertTrue( "Max tries waiting for the project to build reached.", false );
+ }
+ }
+ // test if successfully built, then return to the original page
+ clickLinkWithText( "Apache Maven" );
+ clickLinkWithText( "Builds" );
+ clickLinkWithText( "Result" );
+ assertTextPresent( "BUILD SUCCESSFUL" );
+ clickLinkWithText( "Project Group Summary" );
+ }
+
+ public void assertReleaseSuccess()
+ {
+ assertTextPresent( "Choose Release Goal for Apache Maven" );
+ }
+
+ public void assertReleaseEmpty()
+ {
+ assertTextPresent( "Cannot release an empty group" );
+ }
+
+ public void addValidM2ProjectFromProjectGroup( String projectGroupName, String groupId, String description,
+ String m2PomUrl ) throws Exception
+ {
+ showProjectGroup( projectGroupName, groupId, description );
+ selectValue( "projectTypes", "Add M2 Project" );
+ clickButtonWithValue( "Add" );
+ assertAddMavenTwoProjectPage();
+
+ setFieldValue( "m2PomUrl", m2PomUrl );
+ clickButtonWithValue( "Add" );
+
+ // if success redirect to summary page
+ assertProjectGroupsSummaryPage();
+ }
+
+ public void goToBuildDefinitionPage( String projectGroupName, String groupId, String description ) throws Exception
+ {
+ showProjectGroup( projectGroupName, groupId, description );
+ clickLinkWithText( "Build Definitions" );
+ assertTextPresent( "Project Group Build Definitions of " + projectGroupName + " group" );
+
+ assertBuildDefinitionPage( projectGroupName );
+ }
+
+ public void assertBuildDefinitionPage( String projectGroupName )
+ {
+
+ assertTextPresent( "Project Group Build Definitions of " + projectGroupName + " group" );
+ assertElementPresent( "buildDefinition_0" );
+ }
+
+ public void assertNotifierPage( String projectGroupName )
+ {
+ assertTextPresent( "Project Group Notifiers of " + projectGroupName + " group" );
+ }
+
+ public void assertAddNotifierPage()
+ {
+ assertPage( "Continuum - Add Notifier" );
+ assertTextPresent( "Add Notifier" );
+ assertTextPresent( "Type" );
+ assertElementPresent( "notifierType" );
+ assertElementPresent( "Cancel" );
+ }
+
+ public void assertAddEditMailNotifierPage()
+ {
+ assertPage( "Continuum - Add/Edit Mail Notifier" );
+ assertTextPresent( "Add/Edit Mail Notifier" );
+ assertTextPresent( "Mail Recipient Address" );
+ assertTextPresent( "Send on Success" );
+ assertTextPresent( "Send on Failure" );
+ assertTextPresent( "Send on Error" );
+ assertTextPresent( "Send on Warning" );
+ assertElementPresent( "address" );
+ assertElementPresent( "Cancel" );
+ }
+
+ public void assertAddEditIrcNotifierPage()
+ {
+ assertPage( "Continuum - Add/Edit IRC Notifier" );
+
+ assertTextPresent( "IRC Host" );
+ assertElementPresent( "host" );
+
+ assertTextPresent( "IRC port" );
+ assertElementPresent( "port" );
+
+ assertTextPresent( "IRC channel" );
+ assertElementPresent( "channel" );
+
+ assertTextPresent( "Nick Name" );
+ assertElementPresent( "nick" );
+
+ assertTextPresent( "Full Name" );
+ assertElementPresent( "fullName" );
+
+ assertTextPresent( "Password" );
+ assertElementPresent( "password" );
+
+ assertTextPresent( "Send on Success" );
+ assertTextPresent( "Send on Failure" );
+ assertTextPresent( "Send on Error" );
+ assertTextPresent( "Send on Warning" );
+ }
+
+ public void assertAddEditJabberPage()
+ {
+ assertPage( "Continuum - Add/Edit Jabber Notifier" );
+
+ assertTextPresent( "Jabber Host" );
+ assertElementPresent( "host" );
+ assertTextPresent( "Jabber port" );
+ assertElementPresent( "port" );
+ assertTextPresent( "Jabber login" );
+ assertElementPresent( "login" );
+ assertTextPresent( "Jabber Password" );
+ assertElementPresent( "password" );
+ assertTextPresent( "Jabber Domain Name" );
+ assertElementPresent( "domainName" );
+ assertTextPresent( "Jabber Recipient Address" );
+ assertElementPresent( "address" );
+
+ assertTextPresent( "Is it a SSL connection?" );
+ assertTextPresent( "Is it a Jabber group?" );
+ assertTextPresent( "Send on Success" );
+ assertTextPresent( "Send on Failure" );
+ assertTextPresent( "Send on Error" );
+ assertTextPresent( "Send on Warning" );
+ }
+
+ public void assertAddEditMsnPage()
+ {
+ assertPage( "Continuum - Add/Edit MSN Notifier" );
+
+ assertTextPresent( "MSN login" );
+ assertElementPresent( "login" );
+ assertTextPresent( "MSN Password" );
+ assertElementPresent( "password" );
+ assertTextPresent( "MSN Recipient Address" );
+ assertElementPresent( "address" );
+
+ assertTextPresent( "Send on Success" );
+ assertTextPresent( "Send on Failure" );
+ assertTextPresent( "Send on Error" );
+ assertTextPresent( "Send on Warning" );
+ }
+
+ public void assertAddEditWagonPage()
+ {
+ assertPage( "Continuum - Add/Edit Wagon Notifier" );
+
+ assertTextPresent( "Project Site URL" );
+ assertElementPresent( "url" );
+
+ assertTextPresent( "Send on Success" );
+ assertTextPresent( "Send on Failure" );
+ assertTextPresent( "Send on Error" );
+ assertTextPresent( "Send on Warning" );
+ }
+
+ public void addMailNotifier( String projectGroupName, String projectGroupId, String projectGroupDescription,
+ String email, boolean isValid ) throws Exception
+ {
+
+ showProjectGroup( projectGroupName, projectGroupId, projectGroupDescription );
+ clickLinkWithText( "Notifiers" );
+ assertNotifierPage( projectGroupName );
+
+ clickButtonWithValue( "Add" );
+ assertAddNotifierPage();
+ selectValue( "addProjectGroupNotifier_notifierType", "Mail" );
+ clickButtonWithValue( "Submit" );
+ assertAddEditMailNotifierPage();
+ setFieldValue( "address", email );
+ clickButtonWithValue( "Save" );
+
+ if ( isValid )
+ {
+ assertNotifierPage( projectGroupName );
+ }
+ else
+ {
+ assertTextPresent( "Address is invalid" );
+ }
+ }
+
+ public void addIrcNotifier( String projectGroupName, String projectGroupId, String projectGroupDescription,
+ String host, String channel, boolean isValid ) throws Exception
+ {
+ showProjectGroup( projectGroupName, projectGroupId, projectGroupDescription );
+
+ clickLinkWithText( "Notifiers" );
+ assertNotifierPage( projectGroupName );
+
+ clickButtonWithValue( "Add" );
+ assertAddNotifierPage();
+ selectValue( "addProjectGroupNotifier_notifierType", "IRC" );
+
+ clickButtonWithValue( "Submit" );
+ assertAddEditIrcNotifierPage();
+ setFieldValue( "host", host );
+ setFieldValue( "channel", channel );
+
+ clickButtonWithValue( "Save" );
+ if ( isValid )
+ {
+ assertNotifierPage( projectGroupName );
+ }
+ else
+ {
+ assertTextPresent( "Host is required" );
+ assertTextPresent( "Channel is required" );
+ }
+ }
+
+ public void addJabberNotifier( String projectGroupName, String projectGroupId, String projectGroupDescription,
+ String host, String login, String password, String address, boolean isValid )
+ throws Exception
+ {
+ showProjectGroup( projectGroupName, projectGroupId, projectGroupDescription );
+
+ clickLinkWithText( "Notifiers" );
+ assertNotifierPage( projectGroupName );
+
+ clickButtonWithValue( "Add" );
+ assertAddNotifierPage();
+ selectValue( "addProjectGroupNotifier_notifierType", "Jabber" );
+ clickButtonWithValue( "Submit" );
+
+ assertAddEditJabberPage();
+ setFieldValue( "host", host );
+ setFieldValue( "login", login );
+ setFieldValue( "password", password );
+ setFieldValue( "address", address );
+ clickButtonWithValue( "Save" );
+
+ if ( isValid )
+ {
+ assertNotifierPage( projectGroupName );
+ }
+ else
+ {
+ assertTextPresent( "Host is required" );
+ assertTextPresent( "Login is required" );
+ assertTextPresent( "Password is required" );
+ assertTextPresent( "Address is required" );
+ }
+ }
+
+ public void addMsnNotifierPage( String projectGroupName, String projectGroupId, String projectGroupDescription,
+ String login, String password, String recipientAddress, boolean isValid )
+ throws Exception
+ {
+ showProjectGroup( projectGroupName, projectGroupId, projectGroupDescription );
+
+ clickLinkWithText( "Notifiers" );
+ assertNotifierPage( projectGroupName );
+
+ clickButtonWithValue( "Add" );
+ assertAddNotifierPage();
+ selectValue( "addProjectGroupNotifier_notifierType", "MSN" );
+ clickButtonWithValue( "Submit" );
+ assertAddEditMsnPage();
+ setFieldValue( "login", login );
+ setFieldValue( "password", password );
+ setFieldValue( "address", recipientAddress );
+ clickButtonWithValue( "Save" );
+
+ if ( isValid )
+ {
+ assertNotifierPage( projectGroupName );
+ }
+ else
+ {
+ assertTextPresent( "Login is required" );
+ assertTextPresent( "Password is required" );
+ assertTextPresent( "Address is required" );
+ }
+ }
+
+ public void addWagonNotifierPage( String projectGroupName, String projectGroupId, String projectGroupDescription,
+ String siteUrl, boolean isValid ) throws Exception
+ {
+ showProjectGroup( projectGroupName, projectGroupId, projectGroupDescription );
+
+ clickLinkWithText( "Notifiers" );
+ assertNotifierPage( projectGroupName );
+
+ clickButtonWithValue( "Add" );
+ assertAddNotifierPage();
+ selectValue( "addProjectGroupNotifier_notifierType", "Wagon" );
+ clickButtonWithValue( "Submit" );
+ assertAddEditWagonPage();
+ setFieldValue( "url", siteUrl );
+ clickButtonWithValue( "Save" );
+
+ if ( isValid )
+ {
+ assertNotifierPage( projectGroupName );
+ }
+ else
+ {
+ assertTextPresent( "Destination URL is required" );
+ }
+ }
+
+ //////////////////////////////////////
+ // General Project Pages
+ //////////////////////////////////////
+ public void goToEditProjectPage( String projectGroupName, String projectName )
+ {
+ clickLinkWithText( "Show Project Groups" );
+ clickLinkWithText( projectGroupName );
+ clickLinkWithText( projectName );
+ clickButtonWithValue( "Edit" );
+
+ assertEditProjectPage();
+ }
+
+ public void assertEditProjectPage()
+ {
+ assertTextPresent( "Update Continuum Project" );
+ assertTextPresent( "Project Name*:" );
+ assertElementPresent( "name" );
+ assertTextPresent( "Version*:" );
+ assertElementPresent( "version" );
+ assertTextPresent( "SCM Url*:" );
+ assertElementPresent( "scmUrl" );
+ assertTextPresent( "Use SCM Credentials Cache, if available" );
+ assertElementPresent( "scmUseCache" );
+ assertTextPresent( "SCM Username:" );
+ assertElementPresent( "scmUsername" );
+ assertTextPresent( "SCM Password:" );
+ assertElementPresent( "scmPassword" );
+ assertTextPresent( "SCM Branch/Tag:" );
+ assertElementPresent( "scmTag" );
+ }
+
+ public void goToAddBuildDefinitionPage( String projectGroupName, String projectName )
+ {
+ clickLinkWithText( "Show Project Groups" );
+ clickLinkWithText( projectGroupName );
+ clickLinkWithText( projectName );
+ clickButtonWithValue( "Add" );
+
+ assertAddBuildDefinitionPage();
+ }
+
+ public void assertAddBuildDefinitionPage()
+ {
+ assertTextPresent( "Add/Edit Build Definition" );
+ assertTextPresent( "POM filename*:" );
+ assertElementPresent( "buildFile" );
+ assertTextPresent( "Goals:" );
+ assertElementPresent( "goals" );
+ assertTextPresent( "Arguments:" );
+ assertElementPresent( "arguments" );
+ assertTextPresent( "Build Fresh" );
+ assertElementPresent( "buildFresh" );
+ assertTextPresent( "Is it default?" );
+ assertElementPresent( "defaultBuildDefinition" );
+ assertTextPresent( "Schedule:" );
+ assertElementPresent( "scheduleId" );
+ }
+
+ public void addBuildDefinition( String projectGroupName, String projectName, String buildFile, String goals,
+ String arguments, boolean buildFresh, boolean isDefault )
+ {
+ goToAddBuildDefinitionPage( projectGroupName, projectName );
+
+ // Enter values into Add Build Definition fields, and submit
+ setFieldValue( "buildFile", buildFile );
+ setFieldValue( "goals", goals );
+ setFieldValue( "arguments", arguments );
+ if ( buildFresh )
+ {
+ checkField( "buildFresh" );
+ }
+ if ( isDefault )
+ {
+ checkField( "defaultBuildDefinition" );
+ }
+
+ submit();
+
+ assertProjectInformationPage();
+ }
+
+ public void goToAddNotifierPage( String projectGroupName, String projectName )
+ {
+ clickLinkWithText( "Show Project Groups" );
+ clickLinkWithText( projectGroupName );
+ clickLinkWithText( projectName );
+ getSelenium().click( "addProjectNotifier" );
+ clickLinkWithXPath( "//input[@id='addProjectNotifier_0']" );
+
+ assertNotifierPage();
+ }
+
+ public void assertNotifierPage()
+ {
+ assertPage( "Continuum - Add Notifier" );
+ assertTextPresent( "Add Notifier" );
+ assertTextPresent( "Type:" );
+ assertElementPresent( "notifierType" );
+ }
+
+ public void addMailNotifier( String projectGroupName, String projectName, String email, boolean success,
+ boolean failure, boolean error, boolean warning )
+ {
+ goToAddNotifierPage( projectGroupName, projectName );
+ clickButtonWithValue( "Submit" );
+
+ // Enter values into Add Notifier fields, and submit
+ setFieldValue( "address", email );
+ if ( success )
+ {
+ checkField( "sendOnSuccess" );
+ }
+ if ( failure )
+ {
+ checkField( "sendOnFailure" );
+ }
+ if ( error )
+ {
+ checkField( "sendOnError" );
+ }
+ if ( warning )
+ {
+ checkField( "sendOnWarning" );
+ }
+
+ submit();
+ assertProjectInformationPage();
+ }
+
+ public void goToProjectInformationPage( String projectGroupName, String projectName )
+ {
+ clickLinkWithText( "Show Project Groups" );
+ clickLinkWithText( projectGroupName );
+ clickLinkWithText( projectName );
+
+ assertProjectInformationPage();
+ }
+
+ public void assertProjectInformationPage()
+ {
+ assertTextPresent( "Project Group Summary" );
+ assertTextPresent( "Project Information" );
+ assertTextPresent( "Builds" );
+ assertTextPresent( "Working Copy" );
+ assertTextPresent( "Build Definitions" );
+ assertTextPresent( "Notifiers" );
+ assertTextPresent( "Dependencies" );
+ assertTextPresent( "Developers" );
}
//////////////////////////////////////
Modified: maven/continuum/trunk/continuum-webapp-test/src/test/it/org/apache/continuum/web/test/AddMavenTwoProjectTest.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp-test/src/test/it/org/apache/continuum/web/test/AddMavenTwoProjectTest.java?view=diff&rev=531425&r1=531424&r2=531425
==============================================================================
--- maven/continuum/trunk/continuum-webapp-test/src/test/it/org/apache/continuum/web/test/AddMavenTwoProjectTest.java (original)
+++ maven/continuum/trunk/continuum-webapp-test/src/test/it/org/apache/continuum/web/test/AddMavenTwoProjectTest.java Mon Apr 23 03:54:47 2007
@@ -152,4 +152,15 @@
submitAddMavenTwoProjectPage( pomUrl, false );
assertTextPresent( "The specified resource isn't a file or the protocol used isn't allowed." );
}
+
+ /**
+ * test cancel button
+ */
+ public void testCancelButton()
+ {
+ goToAboutPage();
+ goToAddMavenTwoProjectPage();
+ clickButtonWithValue( "Cancel" );
+ assertAboutPage();
+ }
}
Modified: maven/continuum/trunk/continuum-webapp-test/src/test/it/org/apache/continuum/web/test/AntTest.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp-test/src/test/it/org/apache/continuum/web/test/AntTest.java?view=diff&rev=531425&r1=531424&r2=531425
==============================================================================
--- maven/continuum/trunk/continuum-webapp-test/src/test/it/org/apache/continuum/web/test/AntTest.java (original)
+++ maven/continuum/trunk/continuum-webapp-test/src/test/it/org/apache/continuum/web/test/AntTest.java Mon Apr 23 03:54:47 2007
@@ -75,6 +75,34 @@
assertTextPresent( "SCM Url is required" );
}
+ public void testSubmitDoubleErrorMessages()
+ {
+ goToAddAntPage();
+ clickButtonWithValue( "Add", false );
+ clickButtonWithValue( "Add", false );
+ assertAddAntProjectPage();
+ if ( "Name is required".equals( getSelenium().getText( "//td/span" ) ) )
+ {
+ assertFalse( "Double Error Messages", "Name is required".equals( getSelenium().getText( "//tr[2]/td/span" ) ) );
+ }
+ if ( "Version is required".equals( getSelenium().getText( "//tr[4]/td/span" ) ) )
+ {
+ assertFalse( "Double Error Messages", "Version is required".equals( getSelenium().getText( "//tr[5]/td/span" ) ) );
+ }
+ if ( "SCM Url is required".equals( getSelenium().getText( "//tr[7]/td/span" ) ) )
+ {
+ assertFalse( "Double Error Messages", "SCM Url is required".equals( getSelenium().getText( "//tr[8]/td/span" ) ) );
+ }
+ }
+
+ public void testCancelButton()
+ {
+ goToAboutPage();
+ goToAddAntPage();
+ clickButtonWithValue( "Cancel" );
+ assertAboutPage();
+ }
+
private void goToAddAntPage()
{
clickLinkWithText( "Ant Project" );
Modified: maven/continuum/trunk/continuum-webapp-test/src/test/it/org/apache/continuum/web/test/ProjectGroupTest.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp-test/src/test/it/org/apache/continuum/web/test/ProjectGroupTest.java?view=diff&rev=531425&r1=531424&r2=531425
==============================================================================
--- maven/continuum/trunk/continuum-webapp-test/src/test/it/org/apache/continuum/web/test/ProjectGroupTest.java (original)
+++ maven/continuum/trunk/continuum-webapp-test/src/test/it/org/apache/continuum/web/test/ProjectGroupTest.java Mon Apr 23 03:54:47 2007
@@ -86,4 +86,390 @@
removeProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
}
+ public void testAddBuildDefinitionWithEmptyStrings() throws Exception
+ {
+ addProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+ showProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+
+ clickLinkWithText( "Build Definitions" );
+ clickButtonWithValue( "Add" );
+ clickButtonWithValue( "Save" );
+
+ assertTextPresent( "POM is required." );
+ removeProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+ }
+
+ public void testAddBuildDefinitionWithSpaces() throws Exception
+ {
+ addProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+ showProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+
+ clickLinkWithText( "Build Definitions" );
+ clickButtonWithValue( "Add" );
+ setFieldValue( "buildFile", "" );
+ clickButtonWithValue( "Save" );
+
+ assertTextPresent( "POM is invalid." );
+ removeProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+ }
+
+ public void testCancelAddProjectGroup() throws Exception
+ {
+ clickLinkWithText( "Show Project Groups" );
+ clickButtonWithValue( "Add Project Group" );
+ clickButtonWithValue( "Cancel" );
+
+ assertPage( "Continuum - Group Summary" );
+ assertTextPresent( "Project Groups" );
+ assertButtonWithValuePresent( "Add Project Group" );
+ }
+
+ public void testCancelEditProjectGroup() throws Exception
+ {
+ addProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+ showProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+
+ clickButtonWithValue( "Edit" );
+ clickButtonWithValue( "Cancel" );
+
+ assertProjectGroupSummaryPage( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+ removeProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+ }
+
+ public void testCancelDeleteProjectGroup() throws Exception
+ {
+ addProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+ showProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+
+ clickButtonWithValue( "Delete" );
+ clickButtonWithValue( "Cancel" );
+
+ assertProjectGroupSummaryPage( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+ removeProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+ }
+
+ public void testCancelAddBuildDefinition() throws Exception
+ {
+ addProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+ showProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+
+ clickLinkWithText( "Build Definitions" );
+ clickButtonWithValue( "Add" );
+ clickButtonWithValue( "Cancel" );
+
+ assertTextPresent( "Project Group Build Definitions of " + TEST_PROJ_GRP_NAME );
+ removeProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+ }
+
+ public void testCancelDeleteBuildDefinition() throws Exception
+ {
+ addProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+ showProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+
+ clickLinkWithText( "Build Definitions" );
+ clickLinkWithXPath( "//img[@alt='Delete']" );
+ clickButtonWithValue( "Cancel" );
+
+ assertTextPresent( "Project Group Build Definitions of " + TEST_PROJ_GRP_NAME );
+ removeProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+ }
+
+ public void testCancelAddNotifier() throws Exception
+ {
+ addProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+ showProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+
+ clickLinkWithText( "Notifiers" );
+ clickButtonWithValue( "Add" );
+ clickButtonWithValue( "Cancel" );
+
+ assertTextPresent( "Project Group Notifiers of " + TEST_PROJ_GRP_NAME );
+ removeProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+ }
+
+ public void testCancelDeleteNotifier() throws Exception
+ {
+ addProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+ showProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+
+ clickLinkWithText( "Notifiers" );
+ clickButtonWithValue( "Add" );
+ clickButtonWithValue( "Submit" );
+ setFieldValue( "address", "email@domain.com" );
+ submit();
+ clickLinkWithXPath( "//img[@alt='Delete']" );
+ clickButtonWithValue( "Cancel" );
+
+ assertTextPresent( "Project Group Notifiers of " + TEST_PROJ_GRP_NAME );
+ removeProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+ }
+
+ public void testAddProjectGroupWithEmptyString() throws Exception
+ {
+ addProjectGroup( "", "", "" );
+ assertTextPresent( "Project Group Name required." );
+ assertTextPresent( "Project Group ID required." );
+ }
+
+ public void testAddProjectGroupWithWhitespaceString() throws Exception
+ {
+ addProjectGroup( " ", " ", " " );
+ assertTextPresent( "Project Group Name required." );
+ assertTextPresent( "Project Group ID required." );
+ }
+
+ public void testEditProjectGroupWithInvalidValues() throws Exception
+ {
+
+ addProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+ editProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION, "",
+ TEST_PROJ_GRP_DESCRIPTION + "_2" );
+
+ assertTextPresent( "Project Group Name required." );
+
+ removeProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+ }
+
+ public void testEditProjectGroupWithValidValues() throws Exception
+ {
+ final String sNewProjectName = TEST_PROJ_GRP_NAME + "_2";
+ final String sNewProjectDescription = TEST_PROJ_GRP_DESCRIPTION + "_2";
+
+ addProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+ editProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION, sNewProjectName,
+ sNewProjectDescription );
+
+ assertProjectGroupSummaryPage( sNewProjectName, TEST_PROJ_GRP_ID, sNewProjectDescription );
+
+ removeProjectGroup( sNewProjectName, TEST_PROJ_GRP_ID, sNewProjectDescription );
+ }
+
+ public void testProjectGroupAllBuildSuccess() throws Exception
+ {
+ addProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+
+ addValidM2ProjectFromProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION,
+ TEST_POM_URL );
+
+ showProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+
+ buildProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+
+ clickButtonWithValue( "Release" );
+
+ assertReleaseSuccess();
+
+ removeProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+ }
+
+ public void testProjectGroupNoProject() throws Exception
+ {
+ addProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+ showProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+
+ clickButtonWithValue( "Release" );
+ assertReleaseEmpty();
+
+ removeProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+ }
+
+ public void testAddGroupProjectAnt() throws Exception
+ {
+ clickLinkWithText( "Ant Project" );
+ assertAddAntProjectPage();
+ setFieldValue( "projectName", "Foo" );
+ setFieldValue( "projectVersion", "1.0-SNAPSHOT" );
+ // TODO change to invalid url
+ setFieldValue( "projectScmUrl",
+ "https://svn.apache.org/repos/asf/maven/continuum/trunk/continuum-test-projects/ant/" );
+
+ // selectValue( "projectTypes", "Add M2 Project" );
+ // setselectedProjectGroup
+ clickButtonWithValue( "Add" );
+
+ assertProjectGroupsSummaryPage();
+ assertTextPresent( "Default Project Group" );
+ clickLinkWithText( "Default Project Group" );
+ assertTextPresent( "Foo" );
+
+ }
+
+ public void testfromGroupBuildDefinition() throws Exception
+ {
+ final String projectGroupName2 = TEST_PROJ_GRP_NAME + "_2";
+ final String projectgroupId2 = TEST_PROJ_GRP_ID + "_2";
+ final String projectGroupDescription2 = TEST_PROJ_GRP_DESCRIPTION + "_2";
+
+ addProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+ addProjectGroup( projectGroupName2, projectgroupId2, projectGroupDescription2 );
+
+ addMavenTwoProject( TEST_POM_URL, "", "", TEST_PROJ_GRP_NAME, true );
+
+ addMavenTwoProject( TEST_POM_URL, "", "", projectGroupName2, true );
+
+ goToBuildDefinitionPage( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+ clickImgWithAlt( "Build" );
+
+ assertProjectGroupsSummaryPage();
+
+ removeProjectGroup( projectGroupName2, projectgroupId2, projectGroupDescription2 );
+ removeProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+ }
+
+ public void testBuildFromProjectGroupSummary() throws Exception
+ {
+ final String projectGroupName2 = TEST_PROJ_GRP_NAME + "_2";
+ final String projectgroupId2 = TEST_PROJ_GRP_ID + "_2";
+ final String projectGroupDescription2 = TEST_PROJ_GRP_DESCRIPTION + "_2";
+
+ addProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+ addProjectGroup( projectGroupName2, projectgroupId2, projectGroupDescription2 );
+
+ addMavenTwoProject( TEST_POM_URL, "", "", TEST_PROJ_GRP_NAME, true );
+
+ addMavenTwoProject( TEST_POM_URL, "", "", projectGroupName2, true );
+
+ showProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+ clickButtonWithValue( "Build" );
+
+ assertProjectGroupSummaryPage( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+
+ removeProjectGroup( projectGroupName2, projectgroupId2, projectGroupDescription2 );
+ removeProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+
+ }
+
+ public void testDeleteProjectGroupBuild() throws Exception
+ {
+ addProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+
+ addMavenTwoProject( TEST_POM_URL, "", "", TEST_PROJ_GRP_NAME, true );
+
+ showProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+ clickImgWithAlt( "Delete" );
+ assertElementPresent( "deleteProject_0" );
+ assertElementPresent( "Cancel" );
+
+ clickSubmitWithLocator( "deleteProject_0" );
+
+ removeProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+ }
+
+ public void testAddValidMailNotifier() throws Exception
+ {
+ addProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+
+ addMailNotifier( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION, "test@test.com", true );
+
+ removeProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+ }
+
+ public void testAddInvalidMailNotifier() throws Exception
+ {
+ addProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+
+ addMailNotifier( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION, "invalid_email_add", false );
+
+ removeProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+ }
+
+ public void testAddValidIrcNotifier() throws Exception
+ {
+ addProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+
+ addIrcNotifier( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION, "test.com", "test_channel",
+ true );
+
+ removeProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+ }
+
+ public void testAddInvalidIrcNotifier() throws Exception
+ {
+ addProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+
+ addIrcNotifier( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION, "", "", false );
+
+ removeProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+ }
+
+ public void testAddValidJabberNotifier() throws Exception
+ {
+ addProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+
+ addJabberNotifier( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION, "test", "test_login",
+ "hello", "test@address.com", true );
+
+ removeProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+ }
+
+ public void testAddInvalidJabberNotifier() throws Exception
+ {
+ addProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+
+ addJabberNotifier( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION, "", "", "", "", false );
+
+ removeProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+ }
+
+ public void testAddValidMsnNotifier() throws Exception
+ {
+ addProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+
+ addMsnNotifierPage( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION, "test", "hello",
+ "test@address.com", true );
+
+ removeProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+ }
+
+ public void testAddInvalidMsnNotifier() throws Exception
+ {
+ addProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+
+ addMsnNotifierPage( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION, "", "", "", false );
+
+ removeProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+ }
+
+ public void testAddValidWagonNotifier() throws Exception
+ {
+ addProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+
+ addWagonNotifierPage( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION, TEST_POM_URL, true );
+
+ removeProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+ }
+
+ public void testAddInvalidWagonNotifier() throws Exception
+ {
+ addProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+
+ addWagonNotifierPage( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION, "", false );
+
+ removeProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+ }
+
+ public void testDeleteNotifier() throws Exception
+ {
+ addProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+ showProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+
+ clickLinkWithText( "Notifiers" );
+ assertNotifierPage( TEST_PROJ_GRP_NAME );
+
+ clickButtonWithValue( "Add" );
+ assertAddNotifierPage();
+ selectValue( "addProjectGroupNotifier_notifierType", "Wagon" );
+ clickButtonWithValue( "Submit" );
+ assertAddEditWagonPage();
+ setFieldValue( "url", TEST_POM_URL );
+ clickButtonWithValue( "Save" );
+
+ assertNotifierPage( TEST_PROJ_GRP_NAME );
+
+ clickImgWithAlt( "Delete" );
+ clickSubmitWithLocator( "deleteProjectGroupNotifier_0" );
+ assertNotifierPage( TEST_PROJ_GRP_NAME );
+
+ removeProjectGroup( TEST_PROJ_GRP_NAME, TEST_PROJ_GRP_ID, TEST_PROJ_GRP_DESCRIPTION );
+ }
}
Modified: maven/continuum/trunk/continuum-webapp-test/src/test/it/org/apache/continuum/web/test/SchedulesPageTest.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp-test/src/test/it/org/apache/continuum/web/test/SchedulesPageTest.java?view=diff&rev=531425&r1=531424&r2=531425
==============================================================================
--- maven/continuum/trunk/continuum-webapp-test/src/test/it/org/apache/continuum/web/test/SchedulesPageTest.java (original)
+++ maven/continuum/trunk/continuum-webapp-test/src/test/it/org/apache/continuum/web/test/SchedulesPageTest.java Mon Apr 23 03:54:47 2007
@@ -196,16 +196,37 @@
assertEditSchedulePage();
HashMap fields = new HashMap();
+ fields.put( FIELD_MAXJOBEXECUTIONTIME, "" );
boolean valid = false;
boolean wait = false;
- // test saving without editing anything from the initial edit page
+ // test saving without editing anything from the initial edit page except for Max Job Execution Time
inputSchedule( fields, wait, valid );
assertTrue( "Name field not validated",
getSelenium().isElementPresent( "//tr/td[span='schedule.name.required']" ) );
assertTrue( "Description field not validated",
getSelenium().isElementPresent( "//tr/td[span='schedule.version.required']" ) );
+ assertTrue( "Max Job Execution Time field not validated",
+ getSelenium().isElementPresent( "//tr/td[span='schedule.maxJobExecutionTime.required']" ) );
+
+ // go back to the schedules page
+ clickLinkWithText( "Schedules" );
+
+ // start new schedule add session
+ clickButtonWithValue( "Add" );
+
+ // test saving using spaces for name and description
+ fields.put( FIELD_NAME, " " );
+ fields.put( FIELD_DESCRIPTION, " " );
+
+ inputSchedule( fields, wait, valid );
+
+ //TODO: Fix text validation, we need real text and not a property in the screen
+ assertTrue( "Name field not validated",
+ getSelenium().isElementPresent( "//tr/td[span='schedule.name.required']" ) );
+ assertTrue( "Description field not validated",
+ getSelenium().isElementPresent( "//tr/td[span='schedule.version.required']" ) );
// go back to the schedules page
clickLinkWithText( "Schedules" );
@@ -226,13 +247,62 @@
assertFalse( "Name field improperly validated",
getSelenium().isElementPresent( "//tr/td[span='schedule.name.required']" ) );
assertFalse( "Description field improperly validated",
- getSelenium().isElementPresent( "//tr/td[span='schedule.name.required']" ) );
+ getSelenium().isElementPresent( "//tr/td[span='schedule.version.required']" ) );
+ assertFalse( "Max Job Execution Time field improperly validated",
+ getSelenium().isElementPresent( "//tr/td[span='schedule.maxJobExecutionTime.required']" ) );
assertTrue( "MaxJobExecutionTime not validated", isTextPresent( "schedule.maxJobExecutionTime.invalid" ) );
assertTrue( "Delay not validated", isTextPresent( "schedule.delay.invalid" ) );
assertEditSchedulePage();
}
+
+ public void testScheduleAddEditPageDoubleErrorMessages()
+ {
+ clickButtonWithValue( "Add" );
+
+ assertEditSchedulePage();
+
+ HashMap fields = new HashMap();
+ boolean valid = false;
+ boolean wait = false;
+
+ // test double error messages issue of webworks
+ inputSchedule( fields, wait, valid );
+ clickButtonWithValue( "Save", false );
+
+ if ( "schedule.name.required".equals( getSelenium().getText( "//td/span" ) ) )
+ {
+ assertFalse( "Double Error Messages", "schedule.name.required".equals( getSelenium().getText( "//tr[2]/td/span" ) ) );
+ }
+ if ( "schedule.version.required".equals( getSelenium().getText( "//tr[4]/td/span" ) ) )
+ {
+ assertFalse( "Double Error Messages", "schedule.version.required".equals( getSelenium().getText( "//tr[5]/td/span" ) ) );
+ }
+
+ assertEditSchedulePage();
+ }
+
+ public void testCancelAddSchedule()
+ {
+ clickButtonWithValue( "Add" );
+ clickButtonWithValue( "Cancel" );
+ assertSchedulesPage();
+ }
+
+ public void testCancelEditSchedule()
+ {
+ clickLinkWithXPath( "//img[@alt='Edit']" );
+ clickButtonWithValue( "Cancel" );
+ assertSchedulesPage();
+ }
+
+ public void testCancelDeleteSchedule()
+ {
+ clickLinkWithXPath( "//img[@alt='Delete']" );
+ clickButtonWithValue( "Cancel" );
+ assertSchedulesPage();
+ }
public void assertSchedulesPage()
{