You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@continuum.apache.org by br...@apache.org on 2012/10/01 19:45:45 UTC
svn commit: r1392470 - in /continuum/trunk/continuum-webapp-test/src/test:
resources/testng.properties
testng/org/apache/continuum/web/test/ReleaseTest.java
Author: brett
Date: Mon Oct 1 17:45:44 2012
New Revision: 1392470
URL: http://svn.apache.org/viewvc?rev=1392470&view=rev
Log:
[CONTINUUM-2687] improve selenium tests for release prepare actions
Modified:
continuum/trunk/continuum-webapp-test/src/test/resources/testng.properties
continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/ReleaseTest.java
Modified: continuum/trunk/continuum-webapp-test/src/test/resources/testng.properties
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp-test/src/test/resources/testng.properties?rev=1392470&r1=1392469&r2=1392470&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp-test/src/test/resources/testng.properties (original)
+++ continuum/trunk/continuum-webapp-test/src/test/resources/testng.properties Mon Oct 1 17:45:44 2012
@@ -180,7 +180,7 @@ DISTRIBUTED_DUPLICATE_BUILD_ENV=Distribu
RELEASE_PROJECT_GROUP_NAME=Distributed Release Test Project Group
RELEASE_PROJECT_GROUP_ID=com.example.release
-RELEASE_PROJECT_TAGBASE=scm:svn:${svn.base.url}/tags
+RELEASE_PROJECT_TAGBASE=${svn.base.url}/tags
RELEASE_PROJECT_TAG=simple-example-1.0
RELEASE_PROJECT_VERSION=1.0
RELEASE_PROJECT_DEVELOPMENT_VERSION=1.1-SNAPSHOT
Modified: continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/ReleaseTest.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/ReleaseTest.java?rev=1392470&r1=1392469&r2=1392470&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/ReleaseTest.java (original)
+++ continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/ReleaseTest.java Mon Oct 1 17:45:44 2012
@@ -145,12 +145,13 @@ public class ReleaseTest
assertReleaseChoicePage();
// first attempt
- releasePrepareProject( "", "", tagBase, tag, releaseVersion, developmentVersion, releaseBuildEnvironment,
- true );
+ releasePrepareProject( "", "", tagBase, "simple-example-1.1", "1.1", "1.2-SNAPSHOT", releaseBuildEnvironment );
+ assertReleasePhaseSuccess();
clickButtonWithValue( "Done" );
// second attempt
- releasePrepareProject( "", "", tagBase, tag, "1.1", "1.2-SNAPSHOT", releaseBuildEnvironment, true );
+ releasePrepareProject( "", "", tagBase, "simple-example-1.2", "1.2", "1.3-SNAPSHOT", releaseBuildEnvironment );
+ assertReleasePhaseSuccess();
clickButtonWithValue( "Done" );
// check prepared releases content (timestamp version)
@@ -159,7 +160,20 @@ public class ReleaseTest
// check that two versions are present
Assert.assertEquals( Arrays.asList( getSelenium().getSelectOptions( "preparedReleaseId" ) ), Arrays.asList(
- "1.0", "1.1", PROVIDE_RELEASE_PARAMETERS_TEXT ) );
+ "1.1", "1.2", PROVIDE_RELEASE_PARAMETERS_TEXT ) );
+
+ // check that 1.2 is selected by default
+ Assert.assertEquals( getSelenium().getSelectedLabel( "preparedReleaseId" ), "1.2" );
+
+ // test perform on 1.1
+ selectPerformAndSubmit();
+
+ setFieldValue( "goals", "clean validate" );
+ submit();
+
+ waitForRelease();
+
+ assertReleasePhaseSuccess();
}
public void testReleasePrepareWhenAgentGoesDown()
@@ -170,8 +184,8 @@ public class ReleaseTest
clickButtonWithValue( RELEASE_BUTTON_TEXT );
assertReleaseChoicePage();
- releasePrepareProject( "", "", tagBase, tag, releaseVersion, developmentVersion, releaseBuildEnvironment,
- true );
+ releasePrepareProject( "", "", tagBase, "simple-example-2.0", "2.0", "2.1-SNAPSHOT", releaseBuildEnvironment );
+ assertReleasePhaseSuccess();
// disable agent
goToBuildAgentPage();
@@ -189,7 +203,7 @@ public class ReleaseTest
// check that the version is present
Assert.assertEquals( Arrays.asList( getSelenium().getSelectOptions( "preparedReleaseId" ) ), Arrays.asList(
- "1.0", PROVIDE_RELEASE_PARAMETERS_TEXT ) );
+ "2.0", PROVIDE_RELEASE_PARAMETERS_TEXT ) );
}
public void testReleasePrepareProjectWithInvalidUsernamePasswordInDistributedBuilds()
@@ -202,7 +216,8 @@ public class ReleaseTest
clickButtonWithValue( RELEASE_BUTTON_TEXT );
assertReleaseChoicePage();
releasePrepareProject( releaseUsername, releasePassword, tagBase, tag, releaseVersion, developmentVersion,
- releaseBuildEnvironment, true );
+ releaseBuildEnvironment );
+ assertReleasePhaseError();
assertPreparedReleasesFileContainsBuildAgent();
}
@@ -218,8 +233,9 @@ public class ReleaseTest
clickButtonWithValue( RELEASE_BUTTON_TEXT );
assertReleaseChoicePage();
- releasePrepareProject( "", "", tagBase, tag, releaseVersion, developmentVersion, releaseBuildEnvironment,
- false );
+ releasePrepareProject( "", "", tagBase, tag, releaseVersion, developmentVersion, releaseBuildEnvironment );
+
+ assertReleaseError();
assertTextPresent( errorMessageNoAgent );
}
@@ -236,8 +252,9 @@ public class ReleaseTest
clickButtonWithValue( RELEASE_BUTTON_TEXT );
assertReleaseChoicePage();
- releasePrepareProject( "", "", tagBase, tag, releaseVersion, developmentVersion, releaseBuildEnvironment,
- false );
+ releasePrepareProject( "", "", tagBase, tag, releaseVersion, developmentVersion, releaseBuildEnvironment );
+
+ assertReleaseError();
assertTextPresent( errorMessageNoAgent );
}
@@ -252,7 +269,9 @@ public class ReleaseTest
clickButtonWithValue( RELEASE_BUTTON_TEXT );
assertReleaseChoicePage();
- releasePrepareProject( "", "", tagBase, tag, releaseVersion, developmentVersion, "", true );
+ releasePrepareProject( "", "", tagBase, tag, releaseVersion, developmentVersion, "" );
+
+ assertReleasePhaseSuccess();
assertPreparedReleasesFileContainsBuildAgent();
}
@@ -354,8 +373,7 @@ public class ReleaseTest
}
private void releasePrepareProject( String username, String password, String tagBase, String tag,
- String releaseVersion, String developmentVersion, String buildEnv,
- boolean success )
+ String releaseVersion, String developmentVersion, String buildEnv )
{
goToReleasePreparePage();
setFieldValue( "scmUsername", username );
@@ -368,7 +386,7 @@ public class ReleaseTest
setFieldValue( "devVersions", developmentVersion );
submit();
- assertRelease( success );
+ waitForRelease();
}
private void releasePerformProjectWithProvideParameters( String username, String password, String tagBase,
@@ -384,7 +402,9 @@ public class ReleaseTest
selectValue( "profileId", buildEnv );
submit();
- assertRelease();
+ waitForRelease();
+
+ assertReleasePhaseError();
}
private void goToReleasePreparePage()
@@ -396,9 +416,14 @@ public class ReleaseTest
private void goToReleasePerformProvideParametersPage()
{
+ selectPerformAndSubmit();
+ assertReleasePerformProvideParametersPage();
+ }
+
+ private void selectPerformAndSubmit()
+ {
clickLinkWithLocator( "//input[@name='goal' and @value='perform']", false );
submit();
- assertReleasePerformProvideParametersPage();
}
private void assertReleasePreparePage()
@@ -435,28 +460,30 @@ public class ReleaseTest
assertButtonWithValuePresent( "Submit" );
}
- private void assertRelease()
+ private void assertReleaseError()
{
- assertRelease( true );
+ assertTextPresent( "Release Error" );
}
- private void assertRelease( boolean success )
+ private void assertReleasePhaseError()
+ {
+ assertButtonWithValuePresent( "Rollback changes" );
+ assertImgWithAlt( "Error" );
+ }
+
+ private void assertReleasePhaseSuccess()
+ {
+ assertButtonWithValuePresent( "Rollback changes" );
+ assertElementNotPresent( "//img[@alt='Error']" );
+ }
+
+ private void waitForRelease()
{
String doneButtonLocator = "//input[@id='releaseCleanup_0']";
String errorTextLocator = "//h3[text()='Release Error']";
// condition for release is complete; "Done" button or "Release Error" in page is present
waitForOneOfElementsPresent( Arrays.asList( doneButtonLocator, errorTextLocator ), true );
-
- if ( success )
- {
- assertButtonWithValuePresent( "Rollback changes" );
- assertImgWithAlt( "Error" );
- }
- else
- {
- assertTextPresent( "Release Error" );
- }
}
private void assertPreparedReleasesFileContainsBuildAgent()