Author: oching
Date: Sun Aug 15 03:20:27 2010
New Revision: 985612
URL: http://svn.apache.org/viewvc?rev=985612&view=rev
Log:
[MRM-980] selenium tests for repository merging
submitted by Patti Arachchige Eshan Sudharaka
Added:
archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp-test/src/test/testng/org/apache/archiva/web/test/MergingRepositoriesTest.java
archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp-test/src/test/testng/org/apache/archiva/web/test/parent/AbstractMergingRepositoriesTest.java
Modified:
archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp-test/src/test/testng/org/apache/archiva/web/test/parent/AbstractArchivaTest.java
archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editRepository.jsp
archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/repositories.jsp
Added:
archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp-test/src/test/testng/org/apache/archiva/web/test/MergingRepositoriesTest.java
URL:
http://svn.apache.org/viewvc/archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp-test/src/test/testng/org/apache/archiva/web/test/MergingRepositoriesTest.java?rev=985612&view=auto
==============================================================================
---
archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp-test/src/test/testng/org/apache/archiva/web/test/MergingRepositoriesTest.java
(added)
+++
archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp-test/src/test/testng/org/apache/archiva/web/test/MergingRepositoriesTest.java
Sun Aug 15 03:20:27 2010
@@ -0,0 +1,101 @@
+package org.apache.archiva.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 org.apache.archiva.web.test.parent.AbstractMergingRepositoriesTest;
+import org.testng.annotations.Test;
+
+...@test(groups = {"merging"}, dependsOnMethods =
{"testWithCorrectUsernamePassword"}, sequential = true)
+public class MergingRepositoriesTest
+ extends AbstractMergingRepositoriesTest
+{
+
+ public void testAddStagingRepository()
+ {
+ goToRepositoriesPage();
+ getSelenium().open( "/archiva/admin/addRepository.action" );
+ addStagingRepository( "merging-repo", "merging-repo",
getRepositoryDir() + "merging-repo/", "",
+ "Maven 2.x Repository", "0 0 * * * ?", "", "" );
+ assertTextPresent( "merging-repo" );
+ }
+
+ // here we upload an artifact to the staging repository
+ @Test(dependsOnMethods = {"testAddStagingRepository"})
+ public void testAddArtifactToStagingRepository()
+ {
+ addArtifact( getGroupId(), getArtifactId(), getVersion(),
getPackaging(), getValidArtifactFilePath(),
+ "merging-repo-stage" );
+ assertTextPresent( "Artifact '" + getGroupId() + ":" + getArtifactId()
+ ":" + getVersion() +
+ "' was successfully deployed to repository 'merging-repo-stage'" );
+ }
+
+ // here we test the merging (no conflicts artifacts are available)
+ @Test(dependsOnMethods = {"testAddArtifactToStagingRepository"})
+ public void testMerging()
+ {
+ goToRepositoriesPage();
+ clickButtonWithValue( "Merge" );
+ assertTextPresent( "No conflicting artifacts" );
+ clickButtonWithValue( "Merge All" );
+ assertTextPresent( "Repository 'merging-repo-stage' successfully
merged to 'merging-repo'." );
+ }
+
+ // check audit updating is done properly or not
+ @Test(dependsOnMethods = {"testMerging"})
+ public void testAuditLogs()
+ {
+ goToAuditLogReports();
+ assertTextPresent( "Merged Artifact" );
+ assertTextPresent( "merging-repo" );
+ }
+
+ // merging is done by skipping conflicts
+ @Test(dependsOnMethods = {"testMerging"})
+ public void testMergingWithSkippingConflicts()
+ {
+ goToRepositoriesPage();
+ clickButtonWithValue( "Merge" );
+ assertTextPresent( "WARNING: The following are the artifacts in
conflict." );
+ clickButtonWithValue( "Merge With Skip" );
+ assertTextPresent( "Repository 'merging-repo-stage' successfully
merged to 'merging-repo'." );
+ }
+
+ // merging all
+ @Test(dependsOnMethods = {"testMerging"})
+ public void testMergingWithOutSkippingConflicts()
+ {
+ goToRepositoriesPage();
+ clickButtonWithValue( "Merge" );
+ assertTextPresent( "WARNING: The following are the artifacts in
conflict." );
+ clickButtonWithValue( "Merge All" );
+ assertTextPresent( "Repository 'merging-repo-stage' successfully
merged to 'merging-repo'." );
+ }
+
+ // change the configuaration first and try to upload existing artifact to
the repository
+ public void testConfigurationChangesOfStagingRepository()
+ {
+ editManagedRepository();
+ addArtifact( getGroupId(), getArtifactId(), getVersion(),
getPackaging(), getValidArtifactFilePath(),
+ "merging-repo-stage" );
+ assertTextPresent(
+ "Overwriting released artifacts in repository '" +
"merging-repo-stage" + "' is not allowed." );
+ }
+
+}
\ No newline at end of file
Modified:
archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp-test/src/test/testng/org/apache/archiva/web/test/parent/AbstractArchivaTest.java
URL:
http://svn.apache.org/viewvc/archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp-test/src/test/testng/org/apache/archiva/web/test/parent/AbstractArchivaTest.java?rev=985612&r1=985611&r2=985612&view=diff
==============================================================================
---
archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp-test/src/test/testng/org/apache/archiva/web/test/parent/AbstractArchivaTest.java
(original)
+++
archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp-test/src/test/testng/org/apache/archiva/web/test/parent/AbstractArchivaTest.java
Sun Aug 15 03:20:27 2010
@@ -562,6 +562,23 @@ public abstract class AbstractArchivaTes
clickButtonWithValue( "Add Repository" );
}
+ // add managed repository and its staging repository
+ public void addStagingRepository( String identifier, String name, String
directory, String indexDirectory,
+ String type, String cron, String
daysOlder, String retentionCount )
+ {
+ setFieldValue( "repository.id", identifier );
+ setFieldValue( "repository.name", name );
+ setFieldValue( "repository.location", directory );
+ setFieldValue( "repository.indexDir", indexDirectory );
+ selectValue( "repository.layout", type );
+ setFieldValue( "repository.refreshCronExpression", cron );
+ setFieldValue( "repository.daysOlder", daysOlder );
+ setFieldValue( "repository.retentionCount", retentionCount );
+ checkField( "stageNeeded" );
+
+ clickButtonWithValue( "Add Repository" );
+ }
+
protected void logout()
{
clickLinkWithText( "Logout" );
Added:
archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp-test/src/test/testng/org/apache/archiva/web/test/parent/AbstractMergingRepositoriesTest.java
URL:
http://svn.apache.org/viewvc/archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp-test/src/test/testng/org/apache/archiva/web/test/parent/AbstractMergingRepositoriesTest.java?rev=985612&view=auto
==============================================================================
---
archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp-test/src/test/testng/org/apache/archiva/web/test/parent/AbstractMergingRepositoriesTest.java
(added)
+++
archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp-test/src/test/testng/org/apache/archiva/web/test/parent/AbstractMergingRepositoriesTest.java
Sun Aug 15 03:20:27 2010
@@ -0,0 +1,74 @@
+package org.apache.archiva.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.
+ */
+
+import java.io.File;
+
+public class AbstractMergingRepositoriesTest
+ extends AbstractArchivaTest
+{
+
+ public void goToAuditLogReports()
+ {
+ getSelenium().open( "/archiva/report/queryAuditLogReport.action" );
+ }
+
+ public String getRepositoryDir()
+ {
+ File f = new File( "" );
+ String artifactFilePath = f.getAbsolutePath();
+ return artifactFilePath + "/target/";
+ }
+
+ public void editManagedRepository()
+ {
+ goToRepositoriesPage();
+ clickLinkWithXPath(
"//d...@id='contentArea']/div/div[5]/div[1]/a[1]/img" );
+ assertPage( "Apache Archiva \\ Admin: Edit Managed Repository" );
+ checkField( "repository.blockRedeployments" );
+ clickButtonWithValue( "Update Repository" );
+ }
+
+ public String getGroupId()
+ {
+ return getProperty( "VALIDARTIFACT_GROUPID" );
+ }
+
+ public String getArtifactId()
+ {
+ return getProperty( "VALIDARTIFACT_ARTIFACTID" );
+ }
+
+ public String getVersion()
+ {
+ return getProperty( "VERSION" );
+ }
+
+ public String getPackaging()
+ {
+ return getProperty( "PACKAGING" );
+ }
+
+ public String getValidArtifactFilePath()
+ {
+ return
"src/test/resources/snapshots/org/apache/maven/archiva/web/test/foo-bar/1.0-SNAPSHOT/foo-bar-1.0-SNAPSHOT.jar";
+ }
+
+}
Modified:
archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editRepository.jsp
URL:
http://svn.apache.org/viewvc/archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editRepository.jsp?rev=985612&r1=985611&r2=985612&view=diff
==============================================================================
---
archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editRepository.jsp
(original)
+++
archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editRepository.jsp
Sun Aug 15 03:20:27 2010
@@ -48,7 +48,7 @@
</c:if>
<c:if
test='<%= stats.booleanValue() %>'>
- <s:checkbox name="stageNeeded" value="false" label="Create stage
repository"/>
+ <s:checkbox id="stageNeeded" name="stageNeeded" value="false"
label="Create stage repository"/>
</c:if>
<s:submit value="Update Repository"/>
</s:form>
Modified:
archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/repositories.jsp
URL:
http://svn.apache.org/viewvc/archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/repositories.jsp?rev=985612&r1=985611&r2=985612&view=diff
==============================================================================
---
archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/repositories.jsp
(original)
+++
archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/repositories.jsp
Sun Aug 15 03:20:27 2010
@@ -280,7 +280,7 @@
<%--<s:hidden name="repository" value="%{repository}"/>--%>
<table>
<tr>
- <td><s:submit value="Merge"/></td>
+ <td><s:submit id="Merge" value="Merge"/></td>
</tr>
</table>