X-Git-Url: https://code.wpia.club/?p=gigi.git;a=blobdiff_plain;f=tests%2Forg%2Fcacert%2Fgigi%2Fpages%2Fadmin%2FTestSEAdminNotificationMail.java;h=e0ca82897d553271bc967d3fbfc8ea27e0b1163d;hp=bd64f9bf2e0da906ef282323ea588b0912eb7ad2;hb=6d1b746247f6e1eab7d1da17112beb9cf5abb089;hpb=9def69bd08ea69eb27786d5b34f00e154e09e9f3 diff --git a/tests/org/cacert/gigi/pages/admin/TestSEAdminNotificationMail.java b/tests/org/cacert/gigi/pages/admin/TestSEAdminNotificationMail.java index bd64f9bf..e0ca8289 100644 --- a/tests/org/cacert/gigi/pages/admin/TestSEAdminNotificationMail.java +++ b/tests/org/cacert/gigi/pages/admin/TestSEAdminNotificationMail.java @@ -4,9 +4,17 @@ import static org.hamcrest.CoreMatchers.*; 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; @@ -18,8 +26,9 @@ public class TestSEAdminNotificationMail extends 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"; @@ -31,19 +40,22 @@ public class TestSEAdminNotificationMail extends ClientTest { @Test public void testChangeAccountData() throws MalformedURLException, IOException { - executeBasicWebInteraction(cookie, SupportUserDetailsPage.PATH + targetID, "dobd=1&dobm=2&doby=2000&detailupdate", 0); + 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 public void testPasswordReset() throws MalformedURLException, IOException { - executeBasicWebInteraction(cookie, SupportUserDetailsPage.PATH + targetID, "aword=SecretWord&resetPass", 0); + executeBasicWebInteraction(cookie, SupportUserDetailsPage.PATH + targetID + "/", "aword=SecretWord&resetPass", 0); TestMail tm; - String targetMail = "support@" + ServerConstants.getWwwHostName().replaceFirst("^www\\.", ""); + String targetMail = ServerConstants.getSupportMailAddress(); do { tm = getMailReceiver().receive(); } while ( !tm.getTo().equals(targetMail)); @@ -52,26 +64,86 @@ public class TestSEAdminNotificationMail extends ClientTest { @Test public void testGrantUserGroup() throws MalformedURLException, IOException { - executeBasicWebInteraction(cookie, SupportUserDetailsPage.PATH + targetID, "grant&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()); + // 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, "deny&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()); + + // mail to support + String message = getMailReceiver().receive().getMessage(); + 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 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()); + User target = User.getById(targetID); + // 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 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 testRevokeCertificates() throws MalformedURLException, IOException { - executeBasicWebInteraction(cookie, SupportUserDetailsPage.PATH + targetID, "revokeall", 1); + 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()); + 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.")); } }