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.lib;
45
46 import static org.junit.Assert.assertEquals;
47 import static org.junit.Assert.assertTrue;
48
49 import java.util.Date;
50 import java.util.TimeZone;
51
52 import org.junit.Test;
53
54 public class T0001_PersonIdentTest {
55
56 @Test
57 public void test001_NewIdent() {
58 final PersonIdent p = new PersonIdent("A U Thor", "author@example.com",
59 new Date(1142878501000L), TimeZone.getTimeZone("EST"));
60 assertEquals("A U Thor", p.getName());
61 assertEquals("author@example.com", p.getEmailAddress());
62 assertEquals(1142878501000L, p.getWhen().getTime());
63 assertEquals("A U Thor <author@example.com> 1142878501 -0500",
64 p.toExternalString());
65 }
66
67 @Test
68 public void test002_NewIdent() {
69 final PersonIdent p = new PersonIdent("A U Thor", "author@example.com",
70 new Date(1142878501000L), TimeZone.getTimeZone("GMT+0230"));
71 assertEquals("A U Thor", p.getName());
72 assertEquals("author@example.com", p.getEmailAddress());
73 assertEquals(1142878501000L, p.getWhen().getTime());
74 assertEquals("A U Thor <author@example.com> 1142878501 +0230",
75 p.toExternalString());
76 }
77
78 @SuppressWarnings("unused")
79 @Test(expected = IllegalArgumentException.class)
80 public void nullForNameShouldThrowIllegalArgumentException() {
81 new PersonIdent(null, "author@example.com");
82 }
83
84 @SuppressWarnings("unused")
85 @Test(expected = IllegalArgumentException.class)
86 public void nullForEmailShouldThrowIllegalArgumentException() {
87 new PersonIdent("A U Thor", null);
88 }
89
90 @Test
91 public void testToExternalStringTrimsNameAndEmail() throws Exception {
92 PersonIdent personIdent = new PersonIdent(" \u0010A U Thor ",
93 " author@example.com \u0009");
94
95 assertEquals(" \u0010A U Thor ", personIdent.getName());
96 assertEquals(" author@example.com \u0009", personIdent.getEmailAddress());
97
98 String externalString = personIdent.toExternalString();
99 assertTrue(externalString.startsWith("A U Thor <author@example.com>"));
100 }
101
102 @Test
103 public void testToExternalStringTrimsAllWhitespace() {
104 String ws = " \u0001 \n ";
105 PersonIdent personIdent = new PersonIdent(ws, ws);
106 assertEquals(ws, personIdent.getName());
107 assertEquals(ws, personIdent.getEmailAddress());
108
109 String externalString = personIdent.toExternalString();
110 assertTrue(externalString.startsWith(" <>"));
111 }
112
113 @Test
114 public void testToExternalStringTrimsOtherBadCharacters() {
115 String name = " Foo\r\n<Bar> ";
116 String email = " Baz>\n\u1234<Quux ";
117 PersonIdent personIdent = new PersonIdent(name, email);
118 assertEquals(name, personIdent.getName());
119 assertEquals(email, personIdent.getEmailAddress());
120
121 String externalString = personIdent.toExternalString();
122 assertTrue(externalString.startsWith("Foo\rBar <Baz\u1234Quux>"));
123 }
124
125 @Test
126 public void testEmptyNameAndEmail() {
127 PersonIdent personIdent = new PersonIdent("", "");
128 assertEquals("", personIdent.getName());
129 assertEquals("", personIdent.getEmailAddress());
130
131 String externalString = personIdent.toExternalString();
132 assertTrue(externalString.startsWith(" <>"));
133 }
134
135 @Test
136 public void testAppendSanitized() {
137 StringBuilder r = new StringBuilder();
138 PersonIdent.appendSanitized(r, " Baz>\n\u1234<Quux ");
139 assertEquals("Baz\u1234Quux", r.toString());
140 }
141 }
142