瀏覽代碼

[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
archiva-MRM-980
Maria Odea B. Ching 13 年之前
父節點
當前提交
ffbb7c1b12

+ 101
- 0
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." );
}

}

+ 17
- 0
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" );

+ 74
- 0
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";
}

}

+ 1
- 1
archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editRepository.jsp 查看文件

@@ -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>

+ 1
- 1
archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/repositories.jsp 查看文件

@@ -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>

Loading…
取消
儲存