blob: dd5f2b44e07c34f1e868327fc6210f1775e72973 [file] [log] [blame]
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"}, groups = "requiresUpload" )
public void testAddArtifactToStagingRepository()
{
addArtifact( getGroupId(), getArtifactId(), getVersion(), getPackaging(), getValidArtifactFilePath(),
"merging-repo", true );
assertTextPresent( "Artifact '" + getGroupId() + ":" + getArtifactId() + ":" + getVersion() +
"' was successfully staged for repository 'merging-repo'" );
}
// 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
@Test(dependsOnMethods = {"testAddArtifactToStagingRepository"})
public void testConfigurationChangesOfStagingRepository()
{
// STAGE FIXME: hardcoded ID
editManagedRepository();
addArtifact( getGroupId(), getArtifactId(), getVersion(), getPackaging(), getValidArtifactFilePath(),
"merging-repo-stage", true );
assertTextPresent(
"Overwriting released artifacts in repository '" + "merging-repo-stage" + "' is not allowed." );
}
}