]> WPIA git - gigi.git/blob - tests/org/cacert/gigi/TestUser.java
UPD: Stricter name part handling
[gigi.git] / tests / org / cacert / gigi / TestUser.java
1 package org.cacert.gigi;
2
3 import static org.junit.Assert.*;
4
5 import java.sql.Date;
6 import java.sql.SQLException;
7 import java.util.Locale;
8
9 import org.cacert.gigi.dbObjects.Assurance;
10 import org.cacert.gigi.dbObjects.Domain;
11 import org.cacert.gigi.dbObjects.EmailAddress;
12 import org.cacert.gigi.dbObjects.Name;
13 import org.cacert.gigi.dbObjects.User;
14 import org.cacert.gigi.localisation.Language;
15 import org.cacert.gigi.testUtils.ManagedTest;
16 import org.junit.Test;
17
18 public class TestUser extends ManagedTest {
19
20     @Test
21     public void testStoreAndLoad() throws SQLException {
22         User u = new User();
23         u.setName(new Name("user", "last", "", ""));
24         u.setPreferredLocale(Locale.ENGLISH);
25         long dob = System.currentTimeMillis();
26         dob -= dob % (1000 * 60 * 60 * 24);
27         u.setDoB(new java.sql.Date(dob));
28         u.setEmail(createUniqueName() + "a@email.org");
29         u.insert("password");
30         int id = u.getId();
31         User u2 = User.getById(id);
32         assertEquals(u.getName(), u2.getName());
33         assertEquals(u.getDoB().toString(), u2.getDoB().toString());
34         assertEquals(u.getEmail(), u2.getEmail());
35     }
36
37     @Test
38     public void testWebStoreAndLoad() throws SQLException {
39         int id = createVerifiedUser("aä", "b", createUniqueName() + "a@email.org", TEST_PASSWORD);
40
41         Name u = User.getById(id).getName();
42
43         assertEquals("aä", u.getFname());
44         assertEquals("b", u.getLname());
45         assertEquals("", u.getMname());
46     }
47
48     @Test
49     public void testAssurerUtilMethods() throws SQLException {
50         int id = createAssuranceUser("aä", "b", createUniqueName() + "a@email.org", TEST_PASSWORD);
51
52         User u = User.getById(id);
53         assertTrue(u.canAssure());
54         int assurancePoints = u.getAssurancePoints();
55         int expPoints = u.getExperiencePoints();
56         assertEquals(100, assurancePoints);
57         assertEquals(2, expPoints);
58         assertTrue(u.hasPassedCATS());
59         assertEquals(10, u.getMaxAssurePoints());
60         Name name = u.getName();
61         assertEquals("aä", name.getFname());
62         assertEquals("b", name.getLname());
63         assertEquals("", name.getMname());
64     }
65
66     @Test
67     public void testMatcherMethods() throws SQLException, GigiApiException {
68         String uq = createUniqueName();
69         int id = createVerifiedUser("aä", "b", uq + "a@email.org", TEST_PASSWORD);
70
71         User u = User.getById(id);
72         new EmailAddress(u, uq + "b@email.org").insert(Language.getInstance(Locale.ENGLISH));
73         new EmailAddress(u, uq + "c@email.org").insert(Language.getInstance(Locale.ENGLISH));
74         new Domain(u, uq + "a-testdomain.org").insert();
75         new Domain(u, uq + "b-testdomain.org").insert();
76         new Domain(u, uq + "c-testdomain.org").insert();
77         assertEquals(3, u.getEmails().length);
78         assertEquals(3, u.getDomains().length);
79         assertTrue(u.isValidDomain(uq + "a-testdomain.org"));
80         assertTrue(u.isValidDomain(uq + "b-testdomain.org"));
81         assertTrue(u.isValidDomain(uq + "c-testdomain.org"));
82         assertTrue(u.isValidDomain("a." + uq + "a-testdomain.org"));
83         assertTrue(u.isValidDomain("*." + uq + "a-testdomain.org"));
84         assertFalse(u.isValidDomain("a" + uq + "a-testdomain.org"));
85         assertFalse(u.isValidDomain("b" + uq + "a-testdomain.org"));
86
87         assertTrue(u.isValidEmail(uq + "a@email.org"));
88         assertTrue(u.isValidEmail(uq + "b@email.org"));
89         assertFalse(u.isValidEmail(uq + "b+6@email.org"));
90         assertFalse(u.isValidEmail(uq + "b*@email.org"));
91
92         assertTrue(u.isValidName("aä b"));
93         assertFalse(u.isValidName("aä c"));
94         assertFalse(u.isValidName("aä d b"));
95
96     }
97
98     @Test
99     public void testDoubleInsert() {
100         User u = new User();
101         u.setName(new Name("f", "k", "m", "s"));
102         u.setEmail(createUniqueName() + "@example.org");
103         u.setDoB(new Date(System.currentTimeMillis() + 1000 * 60 * 60 * 24 * 365));
104         u.setPreferredLocale(Locale.ENGLISH);
105         u.insert(TEST_PASSWORD);
106         try {
107             u.insert(TEST_PASSWORD);
108             fail("Error expected");
109         } catch (Error e) {
110             // expected
111         }
112         Assurance[] ma = u.getMadeAssurances();
113         Assurance[] ma2 = u.getMadeAssurances();
114         Assurance[] ra = u.getReceivedAssurances();
115         Assurance[] ra2 = u.getReceivedAssurances();
116         assertEquals(0, u.getCertificates(false).length);
117         assertEquals(0, ma.length);
118         assertEquals(0, ma2.length);
119         assertEquals(0, ra.length);
120         assertEquals(0, ra2.length);
121         assertSame(ma, ma2);
122         assertSame(ra, ra2);
123     }
124
125     @Test
126     public void testGetByMail() {
127         String email = createUniqueName() + "a@email.org";
128         int id = createVerifiedUser("aä", "b", email, TEST_PASSWORD);
129         User emailUser = User.getByEmail(email);
130         User u = User.getById(id);
131         assertSame(u, emailUser);
132     }
133
134 }