X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=tests%2Fclub%2Fwpia%2Fgigi%2Fpages%2Fadmin%2FTestSEAdminNotificationMail.java;h=97ac6a0065a05d6c8800f7c0b3777b666bb3d0c0;hb=150cc0ac00db36ed7610683319a3177b0cb62da2;hp=8a439a31628c7499ae2554be6001e812ee409b96;hpb=bccd4cc0dba0f89aa045b113bac46eb8cc1dab4e;p=gigi.git diff --git a/tests/club/wpia/gigi/pages/admin/TestSEAdminNotificationMail.java b/tests/club/wpia/gigi/pages/admin/TestSEAdminNotificationMail.java index 8a439a31..97ac6a00 100644 --- a/tests/club/wpia/gigi/pages/admin/TestSEAdminNotificationMail.java +++ b/tests/club/wpia/gigi/pages/admin/TestSEAdminNotificationMail.java @@ -7,6 +7,7 @@ import java.io.IOException; import java.io.PrintWriter; import java.io.StringWriter; import java.net.MalformedURLException; +import java.net.URLConnection; import java.net.URLEncoder; import java.util.HashMap; import java.util.Locale; @@ -17,25 +18,25 @@ import club.wpia.gigi.GigiApiException; import club.wpia.gigi.dbObjects.Group; import club.wpia.gigi.dbObjects.User; import club.wpia.gigi.localisation.Language; -import club.wpia.gigi.pages.admin.support.SupportEnterTicketPage; +import club.wpia.gigi.pages.account.MyDetails; import club.wpia.gigi.pages.admin.support.SupportUserDetailsPage; -import club.wpia.gigi.testUtils.ClientTest; +import club.wpia.gigi.testUtils.IOUtils; +import club.wpia.gigi.testUtils.SEClientTest; import club.wpia.gigi.testUtils.TestEmailReceiver.TestMail; import club.wpia.gigi.util.ServerConstants; +import club.wpia.gigi.util.ServerConstants.Host; -public class TestSEAdminNotificationMail extends ClientTest { +public class TestSEAdminNotificationMail extends SEClientTest { private int targetID; - 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()); + private String targetEmail; - String email = createUniqueName() + "@example.com"; + public TestSEAdminNotificationMail() throws IOException, GigiApiException { + targetEmail = createUniqueName() + "@example.com"; String fname = "Först"; String lname = "Secönd"; - targetID = createVerifiedUser(fname, lname, email, TEST_PASSWORD); + targetID = createVerifiedUser(fname, lname, targetEmail, TEST_PASSWORD); } @Test @@ -44,22 +45,19 @@ public class TestSEAdminNotificationMail extends ClientTest { executeBasicWebInteraction(cookie, SupportUserDetailsPage.PATH + targetID + "/", "dobd=1&dobm=2&doby=2000&detailupdate", 0); // mail to support - String message = getMailReceiver().receive().getMessage(); + String message = getMailReceiver().receive(ServerConstants.getSupportMailAddress()).getMessage(); assertThat(message, containsString("The DoB was changed")); assertThat(message, containsString("supporter " + u.getPreferredName().toString() + " triggered:")); // mail to user - message = getMailReceiver().receive().getMessage(); + message = getMailReceiver().receive(targetEmail).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); - TestMail tm; - String targetMail = ServerConstants.getSupportMailAddress(); - do { - tm = getMailReceiver().receive(); - } while ( !tm.getTo().equals(targetMail)); + getMailReceiver().receive(targetEmail); + TestMail tm = getMailReceiver().receive(ServerConstants.getSupportMailAddress()); assertThat(tm.getMessage(), containsString("A password reset was triggered and an email was sent to user.")); } @@ -72,10 +70,10 @@ public class TestSEAdminNotificationMail extends ClientTest { Group.CODESIGNING.getName().output(pw, Language.getInstance(Locale.ENGLISH), new HashMap()); // mail to support - String message = getMailReceiver().receive().getMessage(); + String message = getMailReceiver().receive(ServerConstants.getSupportMailAddress()).getMessage(); assertThat(message, containsString("The group permission '" + sw.toString() + "' was granted.")); // mail to user - message = getMailReceiver().receive().getMessage(); + message = getMailReceiver().receive(targetEmail).getMessage(); assertThat(message, containsString("The group permission '" + sw.toString() + "' was granted to your account.")); } @@ -88,10 +86,10 @@ public class TestSEAdminNotificationMail extends ClientTest { Group.CODESIGNING.getName().output(pw, Language.getInstance(Locale.ENGLISH), new HashMap()); // mail to support - String message = getMailReceiver().receive().getMessage(); + String message = getMailReceiver().receive(ServerConstants.getSupportMailAddress()).getMessage(); assertThat(message, containsString("The group permission '" + sw.toString() + "' was revoked.")); // mail to user - message = getMailReceiver().receive().getMessage(); + message = getMailReceiver().receive(targetEmail).getMessage(); assertThat(message, containsString("The group permission '" + sw.toString() + "' was revoked from your account.")); } @@ -105,13 +103,13 @@ public class TestSEAdminNotificationMail extends ClientTest { User target = User.getById(targetID); // mail to support - String message = getMailReceiver().receive().getMessage(); + String message = getMailReceiver().receive(ServerConstants.getSupportMailAddress()).getMessage(); assertThat(message, containsString("The group permission '" + sw.toString() + "' was granted.")); // mail to user - message = getMailReceiver().receive().getMessage(); + message = getMailReceiver().receive(targetEmail).getMessage(); assertThat(message, containsString("The group permission '" + sw.toString() + "' was granted to your account.")); // mail to board - message = getMailReceiver().receive().getMessage(); + message = getMailReceiver().receive(ServerConstants.getBoardMailAddress()).getMessage(); assertThat(message, containsString("The group permission '" + sw.toString() + "' was granted for '" + target.getPreferredName().toString() + "'.")); } @@ -125,13 +123,13 @@ public class TestSEAdminNotificationMail extends ClientTest { User target = User.getById(targetID); // mail to support - String message = getMailReceiver().receive().getMessage(); + String message = getMailReceiver().receive(ServerConstants.getSupportMailAddress()).getMessage(); assertThat(message, containsString("The group permission '" + sw.toString() + "' was revoked.")); // mail to user - message = getMailReceiver().receive().getMessage(); + message = getMailReceiver().receive(targetEmail).getMessage(); assertThat(message, containsString("The group permission '" + sw.toString() + "' was revoked from your account.")); // mail to board - message = getMailReceiver().receive().getMessage(); + message = getMailReceiver().receive(ServerConstants.getBoardMailAddress()).getMessage(); assertThat(message, containsString("The group permission '" + sw.toString() + "' was revoked for '" + target.getPreferredName().toString() + "'.")); } @@ -141,10 +139,40 @@ public class TestSEAdminNotificationMail extends ClientTest { User user = User.getById(targetID); // mail to support - String message = getMailReceiver().receive().getMessage(); + String message = getMailReceiver().receive(ServerConstants.getSupportMailAddress()).getMessage(); assertThat(message, containsString("All certificates in the account " + user.getPreferredName().toString())); // mail to user - message = getMailReceiver().receive().getMessage(); + message = getMailReceiver().receive(targetEmail).getMessage(); assertThat(message, containsString("All certificates in your account have been revoked.")); } + + @Test + public void testSupportSupporterGroup() throws MalformedURLException, IOException { + // supporter adds to his own groups + String s = IOUtils.readURL(post(SupportUserDetailsPage.PATH + u.getId() + "/", "addGroup&groupToModify=" + URLEncoder.encode(Group.ORG_AGENT.getDBName(), "UTF-8"))); + assertThat(s, containsString("Supporter may not modify himself.")); + + // supporter removes from his own groups + s = IOUtils.readURL(post(SupportUserDetailsPage.PATH + u.getId() + "/", "removeGroup&groupToModify=" + URLEncoder.encode(Group.ORG_AGENT.getDBName(), "UTF-8"))); + assertThat(s, containsString("Supporter may not modify himself.")); + + // supporter removes supporter flag + URLConnection uc = post(SupportUserDetailsPage.PATH + u.getId() + "/", "removeGroup&groupToModify=" + URLEncoder.encode(Group.SUPPORTER.getDBName(), "UTF-8")); + assertEquals("https://" + ServerConstants.getHostNamePortSecure(Host.WWW) + MyDetails.PATH, uc.getHeaderField("Location")); + StringWriter sw = new StringWriter(); + PrintWriter pw = new PrintWriter(sw); + Group.SUPPORTER.getName().output(pw, Language.getInstance(Locale.ENGLISH), new HashMap()); + // mail to support + String message = getMailReceiver().receive(ServerConstants.getSupportMailAddress()).getMessage(); + assertThat(message, containsString("The group permission '" + sw.toString() + "' was revoked.")); + // mail to user + message = getMailReceiver().receive(u.getEmail()).getMessage(); + assertThat(message, containsString("The group permission '" + sw.toString() + "' was revoked from your account.")); + // mail to board + message = getMailReceiver().receive(ServerConstants.getBoardMailAddress()).getMessage(); + assertThat(message, containsString("The group permission '" + sw.toString() + "' was revoked for '" + u.getPreferredName().toString() + "'.")); + s = IOUtils.readURL(get(cookie, MyDetails.PATH)); + assertThat(s, not(containsString("supporter"))); + } + }