Browse Source

ensure remote repository functions work without DMI

git-svn-id: https://svn.apache.org/repos/asf/archiva/branches/archiva-1.3.x@1563554 13f79535-47bb-0310-9956-ffa450edef68
tags/archiva-1.3.7
Brett Porter 10 years ago
parent
commit
4f2edf1cfe

+ 78
- 11
archiva-modules/archiva-web/archiva-webapp-test/src/test/java/org/apache/archiva/web/test/RepositoryTest.java View File

@@ -22,7 +22,6 @@ package org.apache.archiva.web.test;
import junit.framework.Assert;
import org.apache.archiva.web.test.parent.AbstractRepositoryTest;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import org.testng.annotations.AfterSuite;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
@@ -34,6 +33,9 @@ import java.io.IOException;
public class RepositoryTest
extends AbstractRepositoryTest
{

public static final String DELETE_CONFIGURATION_AND_CONTENTS = "Delete Configuration and Contents";

@BeforeTest
public void setUp()
{
@@ -44,10 +46,11 @@ public class RepositoryTest
public void tearDown()
{
goToRepositoriesPage();
deleteManagedRepository( "managedrepo1", true, false );
deleteManagedRepository( "managedrepo2", true, false );
deleteManagedRepository( "managedrepoedit", true, false );
deleteManagedRepository( "managedrepo1", false, DELETE_CONFIGURATION_AND_CONTENTS );
deleteManagedRepository( "managedrepo2", false, DELETE_CONFIGURATION_AND_CONTENTS );
deleteManagedRepository( "managedrepoedit", false, DELETE_CONFIGURATION_AND_CONTENTS );
deleteRemoteRepository( "remoterepo", false );
deleteRemoteRepository( "remoterepoedit", false );
}

public void testAddManagedRepoValidValues()
@@ -310,19 +313,43 @@ public class RepositoryTest
public void testDeleteManagedRepo()
throws IOException
{
File dir = new File( getRepositoryDir() + "managedrepodelete/" );
File dir = new File( getRepositoryDir() + "managedrepodeleteconfig/" );
if ( dir.exists() )
{
FileUtils.deleteDirectory( dir );
}
addManagedRepository( "managedrepodelete", "Managed Repository for Deleting", dir.getAbsolutePath(), "",
addManagedRepository( "managedrepodeleteconfig", "Managed Repository for Deleting", dir.getAbsolutePath(), "",
"Maven 2.x Repository", "0 0 * * * ?", "", "" );

deleteManagedRepository( "managedrepodelete", false, true );
deleteManagedRepository( "managedrepodeleteconfig", true, "Delete Configuration Only" );

// assert removed, but contents remain
assertRepositoriesPage();
assertTextNotPresent( "managedrepodelete" );
assertTextNotPresent( "managedrepodeleteconfig" );

Assert.assertTrue( dir.exists() && dir.isDirectory() );
}

public void testDeleteManagedRepoCancel()
throws IOException
{
File dir = new File( getRepositoryDir() + "managedrepodeletecancel/" );

goToRepositoriesPage();
if ( !isTextPresent( "managedrepodeletecancel" ) )
{
if ( dir.exists() )
{
FileUtils.deleteDirectory( dir );
}

addManagedRepository( "managedrepodeletecancel", "Managed Repository for Deleting", dir.getAbsolutePath(),
"", "Maven 2.x Repository", "0 0 * * * ?", "", "" );
}
deleteManagedRepository( "managedrepodeletecancel", true, "Cancel" );

assertRepositoriesPage();
assertTextPresent( "managedrepodeletecancel" );

Assert.assertTrue( dir.exists() && dir.isDirectory() );
}
@@ -338,9 +365,8 @@ public class RepositoryTest
addManagedRepository( "managedrepodeletecontents", "Managed Repository for Deleting", dir.getAbsolutePath(), "",
"Maven 2.x Repository", "0 0 * * * ?", "", "" );

deleteManagedRepository( "managedrepodeletecontents", true, true );
deleteManagedRepository( "managedrepodeletecontents", true, DELETE_CONFIGURATION_AND_CONTENTS );

// assert removed, but contents remain
assertRepositoriesPage();
assertTextNotPresent( "managedrepodeletecontents" );

@@ -357,7 +383,8 @@ public class RepositoryTest

public void testAddRemoteRepositoryNullIdentifier()
{
addRemoteRepository( "" , "Remote Repository Sample" , "http://repository.codehaus.org/org/codehaus/mojo/" , "" , "" , "" , "Maven 2.x Repository" );
addRemoteRepository( "", "Remote Repository Sample", "http://repository.codehaus.org/org/codehaus/mojo/", "",
"", "", "Maven 2.x Repository" );
assertTextPresent( "You must enter a repository identifier." );
}

@@ -380,6 +407,46 @@ public class RepositoryTest
assertTextPresent( "Remote Repository Sample" );
}

public void testDeleteRemoteRepo()
{
addRemoteRepository( "remoterepodeleteconfirm", "Remote Repository for Deleting",
"https://repository.apache.org/", "", "", "", "Maven 2.x Repository" );
assertTextPresent( "Remote Repository for Deleting" );

deleteRemoteRepository( "remoterepodeleteconfirm", true );
assertRepositoriesPage();
assertTextNotPresent( "remoterepodeleteconfirm" );
}

public void testDeleteRemoteRepoCancel()
{
goToRepositoriesPage();
if ( !isTextPresent( "remoterepodeletecancel" ) )
{
addRemoteRepository( "remoterepodeletecancel", "Remote Repository for Deleting",
"https://repository.apache.org/", "", "", "", "Maven 2.x Repository" );
assertTextPresent( "Remote Repository for Deleting" );
}

deleteRemoteRepository( "remoterepodeletecancel", true, "Cancel" );
assertRepositoriesPage();
assertTextPresent( "remoterepodeletecancel" );
}

public void testEditRemoteRepo()
{
goToRepositoriesPage();
addRemoteRepository( "remoterepoedit", "Remote Repository for Editing",
"https://archiva-repository.apache.org/archiva/repository/all", "", "", "",
"Maven 2.x Repository" );
assertTextPresent( "Remote Repository for Editing" );

editRemoteRepository( "repository.name" , "New Remote Repo Name" );
assertRepositoriesPage();
assertTextNotPresent( "Remote Repository for Editing" );
assertTextPresent( "New Remote Repo Name" );
}

// *** BUNDLED REPOSITORY TEST ***

@Test ( dependsOnMethods = { "testWithCorrectUsernamePassword" }, alwaysRun = true )

+ 9
- 11
archiva-modules/archiva-web/archiva-webapp-test/src/test/java/org/apache/archiva/web/test/parent/AbstractRepositoryTest.java View File

@@ -420,6 +420,11 @@ public abstract class AbstractRepositoryTest
}
public void deleteRemoteRepository( String id, boolean validate )
{
deleteRemoteRepository( id, validate, "Confirm" );
}

public void deleteRemoteRepository( String id, boolean validate, String option )
{
goToRepositoriesPage();
String xpath = "//div[@id='contentArea']//a[contains(@href,'confirmDeleteRemoteRepository.action?repoid=" + id + "')]";
@@ -427,14 +432,14 @@ public abstract class AbstractRepositoryTest
{
clickLinkWithXPath( xpath );
assertDeleteRemoteRepositoryPage();
clickButtonWithValue( "Confirm" );
clickButtonWithValue( option );
}
}
public void editRemoteRepository( String fieldName, String value)
{
goToRepositoriesPage();
clickLinkWithXPath( "//div[@id='contentArea']/div/div[8]/div[1]/a[1]" );
clickLinkWithXPath( getRepositoryXpath( "remoterepoedit" ) + "//a[contains(text(),'Edit')]" );
setFieldValue( fieldName, value );
clickButtonWithValue( "Update Repository" );
}
@@ -468,21 +473,14 @@ public abstract class AbstractRepositoryTest
clickButtonWithValue( "Update Repository" );
}
public void deleteManagedRepository( String id, boolean deleteContents, boolean validate )
public void deleteManagedRepository( String id, boolean validate, String option )
{
String xpath = "//div[@id='contentArea']//a[contains(@href,'confirmDeleteRepository.action?repoid=" + id + "')]";
if ( validate || isElementPresent( "xpath=" + xpath ) )
{
clickLinkWithXPath( xpath );
assertPage( "Apache Archiva \\ Admin: Delete Managed Repository" );
if ( deleteContents )
{
clickButtonWithValue( "Delete Configuration and Contents" );
}
else
{
clickButtonWithValue( "Delete Configuration Only" );
}
clickButtonWithValue( option );
}
}

+ 13
- 2
archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteRemoteRepositoryAction.java View File

@@ -44,6 +44,8 @@ public class DeleteRemoteRepositoryAction

private String repoid;

private boolean cancel;

public void prepare()
{
if ( StringUtils.isNotBlank( repoid ) )
@@ -65,7 +67,11 @@ public class DeleteRemoteRepositoryAction

public String delete()
{
String result = SUCCESS;
if ( cancel )
{
return SUCCESS;
}

RemoteRepositoryConfiguration existingRepository = repository;
if ( existingRepository == null )
{
@@ -76,7 +82,7 @@ public class DeleteRemoteRepositoryAction
Configuration configuration = archivaConfiguration.getConfiguration();
removeRepository( repoid, configuration );
triggerAuditEvent( repoid, null, AuditEvent.DELETE_REMOTE_REPO );
result = saveConfiguration( configuration );
String result = saveConfiguration( configuration );
cleanupRepositoryData( existingRepository );

@@ -116,4 +122,9 @@ public class DeleteRemoteRepositoryAction
{
this.repoid = repoid;
}

public void setCancel( String cancel )
{
this.cancel = StringUtils.isNotEmpty( cancel );
}
}

+ 6
- 0
archiva-modules/archiva-web/archiva-webapp/src/main/resources/struts.xml View File

@@ -384,6 +384,12 @@
</action>

<action name="editRemoteRepository" class="editRemoteRepositoryAction" method="input">
<result name="input">/WEB-INF/jsp/admin/editRemoteRepository.jsp</result>
<result name="error">/WEB-INF/jsp/admin/editRemoteRepository.jsp</result>
<interceptor-ref name="configuredPrepareParamsStack"/>
</action>

<action name="editRemoteRepository_commit" class="editRemoteRepositoryAction" method="commit">
<result name="input">/WEB-INF/jsp/admin/editRemoteRepository.jsp</result>
<result name="error">/WEB-INF/jsp/admin/editRemoteRepository.jsp</result>
<result name="success" type="redirectAction">repositories</result>

+ 2
- 2
archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/deleteRemoteRepository.jsp View File

@@ -64,8 +64,8 @@
<s:form method="post" action="deleteRemoteRepository" namespace="/admin" validate="true" theme="simple">
<s:hidden name="repoid"/>
<div class="buttons">
<s:submit value="Confirm" method="delete"/>
<s:submit value="Cancel" method="execute"/>
<s:submit value="Confirm" />
<s:submit value="Cancel" name="cancel" />
</div>
</s:form>
</div>

+ 1
- 1
archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editRemoteRepository.jsp View File

@@ -35,7 +35,7 @@
<div id="contentArea">

<s:actionmessage/>
<s:form method="post" action="editRemoteRepository!commit" namespace="/admin" validate="false">
<s:form method="post" action="editRemoteRepository_commit" namespace="/admin" validate="false">
<s:hidden name="repository.id"/>
<%@ include file="/WEB-INF/jsp/admin/include/remoteRepositoryForm.jspf" %>
<s:submit value="Update Repository"/>

Loading…
Cancel
Save