Return-Path: Delivered-To: apmail-continuum-commits-archive@www.apache.org Received: (qmail 51756 invoked from network); 29 Jan 2010 01:27:11 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 29 Jan 2010 01:27:11 -0000 Received: (qmail 37617 invoked by uid 500); 29 Jan 2010 01:27:11 -0000 Delivered-To: apmail-continuum-commits-archive@continuum.apache.org Received: (qmail 37561 invoked by uid 500); 29 Jan 2010 01:27:10 -0000 Mailing-List: contact commits-help@continuum.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@continuum.apache.org Delivered-To: mailing list commits@continuum.apache.org Received: (qmail 37552 invoked by uid 99); 29 Jan 2010 01:27:10 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 29 Jan 2010 01:27:10 +0000 X-ASF-Spam-Status: No, hits=-1998.5 required=10.0 tests=ALL_TRUSTED,WEIRD_PORT X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 29 Jan 2010 01:27:09 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id D1D0A23889FA; Fri, 29 Jan 2010 01:26:48 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r904336 - in /continuum/trunk/continuum-webapp-test: ./ src/appserver-base/ src/appserver-base/conf/ src/test/resources/ src/test/testng/config/ src/test/testng/org/apache/continuum/web/test/ src/test/testng/org/apache/continuum/web/test/pa... Date: Fri, 29 Jan 2010 01:26:48 -0000 To: commits@continuum.apache.org From: ctan@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20100129012648.D1D0A23889FA@eris.apache.org> Author: ctan Date: Fri Jan 29 01:26:47 2010 New Revision: 904336 URL: http://svn.apache.org/viewvc?rev=904336&view=rev Log: [CONTINUUM-2450] added selenium test Added: continuum/trunk/continuum-webapp-test/src/appserver-base/ continuum/trunk/continuum-webapp-test/src/appserver-base/conf/ continuum/trunk/continuum-webapp-test/src/appserver-base/conf/continuum-buildagent.xml continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/ReleaseTest.java continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/parent/AbstractReleaseTest.java Modified: continuum/trunk/continuum-webapp-test/pom.xml continuum/trunk/continuum-webapp-test/src/test/resources/testng.properties continuum/trunk/continuum-webapp-test/src/test/testng/config/testng.xml continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/BuildAgentsTest.java continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/MavenTwoProjectTest.java continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/ProjectGroupTest.java continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/parent/AbstractBuildAgentsTest.java continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/parent/AbstractContinuumTest.java continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/parent/AbstractSeleniumTest.java Modified: continuum/trunk/continuum-webapp-test/pom.xml URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp-test/pom.xml?rev=904336&r1=904335&r2=904336&view=diff ============================================================================== --- continuum/trunk/continuum-webapp-test/pom.xml (original) +++ continuum/trunk/continuum-webapp-test/pom.xml Fri Jan 29 01:26:47 2010 @@ -129,6 +129,12 @@ ${project.version} war + + org.apache.continuum + continuum-buildagent-webapp + ${project.version} + war + @@ -275,10 +281,36 @@ continuum + + ${project.groupId} + continuum-buildagent-webapp + war + + continuum-buildagent + + + + maven-antrun-plugin + + + generate-resources + + run + + + + + + + + + + + Added: continuum/trunk/continuum-webapp-test/src/appserver-base/conf/continuum-buildagent.xml URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp-test/src/appserver-base/conf/continuum-buildagent.xml?rev=904336&view=auto ============================================================================== --- continuum/trunk/continuum-webapp-test/src/appserver-base/conf/continuum-buildagent.xml (added) +++ continuum/trunk/continuum-webapp-test/src/appserver-base/conf/continuum-buildagent.xml Fri Jan 29 01:26:47 2010 @@ -0,0 +1,25 @@ + + + + + http://localhost:9595/continuum/master-xmlrpc + target/data/build-agent/build-output-directory + target/data/build-agent/working-directory + 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=904336&r1=904335&r2=904336&view=diff ============================================================================== --- continuum/trunk/continuum-webapp-test/src/test/resources/testng.properties (original) +++ continuum/trunk/continuum-webapp-test/src/test/resources/testng.properties Fri Jan 29 01:26:47 2010 @@ -34,6 +34,10 @@ M2_DELETE_PROJ_GRP_ID=org.apache.continuum.examples M2_DELETE_PROJ_GRP_DESCRIPTION=Delete test project M2_DELETE_PROJ_GRP_SCM_ROOT_URL=scm:svn:http://svn.apache.org/repos/asf/continuum/sandbox/simple-example +M2_DELETE_PROJ_TAGBASE=scm:svn:https://svn.apache.org/repos/asf/continuum/sandbox/tags +M2_DELETE_PROJ_TAG=simple-example-1.0 +M2_DELETE_PROJ_RELEASE_VERSION=1.0 +M2_DELETE_PROJ_DEVELOPMENT_VERSION=1.1-SNAPSHOT # SCM element is missing from pom NOT_SCM_POM_URL=http://svn.apache.org/repos/asf/continuum/trunk/continuum-webapp-test/src/test/resources/unit/maven-two-projects/missing-scm-element-pom.xml @@ -271,10 +275,10 @@ ######################## # buildAgents group ######################## -BUILD_AGENT_NAME =Agent_url_name -BUILD_AGENT_DESCRIPTION =Agent_description -BUILD_AGENT_NAME2 =Second_Agent -BUILD_AGENT_DESCRIPTION2 =Agent_description2 -BUILD_AGENT_NAME3 =Third_Agent -BUILD_AGENT_DESCRIPTION3 =Agent_description3 -BUILD_AGENT_GROUPNAME =agent_groupname +BUILD_AGENT_NAME2=http://localhost:9595/continuum-buildagent/xmlrpc +BUILD_AGENT_DESCRIPTION2=Agent_description2 +BUILD_AGENT_NAME=First_Agent +BUILD_AGENT_DESCRIPTION=Agent_description +BUILD_AGENT_NAME3=Third_Agent +BUILD_AGENT_DESCRIPTION3=Agent_description3 +BUILD_AGENT_GROUPNAME=agent_groupname Modified: continuum/trunk/continuum-webapp-test/src/test/testng/config/testng.xml URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp-test/src/test/testng/config/testng.xml?rev=904336&r1=904335&r2=904336&view=diff ============================================================================== --- continuum/trunk/continuum-webapp-test/src/test/testng/config/testng.xml (original) +++ continuum/trunk/continuum-webapp-test/src/test/testng/config/testng.xml Fri Jan 29 01:26:47 2010 @@ -62,6 +62,7 @@ + Modified: continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/BuildAgentsTest.java URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/BuildAgentsTest.java?rev=904336&r1=904335&r2=904336&view=diff ============================================================================== --- continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/BuildAgentsTest.java (original) +++ continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/BuildAgentsTest.java Fri Jan 29 01:26:47 2010 @@ -23,65 +23,62 @@ import org.testng.annotations.Test; import org.apache.continuum.web.test.parent.AbstractBuildAgentsTest; - @Test( groups = { "agent" }, dependsOnMethods = { "testDeleteBuildDefinitionTemplate" } ) public class BuildAgentsTest extends AbstractBuildAgentsTest { - + @Test( dependsOnMethods = { "testProjectGroupAllBuildSuccess" } ) public void testAddBuildAgent() { - String BUILD_AGENT_NAME = getProperty( "BUILD_AGENT_NAME" ); - String BUILD_AGENT_DESCRIPTION = getProperty( "BUILD_AGENT_DESCRIPTION" ); - String BUILD_AGENT_NAME2 = getProperty( "BUILD_AGENT_NAME2" ); - String BUILD_AGENT_DESCRIPTION2 = getProperty( "BUILD_AGENT_DESCRIPTION2" ); - String BUILD_AGENT_NAME3 = getProperty( "BUILD_AGENT_NAME3" ); - String BUILD_AGENT_DESCRIPTION3 = getProperty( "BUILD_AGENT_DESCRIPTION3" ); + String BUILD_AGENT_NAME = getProperty( "BUILD_AGENT_NAME" ); + String BUILD_AGENT_DESCRIPTION = getProperty( "BUILD_AGENT_DESCRIPTION" ); + String BUILD_AGENT_NAME2 = getProperty( "BUILD_AGENT_NAME2" ); + String BUILD_AGENT_DESCRIPTION2 = getProperty( "BUILD_AGENT_DESCRIPTION2" ); + String BUILD_AGENT_NAME3 = getProperty( "BUILD_AGENT_NAME3" ); + String BUILD_AGENT_DESCRIPTION3 = getProperty( "BUILD_AGENT_DESCRIPTION3" ); - enableDistributedBuilds(); + enableDistributedBuilds(); goToAddBuildAgent(); - addBuildAgent( BUILD_AGENT_NAME, BUILD_AGENT_DESCRIPTION, true ); + addBuildAgent( BUILD_AGENT_NAME, BUILD_AGENT_DESCRIPTION, true, false ); goToAddBuildAgent(); - addBuildAgent( BUILD_AGENT_NAME2, BUILD_AGENT_DESCRIPTION2, true ); + addBuildAgent( BUILD_AGENT_NAME2, BUILD_AGENT_DESCRIPTION2, true, true ); goToAddBuildAgent(); - addBuildAgent( BUILD_AGENT_NAME3, BUILD_AGENT_DESCRIPTION3, true ); + addBuildAgent( BUILD_AGENT_NAME3, BUILD_AGENT_DESCRIPTION3, true, false ); disableDistributedBuilds(); - } + } - @Test( dependsOnMethods = { "testEditBuildAgent" } ) + @Test( dependsOnMethods = { "testEditBuildAgent" } ) public void testAddAnExistingBuildAgent() { - String BUILD_AGENT_NAME = getProperty( "BUILD_AGENT_NAME" ); - String BUILD_AGENT_DESCRIPTION = getProperty( "BUILD_AGENT_DESCRIPTION" ); + String BUILD_AGENT_NAME = getProperty( "BUILD_AGENT_NAME" ); + String BUILD_AGENT_DESCRIPTION = getProperty( "BUILD_AGENT_DESCRIPTION" ); - enableDistributedBuilds(); - goToAddBuildAgent(); - addBuildAgent( BUILD_AGENT_NAME, BUILD_AGENT_DESCRIPTION, false ) ; + enableDistributedBuilds(); + goToAddBuildAgent(); + addBuildAgent( BUILD_AGENT_NAME, BUILD_AGENT_DESCRIPTION, false, false ) ; assertTextPresent( "Build agent already exists" ); disableDistributedBuilds(); } - @Test( dependsOnMethods = { "testAddBuildAgent" } ) - public void testEditBuildAgent() - + @Test( dependsOnMethods = { "testAddBuildAgent" } ) + public void testEditBuildAgent() { - String BUILD_AGENT_NAME = getProperty( "BUILD_AGENT_NAME" ); - String BUILD_AGENT_DESCRIPTION = getProperty( "BUILD_AGENT_DESCRIPTION" ); - String new_agentDescription = "new_agentDescription"; - - enableDistributedBuilds(); - goToEditBuildAgent( BUILD_AGENT_NAME, BUILD_AGENT_DESCRIPTION); - addEditBuildAgent( BUILD_AGENT_NAME, new_agentDescription ); - goToEditBuildAgent( BUILD_AGENT_NAME, new_agentDescription); - addEditBuildAgent( BUILD_AGENT_NAME, BUILD_AGENT_DESCRIPTION ); - disableDistributedBuilds(); + String BUILD_AGENT_NAME = getProperty( "BUILD_AGENT_NAME" ); + String BUILD_AGENT_DESCRIPTION = getProperty( "BUILD_AGENT_DESCRIPTION" ); + String new_agentDescription = "new_agentDescription"; + + enableDistributedBuilds(); + goToEditBuildAgent( BUILD_AGENT_NAME, BUILD_AGENT_DESCRIPTION ); + addEditBuildAgent( BUILD_AGENT_NAME, new_agentDescription ); + goToEditBuildAgent( BUILD_AGENT_NAME, new_agentDescription); + addEditBuildAgent( BUILD_AGENT_NAME, BUILD_AGENT_DESCRIPTION ); + disableDistributedBuilds(); } - @Test( dependsOnMethods = { "testAddAnExistingBuildAgent" } ) + @Test( dependsOnMethods = { "testAddAnExistingBuildAgent" } ) public void testDeleteBuildAgent() - { - enableDistributedBuilds(); + enableDistributedBuilds(); goToBuildAgentPage(); String BUILD_AGENT_NAME3 = getProperty( "BUILD_AGENT_NAME3" ); removeBuildAgent( BUILD_AGENT_NAME3 ); @@ -96,69 +93,77 @@ enableDistributedBuilds(); goToAddBuildAgent(); - addBuildAgent( "", BUILD_AGENT_DESCRIPTION, false ) ; + addBuildAgent( "", BUILD_AGENT_DESCRIPTION, false, false ) ; assertTextPresent( "Build agent url is required." ); disableDistributedBuilds(); } //TESTS FOR BUILD AGENT GROUPS - @Test( dependsOnMethods = { "testAddBuildAgent" } ) + @Test( dependsOnMethods = { "testAddBuildAgent", "testDeleteBuildAgent" } ) public void testAddBuildAgentGroup() - throws Exception + throws Exception { - String BUILD_AGENT_GROUPNAME = getProperty( "BUILD_AGENT_GROUPNAME" ); - enableDistributedBuilds(); - goToAddBuildAgentGroup(); - addEditBuildAgentGroup( BUILD_AGENT_GROUPNAME, new String[] { "Agent_url_name", "Second_Agent" }, new String[] {}, true ); - disableDistributedBuilds(); - } + String BUILD_AGENT_NAME = getProperty( "BUILD_AGENT_NAME" ); + String BUILD_AGENT_NAME2 = getProperty( "BUILD_AGENT_NAME2" ); + String BUILD_AGENT_GROUPNAME = getProperty( "BUILD_AGENT_GROUPNAME" ); + + enableDistributedBuilds(); + goToAddBuildAgentGroup(); + addEditBuildAgentGroup( BUILD_AGENT_GROUPNAME, new String[] { BUILD_AGENT_NAME, BUILD_AGENT_NAME2 }, new String[] {}, true ); + disableDistributedBuilds(); + } - @Test( dependsOnMethods = { "testAddBuildAgentGroup" } ) + @Test( dependsOnMethods = { "testAddBuildAgentGroup" } ) public void testEditBuildAgentGroup() throws Exception { - String BUILD_AGENT_GROUPNAME = getProperty( "BUILD_AGENT_GROUPNAME" ); + String BUILD_AGENT_NAME = getProperty( "BUILD_AGENT_NAME" ); + String BUILD_AGENT_NAME2 = getProperty( "BUILD_AGENT_NAME2" ); + String BUILD_AGENT_GROUPNAME = getProperty( "BUILD_AGENT_GROUPNAME" ); + String newName = "new_agentgroupname"; enableDistributedBuilds(); - goToEditBuildAgentGroup( BUILD_AGENT_GROUPNAME, new String[] { "Agent_url_name", "Second_Agent" } ); + goToEditBuildAgentGroup( BUILD_AGENT_GROUPNAME, new String[] { BUILD_AGENT_NAME, BUILD_AGENT_NAME2 } ); addEditBuildAgentGroup( newName, new String[] {}, - new String[] { "Second_Agent" }, true ); - goToEditBuildAgentGroup( newName, new String[] { "Agent_url_name" } ); - addEditBuildAgentGroup( BUILD_AGENT_GROUPNAME, new String[] { "Second_Agent" }, + new String[] { BUILD_AGENT_NAME2 }, true ); + goToEditBuildAgentGroup( newName, new String[] { BUILD_AGENT_NAME } ); + addEditBuildAgentGroup( BUILD_AGENT_GROUPNAME, new String[] { BUILD_AGENT_NAME2 }, new String[] {}, true ); disableDistributedBuilds(); } - @Test( dependsOnMethods = { "testEditBuildAgentGroup" } ) + @Test( dependsOnMethods = { "testEditBuildAgentGroup" } ) public void testAddAnExistingBuildAgentGroup() - throws Exception + throws Exception { + String BUILD_AGENT_NAME = getProperty( "BUILD_AGENT_NAME" ); + String BUILD_AGENT_NAME2 = getProperty( "BUILD_AGENT_NAME2" ); String BUILD_AGENT_GROUPNAME = getProperty( "BUILD_AGENT_GROUPNAME" ); enableDistributedBuilds(); - goToAddBuildAgentGroup(); - addEditBuildAgentGroup( BUILD_AGENT_GROUPNAME, new String[] { "Agent_url_name", "Second_Agent" }, new String[] {}, false ); - assertTextPresent( "Build agent group already exists." ); - disableDistributedBuilds(); + goToAddBuildAgentGroup(); + addEditBuildAgentGroup( BUILD_AGENT_GROUPNAME, new String[] { BUILD_AGENT_NAME, BUILD_AGENT_NAME2 }, new String[] {}, false ); + assertTextPresent( "Build agent group already exists." ); + disableDistributedBuilds(); } @Test( dependsOnMethods = { "testAddAnExistingBuildAgentGroup" } ) public void testAddEmptyBuildAgentGroupName() - throws Exception + throws Exception { enableDistributedBuilds(); - goToAddBuildAgentGroup(); - addEditBuildAgentGroup( "", new String[] {}, new String[] {}, false ); - assertTextPresent( "Build agent group name required." ); - disableDistributedBuilds(); + goToAddBuildAgentGroup(); + addEditBuildAgentGroup( "", new String[] {}, new String[] {}, false ); + assertTextPresent( "Build agent group name required." ); + disableDistributedBuilds(); } @Test( dependsOnMethods = { "testAddEmptyBuildAgentGroupName" } ) public void testDeleteBuildAgentGroup() { - String BUILD_AGENT_GROUPNAME = getProperty( "BUILD_AGENT_GROUPNAME" ); - enableDistributedBuilds(); + String BUILD_AGENT_GROUPNAME = getProperty( "BUILD_AGENT_GROUPNAME" ); + enableDistributedBuilds(); removeBuildAgentGroup( BUILD_AGENT_GROUPNAME ); disableDistributedBuilds(); } Modified: continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/MavenTwoProjectTest.java URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/MavenTwoProjectTest.java?rev=904336&r1=904335&r2=904336&view=diff ============================================================================== --- continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/MavenTwoProjectTest.java (original) +++ continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/MavenTwoProjectTest.java Fri Jan 29 01:26:47 2010 @@ -271,6 +271,14 @@ // remove project group removeProjectGroup( M2_PROJ_GRP_NAME ); assertLinkNotPresent( M2_PROJ_GRP_NAME ); + + // re-add for later use + addMaven2Project( M2_PROJ_GRP_NAME ); + clickLinkWithText( M2_PROJ_GRP_NAME ); + + assertPage( "Continuum - Project Group" ); + //wait for project to finish checkout + waitForProjectCheckout(); } private void addMaven2Project( String groupName ) Modified: continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/ProjectGroupTest.java URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/ProjectGroupTest.java?rev=904336&r1=904335&r2=904336&view=diff ============================================================================== --- continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/ProjectGroupTest.java (original) +++ continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/ProjectGroupTest.java Fri Jan 29 01:26:47 2010 @@ -20,6 +20,7 @@ */ import org.apache.continuum.web.test.parent.AbstractContinuumTest; +import org.apache.continuum.web.test.parent.AbstractSeleniumTest; import org.testng.annotations.Test; /** @@ -142,6 +143,25 @@ assertReleaseSuccess(); } + @Test( dependsOnMethods = { "testDeleteMavenTwoProject", "testAddBuildAgent" } ) + public void testProjectGroupAllBuildSuccessWithDistributedBuilds() + throws Exception + { + String M2_PROJ_GRP_NAME = getProperty( "M2_DELETE_PROJ_GRP_NAME" ); + String M2_PROJ_GRP_ID = getProperty( "M2_DELETE_PROJ_GRP_ID" ); + String BUILD_AGENT_URL = getProperty( "BUILD_AGENT_NAME2" ); + + enableDistributedBuilds(); + goToBuildAgentPage(); + clickLinkWithText( BUILD_AGENT_URL ); + assertTextPresent( "true" ); + + buildProjectGroup( M2_PROJ_GRP_NAME, M2_PROJ_GRP_ID, "", M2_PROJ_GRP_NAME ); + clickButtonWithValue( "Release" ); + assertReleaseSuccess(); + disableDistributedBuilds(); + } + @Test( dependsOnMethods = { "testAddProjectGroup" } ) public void testDeleteProjectGroup() throws Exception Added: 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=904336&view=auto ============================================================================== --- continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/ReleaseTest.java (added) +++ continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/ReleaseTest.java Fri Jan 29 01:26:47 2010 @@ -0,0 +1,84 @@ +package org.apache.continuum.web.test; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileInputStream; +import java.io.InputStreamReader; + +import org.apache.continuum.web.test.parent.AbstractReleaseTest; +import org.testng.annotations.Test; +import org.testng.Assert; + +@Test( groups = { "release" }, dependsOnMethods = { "testWithCorrectUsernamePassword" } ) +public class ReleaseTest + extends AbstractReleaseTest +{ + @Test( dependsOnMethods = { "testProjectGroupAllBuildSuccessWithDistributedBuilds" } ) + public void testReleasePrepareProjectWithInvalidUsernamePasswordInDistributedBuilds() + throws Exception + { + String M2_PROJ_GRP_NAME = getProperty( "M2_DELETE_PROJ_GRP_NAME" ); + String M2_PROJ_GRP_ID = getProperty( "M2_DELETE_PROJ_GRP_ID" ); + + String M2_PROJ_USERNAME = "invalid"; + String M2_PROJ_PASSWORD = "invalid"; + String M2_PROJ_TAGBASE = getProperty( "M2_DELETE_PROJ_TAGBASE" ); + String M2_PROJ_TAG = getProperty( "M2_DELETE_PROJ_TAG" ); + String M2_PROJ_RELEASE_VERSION = getProperty( "M2_DELETE_PROJ_RELEASE_VERSION" ); + String M2_PROJ_DEVELOPMENT_VERSION = getProperty( "M2_DELETE_PROJ_DEVELOPMENT_VERSION" ); + + init(); + enableDistributedBuilds(); + showProjectGroup( M2_PROJ_GRP_NAME, M2_PROJ_GRP_ID, "" ); + clickButtonWithValue( "Release" ); + assertReleaseSuccess(); + releasePrepareProject( M2_PROJ_USERNAME, M2_PROJ_PASSWORD, M2_PROJ_TAGBASE, M2_PROJ_TAG, + M2_PROJ_RELEASE_VERSION, M2_PROJ_DEVELOPMENT_VERSION, false ); + + File file = new File( "target/conf/prepared-releases.xml" ); + Assert.assertTrue( file.exists(), "prepared-releases.xml was not created" ); + + FileInputStream fis = new FileInputStream( file ); + BufferedReader reader = new BufferedReader( new InputStreamReader( fis ) ); + + String BUILD_AGENT_URL = getProperty( "BUILD_AGENT_NAME2" ); + String strLine; + StringBuffer str = new StringBuffer(); + while( ( strLine = reader.readLine() ) != null ) + { + str.append( strLine ); + } + + Assert.assertTrue( str.toString().contains( "" + BUILD_AGENT_URL + "" ), "prepared-releases.xml was not populated" ); + disableDistributedBuilds(); + } + + private void init() + { + File file = new File( "target/conf/prepared-releases.xml" ); + + if ( file.exists() ) + { + file.delete(); + } + } +} Modified: continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/parent/AbstractBuildAgentsTest.java URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/parent/AbstractBuildAgentsTest.java?rev=904336&r1=904335&r2=904336&view=diff ============================================================================== --- continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/parent/AbstractBuildAgentsTest.java (original) +++ continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/parent/AbstractBuildAgentsTest.java Fri Jan 29 01:26:47 2010 @@ -1,8 +1,5 @@ package org.apache.continuum.web.test.parent; -//import org.testng.Assert; -import org.apache.continuum.web.test.ConfigurationTest; - /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file @@ -25,75 +22,31 @@ public abstract class AbstractBuildAgentsTest extends AbstractContinuumTest { - public void enableDistributedBuilds() - { - ConfigurationTest config = new ConfigurationTest(); - config.goToConfigurationPage(); - setFieldValue( "numberOfAllowedBuildsinParallel", "2" ); - if ( !isChecked( "configuration_distributedBuildEnabled" ) ) - { - checkField( "configuration_distributedBuildEnabled" ); - } - clickAndWait( "configuration_" ); - assertTextPresent( "true" ); - assertTextPresent( "Distributed Builds" ); - assertElementPresent( "link=Build Agents" ); - } - - public void disableDistributedBuilds() - { - ConfigurationTest config = new ConfigurationTest(); - config.goToConfigurationPage(); - setFieldValue( "numberOfAllowedBuildsinParallel", "2" ); - if ( isChecked( "configuration_distributedBuildEnabled" ) ) - { - uncheckField( "configuration_distributedBuildEnabled" ); - } - submit(); - assertTextPresent( "false" ); - assertElementNotPresent( "link=Build Agents" ); - } - - public void goToBuildAgentPage() - { - clickAndWait("link=Build Agents"); - assertPage("Continuum - Build Agents"); - } - - public void assertBuildAgentPage() + public void goToAddBuildAgent() { - assertPage("Continuum - Build Agents"); - assertTextPresent("Build Agents"); - assertTextPresent("Build Agent Groups"); - assertButtonWithValuePresent( "Add" ); - - } - - public void goToAddBuildAgent() - { - goToBuildAgentPage(); - assertBuildAgentPage(); - clickAndWait("editBuildAgent_0"); //add button - assertAddEditBuildAgentPage(); + goToBuildAgentPage(); + assertBuildAgentPage(); + clickAndWait("editBuildAgent_0"); //add button + assertAddEditBuildAgentPage(); } - public void assertAddEditBuildAgentPage() + public void assertAddEditBuildAgentPage() { - assertPage( "Continuum - Add/Edit Build Agent" ); + assertPage( "Continuum - Add/Edit Build Agent" ); assertTextPresent( "Add/Edit Build Agent" ); assertTextPresent( "Build Agent URL*:" ); - assertTextPresent( "Description:" ); - assertTextPresent( "Enabled" ); + assertTextPresent( "Description:" ); + assertTextPresent( "Enabled" ); assertElementPresent( "saveBuildAgent_buildAgent_url" ); - assertElementPresent( "saveBuildAgent_buildAgent_description"); + assertElementPresent( "saveBuildAgent_buildAgent_description"); assertButtonWithValuePresent( "Save" ); assertButtonWithValuePresent( "Cancel" ); } - public void removeBuildAgent( String agentName ) - { + public void removeBuildAgent( String agentName ) + { clickLinkWithXPath( "(//a[contains(@href,'deleteBuildAgent.action') and contains(@href, '" + agentName + "')])//img" ); - assertPage("Continuum - Delete Build Agent"); + assertPage("Continuum - Delete Build Agent"); assertTextPresent( "Delete Build Agent" ); assertTextPresent( "Are you sure you want to delete build agent " + agentName + " ?" ); assertButtonWithValuePresent( "Delete" ); @@ -102,97 +55,100 @@ assertBuildAgentPage(); } - public void addBuildAgent( String agentURL, String description, boolean success ) - { - setFieldValue( "saveBuildAgent_buildAgent_url", agentURL ); - setFieldValue("saveBuildAgent_buildAgent_description", description ); - checkField("saveBuildAgent_buildAgent_enabled"); - submit(); - if ( success ) - { - assertBuildAgentPage(); - assertElementPresent( "link=" + agentURL ); - - } - else - { - assertAddEditBuildAgentPage(); - } - - } + public void addBuildAgent( String agentURL, String description, boolean success, boolean enabled ) + { + setFieldValue( "saveBuildAgent_buildAgent_url", agentURL ); + setFieldValue("saveBuildAgent_buildAgent_description", description ); - public void goToEditBuildAgent( String name, String description ) - { - goToBuildAgentPage(); - clickImgWithAlt( "Edit" ); - assertAddEditBuildAgentPage(); - assertFieldValue( name, "saveBuildAgent_buildAgent_url" ); - assertFieldValue( description, "saveBuildAgent_buildAgent_description" ); + if ( enabled ) + { + checkField("saveBuildAgent_buildAgent_enabled"); + } - } + submit(); - public void addEditBuildAgent( String agentName, String newDesc ) - { - assertFieldValue( agentName, "saveBuildAgent_buildAgent_url" ); - setFieldValue( "saveBuildAgent_buildAgent_description", newDesc ); - submit(); - assertBuildAgentPage(); - assertTextPresent( newDesc ); + if ( success ) + { + assertBuildAgentPage(); + assertElementPresent( "link=" + agentURL ); + clickLinkWithText( agentURL ); + assertTextPresent( new Boolean( enabled ).toString() ); + } + else + { + assertAddEditBuildAgentPage(); + } + } + public void goToEditBuildAgent( String name, String description ) + { + goToBuildAgentPage(); + clickImgWithAlt( "Edit" ); + assertAddEditBuildAgentPage(); + assertFieldValue( name, "saveBuildAgent_buildAgent_url" ); + assertFieldValue( description, "saveBuildAgent_buildAgent_description" ); } + public void addEditBuildAgent( String agentName, String newDesc ) + { + assertFieldValue( agentName, "saveBuildAgent_buildAgent_url" ); + setFieldValue( "saveBuildAgent_buildAgent_description", newDesc ); + submit(); + assertBuildAgentPage(); + assertTextPresent( newDesc ); + } - public void goToAddBuildAgentGroup() + public void goToAddBuildAgentGroup() { - goToBuildAgentPage(); - clickAndWait("editBuildAgentGroup_0"); //add button + String BUILD_AGENT_NAME = getProperty( "BUILD_AGENT_NAME" ); + String BUILD_AGENT_NAME2 = getProperty( "BUILD_AGENT_NAME2" ); + + goToBuildAgentPage(); + clickAndWait("editBuildAgentGroup_0"); //add button String[] options = - new String[] { "--- Available Build Agents ---", "Agent_url_name", "Second_Agent" }; + new String[] { "--- Available Build Agents ---", BUILD_AGENT_NAME, BUILD_AGENT_NAME2 }; assertAddEditBuildAgentGroupPage( options, null ); } - - public void addEditBuildAgentGroup( String name, String[] addBuildAgents, String[] removeBuildAgents, + public void addEditBuildAgentGroup( String name, String[] addBuildAgents, String[] removeBuildAgents, boolean success ) throws Exception - { - setFieldValue( "saveBuildAgentGroup_buildAgentGroup_name", name ); - if ( addBuildAgents != null && addBuildAgents.length > 0 ) - { - for ( String ba : addBuildAgents ) - { - selectValue( "buildAgentIds", ba ); - clickButtonWithValue( "->", false ); - } - } - if ( removeBuildAgents != null && removeBuildAgents.length > 0 ) - { - for ( String ba : removeBuildAgents ) - { - selectValue( "selectedBuildAgentIds", ba ); - clickButtonWithValue( "<-", false ); - } - } - submit(); - if ( success ) - { - assertBuildAgentPage(); - } - else - { - assertAddEditBuildAgentGroupPage( null, null ); - } - - - } + { + setFieldValue( "saveBuildAgentGroup_buildAgentGroup_name", name ); + if ( addBuildAgents != null && addBuildAgents.length > 0 ) + { + for ( String ba : addBuildAgents ) + { + selectValue( "buildAgentIds", ba ); + clickButtonWithValue( "->", false ); + } + } + if ( removeBuildAgents != null && removeBuildAgents.length > 0 ) + { + for ( String ba : removeBuildAgents ) + { + selectValue( "selectedBuildAgentIds", ba ); + clickButtonWithValue( "<-", false ); + } + } + submit(); + if ( success ) + { + assertBuildAgentPage(); + } + else + { + assertAddEditBuildAgentGroupPage( null, null ); + } + } - public void assertAddEditBuildAgentGroupPage( String[] availableBuildAgents, String[] usedBuildAgents ) + public void assertAddEditBuildAgentGroupPage( String[] availableBuildAgents, String[] usedBuildAgents ) { - assertPage( "Continuum - Add/Edit Build Agent Group" ); + assertPage( "Continuum - Add/Edit Build Agent Group" ); assertTextPresent( "Add/Edit Build Agent Group" ); assertTextPresent( "Name*:" ); - assertTextPresent( "Configure the used Build Agents:" ); - assertElementPresent( "buildAgentGroup.name" ); - if ( availableBuildAgents != null && availableBuildAgents.length > 0 ) + assertTextPresent( "Configure the used Build Agents:" ); + assertElementPresent( "buildAgentGroup.name" ); + if ( availableBuildAgents != null && availableBuildAgents.length > 0 ) { assertOptionPresent( "buildAgentIds", availableBuildAgents ); } @@ -201,32 +157,29 @@ assertOptionPresent( "selectedBuildAgentIds", usedBuildAgents ); } - assertButtonWithValuePresent( "Save" ); + assertButtonWithValuePresent( "Save" ); assertButtonWithValuePresent( "Cancel" ); } - public void goToEditBuildAgentGroup( String name, String[] buildAgents ) + public void goToEditBuildAgentGroup( String name, String[] buildAgents ) { - goToBuildAgentPage(); + goToBuildAgentPage(); String xPath = "//preceding::td[text()='" + name + "']//following::img[@alt='Edit']"; clickLinkWithXPath( xPath ); assertAddEditBuildAgentGroupPage( null, buildAgents ); assertFieldValue( name, "buildAgentGroup.name" ); } - - public void removeBuildAgentGroup( String name ) - { - goToBuildAgentPage(); - clickLinkWithXPath( "(//a[contains(@href,'deleteBuildAgentGroup.action') and contains(@href, '" + name + "')])//img" ); - assertPage("Continuum - Delete Build Agent Group"); - assertTextPresent( "Delete Build Agent" ); + public void removeBuildAgentGroup( String name ) + { + goToBuildAgentPage(); + clickLinkWithXPath( "(//a[contains(@href,'deleteBuildAgentGroup.action') and contains(@href, '" + name + "')])//img" ); + assertPage("Continuum - Delete Build Agent Group"); + assertTextPresent( "Delete Build Agent" ); assertTextPresent( "Are you sure you want to delete build agent group " + name + " ?" ); assertButtonWithValuePresent( "Delete" ); assertButtonWithValuePresent( "Cancel" ); clickButtonWithValue( "Delete" ); assertBuildAgentPage(); } - - } Modified: continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/parent/AbstractContinuumTest.java URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/parent/AbstractContinuumTest.java?rev=904336&r1=904335&r2=904336&view=diff ============================================================================== --- continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/parent/AbstractContinuumTest.java (original) +++ continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/parent/AbstractContinuumTest.java Fri Jan 29 01:26:47 2010 @@ -19,6 +19,7 @@ * under the License. */ +import org.apache.continuum.web.test.ConfigurationTest; import org.testng.Assert; /** @@ -373,6 +374,10 @@ int maxIt = 10; showProjectGroup( projectGroupName, groupId, description ); clickButtonWithValue( "Build all projects" ); + + Thread.sleep( 10000 ); + getSelenium().refresh(); + while ( isElementPresent( "//img[@alt='Building']" ) || isElementPresent( "//img[@alt='Updating']" ) ) { Thread.sleep( 10000 ); @@ -384,6 +389,7 @@ } currentIt++; } + Thread.sleep( 10000 ); clickLinkWithText( projectName ); clickLinkWithText( "Builds" ); @@ -972,4 +978,51 @@ assertTextPresent( "Default Maven 2 Build Definition" ); assertTextPresent( "Default Shell Build Definition" ); } + + // //////////////////////////////////// + // Distributed Builds + // //////////////////////////////////// + + public void enableDistributedBuilds() + { + ConfigurationTest config = new ConfigurationTest(); + config.goToConfigurationPage(); + setFieldValue( "numberOfAllowedBuildsinParallel", "2" ); + if ( !isChecked( "configuration_distributedBuildEnabled" ) ) + { + checkField( "configuration_distributedBuildEnabled" ); + } + clickAndWait( "configuration_" ); + assertTextPresent( "true" ); + assertTextPresent( "Distributed Builds" ); + assertElementPresent( "link=Build Agents" ); + } + + public void disableDistributedBuilds() + { + ConfigurationTest config = new ConfigurationTest(); + config.goToConfigurationPage(); + setFieldValue( "numberOfAllowedBuildsinParallel", "2" ); + if ( isChecked( "configuration_distributedBuildEnabled" ) ) + { + uncheckField( "configuration_distributedBuildEnabled" ); + } + submit(); + assertTextPresent( "false" ); + assertElementNotPresent( "link=Build Agents" ); + } + + public void goToBuildAgentPage() + { + clickAndWait("link=Build Agents"); + assertPage("Continuum - Build Agents"); + } + + public void assertBuildAgentPage() + { + assertPage("Continuum - Build Agents"); + assertTextPresent("Build Agents"); + assertTextPresent("Build Agent Groups"); + assertButtonWithValuePresent( "Add" ); + } } Added: continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/parent/AbstractReleaseTest.java URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/parent/AbstractReleaseTest.java?rev=904336&view=auto ============================================================================== --- continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/parent/AbstractReleaseTest.java (added) +++ continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/parent/AbstractReleaseTest.java Fri Jan 29 01:26:47 2010 @@ -0,0 +1,79 @@ +package org.apache.continuum.web.test.parent; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +public abstract class AbstractReleaseTest + extends AbstractContinuumTest +{ + public void releasePrepareProject( String username, String password, String tagBase, String tag, String releaseVersion, String developmentVersion, boolean success ) + throws Exception + { + goToReleasePreparePage(); + setFieldValue( "scmUsername", username ); + setFieldValue( "scmPassword", password ); + setFieldValue( "scmTag", tag ); + setFieldValue( "scmTagBase", tagBase ); + setFieldValue( "prepareGoals", "clean" ); + setFieldValue( "relVersions", releaseVersion ); + setFieldValue( "devVersions", developmentVersion ); + submit(); + + while ( !isButtonWithValuePresent( "Done" ) ) + { + Thread.sleep( 10000 ); + } + + assertButtonWithValuePresent( "Rollback changes" ); + + if ( success ) + { + assertImgWithAltNotPresent( "Error" ); + } + else + { + assertImgWithAlt( "Error" ); + } + } + + public void goToReleasePreparePage() + { + clickLinkWithLocator( "goal", false ); + submit(); + assertReleasePreparePage(); + } + + public void assertReleasePreparePage() + { + assertPage( "Continuum - Release Project" ); + assertTextPresent( "Prepare Project for Release" ); + assertTextPresent( "Release Prepare Parameters" ); + assertTextPresent( "SCM Username" ); + assertTextPresent( "SCM Password" ); + assertTextPresent( "SCM Tag" ); + assertTextPresent( "SCM Tag Base" ); + assertTextPresent( "SCM Comment Prefix" ); + assertTextPresent( "Preparation Goals" ); + assertTextPresent( "Arguments" ); + assertTextPresent( "Build Environment" ); + assertTextPresent( "Release Version" ); + assertTextPresent( "Next Development Version" ); + assertButtonWithValuePresent( "Submit" ); + } +} Modified: continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/parent/AbstractSeleniumTest.java URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/parent/AbstractSeleniumTest.java?rev=904336&r1=904335&r2=904336&view=diff ============================================================================== --- continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/parent/AbstractSeleniumTest.java (original) +++ continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/parent/AbstractSeleniumTest.java Fri Jan 29 01:26:47 2010 @@ -199,6 +199,11 @@ assertElementPresent( locator ); } + public void assertImgWithAltNotPresent( String alt ) + { + assertElementNotPresent( "//img[@alt='" + alt + "']" ); + } + public void assertCellValueFromTable( String expected, String tableElement, int row, int column ) { Assert.assertEquals( expected, getCellValueFromTable( tableElement, row, column ) );