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.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;
18 public class TestUser extends ManagedTest {
21 public void testStoreAndLoad() throws SQLException {
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");
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());
38 public void testWebStoreAndLoad() throws SQLException {
39 int id = createVerifiedUser("aä", "b", createUniqueName() + "a@email.org", TEST_PASSWORD);
41 Name u = User.getById(id).getName();
43 assertEquals("aä", u.getFname());
44 assertEquals("b", u.getLname());
45 assertEquals("", u.getMname());
49 public void testAssurerUtilMethods() throws SQLException {
50 int id = createAssuranceUser("aä", "b", createUniqueName() + "a@email.org", TEST_PASSWORD);
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());
67 public void testMatcherMethods() throws SQLException, GigiApiException {
68 String uq = createUniqueName();
69 int id = createVerifiedUser("aä", "b", uq + "a@email.org", TEST_PASSWORD);
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"));
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"));
92 assertTrue(u.isValidName("aä b"));
93 assertFalse(u.isValidName("aä c"));
94 assertFalse(u.isValidName("aä d b"));
99 public void testDoubleInsert() {
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);
107 u.insert(TEST_PASSWORD);
108 fail("Error expected");
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);
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);