From a3b60195196b77a44cfc6950d0f9b5b3c7f83672 Mon Sep 17 00:00:00 2001 From: Nikolay Morev Date: Mon, 8 Feb 2016 16:32:29 +0300 Subject: Add constant for IMAP MOVE capability --- src/core/abstract/MCMessageConstants.h | 1 + src/core/imap/MCIMAPSession.cpp | 3 +++ src/objc/abstract/MCOConstants.h | 2 ++ tests/test-all.cpp | 20 ++++++++++++++++++++ 4 files changed, 26 insertions(+) diff --git a/src/core/abstract/MCMessageConstants.h b/src/core/abstract/MCMessageConstants.h index d1029b13..c6671bc7 100644 --- a/src/core/abstract/MCMessageConstants.h +++ b/src/core/abstract/MCMessageConstants.h @@ -107,6 +107,7 @@ namespace mailcore { IMAPCapabilityIdle, IMAPCapabilityId, IMAPCapabilityLiteralPlus, + IMAPCapabilityMove, IMAPCapabilityMultiAppend, IMAPCapabilityNamespace, IMAPCapabilityQResync, diff --git a/src/core/imap/MCIMAPSession.cpp b/src/core/imap/MCIMAPSession.cpp index c1209c9d..96d34b73 100755 --- a/src/core/imap/MCIMAPSession.cpp +++ b/src/core/imap/MCIMAPSession.cpp @@ -3829,6 +3829,9 @@ void IMAPSession::capabilitySetWithSessionState(IndexSet * capabilities) if (mailimap_has_extension(mImap, (char *)"CHILDREN")) { capabilities->addIndex(IMAPCapabilityChildren); } + if (mailimap_has_extension(mImap, (char *)"MOVE")) { + capabilities->addIndex(IMAPCapabilityMove); + } applyCapabilities(capabilities); } diff --git a/src/objc/abstract/MCOConstants.h b/src/objc/abstract/MCOConstants.h index 419d8485..1809e30c 100644 --- a/src/objc/abstract/MCOConstants.h +++ b/src/objc/abstract/MCOConstants.h @@ -266,6 +266,8 @@ typedef NS_ENUM(NSInteger, MCOIMAPCapability) { MCOIMAPCapabilityId, /** LITERAL+ Capability.*/ MCOIMAPCapabilityLiteralPlus, + /** MOVE Capability */ + MCOIMAPCapabilityMove, /** MULTIAPPEND Capability.*/ MCOIMAPCapabilityMultiAppend, /** NAMESPACE Capability.*/ diff --git a/tests/test-all.cpp b/tests/test-all.cpp index 1858bef1..02a4081c 100644 --- a/tests/test-all.cpp +++ b/tests/test-all.cpp @@ -163,6 +163,25 @@ static void testIMAPMove() session->release(); } +static void testIMAPCapability() +{ + mailcore::IMAPSession * session; + mailcore::ErrorCode error; + + session = new mailcore::IMAPSession(); + session->setHostname(MCSTR("imap.mail.ru")); + session->setPort(993); + session->setUsername(email); + session->setPassword(password); + session->setConnectionType(mailcore::ConnectionTypeTLS); + + mailcore::IndexSet *caps = session->capability(&error); + + MCLog("capability: %s, error: %i", MCUTF8DESC(caps), error); + + session->release(); +} + static void testSMTP(mailcore::Data * data) { mailcore::SMTPSession * smtp; @@ -394,6 +413,7 @@ void testAll() //testSMTP(data); //testIMAP(); //testIMAPMove(); + //testIMAPCapability(); //testPOP(); //testNNTP(); //testAsyncSMTP(data); -- cgit v1.2.3