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.List;
25
26 import junit.framework.TestCase;
27
28 import org.apache.log4j.Logger;
29 import org.apache.maven.wagon.TransferFailedException;
30
31
32
33
34 public class HtmlFileListParserTest
35 extends TestCase
36 {
37 private static Logger logger = Logger.getLogger( HtmlFileListParserTest.class );
38
39 private void assertContainsExpected( List<String> links, String[] expected )
40 {
41 if ( expected.length != links.size() )
42 {
43 Collections.sort( links );
44 for ( String link : links )
45 {
46 logger.info(" \"" + link + "\", ");
47 }
48 assertEquals( "Links to Expected size", expected.length, links.size() );
49 }
50
51 for ( String exp : expected )
52 {
53 assertTrue( "Should find [" + exp + "] in link list", links.contains( exp ) );
54 }
55 }
56
57 private void assertNotContainingAvoided( List<String> links, String[] avoided )
58 {
59 for ( String a : avoided )
60 {
61 assertFalse( "Should not find [" + a + "] in link list", links.contains( a ) );
62 }
63 }
64
65 private List<String> parseLinks( String url, String filename )
66 throws TransferFailedException
67 {
68 InputStream is = this.getClass().getResourceAsStream( "/filelistings/" + filename );
69 List<String> files = HtmlFileListParser.parseFileList( url, is );
70
71 assertNotNull( "file list should not be null.", files );
72 assertFalse( "file list should not be empty.", files.isEmpty() );
73
74
75 if ( false )
76 {
77 for ( String file : files )
78 {
79 logger.info( "File: '" + file + "'" );
80 }
81 }
82
83 return files;
84 }
85
86
87
88
89
90
91 public void testParseCommonsLang()
92 throws TransferFailedException
93 {
94 List<String> links = parseLinks( "http://localhost/repository/commons-lang/commons-lang/2.3",
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<String> links = parseLinks( "http://www.ibiblio.org/maven2/org/apache/maven/wagon/",
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<String> links = parseLinks( "http://www.ibiblio.org/maven2/org/apache/maven/wagon/",
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<String> links = parseLinks( "http://www.ibiblio.org/maven2/org/apache/maven/wagon//",
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<String> links = parseLinks( "http://repository.codehaus.org/org/codehaus/mevenide/", "mevenide.html" );
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<String> links = parseLinks( "http://www.ibiblio.org/maven2/org/apache/maven/wagon/",
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<String> links = parseLinks( "http://repo1.maven.org//maven2/nekohtml/nekohtml/1.9.6/", "nekohtml.html" );
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<String> links = parseLinks( "http://repo1.maven.org/maven2/net/sf/", "net_sf.html" );
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<String> links = parseLinks( "http://repository.codehaus.org/org/codehaus", "org.codehaus.html" );
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<String> links = parseLinks(
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 }