X-Git-Url: https://code.wpia.club/?p=gigi.git;a=blobdiff_plain;f=tests%2Fclub%2Fwpia%2Fgigi%2Fpages%2Fadmin%2FTestSEAdminNotificationMail.java;h=a84e0e2f7c0cbaddecf5c383eab4a8e04e9c86b7;hp=8a439a31628c7499ae2554be6001e812ee409b96;hb=eebeeee1e9fa524482d5f0029d7a70ce9aedd5e8;hpb=bccd4cc0dba0f89aa045b113bac46eb8cc1dab4e diff --git a/tests/club/wpia/gigi/pages/admin/TestSEAdminNotificationMail.java b/tests/club/wpia/gigi/pages/admin/TestSEAdminNotificationMail.java index 8a439a31..a84e0e2f 100644 --- a/tests/club/wpia/gigi/pages/admin/TestSEAdminNotificationMail.java +++ b/tests/club/wpia/gigi/pages/admin/TestSEAdminNotificationMail.java @@ -7,35 +7,38 @@ 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; +import org.hamcrest.CoreMatchers; import org.junit.Test; 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.ArrayContains; +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,23 +47,24 @@ 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.")); + + User test = User.getById(targetID); + String[] result = test.getAdminLog(); + assertThat(result, ArrayContains.contains(CoreMatchers.equalTo("SE triggered password reset (a20140808.8)"))); } @Test @@ -72,10 +76,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 +92,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 +109,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 +129,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 +145,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.SECURE) + 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"))); + } + }