diff -r 9f5ae1728557 -r db3f5fa34ec7 messagingfw/biomsgfw/IACPTSRC/T_DB.CPP --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/messagingfw/biomsgfw/IACPTSRC/T_DB.CPP Wed Nov 03 22:41:46 2010 +0530 @@ -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 +#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* 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; + }