1 package org.cacert.gigi;
3 import static org.junit.Assert.*;
5 import java.io.IOException;
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.testUtils.ManagedTest;
15 import org.cacert.gigi.util.DayDate;
16 import org.junit.Test;
18 public class TestUser extends ManagedTest {
21 public void testStoreAndLoad() throws SQLException, GigiApiException {
22 long dob = System.currentTimeMillis();
23 dob -= dob % (1000 * 60 * 60 * 24);
24 User u = new User(createUniqueName() + "a@email.org", "password", new Name("user", "last", "", ""), new DayDate(dob), Locale.ENGLISH);
26 User u2 = User.getById(id);
27 assertEquals(u.getName(), u2.getName());
28 assertEquals(u.getDoB().toString(), u2.getDoB().toString());
29 assertEquals(u.getEmail(), u2.getEmail());
33 public void testWebStoreAndLoad() throws SQLException {
34 int id = createVerifiedUser("aä", "b", createUniqueName() + "a@email.org", TEST_PASSWORD);
36 Name u = User.getById(id).getName();
38 assertEquals("aä", u.getFname());
39 assertEquals("b", u.getLname());
40 assertEquals("", u.getMname());
44 public void testAssurerUtilMethods() throws SQLException {
45 int id = createAssuranceUser("aä", "b", createUniqueName() + "a@email.org", TEST_PASSWORD);
47 User u = User.getById(id);
48 assertTrue(u.canAssure());
49 int assurancePoints = u.getAssurancePoints();
50 int expPoints = u.getExperiencePoints();
51 assertEquals(100, assurancePoints);
52 assertEquals(2, expPoints);
53 assertTrue(u.hasPassedCATS());
54 assertEquals(10, u.getMaxAssurePoints());
55 Name name = u.getName();
56 assertEquals("aä", name.getFname());
57 assertEquals("b", name.getLname());
58 assertEquals("", name.getMname());
62 public void testMatcherMethods() throws SQLException, GigiApiException, IOException {
63 String uq = createUniqueName();
64 int id = createVerifiedUser("aä", "b", uq + "a@email.org", TEST_PASSWORD);
66 User u = User.getById(id);
67 new EmailAddress(u, uq + "b@email.org", Locale.ENGLISH);
68 getMailReciever().receive().verify();
69 new EmailAddress(u, uq + "c@email.org", Locale.ENGLISH);
70 getMailReciever().receive();// no-verify
71 verify(new Domain(u, u, uq + "a-testdomain.org"));
72 verify(new Domain(u, u, uq + "b-testdomain.org"));
73 verify(new Domain(u, u, uq + "c-testdomain.org"));
74 assertEquals(3, u.getEmails().length);
75 assertEquals(3, u.getDomains().length);
76 assertTrue(u.isValidDomain(uq + "a-testdomain.org"));
77 assertTrue(u.isValidDomain(uq + "b-testdomain.org"));
78 assertTrue(u.isValidDomain(uq + "c-testdomain.org"));
79 assertTrue(u.isValidDomain("a." + uq + "a-testdomain.org"));
80 assertTrue(u.isValidDomain("*." + uq + "a-testdomain.org"));
81 assertFalse(u.isValidDomain("a" + uq + "a-testdomain.org"));
82 assertFalse(u.isValidDomain("b" + uq + "a-testdomain.org"));
84 assertTrue(u.isValidEmail(uq + "a@email.org"));
85 assertTrue(u.isValidEmail(uq + "b@email.org"));
86 assertFalse(u.isValidEmail(uq + "b+6@email.org"));
87 assertFalse(u.isValidEmail(uq + "b*@email.org"));
88 assertFalse(u.isValidEmail(uq + "c@email.org"));
90 assertTrue(u.isValidName("aä b"));
91 assertFalse(u.isValidName("aä c"));
92 assertFalse(u.isValidName("aä d b"));
97 public void testDoubleInsert() throws GigiApiException {
98 long d = System.currentTimeMillis();
99 d -= d % DayDate.MILLI_DAY;
100 User u = new User(createUniqueName() + "@example.org", TEST_PASSWORD, new Name("f", "k", "m", "s"), new DayDate(d + 1000L * 60 * 60 * 24 * 365), Locale.ENGLISH);
101 Assurance[] ma = u.getMadeAssurances();
102 Assurance[] ma2 = u.getMadeAssurances();
103 Assurance[] ra = u.getReceivedAssurances();
104 Assurance[] ra2 = u.getReceivedAssurances();
105 assertEquals(0, u.getCertificates(false).length);
106 assertEquals(0, ma.length);
107 assertEquals(0, ma2.length);
108 assertEquals(0, ra.length);
109 assertEquals(0, ra2.length);
115 public void testGetByMail() {
116 String email = createUniqueName() + "a@email.org";
117 int id = createVerifiedUser("aä", "b", email, TEST_PASSWORD);
118 User emailUser = User.getByEmail(email);
119 User u = User.getById(id);
120 assertSame(u, emailUser);
124 public void testNoCats() {
125 String email = createUniqueName() + "a@email.org";
126 createVerifiedUser("aä", "b", email, TEST_PASSWORD);
127 User emailUser = User.getByEmail(email);
128 assertFalse(emailUser.hasPassedCATS());
132 public void testGetByMailFail() {
133 String email = createUniqueName() + "d@email.org";
134 User emailUser = User.getByEmail(email);
135 assertNull(emailUser);