From 17f52b20d1d12e7d024136a175d69b35d0c44c6b Mon Sep 17 00:00:00 2001 From: INOPIAE Date: Sun, 31 Jul 2016 13:59:51 +0200 Subject: [PATCH] add: new test cases for find email Change-Id: Iac34c0201217e1e624a4cba53698a8f2eeb424a3 --- .../admin/TestSEAdminPageUserMailSearch.java | 83 +++++++++++++++++++ .../cacert/gigi/testUtils/ManagedTest.java | 12 ++- 2 files changed, 91 insertions(+), 4 deletions(-) diff --git a/tests/org/cacert/gigi/pages/admin/TestSEAdminPageUserMailSearch.java b/tests/org/cacert/gigi/pages/admin/TestSEAdminPageUserMailSearch.java index 593d9e9c..bb05a71b 100644 --- a/tests/org/cacert/gigi/pages/admin/TestSEAdminPageUserMailSearch.java +++ b/tests/org/cacert/gigi/pages/admin/TestSEAdminPageUserMailSearch.java @@ -9,7 +9,9 @@ import java.net.MalformedURLException; import java.net.URLConnection; import java.net.URLEncoder; +import org.cacert.gigi.GigiApiException; import org.cacert.gigi.dbObjects.Group; +import org.cacert.gigi.dbObjects.User; import org.cacert.gigi.pages.admin.support.FindUserByEmailPage; import org.cacert.gigi.pages.admin.support.SupportEnterTicketPage; import org.cacert.gigi.pages.admin.support.SupportUserDetailsPage; @@ -82,4 +84,85 @@ public class TestSEAdminPageUserMailSearch extends ClientTest { assertNotNull(fetchStartErrorMessage(IOUtils.readURL(uc))); } + + @Test + public void testSearchSecondEmailAddress() throws MalformedURLException, UnsupportedEncodingException, IOException, InterruptedException, GigiApiException { + String mail = createUniqueName() + "@example1.org"; + int id = createVerifiedUser("Först", "Secönd", mail, TEST_PASSWORD); + User testuser = User.getById(id); + String mail2 = createUniqueName() + "@example1.org"; + createVerifiedEmail(testuser, mail2); + + URLConnection uc = post(cookie, FindUserByEmailPage.PATH, "process&email=" + URLEncoder.encode(mail2, "UTF-8"), 0); + assertEquals("https://" + ServerConstants.getWwwHostNamePortSecure() + SupportUserDetailsPage.PATH + id, uc.getHeaderField("Location")); + } + + @Test + public void testWildcardMailSearchSecondEmailAddress() throws MalformedURLException, UnsupportedEncodingException, IOException, InterruptedException, GigiApiException { + clearCaches(); + String mail = createUniqueName() + "@example2.org"; + int id = createVerifiedUser("Först", "Secönd", mail, TEST_PASSWORD); + User testuser = User.getById(id); + String mail2 = createUniqueName() + "@example2.org"; + createVerifiedEmail(testuser, mail2); + + URLConnection uc = post(cookie, FindUserByEmailPage.PATH, "process&email=" + URLEncoder.encode("%@example2.org", "UTF-8"), 0); + + String res = IOUtils.readURL(uc); + assertThat(res, containsString(mail)); + assertThat(res, containsString(mail2)); + } + + @Test + public void testWildcardMailSearchMultipleEmailAddressOneAccount() throws MalformedURLException, UnsupportedEncodingException, IOException, InterruptedException, GigiApiException { + clearCaches(); + String mail = createUniqueName() + "@example3.org"; + int id = createVerifiedUser("Först", "Secönd", mail, TEST_PASSWORD); + User testuser = User.getById(id); + String mail2 = createUniqueName() + "@test3.org"; + createVerifiedEmail(testuser, mail2); + String mail3 = createUniqueName() + "@test3.org"; + createVerifiedEmail(testuser, mail3); + + URLConnection uc = post(cookie, FindUserByEmailPage.PATH, "process&email=" + URLEncoder.encode("%@example3.org", "UTF-8"), 0); + assertEquals("https://" + ServerConstants.getWwwHostNamePortSecure() + SupportUserDetailsPage.PATH + id, uc.getHeaderField("Location")); + + uc = post(cookie, FindUserByEmailPage.PATH, "process&email=" + URLEncoder.encode("%@test3.org", "UTF-8"), 0); + + String res = IOUtils.readURL(uc); + assertThat(res, not(containsString(mail))); + assertThat(res, containsString(mail2)); + assertThat(res, containsString(mail3)); + } + + @Test + public void testWildcardMailSearchMultipleEmailAddressMultipleAccounts() throws MalformedURLException, UnsupportedEncodingException, IOException, InterruptedException, GigiApiException { + String mail = createUniqueName() + "1@example4.org"; + int id = createVerifiedUser("Först", "Secönd", mail, TEST_PASSWORD); + User testuser = User.getById(id); + String mail2 = createUniqueName() + "@test4.org"; + createVerifiedEmail(testuser, mail2); + + String mail3 = createUniqueName() + "2@example4.org"; + int id2 = createVerifiedUser("Först", "Secönd", mail3, TEST_PASSWORD); + User testuser2 = User.getById(id2); + String mail4 = createUniqueName() + "@test4.org"; + createVerifiedEmail(testuser2, mail4); + + URLConnection uc = post(cookie, FindUserByEmailPage.PATH, "process&email=" + URLEncoder.encode("%@example4.org", "UTF-8"), 0); + + String res = IOUtils.readURL(uc); + assertThat(res, containsString(mail)); + assertThat(res, not(containsString(mail2))); + assertThat(res, containsString(mail3)); + assertThat(res, not(containsString(mail4))); + + uc = post(cookie, FindUserByEmailPage.PATH, "process&email=" + URLEncoder.encode("%@test4.org", "UTF-8"), 0); + + res = IOUtils.readURL(uc); + assertThat(res, not(containsString(mail))); + assertThat(res, containsString(mail2)); + assertThat(res, not(containsString(mail3))); + assertThat(res, containsString(mail4)); + } } diff --git a/tests/org/cacert/gigi/testUtils/ManagedTest.java b/tests/org/cacert/gigi/testUtils/ManagedTest.java index 036adc92..aab620a3 100644 --- a/tests/org/cacert/gigi/testUtils/ManagedTest.java +++ b/tests/org/cacert/gigi/testUtils/ManagedTest.java @@ -468,13 +468,17 @@ public class ManagedTest extends ConfiguredTest { } public EmailAddress createVerifiedEmail(User u) throws InterruptedException, GigiApiException { - EmailAddress adrr = new EmailAddress(u, createUniqueName() + "test@test.tld", Locale.ENGLISH); + return createVerifiedEmail(u, createUniqueName() + "test@test.tld"); + } + + public EmailAddress createVerifiedEmail(User u, String email) throws InterruptedException, GigiApiException { + EmailAddress addr = new EmailAddress(u, email, Locale.ENGLISH); TestMail testMail = getMailReceiver().receive(); - assertEquals(adrr.getAddress(), testMail.getTo()); + assertEquals(addr.getAddress(), testMail.getTo()); String hash = testMail.extractLink().substring(testMail.extractLink().lastIndexOf('=') + 1); - adrr.verify(hash); + addr.verify(hash); getMailReceiver().clearMails(); - return adrr; + return addr; } public static URLConnection cookie(URLConnection openConnection, String cookie) { -- 2.39.2