1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package nl.hippo.client.webdav.caching;
17
18 import java.io.InputStream;
19
20 import junit.framework.TestCase;
21 import nl.hippo.client.api.content.DocumentPath;
22 import nl.hippo.client.api.event.EventValidity;
23 import nl.hippo.client.api.event.EventValidityImpl;
24 import nl.hippo.client.webdav.WebdavConfig;
25 import nl.hippo.client.webdav.WebdavConfigFactory;
26 import nl.hippo.client.webdav.WebdavRequest;
27 import nl.hippo.client.webdav.utils.Converters;
28
29 public class EventValidityCalculatorTest extends TestCase {
30
31 public void setUp() throws Exception {
32 }
33
34 public void testTwoRelativeScopes() throws Exception {
35 InputStream is = EventValidityCalculatorTest.class
36 .getResourceAsStream("resources/dasl-two-relative-scopes.xml");
37 String dasl = Converters.stream2String(is, "UTF-8");
38
39 WebdavConfigFactory fact = new WebdavConfigFactory();
40 fact.setNamespace("default");
41 fact.setFilespath("files/default.preview/");
42 WebdavConfig conf = new WebdavConfig(fact);
43
44 DocumentPath path = conf.getBasePath().createRelativePath("/aap/noot/mies");
45
46 WebdavRequest request = new WebdavRequest(conf, path, "TEST", dasl);
47
48 EventValidity[] validities = EventValidityCalculator.calculate(request);
49
50 assertEquals(new EventValidityImpl("/default/files/default.preview/aap/noot/mies/foo/bar"), validities[0]);
51 assertEquals(new EventValidityImpl("/default/files/default.preview/aap/noot/mies/binaries/pdf"), validities[1]);
52 assertTrue(validities.length == 2);
53 }
54
55 public void testOneAbsoluteOneRelativeScope() throws Exception {
56 InputStream is = EventValidityCalculatorTest.class
57 .getResourceAsStream("resources/dasl-one-absolute-one-relative-scope.xml");
58 String dasl = Converters.stream2String(is, "UTF-8");
59
60 WebdavConfigFactory fact = new WebdavConfigFactory();
61 fact.setNamespace("default");
62 fact.setFilespath("files/default.preview/");
63 WebdavConfig conf = new WebdavConfig(fact);
64
65 DocumentPath path = conf.getBasePath().createRelativePath("/aap/noot/mies");
66
67 WebdavRequest request = new WebdavRequest(conf, path, "TEST", dasl);
68
69 EventValidity[] validities = EventValidityCalculator.calculate(request);
70
71 assertEquals(new EventValidityImpl("/default/files/default.preview/aap/noot"), validities[0]);
72 assertEquals(new EventValidityImpl("/default/files/default.preview/aap/noot/mies/binaries/pdf"), validities[1]);
73 assertTrue(validities.length == 2);
74 }
75
76 public void testOneAbsoluteOneRelativeScopeTrailingSlash() throws Exception {
77 InputStream is = EventValidityCalculatorTest.class
78 .getResourceAsStream("resources/dasl-one-absolute-one-relative-scope-trailing-slash.xml");
79 String dasl = Converters.stream2String(is, "UTF-8");
80
81 WebdavConfigFactory fact = new WebdavConfigFactory();
82 fact.setNamespace("default");
83 fact.setFilespath("files/default.preview/");
84 WebdavConfig conf = new WebdavConfig(fact);
85
86 DocumentPath path = conf.getBasePath().createRelativePath("/aap/noot/mies");
87
88 WebdavRequest request = new WebdavRequest(conf, path, "TEST", dasl);
89
90 EventValidity[] validities = EventValidityCalculator.calculate(request);
91
92 assertEquals(new EventValidityImpl("/default/files/default.preview/aap/noot"), validities[0]);
93 assertEquals(new EventValidityImpl("/default/files/default.preview/aap/noot/mies/binaries/pdf"), validities[1]);
94 assertTrue(validities.length == 2);
95 }
96
97 public void testTwoAbsoluteScopes() throws Exception {
98 InputStream is = EventValidityCalculatorTest.class
99 .getResourceAsStream("resources/dasl-two-absolute-scopes.xml");
100 String dasl = Converters.stream2String(is, "UTF-8");
101
102 WebdavConfigFactory fact = new WebdavConfigFactory();
103 fact.setNamespace("default");
104 fact.setFilespath("files/default.preview/");
105 WebdavConfig conf = new WebdavConfig(fact);
106
107 DocumentPath path = conf.getBasePath().createRelativePath("/aap/noot/mies");
108
109 WebdavRequest request = new WebdavRequest(conf, path, "TEST", dasl);
110
111 EventValidity[] validities = EventValidityCalculator.calculate(request);
112
113 assertEquals(new EventValidityImpl("/aap/noot/mies"), validities[0]);
114 assertEquals(new EventValidityImpl("/foo/bar"), validities[1]);
115 assertTrue(validities.length == 2);
116 }
117
118 public void testOneEmptyScope() throws Exception {
119 InputStream is = EventValidityCalculatorTest.class
120 .getResourceAsStream("resources/dasl-one-empty-scope.xml");
121 String dasl = Converters.stream2String(is, "UTF-8");
122
123 WebdavConfigFactory fact = new WebdavConfigFactory();
124 fact.setNamespace("default");
125 fact.setFilespath("files/default.preview/");
126 WebdavConfig conf = new WebdavConfig(fact);
127
128 DocumentPath path = conf.getBasePath().createRelativePath("/content/documents");
129
130 WebdavRequest request = new WebdavRequest(conf, path, "TEST", dasl);
131
132 EventValidity[] validities = EventValidityCalculator.calculate(request);
133
134 assertEquals(new EventValidityImpl("/default/files/default.preview/content/documents"), validities[0]);
135 assertTrue(validities.length == 1);
136 }
137
138
139 public void testOneEmptyScopeOneRelativeScope() throws Exception {
140 InputStream is = EventValidityCalculatorTest.class
141 .getResourceAsStream("resources/dasl-one-empty-scope-one-relative-scope.xml");
142 String dasl = Converters.stream2String(is, "UTF-8");
143
144 WebdavConfigFactory fact = new WebdavConfigFactory();
145 fact.setNamespace("default");
146 fact.setFilespath("files/default.preview/");
147 WebdavConfig conf = new WebdavConfig(fact);
148
149 DocumentPath path = conf.getBasePath().createRelativePath("/content/documents");
150
151 WebdavRequest request = new WebdavRequest(conf, path, "TEST", dasl);
152
153 EventValidity[] validities = EventValidityCalculator.calculate(request);
154
155 assertEquals(new EventValidityImpl("/default/files/default.preview/content/documents"), validities[0]);
156 assertEquals(new EventValidityImpl("/default/files/default.preview/content/documents/binaries/pdf"), validities[1]);
157 assertTrue(validities.length == 2);
158 }
159
160
161 public void testOneEmptyScopeOneAbsoluteScope() throws Exception {
162 InputStream is = EventValidityCalculatorTest.class
163 .getResourceAsStream("resources/dasl-one-empty-scope-one-absolute-scope.xml");
164 String dasl = Converters.stream2String(is, "UTF-8");
165
166 WebdavConfigFactory fact = new WebdavConfigFactory();
167 fact.setNamespace("default");
168 fact.setFilespath("files/default.preview/");
169 WebdavConfig conf = new WebdavConfig(fact);
170
171 DocumentPath path = conf.getBasePath().createRelativePath("/content/documents");
172
173 WebdavRequest request = new WebdavRequest(conf, path, "TEST", dasl);
174
175 EventValidity[] validities = EventValidityCalculator.calculate(request);
176
177 assertEquals(new EventValidityImpl("/default/files/default.preview/content/documents"), validities[0]);
178 assertEquals(new EventValidityImpl("/default/files/default.preview/content/documents/bulk"), validities[1]);
179 assertTrue(validities.length == 2);
180 }
181
182 }