1 package com.atlassian.plugin.util.zip;
2
3 import org.junit.Test;
4
5 import static com.atlassian.plugin.util.zip.AbstractUnzipper.normaliseAndVerify;
6 import static org.junit.Assert.assertEquals;
7
8 public class AbstractUnzipperTest
9 {
10 @Test
11 public void testNormaliseAndVerifySimple()
12 {
13 assertEquals("simple", normaliseAndVerify("simple"));
14 }
15
16 @Test
17 public void testNormaliseAndVerifySubdir()
18 {
19 assertEquals("subdir/file", normaliseAndVerify("subdir/file"));
20 }
21
22 @Test
23 public void testNormaliseAndVerifyRelativeSimple()
24 {
25 assertEquals("test-relative.txt", normaliseAndVerify("something/../test-relative.txt"));
26 }
27
28 @Test
29 public void testNormaliseAndVerifyRelativeComplex()
30 {
31 assertEquals("test-relative.txt", normaliseAndVerify("./something/.././test-relative.txt"));
32 }
33
34 @Test(expected=IllegalArgumentException.class)
35 public void testNormaliseAndVerifyIllegalRelative()
36 {
37 normaliseAndVerify("something/../../test-relative.txt");
38 }
39
40 @Test(expected=IllegalArgumentException.class)
41 public void testNormaliseAndVerifyIllegalRelativeTrailingDots()
42 {
43 normaliseAndVerify("something/../test-relative.txt/..");
44 }
45
46 @Test(expected=IllegalArgumentException.class)
47 public void testNormaliseAndVerifyIllegalRelativeLeadingSlash()
48 {
49 normaliseAndVerify("/something/../../test-relative.txt");
50 }
51
52 @Test(expected=IllegalArgumentException.class)
53 public void testNormaliseAndVerifyIllegalRelativeLeadingDots()
54 {
55 normaliseAndVerify("../test-relative.txt");
56 }
57
58 @Test(expected=IllegalArgumentException.class)
59 public void testNormaliseAndVerifyIllegalRelativeLeadingSeriesOfDots()
60 {
61 normaliseAndVerify("./../test-relative.txt");
62 }
63 }