--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/messagingfw/biomsgfw/IACPTSRC/T_DB.CPP Mon Jan 18 20:36:02 2010 +0200
@@ -0,0 +1,992 @@
+// Copyright (c) 1998-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:
+// Test harness for Internet Access Configuration Parser (Internet Database settings)
+//
+//
+
+#include <commdb.h>
+#include "BioTestUtils.h"
+//
+#include "iacperr.h"
+#include "iacpdef.h"
+
+#define BIO_MSG_ENTRY_PARSED 1 // Set entry .iMtmData3 to 1 to indicate that the entry has store i.e parsed,externalised
+#define BIO_MSG_ENTRY_PROCESSED 2 // Set TMsvEntry iMtmData3 to 2 to indicate that a message has been processed
+
+//SMS configuration file paths
+_LIT(SMS_ISP_FILE, "c:\\test\\bio\\iacp\\sms_isp.txt");
+
+//forward reference
+class CExampleScheduler;
+
+//global declarations
+LOCAL_D CExampleScheduler *exampleScheduler;
+LOCAL_D RTest test(_L("IACP Test Harness"));
+
+
+//
+//-- CExampleScheduler --
+//
+class CExampleScheduler : public CActiveScheduler
+ {
+ public:
+ void Error (TInt aError) const;
+ };
+
+
+void CExampleScheduler::Error(TInt anError) const
+ {
+ CActiveScheduler::Stop();
+ test.Printf(_L("\nLeave signalled, reason=%d\n"),anError);
+ }
+
+LOCAL_C void DisplayErrorReason(TInt& aReason, CBioTestUtils& aBioTestUtils)
+ {
+ if(aReason==KErrNone)
+ {
+ aBioTestUtils.TestHarnessCompleted();
+ return;
+ }
+
+ //failure cases
+ TBuf<256> tempBuf;
+ switch (aReason)
+ {
+ case KErrCancel:
+ tempBuf= _L("\r\n-->Session cancelled");
+ break;
+ case KErrEof:
+ tempBuf= _L("\r\n-->KErrEof");
+ break;
+ case KErrNoMemory:
+ tempBuf= _L("\r\n-->KErrNoMemory");
+ break;
+ case KErrDisconnected:
+ tempBuf= _L("\r\n-->KErrDisconnected");
+ break;
+ case KErrAccessDenied:
+ tempBuf= _L("\r\n-->KErrAccessDenied");
+ break;
+ case KBspInvalidMessage:
+ tempBuf= _L("\r\n-->Error: Invalid SMS Message. For Internet Access Configuration,\r\nSMS Header Field should be //SIAP11 ");
+ break;
+ case KIacpUnknownSmsType:
+ tempBuf=_L("\r\n-->Error:SMS 1st Left Token does not start with niether M nor I ");
+ break;
+ case KIacpBIOMsgTypeNotSupported:
+ tempBuf= _L("\r\n-->this Bio msg is not suppported");
+ break;
+ case KIacpMandatoryDataNotSet:
+ tempBuf= _L("\r\n-->Error: Mandatory data missing in SMS message.");
+ break;
+ case KIacpUnknownMailProtocol:
+ tempBuf= _L("\r\n-->Error: Unknown Mail Protocol Not a Pop3/Imap4");
+ break;
+ case KIacpErrRightToken:
+ tempBuf= _L("\r\n-->Error: improper right token i.e not equal t/f (True/False)");
+ break;
+ case KIacpErrLeftToken:
+ tempBuf=_L("\r\n-->Error:SMS Left Tokens should start with 'M' for Mailbox account configuration\r\n and with 'I' for Internet service configuration");
+ break;
+ case KIacpErrSmsDataNotParsed:
+ tempBuf= _L("\r\n-->sms data should be parsed before processing");
+ break;
+ case KIacpErrSmsDataNotRestored:
+ tempBuf= _L("\r\n-->Error: sms data should be parsed before commiting (KIacpErrSmsDataNotRestored)");
+ break;
+ case KIacpScriptErrISPNotFound:
+ tempBuf= _L("\r\n-->Internet Service not found in Dial Out DB");
+ break;
+ case KIacpErrScriptNotDefined:
+ tempBuf= _L("\r\n-->Sript not included in sms");
+ break;
+ case KIacpErrScriptNotFoundInDB:
+ tempBuf= _L("\r\n-->There is no script in DB to append to.");
+ break;
+ case KIacpErrScriptAlreadyAdd:
+ tempBuf= _L("\r\n-->Script cannot be add more than ounce for each Bio Msg");
+ break;
+ default:
+ tempBuf.Format(_L("\r\n-->Error !!!= %d"), aReason );
+ break;
+ }
+
+ aBioTestUtils.Printf(tempBuf);
+ aBioTestUtils.TestHarnessFailed(aReason);
+ }
+
+
+//--------------------------------------
+//
+//-- CTestIacp --
+//
+enum TSessionState
+ {
+ EParse, // parsing is done at ParseL() stage. and data are externalised.
+ EProcess, //parsed data are internalised, then commited
+ EDisplay, //Display/Log entry data
+ };
+
+class CTestIacp : public CActive
+ {
+ public:
+ ~CTestIacp();
+ static CTestIacp* NewL(CBioTestUtils* aBioTestUtils);
+ void StartL(TInt aCmd);
+
+ public:
+ CTestIacp(CBioTestUtils* aBioTestUtils);
+ void ConstructL();
+
+ void RequestComplete(TRequestStatus& aStatus,TInt aCompletion);
+ void DoCancel();
+ void RunL();
+
+ //logging utility functions...
+ void GetMessageBodyL();
+ void DisplayEntryDataL();
+ void LogCommsDbSettingsL();
+ void LogCommsDbDialOutIapL();
+ void LogCommsDbDialInIapL();
+ void LogCommsDbDialOutIspL();
+ void LogCommsDbDialInIspL();
+ void LogProxiesL();
+ void LogCommsDbModemSettingsL();
+ void LogCommsDbLocationSettingsL();
+ void LogCommsDbChargeCardSettingsL();
+ void LogCommsDbGlobalSettings();
+
+ private:
+ TInt iState;
+ CBaseScriptParser2* iParser;
+
+ CBioTestUtils* iBioTestUtils;
+ TMsvId iEntryId; //ID of BioMsg entry created
+ HBufC* iIspName;
+ TUint32 iProxyIsp;
+ CCommsDatabase* iCommDb;
+
+ HBufC* iSmsMsg; //sms body build dependent
+ TInt iParseFailCount;//heap testing (Parsing state)
+ TInt iProcessFailCount;//heap testing (processing state)
+ };
+
+
+CTestIacp::CTestIacp(CBioTestUtils* aBioTestUtils)
+:CActive(EPriorityStandard),iBioTestUtils(aBioTestUtils)
+ {
+ }
+
+CTestIacp* CTestIacp::NewL(CBioTestUtils* aBioTestUtils)
+ {
+ CTestIacp* self = new(ELeave) CTestIacp(aBioTestUtils);
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop(); //self
+ return self;
+ }
+
+void CTestIacp::ConstructL()
+ {
+ iBioTestUtils->WriteComment(_L("CTestIacp::ConstructL()."));
+
+ iCommDb=CCommsDatabase::NewL(EDatabaseTypeIAP);
+ iBioTestUtils->WriteComment(_L("Created CCommsDatabase Object."));
+
+
+ TBool finished = EFalse;
+#ifdef _DEBUG
+// TInt failCount = 0;
+#endif
+// while(!finished)
+// {
+// __UHEAP_FAILNEXT(failCount++);
+ TRAPD(error,(iParser = iBioTestUtils->CreateParserTypeL(KUidBIOInternetAccessPointMsg)));
+ if (error == KErrNone)
+ {
+// __UHEAP_RESET;
+ iBioTestUtils->WriteComment(_L("Created IACP Parser object"));
+ finished = ETrue;
+// __UHEAP_RESET;
+ }
+ // Handle error
+ else
+ {
+// test(error == KErrNoMemory);
+// __UHEAP_RESET;
+ }
+// }
+
+/*
+ TRAPD(error, (iParser = iBioTestUtils->CreateParserTypeL(KUidBIOInternetAccessPointMsg)));
+ if(error)
+ {
+ iBioTestUtils->WriteComment(_L("Failed to Create IACP Parser object"));
+ iBioTestUtils->Printf(_L("error= %d\n"), error);
+ User::Leave(error);
+ }
+ else
+ iBioTestUtils->WriteComment(_L("Created IACP Parser object"));
+*/
+
+ TRAPD(err,(iEntryId= iBioTestUtils->CreateBIOEntryFromFileL(SMS_ISP_FILE, EBioIapSettingsMessage)));
+ if(err)
+ {
+ iBioTestUtils->Printf(_L("Failed to Create Bio entry from %S\n"), &SMS_ISP_FILE);
+ iBioTestUtils->Printf(_L("error= %d\n"), err);
+ User::Leave(err);
+ }
+ else
+ iBioTestUtils->Printf(_L("Created Bio entry with ID=0x%x from %S"),iEntryId, &SMS_ISP_FILE);
+
+/*
+ error = KErrNone;
+ finished = EFalse;
+ failCount = 0;
+ while(!finished)
+ {
+ __UHEAP_FAILNEXT(failCount++);
+
+ TRAP(error,(iEntryId= iBioTestUtils->CreateBIOEntryFromFileL(SMS_MAIL_FILE, EBioIapSettingsMessage)));
+ if (error == KErrNone)
+ {
+ __UHEAP_RESET;
+ iBioTestUtils->Printf(_L("Created Bio entry with ID=0x%x from %S"),iEntryId, &SMS_MAIL_FILE);
+ finished = ETrue;
+ __UHEAP_RESET;
+ }
+ // Handle error
+ else
+ {
+ // Check if error is out of memory or a specific fax rendering error
+ test(error == KErrNoMemory);
+ __UHEAP_RESET;
+ }
+ }
+*/
+ CActiveScheduler::Add(this);
+ }
+
+CTestIacp::~CTestIacp()
+ {
+ Cancel();
+ delete iSmsMsg;
+ delete iParser;
+ delete iCommDb;
+ delete iIspName;
+ }
+
+void CTestIacp::GetMessageBodyL()
+ {
+ delete iSmsMsg;
+ iSmsMsg = NULL;
+ iSmsMsg= iBioTestUtils->MessageBodyL(iEntryId).AllocL();
+ }
+
+void CTestIacp::StartL(TInt aCmd)
+ {
+ iBioTestUtils->WriteComment(_L("StartL()"));
+ iState=aCmd;
+
+ TInt error = KErrNone;
+// TBool finished = EFalse;
+
+ switch (iState)
+ {
+ case EParse:
+ iBioTestUtils->Printf(_L("Parsing...\n"));
+ iBioTestUtils->SetEntryL(iEntryId); //clients have to set the right context before calling ParseL()
+ //iParser->ParseL(iStatus, iBioTestUtils->MessageBodyL(iEntryId)); //parse and externalise
+ //SetActive();
+ GetMessageBodyL();
+
+// while(!finished)
+// {
+// __UHEAP_FAILNEXT(iParseFailCount++);
+ //
+ TRAP(error, iParser->ParseL(iStatus,iSmsMsg->Des()));
+ if (error == KErrNone)
+ {
+// __UHEAP_RESET;
+// finished = ETrue;
+ SetActive();
+ }
+ else
+ {
+// test(error == KErrNoMemory);
+// __UHEAP_RESET;
+ }
+// }
+ break;
+
+ case EProcess:
+ iBioTestUtils->Printf(_L("Committing...\n"));
+ iBioTestUtils->SetEntryL(iEntryId); //clients have to set the right context before calling ProcessL()
+ //iParser->ProcessL(iStatus); //internalise and process
+ //SetActive();
+// while(!finished)
+// {
+// __UHEAP_FAILNEXT(iProcessFailCount++);
+ //
+ TRAP(error, iParser->ProcessL(iStatus)); //internalise and process
+ if (error == KErrNone)
+ {
+// __UHEAP_RESET;
+// finished = ETrue;
+ SetActive();
+ }
+ else
+ {
+ test(error == KErrNoMemory);
+// __UHEAP_RESET;
+ }
+// }
+ break;
+
+ case EDisplay:
+ DisplayEntryDataL();
+ RequestComplete(iStatus,KErrNone);
+ SetActive();
+ break;
+
+ default:
+ break;
+ }
+ }
+
+void CTestIacp::DoCancel()
+ {
+ iBioTestUtils->WriteComment(_L("DoCancel()"));
+ }
+
+void CTestIacp::RequestComplete(TRequestStatus& aStatus,TInt aCompletion)
+ {
+ iBioTestUtils->WriteComment(_L("RequestComplete()"));
+ TRequestStatus* statusPtr=&aStatus;
+ User::RequestComplete(statusPtr,aCompletion);
+ }
+
+void CTestIacp::RunL()
+ {
+ iBioTestUtils->WriteComment(_L("RunL()"));
+ TInt result=iStatus.Int();
+
+ //heap test faillure
+ if( result == KErrNoMemory)
+ {
+ if(iState==EParse)
+ {
+ iParseFailCount++;
+ StartL(EParse);
+ return;
+ }
+ else if(iState==EProcess)
+ {
+ iProcessFailCount++;
+ StartL(EProcess);
+ return;
+ }
+ }
+
+ if ( result!=KErrNone && result!=KIacpErrSmsDataNotRestored)
+ {
+ iBioTestUtils->ClearScreen();
+ //test.Console()->SetPos(0,0);
+ DisplayErrorReason(result,*iBioTestUtils);
+ CActiveScheduler::Stop();
+ return;
+ }
+
+ switch (iState)
+ {
+ case EParse:
+ iBioTestUtils->WriteComment(_L("Parsed Ok."));
+ StartL(EProcess);
+ break;
+ case EProcess:
+ iBioTestUtils->WriteComment(_L("Processed Ok."));
+ StartL(EDisplay);
+ break;
+ case EDisplay:
+
+ DisplayErrorReason(result,*iBioTestUtils);
+ iParser->Cancel();
+ CActiveScheduler::Stop();
+ break;
+ default:
+ break;
+ }
+ }
+
+void CTestIacp::DisplayEntryDataL()
+ {
+ iBioTestUtils->WriteComment(_L("DisplayEntryDataL()"));
+
+ iBioTestUtils->ClearScreen();
+ //test.Console()->SetPos(0,0);
+
+ iBioTestUtils->SetEntryL(iEntryId);
+ TMsvEntry entry = iBioTestUtils->Entry();
+ iBioTestUtils->Printf(_L("===== BIO-MSG Entry Details =====\n"));
+ iBioTestUtils->Printf(_L("Id: 0x%x\n"), iEntryId);
+ iBioTestUtils->Printf(_L("iServiceId: 0x%x\n"), entry.iServiceId);
+ iBioTestUtils->Printf(_L("iRelatedId: 0x%x\n"), entry.iRelatedId);
+
+ iBioTestUtils->Printf(_L("iType: 0x%x\n"), entry.iType);
+ iBioTestUtils->Printf(_L("iMtm: 0x%x\n"), entry.iMtm);
+ TBuf<128> dateStr;
+ entry.iDate.FormatL(dateStr, (_L("%D%M%Y%/0%1%/1%2%/2%3%/3")));
+ iBioTestUtils->Printf(_L("iDate: %S\n"),&dateStr);
+ iBioTestUtils->Printf(_L("iSize: %d\n"), entry.iSize);
+ iBioTestUtils->Printf(_L("iError: %d\n"), entry.iError);
+ iBioTestUtils->Printf(_L("iBioType: 0x%x\n"), entry.iBioType);
+ iBioTestUtils->Printf(_L("iMtmData1: %d\n"), entry.iMtmData1);
+ iBioTestUtils->Printf(_L("iMtmData2: %d\n"), entry.iMtmData2);
+ iBioTestUtils->Printf(_L("iMtmData3: %d\n"), entry.iMtmData3);
+ iBioTestUtils->Printf(_L("iDescription: %S\n"),&entry.iDescription);
+ iBioTestUtils->Printf(_L("iDetails: %S\n"),&entry.iDetails);
+
+ iBioTestUtils->ClearScreen();
+
+ if (iBioTestUtils->Entry().iMtmData3 != BIO_MSG_ENTRY_PARSED &&
+ iBioTestUtils->Entry().iMtmData3 != BIO_MSG_ENTRY_PROCESSED)
+ {
+ iBioTestUtils->WriteComment(_L("BioMg has not been parsed"));
+ User::Leave(KErrGeneral);
+ }
+
+ iBioTestUtils->Printf(_L("===== Extracted Fields =====\n"));
+ iBioTestUtils->LogExtractedFieldsL(iEntryId);
+ //Get Isp Name from parsed fields
+ CArrayPtrSeg<CParsedField>* parsedFieldArray= &(iBioTestUtils->ParsedFieldArray());
+
+ for (TInt j = 0; j < parsedFieldArray->Count(); j++)
+ {
+ if(parsedFieldArray->At(j)->FieldName().CompareF(SMS_ISP_I_NAME) == 0 ||
+ parsedFieldArray->At(j)->FieldName().CompareF(SMS_SCRIPT_NAME) == 0)
+ {
+ delete iIspName;
+ iIspName= parsedFieldArray->At(j)->FieldValue().AllocL();
+ }
+ }
+
+ LogCommsDbSettingsL();
+ }
+
+void CTestIacp::LogCommsDbSettingsL()
+ {
+ iBioTestUtils->WriteComment(_L("LogCommsDbSettings()"));
+ if(!iIspName)
+ {
+ iBioTestUtils->WriteComment(_L("ISP Name Not found in parsed data"));
+ User::Leave(KErrNotFound);
+ }
+
+ LogCommsDbDialOutIapL();
+ LogCommsDbDialInIapL();
+ LogCommsDbDialOutIspL();
+ LogCommsDbDialInIspL();
+ LogProxiesL();
+ LogCommsDbModemSettingsL();
+ LogCommsDbLocationSettingsL();
+ LogCommsDbChargeCardSettingsL();
+ LogCommsDbGlobalSettings();
+ }
+
+void CTestIacp::LogCommsDbDialOutIapL()
+ {
+ iBioTestUtils->WriteComment(_L("\r\n============= DIAL OUT IAP TABLE ============"));
+ TBuf<1024> tempBuf;
+ TUint32 uval=0ul;
+ CCommsDbTableView* view=iCommDb->OpenViewMatchingTextLC(TPtrC(IAP),TPtrC(COMMDB_NAME),iIspName->Des());
+ TInt ret =view->GotoFirstRecord();
+ if(ret== KErrNotFound)
+ {
+ tempBuf = iIspName->Des();
+ tempBuf.Append(_L(" record not found in IAP table"));
+ iBioTestUtils->WriteComment(tempBuf);
+ CleanupStack::PopAndDestroy(); //view
+ return;
+ }
+
+ view->ReadTextL(TPtrC(COMMDB_NAME), tempBuf);
+ tempBuf.Insert(0, _L("COMMDB_NAME:\t"));
+ iBioTestUtils->WriteComment(tempBuf);
+
+ view->ReadUintL(TPtrC(COMMDB_ID),uval);
+ tempBuf.Format(_L("COMMDB_ID:\t%d"), uval);
+ iBioTestUtils->WriteComment(tempBuf);
+
+
+ view->ReadUintL(TPtrC(IAP_ISP), uval);
+ tempBuf.Format(_L("IAP_ISP:\t%d"), uval);
+ iBioTestUtils->WriteComment(tempBuf);
+
+ //Taken of read IAP_MODEM and IAP_LOCATION as they are no longer valid fields in commdb
+
+/*
+ view->ReadUintL(TPtrC(IAP_CHARGECARD), uval);
+ tempBuf.Format(_L("IAP_CHARGECARD:\t%d"), uval);
+ iBioTestUtils->WriteComment(tempBuf);
+*/
+
+ CleanupStack::PopAndDestroy(); //view
+ }
+
+void CTestIacp::LogCommsDbDialInIapL()
+ {
+ iBioTestUtils->WriteComment(_L("\r\n============= DIAL IN IAP TABLE ============"));
+ TBuf<1024> tempBuf;
+ TUint32 uval=0ul;
+ CCommsDbTableView* view=iCommDb->OpenViewMatchingTextLC(TPtrC(DIAL_IN_IAP),TPtrC(COMMDB_NAME),iIspName->Des());
+ TInt ret =view->GotoFirstRecord();
+ if(ret== KErrNotFound)
+ {
+ tempBuf = iIspName->Des();
+ tempBuf.Append(_L(" record not found in DIAL_IN_IAP table"));
+ iBioTestUtils->WriteComment(tempBuf);
+ CleanupStack::PopAndDestroy(); //view
+ return;
+ }
+
+ view->ReadTextL(TPtrC(COMMDB_NAME), tempBuf);
+ tempBuf.Insert(0, _L("COMMDB_NAME:\t"));
+ iBioTestUtils->WriteComment(tempBuf);
+
+ view->ReadUintL(TPtrC(COMMDB_ID),uval);
+ tempBuf.Format(_L("COMMDB_ID:\t%d"), uval);
+ iBioTestUtils->WriteComment(tempBuf);
+
+ view->ReadUintL(TPtrC(IAP_ISP),uval);
+ tempBuf.Format(_L("IAP_ISP:\t%d"), uval);
+ iBioTestUtils->WriteComment(tempBuf);
+
+ //Taken out reading of IAP_MODEM test as it is not part of commdb anymore
+
+ CleanupStack::PopAndDestroy(); //view
+ }
+
+void CTestIacp::LogCommsDbDialOutIspL()
+ {
+ iBioTestUtils->WriteComment(_L("\r\n============= DIAL OUT ISP TABLE ============"));
+ TBuf<1024> tempBuf;
+ TBool boolVal;
+ TUint32 uval=0ul;
+ CCommsDbTableView* view=iCommDb->OpenViewMatchingTextLC(TPtrC(DIAL_OUT_ISP),TPtrC(COMMDB_NAME),iIspName->Des());
+ TInt ret =view->GotoFirstRecord();
+ if(ret== KErrNotFound)
+ {
+ tempBuf = iIspName->Des();
+ tempBuf.Append(_L(" record not found in DIAL_OUT_ISP table"));
+ iBioTestUtils->WriteComment(tempBuf);
+ CleanupStack::PopAndDestroy(); //view
+ return;
+ }
+
+ view->ReadTextL(TPtrC(COMMDB_NAME), tempBuf);
+ tempBuf.Insert(0, _L("COMMDB_NAME:\t"));
+ iBioTestUtils->WriteComment(tempBuf);
+
+ view->ReadUintL(TPtrC(COMMDB_ID),uval);
+ iProxyIsp=uval;
+ tempBuf.Format(_L("COMMDB_ID:\t%d"), uval);
+ iBioTestUtils->WriteComment(tempBuf);
+
+ view->ReadBoolL(TPtrC(ISP_DIAL_RESOLUTION), boolVal);
+ tempBuf.Format(_L("ISP_DIAL_RESOLUTION:\t%d"), boolVal);
+ iBioTestUtils->WriteComment(tempBuf);
+
+ view->ReadTextL(TPtrC(ISP_DEFAULT_TEL_NUM), tempBuf);
+ tempBuf.Insert(0, _L("ISP_DEFAULT_TEL_NUM:\t"));
+ iBioTestUtils->WriteComment(tempBuf);
+
+ view->ReadBoolL(TPtrC(ISP_PROMPT_FOR_LOGIN), boolVal);
+ tempBuf.Format(_L("ISP_PROMPT_FOR_LOGIN:\t%d"), boolVal);
+ iBioTestUtils->WriteComment(tempBuf);
+
+ view->ReadBoolL(TPtrC(ISP_USE_LOGIN_SCRIPT), boolVal); //EFalse by default
+ tempBuf.Format(_L("ISP_USE_LOGIN_SCRIPT:\t%d"), boolVal);
+ iBioTestUtils->WriteComment(tempBuf);
+
+ view->ReadTextL(TPtrC(ISP_LOGIN_NAME), tempBuf);
+ tempBuf.Insert(0, _L("ISP_LOGIN_NAME:\t"));
+ iBioTestUtils->WriteComment(tempBuf);
+
+ view->ReadTextL(TPtrC(ISP_LOGIN_PASS), tempBuf);
+ tempBuf.Insert(0, _L("ISP_LOGIN_PASS:\t"));
+ iBioTestUtils->WriteComment(tempBuf);
+
+ view->ReadBoolL(TPtrC(ISP_DISPLAY_PCT), boolVal);
+ tempBuf.Format(_L("ISP_DISPLAY_PCT:\t%d"), boolVal);
+ iBioTestUtils->WriteComment(tempBuf);
+
+/*
+ view->ReadTextL(TPtrC(ISP_IF_NAME), tempBuf);
+ tempBuf.Insert(0, _L("ISP_IF_NAME:\t"));
+ iBioTestUtils->WriteComment(tempBuf);
+*/
+
+ view->ReadTextL(TPtrC(ISP_IF_PARAMS), tempBuf);
+ tempBuf.Insert(0, _L("ISP_IF_PARAMS:\t"));
+ iBioTestUtils->WriteComment(tempBuf);
+
+ view->ReadTextL(TPtrC(ISP_IF_NETWORKS), tempBuf);
+ tempBuf.Insert(0, _L("ISP_IF_NETWORKS:\t"));
+ iBioTestUtils->WriteComment(tempBuf);
+
+ view->ReadBoolL(TPtrC(ISP_IF_PROMPT_FOR_AUTH), boolVal);
+ tempBuf.Format(_L("ISP_IF_PROMPT_FOR_AUTH:\t%d"), boolVal);
+ iBioTestUtils->WriteComment(tempBuf);
+
+ view->ReadTextL(TPtrC(ISP_IF_AUTH_NAME), tempBuf);
+ tempBuf.Insert(0, _L("ISP_IF_AUTH_NAME:\t"));
+ iBioTestUtils->WriteComment(tempBuf);
+
+ view->ReadTextL(TPtrC(ISP_IF_AUTH_PASS), tempBuf);
+ tempBuf.Insert(0, _L("ISP_IF_AUTH_PASS:\t"));
+ iBioTestUtils->WriteComment(tempBuf);
+
+ view->ReadBoolL(TPtrC(ISP_IF_CALLBACK_ENABLED), boolVal);
+ tempBuf.Format(_L("ISP_IF_CALLBACK_ENABLED:\t%d"), boolVal);
+ iBioTestUtils->WriteComment(tempBuf);
+
+// view->ReadUintL(TPtrC(ISP_IF_CALLBACK_TYPE), uval);
+// tempBuf.Format(_L("ISP_IF_CALLBACK_TYPE:\t%d"), uval);
+// iBioTestUtils->WriteComment(tempBuf);
+
+ TBuf8<256> tempBuf8;
+ view->ReadTextL(TPtrC(ISP_IF_CALLBACK_INFO), tempBuf8);
+ tempBuf.Copy(tempBuf8);
+ tempBuf.Insert(0, _L("ISP_IF_CALLBACK_INFO:\t"));
+ iBioTestUtils->WriteComment(tempBuf);
+
+ view->ReadBoolL(TPtrC(ISP_IP_ADDR_FROM_SERVER), boolVal);
+ tempBuf.Format(_L("ISP_IP_ADDR_FROM_SERVER:\t%d"), boolVal);
+ iBioTestUtils->WriteComment(tempBuf);
+
+ view->ReadTextL(TPtrC(ISP_IP_ADDR), tempBuf);
+ tempBuf.Insert(0, _L("ISP_IP_ADDR:\t"));
+ iBioTestUtils->WriteComment(tempBuf);
+
+ view->ReadTextL(TPtrC(ISP_IP_NETMASK), tempBuf);
+ tempBuf.Insert(0, _L("ISP_IP_NETMASK:\t"));
+ iBioTestUtils->WriteComment(tempBuf);
+
+ view->ReadTextL(TPtrC(ISP_IP_GATEWAY), tempBuf);
+ tempBuf.Insert(0, _L("ISP_IP_GATEWAY:\t"));
+ iBioTestUtils->WriteComment(tempBuf);
+
+ view->ReadBoolL(TPtrC(ISP_IP_DNS_ADDR_FROM_SERVER), boolVal);
+ tempBuf.Format(_L("ISP_IP_DNS_ADDR_FROM_SERVER:\t%d"), boolVal);
+ iBioTestUtils->WriteComment(tempBuf);
+
+ view->ReadTextL(TPtrC(ISP_IP_NAME_SERVER1), tempBuf);
+ tempBuf.Insert(0, _L("ISP_IP_NAME_SERVER1:\t"));
+ iBioTestUtils->WriteComment(tempBuf);
+
+ view->ReadTextL(TPtrC(ISP_IP_NAME_SERVER2), tempBuf);
+ tempBuf.Insert(0, _L("ISP_IP_NAME_SERVER2:\t"));
+ iBioTestUtils->WriteComment(tempBuf);
+
+ view->ReadBoolL(TPtrC(ISP_ENABLE_IP_HEADER_COMP), boolVal);
+ tempBuf.Format(_L("ISP_ENABLE_IP_HEADER_COMP:\t%d"), boolVal);
+ iBioTestUtils->WriteComment(tempBuf);
+
+ view->ReadBoolL(TPtrC(ISP_DISABLE_PLAIN_TEXT_AUTH), boolVal);
+ tempBuf.Format(_L("ISP_DISABLE_PLAIN_TEXT_AUTH:\t%d"), boolVal);
+ iBioTestUtils->WriteComment(tempBuf);
+
+ view->ReadBoolL(TPtrC(ISP_ENABLE_SW_COMP), boolVal);
+ tempBuf.Format(_L("ISP_ENABLE_SW_COMP:\t%d"), boolVal);
+ iBioTestUtils->WriteComment(tempBuf);
+
+ view->ReadTextL(TPtrC(ISP_DESCRIPTION), tempBuf);
+ tempBuf.Insert(0, _L("ISP_DESCRIPTION:\t"));
+ iBioTestUtils->WriteComment(tempBuf);
+
+ view->ReadTextL(TPtrC(ISP_INIT_STRING), tempBuf8);
+ tempBuf.Copy(tempBuf8);
+ tempBuf.Insert(0, _L("ISP_INIT_STRING:\t"));
+ iBioTestUtils->WriteComment(tempBuf);
+
+ HBufC* existingScript=0;
+ existingScript= view->ReadLongTextLC(TPtrC(ISP_LOGIN_SCRIPT));
+ iBioTestUtils->WriteComment(_L("ISP_LOGIN_SCRIPT: "));
+ if(existingScript->Length() > 0)
+ {
+ //Log script (64 chars at time)
+ TPtrC ptr= existingScript->Des();
+ TInt scriptLength = existingScript->Length();
+ TInt BufSize=64;
+ TInt count=0;
+ while(count <= scriptLength)
+ {
+ if(scriptLength-count > BufSize )
+ tempBuf= ptr.Mid(count,BufSize);
+ else
+ tempBuf=ptr.Mid(count,scriptLength-count);
+
+ iBioTestUtils->WriteComment(tempBuf);
+ count+=BufSize;
+ }
+ }
+
+ CleanupStack::PopAndDestroy(2); // existingScript, view
+ }
+
+void CTestIacp::LogCommsDbDialInIspL()
+ {
+ iBioTestUtils->WriteComment(_L("\r\n============= DIAL IN ISP TABLE ============"));
+ TBuf<1024> tempBuf;
+ TUint32 uval=0ul;
+ CCommsDbTableView* view=iCommDb->OpenViewMatchingTextLC(TPtrC(DIAL_IN_ISP),TPtrC(COMMDB_NAME),iIspName->Des());
+ TInt ret =view->GotoFirstRecord();
+ if(ret== KErrNotFound)
+ {
+ tempBuf = iIspName->Des();
+ tempBuf.Append(_L(" record not found in DIAL_IN_ISP table!!!"));
+ iBioTestUtils->WriteComment(tempBuf);
+ CleanupStack::PopAndDestroy(); //view
+ return;
+ }
+
+ view->ReadTextL(TPtrC(COMMDB_NAME), tempBuf);
+ tempBuf.Insert(0, _L("COMMDB_NAME:\t"));
+ iBioTestUtils->WriteComment(tempBuf);
+
+ view->ReadUintL(TPtrC(COMMDB_ID),uval);
+ tempBuf.Format(_L("COMMDB_ID:\t%d"), uval);
+ iBioTestUtils->WriteComment(tempBuf);
+
+ CleanupStack::PopAndDestroy(); //view
+ }
+
+void CTestIacp::LogProxiesL()
+ {
+ iBioTestUtils->WriteComment(_L("\r\n============= PROXIES TABLE ============"));
+ TBuf<1024> tempBuf;
+ TUint32 uval=0ul;
+ TBool boolVal;
+ CCommsDbTableView* view=iCommDb->OpenViewMatchingUintLC(TPtrC(PROXIES),TPtrC(PROXY_ISP),iProxyIsp);
+ TInt ret =view->GotoFirstRecord();
+ if(ret== KErrNotFound)
+ {
+ tempBuf = iIspName->Des();
+ tempBuf.Append(_L(" record not found in PROXIES table!!!"));
+ iBioTestUtils->WriteComment(tempBuf);
+ CleanupStack::PopAndDestroy(); //view
+ return;
+ }
+
+// view->ReadTextL(TPtrC(COMMDB_NAME), tempBuf);
+// tempBuf.Insert(0, _L("COMMDB_NAME:\t"));
+// iBioTestUtils->WriteComment(tempBuf);
+
+ view->ReadUintL(TPtrC(COMMDB_ID),uval);
+ tempBuf.Format(_L("COMMDB_ID:\t%d"), uval);
+ iBioTestUtils->WriteComment(tempBuf);
+
+ view->ReadUintL(TPtrC(PROXY_ISP),uval);
+ tempBuf.Format(_L("PROXY_ISP:\t%d"), uval);
+ iBioTestUtils->WriteComment(tempBuf);
+
+ HBufC* proxyServerName=0;
+ proxyServerName=view->ReadLongTextLC(TPtrC(PROXY_SERVER_NAME));
+ iBioTestUtils->WriteComment(_L("PROXY_SERVER_NAME: "));
+ if(proxyServerName->Length() > 0)
+ {
+ //Log script (64 chars at time)
+ TPtrC ptr= proxyServerName->Des();
+ TInt proxyLength = proxyServerName->Length();
+ TInt BufSize=64;
+ TInt count=0;
+ while(count <= proxyLength)
+ {
+ if(proxyLength-count > BufSize )
+ tempBuf= ptr.Mid(count,BufSize);
+ else
+ tempBuf=ptr.Mid(count,proxyLength-count);
+
+ iBioTestUtils->WriteComment(tempBuf);
+ count+=BufSize;
+ }
+ }
+
+ view->ReadBoolL(TPtrC(PROXY_USE_PROXY_SERVER), boolVal);
+ tempBuf.Format(_L("PROXY_USE_PROXY_SERVER:\t%d"), boolVal);
+ iBioTestUtils->WriteComment(tempBuf);
+
+
+ view->ReadTextL(TPtrC(PROXY_PROTOCOL_NAME),tempBuf);
+ tempBuf.Insert(0, _L("PROXY_PROTOCOL_NAME:\t"));
+ iBioTestUtils->WriteComment(tempBuf);
+
+ view->ReadUintL(TPtrC(PROXY_PORT_NUMBER),uval);
+ tempBuf.Format(_L("PROXY_PORT_NUMBER:\t%d"), uval);
+ iBioTestUtils->WriteComment(tempBuf);
+
+ HBufC* proxyExeptions=0;
+ proxyExeptions=view->ReadLongTextLC(TPtrC(PROXY_EXCEPTIONS));
+ iBioTestUtils->WriteComment(_L("PROXY_EXCEPTIONS: "));
+ if(proxyExeptions->Length() > 0)
+ {
+ //Log script (64 chars at time)
+ TPtrC ptr= proxyExeptions->Des();
+ TInt proxyLength = proxyExeptions->Length();
+ TInt BufSize=64;
+ TInt count=0;
+ while(count <= proxyLength)
+ {
+ if(proxyLength-count > BufSize )
+ tempBuf= ptr.Mid(count,BufSize);
+ else
+ tempBuf=ptr.Mid(count,proxyLength-count);
+
+ iBioTestUtils->WriteComment(tempBuf);
+ count+=BufSize;
+ }
+ }
+
+ CleanupStack::PopAndDestroy(3); // proxyExeptions,proxyServerName, view
+ }
+void CTestIacp::LogCommsDbModemSettingsL()
+ {
+ iBioTestUtils->WriteComment(_L("\r\n============= MODEM TABLE ============"));
+ TBuf<1024> tempBuf;
+ TUint32 uval=0ul;
+ CCommsDbTableView* view=iCommDb->OpenViewMatchingTextLC(TPtrC(MODEM),TPtrC(COMMDB_NAME),iIspName->Des());
+ TInt ret =view->GotoFirstRecord();
+ if(ret== KErrNotFound)
+ {
+ tempBuf = iIspName->Des();
+ tempBuf.Append(_L(" record not found in MODEM table!!!"));
+ iBioTestUtils->WriteComment(tempBuf);
+ CleanupStack::PopAndDestroy(); //view
+ return;
+ }
+
+ view->ReadTextL(TPtrC(COMMDB_NAME), tempBuf);
+ tempBuf.Insert(0, _L("COMMDB_NAME:\t"));
+ iBioTestUtils->WriteComment(tempBuf);
+
+ view->ReadUintL(TPtrC(COMMDB_ID),uval);
+ tempBuf.Format(_L("COMMDB_ID:\t%d"), uval);
+ iBioTestUtils->WriteComment(tempBuf);
+
+ CleanupStack::PopAndDestroy(); //view
+ }
+
+void CTestIacp::LogCommsDbLocationSettingsL()
+ {
+ iBioTestUtils->WriteComment(_L("\r\n============= LOCATION TABLE ============"));
+ TBuf<1024> tempBuf;
+ TUint32 uval=0ul;
+ CCommsDbTableView* view=iCommDb->OpenViewMatchingTextLC(TPtrC(LOCATION),TPtrC(COMMDB_NAME),iIspName->Des());
+ TInt ret =view->GotoFirstRecord();
+ if(ret== KErrNotFound)
+ {
+ tempBuf = iIspName->Des();
+ tempBuf.Append(_L(" record not found in LOCATION table!!!"));
+ iBioTestUtils->WriteComment(tempBuf);
+ CleanupStack::PopAndDestroy(); //view
+ return;
+ }
+
+ view->ReadTextL(TPtrC(COMMDB_NAME), tempBuf);
+ tempBuf.Insert(0, _L("COMMDB_NAME:\t"));
+ iBioTestUtils->WriteComment(tempBuf);
+
+ view->ReadUintL(TPtrC(COMMDB_ID),uval);
+ tempBuf.Format(_L("COMMDB_ID:\t%d"), uval);
+ iBioTestUtils->WriteComment(tempBuf);
+
+ CleanupStack::PopAndDestroy(); //view
+ }
+
+void CTestIacp::LogCommsDbChargeCardSettingsL()
+ {
+ iBioTestUtils->WriteComment(_L("\r\n============= CHARGECARD TABLE ============"));
+ TBuf<1024> tempBuf;
+ TUint32 uval=0ul;
+ CCommsDbTableView* view=iCommDb->OpenViewMatchingTextLC(TPtrC(CHARGECARD),TPtrC(COMMDB_NAME),iIspName->Des());
+ TInt ret =view->GotoFirstRecord();
+ if(ret== KErrNotFound)
+ {
+ tempBuf = iIspName->Des();
+ tempBuf.Append(_L(" record not found in CHARGECARD table!!!"));
+ iBioTestUtils->WriteComment(tempBuf);
+ CleanupStack::PopAndDestroy(); //view
+ return;
+ }
+
+ view->ReadTextL(TPtrC(COMMDB_NAME), tempBuf);
+ tempBuf.Insert(0, _L("COMMDB_NAME:\t"));
+ iBioTestUtils->WriteComment(tempBuf);
+
+ view->ReadUintL(TPtrC(COMMDB_ID),uval);
+ tempBuf.Format(_L("COMMDB_ID:\t%d"), uval);
+ iBioTestUtils->WriteComment(tempBuf);
+
+ CleanupStack::PopAndDestroy(); //view
+ }
+
+void CTestIacp::LogCommsDbGlobalSettings()
+ {
+ }
+
+LOCAL_C void doMainL()
+ {
+ //create a scheduler
+ exampleScheduler = new (ELeave) CExampleScheduler;
+ CleanupStack::PushL( exampleScheduler );
+ CActiveScheduler::Install( exampleScheduler );
+
+ CBioTestUtils* BioTestUtils = CBioTestUtils::NewL(test,ETuGoClientSide | ETuDeleteService | ETuCreateService);
+ CleanupStack::PushL(BioTestUtils);
+
+ BioTestUtils->GoClientSideL();
+ BioTestUtils->WriteComment(_L("Msv Client Side Created"));
+
+ CTestIacp* testParser = CTestIacp::NewL(BioTestUtils);
+ CleanupStack::PushL( testParser );
+ test(testParser!=NULL);
+ BioTestUtils->WriteComment(_L("CTestIacp Object Created."));
+
+ testParser->StartL(EParse);
+
+ CActiveScheduler::Start();
+
+ CleanupStack::PopAndDestroy(3); // testParser, BioTestUtils,exampleScheduler
+
+ testParser=NULL;
+ BioTestUtils=NULL;
+ exampleScheduler = NULL;
+ }
+
+GLDEF_C TInt E32Main()
+ {
+ test.Title();
+ test.Start(_L("IACP Test Harness"));
+ __UHEAP_MARK;
+ CTrapCleanup* cleanup=CTrapCleanup::New();
+ test(cleanup!=NULL);
+ TRAPD(error,doMainL());
+ if (error)
+ test.Printf(_L("Completed with return code %d"),error);
+ delete cleanup;
+ __UHEAP_MARKEND;
+ test.Close();
+ test.End();
+ return KErrNone;
+ }