You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by br...@apache.org on 2014/02/02 03:39:24 UTC
svn commit: r1563553 - in
/archiva/branches/archiva-1.3.x/archiva-modules/archiva-web:
archiva-webapp-test/src/test/java/org/apache/archiva/web/test/
archiva-webapp-test/src/test/java/org/apache/archiva/web/test/parent/
archiva-webapp/src/main/java/org...
Author: brett
Date: Sun Feb 2 02:39:24 2014
New Revision: 1563553
URL: http://svn.apache.org/r1563553
Log:
ensure confirm directory overwrite works without DMI
Modified:
archiva/branches/archiva-1.3.x/archiva-modules/archiva-web/archiva-webapp-test/src/test/java/org/apache/archiva/web/test/RepositoryTest.java
archiva/branches/archiva-1.3.x/archiva-modules/archiva-web/archiva-webapp-test/src/test/java/org/apache/archiva/web/test/XSSSecurityTest.java
archiva/branches/archiva-1.3.x/archiva-modules/archiva-web/archiva-webapp-test/src/test/java/org/apache/archiva/web/test/parent/AbstractArchivaTest.java
archiva/branches/archiva-1.3.x/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/AddManagedRepositoryAction.java
archiva/branches/archiva-1.3.x/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/EditManagedRepositoryAction.java
archiva/branches/archiva-1.3.x/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/confirmAddRepository.jsp
Modified: archiva/branches/archiva-1.3.x/archiva-modules/archiva-web/archiva-webapp-test/src/test/java/org/apache/archiva/web/test/RepositoryTest.java
URL: http://svn.apache.org/viewvc/archiva/branches/archiva-1.3.x/archiva-modules/archiva-web/archiva-webapp-test/src/test/java/org/apache/archiva/web/test/RepositoryTest.java?rev=1563553&r1=1563552&r2=1563553&view=diff
==============================================================================
--- archiva/branches/archiva-1.3.x/archiva-modules/archiva-web/archiva-webapp-test/src/test/java/org/apache/archiva/web/test/RepositoryTest.java (original)
+++ archiva/branches/archiva-1.3.x/archiva-modules/archiva-web/archiva-webapp-test/src/test/java/org/apache/archiva/web/test/RepositoryTest.java Sun Feb 2 02:39:24 2014
@@ -45,6 +45,7 @@ public class RepositoryTest
{
goToRepositoriesPage();
deleteManagedRepository( "managedrepo1", true, false );
+ deleteManagedRepository( "managedrepo2", true, false );
deleteManagedRepository( "managedrepoedit", true, false );
deleteRemoteRepository( "remoterepo", false );
}
@@ -52,8 +53,6 @@ public class RepositoryTest
public void testAddManagedRepoValidValues()
throws IOException
{
- goToRepositoriesPage();
- getSelenium().open( "/archiva/admin/addRepository.action" );
File dir = new File( getRepositoryDir() + "repository/" );
if ( dir.exists() )
{
@@ -67,10 +66,45 @@ public class RepositoryTest
Assert.assertTrue( dir.exists() && dir.isDirectory() );
}
+ public void testAddManagedRepoDirectoryExists()
+ throws IOException
+ {
+ File dir = new File( getRepositoryDir() + "repository-exists/" );
+ dir.mkdirs();
+ Assert.assertTrue( dir.exists() && dir.isDirectory() );
+
+ addManagedRepository( "managedrepo2", "Managed Repository Sample 2", dir.getAbsolutePath(), "",
+ "Maven 2.x Repository", "0 0 * * * ?", "", "" );
+ assertTextPresent( "Managed Repository Sample 2" );
+
+ assertTextPresent( "WARNING: Repository location already exists." );
+
+ clickButtonWithValue( "Save" );
+
+ assertRepositoriesPage();
+ assertTextPresent( "Managed Repository Sample 2" );
+ }
+
+ public void testAddManagedRepoDirectoryExistsCancel()
+ throws IOException
+ {
+ File dir = new File( getRepositoryDir() + "repository-exists/" );
+ dir.mkdirs();
+ Assert.assertTrue( dir.exists() && dir.isDirectory() );
+
+ addManagedRepository( "managedrepo3", "Managed Repository Sample 3", dir.getAbsolutePath(), "",
+ "Maven 2.x Repository", "0 0 * * * ?", "", "" );
+ assertTextPresent( "Managed Repository Sample 3" );
+ assertTextPresent( "WARNING: Repository location already exists." );
+
+ clickButtonWithValue( "Cancel" );
+
+ assertRepositoriesPage();
+ assertTextNotPresent( "Managed Repository Sample 3" );
+ }
+
public void testAddManagedRepoInvalidValues()
{
- goToRepositoriesPage();
- getSelenium().open( "/archiva/admin/addRepository.action" );
addManagedRepository( "<> \\/~+[ ]'\"", "<>\\~+[]'\"" , "<> ~+[ ]'\"" , "<> ~+[ ]'\"", "Maven 2.x Repository", "", "-1", "101" );
assertTextPresent( "Identifier must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
assertTextPresent( "Directory must only contain alphanumeric characters, equals(=), question-marks(?), exclamation-points(!), ampersands(&), forward-slashes(/), back-slashes(\\), underscores(_), dots(.), colons(:), tildes(~), and dashes(-)." );
@@ -119,8 +153,6 @@ public class RepositoryTest
public void testAddManagedRepoBlankValues()
{
- goToRepositoriesPage();
- getSelenium().open( "/archiva/admin/addRepository.action" ); ;
addManagedRepository( "", "" , "" , "", "Maven 2.x Repository", "", "", "" );
assertTextPresent( "You must enter a repository identifier." );
assertTextPresent( "You must enter a repository name." );
@@ -155,8 +187,6 @@ public class RepositoryTest
public void testEditManagedRepo()
throws IOException
{
- goToRepositoriesPage();
- clickLinkWithText( "Add" );
String directory = getRepositoryDir() + "local-repo/";
File dir = new File( directory );
if ( dir.exists() )
@@ -167,10 +197,69 @@ public class RepositoryTest
"Maven 2.x Repository", "0 0 * * * ?", "", "" );
editManagedRepository( "repository.name" , "New Managed Repo Name" );
+ assertRepositoriesPage();
assertTextNotPresent( "Managed Repository for Editing" );
assertTextPresent( "New Managed Repo Name" );
}
+ @Test(dependsOnMethods = "testEditManagedRepo")
+ public void testEditManagedRepoDirectoryChangedToNonExistant()
+ throws IOException
+ {
+ goToRepositoriesPage();
+ String directory = getRepositoryDir() + "new-repo-dir/";
+ File dir = new File( directory );
+ if ( dir.exists() )
+ {
+ FileUtils.deleteDirectory( dir );
+ }
+
+ editManagedRepository( "repository.location", dir.getAbsolutePath() );
+ assertRepositoriesPage();
+ assertTextPresent( "new-repo-dir" );
+ Assert.assertTrue( dir.exists() );
+ }
+
+ @Test(dependsOnMethods = "testEditManagedRepo")
+ public void testEditManagedRepoDirectoryChangedToExisting()
+ throws IOException
+ {
+ goToRepositoriesPage();
+ String directory = getRepositoryDir() + "new-repo-dir/";
+ File dir = new File( directory );
+ dir.mkdirs();
+ Assert.assertTrue( dir.exists() && dir.isDirectory() );
+
+ editManagedRepository( "repository.location", dir.getAbsolutePath() );
+
+ assertTextPresent( "WARNING: Repository location already exists." );
+ clickButtonWithValue( "Save" );
+
+ assertRepositoriesPage();
+ assertTextPresent( "new-repo-dir" );
+ Assert.assertTrue( dir.exists() );
+ }
+
+ @Test(dependsOnMethods = "testEditManagedRepo")
+ public void testEditManagedRepoDirectoryChangedToExistingCancel()
+ throws IOException
+ {
+ goToRepositoriesPage();
+ String directory = getRepositoryDir() + "existing-dir/";
+ File dir = new File( directory );
+ dir.mkdirs();
+ Assert.assertTrue( dir.exists() && dir.isDirectory() );
+
+ editManagedRepository( "repository.location", dir.getAbsolutePath() );
+
+ assertTextPresent( "WARNING: Repository location already exists." );
+ clickButtonWithValue( "Cancel" );
+
+ assertRepositoriesPage();
+ assertTextNotPresent( "existing-dir" );
+ Assert.assertTrue( dir.exists() );
+ }
+
public void testEditManagedRepoInvalidValues()
{
editManagedRepository("<>\\~+[]'\"" , "<> ~+[ ]'\"" , "<> ~+[ ]'\"", "Maven 2.x Repository", "", "-1", "101");
@@ -221,8 +310,6 @@ public class RepositoryTest
public void testDeleteManagedRepo()
throws IOException
{
- goToRepositoriesPage();
- clickLinkWithText( "Add" );
File dir = new File( getRepositoryDir() + "managedrepodelete/" );
if ( dir.exists() )
{
@@ -243,8 +330,6 @@ public class RepositoryTest
public void testDeleteManagedRepoWithContents()
throws IOException
{
- goToRepositoriesPage();
- clickLinkWithText( "Add" );
File dir = new File( getRepositoryDir() + "managedrepodeletecontents/" );
if ( dir.exists() )
{
Modified: archiva/branches/archiva-1.3.x/archiva-modules/archiva-web/archiva-webapp-test/src/test/java/org/apache/archiva/web/test/XSSSecurityTest.java
URL: http://svn.apache.org/viewvc/archiva/branches/archiva-1.3.x/archiva-modules/archiva-web/archiva-webapp-test/src/test/java/org/apache/archiva/web/test/XSSSecurityTest.java?rev=1563553&r1=1563552&r2=1563553&view=diff
==============================================================================
--- archiva/branches/archiva-1.3.x/archiva-modules/archiva-web/archiva-webapp-test/src/test/java/org/apache/archiva/web/test/XSSSecurityTest.java (original)
+++ archiva/branches/archiva-1.3.x/archiva-modules/archiva-web/archiva-webapp-test/src/test/java/org/apache/archiva/web/test/XSSSecurityTest.java Sun Feb 2 02:39:24 2014
@@ -135,8 +135,6 @@ public class XSSSecurityTest
public void testAddManagedRepositoryImmunityToInputFieldCrossSiteScripting()
{
- goToRepositoriesPage();
- getSelenium().open( "/archiva/admin/addRepository.action" );
addManagedRepository( "test\"><script>alert('xss')</script>", "test\"><script>alert('xss')</script>" , "test\"><script>alert('xss')</script>" , "test\"><script>alert('xss')</script>", "Maven 2.x Repository", "", "-1", "101" );
// xss inputs are blocked by validation.
assertTextPresent( "Identifier must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
Modified: archiva/branches/archiva-1.3.x/archiva-modules/archiva-web/archiva-webapp-test/src/test/java/org/apache/archiva/web/test/parent/AbstractArchivaTest.java
URL: http://svn.apache.org/viewvc/archiva/branches/archiva-1.3.x/archiva-modules/archiva-web/archiva-webapp-test/src/test/java/org/apache/archiva/web/test/parent/AbstractArchivaTest.java?rev=1563553&r1=1563552&r2=1563553&view=diff
==============================================================================
--- archiva/branches/archiva-1.3.x/archiva-modules/archiva-web/archiva-webapp-test/src/test/java/org/apache/archiva/web/test/parent/AbstractArchivaTest.java (original)
+++ archiva/branches/archiva-1.3.x/archiva-modules/archiva-web/archiva-webapp-test/src/test/java/org/apache/archiva/web/test/parent/AbstractArchivaTest.java Sun Feb 2 02:39:24 2014
@@ -586,8 +586,10 @@ public abstract class AbstractArchivaTes
public void addManagedRepository( String identifier, String name, String directory, String indexDirectory,
String type, String cron, String daysOlder, String retentionCount )
{
- //goToRepositoriesPage();
- //clickLinkWithText( "Add" );
+ if (!getSelenium().getLocation().contains( "/archiva/admin/addRepository.action" )) {
+ getSelenium().open( "/archiva/admin/addRepository.action" );
+ }
+
setFieldValue( "repository.id", identifier );
setFieldValue( "repository.name", name );
setFieldValue( "repository.location", directory );
Modified: archiva/branches/archiva-1.3.x/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/AddManagedRepositoryAction.java
URL: http://svn.apache.org/viewvc/archiva/branches/archiva-1.3.x/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/AddManagedRepositoryAction.java?rev=1563553&r1=1563552&r2=1563553&view=diff
==============================================================================
--- archiva/branches/archiva-1.3.x/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/AddManagedRepositoryAction.java (original)
+++ archiva/branches/archiva-1.3.x/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/AddManagedRepositoryAction.java Sun Feb 2 02:39:24 2014
@@ -49,6 +49,8 @@ public class AddManagedRepositoryAction
private boolean confirm;
+ private boolean cancel;
+
public void prepare()
{
this.repository = new ManagedRepositoryConfiguration();
@@ -68,6 +70,11 @@ public class AddManagedRepositoryAction
public String commit()
{
+ if ( cancel )
+ {
+ return SUCCESS;
+ }
+
if ( !confirm )
{
File location = new File( repository.getLocation() );
@@ -181,4 +188,9 @@ public class AddManagedRepositoryAction
{
this.confirm = StringUtils.isNotEmpty( confirm );
}
+
+ public void setCancel( String cancel )
+ {
+ this.cancel = StringUtils.isNotEmpty( cancel );
+ }
}
Modified: archiva/branches/archiva-1.3.x/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/EditManagedRepositoryAction.java
URL: http://svn.apache.org/viewvc/archiva/branches/archiva-1.3.x/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/EditManagedRepositoryAction.java?rev=1563553&r1=1563552&r2=1563553&view=diff
==============================================================================
--- archiva/branches/archiva-1.3.x/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/EditManagedRepositoryAction.java (original)
+++ archiva/branches/archiva-1.3.x/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/EditManagedRepositoryAction.java Sun Feb 2 02:39:24 2014
@@ -62,6 +62,10 @@ public class EditManagedRepositoryAction
*/
private ArchivaDAO archivaDAO;
+ private boolean confirm;
+
+ private boolean cancel;
+
public void prepare()
{
if ( StringUtils.isNotBlank( repoid ) )
@@ -86,14 +90,19 @@ public class EditManagedRepositoryAction
return INPUT;
}
- public String confirmUpdate()
- {
- // location was changed
- return save( true );
- }
-
public String commit()
{
+ if ( cancel )
+ {
+ return SUCCESS;
+ }
+
+ if ( confirm )
+ {
+ // location was changed
+ return save( true );
+ }
+
ManagedRepositoryConfiguration existingConfig =
archivaConfiguration.getConfiguration().findManagedRepositoryById( repository.getId() );
@@ -239,6 +248,16 @@ public class EditManagedRepositoryAction
return "editRepository_commit";
}
+ public void setConfirm( String confirm )
+ {
+ this.confirm = StringUtils.isNotEmpty( confirm );
+ }
+
+ public void setCancel( String cancel )
+ {
+ this.cancel = StringUtils.isNotEmpty( cancel );
+ }
+
// for testing
public void setArchivaDAO( ArchivaDAO archivaDao )
Modified: archiva/branches/archiva-1.3.x/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/confirmAddRepository.jsp
URL: http://svn.apache.org/viewvc/archiva/branches/archiva-1.3.x/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/confirmAddRepository.jsp?rev=1563553&r1=1563552&r2=1563553&view=diff
==============================================================================
--- archiva/branches/archiva-1.3.x/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/confirmAddRepository.jsp (original)
+++ archiva/branches/archiva-1.3.x/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/confirmAddRepository.jsp Sun Feb 2 02:39:24 2014
@@ -125,16 +125,8 @@
<s:hidden name="repository.scanned" value="%{#attr.repository.scanned}"/>
<s:hidden name="repository.deleteReleasedSnapshots" value="%{#attr.repository.deleteReleasedSnapshots}"/>
- <c:choose>
- <c:when test="${action == 'addRepository_commit'}">
- <s:submit value="Save" name="confirm" />
- </c:when>
- <c:otherwise>
- <s:submit value="Save" method="confirmUpdate"/>
- </c:otherwise>
- </c:choose>
-
- <s:submit value="Cancel" method="execute"/>
+ <s:submit value="Save" name="confirm" />
+ <s:submit value="Cancel" name="cancel" />
</div>
</s:form>