]> source.dussan.org Git - archiva.git/blob
2a03aa7d3b1e43972b43c5bb35069b580a0fb43b
[archiva.git] /
1 package org.apache.maven.archiva.proxy;
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 org.apache.commons.io.FileUtils;
23 import org.apache.commons.lang.StringUtils;
24 import org.apache.maven.archiva.model.ArtifactReference;
25 import org.apache.maven.archiva.policies.CachedFailuresPolicy;
26 import org.apache.maven.archiva.policies.ChecksumPolicy;
27 import org.apache.maven.archiva.policies.ReleasesPolicy;
28 import org.apache.maven.archiva.policies.SnapshotsPolicy;
29 import org.apache.maven.wagon.ResourceDoesNotExistException;
30 import org.junit.Test;
31
32 import java.io.File;
33
34 /**
35  * ManagedDefaultTransferTest
36  *
37  * @version $Id$
38  */
39 public class ManagedDefaultTransferTest
40     extends AbstractProxyTestCase
41 {
42     @Test
43     public void testGetDefaultLayoutNotPresentConnectorOffline()
44         throws Exception
45     {
46         String path = "org/apache/maven/test/get-default-layout/1.0/get-default-layout-1.0.jar";
47         setupTestableManagedRepository( path );
48
49         File expectedFile = new File( managedDefaultDir, path );
50         ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path );
51
52         // Ensure file isn't present first.
53         assertNotExistsInManagedDefaultRepo( expectedFile );
54
55         // Configure Connector (usually done within archiva.xml configuration)
56         saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ONCE, SnapshotsPolicy.ONCE,
57                        CachedFailuresPolicy.NO, true );
58
59         // Attempt the proxy fetch.
60         File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
61         assertNull("File should not have been downloaded", downloadedFile);
62     }
63
64     @Test
65     public void testGetDefaultLayoutNotPresent()
66         throws Exception
67     {
68         String path = "org/apache/maven/test/get-default-layout/1.0/get-default-layout-1.0.jar";
69         setupTestableManagedRepository( path );
70
71         File expectedFile = new File( managedDefaultDir, path );
72         ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path );
73
74         // Ensure file isn't present first.
75         assertNotExistsInManagedDefaultRepo( expectedFile );
76
77         // Configure Connector (usually done within archiva.xml configuration)
78         saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ONCE, SnapshotsPolicy.ONCE,
79                        CachedFailuresPolicy.NO, false );
80
81         // Attempt the proxy fetch.
82         File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
83
84         File sourceFile = new File( REPOPATH_PROXIED1, path );
85         assertFileEquals( expectedFile, downloadedFile, sourceFile );
86         assertNoTempFiles( expectedFile );
87     }
88
89     @Test
90     public void testGetDefaultLayoutNotPresentPassthrough()
91         throws Exception
92     {
93         String path = "org/apache/maven/test/get-default-layout/1.0/get-default-layout-1.0.jar.asc";
94         setupTestableManagedRepository( path );
95
96         File expectedFile = new File( managedDefaultDir, path );
97
98         // Ensure file isn't present first.
99         assertNotExistsInManagedDefaultRepo( expectedFile );
100
101         // Configure Connector (usually done within archiva.xml configuration)
102         saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ONCE, SnapshotsPolicy.ONCE,
103                        CachedFailuresPolicy.NO, false );
104
105         // Attempt the proxy fetch.
106         File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, path );
107
108         File sourceFile = new File( REPOPATH_PROXIED1, path );
109         assertFileEquals( expectedFile, downloadedFile, sourceFile );
110         assertFalse( new File( downloadedFile.getParentFile(), downloadedFile.getName() + ".sha1" ).exists() );
111         assertFalse( new File( downloadedFile.getParentFile(), downloadedFile.getName() + ".md5" ).exists() );
112         assertFalse( new File( downloadedFile.getParentFile(), downloadedFile.getName() + ".asc" ).exists() );
113         assertNoTempFiles( expectedFile );
114     }
115
116     /**
117      * The attempt here should result in no file being transferred.
118      * <p/>
119      * The file exists locally, and the policy is ONCE.
120      *
121      * @throws Exception
122      */
123     @Test
124     public void testGetDefaultLayoutAlreadyPresentPolicyOnce()
125         throws Exception
126     {
127         String path = "org/apache/maven/test/get-default-layout-present/1.0/get-default-layout-present-1.0.jar";
128         setupTestableManagedRepository( path );
129
130         File expectedFile = new File( managedDefaultDir, path );
131
132         ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path );
133
134         assertTrue( expectedFile.exists() );
135
136         // Configure Connector (usually done within archiva.xml configuration)
137         saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ONCE, SnapshotsPolicy.ONCE,
138                        CachedFailuresPolicy.NO, false );
139
140         // Attempt the proxy fetch.
141         File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
142
143         assertFileEquals( expectedFile, downloadedFile, expectedFile );
144         assertNoTempFiles( expectedFile );
145     }
146
147     /**
148      * The attempt here should result in no file being transferred.
149      * <p/>
150      * The file exists locally, and the policy is ONCE.
151      *
152      * @throws Exception
153      */
154     @Test
155     public void testGetDefaultLayoutAlreadyPresentPassthrough()
156         throws Exception
157     {
158         String path = "org/apache/maven/test/get-default-layout-present/1.0/get-default-layout-present-1.0.jar.asc";
159         setupTestableManagedRepository( path );
160
161         File expectedFile = new File( managedDefaultDir, path );
162         File remoteFile = new File( REPOPATH_PROXIED1, path );
163
164         assertTrue( expectedFile.exists() );
165
166         // Set the managed File to be newer than local.
167         setManagedOlderThanRemote( expectedFile, remoteFile );
168         long originalModificationTime = expectedFile.lastModified();
169
170         // Configure Connector (usually done within archiva.xml configuration)
171         saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ONCE, SnapshotsPolicy.ONCE,
172                        CachedFailuresPolicy.NO, false );
173
174         // Attempt the proxy fetch.
175         File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, path );
176
177         assertNotDownloaded( downloadedFile );
178         assertNotModified( expectedFile, originalModificationTime );
179         assertNoTempFiles( expectedFile );
180     }
181
182     /**
183      * <p>
184      * Request a file, that exists locally, and remotely.
185      * </p>
186      * <p>
187      * All policies are set to IGNORE.
188      * </p>
189      * <p>
190      * Managed file is newer than remote file.
191      * </p>
192      * <p>
193      * Transfer should not have occured, as managed file is newer.
194      * </p>
195      *
196      * @throws Exception
197      */
198     @Test
199     public void testGetDefaultLayoutAlreadyPresentNewerThanRemotePolicyIgnored()
200         throws Exception
201     {
202         String path = "org/apache/maven/test/get-default-layout-present/1.0/get-default-layout-present-1.0.jar";
203         setupTestableManagedRepository( path );
204
205         File expectedFile = new File( managedDefaultDir, path );
206         File remoteFile = new File( REPOPATH_PROXIED1, path );
207         
208         // Set the managed File to be newer than local.
209         setManagedNewerThanRemote( expectedFile, remoteFile );
210
211         long originalModificationTime = expectedFile.lastModified();
212         ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path );
213
214         assertTrue( expectedFile.exists() );
215
216         // Configure Connector (usually done within archiva.xml configuration)
217         saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
218                        SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );
219
220         // Attempt the proxy fetch.
221         File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
222
223         assertNotDownloaded( downloadedFile );
224         assertNotModified( expectedFile, originalModificationTime );
225         assertNoTempFiles( expectedFile );
226     }
227     
228     /**
229      * <p>
230      * Request a file, that exists locally, and remotely.
231      * </p>
232      * <p>
233      * All policies are set to IGNORE.
234      * </p>
235      * <p>
236      * Managed file is older than Remote file.
237      * </p>
238      * <p>
239      * Transfer should have occured, as managed file is older than remote.
240      * </p>
241      *
242      * @throws Exception
243      */
244     @Test
245     public void testGetDefaultLayoutAlreadyPresentOlderThanRemotePolicyIgnored()
246         throws Exception
247     {
248         String path = "org/apache/maven/test/get-default-layout-present/1.0/get-default-layout-present-1.0.jar";
249         setupTestableManagedRepository( path );
250
251         File expectedFile = new File( managedDefaultDir, path );
252         File remoteFile = new File( REPOPATH_PROXIED1, path );
253         
254         // Set the managed file to be newer than remote file.
255         setManagedOlderThanRemote( expectedFile, remoteFile );
256     
257         ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path );
258
259         assertTrue( expectedFile.exists() );
260
261         // Configure Connector (usually done within archiva.xml configuration)
262         saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
263                        SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );
264
265         // Attempt the proxy fetch.
266         File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
267
268         File proxiedFile = new File( REPOPATH_PROXIED1, path );
269         assertFileEquals( expectedFile, downloadedFile, proxiedFile );
270         assertNoTempFiles( expectedFile );
271     }
272
273     /**
274      * The attempt here should result in file being transferred.
275      * <p/>
276      * The file exists locally, is over 6 years old, and the policy is DAILY.
277      *
278      * @throws Exception
279      */
280     @Test
281     public void testGetDefaultLayoutRemoteUpdate()
282         throws Exception
283     {
284         String path = "org/apache/maven/test/get-default-layout-present/1.0/get-default-layout-present-1.0.jar";
285         setupTestableManagedRepository( path );
286
287         File expectedFile = new File( managedDefaultDir, path );
288         ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path );
289
290         assertTrue( expectedFile.exists() );
291         expectedFile.setLastModified( getPastDate().getTime() );
292
293         // Configure Connector (usually done within archiva.xml configuration)
294         saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.DAILY, SnapshotsPolicy.DAILY,
295                        CachedFailuresPolicy.NO, false );
296
297         // Attempt the proxy fetch.
298         File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
299
300         File proxiedFile = new File( REPOPATH_PROXIED1, path );
301         assertFileEquals( expectedFile, downloadedFile, proxiedFile );
302         assertNoTempFiles( expectedFile );
303     }
304
305     @Test
306     public void testGetWhenInBothProxiedRepos()
307         throws Exception
308     {
309         String path = "org/apache/maven/test/get-in-both-proxies/1.0/get-in-both-proxies-1.0.jar";
310         setupTestableManagedRepository( path );
311
312         File expectedFile = new File( managedDefaultDir, path );
313         ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path );
314
315         assertNotExistsInManagedDefaultRepo( expectedFile );
316
317         // Configure Connector (usually done within archiva.xml configuration)
318         saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1 , false );
319         saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2 , false );
320
321         // Attempt the proxy fetch.
322         File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
323
324         File proxied1File = new File( REPOPATH_PROXIED1, path );
325         File proxied2File = new File( REPOPATH_PROXIED2, path );
326         assertFileEquals( expectedFile, downloadedFile, proxied1File );
327         assertNoTempFiles( expectedFile );
328
329         // TODO: is this check even needed if it passes above? 
330         String actualContents = FileUtils.readFileToString( downloadedFile, null );
331         String badContents = FileUtils.readFileToString( proxied2File, null );
332         assertFalse( "Downloaded file contents should not be that of proxy 2",
333                      StringUtils.equals( actualContents, badContents ) );
334     }
335
336     @Test
337     public void testGetInSecondProxiedRepo()
338         throws Exception
339     {
340         String path = "org/apache/maven/test/get-in-second-proxy/1.0/get-in-second-proxy-1.0.jar";
341         setupTestableManagedRepository( path );
342
343         File expectedFile = new File( managedDefaultDir, path );
344         ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path );
345
346         assertNotExistsInManagedDefaultRepo( expectedFile );
347
348         // Configure Connector (usually done within archiva.xml configuration)
349         saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, false );
350         saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2, false );
351
352         // Attempt the proxy fetch.
353         File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
354
355         File proxied2File = new File( REPOPATH_PROXIED2, path );
356         assertFileEquals( expectedFile, downloadedFile, proxied2File );
357         assertNoTempFiles( expectedFile );
358     }
359
360     @Test
361     public void testNotFoundInAnyProxies()
362         throws Exception
363     {
364         String path = "org/apache/maven/test/does-not-exist/1.0/does-not-exist-1.0.jar";
365         setupTestableManagedRepository( path );
366
367         File expectedFile = new File( managedDefaultDir, path );
368         ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path );
369
370         assertNotExistsInManagedDefaultRepo( expectedFile );
371
372         // Configure Connector (usually done within archiva.xml configuration)
373         saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, false );
374         saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2, false );
375         saveConnector( ID_DEFAULT_MANAGED, ID_LEGACY_PROXIED, false );
376
377         // Attempt the proxy fetch.
378         File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
379
380         assertNull( "File returned was: " + downloadedFile + "; should have got a not found exception",
381                     downloadedFile );
382         assertNoTempFiles( expectedFile );
383     }
384
385     @Test
386     public void testGetInSecondProxiedRepoFirstFails()
387         throws Exception
388     {
389         String path = "org/apache/maven/test/get-in-second-proxy/1.0/get-in-second-proxy-1.0.jar";
390         setupTestableManagedRepository( path );
391
392         File expectedFile = new File( managedDefaultDir, path );
393         ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path );
394
395         assertNotExistsInManagedDefaultRepo( expectedFile );
396
397         // Configure Repository (usually done within archiva.xml configuration)
398         saveRemoteRepositoryConfig( "badproxied", "Bad Proxied", "test://bad.machine.com/repo/", "default" );
399
400         wagonMock.get( path, new File( expectedFile.getAbsolutePath() + ".tmp" ) );
401         wagonMockControl.setMatcher(customWagonGetMatcher);
402         wagonMockControl.setThrowable( new ResourceDoesNotExistException( "transfer failed" ) );
403         wagonMockControl.replay();
404
405         // Configure Connector (usually done within archiva.xml configuration)
406         saveConnector( ID_DEFAULT_MANAGED, "badproxied", false );
407         saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2, false );
408
409         // Attempt the proxy fetch.
410         File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
411
412         wagonMockControl.verify();
413
414         File proxied2File = new File( REPOPATH_PROXIED2, path );
415         assertFileEquals( expectedFile, downloadedFile, proxied2File );
416         assertNoTempFiles( expectedFile );
417     }
418
419     @Test
420     public void testGetAllRepositoriesFail()
421         throws Exception
422     {
423         String path = "org/apache/maven/test/get-in-second-proxy/1.0/get-in-second-proxy-1.0.jar";
424         setupTestableManagedRepository( path );
425
426         File expectedFile = new File( managedDefaultDir.getAbsoluteFile(), path );
427         ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path );
428
429         assertNotExistsInManagedDefaultRepo( expectedFile );
430
431         // Configure Repository (usually done within archiva.xml configuration)
432         saveRemoteRepositoryConfig( "badproxied1", "Bad Proxied 1", "test://bad.machine.com/repo/", "default" );
433         saveRemoteRepositoryConfig( "badproxied2", "Bad Proxied 2", "test://dead.machine.com/repo/", "default" );
434
435         // Configure Connector (usually done within archiva.xml configuration)
436         saveConnector( ID_DEFAULT_MANAGED, "badproxied1", false );
437         saveConnector( ID_DEFAULT_MANAGED, "badproxied2", false );
438
439         File tmpFile = new File( expectedFile.getParentFile(), expectedFile.getName() + ".tmp" );
440         wagonMock.get( path, tmpFile );
441         
442         wagonMockControl.setMatcher(customWagonGetMatcher);
443         wagonMockControl.setThrowable( new ResourceDoesNotExistException( "Can't find resource." ) );
444
445         wagonMock.get( path, tmpFile );
446         
447         wagonMockControl.setMatcher(customWagonGetMatcher);
448         wagonMockControl.setThrowable( new ResourceDoesNotExistException( "Can't find resource." ) );
449
450         wagonMockControl.replay();
451
452         File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
453
454         assertNotDownloaded( downloadedFile );
455
456         wagonMockControl.verify();
457         assertNoTempFiles( expectedFile );
458
459         // TODO: do not want failures to present as a not found [MRM-492]
460         // TODO: How much information on each failure should we pass back to the user vs. logging in the proxy? 
461     }
462
463     @Test
464     public void testGetFromLegacyProxyAlreadyPresentInManaged_NewerThanRemote()
465         throws Exception
466     {
467         String legacyPath = "org.apache.maven.test/jars/get-default-layout-present-1.0.jar";
468         String path = "org/apache/maven/test/get-default-layout-present/1.0/get-default-layout-present-1.0.jar";
469         setupTestableManagedRepository( path );
470
471         File expectedFile = new File( managedDefaultDir, path );
472         File remoteFile = new File( REPOPATH_PROXIED_LEGACY, legacyPath );
473         
474         // Set the managed file to be newer than remote.
475         setManagedNewerThanRemote( expectedFile, remoteFile );
476         long expectedTimestamp = expectedFile.lastModified();
477         
478         ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path );
479         
480         assertTrue( expectedFile.exists() );
481
482         // Configure Connector (usually done within archiva.xml configuration)
483         saveConnector( ID_DEFAULT_MANAGED, ID_LEGACY_PROXIED, false );
484
485         File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
486
487         assertNotDownloaded( downloadedFile );
488         assertNotModified( expectedFile, expectedTimestamp );
489         assertNoTempFiles( expectedFile );
490     }
491
492     @Test
493     public void testGetFromLegacyProxyAlreadyPresentInManaged_OlderThanRemote()
494         throws Exception
495     {
496         String legacyPath = "org.apache.maven.test/jars/get-default-layout-present-1.0.jar";
497         String path = "org/apache/maven/test/get-default-layout-present/1.0/get-default-layout-present-1.0.jar";
498         setupTestableManagedRepository( path );
499
500         File expectedFile = new File( managedDefaultDir, path );
501         File remoteFile = new File( REPOPATH_PROXIED_LEGACY, legacyPath );
502
503         // Set the managed file to be older than remote.
504         setManagedOlderThanRemote( expectedFile, remoteFile );
505
506         ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path );
507
508         assertTrue( expectedFile.exists() );
509
510         // Configure Connector (usually done within archiva.xml configuration)
511         saveConnector( ID_DEFAULT_MANAGED, ID_LEGACY_PROXIED, false );
512
513         File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
514
515         File proxiedFile = new File( REPOPATH_PROXIED_LEGACY, legacyPath );
516         assertFileEquals( expectedFile, downloadedFile, proxiedFile );
517         assertNoTempFiles( expectedFile );
518     }
519
520     @Test
521     public void testGetFromLegacyProxyNotPresentInManaged()
522         throws Exception
523     {
524         String legacyPath = "org.apache.maven.test/jars/example-lib-2.2.jar";
525         String path = "org/apache/maven/test/example-lib/2.2/example-lib-2.2.jar";
526         setupTestableManagedRepository( path );
527
528         File expectedFile = new File( managedDefaultDir, path );
529         ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path );
530
531         assertNotExistsInManagedDefaultRepo( expectedFile );
532
533         // Configure Connector (usually done within archiva.xml configuration)
534         saveConnector( ID_DEFAULT_MANAGED, ID_LEGACY_PROXIED, false);
535
536         File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
537
538         File proxiedFile = new File( REPOPATH_PROXIED_LEGACY, legacyPath );
539         assertFileEquals( expectedFile, downloadedFile, proxiedFile );
540         assertNoTempFiles( expectedFile );
541     }
542
543     @Test
544     public void testGetFromLegacyProxyPluginNotPresentInManaged()
545         throws Exception
546     {
547         String legacyPath = "org.apache.maven.test/maven-plugins/example-maven-plugin-0.42.jar";
548         String path = "org/apache/maven/test/example-maven-plugin/0.42/example-maven-plugin-0.42.jar";
549         setupTestableManagedRepository( path );
550
551         File expectedFile = new File( managedDefaultDir, path );
552         ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path );
553
554         assertNotExistsInManagedDefaultRepo( expectedFile );
555
556         // Configure Connector (usually done within archiva.xml configuration)
557         saveConnector( ID_DEFAULT_MANAGED, ID_LEGACY_PROXIED, false  );
558
559         File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
560
561         File proxiedFile = new File( REPOPATH_PROXIED_LEGACY, legacyPath );
562         assertFileEquals( expectedFile, downloadedFile, proxiedFile );
563         assertNoTempFiles( expectedFile );
564     }
565 }