--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/messagingfw/msgtest/integration/sms/src/T_SmsSc.cpp Mon Jan 18 20:36:02 2010 +0200
@@ -0,0 +1,199 @@
+// Copyright (c) 1999-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:
+//
+
+#include "T_SmsSc.h"
+#include <smscmds.h>
+#include <smutsimparam.h>
+#include <smsclnt.h>
+
+#include <mmlist.h>
+
+//#ifndef NO_SIM_PARAMS_TEST
+//#include <etelagsm.h>
+//#endif
+
+CSmsScTest::~CSmsScTest()
+ {
+ }
+
+#ifndef NO_SIM_PARAMS_TEST
+void CSmsScTest::TestReadSimParamsL()
+ {
+ iSmsTest.Test().Next(_L("Read Service Centres from Sim Params"));
+ iState = EStateReadingSimParams;
+ delete iOperation;
+ iOperation = Client().ReadSimParamsL(iStatus);
+ SetActive();
+ CActiveScheduler::Start();
+ }
+#endif
+
+CSmsScTest* CSmsScTest::NewLC(CSmsTestUtils& aSmsTest, const TDesC& aScriptFile, TInt& aNextTest)
+ {
+ CSmsScTest* self = new (ELeave) CSmsScTest(aSmsTest, aScriptFile, aNextTest);
+ CleanupStack::PushL(self);
+
+ self->ConstructL();
+ return self;
+ }
+
+
+
+CSmsScTest::CSmsScTest(CSmsTestUtils& aSmsTest, const TDesC& aScriptFile, TInt& aNextTest)
+: CSmsTestBase(aSmsTest, aScriptFile, aNextTest), iState(EStateWaiting)
+ {
+ }
+
+void CSmsScTest::RunAutoL()
+ {
+#ifndef NO_SIM_PARAMS_TEST
+ iSmsTest.TestStart(++iNextTest, _L("Read Service Centres from Sim Params"));
+ TestReadSimParamsL();
+ User::LeaveIfError(iStatus.Int());
+ iSmsTest.TestFinish(iNextTest, KErrNone);
+#endif
+ }
+
+void CSmsScTest::ConstructL()
+ {
+ SetTestNameL(KSmsScTestName);
+ iSmsTest.InstantiateClientMtmsL();
+
+ iSmsTest.SetLogToFile();
+
+ iSelection = new (ELeave) CMsvEntrySelection();
+ iTimer = CTestTimer::NewL();
+ CActiveScheduler::Add(this);
+ }
+
+void CSmsScTest::ShowMenuL()
+ {
+ iSmsTest.ResetMenu();
+
+ iSmsTest.AppendToMenuL(_L("Read Sim Params"));
+ iSmsTest.AppendToMenuL(_L("Run Auto"));
+
+ TInt result = iSmsTest.DisplayMenu(_L("SMS Service Centre Test"));
+
+ if (result <= 0)
+ return;
+
+ switch (result)
+ {
+#ifndef NO_SIM_PARAMS_TEST
+ case 1:
+ TestReadSimParamsL();
+ break;
+ case 2:
+#else
+ case 1:
+#endif
+ iSmsTest.SetRunAuto(ETrue);
+ RunAutoL();
+ break;
+ default:
+ User::Leave(KErrArgument);
+ break;
+ }
+
+ ShowMenuL();
+ }
+
+void CSmsScTest::RunL()
+ {
+ CActiveScheduler::Stop();
+
+ switch (iState)
+ {
+#ifndef NO_SIM_PARAMS_TEST
+ case EStateReadingSimParams:
+ {
+ DoRunReadSimParamsL();
+ break;
+ }
+#endif
+ default:
+ {
+ break;
+ }
+ }
+ }
+
+#ifndef NO_SIM_PARAMS_TEST
+void CSmsScTest::DoRunReadSimParamsL()
+ {
+ if (iStatus == KErrNone)
+ {
+ TIntBuf progressBuf;
+ progressBuf.Copy(iOperation->ProgressL());
+ iStatus = progressBuf();
+ }
+
+ iSmsTest.Printf(_L("ReadSimParams completed with error %d\n"), iStatus);
+ iSmsTest(iStatus == KErrNone || iStatus == KErrNotFound || iStatus == KErrNotSupported);
+
+ if (iStatus != KErrNone)
+ iSmsTest.Printf(_L("Error %d expected\n"), iStatus);
+
+ if (iStatus == KErrNone)
+ {
+ CSmsSimParamOperation* op = (CSmsSimParamOperation*) iOperation;
+
+ TInt count = 0;
+
+ count = op->SmspList().Enumerate();
+
+ iSmsTest.Printf(_L("ReadSimParams found:\n\t%d SMS params on SIM\n"), count);
+ iSmsTest(count);
+
+ CMobilePhoneSmspList* sc = op->ServiceCentersLC();
+
+ count = sc->Enumerate();
+
+ iSmsTest.Printf(_L("\t%d Service Centre(s)\n"), count);
+
+ while (count--)
+ {
+ RMobileSmsMessaging::TMobileSmspEntryV1 smspEntry;
+ smspEntry = sc->GetEntryL(count);
+ iSmsTest.Printf(_L("\t\tService Centre \"%S\", Name \"%S\"\n"), &smspEntry.iServiceCentre.iTelNumber, &smspEntry.iText);
+ }
+
+ CleanupStack::PopAndDestroy(); //sc
+ }
+
+ iStatus = KErrNone;
+
+ delete iOperation;
+ iOperation = NULL;
+
+ if (!iSmsTest.RunAuto())
+ {
+ iSmsTest.Printf(_L("\nPress any key to continue...\n"));
+ iSmsTest.Test().Getch();
+ }
+ }
+#endif
+
+void CSmsScTest::DoCancel()
+ {
+ if (iOperation)
+ {
+ iOperation->Cancel();
+ iSmsTest.Printf(_L("Operation Cancelled!\n"));
+ }
+ delete iOperation;
+ iOperation = NULL;
+ }