Author: manolo
Date: Fri May  4 08:25:12 2012
New Revision: 1333810

URL: http://svn.apache.org/viewvc?rev=1333810&view=rev
Log:
Avoid empty names in contacts

Modified:
    
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/AbstractFetchMessagesHandler.java
    
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/preferences/UserPreferencesStorage.java
    
james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/ContactsHandlerTest.java
    
james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/ContactsResult.java

Modified: 
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/AbstractFetchMessagesHandler.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/AbstractFetchMessagesHandler.java?rev=1333810&r1=1333809&r2=1333810&view=diff
==============================================================================
--- 
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/AbstractFetchMessagesHandler.java
 (original)
+++ 
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/AbstractFetchMessagesHandler.java
 Fri May  4 08:25:12 2012
@@ -127,14 +127,12 @@ public abstract class AbstractFetchMessa
             String from = null;
             if (m.getFrom() != null && m.getFrom().length >0 ) {
                 from = decodeText(m.getFrom()[0].toString());
-                userPreferences.addContact(from);
             }
             msg.setFrom(from);
 
             String replyto = null;
             if (m.getReplyTo() != null && m.getReplyTo().length >0 ) {
                 replyto = decodeText(m.getReplyTo()[0].toString());
-                userPreferences.addContact(replyto);
             }
             msg.setReplyto(replyto);
             
@@ -144,11 +142,11 @@ public abstract class AbstractFetchMessa
             if (toArray != null) {
                 for (Address addr : toArray) {
                     String mailTo = decodeText(addr.toString());
-                    userPreferences.addContact(mailTo);
                     to.add(mailTo);
                 }
             }
             msg.setTo(to);
+
             
             // Check if a subject exist and if so decode it
             String subject = m.getSubject();
@@ -163,12 +161,16 @@ public abstract class AbstractFetchMessa
             if (ccArray != null) {
                 for (Address addr : ccArray) {
                     String mailCc = decodeText(addr.toString());
-                    userPreferences.addContact(mailCc);
                     cc.add(mailCc);
                 }              
             }
             msg.setCc(cc);
 
+            userPreferences.addContact(from);
+            userPreferences.addContact(to);
+            userPreferences.addContact(replyto);
+            userPreferences.addContact(cc);
+
             // Using sentDate since received date is not useful in the view 
when using fetchmail
             msg.setReceivedDate(m.getSentDate());
 

Modified: 
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/preferences/UserPreferencesStorage.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/preferences/UserPreferencesStorage.java?rev=1333810&r1=1333809&r2=1333810&view=diff
==============================================================================
--- 
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/preferences/UserPreferencesStorage.java
 (original)
+++ 
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/preferences/UserPreferencesStorage.java
 Fri May  4 08:25:12 2012
@@ -23,7 +23,6 @@ import org.apache.hupa.shared.rpc.Contac
 
 import java.util.Arrays;
 import java.util.List;
-import java.util.regex.Pattern;
 
 /**
  *
@@ -60,7 +59,7 @@ public abstract class UserPreferencesSto
     final public void addContact(List<String> mails) {
         if (mails != null) {
             for (String mail: mails) {
-               if (!mail.matches(REGEX_OMITTED_EMAILS)) {
+               if (mail != null && !mail.matches(REGEX_OMITTED_EMAILS)) {
                     Contact contact = new Contact(mail);
                     addContact(contact);
                }

Modified: 
james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/ContactsHandlerTest.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/ContactsHandlerTest.java?rev=1333810&r1=1333809&r2=1333810&view=diff
==============================================================================
--- 
james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/ContactsHandlerTest.java
 (original)
+++ 
james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/ContactsHandlerTest.java
 Fri May  4 08:25:12 2012
@@ -23,14 +23,24 @@ import junit.framework.Assert;
 
 import org.apache.hupa.server.HupaGuiceTestCase;
 import org.apache.hupa.shared.rpc.Contacts;
+import org.apache.hupa.shared.rpc.ContactsResult.Contact;
 
 public class ContactsHandlerTest extends HupaGuiceTestCase {
+       
+       private Contact[] getContacts() throws Exception {
+               return contactsHandler.execute(new Contacts(), 
null).getContacts();
+       }
     
     public void testContactsHandler() throws Exception {
-        Assert.assertEquals(0, contactsHandler.execute(new Contacts(), 
null).getContacts().length);
+        Assert.assertEquals(0, getContacts().length);
         userPreferences.addContact("Somebody <[email protected]>");
         userPreferences.addContact(" Some.body   <[email protected]>  ");
-        Assert.assertEquals(1, contactsHandler.execute(new Contacts(), 
null).getContacts().length);
+        userPreferences.addContact("\"somebody\" <[email protected]>");
+        Assert.assertEquals(1, getContacts().length);
+        userPreferences.addContact("<[email protected]>");
+        userPreferences.addContact("[email protected]");
+        userPreferences.addContact("\"[email protected]\" <[email protected]>");
+        Assert.assertEquals(2, getContacts().length);
     }
     
 }

Modified: 
james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/ContactsResult.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/ContactsResult.java?rev=1333810&r1=1333809&r2=1333810&view=diff
==============================================================================
--- 
james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/ContactsResult.java
 (original)
+++ 
james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/ContactsResult.java
 Fri May  4 08:25:12 2012
@@ -25,53 +25,57 @@ import net.customware.gwt.dispatch.share
 
 public class ContactsResult implements Result, Serializable {
 
-    public static class Contact implements Result, Serializable {
-        private static final long serialVersionUID = -8632580327693416473L;
-        public String mail;
-        public String realname;
-
-        public Contact() {
-        }
-        
-        public Contact(String mail){
-            this.realname = !mail.contains("<") ? "" : 
-                             mail.replaceAll("<.+$", "")
-                             .replaceAll("^[\\s\"']+","")
-                             .replaceAll("[\\s\"']+$", "");
-            this.mail = mail.replaceAll("^.*<([^>]+)>","$1");
-        }
-
-        public Contact(String realname, String mail) {
-            this.realname = realname;
-            this.mail = mail;
-        }
-
-        public String toString() {
-            return (realname != null ? realname : "") + "<" + mail + ">";
-        }
-        
-        public String toKey() {
-            return toString().replaceAll("[^\\w\\d<@>]+", "").toLowerCase();
-        }
-        
-    }
-
-    private static final long serialVersionUID = -8740775403377441876L;
-    private Contact[] contacts;
-
-    public ContactsResult() {
-    }
-
-    public ContactsResult(Contact... contacts) {
-        this.contacts = contacts;
-    }
-
-    public Contact[] getContacts() {
-        return contacts;
-    }
-
-    public void setContacts(Contact[] contacts) {
-        this.contacts = contacts;
-    }
+       public static class Contact implements Result, Serializable {
+               private static final long serialVersionUID = 
-8632580327693416473L;
+               public String mail;
+               public String realname;
+
+               public Contact() {
+               }
+
+               public Contact(String address) {
+                       mail = address.replaceAll("^.*<([^>]+)>", "$1");
+
+                       realname = mail.equals(address) ? mail : address
+                               .replaceAll("<.+$", "")
+                               .replaceAll("^[\\s\"']+", "")
+                               .replaceAll("[\\s\"']+$", "");
+
+                       if (realname.isEmpty())
+                               realname = mail;
+               }
+
+               public Contact(String realname, String mail) {
+                       this.realname = realname;
+                       this.mail = mail;
+               }
+
+               public String toString() {
+                       return (realname != null ? realname : "") + "<" + mail 
+ ">";
+               }
+
+               public String toKey() {
+                       return toString().replaceAll("[^\\w\\d<@>]+", 
"").toLowerCase();
+               }
+
+       }
+
+       private static final long serialVersionUID = -8740775403377441876L;
+       private Contact[] contacts;
+
+       public ContactsResult() {
+       }
+
+       public ContactsResult(Contact... contacts) {
+               this.contacts = contacts;
+       }
+
+       public Contact[] getContacts() {
+               return contacts;
+       }
+
+       public void setContacts(Contact[] contacts) {
+               this.contacts = contacts;
+       }
 
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to