]> WPIA git - gigi.git/blob - tests/org/cacert/gigi/pages/account/TestMyDetailsEdit.java
add: Allow multiple names, name-schemes, multi-name-assurance, etc.
[gigi.git] / tests / org / cacert / gigi / pages / account / TestMyDetailsEdit.java
1 package org.cacert.gigi.pages.account;
2
3 import static org.junit.Assert.*;
4
5 import java.io.IOException;
6 import java.sql.Date;
7 import java.util.Arrays;
8 import java.util.Calendar;
9 import java.util.TimeZone;
10
11 import org.cacert.gigi.GigiApiException;
12 import org.cacert.gigi.dbObjects.Name;
13 import org.cacert.gigi.dbObjects.NamePart;
14 import org.cacert.gigi.dbObjects.NamePart.NamePartType;
15 import org.cacert.gigi.dbObjects.User;
16 import org.cacert.gigi.testUtils.ManagedTest;
17 import org.hamcrest.CoreMatchers;
18 import org.junit.Test;
19
20 public class TestMyDetailsEdit extends ManagedTest {
21
22     String email = createUniqueName() + "@e.de";
23
24     int id = createVerifiedUser("Kurti", "Hansel", email, TEST_PASSWORD);
25
26     String cookie = login(email, TEST_PASSWORD);
27
28     public TestMyDetailsEdit() throws IOException {}
29
30     @Test
31     public void testAddName() throws IOException {
32         int startn = User.getById(id).getNames().length;
33         String newName = createUniqueName();
34         assertNull(executeBasicWebInteraction(cookie, MyDetails.PATH, "fname=" + newName + "&lname=Hansel&action=addName", 0));
35         User u = User.getById(id);
36
37         NamePart[] parts = u.getNames()[startn].getParts();
38         assertThat(Arrays.asList(parts), CoreMatchers.hasItem(new NamePart(NamePartType.FIRST_NAME, newName)));
39         assertThat(Arrays.asList(parts), CoreMatchers.hasItem(new NamePart(NamePartType.LAST_NAME, "Hansel")));
40         assertEquals(2, parts.length);
41         assertEquals(startn + 1, User.getById(id).getNames().length);
42     }
43
44     @Test
45     public void testDelName() throws IOException, GigiApiException {
46         User user = User.getById(id);
47         int startn = user.getNames().length;
48         String newName = createUniqueName();
49         Name n1 = new Name(user, new NamePart(NamePartType.SINGLE_NAME, newName));
50
51         assertEquals(startn + 1, user.getNames().length);
52         assertNull(executeBasicWebInteraction(cookie, MyDetails.PATH, "removeName=" + n1.getId(), 0));
53         assertEquals(startn, user.getNames().length);
54     }
55
56     @Test
57     public void testDelDefaultName() throws IOException {
58         User user = User.getById(id);
59         assertEquals(1, user.getNames().length);
60         assertNotNull(executeBasicWebInteraction(cookie, MyDetails.PATH, "removeName=" + user.getNames()[0].getId(), 0));
61         assertEquals(1, user.getNames().length);
62     }
63
64     @Test
65     public void testChangeDOBValid() throws IOException {
66         assertNull(executeBasicWebInteraction(cookie, MyDetails.PATH, "day=1&month=2&year=2000&action=updateDoB", 0));
67         User u = User.getById(id);
68         Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
69         cal.set(Calendar.YEAR, 2000);
70         cal.set(Calendar.DAY_OF_MONTH, Calendar.FEBRUARY);
71         cal.set(Calendar.MONTH, 1);
72         Date d = new Date(cal.getTimeInMillis());
73         assertEquals(d.toString(), u.getDoB().toSQLDate().toString());
74     }
75
76     @Test
77     public void testChangeDOBInvalid() throws IOException {
78         assertNotNull(executeBasicWebInteraction(cookie, MyDetails.PATH, "day=1&month=1&year=test&action=updateDoB", 0));
79     }
80 }