diff -r 000000000000 -r 3553901f7fa8 smsprotocols/smsstack/test/TE_SMSPDUDB/TE_testsmspdudb.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smsprotocols/smsstack/test/TE_SMSPDUDB/TE_testsmspdudb.cpp Tue Feb 02 01:41:59 2010 +0200 @@ -0,0 +1,286 @@ + +// 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: +// @file +// +// + +#include "TE_smspdudbbase.h" +#include "TE_testsmspdudb.h" + + +TVerdict CTestSmsPduDbMessage::doTestStepL() +/* + * implementation of Message test case + */ +{ + CSmsPduDatabase* db = CSmsPduDatabase::NewL(iFs, KSmsPduDbDefaultSection, KSmsPduDbTestFilename, KSmsPduDbDefaultComponent); + CleanupStack::PushL(db); + + RPointerArray array; + CleanupResetAndDestroyPushL(array); + + db->GetMessageL(array, CSmsPDU::ESmsSubmit); + + const TInt count = array.Count(); + TInt i = 0; + for (i = 0; i < count; i++) + { + PrintMessage(i, *array[i]); + } + + CleanupStack::PopAndDestroy(&array); + CleanupStack::PopAndDestroy(db); + + return TestStepResult(); +} + + +TVerdict CTestSmsPduDbPdu::doTestStepL() +/* + * implementation of Pdu test case + */ +{ + CSmsPduDatabase* db = CSmsPduDatabase::NewL(iFs, KSmsPduDbDefaultSection, KSmsPduDbTestFilename, KSmsPduDbDefaultComponent); + CleanupStack::PushL(db); + + RPointerArray array; + CleanupResetAndDestroyPushL(array); + + db->GetPduL(array, CSmsPDU::ESmsSubmit); + TInt count = array.Count(); + TInt i = 0; + for (i = 0; i < count; i++) + { + const CSmsPduDbPdu& pdu = *array[i]; + PrintPdu(i, pdu); + } + array.ResetAndDestroy(); + db->GetPduL(array, CSmsPDU::ESmsDeliver); + count = array.Count(); + + for (i = 0; i < count; i++) + { + const CSmsPduDbPdu& pdu = *array[i]; + PrintPdu(i, pdu); + } + + CleanupStack::PopAndDestroy(&array); + CleanupStack::PopAndDestroy(db); + + return TestStepResult() ; +} + + +TVerdict CTestSmsPduDbConcatSegment::doTestStepL() +/* + * implementation of Concat Segment test case + */ +{ + // The test case was empty in old t_smspdudb.exe + + return TestStepResult(); +} + + +TVerdict CTestSmsPduDbConcat::doTestStepL() +/* + * implementation of Concat test case + */ +{ + CSmsPduDatabase* db = CSmsPduDatabase::NewL(iFs, KSmsPduDbDefaultSection, KSmsPduDbTestFilename, KSmsPduDbDefaultComponent); + CleanupStack::PushL(db); + + RPointerArray array; + CleanupResetAndDestroyPushL(array); + + db->GetConcatL(array, CSmsPDU::ESmsSubmit); + TInt count = array.Count(); + TInt i = 0; + for (i = 0; i < count; i++) + { + const CSmsPduDbConcat& concat = *array[i]; + PrintConcat(i, concat); + } + + array.ResetAndDestroy(); + + db->GetConcatL(array, CSmsPDU::ESmsDeliver); + count = array.Count(); + + for (i = 0; i < count; i++) + { + const CSmsPduDbConcat& concat = *array[i]; + PrintConcat(i, concat); + } + + CleanupStack::PopAndDestroy(&array); + CleanupStack::PopAndDestroy(db); + + return TestStepResult(); +} + + +TVerdict CTestSmsPduDbParse::doTestStepL() +/* + * implementation of Parse test case + */ +{ + CSmsPduDatabase* db = CSmsPduDatabase::NewL(iFs, KSmsPduDbDefaultSection, KSmsPduDbTestFilename, KSmsPduDbDefaultComponent); + CleanupStack::PushL(db); + + db->RewriteFileL(KSmsPduDbTestFilename, KSmsPduDbDefaultComponent, KSmsPduDbTestOutput); + + + CleanupStack::PopAndDestroy(db); + + return TestStepResult(); +} + + +TVerdict CTestSmsPduDbCompile::doTestStepL() +/* + * implementation of Compile test case + */ + { + CSmsPduDatabase* db = CSmsPduDatabase::NewL(iFs); + CleanupStack::PushL(db); + + const CTestConfig& configFile = db->ConfigFile(); + + const TInt sectionCount = configFile.Sections().Count(); + + for (TInt section = 0; section < sectionCount; section++) + { + const CTestConfigSection& configSection = configFile[section]; + const TInt itemCount = configSection.Items().Count(); + + for (TInt item = 0; item < itemCount; item++) + { + const CTestConfigItem& configItem = configSection[item]; + CSmsPduDbPdu* pdu = NULL; + + TRAPD(err, pdu = db->PduFactoryL(configItem)); + if (err != KErrNone) + { + DisplayCompileErrorL(configSection, configItem, err); + TEST(EFalse); + continue; + } + + CleanupStack::PushL(pdu); + + if (pdu->iDecodeError > KErrNone) + { + DisplayCompileErrorL(configSection, configItem, KErrArgument); + TEST(EFalse); + } + else if (pdu->iSmsMessageError > KErrNone) + { + DisplayCompileErrorL(configSection, configItem, KErrCorrupt); + TEST(EFalse); + } + + CleanupStack::PopAndDestroy(pdu); + } + } + + CleanupStack::PopAndDestroy(db); + + return TestStepResult(); + } + + +TVerdict CTestSmsPduDbTools::doTestStepL() +/* + * implementation of Tools test case + */ +{ + TGsmSms pdu; + TSmsFirstOctet fo(iSmsStackTestUtils->FirstDeliverOctet(EFalse, EFalse, EFalse, ETrue)); + TSmsDataCodingScheme dcs; + TSmsProtocolIdentifier pid; + + TGsmSmsTelNumber oa; + oa.iTelNumber.Copy(_L("HelloHello")); + oa.iTypeOfAddress.SetNPI(EGsmSmsNPIUnknown); + oa.iTypeOfAddress.SetTON(EGsmSmsTONAlphaNumeric); + + TTime scts; + scts.UniversalTime(); + TInt offsetToUTCInQtrHours = ((User::UTCOffset()).Int()/900); + + CCnvCharacterSetConverter* conv = CCnvCharacterSetConverter::NewL(); + CleanupStack::PushL(conv); + + CSmsUserData* ud = CSmsUserData::NewL(*conv, iSmsStackTestUtils->iFs, fo, dcs); + CleanupStack::PushL(ud); + + iSmsStackTestUtils->DeliverWithoutUserDataL(pdu, fo, oa, pid, dcs, scts, offsetToUTCInQtrHours); + iSmsStackTestUtils->AppendUserDataL(pdu, *ud); + iSmsStackTestUtils->PrintAndTestDecodeL(pdu, dcs, pid, *ud, ETrue, KErrNone); + + fo = iSmsStackTestUtils->FirstDeliverOctet(ETrue, ETrue, ETrue, ETrue); + iSmsStackTestUtils->DeliverWithoutUserDataL(pdu, fo, oa, pid, dcs, scts, offsetToUTCInQtrHours); + iSmsStackTestUtils->AppendUserDataL(pdu, *ud); + iSmsStackTestUtils->PrintAndTestDecodeL(pdu, dcs, pid, *ud, ETrue, KErrNone); + + iSmsStackTestUtils->DeliverWithoutUserDataL(pdu, fo, oa, pid, dcs, scts, offsetToUTCInQtrHours); + iSmsStackTestUtils->AppendUserDataL(pdu, *ud, 0x99); + iSmsStackTestUtils->PrintAndTestDecodeL(pdu, dcs, pid, *ud, ETrue, KErrGsmuDecoding); + + ud->SetBodyL(_L8("Dundee United SPL Champions 1983")); + iSmsStackTestUtils->DeliverWithoutUserDataL(pdu, fo, oa, pid, dcs, scts, offsetToUTCInQtrHours); + iSmsStackTestUtils->AppendUserDataL(pdu, *ud); + iSmsStackTestUtils->PrintAndTestDecodeL(pdu, dcs, pid, *ud, ETrue, KErrNone); + + TPckgBuf buf; + buf() = 200; + + ud->AddInformationElementL(CSmsInformationElement::ESmsIEIConcatenatedShortMessages16BitReference, buf); + iSmsStackTestUtils->DeliverWithoutUserDataL(pdu, fo, oa, pid, dcs, scts, offsetToUTCInQtrHours); + iSmsStackTestUtils->AppendUserDataL(pdu, *ud); + iSmsStackTestUtils->PrintAndTestDecodeL(pdu, dcs, pid, *ud, ETrue, KErrNone); + + + CleanupStack::PopAndDestroy(2); + + return TestStepResult(); +} + + +TVerdict CTestSmsServiceCenterTimeStamp::doTestStepL() +/* + * implementation of Tools test case + */ +{ + iSmsStackTestUtils->CreateTSmsServiceCenterTimeStampL(); + iSmsStackTestUtils->EncodeTSmsServiceCenterTimeStampL(); + iSmsStackTestUtils->DecodeTSmsServiceCenterTimeStampL(); + + return TestStepResult(); +} + + +TVerdict CTestSmsValidityPeriod::doTestStepL() +/* + * implementation of Tools test case + */ +{ + iSmsStackTestUtils->CreateTSmsValidityPeriodL(); + iSmsStackTestUtils->EncodeTSmsValidityPeriodL(); + iSmsStackTestUtils->DecodeTSmsValidityPeriodL(); + + return TestStepResult(); +}