diff -r 8ba0afbb4637 -r a15d9966050f messagingapp/msgsettings/msginit/tsrc/testmsginit/src/testmsginit.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/messagingapp/msgsettings/msginit/tsrc/testmsginit/src/testmsginit.cpp Fri Sep 17 08:28:39 2010 +0300 @@ -0,0 +1,231 @@ +/* + * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). + * All rights reserved. + * This component and the accompanying materials are made available + * under the terms of "Eclipse Public License v1.0" + * which accompanies this distribution, and is available + * at the URL "http://www.eclipse.org/legal/epl-v10.html". + * + * Initial Contributors: + * Nokia Corporation - initial contribution. + * + * Contributors: + * + * Description: + * + */ + +// INCLUDES +#include "testmsginit.h" +#include "debugtraces.h" +#include "msgsimnumberdetector.h" +#include "coutboxobserver.h" +#include "startupmonitor.h" +#include "coutboxsendoperation.h" +#include "cmobilesignalstrengthhandler.h" +#include "testoutboxobserver_stub.h" +#include "testoutboxsender_stub.h" +#include "testsimnumdetector_stub.h" + +#include +#include +#include + + +void TestMsgInit::initTestCase() + { + + } + +void TestMsgInit::init() + { + qDebug("TestMsgInit::init enter"); + + iTestMsgSimOperation = CTestMsgSimOperation::NewL(); + QVERIFY2(iTestMsgSimOperation != NULL, "CTestMsgSimOperation init failed."); + + qDebug("TestMsgInit::init exit"); + } + +void TestMsgInit::validateMobileSignalStrength() + { + qDebug("TestMsgInit::validateMobileSignalStrength enter"); + + CTestOutboxObserver* mOutBoxObserver = CTestOutboxObserver::NewL(); + QVERIFY2(mOutBoxObserver != NULL, "CTestOutboxObserver init failed."); + CleanupStack::PushL(mOutBoxObserver); + + iSignalStrengthHandler = CMobileSignalStrengthHandler::NewL(); + QVERIFY2(iSignalStrengthHandler != NULL, "CMobileSignalStrengthHandler init failed."); + + if (iSignalStrengthHandler->ObservingSupported()) + { + iSignalStrengthHandler->SetSignalStrengthObserverL(mOutBoxObserver); + iSignalStrengthHandler->StartObservingL(); + } + + CleanupStack::PopAndDestroy(mOutBoxObserver); + //QTest::qWait(1000); + if(NULL !=iSignalStrengthHandler) + { + delete iSignalStrengthHandler; + iSignalStrengthHandler = NULL; + } + qDebug("TestMsgInit::validateMobileSignalStrength exit"); + } + +void TestMsgInit::validateOutboxSenderOperation() + { + qDebug("TestMsgInit::validateOutboxSenderOperation enter"); + + CTestOutboxSender* mTestOutboxSender = CTestOutboxSender::NewL(*(iTestMsgSimOperation->iMsvSession)); + QVERIFY2(mTestOutboxSender != NULL, "CTestOutboxSender init failed."); + CleanupStack::PushL(mTestOutboxSender); + + CMsvSingleOpWatcher* msingleOpWatcher = CMsvSingleOpWatcher::NewL(*mTestOutboxSender); + QVERIFY2(msingleOpWatcher != NULL, "CMsvSingleOpWatcher init failed."); + CleanupStack::PushL(msingleOpWatcher); + + iMsvOperation = COutboxSendOperation::NewL(*(iTestMsgSimOperation->iMsvSession), msingleOpWatcher->iStatus); + QVERIFY2(iMsvOperation != NULL, "COutboxSendOperation init failed."); + + //QTest::qWait(1000); + if(NULL !=iMsvOperation) + { + delete iMsvOperation; + iMsvOperation = NULL; + } + CleanupStack::PopAndDestroy(2); //mTestOutboxSender, msingleOpWatcher + + qDebug("TestMsgInit::validateOutboxSenderOperation exit"); + } + +void TestMsgInit::validateOutboxObserver() + { + qDebug("TestMsgInit::validateOutboxObserver enter"); + + // Observes the OUTBOX for any offline messages... + iOutBoxObserver = COutboxObserver::NewL(); + QVERIFY2(iOutBoxObserver != NULL, "COutboxObserver init failed."); + + // Start the Auto-send AO, to handle offline SMS messages + iOutBoxObserver->HandleMsvSessionReadyL(*(iTestMsgSimOperation->iMsvSession)); + //QTest::qWait(1000); + + if(NULL !=iOutBoxObserver) + { + delete iOutBoxObserver; + iOutBoxObserver = NULL; + } + qDebug("TestMsgInit::validateOutboxObserver exit"); + } + + void TestMsgInit::validateSimNumDetector() + { + qDebug("TestMsgInit::validateSimNumDetector enter"); + + TInt startupState = 0; + TInt modifiedState = ESwStateNormalRfOn; + TInt status = 0; + + //Load current settings + CSmsSettings* smsSettings = CSmsSettings::NewLC(); + CSmsAccount* smsAccount = CSmsAccount::NewLC(); + smsAccount->LoadSettingsL(*smsSettings); + + // Remove all old SMSC's configured + TInt numSCAddresses = smsSettings->ServiceCenterCount(); + + qDebug() << "numSCAddresses:" << numSCAddresses; + + for (TInt j = numSCAddresses; j > 0; j--) + { + smsSettings->RemoveServiceCenter(j - 1); + } + + // Save settings + TInt maxTries(5); + TBool done(EFalse); + while (maxTries && !done) + { + TRAPD( err, smsAccount->SaveSettingsL( *smsSettings ) ); + if (err == KErrNone) + { + qDebug("CMsgSimOperation::CreateDefaultSettingsL settings saved"); + + done = ETrue; + } + else if (err == KErrLocked) + { + qDebug("CMsgSimOperation::CreateDefaultSettingsL KErrLocked"); + + // Wait a while and retry. + User::After(100000); // 0.1 seconds + maxTries--; + } + else + { + User::Leave(err); + } + } + + QVERIFY2((iSimHandler = new MsgSimNumDetector()) != NULL, "Message settings engine init failed."); + status = RProperty::Get( KPSUidStartup, KPSGlobalSystemState, startupState ); + if(ESwStateNormalRfOn != startupState) + { + RProperty::Set( KPSUidStartup, KPSGlobalSystemState, modifiedState ); + } + qDebug() << "startupState:" << startupState; + qDebug() << "modifiedState:" << modifiedState; + RProperty::Set(KPSUidStartup, KPSGlobalSystemState, startupState); + + qDebug() << "startupState:" << startupState; + qDebug() << "modifiedState:" << modifiedState; + CleanupStack::PopAndDestroy(2); // smsAccount, smsSettings + //QTest::qWait(1000); + if(NULL !=iSimHandler) + { + delete iSimHandler; + iSimHandler = NULL; + } + + qDebug("TestMsgInit::validateSimNumDetector Exit"); + } + +void TestMsgInit::cleanup() + { + if(NULL !=iTestMsgSimOperation) + { + delete iTestMsgSimOperation; + iTestMsgSimOperation = NULL; + } + } + +void TestMsgInit::cleanupTestCase() + { + + } + +//main entry point +int main(int argc, char *argv[]) + { + int ret = -1; + QCoreApplication app(argc, argv); + QObject* tc = new TestMsgInit(); + +#ifdef __WINSCW__ + char *new_argv[3]; + QString str = "C:\\data\\" + QFileInfo(QCoreApplication::applicationFilePath()).baseName() + ".log"; + QByteArray bytes = str.toAscii(); + char arg1[] = "-o"; + new_argv[0] = argv[0]; + new_argv[1] = arg1; + new_argv[2] = bytes.data(); + ret = QTest::qExec(tc, 3, new_argv); +#else + ret = QTest::qExec(tc, argc, argv); +#endif + delete tc; + return ret; + } +