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 @Test
10 public void testNormaliseAndVerifySimple() {
11 assertEquals("simple", normaliseAndVerify("simple"));
12 }
13
14 @Test
15 public void testNormaliseAndVerifySubdir() {
16 assertEquals("subdir/file", normaliseAndVerify("subdir/file"));
17 }
18
19 @Test
20 public void testNormaliseAndVerifyRelativeSimple() {
21 assertEquals("test-relative.txt", normaliseAndVerify("something/../test-relative.txt"));
22 }
23
24 @Test
25 public void testNormaliseAndVerifyRelativeComplex() {
26 assertEquals("test-relative.txt", normaliseAndVerify("./something/.././test-relative.txt"));
27 }
28
29 @Test(expected = IllegalArgumentException.class)
30 public void testNormaliseAndVerifyIllegalRelative() {
31 normaliseAndVerify("something/../../test-relative.txt");
32 }
33
34 @Test(expected = IllegalArgumentException.class)
35 public void testNormaliseAndVerifyIllegalRelativeTrailingDots() {
36 normaliseAndVerify("something/../test-relative.txt/..");
37 }
38
39 @Test(expected = IllegalArgumentException.class)
40 public void testNormaliseAndVerifyIllegalRelativeLeadingSlash() {
41 normaliseAndVerify("/something/../../test-relative.txt");
42 }
43
44 @Test(expected = IllegalArgumentException.class)
45 public void testNormaliseAndVerifyIllegalRelativeLeadingDots() {
46 normaliseAndVerify("../test-relative.txt");
47 }
48
49 @Test(expected = IllegalArgumentException.class)
50 public void testNormaliseAndVerifyIllegalRelativeLeadingSeriesOfDots() {
51 normaliseAndVerify("./../test-relative.txt");
52 }
53 }