smsprotocols/smsstack/test/TE_SMSPDUDB/TE_testsmspdudb.cpp
changeset 0 3553901f7fa8
child 24 6638e7f4bd8f
--- /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<CSmsPduDbMessage> 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<CSmsPduDbPdu> 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<CSmsPduDbConcat> 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<TInt32> 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();
+}