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