1 package org.cacert.gigi;
3 import static org.junit.Assert.*;
6 import java.sql.SQLException;
7 import java.util.Locale;
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.User;
13 import org.cacert.gigi.localisation.Language;
14 import org.cacert.gigi.testUtils.ManagedTest;
15 import org.junit.Test;
17 public class TestUser extends ManagedTest {
20 public void testStoreAndLoad() throws SQLException {
26 u.setPreferredLocale(Locale.ENGLISH);
27 long dob = System.currentTimeMillis();
28 dob -= dob % (1000 * 60 * 60 * 24);
29 u.setDob(new java.sql.Date(dob));
30 u.setEmail(createUniqueName() + "a@email.org");
33 User u2 = User.getById(id);
38 public void testWebStoreAndLoad() throws SQLException {
39 int id = createVerifiedUser("aä", "b", createUniqueName() + "a@email.org", TEST_PASSWORD);
41 User u = User.getById(id);
42 assertEquals("aä", u.getFname());
43 assertEquals("b", u.getLname());
44 assertEquals("", u.getMname());
48 public void testAssurerUtilMethods() throws SQLException {
49 int id = createAssuranceUser("aä", "b", createUniqueName() + "a@email.org", TEST_PASSWORD);
51 User u = User.getById(id);
52 assertTrue(u.canAssure());
53 int assurancePoints = u.getAssurancePoints();
54 int expPoints = u.getExperiencePoints();
55 assertEquals(100, assurancePoints);
56 assertEquals(2, expPoints);
57 assertTrue(u.hasPassedCATS());
58 assertEquals(10, u.getMaxAssurePoints());
60 assertEquals("aä", u.getFname());
61 assertEquals("b", u.getLname());
62 assertEquals("", u.getMname());
66 public void testMatcherMethods() throws SQLException, GigiApiException {
67 String uq = createUniqueName();
68 int id = createVerifiedUser("aä", "b", uq + "a@email.org", TEST_PASSWORD);
70 User u = User.getById(id);
71 new EmailAddress(u, uq + "b@email.org").insert(Language.getInstance(Locale.ENGLISH));
72 new EmailAddress(u, uq + "c@email.org").insert(Language.getInstance(Locale.ENGLISH));
73 new Domain(u, uq + "a-testdomain.org").insert();
74 new Domain(u, uq + "b-testdomain.org").insert();
75 new Domain(u, uq + "c-testdomain.org").insert();
76 assertEquals(3, u.getEmails().length);
77 assertEquals(3, u.getDomains().length);
78 assertTrue(u.isValidDomain(uq + "a-testdomain.org"));
79 assertTrue(u.isValidDomain(uq + "b-testdomain.org"));
80 assertTrue(u.isValidDomain(uq + "c-testdomain.org"));
81 assertTrue(u.isValidDomain("a." + uq + "a-testdomain.org"));
82 assertTrue(u.isValidDomain("*." + uq + "a-testdomain.org"));
83 assertFalse(u.isValidDomain("a" + uq + "a-testdomain.org"));
84 assertFalse(u.isValidDomain("b" + uq + "a-testdomain.org"));
86 assertTrue(u.isValidEmail(uq + "a@email.org"));
87 assertTrue(u.isValidEmail(uq + "b@email.org"));
88 assertFalse(u.isValidEmail(uq + "b+6@email.org"));
89 assertFalse(u.isValidEmail(uq + "b*@email.org"));
91 assertTrue(u.isValidName("aä b"));
92 assertFalse(u.isValidName("aä c"));
93 assertFalse(u.isValidName("aä d b"));
98 public void testDoubleInsert() {
104 u.setEmail(createUniqueName() + "@example.org");
105 u.setDob(new Date(System.currentTimeMillis() + 1000 * 60 * 60 * 24 * 365));
106 u.setPreferredLocale(Locale.ENGLISH);
107 u.insert(TEST_PASSWORD);
109 u.insert(TEST_PASSWORD);
110 fail("Error expected");
114 Assurance[] ma = u.getMadeAssurances();
115 Assurance[] ma2 = u.getMadeAssurances();
116 Assurance[] ra = u.getReceivedAssurances();
117 Assurance[] ra2 = u.getReceivedAssurances();
118 assertEquals(0, u.getCertificates(false).length);
119 assertEquals(0, ma.length);
120 assertEquals(0, ma2.length);
121 assertEquals(0, ra.length);
122 assertEquals(0, ra2.length);
128 public void testGetByMail() {
129 String email = createUniqueName() + "a@email.org";
130 int id = createVerifiedUser("aä", "b", email, TEST_PASSWORD);
131 User emailUser = User.getByEmail(email);
132 User u = User.getById(id);
133 assertSame(u, emailUser);