You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by ma...@apache.org on 2010/01/21 20:25:13 UTC
svn commit: r901833 - in /james/hupa/trunk:
server/src/main/java/org/apache/hupa/server/guice/
server/src/main/java/org/apache/hupa/server/handler/
server/src/main/java/org/apache/hupa/server/preferences/
server/src/main/java/org/apache/hupa/server/uti...
Author: manolo
Date: Thu Jan 21 19:25:13 2010
New Revision: 901833
URL: http://svn.apache.org/viewvc?rev=901833&view=rev
Log:
Created UserPreferencesStorage as an interface for storage implementations.
Created first implementation of a preferences storage using session.
Added:
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/preferences/
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/preferences/InSessionUserPreferencesStorage.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/preferences/
james/hupa/trunk/server/src/test/java/org/apache/hupa/server/preferences/UserPreferencesStorageTest.java
Modified:
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/guice/GuiceServerModule.java
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/handler/ContactsHandler.java
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/FetchMessagesHandler.java
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/FetchRecentMessagesHandler.java
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/utils/SessionUtils.java
james/hupa/trunk/server/src/test/java/org/apache/hupa/server/DemoModeTest.java
james/hupa/trunk/server/src/test/java/org/apache/hupa/server/HupaTestCase.java
james/hupa/trunk/server/src/test/java/org/apache/hupa/server/guice/GuiceTestModule.java
james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/AbstractHandlerTest.java
james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/ContactsHandlerTest.java
james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/FetchMessagesHandlerTest.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/guice/GuiceServerModule.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/guice/GuiceServerModule.java?rev=901833&r1=901832&r2=901833&view=diff
==============================================================================
--- james/hupa/trunk/server/src/main/java/org/apache/hupa/server/guice/GuiceServerModule.java (original)
+++ james/hupa/trunk/server/src/main/java/org/apache/hupa/server/guice/GuiceServerModule.java Thu Jan 21 19:25:13 2010
@@ -50,6 +50,8 @@
import org.apache.hupa.server.handler.SendMessageHandler;
import org.apache.hupa.server.handler.SetFlagsHandler;
import org.apache.hupa.server.handler.TagMessagesHandler;
+import org.apache.hupa.server.preferences.InSessionUserPreferencesStorage;
+import org.apache.hupa.server.preferences.UserPreferencesStorage;
import org.apache.hupa.server.servlet.DownloadAttachmentServlet;
import org.apache.hupa.server.servlet.MessageSourceServlet;
import org.apache.hupa.server.servlet.UploadAttachmentServlet;
@@ -111,6 +113,7 @@
bind(UploadAttachmentServlet.class).in(Singleton.class);
bind(MessageSourceServlet.class).in(Singleton.class);
bind(Session.class).toProvider(SessionProvider.class);
+ bind(UserPreferencesStorage.class).to(InSessionUserPreferencesStorage.class);
Properties properties;
try {
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=901833&r1=901832&r2=901833&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 Thu Jan 21 19:25:13 2010
@@ -19,26 +19,16 @@
package org.apache.hupa.server.handler;
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.util.ArrayList;
+import com.google.inject.Provider;
-import javax.mail.Address;
-import javax.mail.FetchProfile;
-import javax.mail.Message;
-import javax.mail.MessagingException;
-import javax.mail.Multipart;
-import javax.mail.Part;
-import javax.mail.internet.MimeUtility;
-import javax.mail.internet.MimeMessage.RecipientType;
-import javax.servlet.http.HttpSession;
+import com.sun.mail.imap.IMAPStore;
import net.customware.gwt.dispatch.server.ExecutionContext;
import net.customware.gwt.dispatch.shared.ActionException;
import org.apache.commons.logging.Log;
import org.apache.hupa.server.IMAPStoreCache;
-import org.apache.hupa.server.utils.SessionUtils;
+import org.apache.hupa.server.preferences.UserPreferencesStorage;
import org.apache.hupa.shared.data.IMAPFolder;
import org.apache.hupa.shared.data.Tag;
import org.apache.hupa.shared.data.User;
@@ -46,14 +36,27 @@
import org.apache.hupa.shared.rpc.FetchMessages;
import org.apache.hupa.shared.rpc.FetchMessagesResult;
-import com.google.inject.Provider;
-import com.sun.mail.imap.IMAPStore;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.util.ArrayList;
+
+import javax.mail.Address;
+import javax.mail.FetchProfile;
+import javax.mail.Message;
+import javax.mail.MessagingException;
+import javax.mail.Multipart;
+import javax.mail.Part;
+import javax.mail.internet.MimeUtility;
+import javax.mail.internet.MimeMessage.RecipientType;
+import javax.servlet.http.HttpSession;
public abstract class AbstractFetchMessagesHandler <A extends FetchMessages> extends AbstractSessionHandler<A, FetchMessagesResult>{
- public AbstractFetchMessagesHandler(IMAPStoreCache cache, Log logger,
- Provider<HttpSession> sessionProvider) {
+ UserPreferencesStorage userPreferences;
+
+ public AbstractFetchMessagesHandler(IMAPStoreCache cache, Log logger, Provider<HttpSession> sessionProvider, UserPreferencesStorage preferences) {
super(cache, logger, sessionProvider);
+ this.userPreferences = preferences;
}
@Override
@@ -125,7 +128,7 @@
from = m.getFrom()[0].toString().trim();
try {
from = MimeUtility.decodeText(from);
- SessionUtils.addContact(sessionProvider.get(), from);
+ userPreferences.addContact(from);
} catch (UnsupportedEncodingException e) {
logger.debug("Unable to decode from " + from + " " + e.getMessage());
}
@@ -137,7 +140,7 @@
replyto = m.getReplyTo()[0].toString().trim();
try {
replyto = MimeUtility.decodeText(replyto);
- SessionUtils.addContact(sessionProvider.get(), replyto);
+ userPreferences.addContact(replyto);
} catch (UnsupportedEncodingException e) {
logger.debug("Unable to decode replyto " + replyto + " " + e.getMessage());
}
@@ -152,7 +155,7 @@
String mailTo = null;
try {
mailTo = MimeUtility.decodeText(toArray[b].toString());
- SessionUtils.addContact(sessionProvider.get(), mailTo);
+ userPreferences.addContact(mailTo);
} catch (UnsupportedEncodingException e) {
logger.debug("Unable to decode mailTo " + mailTo + " " + e.getMessage());
}
Modified: james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/ContactsHandler.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/ContactsHandler.java?rev=901833&r1=901832&r2=901833&view=diff
==============================================================================
--- james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/ContactsHandler.java (original)
+++ james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/ContactsHandler.java Thu Jan 21 19:25:13 2010
@@ -28,8 +28,7 @@
import org.apache.commons.logging.Log;
import org.apache.hupa.server.IMAPStoreCache;
-import org.apache.hupa.server.utils.SessionUtils;
-import org.apache.hupa.shared.data.Settings;
+import org.apache.hupa.server.preferences.UserPreferencesStorage;
import org.apache.hupa.shared.rpc.Contacts;
import org.apache.hupa.shared.rpc.ContactsResult;
@@ -38,18 +37,17 @@
/**
* Handler for getting the list of contacts
*/
-public class ContactsHandler implements
- ActionHandler<Contacts, ContactsResult> {
+public class ContactsHandler implements ActionHandler<Contacts, ContactsResult> {
- private final Provider<HttpSession> sessionProvider;
+ UserPreferencesStorage userPreferences;
@Inject
- public ContactsHandler(IMAPStoreCache cache, Log logger, Provider<HttpSession> sessionProvider, Provider<Settings> settingsProvider) {
- this.sessionProvider = sessionProvider;
+ public ContactsHandler(IMAPStoreCache cache, Log logger, Provider<HttpSession> sessionProvider, UserPreferencesStorage preferences) {
+ this.userPreferences = preferences;
}
public ContactsResult execute(Contacts action, ExecutionContext context) throws ActionException {
- return new ContactsResult(SessionUtils.getContacts(sessionProvider.get()));
+ return new ContactsResult(userPreferences.getContacts());
}
public Class<Contacts> getActionType() {
Modified: james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/FetchMessagesHandler.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/FetchMessagesHandler.java?rev=901833&r1=901832&r2=901833&view=diff
==============================================================================
--- james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/FetchMessagesHandler.java (original)
+++ james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/FetchMessagesHandler.java Thu Jan 21 19:25:13 2010
@@ -33,6 +33,7 @@
import org.apache.commons.logging.Log;
import org.apache.hupa.server.IMAPStoreCache;
+import org.apache.hupa.server.preferences.UserPreferencesStorage;
import org.apache.hupa.shared.rpc.FetchMessages;
import com.google.inject.Inject;
@@ -48,8 +49,8 @@
@Inject
public FetchMessagesHandler(IMAPStoreCache cache, Log logger,
- Provider<HttpSession> provider) {
- super(cache, logger, provider);
+ Provider<HttpSession> provider, UserPreferencesStorage preferences) {
+ super(cache, logger, provider, preferences);
}
/*
Modified: james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/FetchRecentMessagesHandler.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/FetchRecentMessagesHandler.java?rev=901833&r1=901832&r2=901833&view=diff
==============================================================================
--- james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/FetchRecentMessagesHandler.java (original)
+++ james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/FetchRecentMessagesHandler.java Thu Jan 21 19:25:13 2010
@@ -29,6 +29,7 @@
import org.apache.commons.logging.Log;
import org.apache.hupa.server.IMAPStoreCache;
+import org.apache.hupa.server.preferences.UserPreferencesStorage;
import org.apache.hupa.shared.rpc.FetchRecentMessages;
import com.google.inject.Inject;
@@ -38,8 +39,8 @@
@Inject
public FetchRecentMessagesHandler(IMAPStoreCache cache, Log logger,
- Provider<HttpSession> provider) {
- super(cache, logger, provider);
+ Provider<HttpSession> provider, UserPreferencesStorage preferences) {
+ super(cache, logger, provider, preferences);
}
Added: james/hupa/trunk/server/src/main/java/org/apache/hupa/server/preferences/InSessionUserPreferencesStorage.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/preferences/InSessionUserPreferencesStorage.java?rev=901833&view=auto
==============================================================================
--- james/hupa/trunk/server/src/main/java/org/apache/hupa/server/preferences/InSessionUserPreferencesStorage.java (added)
+++ james/hupa/trunk/server/src/main/java/org/apache/hupa/server/preferences/InSessionUserPreferencesStorage.java Thu Jan 21 19:25:13 2010
@@ -0,0 +1,56 @@
+package org.apache.hupa.server.preferences;
+
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+
+import org.apache.commons.logging.Log;
+import org.apache.hupa.server.IMAPStoreCache;
+import org.apache.hupa.shared.rpc.ContactsResult.Contact;
+
+import java.util.HashMap;
+
+import javax.servlet.http.HttpSession;
+
+/**
+ * A preferences storage which uses session as repository data
+ */
+public class InSessionUserPreferencesStorage implements UserPreferencesStorage {
+
+ private final Provider<HttpSession> sessionProvider;
+
+ @Inject
+ public InSessionUserPreferencesStorage(IMAPStoreCache cache, Log logger, Provider<HttpSession> sessionProvider) {
+ this.sessionProvider = sessionProvider;
+ }
+
+ public void addContact(Contact contact) {
+
+ HttpSession session = sessionProvider.get();
+
+ @SuppressWarnings("unchecked")
+ HashMap<String, Contact> sessionContacts = (HashMap<String, Contact>)session.getAttribute("contacts");
+ if (sessionContacts==null)
+ sessionContacts=new HashMap<String, Contact>();
+
+ if (!sessionContacts.containsKey(contact.toKey())) {
+ sessionContacts.put(contact.toKey(), contact);
+ session.setAttribute("contacts", sessionContacts);
+ }
+ }
+
+ public void addContact(String mail) {
+ Contact contact = new Contact(mail);
+ addContact(contact);
+ }
+
+ public Contact[] getContacts() {
+
+ HttpSession session = sessionProvider.get();
+
+ @SuppressWarnings("unchecked")
+ HashMap<String, Contact> sessionContacts = (HashMap<String, Contact>)session.getAttribute("contacts");
+
+ return sessionContacts == null ? new Contact[]{} : sessionContacts.values().toArray(new Contact[sessionContacts.size()]);
+ }
+
+}
Added: 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=901833&view=auto
==============================================================================
--- james/hupa/trunk/server/src/main/java/org/apache/hupa/server/preferences/UserPreferencesStorage.java (added)
+++ james/hupa/trunk/server/src/main/java/org/apache/hupa/server/preferences/UserPreferencesStorage.java Thu Jan 21 19:25:13 2010
@@ -0,0 +1,30 @@
+package org.apache.hupa.server.preferences;
+
+import org.apache.hupa.shared.rpc.ContactsResult.Contact;
+
+/**
+ *
+ * Interface which defines storage operations related
+ * with user preferences
+ *
+ */
+public interface UserPreferencesStorage {
+
+ /**
+ * Add a new contact to the list.
+ * The implementation has to check for duplicates
+ */
+ public void addContact(Contact c);
+
+ /**
+ * Add a new contact to the list.
+ * The implementation has to check for duplicates
+ */
+ public void addContact(String s);
+
+ /**
+ * Get the list of contacts
+ */
+ public Contact[] getContacts();
+
+}
Modified: james/hupa/trunk/server/src/main/java/org/apache/hupa/server/utils/SessionUtils.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/utils/SessionUtils.java?rev=901833&r1=901832&r2=901833&view=diff
==============================================================================
--- james/hupa/trunk/server/src/main/java/org/apache/hupa/server/utils/SessionUtils.java (original)
+++ james/hupa/trunk/server/src/main/java/org/apache/hupa/server/utils/SessionUtils.java Thu Jan 21 19:25:13 2010
@@ -22,9 +22,6 @@
import org.apache.commons.logging.Log;
import org.apache.hupa.server.FileItemRegistry;
-import org.apache.hupa.shared.rpc.ContactsResult.Contact;
-
-import java.util.HashMap;
import javax.servlet.http.HttpSession;
@@ -41,29 +38,5 @@
}
return registry;
}
-
- public static void addContact(HttpSession session, String mail) {
- String name = !mail.contains("<") ? "" : mail.replaceAll("<.+$", "")
- .replaceAll("^[\\s\"']+","")
- .replaceAll("[\\s\"']+$", "");
- String email = mail.replaceAll("^.*<([^>]+)>","$1");
- Contact contact = new Contact(name, email);
-
- @SuppressWarnings("unchecked")
- HashMap<String, Contact> sessionContacts = (HashMap<String, Contact>)session.getAttribute("contacts");
- if (sessionContacts==null)
- sessionContacts=new HashMap<String, Contact>();
-
- if (!sessionContacts.containsKey(contact.toString())) {
- sessionContacts.put(contact.toString(), contact);
- session.setAttribute("contacts", sessionContacts);
- }
- }
-
- public static Contact[] getContacts(HttpSession session) {
- @SuppressWarnings("unchecked")
- HashMap<String, Contact> sessionContacts = (HashMap<String, Contact>)session.getAttribute("contacts");
- return sessionContacts == null ? new Contact[]{} : sessionContacts.values().toArray(new Contact[sessionContacts.size()]);
- }
}
\ No newline at end of file
Modified: james/hupa/trunk/server/src/test/java/org/apache/hupa/server/DemoModeTest.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/test/java/org/apache/hupa/server/DemoModeTest.java?rev=901833&r1=901832&r2=901833&view=diff
==============================================================================
--- james/hupa/trunk/server/src/test/java/org/apache/hupa/server/DemoModeTest.java (original)
+++ james/hupa/trunk/server/src/test/java/org/apache/hupa/server/DemoModeTest.java Thu Jan 21 19:25:13 2010
@@ -33,7 +33,7 @@
private FetchFoldersHandler fetchFoldersHandler = new FetchFoldersHandler(memoryStore, logger, httpSessionProvider);
- private FetchMessagesHandler fetchMessagesHandler = new FetchMessagesHandler(memoryStore, logger, httpSessionProvider);
+ private FetchMessagesHandler fetchMessagesHandler = new FetchMessagesHandler(memoryStore, logger, httpSessionProvider, preferences);
public void testDemoLoginUser() {
LoginUser badUser = new LoginUser("baduser", "whatever");
Modified: james/hupa/trunk/server/src/test/java/org/apache/hupa/server/HupaTestCase.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/test/java/org/apache/hupa/server/HupaTestCase.java?rev=901833&r1=901832&r2=901833&view=diff
==============================================================================
--- james/hupa/trunk/server/src/test/java/org/apache/hupa/server/HupaTestCase.java (original)
+++ james/hupa/trunk/server/src/test/java/org/apache/hupa/server/HupaTestCase.java Thu Jan 21 19:25:13 2010
@@ -27,9 +27,11 @@
import org.apache.commons.logging.Log;
import org.apache.hupa.server.guice.GuiceTestModule;
import org.apache.hupa.server.handler.AbstractSendMessageHandler;
+import org.apache.hupa.server.handler.ContactsHandler;
import org.apache.hupa.server.handler.ForwardMessageHandler;
import org.apache.hupa.server.handler.GetMessageDetailsHandler;
import org.apache.hupa.server.handler.ReplyMessageHandler;
+import org.apache.hupa.server.preferences.UserPreferencesStorage;
import org.apache.hupa.shared.rpc.SendMessage;
import com.google.inject.Injector;
@@ -51,4 +53,8 @@
protected GetMessageDetailsHandler getDetailsMsgHndl = injector.getInstance(GetMessageDetailsHandler.class);
+ protected ContactsHandler contactsHandler = injector.getInstance(ContactsHandler.class);
+
+ protected UserPreferencesStorage userPreferences = injector.getInstance(UserPreferencesStorage.class);
+
}
Modified: james/hupa/trunk/server/src/test/java/org/apache/hupa/server/guice/GuiceTestModule.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/test/java/org/apache/hupa/server/guice/GuiceTestModule.java?rev=901833&r1=901832&r2=901833&view=diff
==============================================================================
--- james/hupa/trunk/server/src/test/java/org/apache/hupa/server/guice/GuiceTestModule.java (original)
+++ james/hupa/trunk/server/src/test/java/org/apache/hupa/server/guice/GuiceTestModule.java Thu Jan 21 19:25:13 2010
@@ -41,6 +41,8 @@
import org.apache.hupa.server.mock.MockIMAPStore;
import org.apache.hupa.server.mock.MockIMAPStoreCache;
import org.apache.hupa.server.mock.MockLogProvider;
+import org.apache.hupa.server.preferences.InSessionUserPreferencesStorage;
+import org.apache.hupa.server.preferences.UserPreferencesStorage;
import javax.mail.Session;
import javax.servlet.http.HttpSession;
@@ -69,6 +71,8 @@
bind(FetchFoldersHandler.class);
bind(FetchMessagesHandler.class);
bind(ContactsHandler.class);
+
+ bind(UserPreferencesStorage.class).to(InSessionUserPreferencesStorage.class);
}
Modified: james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/AbstractHandlerTest.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/AbstractHandlerTest.java?rev=901833&r1=901832&r2=901833&view=diff
==============================================================================
--- james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/AbstractHandlerTest.java (original)
+++ james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/AbstractHandlerTest.java Thu Jan 21 19:25:13 2010
@@ -20,10 +20,7 @@
package org.apache.hupa.server.handler;
-import java.util.Properties;
-
-import javax.mail.Session;
-import javax.servlet.http.HttpSession;
+import com.google.inject.Provider;
import junit.framework.TestCase;
@@ -33,10 +30,15 @@
import org.apache.hupa.server.mock.MockIMAPStore;
import org.apache.hupa.server.mock.MockIMAPStoreCache;
import org.apache.hupa.server.mock.MockLog;
+import org.apache.hupa.server.preferences.UserPreferencesStorage;
import org.apache.hupa.shared.data.Settings;
import org.apache.hupa.shared.data.User;
+import org.apache.hupa.shared.rpc.ContactsResult.Contact;
-import com.google.inject.Provider;
+import java.util.Properties;
+
+import javax.mail.Session;
+import javax.servlet.http.HttpSession;
public abstract class AbstractHandlerTest extends TestCase{
@@ -75,6 +77,18 @@
}
});
+ protected UserPreferencesStorage preferences = new UserPreferencesStorage(){
+ public void addContact(Contact c) {
+ }
+
+ public void addContact(String s) {
+ }
+
+ public Contact[] getContacts() {
+ return null;
+ }
+ };
+
public void setUp() {
storeCache.addValidUser(user.getName(), user.getPassword());
}
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=901833&r1=901832&r2=901833&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 Thu Jan 21 19:25:13 2010
@@ -1,54 +1,18 @@
package org.apache.hupa.server.handler;
-import com.sun.mail.imap.IMAPStore;
+import junit.framework.Assert;
import org.apache.hupa.server.HupaTestCase;
-import org.apache.hupa.server.IMAPStoreCache;
-import org.apache.hupa.server.guice.DemoModeConstants;
-import org.apache.hupa.server.mock.MockIMAPStoreCache;
-import org.apache.hupa.server.utils.SessionUtils;
-import org.apache.hupa.shared.data.IMAPFolder;
-import org.apache.hupa.shared.data.User;
-import org.apache.hupa.shared.rpc.FetchFolders;
-import org.apache.hupa.shared.rpc.FetchMessages;
-import org.apache.hupa.shared.rpc.FetchMessagesResult;
-
-import javax.servlet.http.HttpSession;
+import org.apache.hupa.shared.rpc.Contacts;
public class ContactsHandlerTest extends HupaTestCase {
-
- public void testPutContactsInSession() throws Exception {
-
- HttpSession httpSession = injector.getInstance(HttpSession.class);
-
- SessionUtils.addContact(httpSession, " ' \"Somebody\" <me...@domain.com>");
- assertEquals("Somebody",SessionUtils.getContacts(httpSession)[0].realname);
- assertEquals("me@domain.com",SessionUtils.getContacts(httpSession)[0].mail);
-
- }
-
- public void testFetchMessagesFillsContactsList() throws Exception {
-
- User demouser = DemoModeConstants.demoUser;
-
- HttpSession httpSession = injector.getInstance(HttpSession.class);
- httpSession.setAttribute("user", demouser);
-
- IMAPStoreCache storeCache = injector.getInstance(IMAPStoreCache.class);
- IMAPStore store = injector.getInstance(IMAPStore.class);
- ((MockIMAPStoreCache)storeCache).addValidUser(demouser, store);
-
- FetchFoldersHandler fetchFoldersHandler = injector.getInstance(FetchFoldersHandler.class);
- fetchFoldersHandler.execute(new FetchFolders(), null);
-
- IMAPFolder folder = new IMAPFolder(demouser.getSettings().getInboxFolderName());
- FetchMessagesHandler fetchMessagesHandler = injector.getInstance(FetchMessagesHandler.class);
- FetchMessagesResult result = fetchMessagesHandler.execute(new FetchMessages(folder, 0, 10, null), null);
-
- assertTrue(result.getRealCount()>1);
- assertTrue(SessionUtils.getContacts(httpSession).length>1);
-
+
+ public void testContactsHandler() throws Exception {
+ Assert.assertEquals(0, contactsHandler.execute(new Contacts(), null).getContacts().length);
+ userPreferences.addContact("Somebody <so...@foo.com>");
+ userPreferences.addContact(" Some.body <so...@foo.com> ");
+ Assert.assertEquals(1, contactsHandler.execute(new Contacts(), null).getContacts().length);
}
}
Modified: james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/FetchMessagesHandlerTest.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/FetchMessagesHandlerTest.java?rev=901833&r1=901832&r2=901833&view=diff
==============================================================================
--- james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/FetchMessagesHandlerTest.java (original)
+++ james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/FetchMessagesHandlerTest.java Thu Jan 21 19:25:13 2010
@@ -36,7 +36,7 @@
public class FetchMessagesHandlerTest extends AbstractHandlerTest{
- FetchMessagesHandler handler = new FetchMessagesHandler(storeCache, logger, httpSessionProvider);
+ FetchMessagesHandler handler = new FetchMessagesHandler(storeCache, logger, httpSessionProvider, preferences);
public void setUp() {
super.setUp();
Added: james/hupa/trunk/server/src/test/java/org/apache/hupa/server/preferences/UserPreferencesStorageTest.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/test/java/org/apache/hupa/server/preferences/UserPreferencesStorageTest.java?rev=901833&view=auto
==============================================================================
--- james/hupa/trunk/server/src/test/java/org/apache/hupa/server/preferences/UserPreferencesStorageTest.java (added)
+++ james/hupa/trunk/server/src/test/java/org/apache/hupa/server/preferences/UserPreferencesStorageTest.java Thu Jan 21 19:25:13 2010
@@ -0,0 +1,57 @@
+package org.apache.hupa.server.preferences;
+
+import com.sun.mail.imap.IMAPStore;
+
+import org.apache.hupa.server.HupaTestCase;
+import org.apache.hupa.server.IMAPStoreCache;
+import org.apache.hupa.server.guice.DemoModeConstants;
+import org.apache.hupa.server.handler.FetchFoldersHandler;
+import org.apache.hupa.server.handler.FetchMessagesHandler;
+import org.apache.hupa.server.mock.MockIMAPStoreCache;
+import org.apache.hupa.shared.data.IMAPFolder;
+import org.apache.hupa.shared.data.User;
+import org.apache.hupa.shared.rpc.FetchFolders;
+import org.apache.hupa.shared.rpc.FetchMessages;
+import org.apache.hupa.shared.rpc.FetchMessagesResult;
+
+import javax.servlet.http.HttpSession;
+
+
+public class UserPreferencesStorageTest extends HupaTestCase {
+
+ public void testPutContactsInSession() throws Exception {
+ UserPreferencesStorage userPreferences = injector.getInstance(UserPreferencesStorage.class);
+
+ userPreferences.addContact(" ' \"Somebody\" <me...@domain.com>");
+ assertEquals("Somebody", userPreferences.getContacts()[0].realname);
+ assertEquals("me@domain.com", userPreferences.getContacts()[0].mail);
+
+ }
+
+ public void testFetchMessagesFillsContactsList() throws Exception {
+
+ assertEquals(0, userPreferences.getContacts().length);
+
+ User demouser = DemoModeConstants.demoUser;
+
+ HttpSession httpSession = injector.getInstance(HttpSession.class);
+ httpSession.setAttribute("user", demouser);
+
+ IMAPStoreCache storeCache = injector.getInstance(IMAPStoreCache.class);
+ IMAPStore store = injector.getInstance(IMAPStore.class);
+ ((MockIMAPStoreCache)storeCache).addValidUser(demouser, store);
+
+ FetchFoldersHandler fetchFoldersHandler = injector.getInstance(FetchFoldersHandler.class);
+ fetchFoldersHandler.execute(new FetchFolders(), null);
+
+ IMAPFolder folder = new IMAPFolder(demouser.getSettings().getInboxFolderName());
+ FetchMessagesHandler fetchMessagesHandler = injector.getInstance(FetchMessagesHandler.class);
+ FetchMessagesResult result = fetchMessagesHandler.execute(new FetchMessages(folder, 0, 10, null), null);
+
+ assertTrue(result.getRealCount()>1);
+
+ assertTrue(userPreferences.getContacts().length>1);
+
+ }
+
+}
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=901833&r1=901832&r2=901833&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 Thu Jan 21 19:25:13 2010
@@ -30,6 +30,14 @@
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;
@@ -39,6 +47,11 @@
public String toString() {
return (realname != null ? realname : "") + "<" + mail + ">";
}
+
+ public String toKey() {
+ return toString().replaceAll("[^\\w\\d<@>]+", "").toLowerCase();
+ }
+
}
private static final long serialVersionUID = -8740775403377441876L;
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org