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);
34 assertEquals(u.getName(), u2.getName());
35 assertEquals(u.getDob().toString(), u2.getDob().toString());
36 assertEquals(u.getEmail(), u2.getEmail());
40 public void testWebStoreAndLoad() throws SQLException {
41 int id = createVerifiedUser("aä", "b", createUniqueName() + "a@email.org", TEST_PASSWORD);
43 User u = User.getById(id);
44 assertEquals("aä", u.getFname());
45 assertEquals("b", u.getLname());
46 assertEquals("", u.getMname());
50 public void testAssurerUtilMethods() throws SQLException {
51 int id = createAssuranceUser("aä", "b", createUniqueName() + "a@email.org", TEST_PASSWORD);
53 User u = User.getById(id);
54 assertTrue(u.canAssure());
55 int assurancePoints = u.getAssurancePoints();
56 int expPoints = u.getExperiencePoints();
57 assertEquals(100, assurancePoints);
58 assertEquals(2, expPoints);
59 assertTrue(u.hasPassedCATS());
60 assertEquals(10, u.getMaxAssurePoints());
62 assertEquals("aä", u.getFname());
63 assertEquals("b", u.getLname());
64 assertEquals("", u.getMname());
68 public void testMatcherMethods() throws SQLException, GigiApiException {
69 String uq = createUniqueName();
70 int id = createVerifiedUser("aä", "b", uq + "a@email.org", TEST_PASSWORD);
72 User u = User.getById(id);
73 new EmailAddress(u, uq + "b@email.org").insert(Language.getInstance(Locale.ENGLISH));
74 new EmailAddress(u, uq + "c@email.org").insert(Language.getInstance(Locale.ENGLISH));
75 new Domain(u, uq + "a-testdomain.org").insert();
76 new Domain(u, uq + "b-testdomain.org").insert();
77 new Domain(u, uq + "c-testdomain.org").insert();
78 assertEquals(3, u.getEmails().length);
79 assertEquals(3, u.getDomains().length);
80 assertTrue(u.isValidDomain(uq + "a-testdomain.org"));
81 assertTrue(u.isValidDomain(uq + "b-testdomain.org"));
82 assertTrue(u.isValidDomain(uq + "c-testdomain.org"));
83 assertTrue(u.isValidDomain("a." + uq + "a-testdomain.org"));
84 assertTrue(u.isValidDomain("*." + uq + "a-testdomain.org"));
85 assertFalse(u.isValidDomain("a" + uq + "a-testdomain.org"));
86 assertFalse(u.isValidDomain("b" + uq + "a-testdomain.org"));
88 assertTrue(u.isValidEmail(uq + "a@email.org"));
89 assertTrue(u.isValidEmail(uq + "b@email.org"));
90 assertFalse(u.isValidEmail(uq + "b+6@email.org"));
91 assertFalse(u.isValidEmail(uq + "b*@email.org"));
93 assertTrue(u.isValidName("aä b"));
94 assertFalse(u.isValidName("aä c"));
95 assertFalse(u.isValidName("aä d b"));
100 public void testDoubleInsert() {
106 u.setEmail(createUniqueName() + "@example.org");
107 u.setDob(new Date(System.currentTimeMillis() + 1000 * 60 * 60 * 24 * 365));
108 u.setPreferredLocale(Locale.ENGLISH);
109 u.insert(TEST_PASSWORD);
111 u.insert(TEST_PASSWORD);
112 fail("Error expected");
116 Assurance[] ma = u.getMadeAssurances();
117 Assurance[] ma2 = u.getMadeAssurances();
118 Assurance[] ra = u.getReceivedAssurances();
119 Assurance[] ra2 = u.getReceivedAssurances();
120 assertEquals(0, u.getCertificates(false).length);
121 assertEquals(0, ma.length);
122 assertEquals(0, ma2.length);
123 assertEquals(0, ra.length);
124 assertEquals(0, ra2.length);
130 public void testGetByMail() {
131 String email = createUniqueName() + "a@email.org";
132 int id = createVerifiedUser("aä", "b", email, TEST_PASSWORD);
133 User emailUser = User.getByEmail(email);
134 User u = User.getById(id);
135 assertSame(u, emailUser);