122ed18b99127f6f367b9eaf425ff38d5fe17e08
[gigi.git] / tests / club / wpia / gigi / pages / orga / TestOrgSwitch.java
1 package club.wpia.gigi.pages.orga;
2
3 import static org.hamcrest.CoreMatchers.*;
4 import static org.hamcrest.MatcherAssert.assertThat;
5 import static org.junit.Assert.*;
6
7 import java.io.IOException;
8 import java.net.URLEncoder;
9 import java.sql.SQLException;
10
11 import org.junit.After;
12 import org.junit.Test;
13
14 import club.wpia.gigi.GigiApiException;
15 import club.wpia.gigi.dbObjects.Organisation;
16 import club.wpia.gigi.dbObjects.User;
17 import club.wpia.gigi.testUtils.IOUtils;
18 import club.wpia.gigi.testUtils.OrgTest;
19
20 public class TestOrgSwitch extends OrgTest {
21
22     private User u2;
23
24     private Organisation org1 = createUniqueOrg();
25
26     private Organisation org2 = createUniqueOrg();
27
28     public TestOrgSwitch() throws IOException, GigiApiException {
29
30         assertEquals(403, get(SwitchOrganisation.PATH).getResponseCode());
31
32         String email = createUniqueName() + "@testdom.com";
33         u2 = User.getById(createVerificationUser("testworker", "testname", email, TEST_PASSWORD));
34         assertNull(executeBasicWebInteraction(cookie, ViewOrgPage.DEFAULT_PATH + "/" + org1.getId(), "email=" + URLEncoder.encode(u2.getEmail(), "UTF-8") + "&do_affiliate=y&master=y", 1));
35         assertNull(executeBasicWebInteraction(cookie, ViewOrgPage.DEFAULT_PATH + "/" + org2.getId(), "email=" + URLEncoder.encode(u2.getEmail(), "UTF-8") + "&do_affiliate=y&master=y", 1));
36
37         // login with new user u2
38         cookie = login(email, TEST_PASSWORD);
39     }
40
41     @After
42     public void purgeDbAfterTest() throws SQLException, IOException {
43         purgeDatabase();
44     }
45
46     @Test
47     public void testSwitchToOrg() throws IOException, GigiApiException {
48
49         assertNull(executeBasicWebInteraction(cookie, SwitchOrganisation.PATH, "org:" + org1.getId() + "=y", 0));
50
51         String res = IOUtils.readURL(get(SwitchOrganisation.PATH));
52         assertThat(res, containsString("Logged in as " + u2.getPreferredName() + ", acting as " + org1.getName()));
53
54     }
55
56     @Test
57     public void testSwitchToNonOrg() throws IOException, GigiApiException {
58
59         String res = IOUtils.readURL(post(SwitchOrganisation.PATH, "org:5000=y"));
60         assertThat(res, containsString("Context switch failed"));
61
62     }
63
64     @Test
65     public void testSwitchToPersonal() throws IOException, GigiApiException {
66
67         assertNull(executeBasicWebInteraction(cookie, SwitchOrganisation.PATH, "org-leave=personal", 0));
68
69         String res = IOUtils.readURL(get(SwitchOrganisation.PATH));
70         assertThat(res, containsString("Logged in as " + u2.getPreferredName()));
71
72         assertNull(executeBasicWebInteraction(cookie, SwitchOrganisation.PATH, "org-leave=personal", 0));
73
74         res = IOUtils.readURL(get(SwitchOrganisation.PATH));
75         assertThat(res, containsString("Logged in as " + u2.getPreferredName()));
76
77     }
78
79     @Test
80     public void testSwitchOrgToOrg() throws IOException, GigiApiException {
81
82         assertNull(executeBasicWebInteraction(cookie, SwitchOrganisation.PATH, "org:" + org1.getId() + "=y", 0));
83         assertNull(executeBasicWebInteraction(cookie, SwitchOrganisation.PATH, "org:" + org2.getId() + "=y", 0));
84
85         String res = IOUtils.readURL(get(SwitchOrganisation.PATH));
86         assertThat(res, containsString("Logged in as " + u2.getPreferredName() + ", acting as " + org2.getName()));
87
88     }
89
90     @Test
91     public void testSwitchOrgToSameOrg() throws IOException, GigiApiException {
92
93         assertNull(executeBasicWebInteraction(cookie, SwitchOrganisation.PATH, "org:" + org1.getId() + "=y", 0));
94         assertNull(executeBasicWebInteraction(cookie, SwitchOrganisation.PATH, "org:" + org1.getId() + "=y", 0));
95
96         String res = IOUtils.readURL(get(SwitchOrganisation.PATH));
97         assertThat(res, containsString("Logged in as " + u2.getPreferredName() + ", acting as " + org1.getName()));
98
99     }
100
101     @Test
102     public void testSwitchOrgToNonOrg() throws IOException, GigiApiException {
103
104         assertNull(executeBasicWebInteraction(cookie, SwitchOrganisation.PATH, "org:" + org1.getId() + "=y", 0));
105         String res = IOUtils.readURL(post(SwitchOrganisation.PATH, "org:5000=y"));
106         assertThat(res, containsString("Context switch failed"));
107
108     }
109
110     @Test
111     public void testSwitchOrgToPersonal() throws IOException, GigiApiException {
112
113         assertNull(executeBasicWebInteraction(cookie, SwitchOrganisation.PATH, "org:" + org1.getId() + "=y", 0));
114         assertNull(executeBasicWebInteraction(cookie, SwitchOrganisation.PATH, "org-leave=personal", 0));
115
116         String res = IOUtils.readURL(get(SwitchOrganisation.PATH));
117         assertThat(res, containsString("Logged in as " + u2.getPreferredName()));
118
119     }
120
121 }