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