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 2014/05/20 16:02:06 UTC

svn commit: r1596252 [1/4] - in /continuum/trunk: ./ continuum-buildagent/continuum-buildagent-webapp/src/appserver-base/conf/ continuum-jetty/ continuum-jetty/src/main/assembly/ continuum-webapp-test/ continuum-webapp-test/src/appserver-base/conf/ con...

Author: brett
Date: Tue May 20 14:02:03 2014
New Revision: 1596252

URL: http://svn.apache.org/r1596252
Log:
Merge CONTINUUM-2713 branch - upgrade Struts

Added:
    continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/admin/ConfigurationAction-validation.xml
      - copied unchanged from r1596246, continuum/branches/CONTINUUM-2713/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/admin/ConfigurationAction-validation.xml
Removed:
    continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/components/Data.java
    continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/components/SubmitCancel.java
    continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/view/jsp/ui/DataTag.java
    continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/view/jsp/ui/SubmitCancelTag.java
    continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/admin/ConfigurationAction-configuration-validation.xml
    continuum/trunk/continuum-webapp/src/main/resources/template/default/a-close.ftl
    continuum/trunk/continuum-webapp/src/main/resources/template/default/a.ftl
    continuum/trunk/continuum-webapp/src/main/resources/template/default/actionerror.ftl
    continuum/trunk/continuum-webapp/src/main/resources/template/default/actionmessage.ftl
    continuum/trunk/continuum-webapp/src/main/resources/template/default/checkbox.ftl
    continuum/trunk/continuum-webapp/src/main/resources/template/default/checkboxlist.ftl
    continuum/trunk/continuum-webapp/src/main/resources/template/default/combobox.ftl
    continuum/trunk/continuum-webapp/src/main/resources/template/default/controlfooter.ftl
    continuum/trunk/continuum-webapp/src/main/resources/template/default/controlheader-core.ftl
    continuum/trunk/continuum-webapp/src/main/resources/template/default/controlheader.ftl
    continuum/trunk/continuum-webapp/src/main/resources/template/default/data.ftl
    continuum/trunk/continuum-webapp/src/main/resources/template/default/datepicker.ftl
    continuum/trunk/continuum-webapp/src/main/resources/template/default/debug.ftl
    continuum/trunk/continuum-webapp/src/main/resources/template/default/doubleselect.ftl
    continuum/trunk/continuum-webapp/src/main/resources/template/default/empty.ftl
    continuum/trunk/continuum-webapp/src/main/resources/template/default/file.ftl
    continuum/trunk/continuum-webapp/src/main/resources/template/default/form-close-validate.ftl
    continuum/trunk/continuum-webapp/src/main/resources/template/default/form-close.ftl
    continuum/trunk/continuum-webapp/src/main/resources/template/default/form-validate.ftl
    continuum/trunk/continuum-webapp/src/main/resources/template/default/form.ftl
    continuum/trunk/continuum-webapp/src/main/resources/template/default/head.ftl
    continuum/trunk/continuum-webapp/src/main/resources/template/default/hidden.ftl
    continuum/trunk/continuum-webapp/src/main/resources/template/default/label.ftl
    continuum/trunk/continuum-webapp/src/main/resources/template/default/optiontransferselect.ftl
    continuum/trunk/continuum-webapp/src/main/resources/template/default/password.ftl
    continuum/trunk/continuum-webapp/src/main/resources/template/default/radiomap.ftl
    continuum/trunk/continuum-webapp/src/main/resources/template/default/reset.ftl
    continuum/trunk/continuum-webapp/src/main/resources/template/default/richtexteditor.ftl
    continuum/trunk/continuum-webapp/src/main/resources/template/default/select.ftl
    continuum/trunk/continuum-webapp/src/main/resources/template/default/styles.css
    continuum/trunk/continuum-webapp/src/main/resources/template/default/submit.ftl
    continuum/trunk/continuum-webapp/src/main/resources/template/default/submitCancel.ftl
    continuum/trunk/continuum-webapp/src/main/resources/template/default/text.ftl
    continuum/trunk/continuum-webapp/src/main/resources/template/default/textarea.ftl
    continuum/trunk/continuum-webapp/src/main/resources/template/default/theme.properties
    continuum/trunk/continuum-webapp/src/main/resources/template/default/tooltip.ftl
    continuum/trunk/continuum-webapp/src/main/resources/template/default/updownselect.ftl
    continuum/trunk/continuum-webapp/src/main/resources/template/default/validation.js
    continuum/trunk/continuum-webapp/src/main/resources/template/profile/select.ftl
    continuum/trunk/continuum-webapp/src/main/webapp/struts/dojo/AdapterRegistry.js
    continuum/trunk/continuum-webapp/src/main/webapp/struts/dojo/debug.js
    continuum/trunk/continuum-webapp/src/main/webapp/struts/dojo/debug/Firebug.js
    continuum/trunk/continuum-webapp/src/main/webapp/struts/dojo/debug/arrow_hide.gif
    continuum/trunk/continuum-webapp/src/main/webapp/struts/dojo/debug/arrow_show.gif
    continuum/trunk/continuum-webapp/src/main/webapp/struts/dojo/debug/console.js
    continuum/trunk/continuum-webapp/src/main/webapp/struts/dojo/debug/deep.html
    continuum/trunk/continuum-webapp/src/main/webapp/struts/dojo/debug/spacer.gif
    continuum/trunk/continuum-webapp/src/main/webapp/struts/dojo/dojo.js
    continuum/trunk/continuum-webapp/src/main/webapp/struts/dojo/dom.js
    continuum/trunk/continuum-webapp/src/main/webapp/struts/dojo/event/__package__.js
    continuum/trunk/continuum-webapp/src/main/webapp/struts/dojo/event/browser.js
    continuum/trunk/continuum-webapp/src/main/webapp/struts/dojo/event/common.js
    continuum/trunk/continuum-webapp/src/main/webapp/struts/dojo/event/topic.js
    continuum/trunk/continuum-webapp/src/main/webapp/struts/dojo/string/Builder.js
    continuum/trunk/continuum-webapp/src/main/webapp/struts/dojo/string/__package__.js
    continuum/trunk/continuum-webapp/src/main/webapp/struts/dojo/string/common.js
    continuum/trunk/continuum-webapp/src/main/webapp/struts/dojo/string/extras.js
    continuum/trunk/continuum-webapp/src/main/webapp/struts/dojo/text/__package__.js
    continuum/trunk/continuum-webapp/src/main/webapp/struts/dojo/text/textDirectory.js
    continuum/trunk/continuum-webapp/src/main/webapp/struts/dojo/validate.js
    continuum/trunk/continuum-webapp/src/main/webapp/struts/dojo/validate/__package__.js
    continuum/trunk/continuum-webapp/src/main/webapp/struts/dojo/validate/check.js
    continuum/trunk/continuum-webapp/src/main/webapp/struts/dojo/validate/common.js
    continuum/trunk/continuum-webapp/src/main/webapp/struts/dojo/validate/creditCard.js
    continuum/trunk/continuum-webapp/src/main/webapp/struts/dojo/validate/datetime.js
    continuum/trunk/continuum-webapp/src/main/webapp/struts/dojo/validate/de.js
    continuum/trunk/continuum-webapp/src/main/webapp/struts/dojo/validate/jp.js
    continuum/trunk/continuum-webapp/src/main/webapp/struts/dojo/validate/us.js
    continuum/trunk/continuum-webapp/src/main/webapp/struts/dojo/validate/web.js
    continuum/trunk/continuum-webapp/src/main/webapp/struts/dojoRequire.js
    continuum/trunk/continuum-webapp/src/main/webapp/struts/optiontransferselect.js
    continuum/trunk/continuum-webapp/src/main/webapp/struts/validation.js
Modified:
    continuum/trunk/   (props changed)
    continuum/trunk/continuum-buildagent/continuum-buildagent-webapp/src/appserver-base/conf/continuum-buildagent.xml
    continuum/trunk/continuum-jetty/pom.xml
    continuum/trunk/continuum-jetty/src/main/assembly/bin.xml
    continuum/trunk/continuum-webapp-test/Readme.txt
    continuum/trunk/continuum-webapp-test/pom.xml
    continuum/trunk/continuum-webapp-test/src/appserver-base/conf/continuum-buildagent.xml
    continuum/trunk/continuum-webapp-test/src/test/resources/testng.properties
    continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/BuildDefinitionTemplateTest.java
    continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/BuildDefinitionTest.java
    continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/BuildEnvironmentTest.java
    continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/CSRFSecurityTest.java
    continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/DistributedBuildTest.java
    continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/DistributedReleaseTest.java
    continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/LoginTest.java
    continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/MavenOneProjectTest.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/NotifierTest.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/QueueTest.java
    continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/ScheduleTest.java
    continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/UserRolesManagementTest.java
    continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/listener/CaptureScreenShotsListener.java
    continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/parent/AbstractAdminTest.java
    continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/parent/AbstractBuildDefinitionTemplateTest.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/AbstractInstallationTest.java
    continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/parent/AbstractPurgeTest.java
    continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/parent/AbstractSeleniumTest.java
    continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/parent/AbstractUserRolesManagementTest.java
    continuum/trunk/continuum-webapp/pom.xml
    continuum/trunk/continuum-webapp/src/main/java/org/apache/continuum/web/action/admin/BuildAgentAction.java   (contents, props changed)
    continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction.java
    continuum/trunk/continuum-webapp/src/main/resources/struts.properties
    continuum/trunk/continuum-webapp/src/main/resources/struts.xml
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/continuum.tld
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/about.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/addMavenOneProject.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/addMavenTwoProject.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/addProject.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/appearance.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/buildDefinitionTemplateSummary.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/buildQueueView.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/configuration.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/configurationEdit.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/confirmDeleteBuildAgent.jsp   (contents, props changed)
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/confirmDeleteBuildAgentGroup.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/confirmDeleteBuildDefinitionAsTemplate.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/confirmDeleteBuildDefinitionTemplate.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/confirmDeleteBuildEnv.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/confirmDeleteBuildQueue.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/confirmDeleteDistributedPurgeConfiguration.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/confirmDeleteInstallation.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/confirmDeleteLocalRepository.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/confirmDeletePurgeConfiguration.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/distributedPurgeConfigurationsList.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/editAppearance.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/editBuildAgent.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/editBuildAgentGroup.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/editBuildDefinitionAsTemplate.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/editBuildDefinitionTemplate.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/editDistributedPurgeConfiguration.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/editInstallation.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/editLocalRepository.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/editParallelBuilds.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/editPom.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/editProfile.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/editPurgeConfiguration.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/installationsList.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/installationsTypeChoice.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/parallelbuilds.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/profilesList.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/purgeConfigurationsList.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/viewBuildAgent.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/viewDistributedBuilds.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/buildDefinitionEdit.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/buildResult.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/components/buildDefinitionGroupSummaryComponent.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/components/buildDefinitionSummaryComponent.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/components/failureComponent.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/components/projectGroupNotifierSummaryComponent.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/components/projectGroupTabComponent.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/components/projectNotifierSummaryComponent.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/components/projectSummaryComponent.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/confirmBuildDefinitionRemoval.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/confirmBuildResultsRemoval.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/confirmDeleteProjects.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/confirmGroupRemoval.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/confirmReleaseResultsRemoval.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/confirmScheduleRemoval.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/deleteBuildDefinition.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/deleteProject.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/editSchedule.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/groupSummary.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/navigations/Menu.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/navigations/ProjectMenu.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/notifier/deleteNotifier.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/notifier/notifierIrc.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/notifier/notifierJabber.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/notifier/notifierMail.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/notifier/notifierMsn.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/notifier/notifierSelectType.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/notifier/notifierWagon.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/projectEdit.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/projectGroupAdd.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/projectGroupBuildDefinition.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/projectGroupEdit.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/projectGroupMembers.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/projectGroupNotifier.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/projectGroupReleaseResults.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/projectGroupSummary.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/projectView.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/releasePerform.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/releasePerformFromScm.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/releasePrepare.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/releaseViewResult.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/scmResult.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/surefireReport.jsp
    continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/web.xml
    continuum/trunk/continuum-webapp/src/main/webapp/css/tigris.css
    continuum/trunk/pom.xml

Propchange: continuum/trunk/
------------------------------------------------------------------------------
  Merged /continuum/branches/CONTINUUM-2713:r1534881-1596246

Modified: continuum/trunk/continuum-buildagent/continuum-buildagent-webapp/src/appserver-base/conf/continuum-buildagent.xml
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-buildagent/continuum-buildagent-webapp/src/appserver-base/conf/continuum-buildagent.xml?rev=1596252&r1=1596251&r2=1596252&view=diff
==============================================================================
--- continuum/trunk/continuum-buildagent/continuum-buildagent-webapp/src/appserver-base/conf/continuum-buildagent.xml (original)
+++ continuum/trunk/continuum-buildagent/continuum-buildagent-webapp/src/appserver-base/conf/continuum-buildagent.xml Tue May 20 14:02:03 2014
@@ -22,5 +22,5 @@
   <continuumServerUrl>http://localhost:9090/master-xmlrpc</continuumServerUrl>
   <buildOutputDirectory>target/data/build-agent/build-output-directory</buildOutputDirectory>
   <workingDirectory>target/data/build-agent/working-directory</workingDirectory>
-  <sharedSecretPassword>abc123</sharedSecretPassword>
+  <sharedSecretPassword>continuum1234</sharedSecretPassword>
 </continuum-buildagent-configuration>

Modified: continuum/trunk/continuum-jetty/pom.xml
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-jetty/pom.xml?rev=1596252&r1=1596251&r2=1596252&view=diff
==============================================================================
--- continuum/trunk/continuum-jetty/pom.xml (original)
+++ continuum/trunk/continuum-jetty/pom.xml Tue May 20 14:02:03 2014
@@ -185,6 +185,7 @@
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-assembly-plugin</artifactId>
+        <version>2.4</version>
         <executions>
           <execution>
             <phase>package</phase>

Modified: continuum/trunk/continuum-jetty/src/main/assembly/bin.xml
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-jetty/src/main/assembly/bin.xml?rev=1596252&r1=1596251&r2=1596252&view=diff
==============================================================================
--- continuum/trunk/continuum-jetty/src/main/assembly/bin.xml (original)
+++ continuum/trunk/continuum-jetty/src/main/assembly/bin.xml Tue May 20 14:02:03 2014
@@ -40,6 +40,7 @@
         <exclude>maven-metadata-appassembler.xml</exclude>
       </excludes>
       <fileMode>0755</fileMode>
+      <directoryMode>0755</directoryMode>
     </fileSet>
     <fileSet>
       <directory>target/generated-resources/appassembler/jsw/continuum/logs</directory>

Modified: continuum/trunk/continuum-webapp-test/Readme.txt
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp-test/Readme.txt?rev=1596252&r1=1596251&r2=1596252&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp-test/Readme.txt (original)
+++ continuum/trunk/continuum-webapp-test/Readme.txt Tue May 20 14:02:03 2014
@@ -19,9 +19,14 @@ The tests require Ant and Maven to be on
  * mvn clean install -Dplexus.system.path=/path/to/apache-maven-3.0.4/bin:/path/to/apache-ant-1.8.1/bin
 
 Run Selenium tests against an existing Continuum instance
-  * mvn clean install -DbaseUrl=http://localhost:9090/continuum
+  * mvn clean install -DbaseUrl=http://localhost:9090 -DbuildAgentUrl=http://localhost:9191/xmlrpc \
+        -DappserverBase=$PWD/../continuum-webapp/target/appserver-base
 
-  (This skips the Cargo plugin configuration that starts a container with the Continuum webapp deployed)
+  This skips the Cargo plugin configuration that starts a container with the
+  Continuum webapp deployed. Note that you will need to have set this on the
+  existing Continuum instance:
+  
+    -Dsvn.base.url=file://localhost${PWD}/../continuum-webapp-test/target/example-svn
 
 Run Selenium tests in an alternate browser
   * mvn clean install -Ptomcat7x -Dbrowser=iexplore  (or -Dbrowser=safari or -Dbrowser=other -DbrowserPath=/path/to/browser)
@@ -47,6 +52,14 @@ To attach a debugger to the same process
 
     mvn -Ptomcat7x,debug test-compile selenium:start-server cargo:run
 
+You can also run the Selenium server against your development instance, so
+that you can run the tests in your IDE:
+
+    mvn -Ptomcat7x,debug test-compile selenium:start-server cargo:run -DbaseUrl=http://localhost:9090
+
+The remaining properties appserverBase and buildAgentUrl need to be supplied to the running tests, along with the same
+baseUrl value.
+
 Note, the tests currently fail with "Illegal value" errors under newer
 versions of Selenium and Firefox. The tests run successfully with Selenium
 2.21.0 and Firefox 17.

Modified: continuum/trunk/continuum-webapp-test/pom.xml
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp-test/pom.xml?rev=1596252&r1=1596251&r2=1596252&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp-test/pom.xml (original)
+++ continuum/trunk/continuum-webapp-test/pom.xml Tue May 20 14:02:03 2014
@@ -76,7 +76,10 @@
             </goals>
             <configuration>
               <tasks>
-                <copy todir="${project.build.directory}">
+                <copy todir="${project.build.directory}" overwrite="true">
+                  <filterchain>
+                    <expandproperties />
+                  </filterchain>
                   <fileset dir="src/appserver-base"/>
                 </copy>
                 <delete dir="${project.build.directory}/example-svn"/>
@@ -91,7 +94,9 @@
                 </path>
                 <pathconvert refid="svn.repo.dir" targetos="unix" property="svn.base.url"/>
                 <echo file="${project.build.directory}/filter.properties">
-                  svn.base.url=file://localhost/${svn.base.url}
+                  svn.base.url=file://localhost${svn.base.url}
+                  continuum.port=${continuum.port}
+                  baseUrl=${baseUrl}
                 </echo>
               </tasks>
             </configuration>
@@ -168,6 +173,8 @@
               <appserver.base>${project.build.directory}</appserver.base>
               <derby.system.home>${project.build.directory}</derby.system.home>
               <svn.base.url>${svn.base.url}</svn.base.url>
+              <continuum.port>${contiuum.port}</continuum.port>
+              <baseUrl>${baseUrl}</baseUrl>
               <plexus.system.path>${plexus.system.path}</plexus.system.path>
             </systemProperties>
             <dependencies>
@@ -187,7 +194,7 @@
           </container>
           <configuration>
             <properties>
-              <cargo.servlet.port>9595</cargo.servlet.port>
+              <cargo.servlet.port>${continuum.port}</cargo.servlet.port>
               <cargo.jvmargs>${cargo.jvmargs}</cargo.jvmargs>
               <cargo.datasource.datasource.users>
                 cargo.datasource.driver=org.apache.derby.jdbc.EmbeddedDriver|
@@ -275,6 +282,14 @@
                   <value>${baseUrl}</value>
                 </property>
                 <property>
+                  <name>buildAgentUrl</name>
+                  <value>${buildAgentUrl}</value>
+                </property>
+                <property>
+                  <name>appserverBase</name>
+                  <value>${appserverBase}</value>
+                </property>
+                <property>
                   <name>browser</name>
                   <value>${browser}</value>
                 </property>
@@ -397,7 +412,16 @@
               <groupId>org.codehaus.cargo</groupId>
               <artifactId>cargo-maven2-plugin</artifactId>
               <configuration>
-                <skip>true</skip>
+                <deployables>
+                  <!-- Skip all but test resources -->
+                  <deployable>
+                    <location>${basedir}/src/test/example-projects</location>
+                    <type>war</type>
+                    <properties>
+                      <context>example-projects</context>
+                    </properties>
+                  </deployable>
+                </deployables>
               </configuration>
             </plugin>
           </plugins>
@@ -584,14 +608,14 @@
   <properties>
     <seleniumHost>localhost</seleniumHost>
     <seleniumPort>4444</seleniumPort>
-    <baseUrl>http://localhost:9595/continuum/</baseUrl>
+    <continuum.port>9595</continuum.port>
+    <baseUrl>http://localhost:${continuum.port}/continuum</baseUrl>
+    <buildAgentUrl>http://localhost:${continuum.port}/continuum-buildagent/xmlrpc</buildAgentUrl>
+    <appserverBase>${project.build.directory}</appserverBase>
     <browser>*firefox</browser>
     <browserPath/>
     <cargo.jvmargs>-Xmx512m -XX:MaxPermSize=128m</cargo.jvmargs>
     <plexus.system.path/>
-<!--
-    <selenium.version>2.35.0</selenium.version>
--->
-    <selenium.version>2.21.0</selenium.version>
+    <selenium.version>2.41.0</selenium.version>
   </properties>
 </project>

Modified: 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=1596252&r1=1596251&r2=1596252&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp-test/src/appserver-base/conf/continuum-buildagent.xml (original)
+++ continuum/trunk/continuum-webapp-test/src/appserver-base/conf/continuum-buildagent.xml Tue May 20 14:02:03 2014
@@ -19,7 +19,7 @@
   -->
 
 <continuum-buildagent-configuration>
-  <continuumServerUrl>http://localhost:9595/continuum/master-xmlrpc</continuumServerUrl>
+  <continuumServerUrl>${baseUrl}/master-xmlrpc</continuumServerUrl>
   <buildOutputDirectory>target/data/build-agent/build-output-directory</buildOutputDirectory>
   <workingDirectory>target/data/build-agent/working-directory</workingDirectory>
   <sharedSecretPassword>continuum1234</sharedSecretPassword>

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=1596252&r1=1596251&r2=1596252&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp-test/src/test/resources/testng.properties (original)
+++ continuum/trunk/continuum-webapp-test/src/test/resources/testng.properties Tue May 20 14:02:03 2014
@@ -33,7 +33,7 @@ ADMIN_MAIL=admin@mail.com
 
 # Maven 2 projects to load
 
-MAVEN2_POM_URL=http://localhost:9595/example-projects/simple-example/pom.xml
+MAVEN2_POM_URL=http://localhost:${continuum.port}/example-projects/simple-example/pom.xml
 MAVEN2_POM_USERNAME=
 MAVEN2_POM_PASSWORD=
 MAVEN2_POM_PROJECT_NAME=Continuum Simple Example Project
@@ -43,20 +43,20 @@ MAVEN2_POM_PROJECT_GROUP_ID=org.apache.c
 MAVEN2_POM_PROJECT_GROUP_DESCRIPTION=
 MAVEN2_POM_PROJECT_GROUP_SCM_ROOT_URL=scm:svn:${svn.base.url}/trunk/simple-example
 
-MAVEN2_PROJECT_WITH_TAG_POM_URL=http://localhost:9595/example-projects/continuum-2437-example/pom.xml
+MAVEN2_PROJECT_WITH_TAG_POM_URL=http://localhost:${continuum.port}/example-projects/continuum-2437-example/pom.xml
 MAVEN2_PROJECT_WITH_TAG_POM_PROJECT_NAME=Continuum 2437 Example Project
 # values used for "Defined by POM" - tests should clean up this group afterwards if added
 MAVEN2_PROJECT_WITH_TAG_POM_PROJECT_GROUP_NAME=Continuum 2437 Example Project
 MAVEN2_PROJECT_WITH_TAG_POM_PROJECT_GROUP_ID=org.apache.continuum.examples
 MAVEN2_PROJECT_WITH_TAG_POM_PROJECT_GROUP_DESCRIPTION=
 
-MAVEN2_FAILING_PROJECT_POM_URL=http://localhost:9595/example-projects/continuum-failing-project/pom.xml
+MAVEN2_FAILING_PROJECT_POM_URL=http://localhost:${continuum.port}/example-projects/continuum-failing-project/pom.xml
 # values used for "Defined by POM" - tests should clean up this group afterwards if added
 MAVEN2_FAILING_PROJECT_POM_PROJECT_GROUP_NAME=Continuum Sample Failing Project
 MAVEN2_FAILING_PROJECT_POM_PROJECT_GROUP_ID=org.apache.continuum.failing.project
 MAVEN2_FAILING_PROJECT_POM_PROJECT_GROUP_DESCRIPTION=Sample project that has a build failure
 
-MAVEN2_QUEUE_TEST_POM_URL=http://localhost:9595/example-projects/continuum-build-queue-test-data/pom.xml
+MAVEN2_QUEUE_TEST_POM_URL=http://localhost:${continuum.port}/example-projects/continuum-build-queue-test-data/pom.xml
 MAVEN2_QUEUE_TEST_POM_USERNAME=
 MAVEN2_QUEUE_TEST_POM_PASSWORD=
 # values used for "Defined by POM" - tests should clean up this group afterwards if added
@@ -70,13 +70,13 @@ ANT_NAME=Sample Ant Project
 ANT_DESCRIPTION=This is a sample Ant Project used for testing
 ANT_VERSION=1.0.0-SNAPSHOT
 ANT_TAG=
-ANT_SCM_URL=http://localhost:9595/example-projects/ant/
+ANT_SCM_URL=http://localhost:${continuum.port}/example-projects/ant/
 ANT_SCM_USERNAME=
 ANT_SCM_PASSWORD=
 
 # Maven 1 projects to load
 
-MAVEN1_POM_URL=http://localhost:9595/example-projects/maven-one-projects/valid-project.xml
+MAVEN1_POM_URL=http://localhost:${continuum.port}/example-projects/maven-one-projects/valid-project.xml
 MAVEN1_POM_USERNAME=
 MAVEN1_POM_PASSWORD=
 
@@ -134,13 +134,13 @@ MAVEN1_PROJECT_GROUP_NAME=Maven One Proj
 MAVEN1_PROJECT_GROUP_ID=maven-one-project
 MAVEN1_PROJECT_GROUP_DESCRIPTION=This is a sample Maven One Project
 
-MAVEN1_MISSING_REPO_POM_URL=http://localhost:9595/example-projects/maven-one-projects/missing-repository-element-project.xml
-MAVEN1_EXTENDED_POM_URL=http://localhost:9595/example-projects/maven-one-projects/extend-element-project.xml
-MAVEN1_UNPARSEABLE_POM_URL=http://localhost:9595/example-projects/maven-one-projects/unparseable-content-project.xml
+MAVEN1_MISSING_REPO_POM_URL=http://localhost:${continuum.port}/example-projects/maven-one-projects/missing-repository-element-project.xml
+MAVEN1_EXTENDED_POM_URL=http://localhost:${continuum.port}/example-projects/maven-one-projects/extend-element-project.xml
+MAVEN1_UNPARSEABLE_POM_URL=http://localhost:${continuum.port}/example-projects/maven-one-projects/unparseable-content-project.xml
 
 # Maven 2 test properties
 
-MAVEN2_SAME_LETTER_FLAT_POM_URL=http://localhost:9595/example-projects/flat-example/flat-parent/pom.xml
+MAVEN2_SAME_LETTER_FLAT_POM_URL=http://localhost:${continuum.port}/example-projects/flat-example/flat-parent/pom.xml
 MAVEN2_SAME_LETTER_FLAT_PROJECT_GROUP_NAME=Flat Example
 MAVEN2_SAME_LETTER_FLAT_PROJECT_GROUP_ID=com.example.flat
 MAVEN2_SAME_LETTER_FLAT_PROJECT_GROUP_DESCRIPTION=
@@ -155,10 +155,10 @@ MAVEN2_MOVE_PROJECT_TARGET_PROJECT_GROUP
 MAVEN2_MOVE_PROJECT_TARGET_PROJECT_GROUP_DESCRIPTION=
 
 # SCM element is missing from pom
-MAVEN2_NO_SCM_POM_URL=http://localhost:9595/example-projects/maven-two-projects/missing-scm-element-pom.xml
-MAVEN2_MISS_CONNECTION_POM_URL=http://localhost:9595/example-projects/maven-two-projects/missing-connection-element-pom.xml
-MAVEN2_MISS_PARENT_POM_URL=http://localhost:9595/example-projects/maven-two-projects/missing-parent-pom.xml
-MAVEN2_MISS_SUBPRO_POM_URL=http://localhost:9595/example-projects/maven-two-projects/missing-modules-pom.xml
+MAVEN2_NO_SCM_POM_URL=http://localhost:${continuum.port}/example-projects/maven-two-projects/missing-scm-element-pom.xml
+MAVEN2_MISS_CONNECTION_POM_URL=http://localhost:${continuum.port}/example-projects/maven-two-projects/missing-connection-element-pom.xml
+MAVEN2_MISS_PARENT_POM_URL=http://localhost:${continuum.port}/example-projects/maven-two-projects/missing-parent-pom.xml
+MAVEN2_MISS_SUBPRO_POM_URL=http://localhost:${continuum.port}/example-projects/maven-two-projects/missing-modules-pom.xml
 
 # Ant test properties
 
@@ -241,12 +241,12 @@ DEFAULT_PROJ_GRP_DESCRIPTION=Contains al
 ########################
 
 # Properties for testAddMavenTwoProject
-M2_POM_URL=http://localhost:9595/example-projects/continuum-build-queue-test-data/pom.xml
+M2_POM_URL=http://localhost:${continuum.port}/example-projects/continuum-build-queue-test-data/pom.xml
 M2_POM_USERNAME=
 M2_POM_PASSWORD=
 
 # Properties for testDeleteMavenTwoProject
-M2_DELETE_POM_URL=http://localhost:9595/example-projects/simple-example/pom.xml
+M2_DELETE_POM_URL=http://localhost:${continuum.port}/example-projects/simple-example/pom.xml
 M2_DELETE_PROJ_GRP_NAME=Continuum Simple Example Project
 M2_DELETE_PROJ_GRP_ID=org.apache.continuum.examples.simple
 
@@ -258,7 +258,7 @@ SHELL_NAME=Shell Project
 SHELL_DESCRIPTION=This is a sample Shell Project used for testing
 SHELL_VERSION=1.0.0-SNAPSHOT
 SHELL_TAG=
-SHELL_SCM_URL=http://localhost:9595/example-projects/shell/
+SHELL_SCM_URL=http://localhost:${continuum.port}/example-projects/shell/
 SHELL_SCM_USERNAME=
 SHELL_SCM_PASSWORD=
 
@@ -406,4 +406,4 @@ BUILD_AGENT_GROUPNAME=agent_groupname
 ########################
 # appearance
 ########################
-APPEARANCE_SAVE_FOOTER_URL=http://localhost:9595/continuum/admin/saveFooter!saveFooter.action
+APPEARANCE_SAVE_FOOTER_URL=${baseUrl}/admin/saveFooter.action

Modified: continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/BuildDefinitionTemplateTest.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/BuildDefinitionTemplateTest.java?rev=1596252&r1=1596251&r2=1596252&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/BuildDefinitionTemplateTest.java (original)
+++ continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/BuildDefinitionTemplateTest.java Tue May 20 14:02:03 2014
@@ -20,6 +20,8 @@ package org.apache.continuum.web.test;
  */
 
 import org.apache.continuum.web.test.parent.AbstractBuildDefinitionTemplateTest;
+import org.testng.annotations.AfterClass;
+import org.testng.annotations.BeforeClass;
 import org.testng.annotations.Test;
 
 /**
@@ -30,12 +32,19 @@ import org.testng.annotations.Test;
 public class BuildDefinitionTemplateTest
     extends AbstractBuildDefinitionTemplateTest
 {
+    private String templateName;
+
+    @BeforeClass
+    public void setUp()
+    {
+        templateName = getProperty( "TEMPLATE_NAME" );
+    }
+
     public void testAddTemplate()
         throws Exception
     {
-        String TEMPLATE_NAME = getProperty( "TEMPLATE_NAME" );
         goToAddTemplate();
-        addEditTemplate( TEMPLATE_NAME,
+        addEditTemplate( templateName,
                          new String[]{"Default Maven Build Definition", "Default Maven 1 Build Definition"},
                          new String[]{}, true );
     }
@@ -60,22 +69,20 @@ public class BuildDefinitionTemplateTest
     public void testEditTemplate()
         throws Exception
     {
-        String TEMPLATE_NAME = getProperty( "TEMPLATE_NAME" );
         String newName = "new_name";
-        goToEditTemplate( TEMPLATE_NAME,
+        goToEditTemplate( templateName,
                           new String[]{"Default Maven Build Definition", "Default Maven 1 Build Definition"} );
         addEditTemplate( newName, new String[]{"Default Shell Build Definition"},
                          new String[]{"Default Maven Build Definition"}, true );
         goToEditTemplate( newName, new String[]{"Default Maven 1 Build Definition", "Default Shell Build Definition"} );
-        addEditTemplate( TEMPLATE_NAME, new String[]{"Default Maven Build Definition"},
+        addEditTemplate( templateName, new String[]{"Default Maven Build Definition"},
                          new String[]{"Default Shell Build Definition"}, true );
     }
 
     @Test( dependsOnMethods = {"testEditTemplate"} )
     public void testDeleteTemplate()
     {
-        String TEMPLATE_NAME = getProperty( "TEMPLATE_NAME" );
-        removeTemplate( TEMPLATE_NAME );
+        removeTemplate( templateName );
     }
 
     public void testAddBuildDefinitionTemplate()
@@ -135,9 +142,13 @@ public class BuildDefinitionTemplateTest
     public void testAddTemplateWithEmptyBuildDefinitions()
         throws Exception
     {
-        String TEMPLATE_NAME = getProperty( "TEMPLATE_NAME" );
         goToAddTemplate();
-        addEditTemplate( TEMPLATE_NAME, new String[] {}, new String[] {}, false );
+        addEditTemplate( templateName, new String[] {}, new String[] {}, false );
     }
 
+    @AfterClass
+    public void tearDown()
+    {
+        removeTemplate( templateName, false );
+    }
 }

Modified: continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/BuildDefinitionTest.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/BuildDefinitionTest.java?rev=1596252&r1=1596251&r2=1596252&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/BuildDefinitionTest.java (original)
+++ continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/BuildDefinitionTest.java Tue May 20 14:02:03 2014
@@ -301,4 +301,45 @@ public class BuildDefinitionTest
         assertTextPresent( "Ant build filename*:" );
         assertTextPresent( "Targets:" );
     }
+
+    public void testEditBuildDefinitionFromSummary()
+        throws Exception
+    {
+        goToProjectInformationPage( projectGroupName, projectName );
+        clickLinkWithLocator( "buildDefinition_0" ); // Add button for project build definition
+        String description = "testEditBuildDefinitionFromSummary";
+        addEditGroupBuildDefinition( null, buildDefinitionPomName, buildDefinitionGoals,
+                                     buildDefinitionArguments, description, false, false,
+                                     false, MAVEN_PROJECT_TYPE, true );
+
+        assertProjectInformationPage();
+        String xPath = "//preceding::td[text()='" + description + "']//following::img[@alt='Edit']";
+        clickLinkWithXPath( xPath );
+
+        addEditGroupBuildDefinition( null, buildDefinitionPomName, "new goals", buildDefinitionArguments,
+                                     description, false, false, false, MAVEN_PROJECT_TYPE, true );
+
+        assertProjectInformationPage();
+        assertTextPresent( "new goals" );
+    }
+
+    public void testEditGroupBuildDefinitionFromSummary()
+        throws Exception
+    {
+        goToGroupBuildDefinitionPage( projectGroupName, projectGroupId, projectGroupDescription );
+        clickButtonWithValue( "Add" );
+        String description = "testEditGroupBuildDefinitionFromSummary";
+        addEditGroupBuildDefinition( projectGroupName, buildDefinitionPomName, buildDefinitionGoals,
+                                     buildDefinitionArguments, description, false, false,
+                                     false, MAVEN_PROJECT_TYPE, true );
+
+        goToProjectInformationPage( projectGroupName, projectName );
+        String xPath = "//preceding::td[text()='" + description + "']//following::img[@alt='Edit']";
+        clickLinkWithXPath( xPath );
+
+        addEditGroupBuildDefinition( projectGroupName, buildDefinitionPomName, "new goals", buildDefinitionArguments,
+                                     description, false, false, false, MAVEN_PROJECT_TYPE, true );
+
+        assertTextPresent( "new goals" );
+    }
 }

Modified: continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/BuildEnvironmentTest.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/BuildEnvironmentTest.java?rev=1596252&r1=1596251&r2=1596252&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/BuildEnvironmentTest.java (original)
+++ continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/BuildEnvironmentTest.java Tue May 20 14:02:03 2014
@@ -19,7 +19,9 @@ package org.apache.continuum.web.test;
  * under the License.
  */
 
-import org.apache.continuum.web.test.parent.AbstractAdminTest;
+import org.apache.continuum.web.test.parent.AbstractInstallationTest;
+import org.testng.annotations.AfterClass;
+import org.testng.annotations.BeforeClass;
 import org.testng.annotations.Test;
 
 /**
@@ -28,13 +30,27 @@ import org.testng.annotations.Test;
  */
 @Test( groups = { "buildEnvironment" } )
 public class BuildEnvironmentTest
-    extends AbstractAdminTest
+    extends AbstractInstallationTest
 {
+
+    public static final String INSTALLATION_NAME = "varForBuildEnv";
+
+    private static final String INSTALLATION_BUILD_ENV = "installationBuildEnv";
+
+    private static final String NEW_BUILD_ENV = "NEW_BUILD_ENV";
+
+    private String buildEnvName;
+
+    @BeforeClass(alwaysRun = true)
+    public void setUp()
+    {
+        buildEnvName = getProperty( "BUILD_ENV_NAME" );
+    }
+
     public void testAddBuildEnvironment()
     {
-        String BUILD_ENV_NAME = getProperty( "BUILD_ENV_NAME" );
         goToAddBuildEnvironment();
-        addBuildEnvironment( BUILD_ENV_NAME, new String[]{ }, true );
+        addBuildEnvironment( buildEnvName, new String[]{ }, true );
     }
 
     public void testAddInvalidBuildEnvironment()
@@ -54,8 +70,7 @@ public class BuildEnvironmentTest
     @Test( dependsOnMethods = { "testAddBuildEnvironment" } )
     public void testEditInvalidBuildEnvironment()
     {
-        String BUILD_ENV_NAME = getProperty( "BUILD_ENV_NAME" );
-        goToEditBuildEnvironment( BUILD_ENV_NAME );
+        goToEditBuildEnvironment( buildEnvName );
         editBuildEnvironment( "", new String[]{ }, false );
         assertTextPresent( "You must define a name" );
     }
@@ -63,41 +78,70 @@ public class BuildEnvironmentTest
     @Test( dependsOnMethods = { "testAddBuildEnvironment" } )
     public void testAddDuplicatedBuildEnvironment()
     {
-        String BUILD_ENV_NAME = getProperty( "BUILD_ENV_NAME" );
         goToAddBuildEnvironment();
-        addBuildEnvironment( BUILD_ENV_NAME, new String[]{ }, false );
+        addBuildEnvironment( buildEnvName, new String[]{ }, false );
         assertTextPresent( "A Build Environment with the same name already exists" );
     }
 
     @Test( dependsOnMethods = { "testAddBuildEnvironment" } )
     public void testEditBuildEnvironment()
     {
-        String BUILD_ENV_NAME = getProperty( "BUILD_ENV_NAME" );
         String newName = "new_name";
-        goToEditBuildEnvironment( BUILD_ENV_NAME );
+        goToEditBuildEnvironment( buildEnvName );
         editBuildEnvironment( newName, new String[]{ }, true );
-        // TODO: ADD INSTALLATIONS TO ENVIROTMENT
         goToEditBuildEnvironment( newName );
-        editBuildEnvironment( BUILD_ENV_NAME, new String[]{ }, true );
+        editBuildEnvironment( buildEnvName, new String[]{ }, true );
+    }
+
+    @Test( dependsOnMethods = { "testAddBuildEnvironment" })
+    public void testAddInstallationToBuildEnvironment()
+    {
+        addBuildEnvironment( INSTALLATION_BUILD_ENV, new String[]{ }, true );
+
+        goToInstallationPage();
+        if ( !isTextPresent( INSTALLATION_NAME ) )
+        {
+            goToAddInstallationVariable();
+            addInstallation( INSTALLATION_NAME, "VAR_BUILD_ENV", "var_value", false, false, true );
+        }
+
+        goToEditBuildEnvironment( INSTALLATION_BUILD_ENV );
+        editBuildEnvironment( INSTALLATION_BUILD_ENV, new String[] { INSTALLATION_NAME }, true );
+    }
+
+    @Test( dependsOnMethods = { "testAddInstallationToBuildEnvironment" })
+    public void testEditInstallationOnBuildEnvironment()
+    {
+        goToEditBuildEnvironment( INSTALLATION_BUILD_ENV );
+        clickLinkWithText( INSTALLATION_NAME );
+        assertEditInstallationVariablePage();
+        assert INSTALLATION_NAME.equals( getFieldValue( "installation.name" ) );
+    }
+
+    @Test( dependsOnMethods = { "testEditInstallationOnBuildEnvironment" })
+    public void testRemoveInstallationOnBuildEnvironment()
+    {
+        goToEditBuildEnvironment( INSTALLATION_BUILD_ENV );
+        assertLinkPresent( INSTALLATION_NAME );
+        clickImgWithAlt( "Delete" );
+        assertEditBuildEnvironmentPage( INSTALLATION_BUILD_ENV );
+        assertLinkNotPresent( INSTALLATION_NAME );
     }
 
     @Test( dependsOnMethods = { "testEditInvalidBuildEnvironment", "testEditBuildEnvironment",
         "testAddDuplicatedBuildEnvironment", "testEditInvalidBuildEnvironment" } )
     public void testDeleteBuildEnvironment()
     {
-        String BUILD_ENV_NAME = getProperty( "BUILD_ENV_NAME" );
-        removeBuildEnvironment( BUILD_ENV_NAME );
+        removeBuildEnvironment( buildEnvName );
     }
 
-    @Test( dependsOnMethods = { "testAddBuildEnvironmentWithBuildAgentGroup" } )
+    @Test( dependsOnMethods = { "testAddBuildEnvironment" } )
     public void testEditDuplicatedBuildEnvironmentParallelBuilds()
     {
-        String BUILD_ENV_NAME = getProperty( "BUILD_ENV_NAME" );
-        String newName = "NEW_BUILD_ENV";
         goToAddBuildEnvironment();
-        addBuildEnvironment( newName, new String[]{ }, true );
-        goToEditBuildEnvironment( newName );
-        editBuildEnvironment( BUILD_ENV_NAME, new String[]{ }, false );
+        addBuildEnvironment( NEW_BUILD_ENV, new String[]{ }, true );
+        goToEditBuildEnvironment( NEW_BUILD_ENV );
+        editBuildEnvironment( buildEnvName, new String[]{ }, false );
         assertTextPresent( "A Build Environment with the same name already exists" );
     }
 
@@ -126,4 +170,12 @@ public class BuildEnvironmentTest
             assertAddBuildEnvironmentPage();
         }
     }
+
+    @AfterClass(alwaysRun = true)
+    public void tearDown()
+    {
+        removeBuildEnvironment( buildEnvName, false );
+        removeBuildEnvironment( INSTALLATION_BUILD_ENV, false );
+        removeBuildEnvironment( NEW_BUILD_ENV, false );
+    }
 }

Modified: continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/CSRFSecurityTest.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/CSRFSecurityTest.java?rev=1596252&r1=1596251&r2=1596252&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/CSRFSecurityTest.java (original)
+++ continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/CSRFSecurityTest.java Tue May 20 14:02:03 2014
@@ -32,7 +32,7 @@ public class CSRFSecurityTest
     public void testCSRFDeleteProject()
     {
         getSelenium().open( baseUrl );
-        getSelenium().open( baseUrl + "/deleteProject!default.action?projectGroupId=2&projectId=2" );
+        getSelenium().open( baseUrl + "/deleteProject_default.action?projectGroupId=2&projectId=2" );
         assertTextPresent( "Security Alert - Invalid Token Found" );
         assertTextPresent( "Possible CSRF attack detected! Invalid token found in the request." );
     }
@@ -91,7 +91,7 @@ public class CSRFSecurityTest
     public void testCSRFSaveFooter()
     {
         getSelenium().open( baseUrl );
-        getSelenium().open( baseUrl + "/admin/saveFooter!saveFooter.action?footer=testValue" );
+        getSelenium().open( baseUrl + "/admin/saveFooter.action?footer=testValue" );
         assertTextPresent( "Security Alert - Invalid Token Found" );
         assertTextPresent( "Possible CSRF attack detected! Invalid token found in the request." );
     }

Modified: continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/DistributedBuildTest.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/DistributedBuildTest.java?rev=1596252&r1=1596251&r2=1596252&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/DistributedBuildTest.java (original)
+++ continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/DistributedBuildTest.java Tue May 20 14:02:03 2014
@@ -171,7 +171,7 @@ public class DistributedBuildTest
         buildProjectForQueuePageTest( projectGroupName, projectGroupId, projectGroupDescription );
 
         //check queue page while building
-        getSelenium().open( "/continuum/admin/displayQueues!display.action" );
+        getSelenium().open( baseUrl + "/admin/displayQueues.action" );
         assertPage( "Continuum - View Distributed Builds" );
         assertTextPresent( "Current Build" );
         assertTextPresent( "Build Queue" );

Modified: continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/DistributedReleaseTest.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/DistributedReleaseTest.java?rev=1596252&r1=1596251&r2=1596252&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/DistributedReleaseTest.java (original)
+++ continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/DistributedReleaseTest.java Tue May 20 14:02:03 2014
@@ -24,6 +24,8 @@ import org.testng.Assert;
 import org.testng.annotations.AfterMethod;
 import org.testng.annotations.BeforeClass;
 import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Optional;
+import org.testng.annotations.Parameters;
 import org.testng.annotations.Test;
 
 import java.io.BufferedReader;
@@ -37,11 +39,12 @@ import java.util.Arrays;
 public class DistributedReleaseTest
     extends AbstractReleaseTest
 {
-
     private static final String RELEASE_BUTTON_TEXT = "Release";
 
     private static final String PROVIDE_RELEASE_PARAMETERS_TEXT = "Provide Release Parameters";
 
+    private String appserverBase;
+
     private String projectGroupName;
 
     private String projectGroupId;
@@ -63,8 +66,11 @@ public class DistributedReleaseTest
     private String releaseProjectScmUrl;
 
     @BeforeClass
-    public void createAndBuildProject()
+    @Parameters( { "appserverBase" } )
+    public void createAndBuildProject( @Optional( "target" ) String appserverBase )
     {
+        this.appserverBase = appserverBase;
+
         projectGroupName = getProperty( "DIST_RELEASE_PROJECT_GROUP_NAME" );
         projectGroupId = getProperty( "DIST_RELEASE_PROJECT_GROUP_ID" );
         String description = "Distributed Release test projects";
@@ -80,7 +86,9 @@ public class DistributedReleaseTest
         String pomPassword = getProperty( "MAVEN2_POM_PASSWORD" );
         String projectName = getProperty( "MAVEN2_POM_PROJECT_NAME" );
 
-        addProjectGroup( projectGroupName, projectGroupId, description, true, false );
+        removeProjectGroup( projectGroupName, false );
+
+        addProjectGroup( projectGroupName, projectGroupId, description, true );
         clickLinkWithText( projectGroupName );
 
         if ( !isLinkPresent( projectName ) )
@@ -105,7 +113,7 @@ public class DistributedReleaseTest
         developmentVersion = getProperty( "DIST_RELEASE_PROJECT_DEVELOPMENT_VERSION" );
         releaseProjectScmUrl = getProperty( "DIST_RELEASE_PROJECT_SCM_URL" );
 
-        File file = new File( "target/conf/prepared-releases.xml" );
+        File file = getPreparedReleasesFile();
 
         if ( file.exists() && !file.delete() )
         {
@@ -420,7 +428,7 @@ public class DistributedReleaseTest
     private String getPreparedReleasesContent()
         throws IOException
     {
-        File file = new File( "target/conf/prepared-releases.xml" );
+        File file = getPreparedReleasesFile();
         Assert.assertTrue( file.exists(), "prepared-releases.xml was not created" );
 
         FileInputStream fis = null;
@@ -445,4 +453,9 @@ public class DistributedReleaseTest
             IOUtils.closeQuietly( fis );
         }
     }
+
+    private File getPreparedReleasesFile()
+    {
+        return new File( appserverBase, "conf/prepared-releases.xml" );
+    }
 }

Modified: continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/LoginTest.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/LoginTest.java?rev=1596252&r1=1596251&r2=1596252&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/LoginTest.java (original)
+++ continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/LoginTest.java Tue May 20 14:02:03 2014
@@ -43,7 +43,7 @@ public class LoginTest
         goToLoginPage();
         getSelenium().type( "loginForm_username", "badUsername" );
         getSelenium().type( "loginForm_username", getProperty( "ADMIN_PASSWORD" ) );
-        getSelenium().click( "loginForm__login" );
+        getSelenium().click( "//input[@value='Login']" );
         getSelenium().waitForPageToLoad( maxWaitTimeInMs );
         assertTextPresent( "You have entered an incorrect username and/or password" );
     }
@@ -58,7 +58,7 @@ public class LoginTest
     {
         goToLoginPage();
         getSelenium().type( "loginForm_password", "password" );
-        getSelenium().click( "loginForm__login" );
+        getSelenium().click( "//input[@value='Login']" );
         getSelenium().waitForPageToLoad( maxWaitTimeInMs );
         assertTextPresent( "User Name is required" );
     }
@@ -67,7 +67,7 @@ public class LoginTest
     {
         goToLoginPage();
         getSelenium().type( "loginForm_username", getProperty( "ADMIN_USERNAME" ) );
-        getSelenium().click( "loginForm__login" );
+        getSelenium().click( "//input[@value='Login']" );
         getSelenium().waitForPageToLoad( maxWaitTimeInMs );
         assertTextPresent( "You have entered an incorrect username and/or password" );
     }

Modified: continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/MavenOneProjectTest.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/MavenOneProjectTest.java?rev=1596252&r1=1596251&r2=1596252&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/MavenOneProjectTest.java (original)
+++ continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/MavenOneProjectTest.java Tue May 20 14:02:03 2014
@@ -72,7 +72,7 @@ public class MavenOneProjectTest
         pomUrlUnparseableContent = getProperty( "MAVEN1_UNPARSEABLE_POM_URL" );
 
         malformedPomUrl = "aaa";
-        inaccessiblePomUrl = "http://localhost:9595/";
+        inaccessiblePomUrl = baseUrl + "/inaccessible-pom/";
     }
 
     @AfterMethod
@@ -81,6 +81,18 @@ public class MavenOneProjectTest
         removeProjectGroup( projectGroupName, false );
     }
 
+    public void testAddMavenOneProjectToProjectGroup()
+        throws Exception
+    {
+        goToProjectGroupsSummaryPage();
+        String defaultProjectGroupName = getProperty( "DEFAULT_PROJECT_GROUP_NAME" );
+        clickLinkWithText( defaultProjectGroupName );
+        selectValue( "preferredExecutor", "Add M1 Project" );
+        clickButtonWithValue( "Add" );
+        assertAddMavenOneProjectPage( defaultProjectGroupName );
+        // rest is tested by other methods
+    }
+
     public void testAddMavenOneProjectWithNoDefaultBuildDefinitionFromTemplate()
         throws Exception
     {
@@ -220,8 +232,8 @@ public class MavenOneProjectTest
 
     private void addMaven1Project( String groupName, String pomUrl, String pomUsername, String pomPassword )
     {
-        goToAddMavenOneProjectPage();
         assertLinkNotPresent( groupName );
+        goToAddMavenOneProjectPage();
         addMavenOneProject( pomUrl, pomUsername, pomPassword, null, true );
         goToProjectGroupsSummaryPage();
         assertLinkPresent( groupName );

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=1596252&r1=1596251&r2=1596252&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 Tue May 20 14:02:03 2014
@@ -135,15 +135,19 @@ public class MavenTwoProjectTest
         String targetGroupDescription = getProperty( "MAVEN2_MOVE_PROJECT_TARGET_PROJECT_GROUP_DESCRIPTION" );
         addProjectGroup( targetGroupName, targetGroupId, targetGroupDescription, true );
 
-        // Move the project
-        moveProjectToProjectGroup( projectGroupName, projectGroupId, projectGroupDescription, projectName,
-                                   targetGroupName );
-        showProjectGroup( targetGroupName, targetGroupId, targetGroupDescription );
-        assertTextPresent( "Member Projects" );
-        assertTextPresent( projectName );
-
-        showProjectGroup( projectGroupName, projectGroupId, projectGroupDescription );
-        assertTextNotPresent( "Member Projects" );
+        try {
+            // Move the project
+            moveProjectToProjectGroup( projectGroupName, projectGroupId, projectGroupDescription, projectName,
+                                       targetGroupName );
+            showProjectGroup( targetGroupName, targetGroupId, targetGroupDescription );
+            assertTextPresent( "Member Projects" );
+            assertTextPresent( projectName );
+
+            showProjectGroup( projectGroupName, projectGroupId, projectGroupDescription );
+            assertTextNotPresent( "Member Projects" );
+        } finally {
+            removeProjectGroup( targetGroupName, false );
+        }
     }
 
     /**
@@ -230,7 +234,7 @@ public class MavenTwoProjectTest
     public void testInaccessiblePomUrl()
         throws Exception
     {
-        String pomUrl = "http://localhost:9595/";
+        String pomUrl = baseUrl + "/inaccessible-pom/";
         submitAddMavenTwoProjectPage( pomUrl );
         assertTextPresent(
             "POM file does not exist. Either the POM you specified or one of its modules does not exist." );
@@ -262,6 +266,7 @@ public class MavenTwoProjectTest
 
         // wait for project to finish checkout
         waitForProjectCheckout();
+        waitPage();
 
         clickLinkWithXPath( "//tbody/tr['0']/td['10']/a/img[@alt='Delete']" );
         assertTextPresent( "Delete Continuum Project" );
@@ -286,6 +291,7 @@ public class MavenTwoProjectTest
 
         //wait for project to finish checkout
         waitForProjectCheckout();
+        waitPage();
 
         checkField( "//tbody/tr['0']/td['0']/input[@name='selectedProjects']" );
         clickButtonWithValue( "Delete Project(s)" );

Modified: continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/NotifierTest.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/NotifierTest.java?rev=1596252&r1=1596251&r2=1596252&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/NotifierTest.java (original)
+++ continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/NotifierTest.java Tue May 20 14:02:03 2014
@@ -77,12 +77,13 @@ public class NotifierTest
         String pomPassword = getProperty( "MAVEN2_POM_PASSWORD" );
 
         loginAsAdmin();
-        addProjectGroup( projectGroupName, projectGroupId, projectGroupDescription, true, false );
+
+        removeProjectGroup( projectGroupName, false );
+
+        addProjectGroup( projectGroupName, projectGroupId, projectGroupDescription, true, true );
         clickLinkWithText( projectGroupName );
-        if ( !isLinkPresent( projectName ) )
-        {
-            addMavenTwoProject( projectPomUrl, pomUsername, pomPassword, projectGroupName, true );
-        }
+
+        addMavenTwoProject( projectPomUrl, pomUsername, pomPassword, projectGroupName, true );
     }
 
     @BeforeMethod
@@ -205,10 +206,8 @@ public class NotifierTest
         String newHost = "new.test.com";
         String newChannel = "new_test_channel";
         goToProjectInformationPage( projectGroupName, projectName );
-        editIrcNotifier( projectGroupName, projectName, ircNotifierHost, ircNotifierChannel, newHost, newChannel,
-                         true );
-        editIrcNotifier( projectGroupName, projectName, newHost, newChannel, ircNotifierHost, ircNotifierChannel,
-                         true );
+        editIrcNotifier( projectGroupName, projectName, ircNotifierHost, ircNotifierChannel, newHost, newChannel, true );
+        editIrcNotifier( projectGroupName, projectName, newHost, newChannel, ircNotifierHost, ircNotifierChannel, true );
     }
 
     @Test( dependsOnMethods = { "testAddValidIrcProjectNotifier" } )
@@ -373,8 +372,7 @@ public class NotifierTest
         throws Exception
     {
         goToProjectNotifier( projectGroupName, projectName );
-        addMsnNotifier( projectGroupName, projectName, msnNotifierLogin, msnNotifierPassword, msnNotifierAddress,
-                        true );
+        addMsnNotifier( projectGroupName, projectName, msnNotifierLogin, msnNotifierPassword, msnNotifierAddress, true );
     }
 
     public void testAddMsnProjectNotifierWithInvalidValues()
@@ -572,6 +570,29 @@ public class NotifierTest
         assertProjectInformationPage();
     }
 
+    public void testDeleteProjectNotifierFromGroupNotifierPage()
+        throws Exception
+    {
+        String mailNotifierAddress = "testDeleteProjectNotifierFromGroupNotifierPage@test.com";
+
+        goToProjectGroupsSummaryPage();
+        goToProjectNotifier( projectGroupName, projectName );
+        addMailNotifier( projectGroupName, projectName, mailNotifierAddress, true );
+
+        showProjectGroup( projectGroupName, projectGroupId, projectGroupDescription );
+        clickLinkWithText( "Notifiers" );
+        assertGroupNotifierPage( projectGroupName );
+
+        // Delete
+        clickLinkWithXPath( "//preceding::td[text()='" + mailNotifierAddress + "']//following::img[@alt='Delete']" );
+        assertButtonWithValuePresent( "Delete" );
+        assertButtonWithValuePresent( "Cancel" );
+        clickButtonWithValue( "Delete" );
+        assertGroupNotifierPage( projectGroupName );
+
+        assertTextNotPresent( mailNotifierAddress );
+    }
+
     protected void assertGroupNotifierPage( String projectGroupName )
     {
         assertTextPresent( "Project Group Notifiers of group " + projectGroupName );

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=1596252&r1=1596251&r2=1596252&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 Tue May 20 14:02:03 2014
@@ -34,6 +34,9 @@ import org.testng.annotations.Test;
 public class ProjectGroupTest
     extends AbstractAdminTest
 {
+
+    public static final String TEST_PROJECT_NAME = "ContinuumBuildQueueTestData";
+
     private String projectGroupName;
 
     private String projectGroupId;
@@ -81,7 +84,11 @@ public class ProjectGroupTest
         String groupId = "com.example.this-is-a-long-group-id";
         String description = "";
 
-        addProjectGroup( name, groupId, description, true );
+        try {
+            addProjectGroup( name, groupId, description, true );
+        } finally {
+            removeProjectGroup( name, false );
+        }
     }
 
     public void testAddProjectGroupWithPunctuation()
@@ -91,7 +98,11 @@ public class ProjectGroupTest
         String groupId = "com.example.test";
         String description = "";
 
-        addProjectGroup( name, groupId, description, true );
+        try {
+            addProjectGroup( name, groupId, description, true );
+        } finally {
+            removeProjectGroup( name, false );
+        }
     }
 
     public void testAddProjectGroupWithEmptyString()
@@ -219,4 +230,31 @@ public class ProjectGroupTest
         removeProjectGroup( name3 );
         assertLinkNotPresent( name3 );
     }
+
+    public void testRemoveProjectFromMembers()
+    {
+        goToProjectGroupsSummaryPage();
+        addProjectGroup( projectGroupName, projectGroupId, projectGroupDescription, true, false );
+        showProjectGroup( projectGroupName, projectGroupId, projectGroupDescription );
+
+        if ( !isLinkPresent( TEST_PROJECT_NAME ) )
+        {
+            clickButtonWithValue( "Add" );
+            assertAddMavenTwoProjectPage();
+            setFieldValue( "m2PomUrl", getProperty( "M2_POM_URL" ) );
+            clickButtonWithValue( "Add" );
+            waitAddProject( "Continuum - Project Group" );
+            assertTextPresent( TEST_PROJECT_NAME );
+        }
+
+        clickLinkWithText( "Members" );
+        assertTextPresent( TEST_PROJECT_NAME );
+        clickImgWithAlt( "Delete" );
+
+        assertTextPresent( "Delete Continuum Project" );
+        clickButtonWithValue( "Delete" );
+
+        assertProjectGroupSummaryPage( projectGroupName, projectGroupId, projectGroupDescription );
+        assertTextNotPresent( TEST_PROJECT_NAME );
+    }
 }

Modified: continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/QueueTest.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/QueueTest.java?rev=1596252&r1=1596251&r2=1596252&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/QueueTest.java (original)
+++ continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/QueueTest.java Tue May 20 14:02:03 2014
@@ -20,6 +20,7 @@ package org.apache.continuum.web.test;
  */
 
 import org.apache.continuum.web.test.parent.AbstractAdminTest;
+import org.testng.annotations.AfterClass;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
 
@@ -41,10 +42,17 @@ public class QueueTest
         buildQueueName = getProperty( "BUILD_QUEUE_NAME" );
     }
 
+    @AfterClass
+    protected void tearDown()
+    {
+        goToBuildQueuePage();
+        removeBuildQueue( buildQueueName );
+    }
+
     public void testAddBuildQueue()
     {
         setMaxBuildQueue( 2 );
-        addBuildQueue( buildQueueName, true );
+        addBuildQueue( buildQueueName );
     }
 
     public void testQueuePageWithoutBuild()
@@ -79,12 +87,16 @@ public class QueueTest
         goToAddSchedule();
         addEditSchedule( scheduleName, scheduleDescription, second, minute, hour, dayOfMonth, month, dayOfWeek, year,
                          maxTime, period, true, true );
-        goToEditSchedule( scheduleName, scheduleDescription, second, minute, hour, dayOfMonth, month, dayOfWeek, year,
-                          maxTime, period );
-
-        getSelenium().addSelection( "saveSchedule_availableBuildQueuesIds", "label=" + buildQueueName );
-        getSelenium().click( "//input[@value='->']" );
-        submit();
+        try {
+            goToEditSchedule( scheduleName, scheduleDescription, second, minute, hour, dayOfMonth, month, dayOfWeek, year,
+                              maxTime, period );
+
+            getSelenium().addSelection( "saveSchedule_availableBuildQueuesIds", "label=" + buildQueueName );
+            getSelenium().click( "//input[@value='->']" );
+            submit();
+        } finally {
+            removeSchedule( scheduleName );
+        }
     }
 
     @Test( dependsOnMethods = { "testAddBuildQueue" } )
@@ -107,7 +119,7 @@ public class QueueTest
     public void testAddEmptyBuildQueue()
     {
         setMaxBuildQueue( 3 );
-        addBuildQueue( "", false );
+        addBuildQueue( "", false, false );
         assertTextPresent( "You must define a name" );
     }
 
@@ -116,7 +128,7 @@ public class QueueTest
         setMaxBuildQueue( 3 );
         goToBuildQueuePage();
         String testBuildQueue = "test_build_queue";
-        addBuildQueue( testBuildQueue, true );
+        addBuildQueue( testBuildQueue );
 
         removeBuildQueue( testBuildQueue );
         assertTextNotPresent( testBuildQueue );
@@ -134,15 +146,19 @@ public class QueueTest
         String projectGroupId = getProperty( "MAVEN2_QUEUE_TEST_POM_PROJECT_GROUP_ID" );
         String projectGroupDescription = getProperty( "MAVEN2_QUEUE_TEST_POM_PROJECT_GROUP_DESCRIPTION" );
 
-        //build a project
-        goToAddMavenTwoProjectPage();
-        addMavenTwoProject( pomUrl, pomUsername, pomPassword, null, true );
+        goToProjectGroupsSummaryPage();
+        if ( !isLinkPresent( projectGroupName ) )
+        {
+            //build a project
+            goToAddMavenTwoProjectPage();
+            addMavenTwoProject( pomUrl, pomUsername, pomPassword, null, true );
+        }
 
         buildProjectForQueuePageTest( projectGroupName, projectGroupId, projectGroupDescription );
         String location = getSelenium().getLocation();
 
         //check queue page while building
-        getSelenium().open( "/continuum/admin/displayQueues!display.action" );
+        getSelenium().open( baseUrl + "/admin/displayQueues.action" );
         assertPage( "Continuum - Build Queue" );
         assertTextPresent( "Current Build" );
         assertTextPresent( "Build Queue" );
@@ -195,21 +211,32 @@ public class QueueTest
         assertButtonWithValuePresent( "Cancel" );
     }
 
+    protected void addBuildQueue( String name )
+    {
+        addBuildQueue( name, true );
+    }
+
     protected void addBuildQueue( String name, boolean success )
     {
+        addBuildQueue( name, success, true );
+    }
+
+    protected void addBuildQueue( String name, boolean success, boolean waitForError )
+    {
         goToBuildQueuePage();
         assertBuildQueuePage();
         submit();
         assertAddBuildQueuePage();
         setFieldValue( "name", name );
-        submit();
         if ( success )
         {
+            submit();
             assertBuildQueuePage();
             assertTextPresent( name );
         }
         else
         {
+            submit( waitForError );
             assertAddBuildQueuePage();
         }
     }

Modified: continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/ScheduleTest.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/ScheduleTest.java?rev=1596252&r1=1596251&r2=1596252&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/ScheduleTest.java (original)
+++ continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/ScheduleTest.java Tue May 20 14:02:03 2014
@@ -163,17 +163,4 @@ public class ScheduleTest
         String SCHEDULE_NAME = getProperty( "SCHEDULE_NAME" );
         removeSchedule( SCHEDULE_NAME );
     }
-
-    protected void removeSchedule( String name )
-    {
-        goToSchedulePage();
-        clickLinkWithXPath( "(//a[contains(@href,'removeSchedule.action') and contains(@href, '" + name + "')])//img" );
-        assertPage( "Continuum - Delete Schedule" );
-        assertTextPresent( "Delete Schedule" );
-        assertTextPresent( "Are you sure you want to delete the schedule \"" + name + "\"?" );
-        assertButtonWithValuePresent( "Delete" );
-        assertButtonWithValuePresent( "Cancel" );
-        clickButtonWithValue( "Delete" );
-        assertSchedulePage();
-    }
 }

Modified: continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/UserRolesManagementTest.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/UserRolesManagementTest.java?rev=1596252&r1=1596251&r2=1596252&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/UserRolesManagementTest.java (original)
+++ continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/UserRolesManagementTest.java Tue May 20 14:02:03 2014
@@ -20,12 +20,22 @@ package org.apache.continuum.web.test;
  */
 
 import org.apache.continuum.web.test.parent.AbstractUserRolesManagementTest;
+import org.testng.annotations.AfterClass;
+import org.testng.annotations.AfterMethod;
 import org.testng.annotations.Test;
 
+import java.util.ArrayList;
+import java.util.List;
+
 @Test( groups = {"userroles"}, sequential = true )
 public class UserRolesManagementTest
     extends AbstractUserRolesManagementTest
 {
+
+    public static final String TEST_GROUP = "UserRoles Test Group";
+
+    private List<String> usernames = new ArrayList<String>();
+
     public void testBasicAddDeleteUser()
     {
         username = getProperty( "GUEST_USERNAME" );
@@ -230,7 +240,7 @@ public class UserRolesManagementTest
 
         // enable distributed build
         clickLinkWithText( "Configuration" );
-        clickLinkWithLocator( "configuration_distributedBuildEnabled", false );
+        checkField( "distributedBuildEnabled" );
         clickButtonWithValue( "Save" );
 
         clickLinkWithText( "Logout" );
@@ -246,7 +256,7 @@ public class UserRolesManagementTest
         loginAsAdmin();
         // disable distributed build
         clickLinkWithText( "Configuration" );
-        clickLinkWithLocator( "configuration_distributedBuildEnabled", false );
+        uncheckField( "distributedBuildEnabled" );
         clickButtonWithValue( "Save" );
 
         clickLinkWithText( "Logout" );
@@ -269,8 +279,8 @@ public class UserRolesManagementTest
         assertTextNotPresent( "Project Groups list is empty." );
         // test add project group
         clickButtonWithValue( "Add Project Group" );
-        setFieldValue( "name", "Test Group" );
-        setFieldValue( "groupId", "Test Group" );
+        setFieldValue( "name", TEST_GROUP );
+        setFieldValue( "groupId", TEST_GROUP );
         setFieldValue( "description", "testing project group" );
         submit();
     }
@@ -279,7 +289,7 @@ public class UserRolesManagementTest
     public void testContinuumGroupProjectAdmin_AddProjectToProjectGroup()
         throws Exception
     {
-        clickLinkWithText( "Test Group" );
+        clickLinkWithText( TEST_GROUP );
         clickButtonWithValue( "Add" );
         assertAddMavenTwoProjectPage();
         setFieldValue( "m2PomUrl", getProperty( "M2_POM_URL" ) );
@@ -293,7 +303,7 @@ public class UserRolesManagementTest
     public void testContinuumGroupProjectAdmin_BuildProject()
         throws Exception
     {
-        buildProjectGroup( "Test Group", "Test Group", "testing project group", "ContinuumBuildQueueTestData", true );
+        buildProjectGroup( TEST_GROUP, TEST_GROUP, "testing project group", "ContinuumBuildQueueTestData", true );
     }
 
     @Test( dependsOnMethods = {"testContinuumGroupProjectAdmin_BuildProject"} )
@@ -303,7 +313,7 @@ public class UserRolesManagementTest
         clickLinkWithText( "guest1" );
         clickLinkWithText( "Edit Roles" );
         checkUserRoleWithValue( "Guest" );
-        checkResourceRoleWithValue( "Project Developer - Test Group" );
+        checkResourceRoleWithValue( "Project Developer - " + TEST_GROUP );
         submit();
         clickLinkWithText( "Logout" );
     }
@@ -619,4 +629,28 @@ public class UserRolesManagementTest
         clickLinkWithText( "Logout" );
     }
 
+    @AfterMethod
+    public void trackUserToDelete()
+    {
+        // record to delete at end, as some are used across dependent tests
+        // TODO: refactor!
+        usernames.add( username );
+    }
+
+    @AfterClass
+    public void cleanup()
+    {
+        loginAsAdmin();
+        if ( !isTextPresent( "List of Users" ) )
+        {
+            clickLinkWithText( "Users" );
+        }
+
+        for ( String username : usernames )
+        {
+            deleteUser( username, false );
+        }
+
+        removeProjectGroup( TEST_GROUP, false );
+    }
 }

Modified: continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/listener/CaptureScreenShotsListener.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/listener/CaptureScreenShotsListener.java?rev=1596252&r1=1596251&r2=1596252&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/listener/CaptureScreenShotsListener.java (original)
+++ continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/listener/CaptureScreenShotsListener.java Tue May 20 14:02:03 2014
@@ -35,9 +35,16 @@ public class CaptureScreenShotsListener
     extends TestListenerAdapter
 {
     @Override
+    public void onTestStart( ITestResult tr )
+    {
+        System.out.print( "Test " + tr.getName() + "... " );
+        super.onTestStart( tr );
+    }
+
+    @Override
     public void onTestSkipped( ITestResult tr )
     {
-        System.out.println( "Test " + tr.getName() + " -> Skipped" );
+        System.out.println( "Skipped" );
         super.onTestSkipped( tr );
     }
 
@@ -45,14 +52,14 @@ public class CaptureScreenShotsListener
     public void onTestFailure( ITestResult tr )
     {
         captureError( tr );
-        System.out.println( "Test " + tr.getName() + " -> Failed" );
+        System.out.println( "Failed" );
         super.onTestFailure( tr );
     }
 
     @Override
     public void onTestSuccess( ITestResult tr )
     {
-        System.out.println( "Test " + tr.getName() + " -> Success" );
+        System.out.println( "Success" );
         super.onTestFailure( tr );
     }
 
@@ -103,6 +110,9 @@ public class CaptureScreenShotsListener
             return;
         }
         String fileBaseName = methodName + "_" + className + ".java_" + lineNumber + "-" + time;
+
+        System.out.println( "Capturing screenshot at " + fileBaseName + ".png" );
+
         try
         {
             selenium.windowMaximize();

Modified: continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/parent/AbstractAdminTest.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/parent/AbstractAdminTest.java?rev=1596252&r1=1596251&r2=1596252&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/parent/AbstractAdminTest.java (original)
+++ continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/parent/AbstractAdminTest.java Tue May 20 14:02:03 2014
@@ -21,6 +21,8 @@ package org.apache.continuum.web.test.pa
 
 import org.testng.annotations.BeforeClass;
 import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Optional;
+import org.testng.annotations.Parameters;
 
 import java.io.UnsupportedEncodingException;
 import java.net.URLEncoder;
@@ -41,6 +43,8 @@ public abstract class AbstractAdminTest
         if ( !getSelenium().isElementPresent( "//span[@class='username' and text()='" + username + "']" ) )
         {
             login( username, password );
+
+            assertElementPresent( "//span[@class='username' and text()='" + username + "']" );
         }
     }
 
@@ -217,22 +221,24 @@ public abstract class AbstractAdminTest
     }
 
     @BeforeClass( alwaysRun = true )
-    public void initializeBuildAgent()
+    @Parameters( { "buildAgentUrl" } )
+    public void initializeBuildAgent(
+        @Optional( "http://localhost:9595/continuum-buildagent/xmlrpc" ) String buildAgentUrl )
     {
-        buildAgentUrl = baseUrl.substring( 0, baseUrl.indexOf( "/continuum" ) ) + "/continuum-buildagent/xmlrpc";
+        this.buildAgentUrl = buildAgentUrl;
     }
 
     protected void enableDistributedBuilds()
     {
         goToConfigurationPage();
         setFieldValue( "numberOfAllowedBuildsinParallel", "2" );
-        if ( !isChecked( "configuration_distributedBuildEnabled" ) )
+        if ( !isChecked( "distributedBuildEnabled" ) )
         {
             // must use click here so the JavaScript enabling the shared secret gets triggered
-            click( "configuration_distributedBuildEnabled" );
+            click( "distributedBuildEnabled" );
         }
-        setFieldValue( "configuration_sharedSecretPassword", SHARED_SECRET );
-        clickAndWait( "configuration_null" );
+        setFieldValue( "sharedSecretPassword", SHARED_SECRET );
+        clickAndWait( "css=input[value='Save']" );
         assertTextPresent( "true" );
         assertTextPresent( "Distributed Builds" );
         assertElementPresent( "link=Build Agents" );
@@ -242,9 +248,9 @@ public abstract class AbstractAdminTest
     {
         goToConfigurationPage();
         setFieldValue( "numberOfAllowedBuildsinParallel", "2" );
-        if ( isChecked( "configuration_distributedBuildEnabled" ) )
+        if ( isChecked( "distributedBuildEnabled" ) )
         {
-            uncheckField( "configuration_distributedBuildEnabled" );
+            uncheckField( "distributedBuildEnabled" );
         }
         submit();
         assertTextPresent( "false" );
@@ -349,4 +355,17 @@ public abstract class AbstractAdminTest
         assertBuildAgentPage();
         assertTextPresent( newDesc );
     }
+
+    protected void removeSchedule( String name )
+    {
+        goToSchedulePage();
+        clickLinkWithXPath( "(//a[contains(@href,'removeSchedule.action') and contains(@href, '" + name + "')])//img" );
+        assertPage( "Continuum - Delete Schedule" );
+        assertTextPresent( "Delete Schedule" );
+        assertTextPresent( "Are you sure you want to delete the schedule \"" + name + "\"?" );
+        assertButtonWithValuePresent( "Delete" );
+        assertButtonWithValuePresent( "Cancel" );
+        clickButtonWithValue( "Delete" );
+        assertSchedulePage();
+    }
 }

Modified: continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/parent/AbstractBuildDefinitionTemplateTest.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/parent/AbstractBuildDefinitionTemplateTest.java?rev=1596252&r1=1596251&r2=1596252&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/parent/AbstractBuildDefinitionTemplateTest.java (original)
+++ continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/parent/AbstractBuildDefinitionTemplateTest.java Tue May 20 14:02:03 2014
@@ -38,7 +38,7 @@ public abstract class AbstractBuildDefin
         assertTextPresent( "Available Templates" );
         assertTextPresent( "Available Build Definitions" );
         assertButtonWithIdPresent( "buildDefinitionTemplate_0" );
-        assertButtonWithIdPresent( "buildDefinitionAsTemplate_0" );
+        assertButtonWithIdPresent( "buildDefinitionAsTemplate_input_0" );
     }
 
     protected void goToAddTemplate()
@@ -125,22 +125,30 @@ public abstract class AbstractBuildDefin
 
     protected void removeTemplate( String name )
     {
+        removeTemplate( name, true );
+    }
+
+    protected void removeTemplate( String name, boolean failIfMissing )
+    {
         goToBuildDefinitionTemplatePage();
-        clickLinkWithXPath(
-            "(//a[contains(@href,'deleteDefinitionTemplate') and contains(@href, '" + name + "')])//img" );
-        assertPage( "Continuum - Delete Build Definition Template" );
-        assertTextPresent( "Delete Build Definition Template" );
-        assertTextPresent( "Are you sure you want to delete build definition template \"" + name + "\"?" );
-        assertButtonWithValuePresent( "Delete" );
-        assertButtonWithValuePresent( "Cancel" );
-        clickButtonWithValue( "Delete" );
-        assertBuildDefinitionTemplatePage();
+        String xpath = "(//a[contains(@href,'deleteDefinitionTemplate') and contains(@href, '" + name + "')])//img";
+        if ( failIfMissing || isElementPresent( "xpath=" + xpath ) )
+        {
+            clickLinkWithXPath( xpath );
+            assertPage( "Continuum - Delete Build Definition Template" );
+            assertTextPresent( "Delete Build Definition Template" );
+            assertTextPresent( "Are you sure you want to delete build definition template \"" + name + "\"?" );
+            assertButtonWithValuePresent( "Delete" );
+            assertButtonWithValuePresent( "Cancel" );
+            clickButtonWithValue( "Delete" );
+            assertBuildDefinitionTemplatePage();
+        }
     }
 
     protected void goToAddBuildDefinitionTemplate()
     {
         goToBuildDefinitionTemplatePage();
-        clickSubmitWithLocator( "buildDefinitionAsTemplate_0" );
+        clickSubmitWithLocator( "buildDefinitionAsTemplate_input_0" );
         assertAddEditBuildDefinitionTemplatePage();
     }