1 package org.apache.maven.archiva.webdav;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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
31
32
33
34 public class RepositoryServletNoProxyTest
35 extends AbstractRepositoryServletTestCase
36 {
37 public void testLastModifiedHeaderExists()
38 throws Exception
39 {
40 String commonsLangSha1 = "commons-lang/commons-lang/2.1/commons-lang-2.1.jar.sha1";
41
42 File checksumFile = new File( repoRootInternal, commonsLangSha1 );
43 checksumFile.getParentFile().mkdirs();
44
45 FileUtils.writeStringToFile( checksumFile, "dummy-checksum", null );
46
47 WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/" + commonsLangSha1 );
48 WebResponse response = sc.getResponse( request );
49
50 assertNotNull(response.getHeaderField("last-modified"));
51 }
52
53 public void testGetNoProxyChecksumDefaultLayout()
54 throws Exception
55 {
56 String commonsLangSha1 = "commons-lang/commons-lang/2.1/commons-lang-2.1.jar.sha1";
57
58 File checksumFile = new File( repoRootInternal, commonsLangSha1 );
59 checksumFile.getParentFile().mkdirs();
60
61 FileUtils.writeStringToFile( checksumFile, "dummy-checksum", null );
62
63 WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/" + commonsLangSha1 );
64 WebResponse response = sc.getResponse( request );
65 assertResponseOK( response );
66
67 assertEquals( "Expected file contents", "dummy-checksum", response.getText() );
68 }
69
70 public void testGetNoProxyChecksumLegacyLayout()
71 throws Exception
72 {
73 String commonsLangSha1 = "commons-lang/commons-lang/2.1/commons-lang-2.1.jar.sha1";
74
75 File checksumFile = new File( repoRootInternal, commonsLangSha1 );
76 checksumFile.getParentFile().mkdirs();
77
78 FileUtils.writeStringToFile( checksumFile, "dummy-checksum", null );
79
80 WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/"
81 + "commons-lang/jars/commons-lang-2.1.jar.sha1" );
82 WebResponse response = sc.getResponse( request );
83 assertResponseOK( response );
84
85 assertEquals( "Expected file contents", "dummy-checksum", response.getText() );
86 }
87
88 public void testGetNoProxyVersionedMetadataDefaultLayout()
89 throws Exception
90 {
91 String commonsLangMetadata = "commons-lang/commons-lang/2.1/maven-metadata.xml";
92 String expectedMetadataContents = "dummy-versioned-metadata";
93
94 File metadataFile = new File( repoRootInternal, commonsLangMetadata );
95 metadataFile.getParentFile().mkdirs();
96
97 FileUtils.writeStringToFile( metadataFile, expectedMetadataContents, null );
98
99 WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/" + commonsLangMetadata );
100 WebResponse response = sc.getResponse( request );
101 assertResponseOK( response );
102
103 assertEquals( "Expected file contents", expectedMetadataContents, response.getText() );
104 }
105
106 public void testGetNoProxyProjectMetadataDefaultLayout()
107 throws Exception
108 {
109 String commonsLangMetadata = "commons-lang/commons-lang/maven-metadata.xml";
110 String expectedMetadataContents = "dummy-project-metadata";
111
112 File metadataFile = new File( repoRootInternal, commonsLangMetadata );
113 metadataFile.getParentFile().mkdirs();
114
115 FileUtils.writeStringToFile( metadataFile, expectedMetadataContents, null );
116
117 WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/" + commonsLangMetadata );
118 WebResponse response = sc.getResponse( request );
119 assertResponseOK( response );
120
121 assertEquals( "Expected file contents", expectedMetadataContents, response.getText() );
122 }
123
124 public void testGetNoProxyGroupMetadataDefaultLayout()
125 throws Exception
126 {
127 String commonsLangMetadata = "commons-lang/maven-metadata.xml";
128 String expectedMetadataContents = "dummy-group-metadata";
129
130 File metadataFile = new File( repoRootInternal, commonsLangMetadata );
131 metadataFile.getParentFile().mkdirs();
132
133 FileUtils.writeStringToFile( metadataFile, expectedMetadataContents, null );
134
135 WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/" + commonsLangMetadata );
136 WebResponse response = sc.getResponse( request );
137 assertResponseOK( response );
138
139 assertEquals( "Expected file contents", expectedMetadataContents, response.getText() );
140 }
141
142 public void testGetNoProxyArtifactDefaultLayout()
143 throws Exception
144 {
145 String commonsLangJar = "commons-lang/commons-lang/2.1/commons-lang-2.1.jar";
146 String expectedArtifactContents = "dummy-commons-lang-artifact";
147
148 File artifactFile = new File( repoRootInternal, commonsLangJar );
149 artifactFile.getParentFile().mkdirs();
150
151 FileUtils.writeStringToFile( artifactFile, expectedArtifactContents, null );
152
153 WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/" + commonsLangJar );
154 WebResponse response = sc.getResponse( request );
155 assertResponseOK( response );
156
157 assertEquals( "Expected file contents", expectedArtifactContents, response.getText() );
158 }
159
160 public void testGetNoProxyArtifactLegacyLayout()
161 throws Exception
162 {
163 String commonsLangJar = "commons-lang/commons-lang/2.1/commons-lang-2.1.jar";
164 String expectedArtifactContents = "dummy-commons-lang-artifact";
165
166 File artifactFile = new File( repoRootInternal, commonsLangJar );
167 artifactFile.getParentFile().mkdirs();
168
169 FileUtils.writeStringToFile( artifactFile, expectedArtifactContents, null );
170
171 WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/"
172 + "commons-lang/jars/commons-lang-2.1.jar" );
173 WebResponse response = sc.getResponse( request );
174 assertResponseOK( response );
175
176 assertEquals( "Expected file contents", expectedArtifactContents, response.getText() );
177 }
178
179 public void testGetNoProxySnapshotArtifactDefaultLayout()
180 throws Exception
181 {
182 String commonsLangJar = "commons-lang/commons-lang/2.1-SNAPSHOT/commons-lang-2.1-SNAPSHOT.jar";
183 String expectedArtifactContents = "dummy-commons-lang-snapshot-artifact";
184
185 File artifactFile = new File( repoRootInternal, commonsLangJar );
186 artifactFile.getParentFile().mkdirs();
187
188 FileUtils.writeStringToFile( artifactFile, expectedArtifactContents, null );
189
190 WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/" + commonsLangJar );
191 WebResponse response = sc.getResponse( request );
192 assertResponseOK( response );
193
194 assertEquals( "Expected file contents", expectedArtifactContents, response.getText() );
195 }
196
197 public void testGetNoProxySnapshotArtifactLegacyLayout()
198 throws Exception
199 {
200 String commonsLangJar = "commons-lang/commons-lang/2.1-SNAPSHOT/commons-lang-2.1-SNAPSHOT.jar";
201 String expectedArtifactContents = "dummy-commons-lang-snapshot-artifact";
202
203 File artifactFile = new File( repoRootInternal, commonsLangJar );
204 artifactFile.getParentFile().mkdirs();
205
206 FileUtils.writeStringToFile( artifactFile, expectedArtifactContents, null );
207
208 WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/"
209 + "commons-lang/jars/commons-lang-2.1-SNAPSHOT.jar" );
210 WebResponse response = sc.getResponse( request );
211 assertResponseOK( response );
212
213 assertEquals( "Expected file contents", expectedArtifactContents, response.getText() );
214 }
215
216 public void testGetNoProxyTimestampedSnapshotArtifactDefaultLayout()
217 throws Exception
218 {
219 String commonsLangJar = "commons-lang/commons-lang/2.1-SNAPSHOT/commons-lang-2.1-20050821.023400-1.jar";
220 String expectedArtifactContents = "dummy-commons-lang-snapshot-artifact";
221
222 File artifactFile = new File( repoRootInternal, commonsLangJar );
223 artifactFile.getParentFile().mkdirs();
224
225 FileUtils.writeStringToFile( artifactFile, expectedArtifactContents, null );
226
227 WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/" + commonsLangJar );
228 WebResponse response = sc.getResponse( request );
229 assertResponseOK( response );
230
231 assertEquals( "Expected file contents", expectedArtifactContents, response.getText() );
232 }
233
234 public void testGetNoProxyTimestampedSnapshotArtifactLegacyLayout()
235 throws Exception
236 {
237 String commonsLangJar = "commons-lang/commons-lang/2.1-SNAPSHOT/commons-lang-2.1-20050821.023400-1.jar";
238 String expectedArtifactContents = "dummy-commons-lang-snapshot-artifact";
239
240 File artifactFile = new File( repoRootInternal, commonsLangJar );
241 artifactFile.getParentFile().mkdirs();
242
243 FileUtils.writeStringToFile( artifactFile, expectedArtifactContents, null );
244
245 WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/"
246 + "commons-lang/jars/commons-lang-2.1-20050821.023400-1.jar" );
247 WebResponse response = sc.getResponse( request );
248 assertResponseOK( response );
249
250 assertEquals( "Expected file contents", expectedArtifactContents, response.getText() );
251 }
252
253
254
255
256 public void testGetNoProxyDualExtensionDefaultLayout()
257 throws Exception
258 {
259 String expectedContents = "the-contents-of-the-dual-extension";
260 String dualExtensionPath = "org/project/example-presentation/3.2/example-presentation-3.2.xml.zip";
261
262 File checksumFile = new File( repoRootInternal, dualExtensionPath );
263 checksumFile.getParentFile().mkdirs();
264
265 FileUtils.writeStringToFile( checksumFile, expectedContents, null );
266
267 WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/" + dualExtensionPath );
268 WebResponse response = sc.getResponse( request );
269 assertResponseOK( response );
270
271 assertEquals( "Expected file contents", expectedContents, response.getText() );
272 }
273 }