1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.commons.configuration.plist;
19
20 import static org.junit.Assert.assertEquals;
21
22 import java.io.Reader;
23 import java.util.Calendar;
24 import java.util.SimpleTimeZone;
25
26 import junitx.framework.ArrayAssert;
27
28 import org.junit.Test;
29
30
31
32
33
34 public class TestPropertyListParser
35 {
36 private PropertyListParser parser = new PropertyListParser((Reader) null);
37
38 @Test
39 public void testRemoveQuotes()
40 {
41 assertEquals("unquoted string", "abc", parser.removeQuotes("abc"));
42 assertEquals("quoted string", "abc", parser.removeQuotes("\"abc\""));
43 assertEquals("empty quotes", "", parser.removeQuotes("\"\""));
44 assertEquals("empty string", "", parser.removeQuotes(""));
45 assertEquals("null string", null, parser.removeQuotes(null));
46 }
47
48 @Test
49 public void testUnescapeQuotes()
50 {
51 assertEquals("non escaped quotes", "aaa\"bbb\"ccc", parser.unescapeQuotes("aaa\"bbb\"ccc"));
52 assertEquals("escaped quotes", "aaa\"bbb\"ccc", parser.unescapeQuotes("aaa\\\"bbb\\\"ccc"));
53 }
54
55 @Test
56 public void testParseDate() throws Exception
57 {
58 Calendar calendar = Calendar.getInstance();
59 calendar.set(Calendar.YEAR, 2002);
60 calendar.set(Calendar.MONTH, Calendar.MARCH);
61 calendar.set(Calendar.DAY_OF_MONTH, 22);
62 calendar.set(Calendar.HOUR_OF_DAY, 11);
63 calendar.set(Calendar.MINUTE, 30);
64 calendar.set(Calendar.SECOND, 0);
65 calendar.set(Calendar.MILLISECOND, 0);
66 calendar.setTimeZone(new SimpleTimeZone(60 * 60 * 1000, "Apache/Jakarta"));
67
68 assertEquals("parsed date", calendar.getTime(), parser.parseDate("<*D2002-03-22 11:30:00 +0100>"));
69 }
70
71 @Test
72 public void testFilterData() throws Exception
73 {
74 byte[] expected = new byte[] {0x20, 0x20};
75 ArrayAssert.assertEquals("null string", null, parser.filterData(null));
76 ArrayAssert.assertEquals("data with < >", expected, parser.filterData("<2020>"));
77 ArrayAssert.assertEquals("data without < >", expected, parser.filterData("2020"));
78 ArrayAssert.assertEquals("data with space", expected, parser.filterData("20 20"));
79 ArrayAssert.assertEquals("odd length", new byte[]{9, 0x20}, parser.filterData("920"));
80 }
81 }