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-ffa450edef68archiva-MRM-980
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." ); | |||||
} | |||||
} |
clickButtonWithValue( "Add Repository" ); | 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() | protected void logout() | ||||
{ | { | ||||
clickLinkWithText( "Logout" ); | clickLinkWithText( "Logout" ); |
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"; | |||||
} | |||||
} |
</c:if> | </c:if> | ||||
<c:if | <c:if | ||||
test='<%= stats.booleanValue() %>'> | 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> | </c:if> | ||||
<s:submit value="Update Repository"/> | <s:submit value="Update Repository"/> | ||||
</s:form> | </s:form> |
<%--<s:hidden name="repository" value="%{repository}"/>--%> | <%--<s:hidden name="repository" value="%{repository}"/>--%> | ||||
<table> | <table> | ||||
<tr> | <tr> | ||||
<td><s:submit value="Merge"/></td> | |||||
<td><s:submit id="Merge" value="Merge"/></td> | |||||
</tr> | </tr> | ||||
</table> | </table> |