1 package org.apache.maven.model.path;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import junit.framework.TestCase;
23
24
25
26
27 public class DefaultUrlNormalizerTest
28 extends TestCase
29 {
30
31 private UrlNormalizer normalizer;
32
33 @Override
34 protected void setUp()
35 throws Exception
36 {
37 super.setUp();
38
39 normalizer = new DefaultUrlNormalizer();
40 }
41
42 @Override
43 protected void tearDown()
44 throws Exception
45 {
46 normalizer = null;
47
48 super.tearDown();
49 }
50
51 private String normalize( String url )
52 {
53 return normalizer.normalize( url );
54 }
55
56 public void testNullSafe()
57 {
58 assertNull( normalize( null ) );
59 }
60
61 public void testTrailingSlash()
62 {
63 assertEquals( "", normalize( "" ) );
64 assertEquals( "http://server.org/dir", normalize( "http://server.org/dir" ) );
65 assertEquals( "http://server.org/dir/", normalize( "http://server.org/dir/" ) );
66 }
67
68 public void testRemovalOfParentRefs()
69 {
70 assertEquals( "http://server.org/child", normalize( "http://server.org/parent/../child" ) );
71 assertEquals( "http://server.org/child", normalize( "http://server.org/grand/parent/../../child" ) );
72
73 assertEquals( "http://server.org//child", normalize( "http://server.org/parent/..//child" ) );
74 assertEquals( "http://server.org/child", normalize( "http://server.org/parent//../child" ) );
75 }
76
77 public void testPreservationOfDoubleSlashes()
78 {
79 assertEquals( "scm:hg:ssh://localhost//home/user", normalize( "scm:hg:ssh://localhost//home/user" ) );
80 assertEquals( "file:////UNC/server", normalize( "file:////UNC/server" ) );
81 assertEquals( "[fetch=]http://server.org/[push=]ssh://server.org/",
82 normalize( "[fetch=]http://server.org/[push=]ssh://server.org/" ) );
83 }
84
85 }