]> source.dussan.org Git - archiva.git/blob
3222c01b3ed0d5c66789b6fff2f783d70af423f4
[archiva.git] /
1 package org.apache.maven.archiva.web.repository;
2
3 /*
4  * Licensed to the Apache Software Foundation (ASF) under one
5  * or more contributor license agreements.  See the NOTICE file
6  * distributed with this work for additional information
7  * regarding copyright ownership.  The ASF licenses this file
8  * to you under the Apache License, Version 2.0 (the
9  * "License"); you may not use this file except in compliance
10  * with the License.  You may obtain a copy of the License at
11  *
12  *  http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing,
15  * software distributed under the License is distributed on an
16  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17  * KIND, either express or implied.  See the License for the
18  * specific language governing permissions and limitations
19  * under the License.
20  */
21
22 import com.meterware.httpunit.GetMethodWebRequest;
23 import com.meterware.httpunit.WebRequest;
24 import com.meterware.httpunit.WebResponse;
25 import org.apache.commons.io.FileUtils;
26
27 import java.io.File;
28
29 /**
30  * RepositoryServletTest 
31  *
32  * @author <a href="mailto:joakime@apache.org">Joakim Erdfelt</a>
33  * @version $Id$
34  */
35 public class RepositoryServletNoProxyTest
36     extends AbstractRepositoryServletTestCase
37 {
38     public void testGetNoProxyChecksumDefaultLayout()
39         throws Exception
40     {
41         String commonsLangSha1 = "commons-lang/commons-lang/2.1/commons-lang-2.1.jar.sha1";
42
43         File checksumFile = new File( repoRootInternal, commonsLangSha1 );
44         checksumFile.getParentFile().mkdirs();
45
46         FileUtils.writeStringToFile( checksumFile, "dummy-checksum", null );
47
48         WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/" + commonsLangSha1 );
49         WebResponse response = sc.getResponse( request );
50         assertResponseOK( response );
51
52         assertEquals( "Expected file contents", "dummy-checksum", response.getText() );
53     }
54
55     public void testGetNoProxyChecksumLegacyLayout()
56         throws Exception
57     {
58         String commonsLangSha1 = "commons-lang/commons-lang/2.1/commons-lang-2.1.jar.sha1";
59
60         File checksumFile = new File( repoRootInternal, commonsLangSha1 );
61         checksumFile.getParentFile().mkdirs();
62
63         FileUtils.writeStringToFile( checksumFile, "dummy-checksum", null );
64
65         WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/"
66             + "commons-lang/jars/commons-lang-2.1.jar.sha1" );
67         WebResponse response = sc.getResponse( request );
68         assertResponseOK( response );
69
70         assertEquals( "Expected file contents", "dummy-checksum", response.getText() );
71     }
72
73     public void testGetNoProxyVersionedMetadataDefaultLayout()
74         throws Exception
75     {
76         String commonsLangMetadata = "commons-lang/commons-lang/2.1/maven-metadata.xml";
77         String expectedMetadataContents = "dummy-versioned-metadata";
78
79         File metadataFile = new File( repoRootInternal, commonsLangMetadata );
80         metadataFile.getParentFile().mkdirs();
81
82         FileUtils.writeStringToFile( metadataFile, expectedMetadataContents, null );
83
84         WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/" + commonsLangMetadata );
85         WebResponse response = sc.getResponse( request );
86         assertResponseOK( response );
87
88         assertEquals( "Expected file contents", expectedMetadataContents, response.getText() );
89     }
90
91     public void testGetNoProxyProjectMetadataDefaultLayout()
92         throws Exception
93     {
94         String commonsLangMetadata = "commons-lang/commons-lang/maven-metadata.xml";
95         String expectedMetadataContents = "dummy-project-metadata";
96
97         File metadataFile = new File( repoRootInternal, commonsLangMetadata );
98         metadataFile.getParentFile().mkdirs();
99
100         FileUtils.writeStringToFile( metadataFile, expectedMetadataContents, null );
101
102         WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/" + commonsLangMetadata );
103         WebResponse response = sc.getResponse( request );
104         assertResponseOK( response );
105
106         assertEquals( "Expected file contents", expectedMetadataContents, response.getText() );
107     }
108
109     public void testGetNoProxyGroupMetadataDefaultLayout()
110         throws Exception
111     {
112         String commonsLangMetadata = "commons-lang/maven-metadata.xml";
113         String expectedMetadataContents = "dummy-group-metadata";
114
115         File metadataFile = new File( repoRootInternal, commonsLangMetadata );
116         metadataFile.getParentFile().mkdirs();
117
118         FileUtils.writeStringToFile( metadataFile, expectedMetadataContents, null );
119
120         WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/" + commonsLangMetadata );
121         WebResponse response = sc.getResponse( request );
122         assertResponseOK( response );
123
124         assertEquals( "Expected file contents", expectedMetadataContents, response.getText() );
125     }
126
127     public void testGetNoProxyArtifactDefaultLayout()
128         throws Exception
129     {
130         String commonsLangJar = "commons-lang/commons-lang/2.1/commons-lang-2.1.jar";
131         String expectedArtifactContents = "dummy-commons-lang-artifact";
132
133         File artifactFile = new File( repoRootInternal, commonsLangJar );
134         artifactFile.getParentFile().mkdirs();
135
136         FileUtils.writeStringToFile( artifactFile, expectedArtifactContents, null );
137
138         WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/" + commonsLangJar );
139         WebResponse response = sc.getResponse( request );
140         assertResponseOK( response );
141
142         assertEquals( "Expected file contents", expectedArtifactContents, response.getText() );
143     }
144
145     public void testGetNoProxyArtifactLegacyLayout()
146         throws Exception
147     {
148         String commonsLangJar = "commons-lang/commons-lang/2.1/commons-lang-2.1.jar";
149         String expectedArtifactContents = "dummy-commons-lang-artifact";
150
151         File artifactFile = new File( repoRootInternal, commonsLangJar );
152         artifactFile.getParentFile().mkdirs();
153
154         FileUtils.writeStringToFile( artifactFile, expectedArtifactContents, null );
155
156         WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/"
157             + "commons-lang/jars/commons-lang-2.1.jar" );
158         WebResponse response = sc.getResponse( request );
159         assertResponseOK( response );
160
161         assertEquals( "Expected file contents", expectedArtifactContents, response.getText() );
162     }
163
164     public void testGetNoProxySnapshotArtifactDefaultLayout()
165         throws Exception
166     {
167         String commonsLangJar = "commons-lang/commons-lang/2.1-SNAPSHOT/commons-lang-2.1-SNAPSHOT.jar";
168         String expectedArtifactContents = "dummy-commons-lang-snapshot-artifact";
169
170         File artifactFile = new File( repoRootInternal, commonsLangJar );
171         artifactFile.getParentFile().mkdirs();
172
173         FileUtils.writeStringToFile( artifactFile, expectedArtifactContents, null );
174
175         WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/" + commonsLangJar );
176         WebResponse response = sc.getResponse( request );
177         assertResponseOK( response );
178
179         assertEquals( "Expected file contents", expectedArtifactContents, response.getText() );
180     }
181
182     public void testGetNoProxySnapshotArtifactLegacyLayout()
183         throws Exception
184     {
185         String commonsLangJar = "commons-lang/commons-lang/2.1-SNAPSHOT/commons-lang-2.1-SNAPSHOT.jar";
186         String expectedArtifactContents = "dummy-commons-lang-snapshot-artifact";
187
188         File artifactFile = new File( repoRootInternal, commonsLangJar );
189         artifactFile.getParentFile().mkdirs();
190
191         FileUtils.writeStringToFile( artifactFile, expectedArtifactContents, null );
192
193         WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/"
194             + "commons-lang/jars/commons-lang-2.1-SNAPSHOT.jar" );
195         WebResponse response = sc.getResponse( request );
196         assertResponseOK( response );
197
198         assertEquals( "Expected file contents", expectedArtifactContents, response.getText() );
199     }
200
201     public void testGetNoProxyTimestampedSnapshotArtifactDefaultLayout()
202         throws Exception
203     {
204         String commonsLangJar = "commons-lang/commons-lang/2.1-SNAPSHOT/commons-lang-2.1-20050821.023400-1.jar";
205         String expectedArtifactContents = "dummy-commons-lang-snapshot-artifact";
206
207         File artifactFile = new File( repoRootInternal, commonsLangJar );
208         artifactFile.getParentFile().mkdirs();
209
210         FileUtils.writeStringToFile( artifactFile, expectedArtifactContents, null );
211
212         WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/" + commonsLangJar );
213         WebResponse response = sc.getResponse( request );
214         assertResponseOK( response );
215
216         assertEquals( "Expected file contents", expectedArtifactContents, response.getText() );
217     }
218
219     public void testGetNoProxyTimestampedSnapshotArtifactLegacyLayout()
220         throws Exception
221     {
222         String commonsLangJar = "commons-lang/commons-lang/2.1-SNAPSHOT/commons-lang-2.1-20050821.023400-1.jar";
223         String expectedArtifactContents = "dummy-commons-lang-snapshot-artifact";
224
225         File artifactFile = new File( repoRootInternal, commonsLangJar );
226         artifactFile.getParentFile().mkdirs();
227
228         FileUtils.writeStringToFile( artifactFile, expectedArtifactContents, null );
229
230         WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/"
231             + "commons-lang/jars/commons-lang-2.1-20050821.023400-1.jar" );
232         WebResponse response = sc.getResponse( request );
233         assertResponseOK( response );
234
235         assertEquals( "Expected file contents", expectedArtifactContents, response.getText() );
236     }
237     
238     /**
239      * [MRM-481] Artifact requests with a .xml.zip extension fail with a 404 Error
240      */
241     public void testGetNoProxyDualExtensionDefaultLayout()
242         throws Exception
243     {
244         String expectedContents = "the-contents-of-the-dual-extension";
245         String dualExtensionPath = "org/project/example-presentation/3.2/example-presentation-3.2.xml.zip";
246
247         File checksumFile = new File( repoRootInternal, dualExtensionPath );
248         checksumFile.getParentFile().mkdirs();
249
250         FileUtils.writeStringToFile( checksumFile, expectedContents, null );
251
252         WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/" + dualExtensionPath );
253         WebResponse response = sc.getResponse( request );
254         assertResponseOK( response );
255
256         assertEquals( "Expected file contents", expectedContents, response.getText() );
257     }
258 }