diff -r 61e9400fe245 -r 0cb2248d0edc apicompatanamdw/bcdrivers/os/cellularsrv/BCSmsUtilitiesTest/src/BCSmsUtilitiesTestCases.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/apicompatanamdw/bcdrivers/os/cellularsrv/BCSmsUtilitiesTest/src/BCSmsUtilitiesTestCases.cpp Thu Apr 22 17:15:08 2010 +0530 @@ -0,0 +1,6897 @@ +/* +* Copyright (c) 2002 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: ?Description +* +*/ + +/* Changed by Vaibhav - 13Aug07 for Removing CodeScanner Warnings - High/medium */ + +// INCLUDE FILES +#include +#include "BCSmsUtilitiesTest.h" +#include +#include +#include +#include + +#include +#define KTimeStampSize 32 +_LIT(KTestNativeChar, "SmsGsmUtilities"); +_LIT8(KTestNativeChar8, "SmsGsmUtilities"); +_LIT8(KTestInfo8, "ABCDEFGH"); +_LIT8(KTestCommandData8, "CommandData"); +_LIT(KTestBuffer1, "ABCDEFGHIJKLMNOPQRSTUVWX"); + +// ============================= LOCAL FUNCTIONS =============================== +// ----------------------------------------------------------------------------- +// Create_Console +// Creates a new Console Window +// ----------------------------------------------------------------------------- +LOCAL_C CConsoleBase* Create_ConsoleL(const TDesC& title) + { + CConsoleBase* console; + + console = Console::NewL(title,TSize( KConsFullScreen, KConsFullScreen)); + CleanupStack::PushL( console ); + return console; + } + +// ----------------------------------------------------------------------------- +// Print +// Prints the result onto screen +// ----------------------------------------------------------------------------- +LOCAL_C void Print(CConsoleBase* base, TInt result, const TDesC& text) + { + base->Printf(text); + if( result == KErrNone) + { + base->Printf(_L(" passed\n")); + } + else + { + base->Printf(_L("::Error code %d\n"), result); + } + } + +// ----------------------------------------------------------------------------- +// Remove_Console +// Deletes a new Console Window +// ----------------------------------------------------------------------------- +LOCAL_C void Remove_Console(CConsoleBase* base) + { + //base->Getch(); + CleanupStack::PopAndDestroy(base); + } + +void Check(TInt aValue, TInt aExpected ) + { + if(aValue != aExpected) + { + RDebug::Print(_L("*** Expected value: %d, got: %d\r\n"), aExpected, aValue); + __ASSERT_ALWAYS(aValue != aExpected, User::Panic(_L("Active object Error"), 1)); + } + } + +// ============================ MEMBER FUNCTIONS =============================== + +// ----------------------------------------------------------------------------- +// CBCSmsUtilitiesTest::Case +// Returns a test case by number. +// +// This function contains an array of all available test cases +// i.e pair of case name and test function. If case specified by parameter +// aCaseNumber is found from array, then that item is returned. +// +// The reason for this rather complicated function is to specify all the +// test cases only in one place. It is not necessary to understand how +// function pointers to class member functions works when adding new test +// cases. See function body for instructions how to add new test case. +// ----------------------------------------------------------------------------- +// +const TCaseInfo CBCSmsUtilitiesTest::Case ( + const TInt aCaseNumber ) const + { + + + static TCaseInfoInternal const KCases[] = + { + // To add new test cases, add new items to this array + ENTRY( "CSmsAlphabetConverter", CBCSmsUtilitiesTest::TestSmsAlphabetConverterL ), + ENTRY( "CSmsBuffer", CBCSmsUtilitiesTest::TestSmsBufferL ), + ENTRY( "CSmsCommand", CBCSmsUtilitiesTest::TestSmsCommandL ), + ENTRY( "CSmsDeliver", CBCSmsUtilitiesTest::TestSmsDeliverL ), + ENTRY( "CSmsDeliverReport", CBCSmsUtilitiesTest::TestSmsDeliverReportL ), + ENTRY( "CSmsEditorBuffer", CBCSmsUtilitiesTest::TestSmsEditorBufferL ), + ENTRY( "CSmsInformationElement", CBCSmsUtilitiesTest::TestSmsInformationElementL ), + ENTRY( "CSmsMessage", CBCSmsUtilitiesTest::TestSmsMessageL ), + ENTRY( "CSmsPDU", CBCSmsUtilitiesTest::TestSmsPDUL ), + ENTRY( "CSmsStatusReport", CBCSmsUtilitiesTest::TestSmsStatusReportL ), + ENTRY( "CSmsSubmit", CBCSmsUtilitiesTest::TestSmsSubmitL ), + ENTRY( "CSmsSubmitReport", CBCSmsUtilitiesTest::TestSmsSubmitReportL ), + ENTRY( "CSmsUserData", CBCSmsUtilitiesTest::TestSmsUserDataL ), + }; + + // Verify that case number is valid + if( (TUint) aCaseNumber >= sizeof( KCases ) / + sizeof( TCaseInfoInternal ) ) + { + // Invalid case, construct empty object + TCaseInfo null( (const TText*) L"" ); + null.iMethod = NULL; + null.iIsOOMTest = EFalse; + null.iFirstMemoryAllocation = 0; + null.iLastMemoryAllocation = 0; + return null; + } + + // Construct TCaseInfo object and return it + TCaseInfo tmp ( KCases[ aCaseNumber ].iCaseName ); + tmp.iMethod = KCases[ aCaseNumber ].iMethod; + tmp.iIsOOMTest = KCases[ aCaseNumber ].iIsOOMTest; + tmp.iFirstMemoryAllocation = KCases[ aCaseNumber ].iFirstMemoryAllocation; + tmp.iLastMemoryAllocation = KCases[ aCaseNumber ].iLastMemoryAllocation; + return tmp; + + } + +// ----------------------------------------------------------------------------- +// TestGetAlphabet +// Gets the coding scheme alphabet +// ----------------------------------------------------------------------------- +// +LOCAL_C TInt TestGetAlphabet( CStifLogger* aLog, CSmsAlphabetConverter& aAlphabetConv) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling Alphabet()")); + TInt result = KErrNone; + + //inline TSmsDataCodingScheme::TSmsAlphabet CSmsAlphabetConverter::Alphabet() const + TSmsDataCodingScheme::TSmsAlphabet alphabet = aAlphabetConv.Alphabet(); + + if( alphabet == TSmsDataCodingScheme::ESmsAlphabet8Bit ) + { + aLog->Log(_L("Alphabet() Completed")); + aLog->Log(_L("Alphabet fetched")); + aLog->Log(_L("Get alphabet == PASS")); + } + else + { + result = KErrGeneral; + aLog->Log(_L("Get alphabet == FAIL")); + } + + return result; + } + +// ----------------------------------------------------------------------------- +// TestConvertFromNative +// Converts from the native character set to +// unpacked user data elements of the desired character set. +// ----------------------------------------------------------------------------- +// +LOCAL_C TInt TestConvertFromNative( CStifLogger* aLog, CSmsAlphabetConverter& aAlphabetConv) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling ConvertFromNativeL()")); + + TBufC<24> nativeChar(KTestNativeChar); + TBufC8<24> UDElements(KTestNativeChar8); + //IMPORT_C TPtrC8 ConvertFromNativeL(const TDesC& aNativeCharacters); + TPtrC8 convChar; + TRAPD( result, convChar.Set(aAlphabetConv.ConvertFromNativeL(nativeChar))) ; + + TPtrC8 UDElementsPtr(UDElements); + if(convChar.Compare(UDElementsPtr)) + { + result = KErrGeneral; + aLog->Log(_L("Convert from native == FAIL")); + } + else + { + aLog->Log(_L("ConvertFromNativeL() Completed")); + aLog->Log(_L("Conversion successfully performoded")); + aLog->Log(_L("Convert from native == PASS")); + } + + return result; + } + +LOCAL_C TInt TestConvertFromNative2L( CStifLogger* aLog, CSmsAlphabetConverter& aAlphabetConv) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling ConvertFromNative2L()")); + + TBufC<24> nativeChar(KTestNativeChar); + TBufC8<24> UDElements(KTestNativeChar8); + + TInt numUnconvertibleChars; + TInt numDowngradedChars; + TPtrC8 convChar; + TRAPD( result, convChar.Set(aAlphabetConv.ConvertFromNativeL(nativeChar,ESmsEncodingNone,numUnconvertibleChars,numDowngradedChars ))) ; + + TPtrC8 UDElementsPtr(UDElements); + if(convChar.Compare(UDElementsPtr)) + { + result = KErrGeneral; + aLog->Log(_L("Convert from native2 == FAIL")); + } + else + { + aLog->Log(_L("ConvertFromNative2L() Completed")); + aLog->Log(_L("Conversion successfully performoded")); + aLog->Log(_L("Convert from native2 == PASS")); + } + + return result; + } +// ----------------------------------------------------------------------------- +// TestConvertToNative +// Converts the user data elements of the specified character set to +// the native character set. +// ----------------------------------------------------------------------------- +// +LOCAL_C TInt TestConvertToNative( CStifLogger* aLog, CSmsAlphabetConverter& aAlphabetConv) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling ConvertToNativeL()")); + + TBufC<24> nativeChar(KTestNativeChar); + TBufC8<24> UDElements(KTestNativeChar8); + //IMPORT_C TPtrC ConvertToNativeL(const TDesC8& aUDElements); + TPtrC convChar; + TRAPD( result, convChar.Set(aAlphabetConv.ConvertToNativeL(UDElements))); + + TBufC<24> nativeCharPtr(nativeChar); + if(convChar.Compare(nativeCharPtr)) + { + result = KErrGeneral; + aLog->Log(_L("Convert To native == FAIL")); + } + else + { + aLog->Log(_L("ConvertToNativeL() Completed")); + aLog->Log(_L("Conversion successfully performoded")); + aLog->Log(_L("Convert To native == PASS")); + } + + return result; + } + +LOCAL_C TInt TestConvertToNative2L( CStifLogger* aLog, CSmsAlphabetConverter& aAlphabetConv) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling ConvertToNative2L()")); + + TBufC<24> nativeChar(KTestNativeChar); + TBufC8<24> UDElements(KTestNativeChar8); + + TPtrC convChar; + TRAPD( result, convChar.Set(aAlphabetConv.ConvertToNativeL(UDElements,ESmsEncodingNone ))); + + TBufC<24> nativeCharPtr(nativeChar); + if(convChar.Compare(nativeCharPtr)) + { + result = KErrGeneral; + aLog->Log(_L("Convert To native2 == FAIL")); + } + else + { + aLog->Log(_L("ConvertToNative2L() Completed")); + aLog->Log(_L("Conversion successfully performoded")); + aLog->Log(_L("Convert To native2 == PASS")); + } + + return result; + } +// ----------------------------------------------------------------------------- +// TestResetUnconvertedNativeCharacters +// Resets the unconverted native character buffer +// ----------------------------------------------------------------------------- +// +LOCAL_C TInt TestResetUnconvertedNativeCharacters( CStifLogger* aLog, CSmsAlphabetConverter& aAlphabetConv) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling ResetUnconvertedNativeCharacters()")); + + TInt result = KErrNone; + + //inline void ResetUnconvertedNativeCharacters(); + aAlphabetConv.ResetUnconvertedNativeCharacters(); + + aLog->Log(_L("ResetUnconvertedNativeCharacters() Completed")); + aLog->Log(_L("Reset performed successfully")); + aLog->Log(_L("Reset unconverted native characters == PASS")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestResetUnconvertedUDElements +// Resets the unconverted user data elements buffer +// ----------------------------------------------------------------------------- +// +LOCAL_C TInt TestResetUnconvertedUDElements( CStifLogger* aLog, CSmsAlphabetConverter& aAlphabetConv) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling ResetUnconvertedUDElements()")); + TInt result = KErrNone; + + //inline void ResetUnconvertedUDElements(); + aAlphabetConv.ResetUnconvertedUDElements(); + + aLog->Log(_L("ResetUnconvertedUDElements() Completed")); + aLog->Log(_L("Reset performed successfully")); + aLog->Log(_L("Reset unconverted UD Elements == PASS")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestUnconvertedNativeCharacters +// Gets the unconverted native characters +// ----------------------------------------------------------------------------- +// +LOCAL_C TInt TestUnconvertedNativeCharacters( CStifLogger* aLog, CSmsAlphabetConverter& aAlphabetConv) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling UnconvertedNativeCharacters()")); + TInt result = KErrNone; + + //inline TPtrC UnconvertedNativeCharacters(); + TPtrC nativeCharPtr( aAlphabetConv.UnconvertedNativeCharacters() ); + + aLog->Log(_L("UnconvertedNativeCharacters() Completed")); + if(nativeCharPtr != KNullDesC ) + aLog->Log(_L("Result data:Characters: %s"), nativeCharPtr.Ptr()); + else + aLog->Log(_L("Result data:Characters: NULL ")); + aLog->Log(_L("Get unconverted native characters == PASS")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestUnconvertedUDElements +// Gets the unconverted user data elements +// ----------------------------------------------------------------------------- +// +LOCAL_C TInt TestUnconvertedUDElements( CStifLogger* aLog, CSmsAlphabetConverter& aAlphabetConv) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling UnconvertedUDElements()")); + TInt result = KErrNone; + + //inline TPtrC8 UnconvertedUDElements(); + TPtrC8 UDElementsPtr( aAlphabetConv.UnconvertedUDElements()); + + aLog->Log(_L("UnconvertedUDElements() Completed")); + if( UDElementsPtr!= KNullDesC8 ) + aLog->Log(_L("Result data:Characters: %s"), UDElementsPtr.Ptr()); + else + aLog->Log(_L("Result data:Characters: NULL")); + aLog->Log(_L("Get unconverted UD Elements == PASS")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestDelete +// Deletes data from the buffer +// ----------------------------------------------------------------------------- +// +LOCAL_C TInt TestDelete( CStifLogger* aLog, CSmsBuffer& aBuffer) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling DeleteL()")); + + TInt position = 2; + TInt length = 2; + //IMPORT_C void DeleteL(TInt aPos,TInt aLength); + TRAPD( result, aBuffer.DeleteL( position, length)); + + if( result == KErrNone ) + { + aLog->Log(_L("DeleteL() Completed")); + aLog->Log(_L("Data successfully deleted")); + aLog->Log(_L("Delete == PASS")); + } + else + aLog->Log(_L("Delete == FAIL")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestReset +// Resets the buffer +// ----------------------------------------------------------------------------- +// +LOCAL_C TInt TestReset( CStifLogger* aLog, CSmsBuffer& aBuffer) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling Reset()")); + TInt result = KErrNone; + + //IMPORT_C void Reset(); + aBuffer.Reset(); + + aLog->Log(_L("Reset() Completed")); + aLog->Log(_L("Data successfully reseted")); + aLog->Log(_L("Reset == PASS")); + return result; + } + +// ----------------------------------------------------------------------------- +// TestExtract +// Extracts buffer data to a descriptor +// ----------------------------------------------------------------------------- +// +LOCAL_C TInt TestExtract( CStifLogger* aLog, CSmsBuffer& aBuffer) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling Extract()")); + TInt result = KErrNone; + + TBuf<24> buffer; + TInt position = 2; + TInt length = 6; + //IMPORT_C void Extract(TDes& aBuf,TInt aPos,TInt aLength) const; + aBuffer.Extract(buffer, position, length); + + aLog->Log(_L("Extract() Completed")); + aLog->Log(_L("Data successfully extracted")); + aLog->Log(_L("Extract == PASS")); + return result; + } + +// ----------------------------------------------------------------------------- +// TestInsert +// Inserts data into the buffer +// ----------------------------------------------------------------------------- +// +LOCAL_C TInt TestInsert( CStifLogger* aLog, CSmsBuffer& aBuffer) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling InsertL()")); + + TBufC<24> buffer(KTestBuffer1); + TInt position = 0; + //IMPORT_C void InsertL(TInt aPos,const TDesC& aBuf); + TRAPD( result, aBuffer.InsertL(position, buffer)); + + if( result == KErrNone ) + { + aLog->Log(_L("InsertL() Completed")); + aLog->Log(_L("Data successfully Inserted")); + aLog->Log(_L("InsertL == PASS")); + } + else + aLog->Log(_L("InsertL == FAIL")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestGetLength +// Gets the amount of space currently used in the buffer. +// ----------------------------------------------------------------------------- +// +LOCAL_C TInt TestGetLength( CStifLogger* aLog, CSmsBuffer& aBuffer) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling Length()")); + TInt result = KErrNone; + + //IMPORT_C TInt Length() const; + TInt length = aBuffer.Length(); + + if(length == 22) + { + aLog->Log(_L("Length() Completed")); + aLog->Log(_L("Result data: Length: %d"), length); + aLog->Log(_L("Length == PASS")); + } + else + { + result = KErrGeneral; + aLog->Log(_L("Length == FAIL")); + } + + return result; + } + +// ----------------------------------------------------------------------------- +// TestExternalize +// Externalises the object. +// ----------------------------------------------------------------------------- +// +LOCAL_C TInt TestExternalizeL( CStifLogger* aLog, CSmsBuffer& aBuffer) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling ExternalizeL()")); + + RFs session; + User::LeaveIfError(session.Connect()); + TBufC<64> storename = _L("C:\\SMSGSMUtilities_CSmsBuffer"); + RFileWriteStream write; + + write.Create(session, storename, EFileWrite); + TInt err = write.Open(session, storename, EFileWrite); + + //IMPORT_C void ExternalizeL(RWriteStream& aStream) const; + TRAPD( result, aBuffer.ExternalizeL( write )); + + write.CommitL(); + write.Close(); + + session.Close(); + if( result == KErrNone ) + { + aLog->Log(_L("ExternalizeL() Completed")); + aLog->Log(_L("Buffer successfully externalized")); + aLog->Log(_L("ExternalizeL == PASS")); + } + else + aLog->Log(_L("ExternalizeL == FAIL")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestInternalize +// Internalises the object. +// ----------------------------------------------------------------------------- +// +LOCAL_C TInt TestInternalizeL( CStifLogger* aLog, CSmsBuffer& aBuffer) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling InternalizeL()")); + + RFs session; + User::LeaveIfError(session.Connect()); + TBufC<64> storename = _L("C:\\SMSGSMUtilities_CSmsBuffer"); + RFileReadStream read; + + TInt erro = read.Open(session, storename, EFileRead); + + //IMPORT_C void InternalizeL(RReadStream &aStream) + TRAPD( result, aBuffer.InternalizeL( read )); + + read.Close(); + + //now delete the store + TInt err = session.Delete(storename); + if(err != KErrNone) + { + RDebug::Print(_L("Error %d deleting \"%S\" file.\n"), err, &storename); + } + + session.Close(); + if( result == KErrNone ) + { + aLog->Log(_L("InternalizeL() Completed")); + aLog->Log(_L("Buffer successfully internalized")); + aLog->Log(_L("InternalizeL == PASS")); + } + else + aLog->Log(_L("InternalizeL == FAIL")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestAddInformationElement +// Adds an Information Element. +// ----------------------------------------------------------------------------- +// +LOCAL_C TInt TestAddInformationElement( CStifLogger* aLog, CSmsCommand& aCommand) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling AddInformationElementL()")); + + CSmsInformationElement::TSmsInformationElementIdentifier identifier = CSmsInformationElement::ESmsIEIConcatenatedShortMessages8BitReference; + TBufC8<24> information(KTestInfo8); + //IMPORT_C void AddInformationElementL(CSmsInformationElement::TSmsInformationElementIdentifier aIdentifier, TDesC8& aData); + TRAPD( result, aCommand.AddInformationElementL( identifier, information)); + + if( result ==KErrNone ) + { + aLog->Log(_L("AddInformationElementL() completed")); + aLog->Log(_L("Information element successfully added")); + aLog->Log(_L("Add information element == PASS")); + } + else + aLog->Log(_L("Add information element == FAIL")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestRemoveInformationElement +// Removes an Information Element +// ----------------------------------------------------------------------------- +// +LOCAL_C TInt TestRemoveInformationElement( CStifLogger* aLog, CSmsCommand& aCommand) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling RemoveInformationElement()")); + TInt result = KErrNone; + + TInt index = 0; + //IMPORT_C void RemoveInformationElement(TInt aIndex); + aCommand.RemoveInformationElement( index ); + + aLog->Log(_L("RemoveInformationElement() completed")); + aLog->Log(_L("Information element successfully removed")); + aLog->Log(_L("Remove information element == PASS")); + return result; + } + +// ----------------------------------------------------------------------------- +// TestMaxCommandDataLength +// Gets the Maximum Data Length of the Command +// ----------------------------------------------------------------------------- +// +LOCAL_C TInt TestMaxCommandDataLength( CStifLogger* aLog, CSmsCommand& aCommand) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling MaxCommandDataLength()")); + TInt result = KErrNone; + + //IMPORT_C TInt MaxCommandDataLength() const; + TInt maxLength = aCommand.MaxCommandDataLength(); + + aLog->Log(_L("MaxCommandDataLength() completed")); + aLog->Log(_L("Result data:Max length: %d"),maxLength); + aLog->Log(_L("Get max command data length == PASS")); + return result; + } + +// ----------------------------------------------------------------------------- +// TestGetCommandData +// Gets the Command Data +// ----------------------------------------------------------------------------- +// +LOCAL_C TInt TestGetCommandData( CStifLogger* aLog, CSmsCommand& aCommand) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling CommandData()")); + TInt result = KErrNone; + + //IMPORT_C TPtrC8 CommandData() const; + TPtrC8 commandPtr = aCommand.CommandData(); + + if( commandPtr == KTestCommandData8) + { + aLog->Log(_L("CommandData() completed")); + aLog->Log(_L("Result data:Command data: %s"), commandPtr.Ptr()); + aLog->Log(_L("Get command data == PASS")); + } + else + { + result = KErrGeneral; + aLog->Log(_L("Get command data == FAIL")); + } + return result; + } + +// ----------------------------------------------------------------------------- +// TestGetCommandType +// Gets the Command Type +// ----------------------------------------------------------------------------- +// +LOCAL_C TInt TestGetCommandType( CStifLogger* aLog, CSmsCommand& aCommand) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling CommandType()")); + TInt result = KErrNone; + + //IMPORT_C TInt CommandType() const; + TInt commandType = aCommand.CommandType(); + + if( commandType == TSmsCommandType::ESmsCommandTypeEnableStatusReportRequest) + { + aLog->Log(_L("CommandType() completed")); + aLog->Log(_L("Result data:Command Type: %d"), commandType); + aLog->Log(_L("Get command Type == PASS")); + } + else + { + result = KErrGeneral; + aLog->Log(_L("Get command Type == FAIL")); + } + + return result; + } + +// ----------------------------------------------------------------------------- +// TestSetCommandType +// Sets the Command Type +// ----------------------------------------------------------------------------- +// +LOCAL_C TInt TestSetCommandType( CStifLogger* aLog, CSmsCommand& aCommand) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling SetCommandType()")); + TInt result = KErrNone; + + TSmsCommandType::TSmsCommandTypeValue commandType = TSmsCommandType::ESmsCommandTypeEnableStatusReportRequest; + //IMPORT_C void SetCommandType(TSmsCommandType::TSmsCommandTypeValue aCommandType); + aCommand.SetCommandType( commandType ); + + aLog->Log(_L("SetCommandType() completed")); + aLog->Log(_L("Command type successfully stored")); + aLog->Log(_L("Set command Type == PASS")); + return result; + } + + +//---------------------------------------------------------------------------- +// TestInformationElement +// Gets an Information Element +// ----------------------------------------------------------------------------- +// +LOCAL_C TInt TestInformationElement( CStifLogger* aLog, CSmsCommand& aCommand) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling InformationElement()")); + TInt result = KErrNone; + + TInt index = 0; + //IMPORT_C CSmsInformationElement& InformationElement(TInt aIndex) const; + CSmsInformationElement& element = aCommand.InformationElement(index); + + aLog->Log(_L("InformationElement() completed")); + aLog->Log(_L("Information element successfully fetched")); + aLog->Log(_L("Get information element == PASS")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestInformationElementIndex +// Gets index of a specified Information Element. +// ----------------------------------------------------------------------------- +// +LOCAL_C TInt TestInformationElementIndex( CStifLogger* aLog, CSmsCommand& aCommand) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling InformationElementIndex()")); + TInt result = KErrNone; + + CSmsInformationElement::TSmsInformationElementIdentifier identifier = CSmsInformationElement::ESmsIEIConcatenatedShortMessages8BitReference;; + TInt index; + //IMPORT_C TBool InformationElementIndex(CSmsInformationElement::TSmsInformationElementIdentifier aIdentifier, + // TInt& aIndex) const; + TInt length = aCommand.InformationElementIndex(identifier, index); + + aLog->Log(_L("InformationElementIndex() completed")); + aLog->Log(_L("Information element index successfully fetched")); + aLog->Log(_L("Get information element index == PASS")); + return result; + } + +// ----------------------------------------------------------------------------- +// TestGetMessageNumber +// Gets the Message Number +// ----------------------------------------------------------------------------- +// +LOCAL_C TInt TestGetMessageNumber( CStifLogger* aLog, CSmsCommand& aCommand) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling MessageNumber()")); + TInt result = KErrNone; + + //IMPORT_C TInt MessageNumber() const; + TInt number = aCommand.MessageNumber(); + + if( number == 1 ) + { + aLog->Log(_L("MessageNumber() completed")); + aLog->Log(_L("Result data:Message number: %d"),number); + aLog->Log(_L("Get message number == PASS")); + } + else + { + result = KErrGeneral; + aLog->Log(_L("Get message number == FAIL")); + } + + return result; + } + +// ----------------------------------------------------------------------------- +// TestSetMessageNumber +// Sets the Message Number +// ----------------------------------------------------------------------------- +// +LOCAL_C TInt TestSetMessageNumber( CStifLogger* aLog, CSmsCommand& aCommand) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling SetMessageNumber()")); + TInt result = KErrNone; + + TInt number = 1; + //IMPORT_C void SetMessageNumber(TInt aMessageNumber); + aCommand.SetMessageNumber(number); + + aLog->Log(_L("SetMessageNumber() completed")); + aLog->Log(_L("Message number successfully stored")); + aLog->Log(_L("Set Message Number == PASS")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestGetMessageReference +// Gets the Message Reference +// ----------------------------------------------------------------------------- +// +LOCAL_C TInt TestGetMessageReference( CStifLogger* aLog, CSmsCommand& aCommand) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling MessageReference()")); + TInt result = KErrNone; + + //IMPORT_C TInt MessageReference() const; + TInt getRef = aCommand.MessageReference(); + + if( getRef == 1 ) + { + aLog->Log(_L("MessageReference() Completed")); + aLog->Log(_L("result data:Message reference: %d"), getRef); + aLog->Log(_L("Get Message Reference == PASS")); + } + else + { + result = KErrGeneral; + aLog->Log(_L("Get Message Reference == FAIL")); + } + + return result; + } + +// ----------------------------------------------------------------------------- +// TestSetMessageReference +// Sets the Message Reference +// ----------------------------------------------------------------------------- +// +LOCAL_C TInt TestSetMessageReference( CStifLogger* aLog, CSmsCommand& aCommand) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling SetMessageReference()")); + TInt result = KErrNone; + + TInt setRef = 1; + //IMPORT_C void SetMessageReference(TInt aMessageReference); + aCommand.SetMessageReference(setRef); + + aLog->Log(_L("SetMessageReference() Completed")); + aLog->Log(_L("Message reference successfully stored")); + aLog->Log(_L("Set Message Reference == PASS")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestNumInformationElements +// Gets the number of Information Elements in the User Data +// ----------------------------------------------------------------------------- +// +LOCAL_C TInt TestNumInformationElements( CStifLogger* aLog, CSmsCommand& aCommand) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling NumInformationElements()")); + TInt result = KErrNone; + + //IMPORT_C TInt NumInformationElements() const; + TInt numElements = aCommand.NumInformationElements(); + + aLog->Log(_L("NumInformationElements() Completed")); + aLog->Log(_L("result data: Number of elements: %d"), numElements); + aLog->Log(_L("Get Number Of Information Elements == PASS")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestGetStatusReportRequest +// Gets Status Report Request flag +// ----------------------------------------------------------------------------- +// +LOCAL_C TInt TestGetStatusReportRequest( CStifLogger* aLog, CSmsCommand& aCommand) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling StatusReportRequest()")); + TInt result = KErrNone; + + //IMPORT_C TBool StatusReportRequest() const; + TBool reportReq = aCommand.StatusReportRequest(); + + if( reportReq ) + { + aLog->Log(_L("SetStatusReportRequest() completed")); + aLog->Log(_L("Status report request flag successfully fetched")); + aLog->Log(_L("Get status report request == PASS")); + } + else + { + result = KErrGeneral; + aLog->Log(_L("Get status report request == FAIL")); + } + + return result; + } + +// ----------------------------------------------------------------------------- +// TestSetStatusReportRequest +// Externalises the object. +// ----------------------------------------------------------------------------- +// +LOCAL_C TInt TestSetStatusReportRequest( CStifLogger* aLog, CSmsCommand& aCommand) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling SetStatusReportRequest()")); + TInt result = KErrNone; + + TBool reportReq = ETrue; + //IMPORT_C void SetStatusReportRequest(TBool aRequest); + aCommand.SetStatusReportRequest(reportReq); + + aLog->Log(_L("SetStatusReportRequest() completed")); + aLog->Log(_L("Status report request flag successfully stored")); + aLog->Log(_L("Set status report request == PASS")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestSetCommandData +// Sets the Command Data +// ----------------------------------------------------------------------------- +// +LOCAL_C TInt TestSetCommandData( CStifLogger* aLog, CSmsCommand& aCommand) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling SetCommandDataL()")); + + TBufC8<24> commandData(KTestCommandData8); + //IMPORT_C void SetCommandDataL(const TDesC8& aData); + TRAPD( result, aCommand.SetCommandDataL(commandData)); + + if( result == KErrNone ) + { + aLog->Log(_L("SetCommandDataL() completed")); + aLog->Log(_L("Command data successfully stored")); + aLog->Log(_L("Set command data == PASS")); + } + else + aLog->Log(_L("Set command data == FAIL")); + + return result; + } +// ----------------------------------------------------------------------------- +// TestSmsCommandDuplicateL +// Creates a copy of the object +// ----------------------------------------------------------------------------- +// +LOCAL_C TInt TestSmsCommandDuplicateL( CStifLogger* aLog, CSmsCommand& aCommand) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling SmsCommandDuplicateL()")); + + TInt result = KErrNone; + + CSmsCommand* dupObj = aCommand.DuplicateL(); + + if( dupObj ) + { + aLog->Log(_L("TestSmsCommandDuplicateL() completed")); + aLog->Log(_L("Object successfully created")); + aLog->Log(_L("SmsCommandDuplicateL == PASS")); + + } + else + { + result = KErrGeneral; + aLog->Log(_L("SmsCommandDuplicateL == FAIL")); + } + return result; + } + +// ----------------------------------------------------------------------------- +// TestSetMoreMessagesToSend +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestSetMoreMessagesToSend( CStifLogger* aLog, CSmsDeliver& aDeliver) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling SetMoreMessagesToSend()")); + TInt result = KErrNone; + + //void SetMoreMessagesToSend(TBool aMore); + aDeliver.SetMoreMessagesToSend(EFalse); + + aLog->Log(_L("SetMoreMessagesToSend() Completed")); + aLog->Log(_L("More messages to send - flag successfully stored")); + aLog->Log(_L("Set more messages to send == PASS")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestGetMoreMessagesToSend +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetMoreMessagesToSend( CStifLogger* aLog, CSmsDeliver& aDeliver) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling MoreMessagesToSend()")); + TInt result = KErrNone; + + //TBool MoreMessagesToSend() const; + TBool msgs = aDeliver.MoreMessagesToSend(); + + if( msgs == EFalse) + { + aLog->Log(_L("MoreMessagesToSend() Completed")); + aLog->Log(_L("Result Data:More messages to send flag: %d"), msgs); + aLog->Log(_L("Get more messages to send == PASS")); + } + else + { + result =KErrGeneral; + aLog->Log(_L("Get more messages to send == PASS")); + } + + return result; + } + +// ----------------------------------------------------------------------------- +// TestSetReplyPath +// Sets Reply Path flag +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestSetReplyPath( CStifLogger* aLog, CSmsDeliver& aDeliver) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling SetReplyPath()")); + TInt result = KErrNone; + + //void SetReplyPath(TBool aReplyPath); + aDeliver.SetReplyPath(EFalse); + + aLog->Log(_L("SetReplyPath() completed")); + aLog->Log(_L("Reply path - flag successfully stored")); + aLog->Log(_L("Set reply path == PASS")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestGetReplyPath +// Gets Reply Path flag +// If a Reply Path exists, the recipient of the SMS can reply using the same +// service center address +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetReplyPath( CStifLogger* aLog, CSmsDeliver& aDeliver) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling ReplyPath()")); + TInt result = KErrNone; + + //TBool ReplyPath() const; + TBool path = aDeliver.ReplyPath(); + + if(path == EFalse) + { + aLog->Log(_L("ReplyPath() Completed")); + aLog->Log(_L("Result data:Reply path flag: %d "), path); + aLog->Log(_L("Get reply path == PASS")); + } + else + { + result = KErrGeneral; + aLog->Log(_L("Get reply path == FAIL")); + } + + return result; + } + +// ----------------------------------------------------------------------------- +// TestSetStatusReportIndication +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestSetStatusReportIndication( CStifLogger* aLog, CSmsDeliver& aDeliver) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling SetStatusReportIndication()")); + TInt result = KErrNone; + + //void SetStatusReportIndication(TBool aIndication); + aDeliver.SetStatusReportIndication(ETrue); + + aLog->Log(_L("SetStatusReportIndication() Completed")); + aLog->Log(_L("Status report flag successfully stored")); + aLog->Log(_L("Set status report indication == PASS")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestGetStatusReportIndication +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetStatusReportIndication( CStifLogger* aLog, CSmsDeliver& aDeliver) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling StatusReportIndication()")); + TInt result = KErrNone; + + //TBool StatusReportIndication() const; + TBool indication = aDeliver.StatusReportIndication(); + + if( indication ) + { + aLog->Log(_L("StatusReportIndication() Completed")); + aLog->Log(_L("Result data:Status report flag: %d "), indication); + aLog->Log(_L("Get status report indication == PASS")); + } + else + { + result = KErrGeneral; + aLog->Log(_L("Get status report indication == FAIL")); + } + + return result; + } + +// ----------------------------------------------------------------------------- +// TestSetServiceCenterTimeStamp +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestSetServiceCenterTimeStamp( CStifLogger* aLog, CSmsDeliver& aDeliver) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling SetServiceCenterTimeStamp()")); + TInt result = KErrNone; + + const TTime time(TDateTime(2006,EJanuary,01,12,0,0,0)); + //void SetServiceCenterTimeStamp(const TTime& aTime,TInt aNumQuarterHours=0) + aDeliver.SetServiceCenterTimeStamp(time); + + aLog->Log(_L("SetServiceCenterTimeStamp() Completed")); + aLog->Log(_L("Time stamp successfully stored")); + aLog->Log(_L("Set service center time stamp == PASS")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestGetServiceCenterTimeStamp +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetServiceCenterTimeStampL( CStifLogger* aLog, CSmsDeliver& aDeliver) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling ServiceCenterTimeStamp()")); + TInt result = KErrNone; + + TBuf<30> string; + _LIT( KFormat, "%*E%*D%X%*N%*Y %1 %2 '%3 %H%:1%T%:2%S"); + TTime setTime(TDateTime(2006,EJanuary,01,12,0,0,0)); + TTime getTime; + TInt numQuarterHrs; + //void ServiceCenterTimeStamp(TTime& aTime,TInt& aNumQuarterHours); + aDeliver.ServiceCenterTimeStamp(getTime, numQuarterHrs); + + if( getTime == setTime ) + { + getTime.FormatL(string, KFormat); + aLog->Log(_L("ServiceCenterTimeStamp() Completed")); + aLog->Log(_L("Result data:Time stamp: %S"), &string); + //aLog->Log(_L("Time zone difference: %d"), ); + aLog->Log(_L("Get service center time stamp == PASS")); + } + else + { + result = KErrGeneral; + aLog->Log(_L("Get service center time stamp == FAIL")); + } + + return result; + } + +// ----------------------------------------------------------------------------- +// TestGetProtocolIdentifier +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetProtocolIdentifier( CStifLogger* aLog, CSmsDeliver& aDeliver) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling ProtocolIdentifier()")); + TInt result = KErrNone; + + //const TSmsProtocolIdentifier* ProtocolIdentifier() const; + const TSmsProtocolIdentifier* id = aDeliver.ProtocolIdentifier(); + + aLog->Log(_L("ProtocolIdentifier() Completed")); + aLog->Log(_L("Result data:Protocol identifier: %d"), id->operator TInt()); + aLog->Log(_L("Get protocol identifier == PASS")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestSmsDeliverDuplicateL +// Creates a copy of the object +// ----------------------------------------------------------------------------- +// +LOCAL_C TInt TestSmsDeliverDuplicateL( CStifLogger* aLog, CSmsDeliver& aDeliver) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling SmsDeliverDuplicateL()")); + + TInt result = KErrNone; + + CSmsDeliver* dupObj = aDeliver.DuplicateL(); + + if( dupObj ) + { + aLog->Log(_L("TestSmsDeliverDuplicateL() completed")); + aLog->Log(_L("Object successfully created")); + aLog->Log(_L("SmsDeliverDuplicateL == PASS")); + + } + else + { + result = KErrGeneral; + aLog->Log(_L("SmsDeliverDuplicateL == FAIL")); + } + return result; + } + +// ----------------------------------------------------------------------------- +// TestGetIsRPError +// Gets the Reply Path Error flag +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetIsRPError (CStifLogger* aLog, CSmsDeliverReport& aDeliverReport) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling IsRPError()")); + + TInt result = KErrNone; + + // TBool IsRPError() const + TBool checkres = aDeliverReport.IsRPError(); + + if( checkres ) + { + aLog->Log( _L("IsRPError() completed")); + aLog->Log(_L("Result data:is RP error flag: %d"),checkres); + aLog->Log( _L("Get is RP error == PASS")); + } + else + aLog->Log( _L("Get is RP error == FAIL")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestSetIsRPError +// Gets the Reply Path Error flag +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestSetIsRPError (CStifLogger* aLog, CSmsDeliverReport& aDeliverReport) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling SetIsRPError()")); + + TInt result = KErrNone; + TBool tempVar = ETrue; + + // inline void SetIsRPError(TBool aIsRPError) + aDeliverReport.SetIsRPError (tempVar); + + aLog->Log( _L("SetIsRPError() completed")); + aLog->Log( _L("Is RP error flag stored successfully")); + aLog->Log( _L("Set is RP error == PASS")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestGetFailureCause +// Gets the Failure Cause +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetFailureCause (CStifLogger* aLog, CSmsDeliverReport& aDeliverReport) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling FailureCause()")); + + TInt result = KErrNone; + + // IMPORT_C TInt FailureCause() const + TInt checkres = aDeliverReport.FailureCause (); + + if(checkres == TSmsFailureCause::ESmsPIDErrorCannotReplaceShortMessage) + { + aLog->Log( _L("FailureCause() completed")); + _LIT(tempVal,"result data:failure cause: %d"); + aLog->Log(tempVal,checkres); + aLog->Log( _L("Get failure cause == PASS")); + } + else + aLog->Log( _L("Get failure cause == FAIL")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestSetFailureCause +// Sets the Failure Cause +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestSetFailureCause (CStifLogger* aLog, CSmsDeliverReport& aDeliverReport) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling SetFailureCause()")); + + TInt result = KErrNone; + TSmsFailureCause::TSmsFailureCauseError aFailureCause = + TSmsFailureCause::ESmsPIDErrorCannotReplaceShortMessage; + + // IMPORT_C void SetFailureCause + // (TSmsFailureCause::TSmsFailureCauseError aFailureCause) + aDeliverReport.SetFailureCause (aFailureCause); + + if(result == KErrNone) + { + aLog->Log( _L("SetFailureCause() completed")); + aLog->Log( _L("Failure cause stored successfully")); + aLog->Log( _L("Set failure cause == PASS")); + } + else + aLog->Log( _L("Set failure cause == FAIL")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestSmsDeliverReportDuplicateL +// Creates a copy of the object +// ----------------------------------------------------------------------------- +// +LOCAL_C TInt TestSmsDeliverReportDuplicateL( CStifLogger* aLog, CSmsDeliverReport& aDeliverReport) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling SmsDeliverReportDuplicateL()")); + + TInt result = KErrNone; + + CSmsDeliverReport* dupObj = aDeliverReport.DuplicateL(); + + if( dupObj ) + { + aLog->Log(_L("TestSmsDeliverReportDuplicateL() completed")); + aLog->Log(_L("Object successfully created")); + aLog->Log(_L("SmsDeliverReportDuplicateL == PASS")); + + } + else + { + result = KErrGeneral; + aLog->Log(_L("SmsDeliverReportDuplicateL == FAIL")); + } + return result; + } + +// ----------------------------------------------------------------------------- +// TestDelete +// Deletes data from the buffer +// ----------------------------------------------------------------------------- +// +LOCAL_C TInt TestDelete( CStifLogger* aLog, CSmsEditorBuffer& aBuffer) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling DeleteL()")); + + TInt position = 2; + TInt length = 2; + //IMPORT_C void DeleteL(TInt aPos,TInt aLength); + TRAPD( result, aBuffer.DeleteL( position, length)); + + if( result == KErrNone ) + { + aLog->Log(_L("DeleteL() Completed")); + aLog->Log(_L("Data successfully deleted")); + aLog->Log(_L("Delete == PASS")); + } + else + aLog->Log(_L("Delete == FAIL")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestReset +// Resets the buffer +// ----------------------------------------------------------------------------- +// +LOCAL_C TInt TestReset( CStifLogger* aLog, CSmsEditorBuffer& aBuffer) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling Reset()")); + TInt result = KErrNone; + + //IMPORT_C void Reset(); + aBuffer.Reset(); + + aLog->Log(_L("Reset() Completed")); + aLog->Log(_L("Data successfully reseted")); + aLog->Log(_L("Reset == PASS")); + return result; + } + +// ----------------------------------------------------------------------------- +// TestExtract +// Extracts buffer data to a descriptor +// ----------------------------------------------------------------------------- +// +LOCAL_C TInt TestExtract( CStifLogger* aLog, CSmsEditorBuffer& aBuffer) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling Extract()")); + TInt result = KErrNone; + + TBuf<24> buffer; + TInt position = 2; + TInt length = 6; + //IMPORT_C void Extract(TDes& aBuf,TInt aPos,TInt aLength) const; + aBuffer.Extract(buffer, position, length); + + aLog->Log(_L("Extract() Completed")); + aLog->Log(_L("Data successfully extracted")); + aLog->Log(_L("Extract == PASS")); + return result; + } + +// ----------------------------------------------------------------------------- +// TestInsert +// Inserts data into the buffer +// ----------------------------------------------------------------------------- +// +LOCAL_C TInt TestInsert( CStifLogger* aLog, CSmsEditorBuffer& aBuffer) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling InsertL()")); + + TBufC<24> buffer(KTestBuffer1); + TInt position = 0; + //IMPORT_C void InsertL(TInt aPos,const TDesC& aBuf); + TRAPD( result, aBuffer.InsertL(position, buffer)); + + if( result == KErrNone ) + { + aLog->Log(_L("InsertL() Completed")); + aLog->Log(_L("Data successfully Inserted")); + aLog->Log(_L("Delete == PASS")); + } + else + aLog->Log(_L("Delete == FAIL")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestGetLength +// Gets the amount of space currently used in the buffer. +// ----------------------------------------------------------------------------- +// +LOCAL_C TInt TestGetLength( CStifLogger* aLog, CSmsEditorBuffer& aBuffer) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling Length()")); + TInt result = KErrNone; + + //IMPORT_C TInt Length() const; + TInt length = aBuffer.Length(); + + if(length == 22) + { + aLog->Log(_L("Length() Completed")); + aLog->Log(_L("Result data: Length: %d"), length); + aLog->Log(_L("Length == PASS")); + } + else + { + result = KErrGeneral; + aLog->Log(_L("Length == FAIL")); + } + + return result; + } + +// ----------------------------------------------------------------------------- +// TestGetIdentifier +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetIdentifier( CStifLogger* aLog, CSmsInformationElement& aElement) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling Identifier()")); + TInt result = KErrNone; + + //TSmsInformationElementIdentifier Identifier() const; + CSmsInformationElement::TSmsInformationElementIdentifier id = aElement.Identifier(); + + aLog->Log(_L("Identifier() Completed")); + aLog->Log(_L("Result data: Identifier: %d"),id); + aLog->Log(_L("Get identifier == PASS")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestGetDataTPtr8 +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetDataTPtr8( CStifLogger* aLog, CSmsInformationElement& aElement) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling TPtr8 Data()")); + TInt result = KErrNone; + + //TPtr8 Data(); + TPtr8 data = aElement.Data(); + + aLog->Log(_L("TPtr8 Data() Completed")); + aLog->Log(_L("Result data: Data: %s"), data.Ptr()); + aLog->Log(_L("Get data (TPtr8) == PASS")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestGetDataTDesC8 +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetDataTDesC8( CStifLogger* aLog, CSmsInformationElement& aElement) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling TDesC8& Data()")); + TInt result = KErrNone; + + //const TDesC8& Data() const; + const TBufC8<32> data = aElement.Data(); + + aLog->Log(_L("TDesC8& Data() Completed")); + aLog->Log(_L("Result data: Data: %s"), data.Ptr()); + aLog->Log(_L("Get data (TDesC8) == PASS")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestConstructionSmsPDUType +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestConstructionTGsmSms_MessageL(CStifLogger* aLog) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling CSmsMessage::NewL(TGsmSms)")); + TInt result = KErrNone; + + RFs session; + User::LeaveIfError(session.Connect()); + TGsmSms sms; + CSmsBuffer* buffer = CSmsBuffer::NewL(); + CCnvCharacterSetConverter* characterSetConverter = CCnvCharacterSetConverter::NewL(); + //static CSmsPDU* NewL(TSmsPDUType aType,CCnvCharacterSetConverter& aCharacterSetConverter,RFs& aFs,TBool aIsRPError=EFalse); + CSmsPDU* PDU = CSmsPDU::NewL(CSmsPDU::ESmsDeliver, *characterSetConverter, session); + PDU->EncodeMessagePDUL( sms ); + + //static CSmsMessage* NewL(RFs& aFs, const TGsmSms& aGsmSms,CSmsBufferBase* aBuffer, + // TBool aIsRPError=EFalse,TBool aIsMobileTerminated=ETrue); + CSmsMessage* message = CSmsMessage::NewL(session, sms, buffer); + CleanupStack::PushL(message); + + if(message == NULL ) + result = KErrGeneral; + + CleanupStack::PopAndDestroy(); + session.Close(); + return result; + } + +// ----------------------------------------------------------------------------- +// TestGetType +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetType(CStifLogger* aLog,CSmsMessage& aMessage) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling Type()")); + TInt result = KErrNone; + + //CSmsPDU::TSmsPDUType Type() const; + CSmsPDU::TSmsPDUType type = aMessage.Type(); + + if( type == CSmsPDU::ESmsDeliver ) + { + aLog->Log(_L("Type() Completed")); + aLog->Log(_L("Result data: Type: %d"), type); + aLog->Log(_L("Get type == PASS")); + } + else + { + result = KErrGeneral; + aLog->Log(_L("Get type == FAIL")); + } + + return result; + } + +// ----------------------------------------------------------------------------- +// TestGetIsComplete +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetIsComplete(CStifLogger* aLog,CSmsMessage& aMessage) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling IsComplete()")); + TInt result = KErrNone; + + //TBool IsComplete() const; + TBool res = aMessage.IsComplete(); + + aLog->Log(_L("IsComplete() Completed")); + aLog->Log(_L("Result data: Is completed: %d"), res); + aLog->Log(_L("Get is complete == PASS")); + + return result; + } +// ----------------------------------------------------------------------------- +// TestIsDecoded +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestIsDecoded(CStifLogger* aLog,CSmsMessage& aMessage) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling IsDecoded()")); + TInt result = KErrNone; + + //TBool IsDecoded() const + TBool res = aMessage.IsDecoded(); + + aLog->Log(_L("IsDecoded() Completed")); + aLog->Log(_L("Result data: IsDecoded: %d"), res); + aLog->Log(_L("Get is decoded == PASS")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestSetStorage +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestSetStorage(CStifLogger* aLog,CSmsMessage& aMessage) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling SetStorage()")); + TInt result = KErrNone; + + //void SetStorage(TMobileSmsStorage aStorage) + CSmsMessage::TMobileSmsStorage storage = CSmsMessage::ESmsNoStorage; + aMessage.SetStorage(storage); + + aLog->Log(_L("SetStorage() Completed")); + aLog->Log(_L("Storage successfully set")); + aLog->Log(_L("Set storage == PASS")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestGetStorage +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetStorage(CStifLogger* aLog,CSmsMessage& aMessage) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling Storage()")); + TInt result = KErrNone; + + //TMobileSmsStorage Storage() const + CSmsMessage::TMobileSmsStorage storage = aMessage.Storage(); + + if( storage == CSmsMessage::ESmsNoStorage) + { + aLog->Log(_L("Storage() Completed")); + aLog->Log(_L("Result data: storage: %d"), storage); + aLog->Log(_L("Get storage == PASS")); + } + else + { + result = KErrGeneral; + aLog->Log(_L("Get storage == FAIL")); + } + + return result; + } + +// ----------------------------------------------------------------------------- +// TestSetStatus +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestSetStatus(CStifLogger* aLog,CSmsMessage& aMessage) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling SetStatus()")); + TInt result = KErrNone; + + //void SetStatus(NMobileSmsStore::TMobileSmsStoreStatus aStatus) + NMobileSmsStore::TMobileSmsStoreStatus status = NMobileSmsStore::EStoredMessageUnknownStatus; + aMessage.SetStatus(status); + + aLog->Log(_L("Status() Completed")); + aLog->Log(_L("Result data: status: %d"), status); + aLog->Log(_L("Get status == PASS")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestGetStatus +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetStatus(CStifLogger* aLog,CSmsMessage& aMessage) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling Status()")); + TInt result = KErrNone; + + //NMobileSmsStore::TMobileSmsStoreStatus Status() const + NMobileSmsStore::TMobileSmsStoreStatus status = aMessage.Status(); + + if( status == NMobileSmsStore::EStoredMessageUnknownStatus ) + { + aLog->Log(_L("Status() Completed")); + aLog->Log(_L("Result data: status: %d"), status); + aLog->Log(_L("Get status == PASS")); + } + else + { + result = KErrGeneral; + aLog->Log(_L("Get status == FAIL")); + } + + return result; + } + +// ----------------------------------------------------------------------------- +// TestSetLogServerId +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestSetLogServerId(CStifLogger* aLog,CSmsMessage& aMessage) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling SetLogServerId()")); + TInt result = KErrNone; + + //void SetLogServerId(TInt aId) + TInt id = 1; + aMessage.SetLogServerId(id); + + aLog->Log(_L("SetLogServerId() completed")); + aLog->Log(_L("Log server id successfully stored")); + aLog->Log(_L("Set log server id == PASS")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestGetLogServerId +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetLogServerId(CStifLogger* aLog,CSmsMessage& aMessage) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling LogServerId()")); + TInt result = KErrNone; + + //TInt LogServerId() const + TInt id = aMessage.LogServerId(); + + if( id == 1) + { + aLog->Log(_L("LogServerId() completed")); + aLog->Log(_L("result data: log server id: %d"), id); + aLog->Log(_L("Get log server id == PASS")); + } + else + { + result = KErrGeneral; + aLog->Log(_L("Get log server id == FAIL")); + } + + return result; + } + +// ----------------------------------------------------------------------------- +// TestSetTime +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestSetTime(CStifLogger* aLog,CSmsMessage& aMessage) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling SetTime()")); + TInt result = KErrNone; + + TTime time(TDateTime(2006,EJanuary,01,12,0,0,0)); + //void SetTime(const TTime &aTime) + aMessage.SetTime(time); + + aLog->Log(_L("SetTime() completed")); + aLog->Log(_L("Time successfully stored")); + aLog->Log(_L("Set time == PASS")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestGetTime +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetTimeL(CStifLogger* aLog,CSmsMessage& aMessage) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling Time()")); + TInt result = KErrNone; + + TBuf<30> string; + _LIT( KFormat, "%*E%*D%X%*N%*Y %1 %2 '%3 %H%:1%T%:2%S"); + TTime setTime(TDateTime(2006,EJanuary,01,12,0,0,0)); + //const TTime &Time() const + TTime time = aMessage.Time(); + + if( time == setTime ) + { + time.FormatL(string, KFormat); + aLog->Log(_L("Time() completed")); + aLog->Log(_L("result data: time: %S"), &string); + aLog->Log(_L("Get time == PASS")); + } + else + { + result = KErrGeneral; + aLog->Log(_L("Get time == FAIL")); + } + + return result; + } + +// ----------------------------------------------------------------------------- +// TestGetSMSPDU +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetSMSPduL(CStifLogger* aLog,CSmsMessage& aMessage) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling SmsPduL()")); + TInt result = KErrNone; + + //CSmsPDU &SmsPduL() + CSmsPDU& smspdu = aMessage.SmsPDU(); + + aLog->Log(_L("SmsPduL() completed")); + aLog->Log(_L("result data: PDU type: %d"), smspdu.Type()); + aLog->Log(_L("Get SMS PDU == PASS")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestGetSMSPDUConst +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetSMSPDUConst(CStifLogger* aLog,CSmsMessage& aMessage) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling SmsPduL() const")); + TInt result = KErrNone; + + //const CSmsPDU &SmsPduL() const + const CSmsPDU& smspdu = aMessage.SmsPDU(); + + aLog->Log(_L("SmsPduL() const completed")); + aLog->Log(_L("result data: PDU type: %d"), smspdu.Type()); + aLog->Log(_L("Get SMS PDU == PASS")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestSetSeviceCenterAddress +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestSetServiceCenterAddress(CStifLogger* aLog,CSmsMessage& aMessage) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling SetServiceCenterAddressL()")); + + TPtrC serviceCenter = _L("nokia house"); + //void SetServiceCenterAddressL(const TDesC &aAddress) + TRAPD( result,aMessage.SetServiceCenterAddressL(serviceCenter)); + + if( result == KErrNone ) + { + aLog->Log(_L("SetServiceCenterAddressL() completed")); + aLog->Log(_L("Service center address successfully stored")); + aLog->Log(_L("Set service center address == PASS")); + } + else + { + aLog->Log(_L("Set service center address == FAIL")); + } + + return result; + } + +// ----------------------------------------------------------------------------- +// TestGetSeviceCenterAddress +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetServiceCenterAddress(CStifLogger* aLog,CSmsMessage& aMessage) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling ServiceCenterAddress()")); + TInt result = KErrNone; + + TPtrC setServiceCenter = _L("nokia house"); + //TPtrC ServiceCenterAddress() const + TPtrC serviceCenter = aMessage.ServiceCenterAddress(); + + if( !setServiceCenter.Compare(serviceCenter) ) + { + aLog->Log(_L("ServiceCenterAddress() completed")); + aLog->Log(_L("result data: address: %s"), serviceCenter.Ptr()); + aLog->Log(_L("Get service center address == PASS")); + } + else + { + aLog->Log(_L("Get service center address == FAIL")); + } + + return result; + } + +// ----------------------------------------------------------------------------- +// TestSetParsedServiceCenterAddress +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestSetParsedServiceCenterAddress(CStifLogger* aLog,CSmsMessage& aMessage) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling SetParsedServiceCenterAddressL()")); + + //void SetParsedServiceCenterAddressL(const TGsmSmsTelNumber &aParsedAddress); + TGsmSmsTelNumber telNumber; + telNumber.iTelNumber = _L("919886757059"); + TRAPD( result, aMessage.SetParsedServiceCenterAddressL(telNumber)); + + if( result == KErrNone ) + { + aLog->Log(_L("SetParsedServiceCenterAddressL() completed")); + aLog->Log(_L("Parsed address successfully stored")); + aLog->Log(_L("Set parsed service center address == PASS")); + } + else + { + aLog->Log(_L("Set parsed service center address == FAIL")); + } + + return result; + } + +// ----------------------------------------------------------------------------- +// TestGetParsedServiceCenterAddress +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetParsedServiceCenterAddress(CStifLogger* aLog,CSmsMessage& aMessage) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling ParsedServiceCenterAddress()")); + TInt result = KErrNone; + + TGsmSmsTelNumber setTelNumber; + setTelNumber.iTelNumber = _L("919886757059"); + //void ParsedServiceCenterAddress(TGsmSmsTelNumber &aParsedAddress) const + TGsmSmsTelNumber telNumber; + aMessage.ParsedServiceCenterAddress(telNumber); + + if(setTelNumber.iTelNumber == telNumber.iTelNumber) + { + aLog->Log(_L("ParsedServiceCenterAddress() completed")); + aLog->Log(_L("result data: parsed address: %s"), telNumber.iTelNumber.Ptr()); + aLog->Log(_L("Get parsed service center address == PASS")); + } + else + { + aLog->Log(_L("Get parsed service center address == FAIL")); + } + + return result; + } + +// ----------------------------------------------------------------------------- +// TestSetToFromAddress +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestSetToFromAddress(CStifLogger* aLog,CSmsMessage& aMessage) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling SetToFromAddressL()")); + + TBufC<12> address(_L("nokia house")); + + //void SetToFromAddressL(const TDesC &aAddress) + TRAPD( result, aMessage.SetToFromAddressL(address)); + + if( result == KErrNone ) + { + aLog->Log(_L("SetToFromAddressL() completed")); + aLog->Log(_L("To from addresses successfully stored")); + aLog->Log(_L("Set to from address == PASS")); + } + else + { + aLog->Log(_L("Set to from address == FAIL")); + } + + return result; + } + +// ----------------------------------------------------------------------------- +// TestGetToFromAddress +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetToFromAddress(CStifLogger* aLog,CSmsMessage& aMessage) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling ToFromAddress()")); + TInt result = KErrNone; + + TBufC<12> address(_L("nokia house")); + //TPtrC ToFromAddress() const + TPtrC addressPtr = aMessage.ToFromAddress(); + + if( !addressPtr.Compare(address) ) + { + aLog->Log(_L("ToFromAddress() completed")); + aLog->Log(_L("result data: to from address: %s"), addressPtr.Ptr()); + aLog->Log(_L("Get to from address == PASS")); + } + else + { + result = KErrGeneral; + aLog->Log(_L("Get to from address == FAIL")); + } + + return result; + } + +// ----------------------------------------------------------------------------- +// TestSetParsedToFromAddress +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestSetParsedToFromAddress(CStifLogger* aLog,CSmsMessage& aMessage) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling SetParsedToFromAddressL()")); + + //void SetParsedToFromAddressL(const TGsmSmsTelNumber &aParsedAddress) + TGsmSmsTelNumber address; + address.iTelNumber = _L("919886757059"); + TRAPD( result, aMessage.SetParsedToFromAddressL(address)); + + if( result == KErrNone ) + { + aLog->Log(_L("SetParsedToFromAddressL() completed")); + aLog->Log(_L("Parsed to from addresses successfully stored")); + aLog->Log(_L("Set to from address == PASS")); + } + else + { + aLog->Log(_L("Set to from address == FAIL")); + } + + return result; + } + +// ----------------------------------------------------------------------------- +// TestGetParsedToFromAddress +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetParsedToFromAddress(CStifLogger* aLog,CSmsMessage& aMessage) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling ParsedToFromAddress()")); + TInt result = KErrNone; + + TGsmSmsTelNumber setAddress; + setAddress.iTelNumber = _L("919886757059"); + //void ParsedToFromAddress(TGsmSmsTelNumber &aParsedAddress) const + TGsmSmsTelNumber address; + aMessage.ParsedToFromAddress(address); + + if(setAddress.iTelNumber == address.iTelNumber) + { + aLog->Log(_L("ParsedToFromAddress() completed")); + aLog->Log(_L("result data: parsed to from address: %s"), address.iTelNumber.Ptr()); + aLog->Log(_L("Get to from address == PASS")); + } + else + { + aLog->Log(_L("Get to from address == FAIL")); + } + + return result; + } + +// ----------------------------------------------------------------------------- +// TestInternalizeWithoutBuffer +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestInternalizeWithoutBufferL(CStifLogger* aLog,CSmsMessage& aMessage) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling InternalizeWithoutBufferL()")); + + RFs session; + User::LeaveIfError(session.Connect()); + TBufC<64> storename = _L("C:\\SMSGSMUtilities_CSmsMessage"); + RFileReadStream read; + + TInt erro = read.Open(session, storename, EFileRead); + + //void InternalizeWithoutBufferL(RReadStream &aStream) + TRAPD( result, aMessage.InternalizeWithoutBufferL(read)); + + read.Close(); + + //now delete the store + TInt err = session.Delete(storename); + if(err != KErrNone) + { + RDebug::Print(_L("Error %d deleting \"%S\" file.\n"), err, &storename); + } + + session.Close(); + if( result == KErrNone ) + { + aLog->Log(_L("InternalizeWithoutBufferL() completed")); + aLog->Log(_L("Data internalized successfully")); + aLog->Log(_L("Internalize without buffer == PASS")); + } + else + aLog->Log(_L("Internalize without buffer == FAIL")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestExternalizeWithoutBufferL +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestExternalizeWithoutBufferL(CStifLogger* aLog,CSmsMessage& aMessage) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling ExternalizeWithoutBufferL()")); + + RFs session; + User::LeaveIfError(session.Connect()); + TBufC<64> storename = _L("C:\\SMSGSMUtilities_CSmsMessage"); + RFileWriteStream write; + + write.Create(session, storename, EFileWrite); + TInt err = write.Open(session, storename, EFileWrite); + + //void ExternalizeWithoutBufferL(RWriteStream &aStream) const + TRAPD( result, aMessage.ExternalizeWithoutBufferL(write)); + + write.CommitL(); + write.Close(); + + session.Close(); + if( result == KErrNone ) + { + aLog->Log(_L("ExternalizeWithoutBufferL() completed")); + aLog->Log(_L("Data externalized successfully")); + aLog->Log(_L("Externalize without buffer == PASS")); + } + else + aLog->Log(_L("Externalize without buffer == FAIL")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestInternalize +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestInternalizeL(CStifLogger* aLog,CSmsMessage& aMessage) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling InternalizeL()")); + + RFs session; + User::LeaveIfError(session.Connect()); + TBufC<64> storename = _L("C:\\SMSGSMUtilities_CSmsMessage"); + RFileReadStream read; + + TInt erro = read.Open(session, storename, EFileRead); + + //IMPORT_C void InternalizeL(RReadStream &aStream) + TRAPD( result, aMessage.InternalizeL( read )); + + read.Close(); + + //now delete the store + TInt err = session.Delete(storename); + if(err != KErrNone) + { + RDebug::Print(_L("Error %d deleting \"%S\" file.\n"), err, &storename); + } + + session.Close(); + if( result == KErrNone ) + { + aLog->Log(_L("InternalizeL() completed")); + aLog->Log(_L("Data internalized successfully")); + aLog->Log(_L("Internalize == PASS")); + } + else + aLog->Log(_L("Internalize == FAIL")); + + return result; + + } + +// ----------------------------------------------------------------------------- +// TestExternalize +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestExternalizeL(CStifLogger* aLog,CSmsMessage& aMessage) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling ExternalizeL()")); + + RFs session; + User::LeaveIfError(session.Connect()); + TBufC<64> storename = _L("C:\\SMSGSMUtilities_CSmsMessage"); + RFileWriteStream write; + + write.Create(session, storename, EFileWrite); + TInt err = write.Open(session, storename, EFileWrite); + + //IMPORT_C void ExternalizeL(RWriteStream& aStream) const; + TRAPD( result, aMessage.ExternalizeL( write )); + + write.CommitL(); + write.Close(); + + session.Close(); + if( result == KErrNone ) + { + aLog->Log(_L("ExternalizeL() completed")); + aLog->Log(_L("Data externalized successfully")); + aLog->Log(_L("Externalize == PASS")); + } + else + aLog->Log(_L("Externalize == FAIL")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestGetBuffer +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetBufferL(CStifLogger* aLog,CSmsMessage& aMessage) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling Buffer()")); + TInt result = KErrNone; + + //CSmsBufferBase &Buffer() + CSmsBuffer& buffer = STATIC_CAST(CSmsBuffer&, aMessage.Buffer()); + HBufC* buf = HBufC::NewL(buffer.Length()); + TPtr bufPtr = buf->Des(); + + aLog->Log(_L("Buffer() completed")); + buffer.Extract(bufPtr, 0, buffer.Length()); + aLog->Log(_L("result data: buffer: %s"), buf); + aLog->Log(_L("Get buffer == PASS")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestGetBufferConst +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetBufferConstL(CStifLogger* aLog,CSmsMessage& aMessage) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling const Buffer()")); + TInt result = KErrNone; + + //const CSmsBufferBase &Buffer() const + const CSmsBuffer& buffer = STATIC_CAST(const CSmsBuffer&, aMessage.Buffer()); + HBufC* buf = HBufC::NewL(buffer.Length()); + TPtr bufPtr = buf->Des(); + + aLog->Log(_L("const Buffer() completed")); + buffer.Extract(bufPtr, 0, buffer.Length()); + aLog->Log(_L("result data: buffer: %s"), buf); + aLog->Log(_L("Get buffer const == PASS")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestGetTextPresent +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetTextPresent(CStifLogger* aLog,CSmsMessage& aMessage) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling TextPresent()")); + TInt result = KErrNone; + + //TBool TextPresent() const + TBool res = aMessage.TextPresent(); + + aLog->Log(_L("TextPresent() completed")); + aLog->Log(_L("result data: text present: %d"), res); + aLog->Log(_L("Get text present == PASS")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestGetNumberOfMessagePDU +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetNumberOfMessagePduL(CStifLogger* aLog,CSmsMessage& aMessage) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling NumMessagePDUsL()")); + + //TInt NumMessagePDUsL() + TInt res = 0; + TRAPD(result, res = aMessage.NumMessagePDUsL()); + if(result != KErrNone) + { + aLog->Log(_L("Leave occured: error code: %d"), result); + } + else + { + aLog->Log(_L("NumMessagePDUsL() completed")); + aLog->Log(_L("result data: number of PDUs: %d"), res); + aLog->Log(_L("Get number of message PDUs == PASS")); + } + return result; + } + +// ----------------------------------------------------------------------------- +// TestGetMaxLength +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetMaxLength(CStifLogger* aLog,CSmsMessage& aMessage) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling MaxMessageLength()")); + TInt result = KErrNone; + + //TInt MaxMessageLength() + TInt res = aMessage.MaxMessageLength(); + + aLog->Log(_L("MaxMessageLength() completed")); + aLog->Log(_L("result data: max message length: %d"), res); + aLog->Log(_L("Get max message length == PASS")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestGetMessageLength +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetMessageLength(CStifLogger* aLog,CSmsMessage& aMessage) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling MessageLengthL()")); + + //TInt MessageLengthL() + TInt res = 0; + TRAPD(result, res = aMessage.MessageLengthL()); + if(result != KErrNone) + { + aLog->Log(_L("Leave occured: error code: %d"), result); + } + else + { + aLog->Log(_L("MessageLengthL() completed")); + aLog->Log(_L("result data: message length: %d"), res); + aLog->Log(_L("Get message length == PASS")); + } + + return result; + } + +// ----------------------------------------------------------------------------- +// TestOptimizeSettings +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestOptimizeSettings(CStifLogger* aLog,CSmsMessage& aMessage) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling OptimizeSettingsL()")); + + //void OptimizeSettingsL(TInt aOptions) + TRAPD( result, aMessage.OptimizeSettingsL(CSmsMessage::ESmsFlagOptimizeAlphabet)); + if(result != KErrNone) + { + aLog->Log(_L("Leave occured: error code: %d"), result); + } + else + { + aLog->Log(_L("OptimizeSettingsL() completed")); + aLog->Log(_L("User data settings successfully optimized")); + aLog->Log(_L("Optimize settings == PASS")); + } + + return result; + } + +// ----------------------------------------------------------------------------- +// TestGetIsSupported +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetIsSupported(CStifLogger* aLog,CSmsMessage& aMessage) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling IsSupportedL()")); + + //TBool IsSupportedL(const TDesC &aDes, TInt &aNumberOfUnconvertibleCharacters, TInt &aIndexOfFirstUnconvertibleCharacter) + TBufC<50> testBuffer = _L("Nokia$123has*some%employees"); + TInt numUnconvertable; + TInt posFirstUnconvertable; + TBool res = 0; + TRAPD( result, res = aMessage.IsSupportedL(testBuffer, numUnconvertable, posFirstUnconvertable)); + + if(result != KErrNone) + { + aLog->Log(_L("Leave occured: error code: %d"), result); + } + else + { + aLog->Log(_L("IsSupportedL() completed")); + aLog->Log(_L("result data: is supported: %d"), res); + aLog->Log(_L("Get is supported == PASS")); + } + return result; + } + + +// ----------------------------------------------------------------------------- +// TestEncodeMessagePDU +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestEncodeMessagePDUL(CStifLogger* aLog,CSmsMessage& aMessage) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling EncodeMessagePDUsL()")); + + CArrayFix* singlePDU = new (ELeave) CArrayFixFlat(10); + aMessage.EncodeIntoSinglePDUL(*singlePDU); + CArrayFix* encodedPDU = new (ELeave) CArrayFixFlat(10); + //EncodeMessagePDUsL(CArrayFix< TGsmSms > &aSmsArray, TInt aReference=0) + TRAPD( result, aMessage.EncodeMessagePDUsL(*encodedPDU)); + if(result != KErrNone) + { + aLog->Log(_L("Leave occured: error code: %d"), result); + } + else + { + aLog->Log(_L("EncodeMessagePDUsL() completed")); + aLog->Log(_L("Message PDUs encoded successfully")); + aLog->Log(_L("Encode message PDUs == PASS")); + } + + delete singlePDU; + delete encodedPDU; + return result; + } + +// ----------------------------------------------------------------------------- +// TestDecodeMessagePDU +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestDecodeMessagePDUL(CStifLogger* aLog,CSmsMessage& aMessage) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling DecodeMessagePDUsL()")); + + CArrayFix* PDU = new (ELeave) CArrayFixFlat(10); + const TGsmSms* gsmSms = new (ELeave) TGsmSms(); + + TInt i = 0; + for(; i<10; i++ ) + { + PDU->InsertL(i,*gsmSms); + } + + //void DecodeMessagePDUsL(const CArrayFix& aSmsArray); + TRAPD( result, aMessage.DecodeMessagePDUsL(*PDU)); + if(result != KErrNone) + { + aLog->Log(_L("Leave occured: error code: %d"), result); + } + else + { + aLog->Log(_L("DecodeMessagePDUsL() completed")); + aLog->Log(_L("Message PDUs decoded successfully")); + aLog->Log(_L("Decode message PDUs == PASS")); + } + + delete PDU; + return result; + } + +// ----------------------------------------------------------------------------- +// TestAddEMSInformationElements +// +// ----------------------------------------------------------------------------- +/*LOCAL_C TInt TestAddEMSInformationElements(CStifLogger* aLog,CSmsMessage& aMessage) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling AddEMSInformationElementL()")); + TInt result = KErrNone; + RFs rfServer; + User::LeaveIfError(rfServer.Connect()); + + CCnvCharacterSetConverter* characterSetConverter = CCnvCharacterSetConverter::NewL(); + CSmsBuffer* smsBuffer = CSmsBuffer::NewL(); + CSmsMessage* smsMessage = CSmsMessage::NewL(rfServer, CSmsPDU::ESmsCommand, smsBuffer ); + CSmsCommand& command = STATIC_CAST(CSmsCommand&, smsMessage->SmsPduL() ); + + CSmsInformationElement::TSmsInformationElementIdentifier identifier = CSmsInformationElement::ESmsEnhancedVariablePicture; + TBufC8<24> information(KTestInfo8); + command.AddInformationElementL( identifier, information); + + CEmsInformationElement& element = STATIC_CAST(CEmsInformationElement&, command.InformationElement(0)); + CleanupStack::PushL(&element); + + element.SetStartPosition(0); + +//currently not exported + CEmsSoundIE* element = CEmsSoundIE::NewL(); + CleanupStack::PushL(element); + + //void AddEMSInformationElementL(const CEmsInformationElement &aEmsIE) + TRAPD( result, aMessage.AddEMSInformationElementL(*element)); + + if(result != KErrNone) + { + aLog->Log(_L("Leave occured: error code: %d"), result); + } + else + { + aLog->Log(_L("AddEMSInformationElementL() completed")); + aLog->Log(_L("EMS information element added")); + aLog->Log(_L("Add EMS information elements == PASS")); + } + + CleanupStack::PopAndDestroy(element); + rfServer.Close(); + return result; + } +*/ +// ----------------------------------------------------------------------------- +// TestGetEMSInformationElements +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetEMSInformationElements(CStifLogger* aLog,CSmsMessage& aMessage) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling GetEMSInformationElementsL()")); + + //const RPointerArray< const CEmsInformationElement > &GetEMSInformationElementsL() const + RPointerArray arrayEmsInfo; + TRAPD( result, arrayEmsInfo = aMessage.GetEMSInformationElementsL()); + + if(result != KErrNone) + { + aLog->Log(_L("Leave occured: error code: %d"), result); + } + else + { + aLog->Log(_L("GetEMSInformationElementsL() completed")); + aLog->Log(_L("EMS information elements fetched")); + aLog->Log(_L("Get EMS information elements == PASS")); + } + + return result; + } + +// ----------------------------------------------------------------------------- +// TestRemoveEMSInformationElements +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestRemoveEMSInformationElements(CStifLogger* aLog,CSmsMessage& aMessage) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling RemoveEMSInformationElementsL()")); + + //RPointerArray< CEmsInformationElement > *RemoveEMSInformationElementsL(const TUint aStartPosition, const TSmsId aEmsId); + RPointerArray* arrayEmsInfo = new RPointerArray(5); + TRAPD( result, arrayEmsInfo = aMessage.RemoveEMSInformationElementsL(0, CEmsInformationElement::ESmsIEIConcatenatedShortMessages8BitReference)); + + if(result != KErrNone) + { + aLog->Log(_L("Leave occured: error code: %d"), result); + } + else + { + aLog->Log(_L("RemoveEMSInformationElementsL() completed")); + aLog->Log(_L("EMS information elements removed")); + aLog->Log(_L("Remove EMS information elements PASS")); + } + + delete arrayEmsInfo; + return result; + } + +// ----------------------------------------------------------------------------- +// TestRemoveEMSInformationElement +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestRemoveEMSInformationElement(CStifLogger* aLog,CSmsMessage& aMessage) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling RemoveEMSInformationElementL()")); + + //CEmsInformationElement *RemoveEMSInformationElementL(const TUint aStartPosition, const TSmsId aEmsId) + TRAPD( result, CEmsInformationElement* removedElement = aMessage.RemoveEMSInformationElementL(0, CEmsInformationElement::ESmsIEIConcatenatedShortMessages8BitReference)); + + if(result != KErrNone) + { + aLog->Log(_L("Leave occured: error code: %d"), result); + } + else + { + aLog->Log(_L("RemoveEMSInformationElementL() completed")); + aLog->Log(_L("EMS information element removed")); + aLog->Log(_L("Remove EMS information element PASS")); + } + + return result; + } + +// ----------------------------------------------------------------------------- +// TestResetEMS +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestResetEMS(CStifLogger* aLog,CSmsMessage& aMessage) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling ResetEMSL()")); + + //void ResetEMSL(); + TRAPD( result, aMessage.ResetEMSL()); + + if(result != KErrNone) + { + aLog->Log(_L("Leave occured: error code: %d"), result); + } + else + { + aLog->Log( _L("ResetEMSL() completed")); + aLog->Log (_L("EMS information element successfully reseted")); + aLog->Log( _L("Reset EMS == PASS")); + } + + return result; + } + +// ----------------------------------------------------------------------------- +// TestCopyEMSElements +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestCopyEMSElementsL(CStifLogger* aLog,CSmsMessage& aMessage) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling CopyEmsElementsL()")); + + RFs rfServer; + User::LeaveIfError(rfServer.Connect()); + + CCnvCharacterSetConverter* characterSetConverter = CCnvCharacterSetConverter::NewL(); + CSmsBuffer* smsBuffer = CSmsBuffer::NewL(); + CSmsMessage* message = CSmsMessage::NewL(rfServer, CSmsPDU::ESmsDeliver, smsBuffer ); + + //void CopyEmsElementsL(CSmsMessage &aToMessage) const + TRAPD( result, aMessage.CopyEmsElementsL(*message)); + + if(result != KErrNone) + { + aLog->Log(_L("Leave occured: error code: %d"), result); + } + else + { + aLog->Log(_L("CopyEmsElementsL() completed")); + aLog->Log(_L("EMS elements copied successfully")); + aLog->Log(_L("Copy EMS elements == PASS")); + } + + delete message; + rfServer.Close(); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestEncodeIntoSinglePDU +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestEncodeIntoSinglePDUL(CStifLogger* aLog,CSmsMessage& aMessage) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling EncodeIntoSinglePDUL()")); + + //TBool EncodeIntoSinglePDUL(CArrayFix< TGsmSms > &aSmsArray); + CArrayFix* singlePDU = new (ELeave) CArrayFixFlat(10); + TRAPD( result, TBool res = aMessage.EncodeIntoSinglePDUL(*singlePDU)); + + if(result != KErrNone) + { + aLog->Log(_L("Leave occured: error code: %d"), result); + } + else + { + aLog->Log( _L("EncodeIntoSinglePDUL() completed")); + aLog->Log (_L("Encoded into single PDU successfully")); + aLog->Log( _L("Get is email header == PASS")); + } + + delete singlePDU; + return result; + } + +// ----------------------------------------------------------------------------- +// TestAddSlot +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestAddSlot(CStifLogger* aLog,CSmsMessage& aMessage) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling AddSlotL()")); + + TGsmSmsSlotEntry slotEntry; + TRAPD( result, aMessage.AddSlotL(slotEntry)); + + if(result != KErrNone) + { + aLog->Log(_L("Leave occured: error code: %d"), result); + } + else + { + aLog->Log(_L("AddSlotL() completed")); + aLog->Log(_L("Slot added successfully")); + aLog->Log(_L("Add slot == PASS")); + } + + return result; + } + +// ----------------------------------------------------------------------------- +// TestMatchSlots +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestMatchSlotsL(CStifLogger* aLog,CSmsMessage& aMessage) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling MatchSlots()")); + TInt result = KErrNone; + + const CArrayFixFlat* slotArray = new(ELeave) CArrayFixFlat(5); + //TBool MatchSlots(const CArrayFixFlat& aSlotArray); + TBool match = aMessage.MatchSlots(*slotArray); + + aLog->Log(_L("MatchSlots() Completed")); + aLog->Log(_L("Slots matched successfully")); + aLog->Log(_L("Match Slots == PASS")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestAddEmailHeader +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestAddEmailHeader(CStifLogger* aLog,CSmsMessage& aMessage) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling AddEmailHeader()")); + + const TBufC<24> header(_L("EMail Header")); + TBufC<64> body(_L("EMail Body")); + //void AddEmailHeaderL(const TDesC& aEmailHeader,const TDesC& aEmailBody); + TRAPD( result, aMessage.AddEmailHeaderL(header, body)); + if(result != KErrNone) + { + aLog->Log(_L("Leave occured: error code: %d"), result); + } + else + { + aLog->Log(_L("AddEmailHeaderL() completed")); + aLog->Log(_L("Email header added successfully")); + aLog->Log(_L("Add email header == PASS")); + } + + return result; + } + +// ----------------------------------------------------------------------------- +// TestGetIsEmailHeader +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetIsEmailHeader(CStifLogger* aLog,CSmsMessage& aMessage) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling IsEmailHeader()")); + + TInt result = KErrNone; + + //TBool IsEmailHeader() const + TBool res = aMessage.IsEmailHeader(); + + aLog->Log( _L("IsEmailHeader() completed")); + aLog->Log (_L("result data: is e-mail header : %d"), res); + aLog->Log( _L("Get is email header == PASS")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestGetEmailHeader +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetEmailHeaderL(CStifLogger* aLog,CSmsMessage& aMessage) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling GetEmailHeaderL()")); + + HBufC* emailHeader = HBufC::NewL(1024); + HBufC* emailBody = HBufC::NewL(1024); + TBool res; + //TBool GetEmailHeaderL(HBufC **aEmailHeader, HBufC **aEmailBody); + TRAPD( result, res = aMessage.GetEmailHeaderL(&emailHeader, &emailBody)); + + if( res && (result == KErrNone) ) + { + aLog->Log( _L("GetEmailHeaderL() completed")); + aLog->Log (_L("result data: e-mail header: %s"), emailHeader); + aLog->Log (_L("result data: e-mail body: %s"), emailBody); + aLog->Log( _L("Get email header == PASS")); + } + else + { + result = KErrGeneral; + aLog->Log( _L("Get email header == FAIL")); + } + + return result; + } + +// ----------------------------------------------------------------------------- +// TestSetIs16BitConcatenation +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestSetIs16BitConcatenation(CStifLogger* aLog,CSmsMessage& aMessage) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling Set16BitConcatenation()")); + + TInt result = KErrNone; + + //void Set16BitConcatenation(TBool aIs16BitConcatenation) + aMessage.Set16BitConcatenation(ETrue); + + if( aMessage.Is16BitConcatenation() ) + { + aLog->Log( _L("Set16BitConcatenation() completed")); + aLog->Log (_L("16 bit concatenation flag stored successfully")); + aLog->Log( _L("Set is 16 bit concatenation == PASS")); + } + else + { + aLog->Log( _L("Set is 16 bit concatenation == FAIL")); + } + + return result; + } + +// ----------------------------------------------------------------------------- +// TestGetIs16BitConcatenation +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetIs16BitConcatenation(CStifLogger* aLog,CSmsMessage& aMessage) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling Is16BitConcatenation()")); + + TInt result = KErrNone; + + //TBool Is16BitConcatenation() const + TBool res = aMessage.Is16BitConcatenation(); + + aLog->Log( _L("Is16BitConcatenation() completed")); + aLog->Log (_L("result data: 16 bit concatenation flag : %d"), res); + aLog->Log( _L("Get is 16 bit concatenation == PASS")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestUpdateSlots +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestUpdateSlotsL(CStifLogger* aLog,CSmsMessage& aMessage) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling UpdateSlotsL()")); + + TInt8 storeid = CSmsMessage::ESmsSIMStorage; + TBuf8<128> slot_buffer; + TBufC<32> file(_L("c:\\SmsSlots")); + CArrayFixFlat* slot = new(ELeave) CArrayFixFlat(5); + RFs session; + RFileWriteStream write; + RFileReadStream read; + + User::LeaveIfError( session.Connect() ); + write.Create(session, file, EFileWrite); + TInt err = write.Open(session, file, EFileWrite); + + TInt size = sizeof(slot); + write.WriteUint8L(storeid); + write.WriteL((TUint16*)slot, size); + write.CommitL(); + write.Close(); + TInt erro = read.Open(session, file, EFileRead); + + read.ReadL(slot_buffer, size+1); + //void UpdateSlotsL(TDesC8& aBuf); + TRAPD( result, aMessage.UpdateSlotsL(slot_buffer)); + + read.Close(); + session.Delete(file); + session.Close(); + + if(result != KErrNone) + { + aLog->Log(_L("Leave occured: error code: %d"), result); + } + else + { + aLog->Log(_L("UpdateSlotsL() completed")); + aLog->Log(_L("Slot information updated successfully")); + aLog->Log(_L("Update slots == PASS")); + } + return result; + } + +// ----------------------------------------------------------------------------- +// TestGetEncodingInfoL +// +// ----------------------------------------------------------------------------- + +LOCAL_C TInt TestGetEncodingInfoL(CStifLogger* aLog, CSmsMessage& aMessage) +{ + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling GetEncodingInfoL()")); + + TInt pdus =1; + TInt unconvertedchars=0; + TInt downgradedchars = 0; + TInt freeudunitsinlastfreepdu = 0; + + aMessage.GetEncodingInfoL(pdus, unconvertedchars, downgradedchars, freeudunitsinlastfreepdu); + + return KErrNone; +} + +// ----------------------------------------------------------------------------- +// TestSetAlternative7bitEncoding +// +// ----------------------------------------------------------------------------- + +LOCAL_C TInt TestSetAlternative7bitEncoding(CStifLogger* aLog, CSmsMessage& aMessage) +{ + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling SetAlternative7bitEncoding()")); + + + TInt ret = aMessage.SetAlternative7bitEncoding(ESmsEncodingNone); + TSmsEncoding id = aMessage.Alternative7bitEncoding(); + + return ret; +} + +LOCAL_C TInt TestGetIsSupported2(CStifLogger* aLog,CSmsMessage& aMessage) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling IsSupported2L()")); + + //TBool IsSupportedL(const TDesC &aDes, TInt &aNumberOfUnconvertibleCharacters, TInt &aIndexOfFirstUnconvertibleCharacter) + TBufC<50> testBuffer = _L("Nokia$123has*some%employees"); + TInt numUnconvertable; + TInt posFirstUnconvertable; + TInt numreqAlternativeEncoding; + TInt numDowngradedChars; + TBool res = 0; + TRAPD( result, res = aMessage.IsSupportedL(testBuffer, numUnconvertable, numDowngradedChars, numreqAlternativeEncoding, posFirstUnconvertable)); + + if(result != KErrNone) + { + aLog->Log(_L("Leave occured: error code: %d"), result); + } + else + { + aLog->Log(_L("IsSupported2L() completed")); + aLog->Log(_L("result data: is supported: %d"), res); + aLog->Log(_L("Get is supported == PASS")); + } + return result; + } +//---------------------------------------------------------------- +// TestConstructionTGsmSms +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestConstructionTGsmSms_PduL(CStifLogger* aLog, CSmsPDU& pdu) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling CSmsPDU::NewL(TGsmSms)")); + TInt result = KErrNone; + + RFs session; + User::LeaveIfError(session.Connect()); + TGsmSms sms; + pdu.EncodeMessagePDUL( sms ); + CCnvCharacterSetConverter* converter = CCnvCharacterSetConverter::NewL(); + CleanupStack::PushL(converter); + + //static CSmsPDU* NewL(const TGsmSms& aGsmSms,CCnvCharacterSetConverter& aCharacterSetConverter + //,RFs& aFs,TBool aIsRPError=EFalse,TBool aIsMobileTerminated=ETrue); + CSmsPDU* PDU = CSmsPDU::NewL(sms, *converter, session, ETrue, EFalse); + CleanupStack::PushL(PDU); + + if( PDU != NULL) + { + aLog->Log(_L("CSmsPDU::NewL(TGsmSms) Completed")); + aLog->Log(_L("CSmsPDU::NewL(TGsmSms) == PASS")); + } + else + { + result = KErrGeneral; + aLog->Log(_L("CSmsPDU::NewL(TGsmSms) == FAIL")); + } + + CleanupStack::PopAndDestroy(2); + session.Close(); + return result; + } + +// ----------------------------------------------------------------------------- +// TestConstructionStream +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestConstructionStreamL(CStifLogger* aLog, CSmsPDU& PDU) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling CSmsPDU::NewL(RReadStream)")); + TInt result = KErrNone; + + RFs session; + User::LeaveIfError(session.Connect()); + TBufC<64> storename = _L("C:\\CSmsPDU_Construction"); + RFileWriteStream write; + RFileReadStream read; + CCnvCharacterSetConverter* charSet = CCnvCharacterSetConverter::NewL(); + write.Create(session, storename, EFileWrite); + TInt erro = write.Open(session, storename, EFileWrite); + PDU.ExternalizeL( write ); + write.CommitL(); + write.Close(); + + erro = read.Open(session, storename, EFileRead); + CSmsPDU* aPDU = CSmsPDU::NewL( read, *charSet, session); + read.Close(); + //now delete the store + TInt err = session.Delete(storename); + session.Close(); + + if( aPDU != NULL) + { + aLog->Log(_L("CSmsPDU::NewL(RReadStream) Completed")); + aLog->Log(_L("CSmsPDU::NewL(RReadStream) == PASS")); + } + else + { + result = KErrGeneral; + aLog->Log(_L("CSmsPDU::NewL(RReadStream) == FAIL")); + } + + delete aPDU; + delete charSet; + return result; + } + +// ----------------------------------------------------------------------------- +// TestGetType +// Gets the PDU type +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetType (CStifLogger* aLog, CSmsPDU& aSmsPdu) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling Type ()")); + TInt result = KErrNone; + + // inline TSmsPDUType Type() const + CSmsPDU::TSmsPDUType checkres = aSmsPdu.Type (); + + if( checkres == CSmsPDU::ESmsDeliver) + { + aLog->Log( _L("Type() completed")); + aLog->Log (_L("Result data:type: %d"),checkres); + aLog->Log( _L("Get type == PASS")); + } + else + { + result = KErrGeneral; + aLog->Log( _L("Get type == FAIL")); + } + + return result; + } + +// ----------------------------------------------------------------------------- +// TestExternalizeL +// Externalises the object +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestExternalizeL (CStifLogger* aLog, CSmsPDU& aSmsPdu) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling ExternalizeL()")); + + RFs session; + User::LeaveIfError(session.Connect()); + TBufC<64> storename = _L("C:\\SMSGSMUtilities_CSmsPDU"); + RFileWriteStream write; + + write.Create(session, storename, EFileWrite); + TInt err = write.Open(session, storename, EFileWrite); + + //IMPORT_C void ExternalizeL(RWriteStream& aStream) const; + TRAPD( result, aSmsPdu.ExternalizeL( write )); + + write.CommitL(); + write.Close(); + + session.Close(); + if( result == KErrNone ) + { + aLog->Log( _L("ExternalizeL() completed")); + aLog->Log( _L("Data externalized successfully")); + aLog->Log( _L("Externalize == PASS")); + } + else + aLog->Log( _L("Externalize == FAIL")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestEncodeMessagePDUs +// Encodes a TGsmSms for the given type of CSmsPDU +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestEncodeMessagePDUs (CStifLogger* aLog, CSmsPDU& aSmsPdu) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling EncodeMessagePDUsL()")); + TGsmSms testSms; + + // IMPORT_C void EncodeMessagePDUL(TGsmSms &aGsmSms) const + TRAPD(result, aSmsPdu.EncodeMessagePDUL (testSms)); + + if( result == KErrNone) + { + aLog->Log( _L("EncodeMessagePDUsL() completed")); + aLog->Log( _L("Message PDUs encoded successfully")); + aLog->Log( _L("Encode message PDUs == PASS")); + + } + else + aLog->Log( _L("Encode message PDUs == FAIL")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestGetServiceCenterAddress +// Gets the service center address +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetServiceCenterAddress (CStifLogger* aLog, CSmsPDU& aSmsPdu) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling ServiceCenterAddress()")); + + TInt result = KErrNone; + TPtrC address = _L("Test String"); + + // IMPORT_C TPtrC ServiceCenterAddress() const + TPtrC checkres = aSmsPdu.ServiceCenterAddress (); + + if(!checkres.Compare (address)) + { + aLog->Log( _L("GetServiceCenterAddressL() completed")); + aLog->Log (_L("Result data:address: %s"),checkres.Ptr()); + aLog->Log( _L("Get service center address == PASS")); + } + else + aLog->Log( _L("Get service center address == FAIL")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestSetServiceCenterAddress +// Sets the service center address +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestSetServiceCenterAddress (CStifLogger* aLog, CSmsPDU& aSmsPdu) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling SetServiceCenterAddressL()")); + + TPtrC address = _L("Test String"); + + // IMPORT_C void SetServiceCenterAddressL(const TDesC &aAddress); + TRAPD(result, aSmsPdu.SetServiceCenterAddressL (address)); + + if(result == KErrNone) + { + aLog->Log( _L("SetServiceCenterAddressL() completed")); + aLog->Log( _L("Service center address successfully stored")); + aLog->Log( _L("Set service center address == PASS")); + } + else + aLog->Log( _L("Set service center address == FAIL")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestGetParsedServiceCenterAddress +// Gets the service center address in a TGsmSmsTelNumber object +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetParsedServiceCenterAddress (CStifLogger* aLog, CSmsPDU& aSmsPdu) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling ParsedServiceCenterAddress()")); + + TInt result = KErrNone; + TGsmSmsTelNumber testTelNo; + _LIT(str,"9945563472"); + TBuf<20> telno (str); + + + // IMPORT_C void ParsedServiceCenterAddress(TGsmSmsTelNumber + // &aParsedAddress) const + aSmsPdu.ParsedServiceCenterAddress (testTelNo); + + if(!(testTelNo.iTelNumber).Compare (telno)) + { + aLog->Log( _L("ParsedServiceCenterAddress() completed")); + aLog->Log (_L("result data:parsed address: %s"),testTelNo.iTelNumber.Ptr()); + aLog->Log( _L("Get parsed service center address == PASS")); + } + else + aLog->Log( _L("Get parsed service center address == FAIL")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestSetParsedServiceCenterAddress +// Sets the service center address in a TGsmSmsTelNumber object +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestSetParsedServiceCenterAddress (CStifLogger* aLog, CSmsPDU& aSmsPdu) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling SetParsedServiceCenterAddressL()")); + + TGsmSmsTelNumber testTelNo; + _LIT(str,"9945563472"); + TBuf<20> telno (str); + testTelNo.iTelNumber = telno; + + + // IMPORT_C void SetParsedServiceCenterAddressL(const TGsmSmsTelNumber + // &aParsedAddress); + TRAPD(result, aSmsPdu.SetParsedServiceCenterAddressL (testTelNo)); + + if(result == KErrNone) + { + aLog->Log( _L("SetParsedServiceCenterAddressL() completed")); + aLog->Log( _L("Parsed address successfully stored")); + aLog->Log( _L("Set parsed service center address == PASS")); + } + else + aLog->Log( _L("Set parsed service center address == FAIL")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestGetToFromAddress +// Gets the "to from" address +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetToFromAddress (CStifLogger* aLog, CSmsPDU& aSmsPdu) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling ToFromAddress()")); + + TInt result = KErrNone; + _LIT(str,"TestAddress"); + TBufC<20> testadd (str); + + // IMPORT_C TPtrC ToFromAddress() const + TPtrC checkres = aSmsPdu.ToFromAddress(); + + if( ! checkres.Compare (testadd)) + { + aLog->Log( _L("ToFromAddress() completed")); + aLog->Log(_L("Result data:to from address: %s"),checkres.Ptr()); + aLog->Log( _L("Get to from address == PASS")); + } + else + aLog->Log( _L("Get to from address == FAIL")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestSetToFromAddress +// Gets the "to from" address +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestSetToFromAddress (CStifLogger* aLog, CSmsPDU& aSmsPdu) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling SetToFromAddressL()")); + + _LIT(str,"TestAddress"); + TBufC<20> testadd (str); + + // IMPORT_C void SetToFromAddressL(const TDesC &aAddress) + TRAPD( result, aSmsPdu.SetToFromAddressL (testadd)); + + if(result == KErrNone) + { + aLog->Log( _L("SetToFromAddressL() completed")); + aLog->Log( _L("To from addresses successfully stored")); + aLog->Log( _L("Set to from address == PASS")); + } + else + aLog->Log( _L("Set to from address == FAIL")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestGetParsedToFromAddress +// Gets the "to from" in a TGsmSmsTelNumber object +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetParsedToFromAddress (CStifLogger* aLog, CSmsPDU& aSmsPdu) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling ParsedToFromAddress()")); + + TInt result = KErrNone; + TGsmSmsTelNumber testTelNo; + _LIT(str,"9945563472"); + TBuf<20> telno (str); + + // IMPORT_C void ParsedToFromAddress(TGsmSmsTelNumber &aParsedAddress) const + aSmsPdu.ParsedToFromAddress (testTelNo); + + if(!(testTelNo.iTelNumber).Compare (telno)) + { + aLog->Log( _L("ParsedToFromAddress() completed")); + _LIT(tempVal,"result data:parsed to from address: %s"); + aLog->Log (tempVal,testTelNo.iTelNumber.Ptr()); + aLog->Log( _L("Get parsed to from address == PASS")); + } + else + aLog->Log( _L("Get parsed to from address == FAIL")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestSetParsedToFromAddress +// Sets the "to from" with a TGsmSmsTelNumber object +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestSetParsedToFromAddress (CStifLogger* aLog, CSmsPDU& aSmsPdu) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling SetParsedToFromAddressL()")); + + TGsmSmsTelNumber testTelNo; + _LIT(str,"9945563472"); + TBuf<20> telno (str); + testTelNo.iTelNumber = telno; + + + // IMPORT_C void SetParsedToFromAddressL(const TGsmSmsTelNumber + // &aParsedAddress); + TRAPD( result, aSmsPdu.SetParsedToFromAddressL (testTelNo)); + + if(result == KErrNone) + { + aLog->Log( _L("SetParsedToFromAddressL() completed")); + aLog->Log( _L("Parsed to from addresses successfully stored")); + aLog->Log( _L("Set parsed to from address == PASS")); + } + else + aLog->Log( _L("Set parsed to from address == FAIL")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestGetBits7To4 +// Gets bits 7 to 4 on the data coding scheme +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetBits7To4 (CStifLogger* aLog, CSmsPDU& aSmsPdu) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling Bits7To4()")); + + TInt result = KErrNone; + TSmsDataCodingScheme::TSmsDCSBits7To4 bitsVal; + + // IMPORT_C TSmsDataCodingScheme::TSmsDCSBits7To4 Bits7To4() const + bitsVal = aSmsPdu.Bits7To4 (); + + if(bitsVal == TSmsDataCodingScheme::ESmsDCSTextUncompressedWithNoClassInfo) + { + aLog->Log( _L("Bits7To4() completed")); + _LIT(tempVal,"result data:bits 7 to 4: %d"); + aLog->Log (tempVal,bitsVal); + aLog->Log( _L("Get bits 7 to 4 == PASS")); + } + else + aLog->Log( _L("Get bits 7 to 4 == FAIL")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestSetBits7To4 +// Sets bits 7 to 4 on the data coding scheme +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestSetBits7To4 (CStifLogger* aLog, CSmsPDU& aSmsPdu) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling SetBits7To4()")); + + TInt result = KErrNone; + TSmsDataCodingScheme::TSmsDCSBits7To4 bitsVal (TSmsDataCodingScheme:: + ESmsDCSTextUncompressedWithNoClassInfo); + + // IMPORT_C void SetBits7To4(TSmsDataCodingScheme::TSmsDCSBits7To4 + // aBits7To4) + aSmsPdu.SetBits7To4 (bitsVal); + + aLog->Log( _L("SetBits7To4() completed")); + aLog->Log( _L("Bits 7 to 4 stored successfully")); + aLog->Log( _L("Set bits 7 to 4 == PASS")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestGetAlphabet +// Gets the alphabet encoded in the data coding scheme +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetAlphabet (CStifLogger* aLog, CSmsPDU& aSmsPdu) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling Alphabet()")); + + TInt result = KErrNone; + TSmsDataCodingScheme::TSmsAlphabet testAlphabet; + + // IMPORT_C TSmsDataCodingScheme::TSmsAlphabet Alphabet() const + testAlphabet = aSmsPdu.Alphabet(); + + if(testAlphabet == TSmsDataCodingScheme::ESmsAlphabet7Bit) + { + aLog->Log( _L("Alphabet() completed")); + _LIT(tempVal,"result data:alphabet: %d"); + aLog->Log (tempVal,testAlphabet); + aLog->Log( _L("Get alphabet == PASS")); + } + else + aLog->Log( _L("Get alphabet == FAIL")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestSetAlphabet +// Sets the alphabet encoded in the data coding scheme +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestSetAlphabet (CStifLogger* aLog, CSmsPDU& aSmsPdu) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling SetAlphabet()")); + + TInt result = KErrNone; + TSmsDataCodingScheme::TSmsAlphabet testAlphabet (TSmsDataCodingScheme:: + ESmsAlphabet7Bit); + + // IMPORT_C void SetAlphabet(TSmsDataCodingScheme::TSmsAlphabet aAlphabet) + aSmsPdu.SetAlphabet (testAlphabet); + + aLog->Log( _L("SetAlphabet() completed")); + aLog->Log( _L("Alphabet stored successfully")); + aLog->Log( _L("Set alphabet == PASS")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestGetClass +// Gets the GSM SMS PDU class in the data coding scheme +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetClass (CStifLogger* aLog, CSmsPDU& aSmsPdu) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling Class()")); + + TInt result = KErrNone; + TSmsDataCodingScheme::TSmsClass testClass (TSmsDataCodingScheme:: + ESmsClass0); + + //TBool Class(TSmsDataCodingScheme::TSmsClass &aClass) const + TBool checkres = aSmsPdu.Class (testClass); + + if( checkres ) + { + aLog->Log( _L("Class() completed")); + aLog->Log(_L("Result data:class: %d"),testClass); + aLog->Log( _L("Get class == PASS")); + } + else + aLog->Log( _L("Get class == FAIL")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestSetClass +// Sets the GSM SMS PDU class in the data coding scheme +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestSetClass (CStifLogger* aLog, CSmsPDU& aSmsPdu) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling SetClass()")); + + TInt result = KErrNone; + TSmsDataCodingScheme::TSmsClass testClass (TSmsDataCodingScheme::ESmsClass0); + + //void SetClass(TBool aClassDefined, TSmsDataCodingScheme::TSmsClass aClass) + aSmsPdu.SetClass (ETrue, testClass); + + aLog->Log( _L("SetClass() completed")); + aLog->Log( _L("Class stored successfully")); + aLog->Log( _L("Set class == PASS")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestGetTextCompressed +// True if Text Compressed is encoded in the data coding scheme +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetTextCompressed (CStifLogger* aLog, CSmsPDU& aSmsPdu) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling TextCompressed()")); + + TInt result = KErrNone; + + // IMPORT_C TBool TextCompressed() const + TBool checkres = aSmsPdu.TextCompressed (); + + if( checkres ) + { + aLog->Log( _L("TextCompressed() completed")); + _LIT(tempVal,"result data:text compressed: %d"); + aLog->Log (tempVal,checkres); + aLog->Log( _L("Get text compresed == PASS")); + } + else + aLog->Log( _L("Get text compresed == FAIL")); + + return result; + } + + + +// ----------------------------------------------------------------------------- +// TestSetTextCompressed +// Set to encode Text Compressed in the data coding scheme +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestSetTextCompressed (CStifLogger* aLog, CSmsPDU& aSmsPdu) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling SetTextCompressed()")); + + TInt result = KErrNone; + + // IMPORT_C void SetTextCompressed(TBool aCompressed); + aSmsPdu.SetTextCompressed (ETrue); + + aLog->Log( _L("SetTextCompressed() completed")); + aLog->Log( _L("Text compressed flag successfully stored")); + aLog->Log( _L("Set text compresed == PASS")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestGetIndicationState +// Gets the Indication State encoded in the data coding scheme. +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetIndicationState (CStifLogger* aLog, CSmsPDU& aSmsPdu) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling IndicationState()")); + + TInt result = KErrNone; + TSmsDataCodingScheme::TSmsIndicationState testState; + + // IMPORT_C TSmsDataCodingScheme::TSmsIndicationState IndicationState() const + testState = aSmsPdu.IndicationState (); + + if(testState == TSmsDataCodingScheme::ESmsIndicationInactive) + { + aLog->Log( _L("IndicationState() completed")); + _LIT(tempVal,"result data:indication state: %d"); + aLog->Log (tempVal,testState); + aLog->Log( _L("Get indication state == PASS")); + } + else + aLog->Log( _L("Get indication state == FAIL")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestSetIndicationState +// Sets the Indication State encoded in the data coding scheme. +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestSetIndicationState (CStifLogger* aLog, CSmsPDU& aSmsPdu) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling SetIndicationState()")); + + TInt result = KErrNone; + TSmsDataCodingScheme::TSmsIndicationState testState (TSmsDataCodingScheme:: + ESmsIndicationInactive); + + // IMPORT_C void SetIndicationState(TSmsDataCodingScheme:: + // TSmsIndicationState aState); + aSmsPdu.SetIndicationState (testState); + + aLog->Log( _L("SetIndicationState() completed")); + aLog->Log( _L("Indication state stored successfully")); + aLog->Log( _L("Set indication state == PASS")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestGetIndicationType +// Gets the Indication Type encoded in the data coding scheme. +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetIndicationType (CStifLogger* aLog, CSmsPDU& aSmsPdu) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling IndicationType()")); + + TInt result = KErrNone; + TSmsDataCodingScheme::TSmsIndicationType testIndicationType; + + //TSmsDataCodingScheme::TSmsIndicationType IndicationType() const + testIndicationType = aSmsPdu.IndicationType (); + + if(testIndicationType == TSmsDataCodingScheme::ESmsVoicemailMessageWaiting) + { + aLog->Log( _L("IndicationType() completed")); + _LIT(tempVal,"result data:indication type: %d"); + aLog->Log (tempVal,testIndicationType); + aLog->Log( _L("Get indication type == PASS")); + } + else + aLog->Log( _L("Get indication type == FAIL")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestSetIndicationType +// Sets the Indication Type encoded in the data coding scheme. +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestSetIndicationType (CStifLogger* aLog, CSmsPDU& aSmsPdu) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling SetIndicationType()")); + + TInt result = KErrNone; + TSmsDataCodingScheme::TSmsIndicationType testIndicationType ( + TSmsDataCodingScheme::ESmsVoicemailMessageWaiting); + + //void SetIndicationType(TSmsDataCodingScheme::TSmsIndicationType aType); + aSmsPdu.SetIndicationType (testIndicationType); + + aLog->Log( _L("SetIndicationType() completed")); + aLog->Log( _L("Indication type stored successfully")); + aLog->Log( _L("Set indication type == PASS")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestGetTextConcatenated +// Tests if the PDU is part of a concatenated message +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetTextConcatenated (CStifLogger* aLog, CSmsPDU& aSmsPdu) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling TextConcatenated()")); + + TInt result = KErrNone; + + // IMPORT_C TBool TextConcatenated(TBool *aIs16Bit=0) const + TBool checkres = aSmsPdu.TextConcatenated (); + + if( checkres ) + { + aLog->Log( _L("TextConcatenated() completed")); + _LIT(tempVal,"result data:text concatenated: %d"); + aLog->Log (tempVal,checkres); + aLog->Log( _L("Get text concatenated == PASS")); + } + else + aLog->Log( _L("Get text concatenated == FAIL")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestSetTextConcatenated +// Tests if the PDU is part of a concatenated message. +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestSetTextConcatenated (CStifLogger* aLog, CSmsPDU& aSmsPdu) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling SetTextConcatenatedL()")); + + // IMPORT_C void SetTextConcatenatedL(TBool aConcatenated, + // TBool aIs16Bit=EFalse); + TRAPD( result, aSmsPdu.SetTextConcatenatedL (ETrue)); + + if(result == KErrNone) + { + aLog->Log( _L("SetTextConcatenatedL() completed")); + aLog->Log( _L("Text concatenated flag successfully stored")); + aLog->Log( _L("Set text concatenated == PASS")); + } + else + aLog->Log( _L("Set text concatenated == FAIL")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestGetConcatenatedMessageReference +// Gets the reference contained in the Concatenation Information Element +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetConcatenatedMessageReference (CStifLogger* aLog, CSmsPDU& aSmsPdu) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling ConcatenatedMessageReference()")); + + TInt result = KErrNone; + + // IMPORT_C TInt ConcatenatedMessageReference() const + TInt checkres = aSmsPdu.ConcatenatedMessageReference (); + + if(checkres == 1) + { + aLog->Log( _L("ConcatenatedMessageReference() completed")); + _LIT(tempVal,"result data:concatenated message reference: %d"); + aLog->Log (tempVal, checkres); + aLog->Log( _L("Get concatenated message reference == PASS")); + } + else + aLog->Log( _L("Get concatenated message reference == FAIL")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestSetConcatenatedMessageReference +// Sets the reference contained in the Concatenation Information Element +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestSetConcatenatedMessageReference (CStifLogger* aLog, CSmsPDU& aSmsPdu) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling SetConcatenatedMessageReference()")); + + TInt result = KErrNone; + TInt SetVal = 1; + + // IMPORT_C void SetConcatenatedMessageReference(TInt aReference) + aSmsPdu.SetConcatenatedMessageReference (SetVal); + + aLog->Log( _L("SetConcatenatedMessageReference() completed")); + aLog->Log( _L("Concatenated message reference stored successfully")); + aLog->Log( _L("Set concatenated message reference == PASS")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestGetNumberOfConcatenatedMessageL +// Gets the number of PDU's in a Concatenated Message. +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetNumberOfConcatenatedMessageL (CStifLogger* aLog, CSmsPDU& aSmsPdu) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling NumConcatenatedMessagePDUs()")); + + TInt result = KErrNone; + + // IMPORT_C TInt NumConcatenatedMessagePDUs() const + TInt checkres = aSmsPdu.NumConcatenatedMessagePDUs (); + + if(checkres == 10) + { + aLog->Log( _L("NumConcatenatedMessagePDUs() completed")); + _LIT(tempVal,"result data:number of concatenated PDUs: %d"); + aLog->Log (tempVal,checkres); + aLog->Log( _L("Get number of concatenated message PDUs == PASS")); + } + else + aLog->Log( _L("Get number of concatenated message PDUs == FAIL")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestSetNumberOfConcatenatedMessageL +// Sets the number of PDU's in a Concatenated Message. +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestSetNumberOfConcatenatedMessageL (CStifLogger* aLog, CSmsPDU& aSmsPdu) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling SetNumConcatenatedMessagePDUs()")); + + TInt result = KErrNone; + TInt setVal = 10; + + // IMPORT_C void SetNumConcatenatedMessagePDUs(TInt aNum); + aSmsPdu.SetNumConcatenatedMessagePDUs (setVal); + + aLog->Log( _L("SetNumConcatenatedMessagePDUs() completed")); + aLog->Log( _L("Number of concatenated PDUs stored successfully")); + aLog->Log( _L("Set number of concatenated message PDUs == PASS")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestGetConcatenatedMessagePDUIndex +// Gets the index of the PDU within the Concatenated Message. +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetConcatenatedMessagePDUIndex (CStifLogger* aLog, CSmsPDU& aSmsPdu) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling ConcatenatedMessagePDUIndex()")); + + TInt result = KErrNone; + + // IMPORT_C TInt ConcatenatedMessagePDUIndex() const; + TInt checkres = aSmsPdu.ConcatenatedMessagePDUIndex (); + + if(checkres == 5) + { + aLog->Log( _L("ConcatenatedMessagePDUIndex() completed")); + _LIT(tempVal,"result data:concatenated message PDU index: %d"); + aLog->Log (tempVal, checkres); + aLog->Log( _L("Get concatenated message PDU index == PASS")); + } + else + aLog->Log( _L("Get concatenated message PDU index == FAIL")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestSetConcatenatedMessagePDUIndex +// Sets the index of the PDU within the Concatenated Message. +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestSetConcatenatedMessagePDUIndex (CStifLogger* aLog, CSmsPDU& aSmsPdu) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling SetConcatenatedMessagePDUIndex()")); + + TInt result = KErrNone; + TInt setVal = 5; + + // IMPORT_C void SetConcatenatedMessagePDUIndex(TInt aIndex) + aSmsPdu.SetConcatenatedMessagePDUIndex (setVal); + + aLog->Log( _L("SetConcatenatedMessagePDUIndex() completed")); + aLog->Log( _L("Concatenated message PDU index stored successfully")); + aLog->Log( _L("Set concatenated message PDU index == PASS")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestGetApplicationPortAddressing +// Gets application port addressing information in the user data. +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetApplicationPortAddressing (CStifLogger* aLog, CSmsPDU& aSmsPdu) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling ApplicationPortAddressing()")); + + TInt result = KErrNone; + TInt aDestination, aOriginator; + + // IMPORT_C TBool ApplicationPortAddressing(TInt &aDestination, + // TInt &aOriginator, TBool *aIs16Bit=0) const + TBool checkres = aSmsPdu.ApplicationPortAddressing (aDestination,aOriginator); + + if( checkres ) + { + aLog->Log( _L("ApplicationPortAddressing() completed")); + _LIT(tempVal,"result data:destination: %d originator: %d is 16 bit: %d"); + aLog->Log (tempVal, aDestination, aOriginator, checkres); + aLog->Log( _L("Get application port addressing == PASS")); + } + else + aLog->Log( _L("Get application port addressing == FAIL")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestSetApplicationPortAddressing +// Sets application port addressing information in the user data. +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestSetApplicationPortAddressing (CStifLogger* aLog, CSmsPDU& aSmsPdu) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("SetCalling ApplicationPortAddressingL()")); + + // IMPORT_C void SetApplicationPortAddressingL(TBool aAddressing, + // TInt aDestination, TInt aOriginator, TBool aIs16Bit=EFalse) + TRAPD( result, aSmsPdu.SetApplicationPortAddressingL (ETrue, 240,241)); + + if(result == KErrNone) + { + aLog->Log( _L("SetApplicationPortAddressingL() completed")); + aLog->Log( _L("Application port addressing settings successfully stored")); + aLog->Log( _L("Set application port addressing == PASS")); + } + else + aLog->Log( _L("Set application port addressing == FAIL")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestGetPIDType +// Gets key bits 7 and 6 of the PID field. +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetPIDType (CStifLogger* aLog, CSmsPDU& aSmsPdu) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling PIDType()")); + + TInt result = KErrNone; + TSmsProtocolIdentifier::TSmsPIDType testPIDType; + + // IMPORT_C TSmsProtocolIdentifier::TSmsPIDType PIDType() const + testPIDType = aSmsPdu.PIDType (); + + if(testPIDType == TSmsProtocolIdentifier::ESmsPIDTelematicInterworking) + { + aLog->Log( _L("PIDType() completed")); + _LIT(tempVal,"result data:PID type: %d"); + aLog->Log (tempVal,testPIDType); + aLog->Log( _L("Get PID type == PASS")); + } + else + aLog->Log( _L("Get PID type == FAIL")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestSetPIDType +// Sets key bits 7 and 6 of the PID field. +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestSetPIDType (CStifLogger* aLog, CSmsPDU& aSmsPdu) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling SetPIDType()")); + TInt result = KErrNone; + + TSmsProtocolIdentifier::TSmsPIDType testPIDType (TSmsProtocolIdentifier:: + ESmsPIDShortMessageType); + + // IMPORT_C void SetPIDType(TSmsProtocolIdentifier::TSmsPIDType aSmsPIDType) + aSmsPdu.SetPIDType (testPIDType); + + aLog->Log( _L("SetPIDType() completed")); + aLog->Log( _L("PID type stored successfully")); + aLog->Log( _L("Set PID type == PASS")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestGetTelematicDeviceIndicator +// Gets the Telematic device indicator from the PID field. +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetTelematicDeviceIndicator (CStifLogger* aLog, CSmsPDU& aSmsPdu) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling TelematicDeviceIndicator()")); + + TInt result = KErrNone; + TSmsProtocolIdentifier::TSmsTelematicDeviceIndicator testDeviceIndicator; + + // IMPORT_C TSmsProtocolIdentifier::TSmsTelematicDeviceIndicator + // TelematicDeviceIndicator() const + testDeviceIndicator = aSmsPdu.TelematicDeviceIndicator (); + + if(testDeviceIndicator == TSmsProtocolIdentifier::ESmsNoTelematicDevice) + { + aLog->Log( _L("TelematicDeviceIndicator() completed")); + _LIT(tempVal,"result data:telematic device indicator: %d"); + aLog->Log (tempVal, testDeviceIndicator); + aLog->Log( _L("Get telematic device indicator == PASS")); + } + else + aLog->Log( _L("Get telematic device indicator == FAIL")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestSetTelematicDeviceIndicator +// Sets the Telematic device indicator from the PID field. +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestSetTelematicDeviceIndicator (CStifLogger* aLog, CSmsPDU& aSmsPdu) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling SetTelematicDeviceIndicator()")); + TInt result = KErrNone; + + TSmsProtocolIdentifier::TSmsPIDType testPIDType (TSmsProtocolIdentifier::ESmsPIDTelematicInterworking); + aSmsPdu.SetPIDType (testPIDType); + + TSmsProtocolIdentifier::TSmsTelematicDeviceIndicator testDeviceIndicator ( + TSmsProtocolIdentifier::ESmsTelematicDevice); + + // IMPORT_C void SetTelematicDeviceIndicator(TSmsProtocolIdentifier:: + // TSmsTelematicDeviceIndicator aIndicator); + aSmsPdu.SetTelematicDeviceIndicator (testDeviceIndicator); + + aLog->Log( _L("SetTelematicDeviceIndicator() completed")); + aLog->Log( _L("Telematic device indicator stored successfully")); + aLog->Log( _L("Set telematic device indicator == PASS")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestGetShortMessageType +// Gets the Short Message Type in the PID field. +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetShortMessageType (CStifLogger* aLog, CSmsPDU& aSmsPdu) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling ShortMessageType()")); + + TInt result = KErrNone; + TSmsProtocolIdentifier::TSmsShortMessageType testMessageType; + + // IMPORT_C TSmsProtocolIdentifier::TSmsShortMessageType + // ShortMessageType() const; + testMessageType = aSmsPdu.ShortMessageType (); + + if(testMessageType == TSmsProtocolIdentifier::ESmsShortMessageType0) + { + aLog->Log( _L("ShortMessageType() completed")); + _LIT(tempVal, "result data:short message type: %d"); + aLog->Log (tempVal, testMessageType); + aLog->Log( _L("Get short message type == PASS")); + } + else + aLog->Log( _L("Get short message type == FAIL")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestSetShortMessageType +// Sets the Short Message Type in the PID field. +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestSetShortMessageType (CStifLogger* aLog, CSmsPDU& aSmsPdu) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling SetShortMessageType()")); + TInt result = KErrNone; + + TSmsProtocolIdentifier::TSmsShortMessageType testMessageType ( + TSmsProtocolIdentifier::ESmsShortMessageType0); + + // IMPORT_C void SetShortMessageType(TSmsProtocolIdentifier:: + // TSmsShortMessageType aShortMessageType); + aSmsPdu.SetShortMessageType (testMessageType); + + aLog->Log( _L("SetShortMessageType() completed")); + aLog->Log( _L("Short message type stored successfully")); + aLog->Log( _L("Set short message type == PASS")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestGetTelematicDeviceType +// Gets the Telematic device type in the PID field +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetTelematicDeviceType (CStifLogger* aLog, CSmsPDU& aSmsPdu) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling TelematicDeviceType()")); + + TInt result = KErrNone; + TSmsProtocolIdentifier::TSmsTelematicDeviceType testDeviceType; + + // IMPORT_C TSmsProtocolIdentifier::TSmsTelematicDeviceType + // TelematicDeviceType() const + testDeviceType = aSmsPdu.TelematicDeviceType (); + + if(testDeviceType == TSmsProtocolIdentifier::ESmsSCSpecificDevice) + { + aLog->Log( _L("TelematicDeviceType() completed")); + _LIT(tempVal,"result data:telematic device type: %d"); + aLog->Log (tempVal, testDeviceType); + aLog->Log( _L("Get telematic device type == PASS")); + } + else + aLog->Log( _L("Get telematic device type == FAIL")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestSetTelematicDeviceType +// Sets the Telematic device type in the PID field +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestSetTelematicDeviceType (CStifLogger* aLog, CSmsPDU& aSmsPdu) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling SetTelematicDeviceType()")); + + TInt result = KErrNone; + TSmsProtocolIdentifier::TSmsTelematicDeviceType testDeviceType ( + TSmsProtocolIdentifier::ESmsSCSpecificDevice); + + // IMPORT_C void SetTelematicDeviceType(TSmsProtocolIdentifier:: + // TSmsTelematicDeviceType aDeviceType); + aSmsPdu.SetTelematicDeviceType (testDeviceType); + + aLog->Log( _L("SetTelematicDeviceType() completed")); + aLog->Log( _L("Telematic device type stored successfully")); + aLog->Log( _L("Set telematic device type == PASS")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestGetUserDataPresent +// Tests if the User Data Header Indicator is set. +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetUserDataPresent (CStifLogger* aLog, CSmsPDU& aSmsPdu) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling UserDataPresent()")); + TInt result = KErrNone; + + // IMPORT_C TBool UserDataPresent() const + TBool checkres = aSmsPdu.UserDataPresent (); + + if( checkres ) + { + aLog->Log( _L("UserDataPresent() completed")); + aLog->Log( _L("result data:user data present: %d"), checkres); + aLog->Log( _L("Get user data present == PASS")); + } + else + aLog->Log( _L("Get user data present == FAIL")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestSetUserDataPresent +// Sets or unsets the User Data Header Indicator. +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestSetUserDataPresent (CStifLogger* aLog, CSmsPDU& aSmsPdu) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling SetUserDataPresent()")); + + TInt result = KErrNone; + TBool SetVal = ETrue; + + // IMPORT_C void SetUserDataPresent(TBool aPresent); + aSmsPdu.SetUserDataPresent (SetVal); + + aLog->Log( _L("SetUserDataPresent() completed")); + aLog->Log( _L("User data present flag stored successfully")); + aLog->Log( _L("Set user data present == PASS")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestGetDataCodingSchemePresent +// Tests if data coding scheme is present. +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetDataCodingSchemePresent (CStifLogger* aLog, CSmsPDU& aSmsPdu) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling DataCodingSchemePresent()")); + + TInt result = KErrNone; + + // IMPORT_C TBool DataCodingSchemePresent() const; + TBool checkres = aSmsPdu.DataCodingSchemePresent (); + + if( checkres ) + { + aLog->Log( _L("DataCodingSchemePresent() completed")); + aLog->Log (_L("result data:data coding scheme present: %d"),checkres); + aLog->Log (_L("Get data coding scheme present == PASS")); + } + else + aLog->Log( _L("Get data coding scheme present == FAIL")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestSetDataCodingSchemePresent +// Sets if data coding scheme is present. +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestSetDataCodingSchemePresent (CStifLogger* aLog, CSmsPDU& aSmsPdu) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling SetDataCodingSchemePresent()")); + + TInt result = KErrNone; + TBool SetVal = ETrue; + + // IMPORT_C void SetDataCodingSchemePresent(TBool aPresent) + aSmsPdu.SetDataCodingSchemePresent (SetVal); + + aLog->Log( _L("SetDataCodingSchemePresent() completed")); + aLog->Log( _L("Data coding scheme present flag stored successfully")); + aLog->Log( _L("Set data coding scheme present == PASS")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestGetProtocolIdentifierPresent +// Tests if Protocol Identifier is present. +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetProtocolIdentifierPresent (CStifLogger* aLog, CSmsPDU& aSmsPdu) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling ProtocolIdentifierPresent()")); + + TInt result = KErrNone; + + // IMPORT_C TBool ProtocolIdentifierPresent() const + TBool checkres = aSmsPdu.ProtocolIdentifierPresent (); + + if( checkres ) + { + aLog->Log( _L("ProtocolIdentifierPresent() completed")); + _LIT(tempVal,"result data:protocol identifier present: %d"); + aLog->Log (tempVal, checkres); + aLog->Log( _L("Get protocol identifier present == PASS")); + } + else + aLog->Log( _L("Get protocol identifier present == FAIL")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestSetProtocolIdentifierPresent +// Tests if Protocol Identifier is present. +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestSetProtocolIdentifierPresent (CStifLogger* aLog, CSmsPDU& aSmsPdu) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling SetProtocolIdentifierPresent()")); + + TInt result = KErrNone; + TBool SetVal = ETrue; + + // IMPORT_C void SetProtocolIdentifierPresent(TBool aPresent); + aSmsPdu.SetProtocolIdentifierPresent (SetVal); + + aLog->Log( _L("SetProtocolIdentifierPresent() completed")); + aLog->Log( _L("Protocol identifier present flag stored successfully")); + aLog->Log( _L("Set protocol identifier present == PASS")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestGetUserData +// Gets User Data (non-const). +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetUserData (CStifLogger* aLog, CSmsPDU& aSmsPdu) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling UserData()")); + + TInt result = KErrNone; + + // IMPORT_C CSmsUserData &UserData(); + CSmsUserData& testUserData = aSmsPdu.UserData (); + + aLog->Log(_L("UserData() completed")); + aLog->Log(_L("result data:user data (body): %s"), testUserData.Body().Ptr()); + aLog->Log(_L("Get user data == PASS")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestGetUserDataConst +// Gets User Data (const). +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetUserDataConst (CStifLogger* aLog, CSmsPDU& aSmsPdu) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling UserData()")); + + TInt result = KErrNone; + + // IMPORT_C const CSmsUserData &UserData() const + const CSmsUserData& testUserData = aSmsPdu.UserData (); + + aLog->Log( _L("UserData() completed")); + aLog->Log (_L("result data:user data (body): %s"),testUserData.Body().Ptr()); + aLog->Log( _L("Get user data == PASS")); + + return result; + } + +LOCAL_C TInt TestSetNationalLanguageEncodingL (CStifLogger* aLog, CSmsPDU& aSmsPdu) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling SetNationalLanguageEncodingL()")); + + TInt result = KErrNone; + + aSmsPdu.SetNationalLanguageEncodingL (ESmsEncodingNone); + TSmsEncoding id = aSmsPdu.NationalLanguageEncoding(); + + aLog->Log( _L("SetDataCodingSchemePresent() completed")); + aLog->Log( _L("Data coding scheme present flag stored successfully")); + aLog->Log( _L("Set data coding scheme present == PASS")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestSmsPDUDuplicateL +// Creates a copy of the object +// ----------------------------------------------------------------------------- +// +LOCAL_C TInt TestSmsPDUDuplicateL( CStifLogger* aLog, CSmsPDU& aSmsPdu) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling SmsPDUDuplicateL()")); + + TInt result = KErrNone; + + CSmsPDU* dupObj = aSmsPdu.DuplicateL(); + + if( dupObj ) + { + aLog->Log(_L("TestSmsPDUDuplicateL() completed")); + aLog->Log(_L("Object successfully created")); + aLog->Log(_L("SmsPDUDuplicateL == PASS")); + + } + else + { + result = KErrGeneral; + aLog->Log(_L("SmsPDUDuplicateL == FAIL")); + } + return result; + } + +// ----------------------------------------------------------------------------- +// TestDecode +// ----------------------------------------------------------------------------- +/*LOCAL_C TInt TestDecode(CStifLogger* aLog, CSmsPDU& aSmsPdu) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling DecodeL()")); + + TBufC8<16> str(KTestGsmPdu8); + TGsmuLex8 aPduL(str); + + // virtual void DecodeL(TGsmuLex8 &aPdu)=0; + TRAPD( result, aSmsPdu.DecodeL (aPdu)); + + if(result == KErrNone) + { + aLog->Log( _L("DecodeL() completed")); + aLog->Log( _L("Decode performed successfully")); + aLog->Log( _L("Decode == PASS")); + } + else + aLog->Log( _L("Decode == FAIL")); + + CleanupStack::Pop(); + return result; + } +*/ +// ----------------------------------------------------------------------------- +// TestSetParameterIndicatorPresent +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestSetParameterIndicatorPresent( CStifLogger* aLog, CSmsStatusReport& aReport) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling SetParameterIndicatorPresent()")); + TInt result = KErrNone; + + //inline void SetParameterIndicatorPresent(TBool aPresent); + aReport.SetParameterIndicatorPresent(ETrue); + + aLog->Log(_L("SetParameterIndicatorPresent() completed")); + aLog->Log(_L("Parameter indicator present flag stored successfully")); + aLog->Log(_L("Set parameter indicator present == PASS")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestGetParameterIndicatorPresent +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetParameterIndicatorPresent( CStifLogger* aLog, CSmsStatusReport& aReport) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling ParameterIndicatorPresent()")); + TInt result = KErrNone; + + //inline TBool ParameterIndicatorPresent() const; + TBool indicator = aReport.ParameterIndicatorPresent(); + + if( indicator ) + { + aLog->Log(_L("ParameterIndicatorPresent() Completed")); + aLog->Log(_L("Result data: Parameter indicator present: %d"), indicator); + aLog->Log(_L("Get parameter indicator present == PASS")); + } + else + aLog->Log(_L("Get parameter indicator present == FAIL")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestSetMoreMessagesToSend +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestSetMoreMessagesToSend( CStifLogger* aLog, CSmsStatusReport& aReport) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling SetMoreMessagesToSend()")); + TInt result = KErrNone; + + //void SetMoreMessagesToSend(TBool aMore); + aReport.SetMoreMessagesToSend(ETrue); + + aLog->Log(_L("SetMoreMessagesToSend() Completed")); + aLog->Log(_L("More messages to send - flag successfully stored")); + aLog->Log(_L("Set more messages to send == PASS")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestGetMoreMessagesToSend +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetMoreMessagesToSend( CStifLogger* aLog, CSmsStatusReport& aReport) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling MoreMessagesToSend()")); + TInt result = KErrNone; + + //TBool MoreMessagesToSend() const; + TBool msgs = aReport.MoreMessagesToSend(); + + if(msgs) + { + aLog->Log(_L("MoreMessagesToSend() Completed")); + aLog->Log(_L("Result Data:More messages to send flag: %d"), msgs); + aLog->Log(_L("Get more messages to send == PASS")); + } + else + { + result =KErrGeneral; + aLog->Log(_L("Get more messages to send == PASS")); + } + + return result; + } + +// ----------------------------------------------------------------------------- +// TestSetStatusReportQualifier +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestSetStatusReportQualifier( CStifLogger* aLog, CSmsStatusReport& aReport) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling SetStatusReportQualifier()")); + TInt result = KErrNone; + + TSmsFirstOctet::TSmsStatusReportQualifier qualifier = TSmsFirstOctet::ESmsStatusReportResultOfSubmit; + //void SetStatusReportQualifier(TSmsFirstOctet::TSmsStatusReportQualifier aQualifier); + aReport.SetStatusReportQualifier( qualifier ); + + aLog->Log(_L("SetStatusReportQualifier() Completed")); + aLog->Log(_L("Status report qualifier stored successfully")); + aLog->Log(_L("Set status report qualifier == PASS")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestGetStatusReportQualifier +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetStatusReportQualifier( CStifLogger* aLog, CSmsStatusReport& aReport) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling StatusReportQualifier()")); + TInt result = KErrNone; + + //TSmsFirstOctet::TSmsStatusReportQualifier StatusReportQualifier() const; + TSmsFirstOctet::TSmsStatusReportQualifier qualifier = aReport.StatusReportQualifier(); + + if( qualifier == TSmsFirstOctet::ESmsStatusReportResultOfSubmit ) + { + aLog->Log(_L("StatusReportQualifier() Completed")); + aLog->Log(_L("Result data: Status report qualifier: %d"), qualifier); + aLog->Log(_L("Get status report qualifier == PASS")); + } + else + aLog->Log(_L("Get status report qualifier == FAIL")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestGetMessageReference +// Gets the Message Reference +// ----------------------------------------------------------------------------- +// +LOCAL_C TInt TestGetMessageReference( CStifLogger* aLog, CSmsStatusReport& aReport) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling MessageReference()")); + TInt result = KErrNone; + + //IMPORT_C TInt MessageReference() const; + TInt getRef = aReport.MessageReference(); + + aLog->Log(_L("MessageReference() Completed")); + aLog->Log(_L("result data:Message reference: %d"), getRef); + aLog->Log(_L("Get Message Reference == PASS")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestSetMessageReference +// Sets the Message Reference +// ----------------------------------------------------------------------------- +// +LOCAL_C TInt TestSetMessageReference( CStifLogger* aLog, CSmsStatusReport& aReport) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling SetMessageReference()")); + TInt result = KErrNone; + + TInt setRef = 1; + //IMPORT_C void SetMessageReference(TInt aMessageReference); + aReport.SetMessageReference(setRef); + + aLog->Log(_L("SetMessageReference() Completed")); + aLog->Log(_L("Message reference successfully stored")); + aLog->Log(_L("Set Message Reference == PASS")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestSetServiceCenterTimeStamp +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestSetServiceCenterTimeStamp( CStifLogger* aLog, CSmsStatusReport& aReport) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling SetServiceCenterTimeStamp()")); + TInt result = KErrNone; + + const TTime time(_L("20060201:000000.000000")); + TInt numQuarterHours = 1; + //IMPORT_C void SetServiceCenterTimeStamp(const TTime& aTime,TInt& aNumQuarterHours); + aReport.SetServiceCenterTimeStamp(time, numQuarterHours); + + aLog->Log(_L("SetServiceCenterTimeStamp() Completed")); + aLog->Log(_L("Time stamp successfully stored")); + aLog->Log(_L("Set service center time stamp == PASS")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestGetServiceCenterTimeStamp +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetServiceCenterTimeStampL( CStifLogger* aLog, CSmsStatusReport& aReport) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling ServiceCenterTimeStamp()")); + TInt result = KErrNone; + + TBuf<30> string; + _LIT( KFormat, "%*E%*D%X%*N%*Y %1 %2 '%3 %H%:1%T%:2%S"); + TTime setTime(TDateTime(2006,EJanuary,01,12,0,0,0)); + TTime getTime; + TInt numQuarterHrs; + //void ServiceCenterTimeStamp(TTime& aTime,TInt& aNumQuarterHours); + aReport.ServiceCenterTimeStamp(getTime, numQuarterHrs); + + if( getTime == setTime ) + { + getTime.FormatL(string, KFormat); + aLog->Log(_L("ServiceCenterTimeStamp() Completed")); + aLog->Log(_L("Result data:Time stamp: %S"), &string); + aLog->Log(_L("Get service center time stamp == PASS")); + } + else + { + result = KErrGeneral; + aLog->Log(_L("Get service center time stamp == FAIL")); + } + + return result; + } + +// ----------------------------------------------------------------------------- +// TestSetDischargeTime +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestSetDischargeTime( CStifLogger* aLog, CSmsStatusReport& aReport) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling SetDischargeTime()")); + TInt result = KErrNone; + + const TTime time(_L("20060201:000000.000000")); + TInt numQuarterHrs = 2; + //void SetDischargeTime(const TTime& aTime,TInt& aNumQuarterHours); + aReport.SetDischargeTime(time, numQuarterHrs); + + aLog->Log(_L("SetDischargeTime Completed")); + aLog->Log(_L("Discharge time stored successfully")); + aLog->Log(_L("Set discharge time == PASS")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestGetDischargeTime +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetDischargeTimeL( CStifLogger* aLog, CSmsStatusReport& aReport) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling DischargeTime()")); + TInt result = KErrNone; + + TBuf<30> string; + _LIT( KFormat, "%*E%*D%X%*N%*Y %1 %2 '%3 %H%:1%T%:2%S"); + TTime setTime(TDateTime(2006,EJanuary,01,12,0,0,0)); + TTime time; + TInt numQuarterHrs; + //void DischargeTime(TTime& aTime,TInt& aNumQuarterHours); + aReport.DischargeTime(time, numQuarterHrs); + + if( time == setTime ) + { + time.FormatL(string, KFormat); + aLog->Log(_L("DischargeTime() Completed")); + aLog->Log(_L("Result data: Discharge time: %S"), &string); + aLog->Log(_L("Get discharge time == PASS")); + } + else + aLog->Log(_L("Get discharge time == FAIL")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestSetStatus +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestSetStatus(CStifLogger* aLog, CSmsStatusReport& aReport) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling SetStatus()")); + TInt result = KErrNone; + + //void SetStatus(TSmsStatus::TSmsStatusValue aValue); + TSmsStatus::TSmsStatusValue status = TSmsStatus::ESmsShortMessageReceivedBySME; + aReport.SetStatus(status); + + aLog->Log(_L("Status() Completed")); + aLog->Log(_L("Result data: status: %d"), status); + aLog->Log(_L("Get status == PASS")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestGetStatus +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetStatus(CStifLogger* aLog, CSmsStatusReport& aReport) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling Status()")); + TInt result = KErrNone; + + //TSmsStatus::TSmsStatusValue Status() const; + TSmsStatus::TSmsStatusValue status = aReport.Status(); + + if( status == TSmsStatus::ESmsShortMessageReceivedBySME ) + { + aLog->Log(_L("Status() Completed")); + aLog->Log(_L("Result data: status: %d"), status); + aLog->Log(_L("Get status == PASS")); + } + else + aLog->Log(_L("Get status == FAIL")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestSmsStatusReportDuplicateL +// Creates a copy of the object +// ----------------------------------------------------------------------------- +// +LOCAL_C TInt TestSmsStatusReportDuplicateL( CStifLogger* aLog, CSmsStatusReport& aReport) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling SmsStatusReportDuplicateL()")); + + TInt result = KErrNone; + + CSmsStatusReport* dupObj = aReport.DuplicateL(); + + if( dupObj ) + { + aLog->Log(_L("TestSmsStatusReportDuplicateL() completed")); + aLog->Log(_L("Object successfully created")); + aLog->Log(_L("SmsStatusReportDuplicateL == PASS")); + + } + else + { + result = KErrGeneral; + aLog->Log(_L("SmsStatusReportDuplicateL == FAIL")); + } + return result; + } +// ----------------------------------------------------------------------------- +// TestGetRejectDuplicates +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetRejectDuplicates(CStifLogger* aLog, CSmsSubmit& aSmsSub) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling RejectDuplicates()")); + + TInt result = KErrNone; + + //TBool RejectDuplicates() const; + TBool reject = aSmsSub.RejectDuplicates(); + + if( reject ) + { + aLog->Log(_L("RejectDuplicates() Completed")); + aLog->Log(_L("Result data: Reject duplicates: %d"), reject); + aLog->Log(_L("Get reject duplicates == PASS")); + } + + return result; + } + +// ----------------------------------------------------------------------------- +// TestSetRejectDuplicates +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestSetRejectDuplicates(CStifLogger* aLog, CSmsSubmit& aSmsSub) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling SetRejectDuplicates()")); + + TInt result = KErrNone; + TBool reject = ETrue; + //void SetRejectDuplicates(TBool aRejectDuplicates); + aSmsSub.SetRejectDuplicates(reject); + + aLog->Log(_L("SetRejectDuplicates() Completed")); + aLog->Log(_L("Reject duplicate flag stored successfully")); + aLog->Log(_L("Set reject duplicates == PASS")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestGetValidityPeriodFormat +// Gets the Validity Period Format +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetValidityPeriodFormat (CStifLogger* aLog, CSmsSubmit& aSmsSub) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling ValidityPeriodFormat()")); + + TInt result = KErrNone; + + // IMPORT_C TSmsFirstOctet::TSmsValidityPeriodFormat ValidityPeriodFormat() const + TSmsFirstOctet::TSmsValidityPeriodFormat pformat = aSmsSub.ValidityPeriodFormat (); + + if(pformat == TSmsFirstOctet::ESmsVPFNone) + { + aLog->Log(_L("ValidityPeriodFormat() completed")); + aLog->Log(_L("Validity period format: %d"),pformat); + aLog->Log(_L("Get validity period format == PASS")); + } + else + aLog->Log( _L("ValidityPeriodFormat() == FAIL")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestSetValidityPeriodFormat +// Sets the Validity Period Format +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestSetValidityPeriodFormat (CStifLogger* aLog, CSmsSubmit& aSmsSub) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling SetValidityPeriodFormat()")); + + TInt result = KErrNone; + + // IMPORT_C void SetValidityPeriodFormat(TSmsFirstOctet::TSmsValidityPeriodFormat aValidityPeriodFormat) + TSmsFirstOctet::TSmsValidityPeriodFormat aValidityPeriodFormat (TSmsFirstOctet::ESmsVPFNone); + + aSmsSub.SetValidityPeriodFormat (aValidityPeriodFormat); + + aLog->Log( _L("SetValidityPeriodFormat() completed")); + aLog->Log( _L("Validity period format stored successfully")); + aLog->Log( _L("Set validity period format == PASS")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestGetReplyPath +// Gets Reply Path flag +// If a Reply Path exists, the recipient of the SMS can reply using the same +// service center address +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetReplyPath (CStifLogger* aLog, CSmsSubmit& aSmsSub) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling ReplyPath()")); + + TInt result = KErrNone; + + // IMPORT_C TBool ReplyPath() const + TBool checkres = aSmsSub.ReplyPath (); + + if( checkres ) + { + aLog->Log (_L("ReplyPath() completed")); + aLog->Log (_L("Result data:reply path flag: %d"),checkres); + aLog->Log (_L("Get reply path == PASS")); + } + else + aLog->Log (_L("Get reply path == FAIL")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestSetReplyPath +// Sets Reply Path flag +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestSetReplyPath (CStifLogger* aLog, CSmsSubmit& aSmsSub) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling SetReplyPath()")); + + TInt result = KErrNone; + TBool tempVar = ETrue; + + // IMPORT_C void SetReplyPath (TBool aReplyPath) + aSmsSub.SetReplyPath (tempVar); + + aLog->Log( _L("SetReplyPath() completed")); + aLog->Log( _L("Reply path flag stored successfully")); + aLog->Log( _L("Set reply path == PASS")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestGetStatusReportRequest +// Gets Status Report Request flag +// A sender can request STATUS REPORTs for the SUBMIT being sent +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetStatusReportRequest (CStifLogger* aLog, CSmsSubmit& aSmsSub) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling StatusReportRequest()")); + TInt result = KErrNone; + + // IMPORT_C TBool StatusReportRequest() const + TBool checkres = aSmsSub.StatusReportRequest(); + + if( checkres ) + { + aLog->Log(_L("StatusReportRequest() completed")); + aLog->Log (_L("result data:status report request flag: %d"),checkres); + aLog->Log(_L("Get status report request == PASS")); + } + else + aLog->Log( _L("Get status report request == FAIL")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestSetStatusReportRequest +// Sets Status Report Request flag +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestSetStatusReportRequest (CStifLogger* aLog, CSmsSubmit& aSmsSub) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling SetStatusReportRequest()")); + + TInt result = KErrNone; + TBool tempVar = ETrue; + + // IMPORT_C void SetStatusReportRequest(TBool aRequest); + aSmsSub.SetStatusReportRequest (tempVar); + + aLog->Log( _L("SetStatusReportRequest() completed")); + aLog->Log( _L("Status report request flag stored successfully")); + aLog->Log( _L("Set status report request == PASS")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestGetMessageReference +// Gets the Message Reference +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetMessageReference (CStifLogger* aLog, CSmsSubmit& aSmsSub) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling MessageReference()")); + + TInt result = KErrNone; + + // IMPORT_C TInt MessageReference() const + TInt checkres = aSmsSub.MessageReference(); + + if(checkres == 10) + { + aLog->Log( _L("MessageReference() completed")); + _LIT(tempStr,"result data:message reference: %d"); + aLog->Log (tempStr,checkres); + aLog->Log( _L("Get message reference == PASS")); + } + else + aLog->Log( _L("Get message reference == FAIL")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestSetMessageReference +// Sets the Message Reference +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestSetMessageReference (CStifLogger* aLog, CSmsSubmit& aSmsSub) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling SetMessageReference()")); + + TInt result = KErrNone; + + // IMPORT_C void SetMessageReference(TInt aMessageReference) + aSmsSub.SetMessageReference (10); + + aLog->Log( _L("SetMessageReference() completed")); + aLog->Log( _L("Message reference stored successfully")); + aLog->Log( _L("Set message reference == PASS")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestGetValidityPeriod +// Gets the Validity Period for the SUBMIT +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetValidityPeriod (CStifLogger* aLog, CSmsSubmit& aSmsSub) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling ValidityPeriod()")); + + TInt result = KErrNone; + + // IMPORT_C const TTimeIntervalMinutes &ValidityPeriod() const + TTimeIntervalMinutes timeinterval; + timeinterval = aSmsSub.ValidityPeriod (); + + if(timeinterval.Int() == 1) + { + aLog->Log( _L("ValidityPeriod() completed")); + _LIT(tempVal,"result data:validity period: %d"); + aLog->Log (tempVal,timeinterval.Int() ); + aLog->Log( _L("Get validity period == PASS")); + } + else + aLog->Log( _L("Get validity period == FAIL")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestSetValidityPeriod +// Sets the Validity Period for the SUBMIT +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestSetValidityPeriod (CStifLogger* aLog, CSmsSubmit& aSmsSub) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling SetValidityPeriod()")); + + TInt result = KErrNone; + + // IMPORT_C void SetValidityPeriod(const TTimeIntervalMinutes + // &aTimeIntervalMinutes) + TTimeIntervalMinutes timeinterval = 1; + aSmsSub.SetValidityPeriod (timeinterval); + + aLog->Log( _L("SetValidityPeriod() completed")); + aLog->Log( _L("Validity period stored successfully")); + aLog->Log( _L("Set validity period == PASS")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestSmsSubmitDuplicateL +// Creates a copy of the object +// ----------------------------------------------------------------------------- +// +LOCAL_C TInt TestSmsSubmitDuplicateL( CStifLogger* aLog, CSmsSubmit& aSmsSub) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling SmsSubmitDuplicateL()")); + + TInt result = KErrNone; + + CSmsSubmit* dupObj = aSmsSub.DuplicateL(); + + if( dupObj ) + { + aLog->Log(_L("TestSmsSubjectDuplicateL() completed")); + aLog->Log(_L("Object successfully created")); + aLog->Log(_L("SmsSubmitDuplicateL == PASS")); + } + else + { + result = KErrGeneral; + aLog->Log(_L("SmsSubmitDuplicateL == FAIL")); + } + return result; + } + +// ----------------------------------------------------------------------------- +// TestGetIsRPError +// Gets the Reply Path Error flag +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetIsRPError (CStifLogger* aLog, CSmsSubmitReport& aSmsSubReport) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling IsRPError()")); + + TInt result = KErrNone; + + // TBool IsRPError() const + TBool checkres = aSmsSubReport.IsRPError(); + + if( checkres ) + { + aLog->Log(_L("IsRPError() completed")); + aLog->Log(_L("Result data:is RP error flag: %d"),checkres); + aLog->Log(_L("Get is RP error == PASS")); + } + else + aLog->Log(_L("Get is RP error == FAIL")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestSetIsRPError +// Gets the Reply Path Error flag +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestSetIsRPError (CStifLogger* aLog, CSmsSubmitReport& aSmsSubReport) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling SetIsRPError()")); + + TInt result = KErrNone; + TBool tempVar = ETrue; + + // inline void SetIsRPError(TBool aIsRPError) + aSmsSubReport.SetIsRPError (tempVar); + + aLog->Log( _L("SetIsRPError() completed")); + aLog->Log( _L("Is RP error flag stored successfully")); + aLog->Log( _L("Set is RP error == PASS")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestGetFailureCause +// Gets the Failure Cause +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetFailureCause (CStifLogger* aLog, CSmsSubmitReport& aSmsSubReport) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling FailureCause()")); + + TInt result = KErrNone; + + // IMPORT_C TInt FailureCause() const + TInt checkres = aSmsSubReport.FailureCause (); + + if(checkres == TSmsFailureCause::ESmsPIDErrorCannotReplaceShortMessage) + { + aLog->Log( _L("FailureCause() completed")); + _LIT(tempVal,"result data:failure cause: %d"); + aLog->Log(tempVal,checkres); + aLog->Log( _L("Get failure cause == PASS")); + } + else + aLog->Log( _L("Get failure cause == FAIL")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestSetFailureCause +// Sets the Failure Cause +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestSetFailureCause (CStifLogger* aLog, CSmsSubmitReport& aSmsSubReport) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling SetFailureCause()")); + + TInt result = KErrNone; + TSmsFailureCause::TSmsFailureCauseError aFailureCause = + TSmsFailureCause::ESmsPIDErrorCannotReplaceShortMessage; + + // IMPORT_C void SetFailureCause + // (TSmsFailureCause::TSmsFailureCauseError aFailureCause) + aSmsSubReport.SetFailureCause (aFailureCause); + + aLog->Log( _L("SetFailureCause() completed")); + aLog->Log( _L("Failure cause stored successfully")); + aLog->Log( _L("Set failure cause == PASS")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestSmsSubmitReportDuplicateL +// Creates a copy of the object +// ----------------------------------------------------------------------------- +// +LOCAL_C TInt TestSmsSubmitReportDuplicateL( CStifLogger* aLog, CSmsSubmitReport& aSmsSubReport) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling SmsSubmitReportDuplicateL()")); + + TInt result = KErrNone; + + CSmsSubmitReport* dupObj = aSmsSubReport.DuplicateL(); + + if( dupObj ) + { + aLog->Log(_L("TestSmsSubmitReportDuplicateL() completed")); + aLog->Log(_L("Object successfully created")); + aLog->Log(_L("SmsSubmitReportDuplicateL == PASS")); + + } + else + { + result = KErrGeneral; + aLog->Log(_L("SmsSubmitReportDuplicateL == FAIL")); + } + return result; + } + +// ----------------------------------------------------------------------------- +// TestGetNumberOfInformationElements +// Gets the number of information elements +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetNumberOfInformationElements (CStifLogger* aLog, CSmsUserData& aSmsUsr) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling NumInformationElements()")); + + TInt result = KErrNone; + + // inline TInt NumInformationElements() const + TInt checkres = aSmsUsr.NumInformationElements(); + + if( checkres == 0) + { + aLog->Log( _L("NumInformationElements() completed")); + _LIT(tempVal,"result:number of information elements: %d"); + aLog->Log(tempVal, checkres); + aLog->Log( _L("Get number of information elements == PASS")); + } + else + aLog->Log( _L("Get number of information elements == FAIL")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestGetInformationElement +// Gets an information element by index +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetInformationElement (CStifLogger* aLog, CSmsUserData& aSmsUsr) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling InformationElement()")); + + TInt result = KErrNone; + TInt index = 0; + + // IMPORT_C CSmsInformationElement &InformationElement(TInt aIndex) const + CSmsInformationElement& infoElem = aSmsUsr.InformationElement (index); + + aLog->Log( _L("InformationElement() completed")); + aLog->Log(_L("Information element (identifier): %d"), infoElem.Identifier()); + aLog->Log( _L("Get information element == PASS")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestGetInformationElementIndex +// Gets the index of an information element +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetInformationElementIndex (CStifLogger* aLog, CSmsUserData& aSmsUsr) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling InformationElementIndex()")); + + TInt result = KErrNone; + TInt index; + CSmsInformationElement::TSmsInformationElementIdentifier aIdentifier + ( CSmsInformationElement::ESmsIEISpecialSMSMessageIndication); + + // IMPORT_C TBool InformationElementIndex( + // CSmsInformationElement::TSmsInformationElementIdentifier aIdentifier, + // TInt &aIndex) const + TBool checkres = aSmsUsr.InformationElementIndex (aIdentifier,index); + + if( checkres ) + { + aLog->Log(_L("InformationElementIndex() completed")); + aLog->Log(_L("Result data:information element index: %d"), checkres); + aLog->Log(_L("Get information element index == PASS")); + } + else + aLog->Log(_L("Get information element index == FAIL")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestAddInformationElement +// Adds an information element +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestAddInformationElement (CStifLogger* aLog, CSmsUserData& aSmsUsr) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling AddInformationElementL()")); + + _LIT8(str,"test string"); + const TBufC8<20> data (str); + TSmsId testObject (CSmsInformationElement::ESmsIEISpecialSMSMessageIndication); + + // IMPORT_C void AddInformationElementL(TSmsId aIdentifier, + // const TDesC8 &aData) + TRAPD( result, aSmsUsr.AddInformationElementL (testObject,data)); + + if(result == KErrNone) + { + aLog->Log( _L("AddInformationElementL() completed")); + aLog->Log( _L("Information element added successfully")); + aLog->Log( _L("Add information element == PASS")); + } + else + aLog->Log( _L("Add information element == FAIL")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestRemoveInformationElement +// Removes an information element at the specified index +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestRemoveInformationElement (CStifLogger* aLog, CSmsUserData& aSmsUsr) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling RemoveInformationElement()")); + + TInt result = KErrNone; + TInt index = 0; + + // IMPORT_C void RemoveInformationElement(TInt aIndex) + aSmsUsr.RemoveInformationElement (index); + + aLog->Log( _L("RemoveInformationElement() completed")); + aLog->Log( _L("Information element removed successfully")); + aLog->Log( _L("Remove information element == PASS")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestMaxBodyLengthInChars +// Gets the maximum characters in body length of user data +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestMaxBodyLengthInChars (CStifLogger* aLog, CSmsUserData& aSmsUsr) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling MaxBodyLengthInChars()")); + + TInt result = KErrNone; + + // IMPORT_C TInt MaxBodyLengthInChars() const + TInt charret = aSmsUsr.MaxBodyLengthInChars (); + + aLog->Log( _L("MaxBodyLengthInChars() completed")); + _LIT(tempVal, "result data:max body length in chars: %d"); + aLog->Log(tempVal,charret); + aLog->Log( _L("Get max body length in chars == PASS")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestGetBody +// Gets the unpacked User Data Elements +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetBody (CStifLogger* aLog, CSmsUserData& aSmsUsr) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling Body()")); + + TInt result = KErrNone; + _LIT8 (str,"Test String"); + TBufC8<20> tempVar (str); + + // IMPORT_C TPtrC8 Body() const + TPtrC8 checkres( aSmsUsr.Body() ); + + if(!checkres.Compare (tempVar)) + { + aLog->Log( _L("Body() completed")); + aLog->Log(_L("result data:body: %s"),checkres.Ptr()); + aLog->Log( _L("Get body == PASS")); + } + else + aLog->Log( _L("Get body == FAIL")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestSetBody +// Sets the unpacked User Data Elements +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestSetBody (CStifLogger* aLog, CSmsUserData& aSmsUsr) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling SetBodyL()")); + + _LIT8 (str,"Test String"); + TBufC8<20> tempVar (str); + + // IMPORT_C void SetBodyL(const TDesC8 &aBody) + TRAPD( result , aSmsUsr.SetBodyL (tempVar)); + + if(result == KErrNone) + { + aLog->Log( _L("SetBodyL() completed")); + aLog->Log( _L("Body stored successfully")); + aLog->Log( _L("Set body == PASS")); + } + else + aLog->Log(_L("Set body == FAIL")); + + return result; + } + + +// ----------------------------------------------------------------------------- +// TestGetIsSupported +// Tests if the User Data supports a specified character +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetIsSupported (CStifLogger* aLog, CSmsUserData& aSmsUsr) + { + aLog->Log( _L("--------------------------------------------------------")); + aLog->Log( _L("Calling IsSupportedL()")); + + TChar testChar ('&'); + // IMPORT_C TBool IsSupportedL(TChar aChar) + TBool checkres; + TRAPD(result, checkres = aSmsUsr.IsSupportedL (testChar)); + + if(result == KErrNone) + { + aLog->Log( _L("IsSupportedL() completed")); + _LIT(tempVal,"result data:is supported flag: %d"); + aLog->Log(tempVal, checkres); + aLog->Log( _L("Get is supported == PASS")); + } + else + aLog->Log( _L("Get is supported == FAIL")); + + return result; + } + +// ----------------------------------------------------------------------------- +// TestGetIsSupported2 +// +// ----------------------------------------------------------------------------- +LOCAL_C TInt TestGetIsSupported2(CStifLogger* aLog,CSmsUserData& aSmsUsr) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling IsSupported2L()")); + + + TBufC<50> testBuffer = _L("Nokia$123has*some%employees"); + TInt numUnconvertable; + TInt posFirstUnconvertable; + TInt numDowngradedChars; + TInt numReqAlternativeEncoding; + + TBool res = 0; + TRAPD( result, res = aSmsUsr.IsSupportedL(testBuffer, ESmsEncodingNone, numUnconvertable, numDowngradedChars, numReqAlternativeEncoding, posFirstUnconvertable)); + + if(result != KErrNone) + { + aLog->Log(_L("Leave occured: error code: %d"), result); + } + else + { + aLog->Log(_L("IsSupported2L() completed")); + aLog->Log(_L("result data: is supported: %d"), res); + aLog->Log(_L("Get is supported == PASS")); + } + return result; + } +// ----------------------------------------------------------------------------- +// TestGetIsSupported3 +// +// ----------------------------------------------------------------------------- + +LOCAL_C TInt TestGetIsSupported3(CStifLogger* aLog,CSmsUserData& aSmsUsr) + { + aLog->Log(_L("---------------------------------------------")); + aLog->Log(_L("Calling IsSupported3L()")); + + + TBufC<50> testBuffer = _L("Nokia$123has*some%employees"); + TInt numUnconvertable; + TInt posFirstUnconvertable; + + TBool res = 0; + TRAPD( result, res = aSmsUsr.IsSupportedL(testBuffer, numUnconvertable, posFirstUnconvertable)); + + if(result != KErrNone) + { + aLog->Log(_L("Leave occured: error code: %d"), result); + } + else + { + aLog->Log(_L("IsSupported3L() completed")); + aLog->Log(_L("result data: is supported: %d"), res); + aLog->Log(_L("Get is supported == PASS")); + } + return result; + } +// ----------------------------------------------------------------------------- +// CBCSmsUtilitiesTest::TestSmsAlphabetConverter +// Simple printing to UI test. +// ----------------------------------------------------------------------------- +// +TInt CBCSmsUtilitiesTest::TestSmsAlphabetConverterL( + TTestResult& aResult ) + { + _LIT(KSmsAlphabetConverter, "Calling CSmsAlphabetConverter"); + iLog->Log(KSmsAlphabetConverter); + TInt result = KErrNone; + + CCnvCharacterSetConverter* charSet = CCnvCharacterSetConverter::NewLC(); + TSmsDataCodingScheme::TSmsAlphabet smsAlphabet = TSmsDataCodingScheme::ESmsAlphabet8Bit; + TBool isBinary = EFalse; + + CSmsAlphabetConverter* converter = CSmsAlphabetConverter::NewLC(*charSet, iSession, smsAlphabet, isBinary); + CConsoleBase* console = Create_ConsoleL(_L("CSmsAlphabetConverter")); +//Get alphabet + result = TestGetAlphabet(iLog, *converter); + Print(console, result, _L("Alphabet") ); + +//ConvertFromNative + result = TestConvertFromNative(iLog, *converter); + Print(console, result, _L("ConvertFromNative") ); + +//ConvertToNative + result = TestConvertToNative(iLog, *converter); + Print(console, result, _L("ConvertToNative") ); + +//ConvertFromNative2 + result = TestConvertFromNative2L(iLog, *converter); + Print(console, result, _L("ConvertFromNative2") ); + +//ConvertToNative2 + result = TestConvertToNative2L(iLog, *converter); + Print(console, result, _L("ConvertToNative2") ); + +//UnconvertedNativeCharacters + result = TestUnconvertedNativeCharacters(iLog, *converter); + Print(console, result, _L("UnconvertedUDCharacters") ); + +//UnconvertedUDElements + result = TestUnconvertedUDElements(iLog, *converter); + Print(console, result, _L("ResetUnconvertedUDElements") ); + +//ResetUnconvertedNativeCharacters + result = TestResetUnconvertedNativeCharacters(iLog, *converter); + Print(console, result, _L("ResetUnconvertedNativeCharacters") ); + +//ResetUnconvertedUDElements + result = TestResetUnconvertedUDElements(iLog, *converter); + Print(console, result, _L("ResetUnconvertedUDElements") ); + + Remove_Console(console); + CleanupStack::PopAndDestroy(2); +// Case was executed + return KErrNone; + + } + +// ----------------------------------------------------------------------------- +// CBCSmsUtilitiesTest::TestSmsBuffer +// Simple printing to UI test. +// ----------------------------------------------------------------------------- +// +TInt CBCSmsUtilitiesTest::TestSmsBufferL( + TTestResult& aResult ) + { + _LIT(KSmsBuffer, "Calling CSmsBuffer"); + iLog->Log(KSmsBuffer); + TInt result = KErrNone; + + CSmsBuffer* buffer = CSmsBuffer::NewL(); + CleanupStack::PushL(buffer); + + CConsoleBase* console = Create_ConsoleL(_L("CSmsBuffer")); +//Construction +//Destruction +//Insert + result = TestInsert(iLog, *buffer); + Print(console, result, _L("Insert") ); + +//Delete + result = TestDelete(iLog, *buffer); + Print(console, result, _L("DeleteL") ); + +//Extract + result = TestExtract(iLog, *buffer); + Print(console, result, _L("Extract") ); + +//GetLength + result = TestGetLength(iLog, *buffer); + Print(console, result, _L("Length") ); + +//Externalize + result = TestExternalizeL(iLog, *buffer); + Print(console, result, _L("ExternalizeL") ); + +//Internalize + result = TestInternalizeL(iLog, *buffer); + Print(console, result, _L("InternalizeL") ); + +//Reset + result = TestReset(iLog, *buffer); + Print(console, result, _L("Reset") ); + + Remove_Console(console); + CleanupStack::PopAndDestroy(); +// Case was executed + return KErrNone; + + } + +// ----------------------------------------------------------------------------- +// CBCSmsUtilitiesTest::TestSmsCommand +// Simple printing to UI test. +// ----------------------------------------------------------------------------- +// +TInt CBCSmsUtilitiesTest::TestSmsCommandL( + TTestResult& aResult ) + { + _LIT(KSmsBufferBase, "Calling CSmsBufferBase"); + iLog->Log(KSmsBufferBase); + TInt result = KErrNone; + + RFs rfServer; + User::LeaveIfError(rfServer.Connect()); + + CCnvCharacterSetConverter* characterSetConverter = CCnvCharacterSetConverter::NewL(); + CSmsBuffer* smsBuffer = CSmsBuffer::NewL(); + CSmsMessage* smsMessage = CSmsMessage::NewL(rfServer, CSmsPDU::ESmsCommand, smsBuffer ); + + CSmsCommand& command = STATIC_CAST(CSmsCommand&, smsMessage->SmsPDU() ); + CSmsCommand * ptrCommand = &command; + CleanupStack::PushL(ptrCommand); + + CConsoleBase* console = Create_ConsoleL(_L("CSmsCommand")); +//Construction +//Add information element + result = TestAddInformationElement(iLog, command); + Print(console, result, _L("AddInformationElement") ); + +//Get information element + result = TestInformationElement(iLog, command); + Print(console, result, _L("InformationElement")); + +//Get information element index + result = TestInformationElementIndex(iLog, command); + Print(console, result, _L("InformationElementIndex")); + +//Get number of information elements + result = TestNumInformationElements(iLog, command); + Print(console, result, _L("NumInformationElements")); + +//Remove information element + result = TestRemoveInformationElement(iLog, command); + Print(console, result, _L("RemoveInformationElement") ); + +//Get max command data length + result = TestMaxCommandDataLength(iLog, command); + Print(console, result, _L("MaxCommandDataLength") ); + +//Set command data + result = TestSetCommandData(iLog, command); + Print(console, result, _L("SetCommandData")); + +//Get command data + result = TestGetCommandData(iLog, command); + Print(console, result, _L("CommandData") ); + +//Set Command Type + result = TestSetCommandType(iLog, command); + Print(console, result, _L("SetCommandType") ); + +//Get Command Type + result = TestGetCommandType(iLog, command); + Print(console, result, _L("CommandType") ); + +//Set message number + result = TestSetMessageNumber(iLog, command); + Print(console, result, _L("SetMessageNumber")); + +//Get message number + result = TestGetMessageNumber(iLog, command); + Print(console, result, _L("MessageNumber")); + +//Set Message Reference + result = TestSetMessageReference(iLog, command); + Print(console, result, _L("SetMessageReference")); + +//Get Message Reference + result = TestGetMessageReference(iLog, command); + Print(console, result, _L("MessageReference")); + +//Set status report request + result = TestSetStatusReportRequest(iLog, command); + Print(console, result, _L("SetStatusReportRequest")); + +//Get status report request + result = TestGetStatusReportRequest(iLog, command); + Print(console, result, _L("StatusReportRequest")); + +//DuplicateL + result = TestSmsCommandDuplicateL(iLog, command); + Print(console, result, _L("SmsCommandDuplicateL")); + + Remove_Console(console); + CleanupStack::PopAndDestroy(&command); + rfServer.Close(); + // Case was executed + return KErrNone; + + } + +// ----------------------------------------------------------------------------- +// CBCSmsUtilitiesTest::TestSmsDeliver +// Simple printing to UI test. +// ----------------------------------------------------------------------------- +// +TInt CBCSmsUtilitiesTest::TestSmsDeliverL( + TTestResult& aResult ) + { + _LIT(KSmsDeliver, "Calling CSmsDeliver"); + iLog->Log(KSmsDeliver); + TInt result = KErrNone; + + RFs rfServer; + User::LeaveIfError(rfServer.Connect()); + + CCnvCharacterSetConverter* characterSetConverter = CCnvCharacterSetConverter::NewL(); + CSmsBuffer* smsBuffer = CSmsBuffer::NewL(); + CSmsMessage* smsMessage = CSmsMessage::NewL(rfServer, CSmsPDU::ESmsDeliver, smsBuffer ); + + CSmsDeliver& deliver = STATIC_CAST(CSmsDeliver&, smsMessage->SmsPDU() ); + CSmsDeliver *ptrDeliver = &deliver; + CleanupStack::PushL(ptrDeliver); + + CConsoleBase* console = Create_ConsoleL(_L("CSmsDeliver")); +//Construction +//Set more messages to send + result = TestSetMoreMessagesToSend(iLog, deliver); + Print(console, result, _L("SetMoreMessagesToSend")); + +//Get more messages to send + result = TestGetMoreMessagesToSend(iLog, deliver); + Print(console, result, _L("MoreMessagesToSend")); + +//Set reply path + result = TestSetReplyPath(iLog, deliver); + Print(console, result, _L("SetReplyPath")); + +//Get reply path + result = TestGetReplyPath(iLog, deliver); + Print(console, result, _L("ReplyPath")); + +//Set status report indication + result = TestSetStatusReportIndication(iLog, deliver); + Print(console, result, _L("SetStatusReportIndication")); + +//Get status report indication + result = TestGetStatusReportIndication(iLog, deliver); + Print(console, result, _L("StatusReportIndication")); + +//Set service center time stamp + result = TestSetServiceCenterTimeStamp(iLog, deliver); + Print(console, result, _L("SetServiceCenterTimeStamp")); + +//Get service center time stamp + result = TestGetServiceCenterTimeStampL(iLog, deliver); + Print(console, result, _L("ServiceCenterTimeStamp")); + +//Get protocol identifier + result = TestGetProtocolIdentifier(iLog, deliver); + Print(console, result, _L("ProtocolIdentifier")); + +//DuplicateL + result = TestSmsDeliverDuplicateL(iLog, deliver); + Print(console, result, _L("SmsDeliverDuplicateL")); + + Remove_Console(console); + CleanupStack::PopAndDestroy(&deliver); + rfServer.Close(); + // Case was executed + return KErrNone; + + } + +// ----------------------------------------------------------------------------- +// CBCSmsUtilitiesTest::TestSmsDeliverReport +// Simple printing to UI test. +// ----------------------------------------------------------------------------- +// +TInt CBCSmsUtilitiesTest::TestSmsDeliverReportL( + TTestResult& aResult ) + { + _LIT(KSmsDeliverReport, "Calling CSmsDeliverReport"); + iLog->Log(KSmsDeliverReport); + TInt result = KErrNone; + + RFs rfServer; + User::LeaveIfError(rfServer.Connect()); + + CCnvCharacterSetConverter* characterSetConverter = CCnvCharacterSetConverter::NewL(); + CSmsBuffer* smsBuffer = CSmsBuffer::NewL(); + CSmsMessage* smsMessage = CSmsMessage::NewL(rfServer, CSmsPDU::ESmsDeliverReport, smsBuffer ); + + CSmsDeliverReport& deliverReport = STATIC_CAST(CSmsDeliverReport&, smsMessage->SmsPDU() ); + CSmsDeliverReport* ptrDeliverReport = &deliverReport; + CleanupStack::PushL(ptrDeliverReport); + + CConsoleBase* console = Create_ConsoleL(_L("CSmsDeliverReport")); +//Construction +//Set is RP error + result = TestSetIsRPError(iLog, deliverReport); + Print(console, result, _L("SetIsRPError")); + +//Get is RP error + result = TestGetIsRPError(iLog, deliverReport); + Print(console, result, _L("IsRPError")); + +//Set failure cause + result = TestSetFailureCause(iLog, deliverReport); + Print(console, result, _L("SetFailureCause")); + +//Get failure cause + result = TestGetFailureCause(iLog, deliverReport); + Print(console, result, _L("FailureCause")); + +//DuplicateL + result = TestSmsDeliverReportDuplicateL(iLog, deliverReport); + Print(console, result, _L("SmsDeliverReportDuplicateL")); + + Remove_Console(console); + CleanupStack::PopAndDestroy(&deliverReport); + rfServer.Close(); + return KErrNone; + + } + +// ----------------------------------------------------------------------------- +// CBCSmsUtilitiesTest::TestSmsEditorBuffer +// +// ----------------------------------------------------------------------------- +// +TInt CBCSmsUtilitiesTest::TestSmsEditorBufferL( + TTestResult& aResult ) + { + _LIT(KSmsEditorBuffer, "Calling CSmsEditorBuffer"); + iLog->Log(KSmsEditorBuffer); + TInt result = KErrNone; + + CParaFormatLayer* para = CParaFormatLayer::NewL(); + CCharFormatLayer* charlayer = CCharFormatLayer::NewL(); + + CRichText* text = CRichText::NewL(para, charlayer); + CSmsEditorBuffer* editor = CSmsEditorBuffer::NewL(*text); + CleanupStack::PushL(editor); + + CConsoleBase* console = Create_ConsoleL(_L("CSmsEditorBuffer")); +//Construction +//Destruction +//Insert + result = TestInsert(iLog, *editor); + Print(console, result, _L("Insert") ); + +//Delete + result = TestDelete(iLog, *editor); + Print(console, result, _L("DeleteL") ); + +//Extract + result = TestExtract(iLog, *editor); + Print(console, result, _L("Extract") ); + +//GetLength + result = TestGetLength(iLog, *editor); + Print(console, result, _L("Length") ); + +//Reset + result = TestReset(iLog, *editor); + Print(console, result, _L("Reset") ); + + Remove_Console(console); + CleanupStack::PopAndDestroy(editor); + // Case was executed + return result; + + } + +// ----------------------------------------------------------------------------- +// CBCSmsUtilitiesTest::TestSmsInformationElement +// +// ----------------------------------------------------------------------------- +// +TInt CBCSmsUtilitiesTest::TestSmsInformationElementL( + TTestResult& aResult ) + { + _LIT(KSmsInformationElement, "Calling CSmsInformationElement"); + iLog->Log(KSmsInformationElement); + TInt result = KErrNone; + RFs rfServer; + User::LeaveIfError(rfServer.Connect()); + + CCnvCharacterSetConverter* characterSetConverter = CCnvCharacterSetConverter::NewL(); + CSmsBuffer* smsBuffer = CSmsBuffer::NewL(); + CSmsMessage* smsMessage = CSmsMessage::NewL(rfServer, CSmsPDU::ESmsCommand, smsBuffer ); + CSmsCommand& command = STATIC_CAST(CSmsCommand&, smsMessage->SmsPDU() ); + + CSmsInformationElement::TSmsInformationElementIdentifier identifier = CSmsInformationElement::ESmsIEIConcatenatedShortMessages8BitReference; + TBufC8<24> information(KTestInfo8); + command.AddInformationElementL( identifier, information); + + CSmsInformationElement& element = command.InformationElement(0); + CSmsInformationElement *ptrElement = &element; + CleanupStack::PushL(ptrElement); + + CConsoleBase* console = Create_ConsoleL(_L("CSmsInformationElement")); +//Construction +//Get Identifier + result = TestGetIdentifier(iLog, element); + Print(console, result, _L("Identifier") ); + +//Get data (TPtr8) + result = TestGetDataTPtr8(iLog, element); + Print(console, result, _L("TPtr8 Data") ); + +//Get data (TDesC8) + result = TestGetDataTDesC8(iLog, element); + Print(console, result, _L("TDesC8 Data") ); + + Remove_Console(console); + CleanupStack::PopAndDestroy(&element); + rfServer.Close(); + + // Case was executed + return KErrNone; + + } + +// ----------------------------------------------------------------------------- +// CBCSmsUtilitiesTest::TestSmsMessage +// Simple printing to UI test. +// ----------------------------------------------------------------------------- +// +TInt CBCSmsUtilitiesTest::TestSmsMessageL( + TTestResult& aResult ) + { + _LIT(KSmsMessage, "Calling CSmsMessage"); + iLog->Log(KSmsMessage); + TInt result = KErrNone; + + RFs rfServer; + User::LeaveIfError(rfServer.Connect()); + + CCnvCharacterSetConverter* characterSetConverter = CCnvCharacterSetConverter::NewL(); + CSmsBuffer* smsBuffer = CSmsBuffer::NewL(); + + //static CSmsMessage* NewL(RFs& aFs, CSmsPDU::TSmsPDUType aType,CSmsBufferBase* aBuffer + //,TBool aIsRPError=EFalse); + CSmsMessage* message = CSmsMessage::NewL(rfServer, CSmsPDU::ESmsDeliver, smsBuffer ); + CleanupStack::PushL( message ); + + CConsoleBase* console = Create_ConsoleL(_L("CSmsMessage")); + +//Construction (TGsmSms) + result = TestConstructionTGsmSms_MessageL(iLog); + +//Destruction +//Get type + result = TestGetType(iLog, *message); + Print(console, result, _L("Type") ); + +//Get is complete + result = TestGetIsComplete(iLog, *message); + Print(console, result, _L("IsComplete") ); + +//Get is decoded + result = TestIsDecoded(iLog, *message); + Print(console, result, _L("IsDecoded") ); + +//Set storage + result = TestSetStorage(iLog, *message); + Print(console, result, _L("SetStorage") ); + +//Get storage + result = TestGetStorage(iLog, *message); + Print(console, result, _L("Storage") ); + +//Set status + result = TestSetStatus(iLog, *message); + Print(console, result, _L("SetStatus") ); + +//Get status + result = TestGetStatus(iLog, *message); + Print(console, result, _L("Status") ); + +//Set log server id + result = TestSetLogServerId(iLog, *message); + Print(console, result, _L("SetLogServerId") ); + +//Get log server id + result = TestGetLogServerId(iLog, *message); + Print(console, result, _L("LogServerId") ); + +//Set time + result = TestSetTime(iLog, *message); + Print(console, result, _L("SetTime") ); + +//Get time + result = TestGetTimeL(iLog, *message); + Print(console, result, _L("Time") ); + +//Get SMS PDU + result = TestGetSMSPduL(iLog, *message); + Print(console, result, _L("SmsPDU") ); + +//Get SMS PDU const + result = TestGetSMSPDUConst(iLog, *message); + Print(console, result, _L("SmsPDU const") ); + +//Set service center address + result = TestSetServiceCenterAddress(iLog, *message); + Print(console, result, _L("SetSeviceCenterAddress") ); + +//Get service center address + result = TestGetServiceCenterAddress(iLog, *message); + Print(console, result, _L("SeviceCenterAddress") ); + +//Set parsed service center address + result = TestSetParsedServiceCenterAddress(iLog, *message); + Print(console, result, _L("SetParsedServiceCenterAddress") ); + +//Get parsed service center address + result = TestGetParsedServiceCenterAddress(iLog, *message); + Print(console, result, _L("ParsedServiceCenterAddress") ); + +//Set to from address + result = TestSetToFromAddress(iLog, *message); + Print(console, result, _L("SetToFromAddressL") ); + +//Get to from address + result = TestGetToFromAddress(iLog, *message); + Print(console, result, _L("ToFromAddress") ); + +//Set parsed to from address + result = TestSetParsedToFromAddress(iLog, *message); + Print(console, result, _L("SetParsedToFromAddressL") ); + +//Get parsed to from address + result = TestGetParsedToFromAddress(iLog, *message); + Print(console, result, _L("ParsedToFromAddress") ); + +//Externalize without buffer + result = TestExternalizeWithoutBufferL(iLog, *message); + Print(console, result, _L("ExternalizeWithoutBuffer") ); + +//Internalize without buffer + result = TestInternalizeWithoutBufferL(iLog, *message); + Print(console, result, _L("InternalizeWithoutBuffer") ); + +//Externalize + result = TestExternalizeL(iLog, *message); + Print(console, result, _L("Externalize") ); + +//Internalize + result = TestInternalizeL(iLog, *message); + Print(console, result, _L("Internalize") ); + +//Get buffer + result = TestGetBufferL(iLog, *message); + Print(console, result, _L("Buffer") ); + +//Get buffer const + result = TestGetBufferConstL(iLog, *message); + Print(console, result, _L("Buffer const") ); + +//Get text present + result = TestGetTextPresent(iLog, *message); + Print(console, result, _L("TextPresent") ); + +//Get number of message PDUs + result = TestGetNumberOfMessagePduL(iLog, *message); + Print(console, result, _L("NumMessagePDUsL") ); + +//Get max message length + result = TestGetMaxLength(iLog, *message); + Print(console, result, _L("MaxMessagelength") ); + +//Get message length + result = TestGetMessageLength(iLog, *message); + Print(console, result, _L("MessageLengthL") ); + +//Set user data settings +//Get user data settings +//Cannot be executed + +//Optimize settings + result = TestOptimizeSettings(iLog, *message); + Print(console, result, _L("OptimizeSettings") ); + +//Get is supported + result = TestGetIsSupported(iLog, *message); + Print(console, result, _L("IsSupported") ); + +//Encode message PDUs + result = TestEncodeMessagePDUL(iLog, *message); + Print(console, result, _L("EncodeMessagePDUsL") ); + +//Decode message PDUs + result = TestDecodeMessagePDUL(iLog, *message); + Print(console, result, _L("DecodeMessagePDUsL") ); + +//Add EMS information elements +//This currently does not work, changes in build required +/* result = TestAddEMSInformationElements(iLog, *message); + Print(console, result, _L("AddEMSInformationElements") ); +*/ +//Copy EMS elements + result = TestCopyEMSElementsL(iLog, *message); + Print(console, result, _L("CopyEMSElements") ); + +//Get EMS information elements + result = TestGetEMSInformationElements(iLog, *message); + Print(console, result, _L("EMSInformationElements") ); + +//Remove EMS information elements + result = TestRemoveEMSInformationElements(iLog, *message); + Print(console, result, _L("RemoveEMSInformationElements") ); + +//Remove EMS information element + result = TestRemoveEMSInformationElement(iLog, *message); + Print(console, result, _L("RemoveEMSInformationElement") ); + +//Reset EMS + result = TestResetEMS(iLog, *message); + Print(console, result, _L("ResetEMS") ); + +//Encode into single PDU + result = TestEncodeIntoSinglePDUL(iLog, *message); + Print(console, result, _L("EncodeIntoSinglePDU") ); + +//Add slot + result = TestAddSlot(iLog, *message); + Print(console, result, _L("AddSlot") ); + +//Match slots + result = TestMatchSlotsL(iLog, *message); + Print(console, result, _L("MatchSlots") ); + +//Add email header + result = TestAddEmailHeader(iLog, *message); + Print(console, result, _L("AddEmailHeader") ); + +//Get is email header + result = TestGetIsEmailHeader(iLog, *message); + Print(console, result, _L("IsEmailHeader") ); + +//Get email header + result = TestGetEmailHeaderL(iLog, *message); + Print(console, result, _L("EmailHeader") ); + +//Set is 16 bit concatenation + result = TestSetIs16BitConcatenation(iLog, *message); + Print(console, result, _L("Is16BitConcatenation") ); + +//Get is 16 bit concatenation + result = TestGetIs16BitConcatenation(iLog, *message); + Print(console, result, _L("Is16BitConcatenation") ); + +//Update slots + result = TestUpdateSlotsL(iLog, *message); + Print(console, result, _L("UpdateSlots") ); + +//GetEncodingInfoL + result = TestGetEncodingInfoL(iLog, *message); + Print(console, result, _L("GetEncodingInfoL") ); + +//SetAlternative7bitEncoding + result = TestSetAlternative7bitEncoding(iLog, *message); + Print(console, result, _L("SetAlternative7bitEncoding") ); + +//Get is supported2 + result = TestGetIsSupported2(iLog, *message); + Print(console, result, _L("IsSupported2") ); + + Remove_Console(console); + CleanupStack::PopAndDestroy(message); + rfServer.Close(); + // Case was executed + return result; + + } + +// ----------------------------------------------------------------------------- +// CBCSmsUtilitiesTest::TestSmsPDU +// Simple printing to UI test. +// ----------------------------------------------------------------------------- +// +TInt CBCSmsUtilitiesTest::TestSmsPDUL( + TTestResult& aResult ) + { + _LIT(KSmsPDU, "Calling CSmsPDU"); + iLog->Log(KSmsPDU); + TInt result = KErrNone; + CCnvCharacterSetConverter* characterSetConverter = CCnvCharacterSetConverter::NewL(); + CleanupStack::PushL(characterSetConverter); + + //static CSmsPDU* NewL(TSmsPDUType aType,CCnvCharacterSetConverter& aCharacterSetConverter,RFs& aFs,TBool aIsRPError=EFalse); + CSmsPDU* PDU = CSmsPDU::NewL(CSmsPDU::ESmsDeliver, *characterSetConverter, iSession); + CleanupStack::PushL(PDU); + + //static CSmsPDU* NewL(TSmsPDUType aType,CCnvCharacterSetConverter& aCharacterSetConverter,RFs& aFs,TBool aIsRPError=EFalse); + CSmsPDU* PDUReport = CSmsPDU::NewL(CSmsPDU::ESmsDeliverReport, *characterSetConverter, iSession); + CleanupStack::PushL(PDUReport); + + CConsoleBase* console = Create_ConsoleL(_L("CSmsPDU")); +//Construction (RReadStream) + result = TestConstructionStreamL(iLog, *PDU); + +//Construction (TGsmSms) + result = TestConstructionTGsmSms_PduL(iLog, *PDU); + +//Get type + result = TestGetType(iLog, *PDU); + Print(console, result, _L("Type") ); + +//Externalize + result = TestExternalizeL(iLog, *PDU); + Print(console, result, _L("Externalize") ); + +//Encode message PDUs + result = TestEncodeMessagePDUs(iLog, *PDU); + Print(console, result, _L("EncodeMessagePDUs") ); + +//Set service center address + result = TestSetServiceCenterAddress(iLog, *PDU); + Print(console, result, _L("SetServiceCenterAddress") ); + +//Get service center address + result = TestGetServiceCenterAddress(iLog, *PDU); + Print(console, result, _L("ServiceCenterAddress") ); + +//Set parsed service center address + result = TestSetParsedServiceCenterAddress(iLog, *PDU); + Print(console, result, _L("SetParsedServiceCenterAddress") ); + +//Get parsed service center address + result = TestGetParsedServiceCenterAddress(iLog, *PDU); + Print(console, result, _L("ParsedServiceCenterAddress") ); + +//Set to from address + result = TestSetToFromAddress(iLog, *PDU); + Print(console, result, _L("SetToFromAddress") ); + +//Get to from address + result = TestGetToFromAddress(iLog, *PDU); + Print(console, result, _L("ToFromAddress") ); + +//Set parsed to from address + result = TestSetParsedToFromAddress(iLog, *PDU); + Print(console, result, _L("SetParsedToFromAddress") ); + +//Get parsed to from address + result = TestGetParsedToFromAddress(iLog, *PDU); + Print(console, result, _L("ParsedToFromAddress") ); + +//Set bits 7 to 4 + result = TestSetBits7To4(iLog, *PDU); + Print(console, result, _L("SetBits7To4") ); + +//Get bits 7 to 4 + result = TestGetBits7To4(iLog, *PDU); + Print(console, result, _L("Bits7To4") ); + +//Set alphabet + result = TestSetAlphabet(iLog, *PDU); + Print(console, result, _L("SetAlphabet") ); + +//Get alphabet + result = TestGetAlphabet(iLog, *PDU); + Print(console, result, _L("Alphabet") ); + +//Set class + result = TestSetClass(iLog, *PDU); + Print(console, result, _L("SetClass") ); + +//Get class + result = TestGetClass(iLog, *PDU); + Print(console, result, _L("Class") ); + +//Set text compressed + result = TestSetTextCompressed(iLog, *PDU); + Print(console, result, _L("SetTextCompressed") ); + +//Get text compressed + result = TestGetTextCompressed(iLog, *PDU); + Print(console, result, _L("TextCompressed") ); + +//Set indication state + result = TestSetIndicationState(iLog, *PDU); + Print(console, result, _L("SetIndicationState") ); + +//Get indication state + result = TestGetIndicationState(iLog, *PDU); + Print(console, result, _L("IndicationState") ); + +//Set indication type + result = TestSetIndicationType(iLog, *PDU); + Print(console, result, _L("SetIndicationType") ); + +//Get indication type + result = TestGetIndicationType(iLog, *PDU); + Print(console, result, _L("IndicationType") ); + +//Set text concatenated + result = TestSetTextConcatenated(iLog, *PDU); + Print(console, result, _L("SetTextConcatenated") ); + +//Get text concatenated + result = TestGetTextConcatenated(iLog, *PDU); + Print(console, result, _L("TextConcatenated") ); + +//Set concatenated message reference + result = TestSetConcatenatedMessageReference(iLog, *PDU); + Print(console, result, _L("SetConcatenatedMessageReference") ); + +//Get concatenated message reference + result = TestGetConcatenatedMessageReference(iLog, *PDU); + Print(console, result, _L("ConcatenatedMessageReference") ); + +//Set number of concatenated message PDUs + result = TestSetNumberOfConcatenatedMessageL(iLog, *PDU); + Print(console, result, _L("SetNumberOfConcatenatedMessage") ); + +//Get number of concatenated message PDUs + result = TestGetNumberOfConcatenatedMessageL(iLog, *PDU); + Print(console, result, _L("NumberOfConcatenatedMessage") ); + +//Set concatenated message PDU index + result = TestSetConcatenatedMessagePDUIndex(iLog, *PDU); + Print(console, result, _L("SetConcatenatedMessagePDUIndex") ); + +//Get concatenated message PDU index + result = TestGetConcatenatedMessagePDUIndex(iLog, *PDU); + Print(console, result, _L("ConcatenatedMessagePDUIndex") ); + +//set application port addressing + result = TestSetApplicationPortAddressing(iLog, *PDU); + Print(console, result, _L("SetApplicationPortAddressing") ); + +//Get application port addressing + result = TestGetApplicationPortAddressing(iLog, *PDU); + Print(console, result, _L("ApplicationPortAddressing") ); + +//set PID type + result = TestSetPIDType(iLog, *PDU); + Print(console, result, _L("SetPIDType") ); + +//Get PID type + result = TestGetPIDType(iLog, *PDU); + Print(console, result, _L("PIDType") ); + +//Set short message type + result = TestSetShortMessageType(iLog, *PDU); + Print(console, result, _L("SetShortMessageType") ); + +//Get short message type + result = TestGetShortMessageType(iLog, *PDU); + Print(console, result, _L("ShortMessageType") ); + +//Set telematic device indicator + result = TestSetTelematicDeviceIndicator(iLog, *PDU); + Print(console, result, _L("SetTelematicDeviceIndicator") ); + +//Get telematic device indicator + result = TestGetTelematicDeviceIndicator(iLog, *PDU); + Print(console, result, _L("TelematicDeviceIndicator") ); + +//Set telematic device type + result = TestSetTelematicDeviceType(iLog, *PDU); + Print(console, result, _L("SetTelematicDeviceType") ); + +//Get telematic device type + result = TestGetTelematicDeviceType(iLog, *PDU); + Print(console, result, _L("TelematicDeviceType") ); + +//Get user data + result = TestGetUserData(iLog, *PDU); + Print(console, result, _L("UserData") ); + +//Get user data const + result = TestGetUserDataConst(iLog, *PDU); + Print(console, result, _L("UserDataConst") ); + +//Set user data present + result = TestSetUserDataPresent(iLog, *PDUReport); + Print(console, result, _L("SetUserDataPresent") ); + +//Get user data present + result = TestGetUserDataPresent(iLog, *PDUReport); + Print(console, result, _L("UserDataPresent") ); + +//Set data coding scheme present + result = TestSetDataCodingSchemePresent(iLog, *PDUReport); + Print(console, result, _L("SetDataCodingSchemePresent") ); + +//Get data coding scheme present + result = TestGetDataCodingSchemePresent(iLog, *PDUReport); + Print(console, result, _L("DataCodingSchemePresent") ); + +//Set protocol identifier present + result = TestSetProtocolIdentifierPresent(iLog, *PDUReport); + Print(console, result, _L("SetProtocolIdentifierPresent") ); + +//Get protocol identifier present + result = TestGetProtocolIdentifierPresent(iLog, *PDUReport); + Print(console, result, _L("ProtocolIdentifierPresent") ); + +//Set national language encoding + result = TestSetNationalLanguageEncodingL(iLog, *PDUReport); + Print(console, result, _L("SetNationalLanguageEncodingL") ); + +//DuplicateL + result = TestSmsPDUDuplicateL(iLog, *PDUReport); + Print(console, result, _L("SmsPDUDuplicateL")); + + Remove_Console(console); + CleanupStack::PopAndDestroy(3); + return KErrNone; + } + +// ----------------------------------------------------------------------------- +// CBCSmsUtilitiesTest::TestSmsStatusReport +// Simple printing to UI test. +// ----------------------------------------------------------------------------- +// +TInt CBCSmsUtilitiesTest::TestSmsStatusReportL( + TTestResult& aResult ) + { + _LIT(KSmsStatusReport, "Calling CSmsStatusReport"); + iLog->Log(KSmsStatusReport); + TInt result = KErrNone; + + RFs rfServer; + User::LeaveIfError(rfServer.Connect()); + + CCnvCharacterSetConverter* characterSetConverter = CCnvCharacterSetConverter::NewL(); + CSmsBuffer* smsBuffer = CSmsBuffer::NewL(); + CSmsMessage* smsMessage = CSmsMessage::NewL(rfServer, CSmsPDU::ESmsStatusReport, smsBuffer ); + + CSmsStatusReport& statusReport = STATIC_CAST(CSmsStatusReport&, smsMessage->SmsPDU() ); + CSmsStatusReport *ptrStatusReport = &statusReport; + CleanupStack::PushL(ptrStatusReport); + + CConsoleBase* console = Create_ConsoleL(_L("CSmsStatusReport")); +//Construction +//Set parameter indicator present + result = TestSetParameterIndicatorPresent(iLog, statusReport); + Print(console, result, _L("SetIsRPError")); + +//Get parameter indicator present + result = TestGetParameterIndicatorPresent(iLog, statusReport); + Print(console, result, _L("IsRPError")); + +//Set more messages to send + result = TestSetMoreMessagesToSend(iLog, statusReport); + Print(console, result, _L("SetFailureCause")); + +//Get more messages to send + result = TestGetMoreMessagesToSend(iLog, statusReport); + Print(console, result, _L("FailureCause")); + +//Set status report qualifier + result = TestSetStatusReportQualifier(iLog, statusReport); + Print(console, result, _L("DataCodingScheme")); + +//Get status report qualifier + result = TestGetStatusReportQualifier(iLog, statusReport); + Print(console, result, _L("ProtocolIdentifier")); + +//Set message reference + result = TestSetMessageReference(iLog, statusReport); + Print(console, result, _L("SetMessageReference")); + +//Get message reference + result = TestGetMessageReference(iLog, statusReport); + Print(console, result, _L("MessageReference")); + +//Set service center time stamp + result = TestSetServiceCenterTimeStamp(iLog, statusReport); + Print(console, result, _L("UserDataPointer")); + +//Get service center time stamp + result = TestGetServiceCenterTimeStampL(iLog, statusReport); + Print(console, result, _L("Encode")); + +//Set discharge time + result = TestSetDischargeTime(iLog, statusReport); + Print(console, result, _L("Decode")); + +//Get discharge time + result = TestGetDischargeTimeL(iLog, statusReport); + Print(console, result, _L("Decode")); + +//Set status + result = TestSetStatus(iLog, statusReport); + Print(console, result, _L("SetStatus")); + +//Get status + result = TestGetStatus(iLog, statusReport); + Print(console, result, _L("Status")); + +//DuplicateL + result = TestSmsStatusReportDuplicateL(iLog, statusReport); + Print(console, result, _L("SmsStatusReportDuplicateL")); + + Remove_Console(console); + CleanupStack::PopAndDestroy(&statusReport); + rfServer.Close(); + return KErrNone; + + } + +// ----------------------------------------------------------------------------- +// CBCSmsUtilitiesTest::TestSmsSubmit +// Simple printing to UI test. +// ----------------------------------------------------------------------------- +// +TInt CBCSmsUtilitiesTest::TestSmsSubmitL( + TTestResult& aResult ) + { + _LIT(KSmsSubmit, "Calling CSmsSubmit"); + iLog->Log(KSmsSubmit); + TInt result = KErrNone; + + RFs rfServer; + User::LeaveIfError(rfServer.Connect()); + + CCnvCharacterSetConverter* characterSetConverter = CCnvCharacterSetConverter::NewL(); + CSmsBuffer* smsBuffer = CSmsBuffer::NewL(); + CSmsMessage* smsMessage = CSmsMessage::NewL(rfServer, CSmsPDU::ESmsSubmit, smsBuffer ); + + CSmsSubmit& submit = STATIC_CAST(CSmsSubmit&, smsMessage->SmsPDU() ); + CSmsSubmit *ptrSubmit = &submit; + CleanupStack::PushL(ptrSubmit); + + CConsoleBase* console = Create_ConsoleL(_L("CSmsSubmit")); +//Construction +//Set reject duplicates + result = TestSetRejectDuplicates(iLog, submit); + Print(console, result, _L("SetRejectDuplicates")); + +//Get reject duplicates + result = TestGetRejectDuplicates(iLog, submit); + Print(console, result, _L("RejectDuplicates")); + +//Set validity period format + result = TestSetValidityPeriodFormat(iLog, submit); + Print(console, result, _L("SetValidityPeriodFormat")); + +//Get validity period format + result = TestGetValidityPeriodFormat(iLog, submit); + Print(console, result, _L("ValidityPeriodFormat")); + +//Set reply path + result = TestSetReplyPath(iLog, submit); + Print(console, result, _L("SetReplyPath")); + +//Get reply path + result = TestGetReplyPath(iLog, submit); + Print(console, result, _L("ReplyPath")); + +//Set status report request + result = TestSetStatusReportRequest(iLog, submit); + Print(console, result, _L("SetStatusReportRequest")); + +//Get status report request + result = TestGetStatusReportRequest(iLog, submit); + Print(console, result, _L("StatusReportRequest")); + +//Set message reference + result = TestSetMessageReference(iLog, submit); + Print(console, result, _L("SetMessageReferenc")); + +//Get message reference + result = TestGetMessageReference(iLog, submit); + Print(console, result, _L("MessageReference")); + +//Set validity period + result = TestSetValidityPeriod(iLog, submit); + Print(console, result, _L("SetValidityPeriod")); + +//Get validity period + result = TestGetValidityPeriod(iLog, submit); + Print(console, result, _L("ValidityPeriod")); + +//DuplicateL + result = TestSmsSubmitDuplicateL(iLog, submit); + Print(console, result, _L("SmsSubmitDuplicateL")); + + Remove_Console(console); + CleanupStack::PopAndDestroy(&submit); + rfServer.Close(); +// Case was executed + return KErrNone; + + } + +// ----------------------------------------------------------------------------- +// CBCSmsUtilitiesTest::TestSmsSubmitReport +// Simple printing to UI test. +// ----------------------------------------------------------------------------- +// +TInt CBCSmsUtilitiesTest::TestSmsSubmitReportL( + TTestResult& aResult ) + { + _LIT(KSmsSubmitReport, "Calling CSmsSubmitReport"); + iLog->Log(KSmsSubmitReport); + TInt result = KErrNone; + + RFs rfServer; + User::LeaveIfError(rfServer.Connect()); + + CCnvCharacterSetConverter* characterSetConverter = CCnvCharacterSetConverter::NewL(); + CSmsBuffer* smsBuffer = CSmsBuffer::NewL(); + CSmsMessage* smsMessage = CSmsMessage::NewL(rfServer, CSmsPDU::ESmsSubmitReport, smsBuffer ); + + CSmsSubmitReport& submitReport = STATIC_CAST(CSmsSubmitReport&, smsMessage->SmsPDU() ); + CSmsSubmitReport *ptrSubmitReport = &submitReport; + CleanupStack::PushL(ptrSubmitReport); + + CConsoleBase* console = Create_ConsoleL(_L("CSmsSubmitReport")); +//Construction +//Set is RP error + result = TestSetIsRPError(iLog, submitReport); + Print(console, result, _L("SetIsRPError")); + +//Get is RP error + result = TestGetIsRPError(iLog, submitReport); + Print(console, result, _L("IsRPError")); + +//Set failure cause + result = TestSetFailureCause(iLog, submitReport); + Print(console, result, _L("SetFailureCause")); + +//Get failure cause + result = TestGetFailureCause(iLog, submitReport); + Print(console, result, _L("FailureCause")); + +//DuplicateL + result = TestSmsSubmitReportDuplicateL(iLog, submitReport); + Print(console, result, _L("SmsSubmitReportDuplicateL")); + + Remove_Console(console); + CleanupStack::PopAndDestroy(&submitReport); + rfServer.Close(); + return KErrNone; + } + +// ----------------------------------------------------------------------------- +// CBCSmsUtilitiesTest::TestSmsUserData +// Simple printing to UI test. +// ----------------------------------------------------------------------------- +// +TInt CBCSmsUtilitiesTest::TestSmsUserDataL( + TTestResult& aResult ) + { + _LIT(KSmsUserData, "Calling CSmsUserData"); + iLog->Log(KSmsUserData); + TInt result = KErrNone; + + CCnvCharacterSetConverter* characterSetConverter = CCnvCharacterSetConverter::NewL(); + //static CSmsPDU* NewL(TSmsPDUType aType,CCnvCharacterSetConverter& aCharacterSetConverter,RFs& aFs,TBool aIsRPError=EFalse); + CSmsPDU* PDU = CSmsPDU::NewL(CSmsPDU::ESmsDeliver, *characterSetConverter, iSession); + + CSmsUserData& userData = STATIC_CAST(CSmsUserData&, PDU->UserData() ); + CSmsUserData *ptrUserData = &userData; + CleanupStack::PushL(ptrUserData); + + CConsoleBase* console = Create_ConsoleL(_L("CSmsUserData")); + +//Add information element + result = TestAddInformationElement(iLog, userData); + Print(console, result, _L("AddInformationElement")); + +//Get number of information elements + result = TestGetNumberOfInformationElements(iLog, userData); + Print(console, result, _L("NumInformationElement")); + +//Get information element + result = TestGetInformationElement(iLog, userData); + Print(console, result, _L("InformationElement")); + +//Get information element index + result = TestGetInformationElementIndex(iLog, userData); + Print(console, result, _L("InformationElementIndex")); + + +//Remove information element + result = TestRemoveInformationElement(iLog, userData); + Print(console, result, _L("RemoveInformationElement")); + +//Get max body length in chars + result = TestMaxBodyLengthInChars(iLog, userData); + Print(console, result, _L("MaxBodyLengthInChars")); + +//Set body + result = TestSetBody(iLog, userData); + Print(console, result, _L("SetBody")); + +//Get is supported + result = TestGetIsSupported(iLog, userData); + Print(console, result, _L("IsSupported")); + +//Get is supported2 + result = TestGetIsSupported2(iLog, userData); + Print(console, result, _L("IsSupported2")); + +//Get is supported3 + result = TestGetIsSupported3(iLog, userData); + Print(console, result, _L("IsSupported3")); + +//Get body + result = TestGetBody(iLog, userData); + Print(console, result, _L("GetBody")); + + Remove_Console(console); + CleanupStack::PopAndDestroy(&userData); + // Case was executed + return KErrNone; + + } + +// End of File