Author: manolo
Date: Mon May  7 11:22:55 2012
New Revision: 1334957

URL: http://svn.apache.org/viewvc?rev=1334957&view=rev
Log:
For some reason we lost the ability to run integraton tests. Now it is possible 
to run tests against real imap servers just replacing mockProperties by 
realProperties. Many other changes in tests and configuration as well

Modified:
    
james/hupa/trunk/mock/src/main/java/org/apache/hupa/server/guice/AbstractGuiceTestModule.java
    
james/hupa/trunk/mock/src/main/java/org/apache/hupa/server/mock/MockConstants.java
    
james/hupa/trunk/mock/src/main/java/org/apache/hupa/server/mock/MockHttpSession.java
    
james/hupa/trunk/mock/src/main/java/org/apache/hupa/server/mock/MockHttpSessionProvider.java
    
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/preferences/InImapUserPreferencesStorage.java
    
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/utils/ConfigurationProperties.java
    
james/hupa/trunk/server/src/test/java/org/apache/hupa/server/guice/GuiceServerTestModule.java
    
james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/HandlersTest.java
    
james/hupa/trunk/server/src/test/java/org/apache/hupa/server/preferences/InImapUserPreferencesStorageTest.java

Modified: 
james/hupa/trunk/mock/src/main/java/org/apache/hupa/server/guice/AbstractGuiceTestModule.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/mock/src/main/java/org/apache/hupa/server/guice/AbstractGuiceTestModule.java?rev=1334957&r1=1334956&r2=1334957&view=diff
==============================================================================
--- 
james/hupa/trunk/mock/src/main/java/org/apache/hupa/server/guice/AbstractGuiceTestModule.java
 (original)
+++ 
james/hupa/trunk/mock/src/main/java/org/apache/hupa/server/guice/AbstractGuiceTestModule.java
 Mon May  7 11:22:55 2012
@@ -116,27 +116,17 @@ public abstract class AbstractGuiceTestM
             put("IMAPServerPort", "143");
             put("IMAPS", "false");
             
-            put("TrustStore", "my-truststore");
-            put("TrustStorePassword", "my-truststore-password");
-            
-            put("IMAPConnectionPoolSize", "4");
-            put("IMAPConnectionPoolTimeout", "300000");
-            
             put("DefaultInboxFolder", "INBOX");
             put("DefaultTrashFolder", "Trash");
             put("DefaultSentFolder", "Sent");
             put("DefaultDraftsFolder", "Drafts");
             
-            put("PostFetchMessageCount", "0");
-
             put("SMTPServerAddress", "localhost");
             put("SMTPServerPort", "25");
             put("SMTPS", "false");
             put("SMTPAuth", "true");
             
-            put("SessionDebug", "false");
-            
-            put("DefaultUserSessionId", "just_an_id");
+            put("SessionDebug", "true");
         }
     };
     
@@ -156,27 +146,17 @@ public abstract class AbstractGuiceTestM
             put("IMAPServerPort", "143");
             put("IMAPS", "false");
             
-            put("TrustStore", "my-truststore");
-            put("TrustStorePassword", "my-truststore-password");
-            
-            put("IMAPConnectionPoolSize", "4");
-            put("IMAPConnectionPoolTimeout", "300000");
-            
             put("DefaultInboxFolder", "INBOX");
             put("DefaultTrashFolder", "INBOX.Trash");
             put("DefaultSentFolder", "INBOX.Sent");
             put("DefaultDraftsFolder", "INBOX.Drafts");
             
-            put("PostFetchMessageCount", "0");
-
             put("SMTPServerAddress", "mail.hotelsearch.com");
             put("SMTPServerPort", "25");
             put("SMTPS", "false");
             put("SMTPAuth", "true");
             
-            put("SessionDebug", "false");
-            
-            put("DefaultUserSessionId", "just_an_id");
+            put("SessionDebug", "true");
         }
     };
     
@@ -195,9 +175,6 @@ public abstract class AbstractGuiceTestM
             put("IMAPServerPort", "993");
             put("IMAPS", "true");
             
-            put("TrustStore", "my-truststore");
-            put("TrustStorePassword", "my-truststore-password");
-            
             put("IMAPConnectionPoolSize", "4");
             put("IMAPConnectionPoolTimeout", "300000");
             
@@ -206,16 +183,12 @@ public abstract class AbstractGuiceTestM
             put("DefaultSentFolder", "[Gmail]/Sent Mail");
             put("DefaultDraftsFolder", "[Gmail]/Drafts");
             
-            put("PostFetchMessageCount", "0");
-
             put("SMTPServerAddress", "smtp.gmail.com");
             put("SMTPServerPort", "465");
             put("SMTPS", "true");
             put("SMTPAuth", "true");
             
-            put("SessionDebug", "false");
-            
-            put("DefaultUserSessionId", "just_an_id");
+            put("SessionDebug", "true");
         }
     };
 

Modified: 
james/hupa/trunk/mock/src/main/java/org/apache/hupa/server/mock/MockConstants.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/mock/src/main/java/org/apache/hupa/server/mock/MockConstants.java?rev=1334957&r1=1334956&r2=1334957&view=diff
==============================================================================
--- 
james/hupa/trunk/mock/src/main/java/org/apache/hupa/server/mock/MockConstants.java
 (original)
+++ 
james/hupa/trunk/mock/src/main/java/org/apache/hupa/server/mock/MockConstants.java
 Mon May  7 11:22:55 2012
@@ -28,6 +28,8 @@ import java.util.Properties;
  * Constants and properties used for mock mode
  */
 public class MockConstants {
+    
+    public static String SESSION_ID = "MockID";
      
     public final static Settings mockSettings = new Settings() {
         private static final long serialVersionUID = 1L;
@@ -44,7 +46,6 @@ public class MockConstants {
         {
             put("Username", MockIMAPStore.MOCK_LOGIN);
             put("Password", MockIMAPStore.MOCK_LOGIN);
-            put("DefaultUserSessionId", "DEMO_ID");
 
             put("IMAPServerAddress", MockIMAPStore.MOCK_HOST);
             put("SMTPServerAddress", MockIMAPStore.MOCK_HOST);

Modified: 
james/hupa/trunk/mock/src/main/java/org/apache/hupa/server/mock/MockHttpSession.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/mock/src/main/java/org/apache/hupa/server/mock/MockHttpSession.java?rev=1334957&r1=1334956&r2=1334957&view=diff
==============================================================================
--- 
james/hupa/trunk/mock/src/main/java/org/apache/hupa/server/mock/MockHttpSession.java
 (original)
+++ 
james/hupa/trunk/mock/src/main/java/org/apache/hupa/server/mock/MockHttpSession.java
 Mon May  7 11:22:55 2012
@@ -30,7 +30,6 @@ import javax.servlet.http.HttpSession;
 import javax.servlet.http.HttpSessionContext;
 
 import com.google.inject.Inject;
-import com.google.inject.name.Named;
 
 @SuppressWarnings("deprecation")
 public class MockHttpSession implements HttpSession{
@@ -41,9 +40,9 @@ public class MockHttpSession implements 
     private static int seq = 0;
     
     @Inject
-    public MockHttpSession(@Named("DefaultUserSessionId") String id) {
+    public MockHttpSession() {
         cTime = System.currentTimeMillis();
-        this.id = id + "-" + seq++;
+        this.id = MockConstants.SESSION_ID + "-" + seq++;
     }
     
     public Object getAttribute(String name) {

Modified: 
james/hupa/trunk/mock/src/main/java/org/apache/hupa/server/mock/MockHttpSessionProvider.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/mock/src/main/java/org/apache/hupa/server/mock/MockHttpSessionProvider.java?rev=1334957&r1=1334956&r2=1334957&view=diff
==============================================================================
--- 
james/hupa/trunk/mock/src/main/java/org/apache/hupa/server/mock/MockHttpSessionProvider.java
 (original)
+++ 
james/hupa/trunk/mock/src/main/java/org/apache/hupa/server/mock/MockHttpSessionProvider.java
 Mon May  7 11:22:55 2012
@@ -18,19 +18,18 @@
  ****************************************************************/
 package org.apache.hupa.server.mock;
 
+import javax.servlet.http.HttpSession;
+
 import com.google.inject.Inject;
 import com.google.inject.Provider;
-import com.google.inject.name.Named;
-
-import javax.servlet.http.HttpSession;
 
 
 public class MockHttpSessionProvider implements Provider<HttpSession> {
     static HttpSession session = null;
     @Inject
-    public MockHttpSessionProvider(@Named("DefaultUserSessionId") String id) {
+    public MockHttpSessionProvider() {
         if (session == null) {
-            session = new MockHttpSession(id);
+            session = new MockHttpSession();
         }
     }
     public HttpSession get() {

Modified: 
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/preferences/InImapUserPreferencesStorage.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/preferences/InImapUserPreferencesStorage.java?rev=1334957&r1=1334956&r2=1334957&view=diff
==============================================================================
--- 
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/preferences/InImapUserPreferencesStorage.java
 (original)
+++ 
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/preferences/InImapUserPreferencesStorage.java
 Mon May  7 11:22:55 2012
@@ -62,6 +62,7 @@ import com.sun.mail.imap.IMAPStore;
  * @author manolo
  */
 public class InImapUserPreferencesStorage extends UserPreferencesStorage {
+       
 
     // User preferences are saved in IMAP but there is a delay between a new
     // contact is added an the save action. It saves number of operations in

Modified: 
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/utils/ConfigurationProperties.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/utils/ConfigurationProperties.java?rev=1334957&r1=1334956&r2=1334957&view=diff
==============================================================================
--- 
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/utils/ConfigurationProperties.java
 (original)
+++ 
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/utils/ConfigurationProperties.java
 Mon May  7 11:22:55 2012
@@ -53,8 +53,7 @@ public enum ConfigurationProperties {
 
     // Used only in demo mode
     USERNAME("Username", false, null),
-    PASSWORD("Password", false, null),
-    SESSIONID("DefaultUserSessionId", false, null);
+    PASSWORD("Password", false, null);
     
     private String property;
     private boolean mandatory;

Modified: 
james/hupa/trunk/server/src/test/java/org/apache/hupa/server/guice/GuiceServerTestModule.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/server/src/test/java/org/apache/hupa/server/guice/GuiceServerTestModule.java?rev=1334957&r1=1334956&r2=1334957&view=diff
==============================================================================
--- 
james/hupa/trunk/server/src/test/java/org/apache/hupa/server/guice/GuiceServerTestModule.java
 (original)
+++ 
james/hupa/trunk/server/src/test/java/org/apache/hupa/server/guice/GuiceServerTestModule.java
 Mon May  7 11:22:55 2012
@@ -26,6 +26,7 @@ import javax.servlet.http.HttpSession;
 
 import org.apache.commons.logging.Log;
 import org.apache.hupa.server.IMAPStoreCache;
+import org.apache.hupa.server.InMemoryIMAPStoreCache;
 import 
org.apache.hupa.server.guice.demo.DemoGuiceServerModule.DemoIMAPStoreCache;
 import org.apache.hupa.server.guice.providers.DefaultUserSettingsProvider;
 import org.apache.hupa.server.guice.providers.JavaMailSessionProvider;
@@ -55,6 +56,7 @@ import org.apache.hupa.shared.data.User;
 import org.apache.hupa.shared.rpc.Contacts;
 import org.apache.hupa.shared.rpc.SendMessage;
 
+import com.google.inject.Provider;
 import com.google.inject.Singleton;
 import com.google.inject.name.Names;
 import com.sun.mail.imap.IMAPStore;
@@ -64,44 +66,53 @@ import com.sun.mail.imap.IMAPStore;
  */
 public class GuiceServerTestModule extends AbstractGuiceTestModule {
 
-  @Override
-  protected void configureHandlers() {
-      Properties properties = MockConstants.mockProperties;
-      ConfigurationProperties.validateProperties(properties);
-
-      Names.bindProperties(binder(), properties);
-      
-      bind(Session.class).toProvider(JavaMailSessionProvider.class);
-      bind(HttpSession.class).toProvider(MockHttpSessionProvider.class);
-      
bind(Settings.class).toProvider(DefaultUserSettingsProvider.class).in(Singleton.class);
-      bind(Log.class).toProvider(MockLogProvider.class).in(Singleton.class);
-
-      bind(IMAPStore.class).to(MockIMAPStore.class);
-      
bind(IMAPStoreCache.class).to(DemoIMAPStoreCache.class).in(Singleton.class);
-
-      bind(LoginUserHandler.class);
-      bind(LogoutUserHandler.class);
-      bind(IdleHandler.class);
-      
-      bind(FetchFoldersHandler.class);
-      bind(CreateFolderHandler.class);
-      bind(DeleteFolderHandler.class);
-      bind(FetchMessagesHandler.class);
-      bind(DeleteMessageByUidHandler.class);
-      bind(GetMessageDetailsHandler.class);
-      bind(AbstractSendMessageHandler.class).to(SendMessageHandler.class);
-      bind(SendMessageHandler.class);
-      bind(ReplyMessageHandler.class);
-      bind(ForwardMessageHandler.class);
-      
-      bindHandler(Contacts.class, ContactsHandler.class);
-      bindHandler(SendMessage.class, SendMessageHandler.class);
-      
-      
bind(UserPreferencesStorage.class).to(InSessionUserPreferencesStorage.class);
-      
-      bind(User.class).to(TestUser.class).in(Singleton.class);
-      bind(Properties.class).toInstance(properties);
-
-  }
+    protected Class<? extends UserPreferencesStorage> 
userPreferencesStorageClass = InSessionUserPreferencesStorage.class;
+    protected Class<? extends Provider<Log>> logProviderClass = 
MockLogProvider.class;
+    protected Properties properties = MockConstants.mockProperties;
+
+    @Override
+    protected void configureHandlers() {
+        ConfigurationProperties.validateProperties(properties);
+        Names.bindProperties(binder(), properties);
+
+        bind(Session.class).toProvider(JavaMailSessionProvider.class);
+        bind(HttpSession.class).toProvider(MockHttpSessionProvider.class);
+        bind(Settings.class).toProvider(DefaultUserSettingsProvider.class).in(
+                Singleton.class);
+        bind(Log.class).toProvider(logProviderClass).in(Singleton.class);
+
+        bind(IMAPStore.class).to(MockIMAPStore.class);
+
+        if (properties == MockConstants.mockProperties) {
+            bind(IMAPStoreCache.class).to(DemoIMAPStoreCache.class).in(
+                    Singleton.class);
+        } else {
+            bind(IMAPStoreCache.class).to(InMemoryIMAPStoreCache.class).in(
+                    Singleton.class);
+        }
+
+        bind(LoginUserHandler.class);
+        bind(LogoutUserHandler.class);
+        bind(IdleHandler.class);
+
+        bind(FetchFoldersHandler.class);
+        bind(CreateFolderHandler.class);
+        bind(DeleteFolderHandler.class);
+        bind(FetchMessagesHandler.class);
+        bind(DeleteMessageByUidHandler.class);
+        bind(GetMessageDetailsHandler.class);
+        bind(AbstractSendMessageHandler.class).to(SendMessageHandler.class);
+        bind(SendMessageHandler.class);
+        bind(ReplyMessageHandler.class);
+        bind(ForwardMessageHandler.class);
+
+        bindHandler(Contacts.class, ContactsHandler.class);
+        bindHandler(SendMessage.class, SendMessageHandler.class);
+
+        bind(UserPreferencesStorage.class).to(userPreferencesStorageClass);
+
+        bind(User.class).to(TestUser.class).in(Singleton.class);
+        bind(Properties.class).toInstance(properties);
+    }
 
 }
\ No newline at end of file

Modified: 
james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/HandlersTest.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/HandlersTest.java?rev=1334957&r1=1334956&r2=1334957&view=diff
==============================================================================
--- 
james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/HandlersTest.java
 (original)
+++ 
james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/HandlersTest.java
 Mon May  7 11:22:55 2012
@@ -18,23 +18,28 @@
  ****************************************************************/
 package org.apache.hupa.server.handler;
 
-import com.google.inject.Module;
+import java.io.ByteArrayInputStream;
 
-import com.sun.mail.imap.IMAPStore;
+import javax.mail.Folder;
+import javax.mail.Message;
+import javax.mail.MessagingException;
+import javax.mail.internet.MimeMessage;
 
 import net.customware.gwt.dispatch.shared.ActionException;
 
 import org.apache.hupa.server.HupaGuiceTestCase;
 import org.apache.hupa.server.guice.GuiceServerTestModule;
+import org.apache.hupa.server.guice.providers.LogProvider;
 import org.apache.hupa.shared.data.IMAPFolder;
 import org.apache.hupa.shared.rpc.CreateFolder;
 import org.apache.hupa.shared.rpc.DeleteFolder;
 import org.apache.hupa.shared.rpc.FetchFolders;
 import org.apache.hupa.shared.rpc.FetchFoldersResult;
+import org.apache.hupa.shared.rpc.FetchMessages;
+import org.apache.hupa.shared.rpc.FetchMessagesResult;
 
-import javax.mail.Folder;
-import javax.mail.Message;
-import javax.mail.MessagingException;
+import com.google.inject.Module;
+import com.sun.mail.imap.IMAPStore;
 
 public class HandlersTest extends HupaGuiceTestCase {
 
@@ -48,7 +53,7 @@ public class HandlersTest extends HupaGu
         public MyModule() {
             // properties = courierProperties;
             // properties = gmailProperties;
-            // logClass = LogProvider.class;
+            // logProviderClass = LogProvider.class;
         }
     }
     
@@ -57,16 +62,36 @@ public class HandlersTest extends HupaGu
         return new Module[]{new MyModule()};
     }
 
-    public void testLoginAndFetchFolders() {
-        try {
-            org.apache.hupa.shared.rpc.LoginUser l = new 
org.apache.hupa.shared.rpc.LoginUser(testUser.getName(),testUser.getPassword());
-            loginUser.execute(l, null);
-            FetchFoldersResult result = fetchFoldersHandler.execute(new 
FetchFolders(), null);
-            assertNotNull(result);
-        } catch (ActionException e) {
-            e.printStackTrace();
-            fail("Shouldn't throw an exception");
+    public void testLoginAndFetchFolders() throws Exception {
+        org.apache.hupa.shared.rpc.LoginUser l = new 
org.apache.hupa.shared.rpc.LoginUser(testUser.getName(),testUser.getPassword());
+        loginUser.execute(l, null);
+        FetchFoldersResult result = fetchFoldersHandler.execute(new 
FetchFolders(), null);
+        assertNotNull(result);
+    }
+    
+    
+    public void testFetchMessages() throws Exception {
+        IMAPStore store = storeCache.get(testUser);
+        
+        String folderName = testUser.getSettings().getInboxFolderName();
+        IMAPFolder sFolder = new IMAPFolder();
+        sFolder.setFullName(folderName);
+        
+        com.sun.mail.imap.IMAPFolder f1 = 
(com.sun.mail.imap.IMAPFolder)store.getFolder(sFolder.getFullName());
+        assertTrue(f1.exists());
+        
+        FetchMessagesResult result = fetchMessagesHandler.execute(new 
FetchMessages(sFolder, 0, 100, ""), null);
+        int nmsgs = result.getMessages().size();
+
+        ByteArrayInputStream is = new ByteArrayInputStream("From: 
[email protected]\nTo: [email protected]\nSubject: something\n\ndata".getBytes());
+        MimeMessage msg = new MimeMessage(session, is);
+        if (!f1.isOpen()) {
+            f1.open(Folder.READ_WRITE);
         }
+        f1.addMessages(new Message[]{msg});
+        
+        result = fetchMessagesHandler.execute(new FetchMessages(sFolder, 0, 
100, ""), null);
+        assertEquals(1, result.getMessages().size() - nmsgs);
     }
     
     public void testCreateAndDeleteFolder() throws MessagingException {

Modified: 
james/hupa/trunk/server/src/test/java/org/apache/hupa/server/preferences/InImapUserPreferencesStorageTest.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/server/src/test/java/org/apache/hupa/server/preferences/InImapUserPreferencesStorageTest.java?rev=1334957&r1=1334956&r2=1334957&view=diff
==============================================================================
--- 
james/hupa/trunk/server/src/test/java/org/apache/hupa/server/preferences/InImapUserPreferencesStorageTest.java
 (original)
+++ 
james/hupa/trunk/server/src/test/java/org/apache/hupa/server/preferences/InImapUserPreferencesStorageTest.java
 Mon May  7 11:22:55 2012
@@ -21,53 +21,22 @@ package org.apache.hupa.server.preferenc
 
 import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.Properties;
 
 import javax.mail.Flags;
 import javax.mail.Folder;
-import javax.mail.Session;
-import javax.servlet.http.HttpSession;
 
-import org.apache.commons.logging.Log;
 import org.apache.hupa.server.HupaGuiceTestCase;
-import org.apache.hupa.server.IMAPStoreCache;
 import org.apache.hupa.server.guice.GuiceServerTestModule;
-import 
org.apache.hupa.server.guice.demo.DemoGuiceServerModule.DemoIMAPStoreCache;
-import org.apache.hupa.server.guice.providers.DefaultUserSettingsProvider;
-import org.apache.hupa.server.guice.providers.JavaMailSessionProvider;
-import org.apache.hupa.server.handler.AbstractSendMessageHandler;
-import org.apache.hupa.server.handler.ContactsHandler;
-import org.apache.hupa.server.handler.CreateFolderHandler;
-import org.apache.hupa.server.handler.DeleteFolderHandler;
-import org.apache.hupa.server.handler.DeleteMessageByUidHandler;
-import org.apache.hupa.server.handler.FetchFoldersHandler;
-import org.apache.hupa.server.handler.FetchMessagesHandler;
-import org.apache.hupa.server.handler.ForwardMessageHandler;
-import org.apache.hupa.server.handler.GetMessageDetailsHandler;
-import org.apache.hupa.server.handler.IdleHandler;
-import org.apache.hupa.server.handler.LoginUserHandler;
-import org.apache.hupa.server.handler.LogoutUserHandler;
-import org.apache.hupa.server.handler.ReplyMessageHandler;
-import org.apache.hupa.server.handler.SendMessageHandler;
-import org.apache.hupa.server.mock.MockConstants;
-import org.apache.hupa.server.mock.MockHttpSessionProvider;
-import org.apache.hupa.server.mock.MockIMAPStore;
-import org.apache.hupa.server.mock.MockLogProvider;
-import org.apache.hupa.server.utils.ConfigurationProperties;
+import org.apache.hupa.server.guice.providers.LogProvider;
 import org.apache.hupa.server.utils.SessionUtils;
 import org.apache.hupa.server.utils.TestUtils;
 import org.apache.hupa.shared.data.IMAPFolder;
 import org.apache.hupa.shared.data.SMTPMessage;
-import org.apache.hupa.shared.data.Settings;
-import org.apache.hupa.shared.data.User;
-import org.apache.hupa.shared.rpc.Contacts;
 import org.apache.hupa.shared.rpc.FetchMessages;
 import org.apache.hupa.shared.rpc.FetchMessagesResult;
 import org.apache.hupa.shared.rpc.SendMessage;
 
 import com.google.inject.Module;
-import com.google.inject.Singleton;
-import com.google.inject.name.Names;
 import com.sun.mail.imap.IMAPStore;
 
 public class InImapUserPreferencesStorageTest extends HupaGuiceTestCase {
@@ -79,61 +48,28 @@ public class InImapUserPreferencesStorag
          - Be sure the user and password are set correctly
          - Comment the delay
      */
-    static class MyModule extends GuiceServerTestModule {
-        public MyModule() {
+    static class InImapUserPreferencesGuiceModule extends 
GuiceServerTestModule {
+       public InImapUserPreferencesGuiceModule() {
+               
             // Select a valid imap provider, comment all to use Mock
             // properties = courierProperties;
             // properties = gmailProperties;
             // properties = jamesProperties;
-            
-            // Uncomment to use production logger
-            // logClass = LogProvider.class;
 
-            // Change the default delay to run test faster
-            InImapUserPreferencesStorage.IMAP_SAVE_DELAY = 400;
-        }
-
-        @Override
-        protected void configureHandlers() {
-            Properties p = MockConstants.mockProperties;
-            ConfigurationProperties.validateProperties(p);
-            Names.bindProperties(binder(), p);
-            
-            bind(Session.class).toProvider(JavaMailSessionProvider.class);
-            bind(HttpSession.class).toProvider(MockHttpSessionProvider.class);
-            
bind(Settings.class).toProvider(DefaultUserSettingsProvider.class).in(Singleton.class);
-            
bind(Log.class).toProvider(MockLogProvider.class).in(Singleton.class);
-
-            bind(IMAPStore.class).to(MockIMAPStore.class);
-            
bind(IMAPStoreCache.class).to(DemoIMAPStoreCache.class).in(Singleton.class);
-
-            bind(LoginUserHandler.class);
-            bind(LogoutUserHandler.class);
-            bind(IdleHandler.class);
+           // Uncomment to use production logger
+            logProviderClass = LogProvider.class;
+               
+            userPreferencesStorageClass = InImapUserPreferencesStorage.class;
             
-            bind(FetchFoldersHandler.class);
-            bind(CreateFolderHandler.class);
-            bind(DeleteFolderHandler.class);
-            bind(FetchMessagesHandler.class);
-            bind(DeleteMessageByUidHandler.class);
-            bind(GetMessageDetailsHandler.class);
-            
bind(AbstractSendMessageHandler.class).to(SendMessageHandler.class);
-            bind(SendMessageHandler.class);
-            bind(ReplyMessageHandler.class);
-            bind(ForwardMessageHandler.class);
-            
-            bindHandler(Contacts.class, ContactsHandler.class);
-            bindHandler(SendMessage.class, SendMessageHandler.class);
-            
-            
bind(UserPreferencesStorage.class).to(InImapUserPreferencesStorage.class);
-            
-            bind(User.class).to(TestUser.class).in(Singleton.class);
+            // to run test faster
+            InImapUserPreferencesStorage.IMAP_SAVE_DELAY = 400;
         }
+        
     }
     
     @Override
     protected Module[] getModules() {
-        return new Module[]{new MyModule()};
+        return new Module[]{new InImapUserPreferencesGuiceModule()};
     }
     
     /**
@@ -234,18 +170,19 @@ public class InImapUserPreferencesStorag
         smtpmsg.setCc(new ArrayList<String>());
         smtpmsg.setBcc(new ArrayList<String>());
         SendMessage action = new SendMessage(smtpmsg);
-        sendMessageHandler.execute(action, null);
-
-        // The email has to be added to the contact list 
-        assertEquals(1, userPreferences.getContacts().length);
 
-        // The imap is saved asynchronously after a delay, so the folder 
exists after a while
         String folderName = testUser.getSettings().getDraftsFolderName();
+        
         Folder folder = store.getFolder(folderName);
         folder = store.getFolder(folderName);
         if (folder.exists())
-            assertTrue(folder.getMessageCount() == 0);
+            assertEquals("Folder " + folderName + " has messages" , 0, 
folder.getMessageCount());
         
+        // When sending a new email new addresses should be added to the 
contact list 
+        sendMessageHandler.execute(action, null);
+        assertEquals(1, userPreferences.getContacts().length);
+
+        // The imap is saved asynchronously after a delay, so the folder 
exists after a while
         Thread.sleep(InImapUserPreferencesStorage.IMAP_SAVE_DELAY + 500);
         folder = store.getFolder(folderName);
         assertNotNull(folder);



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

Reply via email to