]> WPIA git - gigi.git/commitdiff
Implement matching for valid domainnames and emails.
authorFelix Dörre <felix@dogcraft.de>
Sat, 9 Aug 2014 18:12:21 +0000 (20:12 +0200)
committerFelix Dörre <felix@dogcraft.de>
Sat, 9 Aug 2014 18:12:21 +0000 (20:12 +0200)
src/org/cacert/gigi/Name.java
src/org/cacert/gigi/User.java
tests/org/cacert/gigi/TestUser.java

index 6f3c09f19a9b85e0697288d01902caec5968843a..f13f85bf033d7f196df2d5d91a7fe126a649c76c 100644 (file)
@@ -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));
+    }
 }
index 69e35e6a35e51df1c80a1125eacf2f30e162ccac..b3fdb26ceaf23b6bb2cd2d36a1a4d3ca7a1e972f 100644 (file)
@@ -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();
index 2b783daa5ad73744e718f2b0d62b090685edb9a5..4bc38e5e37bc4cf81a9dd5b7e4ec2b359ace50fa 100644 (file)
@@ -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"));
+
+    }
+
 }