import static org.junit.Assert.*;
import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.StringWriter;
import java.net.MalformedURLException;
+import java.net.URLEncoder;
+import java.util.HashMap;
+import java.util.Locale;
+import org.cacert.gigi.GigiApiException;
import org.cacert.gigi.dbObjects.Group;
+import org.cacert.gigi.dbObjects.User;
+import org.cacert.gigi.localisation.Language;
import org.cacert.gigi.pages.admin.support.SupportEnterTicketPage;
import org.cacert.gigi.pages.admin.support.SupportUserDetailsPage;
import org.cacert.gigi.testUtils.ClientTest;
private int targetID;
- public TestSEAdminNotificationMail() throws IOException {
- grant(email, Group.SUPPORTER);
+ public TestSEAdminNotificationMail() throws IOException, GigiApiException {
+ grant(u, Group.SUPPORTER);
+ cookie = login(email, TEST_PASSWORD);
assertEquals(302, post(cookie, SupportEnterTicketPage.PATH, "ticketno=a20140808.8&setTicket=action", 0).getResponseCode());
String email = createUniqueName() + "@example.com";
executeBasicWebInteraction(cookie, SupportUserDetailsPage.PATH + targetID + "/", "dobd=1&dobm=2&doby=2000&detailupdate", 0);
+ // mail to support
String message = getMailReceiver().receive().getMessage();
- assertThat(message, containsString("The account data was changed."));
+ assertThat(message, containsString("The DoB was changed"));
assertThat(message, containsString("supporter " + u.getPreferredName().toString() + " triggered:"));
-
+ // mail to user
+ message = getMailReceiver().receive().getMessage();
+ assertThat(message, containsString("The DoB in your account was changed to 2000-02-01."));
}
@Test
@Test
public void testGrantUserGroup() throws MalformedURLException, IOException {
- executeBasicWebInteraction(cookie, SupportUserDetailsPage.PATH + targetID + "/", "addGroup&groupToModify=supporter", 0);
+ executeBasicWebInteraction(cookie, SupportUserDetailsPage.PATH + targetID + "/", "addGroup&groupToModify=" + URLEncoder.encode(Group.CODESIGNING.getDatabaseName(), "UTF-8"), 0);
+
+ StringWriter sw = new StringWriter();
+ PrintWriter pw = new PrintWriter(sw);
+ Group.CODESIGNING.getName().output(pw, Language.getInstance(Locale.ENGLISH), new HashMap<String, Object>());
+ // mail to support
String message = getMailReceiver().receive().getMessage();
- assertThat(message, containsString("The group permission supporter was granted."));
+ assertThat(message, containsString("The group permission '" + sw.toString() + "' was granted."));
+ // mail to user
+ message = getMailReceiver().receive().getMessage();
+ assertThat(message, containsString("The group permission '" + sw.toString() + "' was granted to your account."));
}
@Test
public void testRemoveUserGroup() throws MalformedURLException, IOException {
- executeBasicWebInteraction(cookie, SupportUserDetailsPage.PATH + targetID + "/", "removeGroup&groupToModify=supporter", 0);
+ executeBasicWebInteraction(cookie, SupportUserDetailsPage.PATH + targetID + "/", "removeGroup&groupToModify=" + URLEncoder.encode(Group.CODESIGNING.getDatabaseName(), "UTF-8"), 0);
+ StringWriter sw = new StringWriter();
+ PrintWriter pw = new PrintWriter(sw);
+ Group.CODESIGNING.getName().output(pw, Language.getInstance(Locale.ENGLISH), new HashMap<String, Object>());
+
+ // mail to support
String message = getMailReceiver().receive().getMessage();
- assertThat(message, containsString("The group permission supporter was revoked."));
+ assertThat(message, containsString("The group permission '" + sw.toString() + "' was revoked."));
+ // mail to user
+ message = getMailReceiver().receive().getMessage();
+ assertThat(message, containsString("The group permission '" + sw.toString() + "' was revoked from your account."));
}
@Test
- public void testRevokeCertificates() throws MalformedURLException, IOException {
- executeBasicWebInteraction(cookie, SupportUserDetailsPage.PATH + targetID + "/", "revokeall", 1);
+ public void testGrantSupporterGroup() throws MalformedURLException, IOException {
+ executeBasicWebInteraction(cookie, SupportUserDetailsPage.PATH + targetID + "/", "addGroup&groupToModify=" + URLEncoder.encode(Group.SUPPORTER.getDatabaseName(), "UTF-8"), 0);
+
+ StringWriter sw = new StringWriter();
+ PrintWriter pw = new PrintWriter(sw);
+ Group.SUPPORTER.getName().output(pw, Language.getInstance(Locale.ENGLISH), new HashMap<String, Object>());
+ User target = User.getById(targetID);
+
+ // mail to support
+ String message = getMailReceiver().receive().getMessage();
+ assertThat(message, containsString("The group permission '" + sw.toString() + "' was granted."));
+ // mail to user
+ message = getMailReceiver().receive().getMessage();
+ assertThat(message, containsString("The group permission '" + sw.toString() + "' was granted to your account."));
+ // mail to board
+ message = getMailReceiver().receive().getMessage();
+ assertThat(message, containsString("The group permission '" + sw.toString() + "' was granted for '" + target.getPreferredName().toString() + "'."));
+ }
+ @Test
+ public void testRemoveSupporterGroup() throws MalformedURLException, IOException {
+ executeBasicWebInteraction(cookie, SupportUserDetailsPage.PATH + targetID + "/", "removeGroup&groupToModify=" + URLEncoder.encode(Group.SUPPORTER.getDatabaseName(), "UTF-8"), 0);
+
+ StringWriter sw = new StringWriter();
+ PrintWriter pw = new PrintWriter(sw);
+ Group.SUPPORTER.getName().output(pw, Language.getInstance(Locale.ENGLISH), new HashMap<String, Object>());
+ User target = User.getById(targetID);
+
+ // mail to support
String message = getMailReceiver().receive().getMessage();
- assertThat(message, containsString("All certificates in the account have been revoked."));
+ assertThat(message, containsString("The group permission '" + sw.toString() + "' was revoked."));
+ // mail to user
+ message = getMailReceiver().receive().getMessage();
+ assertThat(message, containsString("The group permission '" + sw.toString() + "' was revoked from your account."));
+ // mail to board
+ message = getMailReceiver().receive().getMessage();
+ assertThat(message, containsString("The group permission '" + sw.toString() + "' was revoked for '" + target.getPreferredName().toString() + "'."));
+ }
+ @Test
+ public void testRevokeAllCertificates() throws MalformedURLException, IOException {
+ executeBasicWebInteraction(cookie, SupportUserDetailsPage.PATH + targetID + "/", "revokeall", 1);
+ User user = User.getById(targetID);
+
+ // mail to support
+ String message = getMailReceiver().receive().getMessage();
+ assertThat(message, containsString("All certificates in the account " + user.getPreferredName().toString()));
+ // mail to user
+ message = getMailReceiver().receive().getMessage();
+ assertThat(message, containsString("All certificates in your account have been revoked."));
}
}