aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests
diff options
context:
space:
mode:
authorGravatar DINH Viet Hoa <hoa@sprw.me>2013-01-16 01:07:32 -0800
committerGravatar DINH Viet Hoa <hoa@sprw.me>2013-01-16 01:07:32 -0800
commite75be6c8b9a9b694e86c4054b4493f8ec405df2f (patch)
treec74257540dca069ece8178d2afa03a3ee45d7781 /tests
parent70f53398659fb9305f6bf88e33c84327c61829d5 (diff)
Implemented async IMAP
Diffstat (limited to 'tests')
-rw-r--r--tests/main.mm47
1 files changed, 46 insertions, 1 deletions
diff --git a/tests/main.mm b/tests/main.mm
index 06b12876..1ef4927d 100644
--- a/tests/main.mm
+++ b/tests/main.mm
@@ -190,6 +190,50 @@ static void testAsyncSMTP(mailcore::Data * data)
//smtp->release();
}
+class TestIMAPCallback : public mailcore::Object, public mailcore::OperationCallback, public mailcore::IMAPOperationCallback {
+ virtual void operationFinished(mailcore::Operation * op)
+ {
+ mailcore::IMAPFetchMessagesOperation * fetchOp = (mailcore::IMAPFetchMessagesOperation *) op;
+ //MCLog("callback %s %s %s", MCUTF8DESC(op), MCUTF8DESC(fetchOp->messages()), MCUTF8DESC(this));
+ }
+
+ virtual void bodyProgress(mailcore::IMAPOperation * op, unsigned int current, unsigned int maximum)
+ {
+ MCLog("progress %s %s %i/%i", MCUTF8DESC(op), MCUTF8DESC(this), current, maximum);
+ }
+
+ virtual void itemProgress(mailcore::IMAPOperation * op, unsigned int current, unsigned int maximum)
+ {
+ MCLog("item progress %s %s %i/%i", MCUTF8DESC(op), MCUTF8DESC(this), current, maximum);
+ }
+};
+
+static void testAsyncIMAP()
+{
+ mailcore::IMAPAsyncSession * session;
+ TestIMAPCallback * callback = new TestIMAPCallback();
+
+ session = new mailcore::IMAPAsyncSession();
+ session->setHostname(MCSTR("imap.gmail.com"));
+ session->setPort(993);
+ session->setUsername(email);
+ session->setPassword(password);
+ session->setConnectionType(mailcore::ConnectionTypeTLS);
+
+ mailcore::IMAPMessagesRequestKind requestKind = (mailcore::IMAPMessagesRequestKind)
+ (mailcore::IMAPMessagesRequestKindHeaders | mailcore::IMAPMessagesRequestKindStructure |
+ mailcore::IMAPMessagesRequestKindInternalDate | mailcore::IMAPMessagesRequestKindHeaderSubject |
+ mailcore::IMAPMessagesRequestKindFlags);
+ mailcore::IMAPFetchMessagesOperation * op = session->fetchMessagesByUIDOperation(MCSTR("INBOX"), requestKind, 1, 0);
+ op->setCallback(callback);
+ op->setImapCallback(callback);
+ op->start();
+ //MCLog("%s", MCUTF8DESC(messages));
+ [[NSRunLoop currentRunLoop] run];
+
+ //session->release();
+}
+
void testAll()
{
u_setDataDirectory("/usr/local/share/icu");
@@ -203,7 +247,8 @@ void testAll()
//testSMTP(data);
//testIMAP();
//testPOP();
- testAsyncSMTP(data);
+ //testAsyncSMTP(data);
+ testAsyncIMAP();
MCLog("pool release");
pool->release();