#include "TestHeader.h" #include "TestDriver.h" #include "Logger.h" #include "cmapexamplesmsengine.h" #include <msvstore.h> // ========== logger ========== #include <flogger.h> #define __DEFINE_LITERAL(aLiteralName, aStr) _LIT(aLiteralName, aStr); _LIT( _KLogDir, "MyLogs" ); _LIT( _KLogFile, "test.txt" ); #define _LOGF( aEllipsis )\ {\ _LIT(_KFormat,"%S(%d):%Ld:%S: ");\ __DEFINE_LITERAL( _KFile, __FILE__ );\ TPtrC8 _func8((TUint8*)__FUNCTION__);\ TBuf<40> _func;\ _func.Copy(_func8.Right(40));\ TBuf<256> _log;\ _log.Format(_KFormat, &_KFile, __LINE__, RThread().Id().Id(), &_func);\ _log.AppendFormat aEllipsis;\ RFileLogger::Write( _KLogDir, _KLogFile, EFileLoggingModeAppend, _log );\ } #define _HERE() _LOGF((KNullDesC)) // ========== stubbed / mocked implementations ========== class DummyObserver : public MSmsEngineObserver { virtual void MessageSent() { _LOGF((_L("DummyObserver::MessageSent()"))); } virtual void MessageReceived(TDesC& aMsg, TDesC& aAddr) { _LOGF((_L("DummyObserver::MessageReceived(%S, %S)"), &aMsg, &aAddr)); } virtual void MessageRequested(TDesC& aMsg, TDesC& aAddr) { _LOGF((_L("DummyObserver::MessageRequested(%S, %S)"), &aMsg, &aAddr)); } virtual void SmsEngineError(TInt aErrorCode) { _LOGF((_L("DummyObserver::SmsEngineError(%d)"), aErrorCode)); } }; void RSendAsMessage::AddRecipientL(const TDesC16& a, RSendAsMessage::TSendAsRecipientType b) { _LOGF((_L("RSendAsMessage::AddRecipientL(%S, %d)"), &a, b)); } void RSendAsMessage::Close() { _LOGF((_L("RSendAsMessage::Close()"))); } void RSendAsMessage::CreateL(RSendAs &a, TUid b) { _LOGF((_L("RSendAsMessage::CreateL(%d, %d)"), &a, b)); } void RSendAsMessage::SendMessage(class TRequestStatus &) { _LOGF((_L("RSendAsMessage::SendMessage()"))); } // global function pointer void (*gRSendAsMessage_SetBodyTextLHook)() = NULL; void RSendAsMessage::SetBodyTextL(const TDesC16& a) { _LOGF((_L("RSendAsMessage::SetBodyTextL(%S)"), &a)); if(gRSendAsMessage_SetBodyTextLHook) gRSendAsMessage_SetBodyTextLHook(); } CMsvEntry * CMsvEntry::NewL(CMsvSession &, long, TMsvSelectionOrdering const &) { _LOGF((_L("CMsvEntry::NewL()"))); return NULL; } CMsvSession * CMsvSession::OpenAsyncL(MMsvSessionObserver &) { _LOGF((_L("CMsvSession::OpenAsyncL()"))); return NULL; } CMsvStore * CMsvEntry::ReadStoreL(void) { _LOGF((_L("CMsvEntry::ReadStoreL()"))); return NULL; } TInt CMsvStore::HasBodyTextL(void) const { _LOGF((_L("CMsvStore::HasBodyTextL()"))); return KErrNone; } TInt RSendAs::Connect(void) { _LOGF((_L("RSendAs::Connect()"))); return KErrNone; } TMsvSelectionOrdering::TMsvSelectionOrdering(void) { _LOGF((_L("TMsvSelectionOrdering::TMsvSelectionOrdering()"))); } void CMsvEntry::DeleteL(long) { _LOGF((_L("TCMsvEntry::DeleteL()"))); } void CMsvEntry::SetEntryL(long) { _LOGF((_L("CMsvEntry::SetEntryL()"))); } void CMsvStore::RestoreBodyTextL(CRichText &) { _LOGF((_L("CMsvStore::RestoreBodyTextL()"))); } // ========== test suite ========== void CMapExampleSmsEngineTest::setUp() { _HERE(); gRSendAsMessage_SetBodyTextLHook = NULL; iObserver = new (ELeave) DummyObserver(); iTarget = CMapExampleSmsEngine::NewL(iObserver); } void CMapExampleSmsEngineTest::tearDown() { _HERE(); delete iTarget; delete iObserver; } void CMapExampleSmsEngineTest::testParseMsgCoordinates() { _HERE(); } void CMapExampleSmsEngineTest::testParseMsgRequestType() { _HERE(); } void CMapExampleSmsEngineTest::testParseMsgUid() { _HERE(); iTarget->ParseMsgUid(_L("REQ E01FF1Cd")); } void CMapExampleSmsEngineTest::testSendMessage() { _HERE(); iTarget->SendSmsL(_L("12345678"), _L("abcd")); } void ThrowExceptionL() { _HERE(); User::Leave(KErrGeneral); } void CMapExampleSmsEngineTest::testSendMessageExceptions() { _HERE(); gRSendAsMessage_SetBodyTextLHook = ThrowExceptionL; TS_ASSERT_THROWS_ANYTHING( iTarget->SendSmsL(_L("12345678"), _L("abcd"))); } |