1 package org.apache.maven.wagon.shared.http;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.io.InputStream;
23 import java.util.Collections;
24 import java.util.Iterator;
25 import java.util.List;
26
27 import junit.framework.TestCase;
28
29 import org.apache.maven.wagon.TransferFailedException;
30
31
32
33
34 public class HtmlFileListParserTest
35 extends TestCase
36 {
37 private void assertContainsExpected( List
38 {
39 if ( expected.length != links.size() )
40 {
41 Collections.sort( links );
42 for ( Iterator iterator = links.iterator(); iterator.hasNext(); )
43 {
44 String link = (String) iterator.next();
45 System.out.println( " \"" + link + "\", " );
46 }
47 assertEquals( "Links to Expected size", expected.length, links.size() );
48 }
49
50 for ( int i = 0; i < expected.length; i++ )
51 {
52 assertTrue( "Should find [" + expected[i] + "] in link list", links.contains( expected[i] ) );
53 }
54 }
55
56 private void assertNotContainingAvoided( List
57 {
58 for ( int i = 0; i < avoided.length; i++ )
59 {
60 assertFalse( "Should not find [" + avoided[i] + "] in link list", links.contains( avoided[i] ) );
61 }
62 }
63
64 private List
65 throws TransferFailedException
66 {
67 InputStream is = this.getClass().getResourceAsStream( "/filelistings/" + filename );
68 List files = HtmlFileListParser.parseFileList( url, is );
69
70 assertNotNull( "file list should not be null.", files );
71 assertFalse( "file list should not be empty.", files.isEmpty() );
72
73
74 if ( false )
75 {
76 Iterator it = files.iterator();
77 while ( it.hasNext() )
78 {
79 System.out.println( "File: '" + it.next() + "'" );
80 }
81 }
82
83 return files;
84 }
85
86
87
88
89
90
91 public void testParseCommonsLang()
92 throws TransferFailedException
93 {
94 List
95 "commons-lang.html" );
96
97 String[] expected = new String[] {
98 "commons-lang-2.3-javadoc.jar",
99 "commons-lang-2.3-javadoc.jar.asc",
100 "commons-lang-2.3-javadoc.jar.md5",
101 "commons-lang-2.3-javadoc.jar.sha1",
102 "commons-lang-2.3-sources.jar",
103 "commons-lang-2.3-sources.jar.asc",
104 "commons-lang-2.3-sources.jar.md5",
105 "commons-lang-2.3-sources.jar.sha1",
106 "commons-lang-2.3.jar",
107 "commons-lang-2.3.jar.asc",
108 "commons-lang-2.3.jar.md5",
109 "commons-lang-2.3.jar.sha1",
110 "commons-lang-2.3.pom",
111 "commons-lang-2.3.pom.md5",
112 "commons-lang-2.3.pom.sha1",
113 "maven-metadata.xml",
114 "maven-metadata.xml.md5",
115 "maven-metadata.xml.sha1" };
116
117 assertContainsExpected( links, expected );
118
119 String[] avoided = new String[] { "../" };
120
121 assertNotContainingAvoided( links, avoided );
122 }
123
124 public void testParseIbiblio()
125 throws Exception
126 {
127 List
128 "ibiblio-wagon.html" );
129
130 String[] expected = new String[] {
131 "wagon-1.0-alpha-2.pom",
132 "wagon-1.0-alpha-2.pom.asc",
133 "wagon-1.0-alpha-2.pom.md5",
134 "wagon-1.0-alpha-2.pom.sha1",
135 "wagon-1.0-alpha-3-20050413.021234-4.pom",
136 "wagon-1.0-alpha-3-20050413.021234-4.pom.md5",
137 "wagon-1.0-alpha-3-20050413.021234-4.pom.sha1",
138 "wagon-1.0-alpha-3-20050419.043745-5.pom",
139 "wagon-1.0-alpha-3-20050419.043745-5.pom.md5",
140 "wagon-1.0-alpha-3-20050419.043745-5.pom.sha1",
141 "wagon-1.0-alpha-3-20050419.044035-6.pom",
142 "wagon-1.0-alpha-3-20050419.044035-6.pom.md5",
143 "wagon-1.0-alpha-3-20050419.044035-6.pom.sha1",
144 "wagon-1.0-alpha-3-20050421.162738-7.pom",
145 "wagon-1.0-alpha-3-20050421.162738-7.pom.md5",
146 "wagon-1.0-alpha-3-20050421.162738-7.pom.sha1",
147 "wagon-1.0-alpha-3-20050422.075233-8.pom",
148 "wagon-1.0-alpha-3-20050422.075233-8.pom.md5",
149 "wagon-1.0-alpha-3-20050422.075233-8.pom.sha1",
150 "wagon-1.0-alpha-3-20050429.051847-9.pom",
151 "wagon-1.0-alpha-3-20050429.051847-9.pom.md5",
152 "wagon-1.0-alpha-3-20050429.051847-9.pom.sha1",
153 "wagon-file/",
154 "wagon-ftp/",
155 "wagon-http-lightweight/",
156 "wagon-http/",
157 "wagon-lightweight-http/",
158 "wagon-provider-api/",
159 "wagon-provider-test/",
160 "wagon-provider/",
161 "wagon-providers-1.0-alpha-2.pom",
162 "wagon-providers-1.0-alpha-2.pom.asc",
163 "wagon-providers-1.0-alpha-2.pom.md5",
164 "wagon-providers-1.0-alpha-2.pom.sha1",
165 "wagon-providers-1.0-alpha-3-20050407.202848-1.pom",
166 "wagon-providers-1.0-alpha-3-20050407.202848-1.pom.md5",
167 "wagon-providers-1.0-alpha-3-20050407.202848-1.pom.sha1",
168 "wagon-providers-1.0-alpha-3-20050419.044035-2.pom",
169 "wagon-providers-1.0-alpha-3-20050419.044035-2.pom.md5",
170 "wagon-providers-1.0-alpha-3-20050419.044035-2.pom.sha1",
171 "wagon-providers-1.0-alpha-3-20050421.162738-3.pom",
172 "wagon-providers-1.0-alpha-3-20050421.162738-3.pom.md5",
173 "wagon-providers-1.0-alpha-3-20050421.162738-3.pom.sha1",
174 "wagon-providers-1.0-alpha-3-20050422.075233-4.pom",
175 "wagon-providers-1.0-alpha-3-20050422.075233-4.pom.md5",
176 "wagon-providers-1.0-alpha-3-20050422.075233-4.pom.sha1",
177 "wagon-providers-1.0-alpha-3-20050429.051847-5.pom",
178 "wagon-providers-1.0-alpha-3-20050429.051847-5.pom.md5",
179 "wagon-providers-1.0-alpha-3-20050429.051847-5.pom.sha1",
180 "wagon-providers/",
181 "wagon-scm/",
182 "wagon-ssh-external/",
183 "wagon-ssh/",
184 "wagon-webdav/",
185 "wagon/" };
186
187 assertContainsExpected( links, expected );
188
189 String[] avoided = new String[] { "/org/", "?C=S;O=A", "?C=D;O=A", "?C=M;O=A", "?D=A", "?M=A", "?N=D", "?S=A" };
190
191 assertNotContainingAvoided( links, avoided );
192 }
193
194
195
196
197
198 public void testParseJetty()
199 throws Exception
200 {
201 List
202 "jetty-wagon.html" );
203
204 String[] expected = new String[] {
205 "wagon-1.0-alpha-2.pom",
206 "wagon-1.0-alpha-2.pom.asc",
207 "wagon-1.0-alpha-2.pom.md5",
208 "wagon-1.0-alpha-2.pom.sha1",
209 "wagon-1.0-alpha-3-20050413.021234-4.pom",
210 "wagon-1.0-alpha-3-20050413.021234-4.pom.md5",
211 "wagon-1.0-alpha-3-20050413.021234-4.pom.sha1",
212 "wagon-1.0-alpha-3-20050419.043745-5.pom",
213 "wagon-1.0-alpha-3-20050419.043745-5.pom.md5",
214 "wagon-1.0-alpha-3-20050419.043745-5.pom.sha1",
215 "wagon-1.0-alpha-3-20050419.044035-6.pom",
216 "wagon-1.0-alpha-3-20050419.044035-6.pom.md5",
217 "wagon-1.0-alpha-3-20050419.044035-6.pom.sha1",
218 "wagon-1.0-alpha-3-20050421.162738-7.pom",
219 "wagon-1.0-alpha-3-20050421.162738-7.pom.md5",
220 "wagon-1.0-alpha-3-20050421.162738-7.pom.sha1",
221 "wagon-1.0-alpha-3-20050422.075233-8.pom",
222 "wagon-1.0-alpha-3-20050422.075233-8.pom.md5",
223 "wagon-1.0-alpha-3-20050422.075233-8.pom.sha1",
224 "wagon-1.0-alpha-3-20050429.051847-9.pom",
225 "wagon-1.0-alpha-3-20050429.051847-9.pom.md5",
226 "wagon-1.0-alpha-3-20050429.051847-9.pom.sha1",
227 "wagon-file/",
228 "wagon-ftp/",
229 "wagon-http-lightweight/",
230 "wagon-http/",
231 "wagon-lightweight-http/",
232 "wagon-provider-api/",
233 "wagon-provider-test/",
234 "wagon-provider/",
235 "wagon-providers-1.0-alpha-2.pom",
236 "wagon-providers-1.0-alpha-2.pom.asc",
237 "wagon-providers-1.0-alpha-2.pom.md5",
238 "wagon-providers-1.0-alpha-2.pom.sha1",
239 "wagon-providers-1.0-alpha-3-20050407.202848-1.pom",
240 "wagon-providers-1.0-alpha-3-20050407.202848-1.pom.md5",
241 "wagon-providers-1.0-alpha-3-20050407.202848-1.pom.sha1",
242 "wagon-providers-1.0-alpha-3-20050419.044035-2.pom",
243 "wagon-providers-1.0-alpha-3-20050419.044035-2.pom.md5",
244 "wagon-providers-1.0-alpha-3-20050419.044035-2.pom.sha1",
245 "wagon-providers-1.0-alpha-3-20050421.162738-3.pom",
246 "wagon-providers-1.0-alpha-3-20050421.162738-3.pom.md5",
247 "wagon-providers-1.0-alpha-3-20050421.162738-3.pom.sha1",
248 "wagon-providers-1.0-alpha-3-20050422.075233-4.pom",
249 "wagon-providers-1.0-alpha-3-20050422.075233-4.pom.md5",
250 "wagon-providers-1.0-alpha-3-20050422.075233-4.pom.sha1",
251 "wagon-providers-1.0-alpha-3-20050429.051847-5.pom",
252 "wagon-providers-1.0-alpha-3-20050429.051847-5.pom.md5",
253 "wagon-providers-1.0-alpha-3-20050429.051847-5.pom.sha1",
254 "wagon-providers/",
255 "wagon-scm/",
256 "wagon-ssh-external/",
257 "wagon-ssh/",
258 "wagon-webdav/",
259 "wagon/" };
260
261 assertContainsExpected( links, expected );
262
263 String[] avoided = new String[] { "/org/", "?C=S;O=A", "?C=D;O=A", "?C=M;O=A" };
264
265 assertNotContainingAvoided( links, avoided );
266 }
267
268
269
270
271
272 public void testParseJettyWithNonNormalizedBaseURI()
273 throws Exception
274 {
275 List
276 "jetty-wagon.html" );
277
278 String[] expected = new String[] {
279 "wagon-1.0-alpha-2.pom",
280 "wagon-1.0-alpha-2.pom.asc",
281 "wagon-1.0-alpha-2.pom.md5",
282 "wagon-1.0-alpha-2.pom.sha1",
283 "wagon-1.0-alpha-3-20050413.021234-4.pom",
284 "wagon-1.0-alpha-3-20050413.021234-4.pom.md5",
285 "wagon-1.0-alpha-3-20050413.021234-4.pom.sha1",
286 "wagon-1.0-alpha-3-20050419.043745-5.pom",
287 "wagon-1.0-alpha-3-20050419.043745-5.pom.md5",
288 "wagon-1.0-alpha-3-20050419.043745-5.pom.sha1",
289 "wagon-1.0-alpha-3-20050419.044035-6.pom",
290 "wagon-1.0-alpha-3-20050419.044035-6.pom.md5",
291 "wagon-1.0-alpha-3-20050419.044035-6.pom.sha1",
292 "wagon-1.0-alpha-3-20050421.162738-7.pom",
293 "wagon-1.0-alpha-3-20050421.162738-7.pom.md5",
294 "wagon-1.0-alpha-3-20050421.162738-7.pom.sha1",
295 "wagon-1.0-alpha-3-20050422.075233-8.pom",
296 "wagon-1.0-alpha-3-20050422.075233-8.pom.md5",
297 "wagon-1.0-alpha-3-20050422.075233-8.pom.sha1",
298 "wagon-1.0-alpha-3-20050429.051847-9.pom",
299 "wagon-1.0-alpha-3-20050429.051847-9.pom.md5",
300 "wagon-1.0-alpha-3-20050429.051847-9.pom.sha1",
301 "wagon-file/",
302 "wagon-ftp/",
303 "wagon-http-lightweight/",
304 "wagon-http/",
305 "wagon-lightweight-http/",
306 "wagon-provider-api/",
307 "wagon-provider-test/",
308 "wagon-provider/",
309 "wagon-providers-1.0-alpha-2.pom",
310 "wagon-providers-1.0-alpha-2.pom.asc",
311 "wagon-providers-1.0-alpha-2.pom.md5",
312 "wagon-providers-1.0-alpha-2.pom.sha1",
313 "wagon-providers-1.0-alpha-3-20050407.202848-1.pom",
314 "wagon-providers-1.0-alpha-3-20050407.202848-1.pom.md5",
315 "wagon-providers-1.0-alpha-3-20050407.202848-1.pom.sha1",
316 "wagon-providers-1.0-alpha-3-20050419.044035-2.pom",
317 "wagon-providers-1.0-alpha-3-20050419.044035-2.pom.md5",
318 "wagon-providers-1.0-alpha-3-20050419.044035-2.pom.sha1",
319 "wagon-providers-1.0-alpha-3-20050421.162738-3.pom",
320 "wagon-providers-1.0-alpha-3-20050421.162738-3.pom.md5",
321 "wagon-providers-1.0-alpha-3-20050421.162738-3.pom.sha1",
322 "wagon-providers-1.0-alpha-3-20050422.075233-4.pom",
323 "wagon-providers-1.0-alpha-3-20050422.075233-4.pom.md5",
324 "wagon-providers-1.0-alpha-3-20050422.075233-4.pom.sha1",
325 "wagon-providers-1.0-alpha-3-20050429.051847-5.pom",
326 "wagon-providers-1.0-alpha-3-20050429.051847-5.pom.md5",
327 "wagon-providers-1.0-alpha-3-20050429.051847-5.pom.sha1",
328 "wagon-providers/",
329 "wagon-scm/",
330 "wagon-ssh-external/",
331 "wagon-ssh/",
332 "wagon-webdav/",
333 "wagon/" };
334
335 assertContainsExpected( links, expected );
336
337 String[] avoided = new String[] { "/org/", "?C=S;O=A", "?C=D;O=A", "?C=M;O=A" };
338
339 assertNotContainingAvoided( links, avoided );
340 }
341
342
343
344
345
346
347
348
349 public void testParseMevenIde()
350 throws TransferFailedException
351 {
352 List
353
354 String[] expected = new String[] {
355 "apisupport/",
356 "autoupdate/",
357 "continuum-rpc/",
358 "continuum/",
359 "debugger-bridge/",
360 "deployment-bridge/",
361 "feature/",
362 "grammar/",
363 "ide-mojos/",
364 "indexer/",
365 "j2ee/",
366 "junit/",
367 "maven-metadata.xml",
368 "maven-metadata.xml.md5",
369 "maven-metadata.xml.sha1",
370 "mevenide2-parent/",
371 "nb-mvn-embedder/",
372 "nb-project/",
373 "nb-repo-browser/",
374 "netbeans-debugger-plugin/",
375 "netbeans-deploy-plugin/",
376 "netbeans-libs/",
377 "netbeans-nbmreload-plugin/",
378 "netbeans-repository/",
379 "netbeans-run-plugin/",
380 "netbeans/",
381 "persistence/",
382 "plugin-bridges/",
383 "plugins/",
384 "reload-nbm-bridge/",
385 "run-jar-bridge/" };
386
387 assertContainsExpected( links, expected );
388
389 String[] avoided = new String[] { "/org/codehaus/", "?C=S;O=A", "?C=D;O=A", "?C=M;O=A" };
390
391 assertNotContainingAvoided( links, avoided );
392 }
393
394 public void testParseMirror()
395 throws Exception
396 {
397 List
398 "mirror-wagon.html" );
399
400 String[] expected = new String[] {
401 "wagon-1.0-alpha-2.pom",
402 "wagon-1.0-alpha-2.pom.asc",
403 "wagon-1.0-alpha-2.pom.md5",
404 "wagon-1.0-alpha-2.pom.sha1",
405 "wagon-1.0-alpha-3-20050413.021234-4.pom",
406 "wagon-1.0-alpha-3-20050413.021234-4.pom.md5",
407 "wagon-1.0-alpha-3-20050413.021234-4.pom.sha1",
408 "wagon-1.0-alpha-3-20050419.043745-5.pom",
409 "wagon-1.0-alpha-3-20050419.043745-5.pom.md5",
410 "wagon-1.0-alpha-3-20050419.043745-5.pom.sha1",
411 "wagon-1.0-alpha-3-20050419.044035-6.pom",
412 "wagon-1.0-alpha-3-20050419.044035-6.pom.md5",
413 "wagon-1.0-alpha-3-20050419.044035-6.pom.sha1",
414 "wagon-1.0-alpha-3-20050421.162738-7.pom",
415 "wagon-1.0-alpha-3-20050421.162738-7.pom.md5",
416 "wagon-1.0-alpha-3-20050421.162738-7.pom.sha1",
417 "wagon-1.0-alpha-3-20050422.075233-8.pom",
418 "wagon-1.0-alpha-3-20050422.075233-8.pom.md5",
419 "wagon-1.0-alpha-3-20050422.075233-8.pom.sha1",
420 "wagon-1.0-alpha-3-20050429.051847-9.pom",
421 "wagon-1.0-alpha-3-20050429.051847-9.pom.md5",
422 "wagon-1.0-alpha-3-20050429.051847-9.pom.sha1",
423 "wagon-file/",
424 "wagon-ftp/",
425 "wagon-http-lightweight/",
426 "wagon-http/",
427 "wagon-lightweight-http/",
428 "wagon-provider-api/",
429 "wagon-provider-test/",
430 "wagon-provider/",
431 "wagon-providers-1.0-alpha-2.pom",
432 "wagon-providers-1.0-alpha-2.pom.asc",
433 "wagon-providers-1.0-alpha-2.pom.md5",
434 "wagon-providers-1.0-alpha-2.pom.sha1",
435 "wagon-providers-1.0-alpha-3-20050407.202848-1.pom",
436 "wagon-providers-1.0-alpha-3-20050407.202848-1.pom.md5",
437 "wagon-providers-1.0-alpha-3-20050407.202848-1.pom.sha1",
438 "wagon-providers-1.0-alpha-3-20050419.044035-2.pom",
439 "wagon-providers-1.0-alpha-3-20050419.044035-2.pom.md5",
440 "wagon-providers-1.0-alpha-3-20050419.044035-2.pom.sha1",
441 "wagon-providers-1.0-alpha-3-20050421.162738-3.pom",
442 "wagon-providers-1.0-alpha-3-20050421.162738-3.pom.md5",
443 "wagon-providers-1.0-alpha-3-20050421.162738-3.pom.sha1",
444 "wagon-providers-1.0-alpha-3-20050422.075233-4.pom",
445 "wagon-providers-1.0-alpha-3-20050422.075233-4.pom.md5",
446 "wagon-providers-1.0-alpha-3-20050422.075233-4.pom.sha1",
447 "wagon-providers-1.0-alpha-3-20050429.051847-5.pom",
448 "wagon-providers-1.0-alpha-3-20050429.051847-5.pom.md5",
449 "wagon-providers-1.0-alpha-3-20050429.051847-5.pom.sha1",
450 "wagon-providers/",
451 "wagon-scm/",
452 "wagon-ssh-external/",
453 "wagon-ssh/",
454 "wagon-webdav/",
455 "wagon/" };
456
457 assertContainsExpected( links, expected );
458
459 String[] avoided = new String[] {
460 "/org/codehaus/",
461 "?C=S;O=A",
462 "?C=D;O=A",
463 "?C=M;O=A",
464 "mailto:mirror.admin@mirror.com" };
465
466 assertNotContainingAvoided( links, avoided );
467 }
468
469
470
471
472
473
474
475 public void testParseNekoHtml()
476 throws TransferFailedException
477 {
478 List
479
480 String[] expected = new String[] {
481 "nekohtml-1.9.6-javadoc.jar",
482 "nekohtml-1.9.6-javadoc.jar.md5",
483 "nekohtml-1.9.6-javadoc.jar.sha1",
484 "nekohtml-1.9.6-sources.jar",
485 "nekohtml-1.9.6-sources.jar.md5",
486 "nekohtml-1.9.6-sources.jar.sha1",
487 "nekohtml-1.9.6.jar",
488 "nekohtml-1.9.6.jar.md5",
489 "nekohtml-1.9.6.jar.sha1",
490 "nekohtml-1.9.6.pom",
491 "nekohtml-1.9.6.pom.md5",
492 "nekohtml-1.9.6.pom.sha1" };
493
494 assertContainsExpected( links, expected );
495
496 String[] avoided = new String[] { "/maven2/nekohtml/nekohtml/", "?C=S;O=A", "?C=D;O=A", "?C=M;O=A" };
497
498 assertNotContainingAvoided( links, avoided );
499 }
500
501
502
503
504
505
506 public void testParseNetSourceforge()
507 throws TransferFailedException
508 {
509 List
510
511 String[] expected = new String[] {
512 "a2j/",
513 "aislib/",
514 "alchim/",
515 "antenna/",
516 "apt-jelly/",
517 "beanlib/",
518 "bluecove/",
519 "buildbox/",
520 "click/",
521 "clirr/",
522 "datavision/",
523 "dozer/",
524 "dtddoc/",
525 "dynpageplus/",
526 "ehcache/",
527 "ezmorph/",
528 "falcon/",
529 "grester/",
530 "gwt-widget/",
531 "hermesftp/",
532 "hibernate/",
533 "jcharts/",
534 "jdatabaseimport/",
535 "jeceira/",
536 "jfcunit/",
537 "jfig/",
538 "jguard/",
539 "jipcam/",
540 "jlynx/",
541 "jour/",
542 "jpf/",
543 "json-lib/",
544 "jsptest/",
545 "jsr107cache/",
546 "jt400/",
547 "jxls/",
548 "kxml/",
549 "ldaptemplate/",
550 "locale4j/",
551 "mapasuta/",
552 "maven-har/",
553 "maven-sar/",
554 "opencsv/",
555 "oval/",
556 "proguard/",
557 "qdwizard/",
558 "resultsetmapper/",
559 "retrotranslator/",
560 "saxon/",
561 "shadesdb/",
562 "smc/",
563 "speculoos/",
564 "springlayout/",
565 "stat-scm/",
566 "statsvn/",
567 "stax/",
568 "struts/",
569 "tacos/",
570 "testextensions/",
571 "webdav-servlet/" };
572
573 assertContainsExpected( links, expected );
574
575 String[] avoided = new String[] { "/maven2/net/", "?C=S;O=A", "?C=D;O=A", "?C=M;O=A" };
576
577 assertNotContainingAvoided( links, avoided );
578 }
579
580
581
582
583
584
585 public void testParseOrgCodehaus()
586 throws TransferFailedException
587 {
588 List
589
590 String[] expected = new String[] {
591 "agilifier/",
592 "benji/",
593 "bruce/",
594 "btm/",
595 "cargo/",
596 "castor-spring/",
597 "castor/",
598 "cozmos/",
599 "dataforge/",
600 "dimple/",
601 "droolsdotnet/",
602 "enunciate/",
603 "fabric3/",
604 "gant/",
605 "grails-plugins/",
606 "groovy/",
607 "gsoc/",
608 "guessencoding/",
609 "gumtree/",
610 "gwt-openlayers/",
611 "haus/",
612 "izpack/",
613 "javasim/",
614 "jedi/",
615 "jequel/",
616 "jet/",
617 "jettison/",
618 "jfdi/",
619 "jikesrvm/",
620 "jra/",
621 "jremoting/",
622 "jtestme/",
623 "jtestr/",
624 "labs-ng/",
625 "logicabyss/",
626 "marionette/",
627 "mevenide/",
628 "modello/",
629 "mojo/",
630 "mvel/",
631 "mvflex/",
632 "native-mojo/",
633 "openim/",
634 "plexus/",
635 "polymap/",
636 "prometheus/",
637 "prophit/",
638 "quaere/",
639 "redback/",
640 "rulessandpit/",
641 "rvm/",
642 "savana/",
643 "scala-ide/",
644 "senro/",
645 "sonar/",
646 "staxmate/",
647 "stomp/",
648 "svn4j/",
649 "swiby/",
650 "swizzle/",
651 "sxc/",
652 "testdox/",
653 "wadi/",
654 "waffle/",
655 "woodstox/",
656 "xdoclet/",
657 "xfire/",
658 "xharness/",
659 "xsite/",
660 "xstream/",
661 "xwire/" };
662
663 assertContainsExpected( links, expected );
664
665 String[] avoided = new String[] { "/org/", "?C=S;O=A", "?C=D;O=A", "?C=M;O=A" };
666
667 assertNotContainingAvoided( links, avoided );
668 }
669
670
671
672
673
674
675
676 public void testParsePeopleApacheOrg()
677 throws TransferFailedException
678 {
679 List
680 "http://people.apache.org/repo/m2-ibiblio-rsync-repository/org/apache/maven/archiva/archiva-plexus-runtime/1.0.1/",
681 "org.apache.maven.html" );
682
683 String[] expected = new String[] {
684 "archiva-plexus-runtime-1.0.1-bin.tar.gz",
685 "archiva-plexus-runtime-1.0.1-bin.tar.gz.asc",
686 "archiva-plexus-runtime-1.0.1-bin.tar.gz.asc.md5",
687 "archiva-plexus-runtime-1.0.1-bin.tar.gz.asc.sha1",
688 "archiva-plexus-runtime-1.0.1-bin.tar.gz.md5",
689 "archiva-plexus-runtime-1.0.1-bin.tar.gz.sha1",
690 "archiva-plexus-runtime-1.0.1-bin.zip",
691 "archiva-plexus-runtime-1.0.1-bin.zip.asc",
692 "archiva-plexus-runtime-1.0.1-bin.zip.asc.md5",
693 "archiva-plexus-runtime-1.0.1-bin.zip.asc.sha1",
694 "archiva-plexus-runtime-1.0.1-bin.zip.md5",
695 "archiva-plexus-runtime-1.0.1-bin.zip.sha1",
696 "archiva-plexus-runtime-1.0.1-sources.jar",
697 "archiva-plexus-runtime-1.0.1-sources.jar.asc",
698 "archiva-plexus-runtime-1.0.1-sources.jar.asc.md5",
699 "archiva-plexus-runtime-1.0.1-sources.jar.asc.sha1",
700 "archiva-plexus-runtime-1.0.1-sources.jar.md5",
701 "archiva-plexus-runtime-1.0.1-sources.jar.sha1",
702 "archiva-plexus-runtime-1.0.1.jar",
703 "archiva-plexus-runtime-1.0.1.jar.asc",
704 "archiva-plexus-runtime-1.0.1.jar.asc.md5",
705 "archiva-plexus-runtime-1.0.1.jar.asc.sha1",
706 "archiva-plexus-runtime-1.0.1.jar.md5",
707 "archiva-plexus-runtime-1.0.1.jar.sha1",
708 "archiva-plexus-runtime-1.0.1.pom",
709 "archiva-plexus-runtime-1.0.1.pom.asc",
710 "archiva-plexus-runtime-1.0.1.pom.asc.md5",
711 "archiva-plexus-runtime-1.0.1.pom.asc.sha1",
712 "archiva-plexus-runtime-1.0.1.pom.md5",
713 "archiva-plexus-runtime-1.0.1.pom.sha1",
714 "readme artifacts.txt"};
715
716 assertContainsExpected( links, expected );
717
718 String[] avoided = new String[] {
719 "/repo/m2-ibiblio-rsync-repository/org/apache/maven/archiva/archiva-plexus-runtime/",
720 "?C=S;O=A",
721 "?C=D;O=A",
722 "?C=M;O=A" };
723
724 assertNotContainingAvoided( links, avoided );
725 }
726 }