1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 package org.eclipse.jgit.util;
45
46 import static org.junit.Assert.assertEquals;
47
48 import java.util.Date;
49 import java.util.TimeZone;
50
51 import org.eclipse.jgit.lib.PersonIdent;
52 import org.junit.Test;
53
54 public class RawParseUtils_ParsePersonIdentTest {
55
56 @Test
57 public void testParsePersonIdent_legalCases() {
58 final Date when = new Date(1234567890000l);
59 final TimeZone tz = TimeZone.getTimeZone("GMT-7");
60
61 assertPersonIdent("Me <me@example.com> 1234567890 -0700",
62 new PersonIdent("Me", "me@example.com", when, tz));
63
64 assertPersonIdent(" Me <me@example.com> 1234567890 -0700",
65 new PersonIdent(" Me", "me@example.com", when, tz));
66
67 assertPersonIdent("A U Thor <author@example.com> 1234567890 -0700",
68 new PersonIdent("A U Thor", "author@example.com", when, tz));
69
70 assertPersonIdent("A U Thor<author@example.com> 1234567890 -0700",
71 new PersonIdent("A U Thor", "author@example.com", when, tz));
72
73 assertPersonIdent("A U Thor<author@example.com>1234567890 -0700",
74 new PersonIdent("A U Thor", "author@example.com", when, tz));
75
76 assertPersonIdent(
77 " A U Thor < author@example.com > 1234567890 -0700",
78 new PersonIdent(" A U Thor ", " author@example.com ", when, tz));
79
80 assertPersonIdent("A U Thor<author@example.com>1234567890 -0700",
81 new PersonIdent("A U Thor", "author@example.com", when, tz));
82 }
83
84 @Test
85 public void testParsePersonIdent_fuzzyCases() {
86 final Date when = new Date(1234567890000l);
87 final TimeZone tz = TimeZone.getTimeZone("GMT-7");
88
89 assertPersonIdent(
90 "A U Thor <author@example.com>, C O. Miter <comiter@example.com> 1234567890 -0700",
91 new PersonIdent("A U Thor", "author@example.com", when, tz));
92
93 assertPersonIdent(
94 "A U Thor <author@example.com> and others 1234567890 -0700",
95 new PersonIdent("A U Thor", "author@example.com", when, tz));
96 }
97
98 @Test
99 public void testParsePersonIdent_incompleteCases() {
100 final Date when = new Date(1234567890000l);
101 final TimeZone tz = TimeZone.getTimeZone("GMT-7");
102
103 assertPersonIdent("Me <> 1234567890 -0700", new PersonIdent("Me", "",
104 when, tz));
105
106 assertPersonIdent(" <me@example.com> 1234567890 -0700",
107 new PersonIdent("", "me@example.com", when, tz));
108
109 assertPersonIdent(" <> 1234567890 -0700", new PersonIdent("", "", when,
110 tz));
111
112 assertPersonIdent("<>", new PersonIdent("", "", 0, 0));
113
114 assertPersonIdent(" <>", new PersonIdent("", "", 0, 0));
115
116 assertPersonIdent("<me@example.com>", new PersonIdent("",
117 "me@example.com", 0, 0));
118
119 assertPersonIdent(" <me@example.com>", new PersonIdent("",
120 "me@example.com", 0, 0));
121
122 assertPersonIdent("Me <>", new PersonIdent("Me", "", 0, 0));
123
124 assertPersonIdent("Me <me@example.com>", new PersonIdent("Me",
125 "me@example.com", 0, 0));
126
127 assertPersonIdent("Me <me@example.com> 1234567890", new PersonIdent(
128 "Me", "me@example.com", 0, 0));
129
130 assertPersonIdent("Me <me@example.com> 1234567890 ", new PersonIdent(
131 "Me", "me@example.com", 0, 0));
132 }
133
134 @Test
135 public void testParsePersonIdent_malformedCases() {
136 assertPersonIdent("Me me@example.com> 1234567890 -0700", null);
137 assertPersonIdent("Me <me@example.com 1234567890 -0700", null);
138 }
139
140 private static void assertPersonIdent(String line, PersonIdent expected) {
141 PersonIdent actual = RawParseUtils.parsePersonIdent(line);
142 assertEquals(expected, actual);
143 }
144 }