From 69fad2da3e1802ee741a5f85e39558c11df44e9e Mon Sep 17 00:00:00 2001 From: Olivier Lamy Date: Mon, 9 Dec 2013 11:21:30 +0000 Subject: [PATCH] [MRM-1761] add unit test git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1549544 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/archiva/DownloadSnapshotTest.java | 151 ++++++++++++++++++ ...archiva-model-1.4-M4-20130425.081822-1.jar | Bin 0 -> 26682 bytes ...iva-model-1.4-M4-20130425.081822-1.jar.md5 | 1 + ...va-model-1.4-M4-20130425.081822-1.jar.sha1 | 1 + ...archiva-model-1.4-M4-20130425.081822-1.pom | 97 +++++++++++ ...iva-model-1.4-M4-20130425.081822-1.pom.md5 | 1 + ...va-model-1.4-M4-20130425.081822-1.pom.sha1 | 1 + .../1.4-M4-SNAPSHOT/maven-metadata.xml | 14 ++ .../1.4-M4-SNAPSHOT/maven-metadata.xml.md5 | 1 + .../1.4-M4-SNAPSHOT/maven-metadata.xml.sha1 | 1 + .../archiva/archiva-model/maven-metadata.xml | 13 ++ .../archiva-model/maven-metadata.xml.md5 | 1 + .../archiva-model/maven-metadata.xml.sha1 | 1 + 13 files changed, 283 insertions(+) create mode 100644 archiva-modules/archiva-web/archiva-web-common/src/test/java/org/apache/archiva/DownloadSnapshotTest.java create mode 100644 archiva-modules/archiva-web/archiva-web-common/src/test/repositories/snapshot-repo/org/apache/archiva/archiva-model/1.4-M4-SNAPSHOT/archiva-model-1.4-M4-20130425.081822-1.jar create mode 100644 archiva-modules/archiva-web/archiva-web-common/src/test/repositories/snapshot-repo/org/apache/archiva/archiva-model/1.4-M4-SNAPSHOT/archiva-model-1.4-M4-20130425.081822-1.jar.md5 create mode 100644 archiva-modules/archiva-web/archiva-web-common/src/test/repositories/snapshot-repo/org/apache/archiva/archiva-model/1.4-M4-SNAPSHOT/archiva-model-1.4-M4-20130425.081822-1.jar.sha1 create mode 100644 archiva-modules/archiva-web/archiva-web-common/src/test/repositories/snapshot-repo/org/apache/archiva/archiva-model/1.4-M4-SNAPSHOT/archiva-model-1.4-M4-20130425.081822-1.pom create mode 100644 archiva-modules/archiva-web/archiva-web-common/src/test/repositories/snapshot-repo/org/apache/archiva/archiva-model/1.4-M4-SNAPSHOT/archiva-model-1.4-M4-20130425.081822-1.pom.md5 create mode 100644 archiva-modules/archiva-web/archiva-web-common/src/test/repositories/snapshot-repo/org/apache/archiva/archiva-model/1.4-M4-SNAPSHOT/archiva-model-1.4-M4-20130425.081822-1.pom.sha1 create mode 100644 archiva-modules/archiva-web/archiva-web-common/src/test/repositories/snapshot-repo/org/apache/archiva/archiva-model/1.4-M4-SNAPSHOT/maven-metadata.xml create mode 100644 archiva-modules/archiva-web/archiva-web-common/src/test/repositories/snapshot-repo/org/apache/archiva/archiva-model/1.4-M4-SNAPSHOT/maven-metadata.xml.md5 create mode 100644 archiva-modules/archiva-web/archiva-web-common/src/test/repositories/snapshot-repo/org/apache/archiva/archiva-model/1.4-M4-SNAPSHOT/maven-metadata.xml.sha1 create mode 100644 archiva-modules/archiva-web/archiva-web-common/src/test/repositories/snapshot-repo/org/apache/archiva/archiva-model/maven-metadata.xml create mode 100644 archiva-modules/archiva-web/archiva-web-common/src/test/repositories/snapshot-repo/org/apache/archiva/archiva-model/maven-metadata.xml.md5 create mode 100644 archiva-modules/archiva-web/archiva-web-common/src/test/repositories/snapshot-repo/org/apache/archiva/archiva-model/maven-metadata.xml.sha1 diff --git a/archiva-modules/archiva-web/archiva-web-common/src/test/java/org/apache/archiva/DownloadSnapshotTest.java b/archiva-modules/archiva-web/archiva-web-common/src/test/java/org/apache/archiva/DownloadSnapshotTest.java new file mode 100644 index 000000000..2cc9ed84c --- /dev/null +++ b/archiva-modules/archiva-web/archiva-web-common/src/test/java/org/apache/archiva/DownloadSnapshotTest.java @@ -0,0 +1,151 @@ +package org.apache.archiva; + +/* + * 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 junit.framework.TestCase; +import org.apache.archiva.admin.model.beans.ManagedRepository; +import org.apache.archiva.redback.rest.api.services.RoleManagementService; +import org.apache.archiva.remotedownload.AbstractDownloadTest; +import org.apache.archiva.rest.api.services.ManagedRepositoriesService; +import org.apache.archiva.security.common.ArchivaRoleConstants; +import org.apache.archiva.test.utils.ArchivaBlockJUnit4ClassRunner; +import org.apache.commons.io.FileUtils; +import org.apache.maven.wagon.providers.http.HttpWagon; +import org.apache.maven.wagon.repository.Repository; +import org.eclipse.jetty.server.Server; +import org.eclipse.jetty.servlet.ServletContextHandler; +import org.eclipse.jetty.servlet.ServletHolder; +import org.junit.After; +import org.junit.AfterClass; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.File; +import java.util.List; +import java.util.zip.ZipEntry; +import java.util.zip.ZipFile; + +/** + * @author Olivier Lamy + */ +@RunWith( ArchivaBlockJUnit4ClassRunner.class ) +public class DownloadSnapshotTest + extends AbstractDownloadTest +{ + protected Logger log = LoggerFactory.getLogger( getClass() ); + + public Server redirectServer = null; + + public int redirectPort; + + public Server repoServer = null; + + public int repoServerPort; + + @BeforeClass + public static void setAppServerBase() + { + previousAppServerBase = System.getProperty( "appserver.base" ); + System.setProperty( "appserver.base", "target/" + DownloadSnapshotTest.class.getName() ); + } + + + @AfterClass + public static void resetAppServerBase() + { + System.setProperty( "appserver.base", previousAppServerBase ); + } + + protected String getSpringConfigLocation() + { + return "classpath*:META-INF/spring-context.xml classpath*:spring-context-test-common.xml classpath*:spring-context-artifacts-download.xml"; + } + + + @Test + public void downloadSNAPSHOT() + throws Exception + { + + File tmpIndexDir = new File( System.getProperty( "java.io.tmpdir" ) + "/tmpIndex" ); + if ( tmpIndexDir.exists() ) + { + FileUtils.deleteDirectory( tmpIndexDir ); + } + String id = Long.toString( System.currentTimeMillis() ); + ManagedRepository managedRepository = new ManagedRepository(); + managedRepository.setId( id ); + managedRepository.setName( "name of " + id ); + managedRepository.setLocation( System.getProperty( "basedir" ) + "/src/test/repositories/snapshot-repo" ); + managedRepository.setIndexDirectory( System.getProperty( "java.io.tmpdir" ) + "/tmpIndex/" + id ); + + ManagedRepositoriesService managedRepositoriesService = getManagedRepositoriesService(); + + if ( managedRepositoriesService.getManagedRepository( id ) != null ) + { + managedRepositoriesService.deleteManagedRepository( id, false ); + } + + getManagedRepositoriesService().addManagedRepository( managedRepository ); + + RoleManagementService roleManagementService = getRoleManagementService( authorizationHeader ); + + if ( !roleManagementService.templatedRoleExists( ArchivaRoleConstants.TEMPLATE_REPOSITORY_OBSERVER, + id ) ) + { + roleManagementService.createTemplatedRole( ArchivaRoleConstants.TEMPLATE_REPOSITORY_OBSERVER, id ); + } + + getUserService( authorizationHeader ).createGuestUser(); + roleManagementService.assignRole( ArchivaRoleConstants.TEMPLATE_GUEST, "guest" ); + + roleManagementService.assignTemplatedRole( ArchivaRoleConstants.TEMPLATE_REPOSITORY_OBSERVER, id, + "guest" ); + + getUserService( authorizationHeader ).removeFromCache( "guest" ); + + File file = new File( "target/archiva-model-1.4-M4-SNAPSHOT.jar" ); + if ( file.exists() ) + { + file.delete(); + } + + HttpWagon httpWagon = new HttpWagon(); + httpWagon.connect( new Repository( "foo", "http://localhost:" + port ) ); + + httpWagon.get( "/repository/"+ id +"/org/apache/archiva/archiva-model/1.4-M4-SNAPSHOT/archiva-model-1.4-M4-SNAPSHOT.jar", file ); + + ZipFile zipFile = new ZipFile( file ); + List entries = getZipEntriesNames( zipFile ); + ZipEntry zipEntry = zipFile.getEntry( "org/apache/archiva/model/ArchivaArtifact.class" ); + assertNotNull( "cannot find zipEntry org/apache/archiva/model/ArchivaArtifact.class, entries: " + entries + ", content is: " + + FileUtils.readFileToString( file ), zipEntry ); + zipFile.close(); + file.deleteOnExit(); + + + + } + +} diff --git a/archiva-modules/archiva-web/archiva-web-common/src/test/repositories/snapshot-repo/org/apache/archiva/archiva-model/1.4-M4-SNAPSHOT/archiva-model-1.4-M4-20130425.081822-1.jar b/archiva-modules/archiva-web/archiva-web-common/src/test/repositories/snapshot-repo/org/apache/archiva/archiva-model/1.4-M4-SNAPSHOT/archiva-model-1.4-M4-20130425.081822-1.jar new file mode 100644 index 0000000000000000000000000000000000000000..7179333770912ffddc6b8606ca29ab599c85a65c GIT binary patch literal 26682 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 + + + + + org.apache.archiva + archiva-base + 1.4-M4-SNAPSHOT + + 4.0.0 + archiva-model + bundle + Archiva Base :: Model + + + commons-lang + commons-lang + + + commons-collections + commons-collections + + + org.apache.archiva + archiva-common + + + org.apache.archiva + archiva-test-utils + ${project.version} + test + + + org.apache.logging.log4j + log4j-jcl + runtime + + + + + + org.codehaus.modello + modello-maven-plugin + + 1.3.0 + false + + src/main/mdo/archiva-base.xml + + + + + archiva-base + + java + xsd + + + + + + org.apache.felix + maven-bundle-plugin + + + org.apache.archiva.model + ${project.version} + + org.apache.archiva.model;version=${project.version} + + + org.apache.archiva.common.utils;version=${project.version}, + org.apache.commons.lang;version="[2.4,3)" + + + + + + + diff --git a/archiva-modules/archiva-web/archiva-web-common/src/test/repositories/snapshot-repo/org/apache/archiva/archiva-model/1.4-M4-SNAPSHOT/archiva-model-1.4-M4-20130425.081822-1.pom.md5 b/archiva-modules/archiva-web/archiva-web-common/src/test/repositories/snapshot-repo/org/apache/archiva/archiva-model/1.4-M4-SNAPSHOT/archiva-model-1.4-M4-20130425.081822-1.pom.md5 new file mode 100644 index 000000000..588e27f7e --- /dev/null +++ b/archiva-modules/archiva-web/archiva-web-common/src/test/repositories/snapshot-repo/org/apache/archiva/archiva-model/1.4-M4-SNAPSHOT/archiva-model-1.4-M4-20130425.081822-1.pom.md5 @@ -0,0 +1 @@ +4224fdcd90735e016789c05f82661775 archiva-model-1.4-M4-20130425.081822-1.pom \ No newline at end of file diff --git a/archiva-modules/archiva-web/archiva-web-common/src/test/repositories/snapshot-repo/org/apache/archiva/archiva-model/1.4-M4-SNAPSHOT/archiva-model-1.4-M4-20130425.081822-1.pom.sha1 b/archiva-modules/archiva-web/archiva-web-common/src/test/repositories/snapshot-repo/org/apache/archiva/archiva-model/1.4-M4-SNAPSHOT/archiva-model-1.4-M4-20130425.081822-1.pom.sha1 new file mode 100644 index 000000000..dd67c960e --- /dev/null +++ b/archiva-modules/archiva-web/archiva-web-common/src/test/repositories/snapshot-repo/org/apache/archiva/archiva-model/1.4-M4-SNAPSHOT/archiva-model-1.4-M4-20130425.081822-1.pom.sha1 @@ -0,0 +1 @@ +751ebd75a9929191173bbbd98aed65e90a76546a archiva-model-1.4-M4-20130425.081822-1.pom \ No newline at end of file diff --git a/archiva-modules/archiva-web/archiva-web-common/src/test/repositories/snapshot-repo/org/apache/archiva/archiva-model/1.4-M4-SNAPSHOT/maven-metadata.xml b/archiva-modules/archiva-web/archiva-web-common/src/test/repositories/snapshot-repo/org/apache/archiva/archiva-model/1.4-M4-SNAPSHOT/maven-metadata.xml new file mode 100644 index 000000000..a5cef0911 --- /dev/null +++ b/archiva-modules/archiva-web/archiva-web-common/src/test/repositories/snapshot-repo/org/apache/archiva/archiva-model/1.4-M4-SNAPSHOT/maven-metadata.xml @@ -0,0 +1,14 @@ + + + + org.apache.archiva + archiva-model + 1.4-M4-SNAPSHOT + + + 1 + 20130425.081822 + + 20130425081822 + + diff --git a/archiva-modules/archiva-web/archiva-web-common/src/test/repositories/snapshot-repo/org/apache/archiva/archiva-model/1.4-M4-SNAPSHOT/maven-metadata.xml.md5 b/archiva-modules/archiva-web/archiva-web-common/src/test/repositories/snapshot-repo/org/apache/archiva/archiva-model/1.4-M4-SNAPSHOT/maven-metadata.xml.md5 new file mode 100644 index 000000000..49b43e7c5 --- /dev/null +++ b/archiva-modules/archiva-web/archiva-web-common/src/test/repositories/snapshot-repo/org/apache/archiva/archiva-model/1.4-M4-SNAPSHOT/maven-metadata.xml.md5 @@ -0,0 +1 @@ +38b2d54f0788d21907565904a7508d37 maven-metadata.xml \ No newline at end of file diff --git a/archiva-modules/archiva-web/archiva-web-common/src/test/repositories/snapshot-repo/org/apache/archiva/archiva-model/1.4-M4-SNAPSHOT/maven-metadata.xml.sha1 b/archiva-modules/archiva-web/archiva-web-common/src/test/repositories/snapshot-repo/org/apache/archiva/archiva-model/1.4-M4-SNAPSHOT/maven-metadata.xml.sha1 new file mode 100644 index 000000000..1946b173f --- /dev/null +++ b/archiva-modules/archiva-web/archiva-web-common/src/test/repositories/snapshot-repo/org/apache/archiva/archiva-model/1.4-M4-SNAPSHOT/maven-metadata.xml.sha1 @@ -0,0 +1 @@ +8cdfb3f0decf06645f38bd0007b4a4a40f75ad25 maven-metadata.xml \ No newline at end of file diff --git a/archiva-modules/archiva-web/archiva-web-common/src/test/repositories/snapshot-repo/org/apache/archiva/archiva-model/maven-metadata.xml b/archiva-modules/archiva-web/archiva-web-common/src/test/repositories/snapshot-repo/org/apache/archiva/archiva-model/maven-metadata.xml new file mode 100644 index 000000000..9632603b5 --- /dev/null +++ b/archiva-modules/archiva-web/archiva-web-common/src/test/repositories/snapshot-repo/org/apache/archiva/archiva-model/maven-metadata.xml @@ -0,0 +1,13 @@ + + + + org.apache.archiva + archiva-model + + 1.4-M4-SNAPSHOT + + 1.4-M4-SNAPSHOT + + 20130425081823 + + diff --git a/archiva-modules/archiva-web/archiva-web-common/src/test/repositories/snapshot-repo/org/apache/archiva/archiva-model/maven-metadata.xml.md5 b/archiva-modules/archiva-web/archiva-web-common/src/test/repositories/snapshot-repo/org/apache/archiva/archiva-model/maven-metadata.xml.md5 new file mode 100644 index 000000000..ef6576a6e --- /dev/null +++ b/archiva-modules/archiva-web/archiva-web-common/src/test/repositories/snapshot-repo/org/apache/archiva/archiva-model/maven-metadata.xml.md5 @@ -0,0 +1 @@ +ffe12bb5232c77cf8681f8d069026f88 maven-metadata.xml \ No newline at end of file diff --git a/archiva-modules/archiva-web/archiva-web-common/src/test/repositories/snapshot-repo/org/apache/archiva/archiva-model/maven-metadata.xml.sha1 b/archiva-modules/archiva-web/archiva-web-common/src/test/repositories/snapshot-repo/org/apache/archiva/archiva-model/maven-metadata.xml.sha1 new file mode 100644 index 000000000..10690a438 --- /dev/null +++ b/archiva-modules/archiva-web/archiva-web-common/src/test/repositories/snapshot-repo/org/apache/archiva/archiva-model/maven-metadata.xml.sha1 @@ -0,0 +1 @@ +cf7767cf64fa5eba6b66f9cba3401bca19baef54 maven-metadata.xml \ No newline at end of file -- 2.39.5