From ffbb7c1b129682fe284504591aa681b382fcc5f5 Mon Sep 17 00:00:00 2001 From: "Maria Odea B. Ching" Date: Sun, 15 Aug 2010 03:20:27 +0000 Subject: [PATCH] [MRM-980] selenium tests for repository merging submitted by Patti Arachchige Eshan Sudharaka git-svn-id: https://svn.apache.org/repos/asf/archiva/branches/archiva-MRM-980@985612 13f79535-47bb-0310-9956-ffa450edef68 --- .../web/test/MergingRepositoriesTest.java | 101 ++++++++++++++++++ .../web/test/parent/AbstractArchivaTest.java | 17 +++ .../AbstractMergingRepositoriesTest.java | 74 +++++++++++++ .../WEB-INF/jsp/admin/editRepository.jsp | 2 +- .../webapp/WEB-INF/jsp/admin/repositories.jsp | 2 +- 5 files changed, 194 insertions(+), 2 deletions(-) create mode 100644 archiva-modules/archiva-web/archiva-webapp-test/src/test/testng/org/apache/archiva/web/test/MergingRepositoriesTest.java create mode 100644 archiva-modules/archiva-web/archiva-webapp-test/src/test/testng/org/apache/archiva/web/test/parent/AbstractMergingRepositoriesTest.java diff --git a/archiva-modules/archiva-web/archiva-webapp-test/src/test/testng/org/apache/archiva/web/test/MergingRepositoriesTest.java b/archiva-modules/archiva-web/archiva-webapp-test/src/test/testng/org/apache/archiva/web/test/MergingRepositoriesTest.java new file mode 100644 index 000000000..8197762a3 --- /dev/null +++ b/archiva-modules/archiva-web/archiva-webapp-test/src/test/testng/org/apache/archiva/web/test/MergingRepositoriesTest.java @@ -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 diff --git a/archiva-modules/archiva-web/archiva-webapp-test/src/test/testng/org/apache/archiva/web/test/parent/AbstractArchivaTest.java b/archiva-modules/archiva-web/archiva-webapp-test/src/test/testng/org/apache/archiva/web/test/parent/AbstractArchivaTest.java index 815895875..5cd08610c 100644 --- a/archiva-modules/archiva-web/archiva-webapp-test/src/test/testng/org/apache/archiva/web/test/parent/AbstractArchivaTest.java +++ b/archiva-modules/archiva-web/archiva-webapp-test/src/test/testng/org/apache/archiva/web/test/parent/AbstractArchivaTest.java @@ -562,6 +562,23 @@ public abstract class AbstractArchivaTest 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" ); diff --git a/archiva-modules/archiva-web/archiva-webapp-test/src/test/testng/org/apache/archiva/web/test/parent/AbstractMergingRepositoriesTest.java b/archiva-modules/archiva-web/archiva-webapp-test/src/test/testng/org/apache/archiva/web/test/parent/AbstractMergingRepositoriesTest.java new file mode 100644 index 000000000..91af2cf60 --- /dev/null +++ b/archiva-modules/archiva-web/archiva-webapp-test/src/test/testng/org/apache/archiva/web/test/parent/AbstractMergingRepositoriesTest.java @@ -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( "//div[@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"; + } + +} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editRepository.jsp b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editRepository.jsp index 88086a6f2..eb3987db6 100644 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editRepository.jsp +++ b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editRepository.jsp @@ -48,7 +48,7 @@ - + diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/repositories.jsp b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/repositories.jsp index 5c84137f8..61341928e 100644 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/repositories.jsp +++ b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/repositories.jsp @@ -280,7 +280,7 @@ <%----%> - +
-- 2.39.5