| /**************************************************************** |
| * Licensed to the Apache Software Foundation (ASF) under one * |
| * or more contributor license agreements. See the NOTICE file * |
| * distributed with this work for additional information * |
| * regarding copyright ownership. The ASF licenses this file * |
| * to you under the Apache License, Version 2.0 (the * |
| * "License"); you may not use this file except in compliance * |
| * with the License. You may obtain a copy of the License at * |
| * * |
| * http://www.apache.org/licenses/LICENSE-2.0 * |
| * * |
| * Unless required by applicable law or agreed to in writing, * |
| * software distributed under the License is distributed on an * |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * |
| * KIND, either express or implied. See the License for the * |
| * specific language governing permissions and limitations * |
| * under the License. * |
| ****************************************************************/ |
| |
| package org.apache.hupa.server.handler; |
| |
| import org.apache.hupa.server.HupaGuiceTestCase; |
| import org.apache.hupa.server.mock.MockIMAPFolder; |
| import org.apache.hupa.shared.data.ImapFolderImpl; |
| import org.apache.hupa.shared.rpc.FetchMessages; |
| import org.apache.hupa.shared.rpc.FetchMessagesResult; |
| |
| import java.io.ByteArrayInputStream; |
| import java.util.ArrayList; |
| |
| import javax.mail.Flags; |
| import javax.mail.Folder; |
| import javax.mail.Message; |
| import javax.mail.Flags.Flag; |
| import javax.mail.internet.MimeMessage; |
| |
| public class FetchMessagesHandlerTest extends HupaGuiceTestCase { |
| |
| public void testConvert() throws Exception { |
| MockIMAPFolder f = (MockIMAPFolder)store.getFolder("WHATEVER"); |
| f.create(Folder.HOLDS_MESSAGES); |
| |
| <<<<<<< HEAD |
| <<<<<<< HEAD |
| <<<<<<< HEAD |
| ByteArrayInputStream is = new ByteArrayInputStream("From: \"a b c\"<aa@foo.com>\nTo: b@foo.com\nSubject: something\n\ndata".getBytes()); |
| MimeMessage m1 = new MimeMessage(session, is); |
| is = new ByteArrayInputStream("From: \"=?ISO-8859-1?Q?Manolo_Pe=F1a?=\" <penya@foo.com>\nTo: b@foo.com\nSubject: something\n\ndata".getBytes()); |
| MimeMessage m2 = new MimeMessage(session, is); |
| is = new ByteArrayInputStream("From: a@foo.com\nTo: \"<b@foo.com>\" <b@foo.com>\nSubject: =?ISO-8859-1?Q?Monta=F1a?=\n\ndata".getBytes()); |
| <<<<<<< HEAD |
| ======= |
| ByteArrayInputStream is = new ByteArrayInputStream("From: a@foo.com\nTo: b@foo.com\nSubject: something\n\ndata".getBytes()); |
| ======= |
| ByteArrayInputStream is = new ByteArrayInputStream("From: \"aa@foo.com\" <aa@foo.com>\nTo: b@foo.com\nSubject: something\n\ndata".getBytes()); |
| >>>>>>> constant changed by manolo |
| ======= |
| ByteArrayInputStream is = new ByteArrayInputStream("From: \"a b c\"<aa@foo.com>\nTo: b@foo.com\nSubject: something\n\ndata".getBytes()); |
| >>>>>>> constantly changed by manolo |
| MimeMessage m1 = new MimeMessage(session, is); |
| is = new ByteArrayInputStream("From: \"=?ISO-8859-1?Q?Manolo_Pe=F1a?=\" <penya@foo.com>\nTo: b@foo.com\nSubject: something\n\ndata".getBytes()); |
| MimeMessage m2 = new MimeMessage(session, is); |
| is = new ByteArrayInputStream("From: a@foo.com\nTo: b@foo.com\nSubject: =?ISO-8859-1?Q?Monta=F1a?=\n\ndata".getBytes()); |
| >>>>>>> first commit |
| ======= |
| >>>>>>> constantly changed by manolo |
| MimeMessage m3 = new MimeMessage(session, is); |
| |
| ArrayList<org.apache.hupa.shared.domain.Message> msgs = fetchMessagesHandler.convert(2, f, new Message[]{m1, m2, m3}); |
| assertEquals(2, msgs.size()); |
| |
| msgs = fetchMessagesHandler.convert(10, f, new Message[]{m1, m2, m3}); |
| assertEquals(3, msgs.size()); |
| <<<<<<< HEAD |
| <<<<<<< HEAD |
| |
| msgs = fetchMessagesHandler.convert(10, f, new Message[]{m1}); |
| assertEquals("a b c <aa@foo.com>", msgs.get(0).getFrom()); |
| ======= |
| >>>>>>> first commit |
| ======= |
| |
| msgs = fetchMessagesHandler.convert(10, f, new Message[]{m1}); |
| <<<<<<< HEAD |
| assertEquals("aa@foo.com <aa@foo.com>", msgs.get(0).getFrom()); |
| >>>>>>> constant changed by manolo |
| ======= |
| assertEquals("a b c <aa@foo.com>", msgs.get(0).getFrom()); |
| >>>>>>> constantly changed by manolo |
| |
| msgs = fetchMessagesHandler.convert(10, f, new Message[]{m2}); |
| assertEquals("Manolo Pe\u00F1a <penya@foo.com>", msgs.get(0).getFrom()); |
| |
| msgs = fetchMessagesHandler.convert(10, f, new Message[]{m3}); |
| assertEquals("Monta\u00F1a", msgs.get(0).getSubject()); |
| <<<<<<< HEAD |
| <<<<<<< HEAD |
| assertEquals("b@foo.com <b@foo.com>", msgs.get(0).getTo().get(0)); |
| |
| ======= |
| >>>>>>> first commit |
| ======= |
| assertEquals("b@foo.com <b@foo.com>", msgs.get(0).getTo().get(0)); |
| |
| >>>>>>> constantly changed by manolo |
| } |
| |
| public void testFetchMessages() throws Exception { |
| |
| MockIMAPFolder serverfolder = (MockIMAPFolder)store.getFolder("WHATEVER"); |
| serverfolder.create(Folder.HOLDS_MESSAGES); |
| |
| ImapFolderImpl clientfolder = new ImapFolderImpl("WHATEVER"); |
| FetchMessagesResult result = fetchMessagesHandler.execute(new FetchMessages(clientfolder, 0, 10, "*"), null); |
| assertEquals(0, result.getRealCount()); |
| |
| ByteArrayInputStream is = new ByteArrayInputStream("From: a@foo.com\nTo: b@foo.com\nSubject: something\n\ndata".getBytes()); |
| MimeMessage msg = new MimeMessage(session, is); |
| serverfolder.addMessages(new Message[]{msg}); |
| result = fetchMessagesHandler.execute(new FetchMessages(clientfolder, 0, 10, "something"), null); |
| assertEquals(1, result.getRealCount()); |
| assertEquals(1, result.getMessages().size()); |
| |
| result = fetchMessagesHandler.execute(new FetchMessages(clientfolder, 0, 10, null), null); |
| assertEquals(1, result.getRealCount()); |
| assertEquals(1, result.getMessages().size()); |
| |
| is = new ByteArrayInputStream("From: a@foo.com\nTo: b@foo.com\nSubject: something\n\ndata".getBytes()); |
| msg = new MimeMessage(session, is); |
| serverfolder.appendMessages(new Message[]{msg}); |
| |
| result = fetchMessagesHandler.execute(new FetchMessages(clientfolder, 0, 10, "*"), null); |
| assertEquals(2, result.getRealCount()); |
| assertEquals(2, result.getMessages().size()); |
| |
| result = fetchMessagesHandler.execute(new FetchMessages(clientfolder, 0, 10, null), null); |
| assertEquals(2, serverfolder.getMessageCount()); |
| assertEquals(2, serverfolder.getUnreadMessageCount()); |
| assertEquals(2, result.getRealCount()); |
| assertEquals(2, result.getMessages().size()); |
| assertEquals(2, result.getMessages().size()); |
| |
| msg.setFlags(new Flags(Flag.SEEN), true); |
| assertEquals(1, serverfolder.getUnreadMessageCount()); |
| |
| serverfolder.appendMessages(new Message[]{msg}); |
| result = fetchMessagesHandler.execute(new FetchMessages(clientfolder, 0, 10, "*"), null); |
| assertEquals(3, result.getRealCount()); |
| assertEquals(1, result.getRealUnreadCount()); |
| } |
| } |