dmose%mozilla.org 9fc7780ead updating license boilerplate to xPL v1.1
git-svn-id: svn://10.0.0.236/trunk@52523 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 06:20:05 +00:00

325 lines
11 KiB
Java

/*
* The contents of this file are subject to the Netscape Public
* License Version 1.1 (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.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is the Netscape Messaging Access SDK Version 3.5 code,
* released on or about June 15, 1998. *
* The Initial Developer of the Original Code is Netscape Communications
* Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s): ______________________________________.
*/
import netscape.messaging.imap4.*;
import java.io.*;
import java.net.*;
import java.util.*;
import java.lang.reflect.*;
/**
* An e-mail client that utilizes the IMAP4rev1 SDK
*
* NOTE: This is only used on the client side and is NOT a part of
* the SDK.. used for testing purposes only
*
* @author alterego@netscape.com
* @version 0.1
*/
public class Email_Client
{
public Email_Client()
{
}
/**
* Test capability, noop, status, select, fetch, close, create, rename,
* list, delete, copy, store, search ,expunge, status
*/
public void testRun1(IMAP4Client in_client) throws IOException
{
System.out.println("---------------------- testRun1 -----------------------------");
///////////////////////////////////////////////////////////////////
// append messages to inbox
///////////////////////////////////////////////////////////////////
File l_file = null;
FileInputStream l_inputStream = null;
l_file = new File("msg2.out");
l_inputStream = new FileInputStream(l_file);
in_client.append("inbox", "", "", l_inputStream);
in_client.processResponses();
l_inputStream = new FileInputStream(l_file);
in_client.append("inbox", "", "", l_inputStream);
in_client.processResponses();
///////////////////////////////////////////////////////////////////
// capability, noop, status.. select fetch close
///////////////////////////////////////////////////////////////////
in_client.capability();
in_client.processResponses();
in_client.noop();
in_client.processResponses();
in_client.status("inbox", "(MESSAGES RECENT UIDVALIDITY UNSEEN UIDNEXT)");
in_client.processResponses();
//in_client.status("inbox", "( )");
//in_client.processResponses();
in_client.select("inbox");
in_client.processResponses();
in_client.fetch("1:2", "(BODY[])");
in_client.processResponses();
in_client.fetch("1", "(RFC822.SIZE BODYSTRUCTURE INTERNALDATE)");
in_client.processResponses();
in_client.fetch("1", "(BODY[] INTERNALDATE)");
in_client.processResponses();
in_client.fetch("1", "(UID BODY[] INTERNALDATE)");
in_client.processResponses();
in_client.fetch("1", "(RFC822.TEXT ENVELOPE)");
in_client.processResponses();
in_client.close();
in_client.processResponses();
///////////////////////////////////////////////////////////////////
// Create, rename, list, delete mailbox
///////////////////////////////////////////////////////////////////
in_client.create("NEWMAILBOX");
in_client.rename("NEWMAILBOX", "RENAMEDBOX");
in_client.list("\"\"", "*");
in_client.delete("RENAMEDBOX");
in_client.processResponses();
///////////////////////////////////////////////////////////////////
// Select inbox, copy msg, delete msg, search, expunge, close inbox
///////////////////////////////////////////////////////////////////
in_client.select("inbox");
in_client.copy("1:2", "inbox");
// The following line of code will set the DELETED flag on all the
// messages in the currently selected mailbox. This has been removed
// so that users who run this test program do not accidentally delete
// their inbox.
// derekt 06/03/98
//in_client.store("1:*", "+FLAGS", "(\\DELETED)");
in_client.search("DELETED");
in_client.expunge();
in_client.close();
in_client.processResponses();
}
/**
* Test create, list, lsub, delete, status, select, search, subscribe,
* unsubscribe
*/
public void testRun2(IMAP4Client in_client) throws IOException
{
System.out.println("---------------------- testRun2 -----------------------------");
///////////////////////////////////////////////////////////////////
// Test listing functionality
///////////////////////////////////////////////////////////////////
in_client.create("mbox");
in_client.list("\"\"", "*");
in_client.processResponses();
in_client.subscribe("mbox");
in_client.lsub("\"\"", "*");
in_client.processResponses();
in_client.unsubscribe("mbox");
in_client.lsub("\"\"", "*");
in_client.delete("mbox");
in_client.processResponses();
///////////////////////////////////////////////////////////////////
// Test status, search
///////////////////////////////////////////////////////////////////
in_client.status("inbox", "(MESSAGES UIDNEXT UIDVALIDITY)");
in_client.processResponses();
in_client.select("inbox");
in_client.search("SUBJECT \"afternoon\"");
in_client.processResponses();
}
/**
* Test append, search, fetch, delete
*/
public void testRun3(IMAP4Client in_client) throws IOException
{
File l_file = null;
FileInputStream l_inputStream = null;
System.out.println("---------------------- testRun3 -----------------------------");
l_file = new File("msg2.out");
l_inputStream = new FileInputStream(l_file);
in_client.append("inbox", "", "", l_inputStream);
in_client.processResponses();
}
/**
* Testing check, examine, pipelineStart, pipelineEnd, sendCommand
*/
public void testRun4(IMAP4Client in_client) throws IOException
{
System.out.println("---------------------- testRun4 -----------------------------");
in_client.select("inbox");
in_client.check();
in_client.close();
in_client.examine("inbox");
in_client.close();
in_client.processResponses();
in_client.sendCommand("SELECT INBOX");
in_client.processResponses();
in_client.sendCommand("CLOSE");
in_client.processResponses();
}
/**
* Testing uidCopy, uidFetch, uidSearch, uidStore
*/
public void testRun5(IMAP4Client in_client) throws IOException
{
int l_size = 0;
Integer l_uid = null;
String l_uidString = null;
System.out.println("---------------------- testRun5 -----------------------------");
File l_file = null;
FileInputStream l_inputStream = null;
l_file = new File("msg1.out");
l_inputStream = new FileInputStream(l_file);
in_client.append("inbox", "", "", l_inputStream);
in_client.processResponses();
l_inputStream = new FileInputStream(l_file);
in_client.append("inbox", "", "", l_inputStream);
in_client.processResponses();
in_client.select("inbox");
in_client.fetch("1:2", "UID");
in_client.processResponses();
l_size = m_sink.m_uidNumbers.size();
for(int i = 0; i < l_size; i++)
{
l_uid = (Integer)m_sink.m_uidNumbers.elementAt(i);
l_uidString = l_uid.toString();
in_client.uidFetch(l_uidString, "ALL");
in_client.uidCopy(l_uidString, "inbox");
}
in_client.uidSearch("SUBJECT \"afternoon\"");
in_client.processResponses();
in_client.uidStore(l_uidString, "+FLAGS", "(\\DELETED)");
in_client.processResponses();
in_client.close();
in_client.processResponses();
m_sink.m_uidNumbers.removeAllElements();
}
/**
* Testing namespace, setacl, deleteacl, getacl, listrights, myrights
*/
public void testRun6(IMAP4Client in_client) throws IOException
{
System.out.println("---------------------- testRun6 -----------------------------");
///////////////////////////////////////////////////////////////////
// Test namespace extension
///////////////////////////////////////////////////////////////////
in_client.nameSpace();
in_client.processResponses();
///////////////////////////////////////////////////////////////////
// Test acl extension
///////////////////////////////////////////////////////////////////
in_client.myRights("inbox");
in_client.processResponses();
in_client.getACL("inbox");
in_client.processResponses();
in_client.deleteACL("inbox", "sama44");
in_client.processResponses();
in_client.setACL("inbox", "sama44", "lrswipcda");
in_client.processResponses();
in_client.listRights("inbox", "sama44");
in_client.processResponses();
}
//Data members
////////////////////////////////////////////////////////////////////
protected ServerSink m_sink;
public static void main(String args[])
{
try
{
Email_Client m_email = new Email_Client();
ServerSink l_sink = new ServerSink();
m_email.m_sink = l_sink;
IMAP4Client l_client = new IMAP4Client(l_sink);
SystemPreferences l_preferences = l_client.getSystemPreferences();
l_preferences.setDebugFlag(true);
l_preferences.setBlockSize(100000);
//Connect
l_client.connect("alterego.mcom.com", 143); //Messaging Server 3.01
// l_client.connect("sama.mcom.com", 143); //(Netscape Messaging Server 4.0a0 (built Dec 14 1997)
l_client.processResponses();
l_client.noop();
l_client.processResponses();
//Login
l_client.login("imaptest","test"); //Messaging Server 3.01
// l_client.login("sama44","sama44"); //(Netscape Messaging Server 4.0a0 (built Dec 14 1997)
l_client.processResponses();
//Test Runs
m_email.testRun1(l_client);
m_email.testRun2(l_client);
m_email.testRun3(l_client);
m_email.testRun4(l_client);
m_email.testRun5(l_client);
//IMAP extensions
// m_email.testRun6(l_client);
//Logout
l_client.logout();
l_client.processResponses();
}
catch(IMAP4ServerException e)
{
System.out.println("IMAP4ServerException: " + e.getMessage());
}
catch(IMAP4Exception e)
{
System.out.println("IMAP4Exception: " + e.getMessage());
}
catch(IOException e)
{
System.out.println("IOException: " + e.getMessage());
}
}
}