From: Felix Dörre Date: Sat, 9 Aug 2014 18:12:21 +0000 (+0200) Subject: Implement matching for valid domainnames and emails. X-Git-Url: https://code.wpia.club/?p=gigi.git;a=commitdiff_plain;h=077243040a71dd5c81d761153c9776c0c82c5418 Implement matching for valid domainnames and emails. --- diff --git a/src/org/cacert/gigi/Name.java b/src/org/cacert/gigi/Name.java index 6f3c09f1..f13f85bf 100644 --- a/src/org/cacert/gigi/Name.java +++ b/src/org/cacert/gigi/Name.java @@ -61,4 +61,11 @@ public class Name implements Outputable { return true; } + + public boolean matches(String text) { + return text.equals(fname + " " + lname) || // + (mname != null && text.equals(fname + " " + mname + " " + lname)) || // + (suffix != null && text.equals(fname + " " + lname + " " + suffix)) || // + (mname != null && suffix != null && text.equals(fname + " " + mname + " " + lname + " " + suffix)); + } } diff --git a/src/org/cacert/gigi/User.java b/src/org/cacert/gigi/User.java index 69e35e6a..b3fdb26c 100644 --- a/src/org/cacert/gigi/User.java +++ b/src/org/cacert/gigi/User.java @@ -311,6 +311,29 @@ public class User { return null; } + public boolean isValidDomain(String domainname) { + for (Domain d : getDomains()) { + String sfx = d.getSuffix(); + if (domainname.equals(sfx) || domainname.endsWith("." + sfx)) { + return true; + } + } + return false; + } + + public boolean isValidEmail(String email) { + for (EmailAddress em : getEmails()) { + if (em.getAddress().equals(email)) { + return true; + } + } + return false; + } + + public boolean isValidName(String name) { + return getName().matches(name); + } + public void updateDefaultEmail(EmailAddress newMail) throws GigiApiException { try { EmailAddress[] adrs = getEmails(); diff --git a/tests/org/cacert/gigi/TestUser.java b/tests/org/cacert/gigi/TestUser.java index 2b783daa..4bc38e5e 100644 --- a/tests/org/cacert/gigi/TestUser.java +++ b/tests/org/cacert/gigi/TestUser.java @@ -1,6 +1,8 @@ package org.cacert.gigi; import java.sql.SQLException; + +import org.cacert.gigi.localisation.Language; import org.cacert.gigi.testUtils.ManagedTest; import org.junit.Test; @@ -52,4 +54,37 @@ public class TestUser extends ManagedTest { assertEquals("b", u.getLname()); assertEquals("", u.getMname()); } + + @Test + public void testMatcherMethods() throws SQLException, GigiApiException { + String uq = createUniqueName(); + int id = createVerifiedUser("aä", "b", uq + "a@email.org", TEST_PASSWORD); + + User u = new User(id); + new EmailAddress(uq + "b@email.org", u).insert(Language.getInstance("de")); + new EmailAddress(uq + "c@email.org", u).insert(Language.getInstance("de")); + new Domain(u, uq + "a.testdomain.org").insert(); + new Domain(u, uq + "b.testdomain.org").insert(); + new Domain(u, uq + "c.testdomain.org").insert(); + assertEquals(3, u.getEmails().length); + assertEquals(3, u.getDomains().length); + assertTrue(u.isValidDomain(uq + "a.testdomain.org")); + assertTrue(u.isValidDomain(uq + "b.testdomain.org")); + assertTrue(u.isValidDomain(uq + "c.testdomain.org")); + assertTrue(u.isValidDomain("a." + uq + "a.testdomain.org")); + assertTrue(u.isValidDomain("*." + uq + "a.testdomain.org")); + assertFalse(u.isValidDomain("a" + uq + "a.testdomain.org")); + assertFalse(u.isValidDomain("b" + uq + "a.testdomain.org")); + + assertTrue(u.isValidEmail(uq + "a@email.org")); + assertTrue(u.isValidEmail(uq + "b@email.org")); + assertFalse(u.isValidEmail(uq + "b+6@email.org")); + assertFalse(u.isValidEmail(uq + "b*@email.org")); + + assertTrue(u.isValidName("aä b")); + assertFalse(u.isValidName("aä c")); + assertFalse(u.isValidName("aä d b")); + + } + }