messagingapp/msgsettings/msginit/tsrc/testmsginit/src/testmsginit.cpp
changeset 56 f42d9a78f435
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/messagingapp/msgsettings/msginit/tsrc/testmsginit/src/testmsginit.cpp	Tue Aug 31 18:53:38 2010 +0530
@@ -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 <csmsaccount.h>
+#include <e32property.h>
+#include <startupdomainpskeys.h>
+
+
+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;
+    }
+