diff -r 000000000000 -r 3553901f7fa8 telephonyserverplugins/simatktsy/tests/inc/ccsatcomponenttestbase.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/telephonyserverplugins/simatktsy/tests/inc/ccsatcomponenttestbase.h Tue Feb 02 01:41:59 2010 +0200 @@ -0,0 +1,292 @@ +// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + + + +/** + @file base class for SAT component tests +*/ + +#ifndef CCSATCOMPONENTTESTBASE_H +#define CCSATCOMPONENTTESTBASE_H + +#include + +#include +#include +#include +#include +#include + +#include +#include +#include + +#include + +// Delay constants for MockLtsy completion delay +const TInt KDefaultNoDelay = 1; +const TInt KDefaultDelay = 10; + + +class CCSatComponentTestBase : public CTestFixture + { + +protected: + enum TExtendedErrorClient + { + EUseBasicError, + EUseExtendedError + }; + void OpenEtelServerL(TExtendedErrorClient aSetExtendedErrorClient = EUseBasicError); + void OpenPhoneL(); + + void DialL(RMobileCall& aCall, TInt aCallId, RMobilePhone::TMobileService aService); + void OpenPacketServiceL(RPacketService& aRPacketService, RPacketService::TStatus aStartAttachStatus = RPacketService::EStatusUnattached, RPacketService::TAttachMode aStartAttachMode = RPacketService::EAttachWhenNeeded); + + TInt InitContextL(RPacketContext& aPacketContext, TInfoName& aContextName, TInfoName aHostCidName = _L("")); + TInt SetContextActiveL(TInfoName& aContextName); + TInt SetContextStatusL(TInfoName& aContextName, RPacketContext::TContextStatus aStatus); + TInt CreateQoSAndSetProfileParamLC(RPacketQoS& aPacketQoS, + RPacketContext& aPacketContext, + TInfoName& aContextName, + TPacketDataConfigBase& aRequested, + TInfoName aPrimaryContextName = _L("")); + + TInt SetPacketServiceStatusL(RPacketService::TStatus& aStatus, TBool aIsResumed); + + TInt AddContextPacketFilterL(RPacketContext& aContext, TInfoName& aContextName, + RPacketContext::TPacketFilterV2& aFilter, TBool aIsFailInCSAT = 0); + + TInt OpenNewCall(RLine& aLine, + RCall& aCall, + const TDesC& aLineName); + + TInt OpenNewCall(RLine& aLine, RCall& aCall, const TDesC& aLineName, TName& aNewName); + + TInt CreateIncomingCall(RLine& aLine, + const TInt aCallId, + const TDesC& aLineName, + TName& aIncomingCallName, + RMobilePhone::TMobileService aMobileService); + + void CloseIncomingCall(RCall& aCall, const TInt aCallId, + RMobilePhone::TMobileService aMobileService); + + void CloseLineL(RLine& aLine, TInt aCallId = 0, RMobilePhone::TMobileService aMobileService = RMobilePhone::EServiceUnspecified); + + void AssertMockLtsyStatusL(); + + // to push a CleanupItem ont the cleanupstack to close the phone + static void Cleanup(TAny* self); + virtual void DoCleanup(); + + void PrepInternalGettersMockLtsy(); + + void DriverPrepInternalGettersMockLtsyL(); + + void WaitForMockLTSYTerminated(); + + CActiveScheduler* InstallSchedulerLC(); + // Fake type used for bad parameter testing. + // These will have the correct extension ID but the wrong descriptor + // size compared to the T-class which the API expects. + class TTestMultimodeType + { + public: + TTestMultimodeType(TInt aExtensionId) { iExtensionId = aExtensionId; } + TInt ExtensionId() const { return iExtensionId; } + + private: + TInt iExtensionId; + }; + + typedef TPckg TTestMultimodeTypePckg; + + void CallGetMobileCallInfoL(TInt aCallId, + RMobilePhone::TMobileService aService, + const TDesC &aTelNumber); + + void OpenSatL(TUint8 aEnabled = 0x00); + +protected: + void PrepareMockWithExpDataForPCmdNotifyL( TUint8 aPCmdNumber ); + void PrepareMockWithCompleteDataForPCmdNotifyL( TPtrC8 aCompleteTlv, TInt aError = RSat::KSuccess, TInt aDelay = KDefaultNoDelay); + + void GenerateTermRspTlv( + RBuf8& aBuf, + TUint8 aPCmdNumber, + TUint8 aTypeOfCommand, + TUint8 aCommandQualifier, + RSat::TPCmdResult aGeneralResult = RSat::KSuccess, + const TDesC& aGeneralResultAddInfo = KNullDesC, + const TDesC8& aAdditionalInfoTlv = KNullDesC8); + void PrepareTerminalResponseMockDataL( + TUint8 aPCmdNumber, + TUint8 aTypeOfCommand, + TUint8 aCommandQualifier, + const TDesC& aGeneralResultAddInfo = KNullDesC, + RSat::TPCmdResult aGeneralResult = RSat::KSuccess, + const TDesC8& aAdditionalInfoTlv = KNullDesC8, + const TInt aResultForExpect = KErrNone); + void TerminalResponseL( + RSat::TPCmd aRSatTypeOfCommand, + const TDesC8& aRspPckg, + const TInt aExpResult = KErrNone); + void GenerateTerminalResponseL( + TUint8 aPCmdNumber, + TUint8 aTypeOfCommand, + TUint8 aCommandQualifier, + RSat::TPCmd aRSatTypeOfCommand, + const TDesC8& aRspPckg, + const TDesC& aGeneralResultAddInfo = KNullDesC, + RSat::TPCmdResult aGeneralResult = RSat::KSuccess, + const TDesC8& aAdditionalInfoTlv = KNullDesC8, + const TInt aExpResult = KErrNone); + + void EndPSimSessionL(); + + TBool CommandPerformedSuccessfully( TUint8 aGeneralResult ); + + TInt UnicodeToPacked7L(const TDesC16& aInput, TDes8& aOutput); + +protected: + RTelServer iTelServer; + RMobilePhone iPhone; + + RMockLtsy iMockLTSY; + RSat iSat; + RMobileSmsMessaging iSms; + }; // class CCSatComponentTestBase + + +void ProactiveCmdTlvBegin( + TTlv& aTlv, + TUint8 aPCmdNumber, + TUint8 aTypeOfCommand, + TUint8 aCommandQualifier, + TUint8 aDestDeviceId); + +TInt Compare16bitDesWith8bitDesL(const TDesC8& aStringToCompareWith, const TDesC16& aStringToCompare); + +// ------------------------------------------------------------------------ // + +// +// Defintions of various Network Information type data for use in test-steps +// + +// Data values for RMobilePhone::TMobilePhoneNetworkInfoV5 +const RMobilePhone::TMobilePhoneNetworkCountryCode KCountryCode= _L("011"); +const RMobilePhone::TMobilePhoneNetworkIdentity KCdmaSID = _L("666"); +const RMobilePhone::TMobilePhoneNetworkIdentity KAnalogSID = _L("777"); +const RMobilePhone::TMobilePhoneNetworkIdentity KNetworkId = _L("88888"); +const RMobilePhone::TMobilePhoneNetworkDisplayTag KDisplayTag = _L("MyNet"); +const RMobilePhone::TMobilePhoneNetworkShortName KShortName = _L("MyNetwork"); +const RMobilePhone::TMobilePhoneNetworkLongName KLongName = _L("MyNetworkLongName"); +const RMobilePhone::TMobilePhoneNetworkAccess KAccess = RMobilePhone::ENetworkAccessGsm; +const RMobilePhone::TMobilePhoneNetworkMode KMode = RMobilePhone::ENetworkModeCdma95; +const RMobilePhone::TMobilePhoneNetworkStatus KStatus = RMobilePhone::ENetworkStatusAvailable; +const RMobilePhone::TMobilePhoneNetworkBandInfo KBandInfo = RMobilePhone::E1900BandF; +const TBool KEgprsAvailable = ETrue; +const TBool KHsdpaAvailable = EFalse; + +// Data values for RMobilePhone::TMobilePhoneLocationAreaV1 +const TBool KAreaKnown = ETrue; +const TUint KLocationAreaCode = 9999; +const TUint KCellId = 111; + +// Data values for RMobilePhone::TMobilePhoneNetworkMode +const RMobilePhone::TMobilePhoneNetworkMode KNetworkMode = RMobilePhone::ENetworkModeWcdma; + +// Data values for RMobilePhone::TMobilePhoneNITZ +const TInt32 KNitzFieldsUsed = RMobilePhone::KCapsTimeAvailable | + RMobilePhone::KCapsTimezoneAvailable | + RMobilePhone::KCapsDSTAvailable | + RMobilePhone::KCapsShortNameAvailable | + RMobilePhone::KCapsLongNameAvailable; + +const TInt KTimeZone = 10; +const TInt KDst = 5; + +// Data values for Signal Strength +const TInt32 KSignalStrength = 99; +const TInt8 KBar = 5; + +// Data values for RMobilePhone::TMobilePhoneBatteryInfoV1 +const RMobilePhone::TMobilePhoneBatteryStatus KBatteryStatus = RMobilePhone::EPoweredByBattery; +const TUint KBatteryChargeLevel = 77; + +const TUint8 KSmsMoControlEnabled = 0x01; +const TUint8 KSmsPpDownloadEnabled = 0x02; +const TUint8 KUssdEnabled = 0x04; + +// Flags for Text Formatting Mode coding in Text Attribute Tlv tag data. +// See ETSI TS 123 040 in subclause 9.2.3.24.10.1.1 +const TUint8 KTlvTextAttributeAlignmentLeft = 0x00; +const TUint8 KTlvTextAttributeAlignmentCentre = 0x01; +const TUint8 KTlvTextAttributeAlignmentRight = 0x02; +const TUint8 KTlvTextAttributeAlignmentDefault = 0x03; +const TUint8 KTlvTextAttributeFontSizeNormal = 0x00; +const TUint8 KTlvTextAttributeFontSizeLarge = 0x04; +const TUint8 KTlvTextAttributeFontSizeSmall = 0x08; +const TUint8 KTlvTextAttributeStyleNormal = 0x00; +const TUint8 KTlvTextAttributeStyleBold = 0x10; +const TUint8 KTlvTextAttributeStyleItalic = 0x20; +const TUint8 KTlvTextAttributeStyleUnderline = 0x40; +const TUint8 KTlvTextAttributeStyleStrikethrough = 0x80; + +// Flags for Text Foreground Colour coding in Text Attribute Tlv tag data. +// See ETSI TS 123 040 in subclause 9.2.3.24.10.1.1 +const TUint8 KTlvTextAttributeForegroundColourBlack = 0x00; +const TUint8 KTlvTextAttributeForegroundColourDarkGrey = 0x01; +const TUint8 KTlvTextAttributeForegroundColourDarkRed = 0x02; +const TUint8 KTlvTextAttributeForegroundColourDarkYellow = 0x03; +const TUint8 KTlvTextAttributeForegroundColourDarkGreen = 0x04; +const TUint8 KTlvTextAttributeForegroundColourDarkCyan = 0x05; +const TUint8 KTlvTextAttributeForegroundColourDarkBlue = 0x06; +const TUint8 KTlvTextAttributeForegroundColourDarkMagenta = 0x07; +const TUint8 KTlvTextAttributeForegroundColourGrey = 0x08; +const TUint8 KTlvTextAttributeForegroundColourWhite = 0x09; +const TUint8 KTlvTextAttributeForegroundColourBrightRed = 0x0A; +const TUint8 KTlvTextAttributeForegroundColourBrightYellow = 0x0B; +const TUint8 KTlvTextAttributeForegroundColourBrightGreen = 0x0C; +const TUint8 KTlvTextAttributeForegroundColourBrightCyan = 0x0D; +const TUint8 KTlvTextAttributeForegroundColourBrightBlue = 0x0E; +const TUint8 KTlvTextAttributeForegroundColourBrightMagenta = 0x0F; + +// Flags for Text Background Colour coding in Text Attribute Tlv tag data. +// See ETSI TS 123 040 in subclause 9.2.3.24.10.1.1 +const TUint8 KTlvTextAttributeBackgroundColourBlack = 0x00; +const TUint8 KTlvTextAttributeBackgroundColourDarkGrey = 0x10; +const TUint8 KTlvTextAttributeBackgroundColourDarkRed = 0x20; +const TUint8 KTlvTextAttributeBackgroundColourDarkYellow = 0x30; +const TUint8 KTlvTextAttributeBackgroundColourDarkGreen = 0x40; +const TUint8 KTlvTextAttributeBackgroundColourDarkCyan = 0x50; +const TUint8 KTlvTextAttributeBackgroundColourDarkBlue = 0x60; +const TUint8 KTlvTextAttributeBackgroundColourDarkMagenta = 0x70; +const TUint8 KTlvTextAttributeBackgroundColourGrey = 0x80; +const TUint8 KTlvTextAttributeBackgroundColourWhite = 0x90; +const TUint8 KTlvTextAttributeBackgroundColourBrightRed = 0xA0; +const TUint8 KTlvTextAttributeBackgroundColourBrightYellow = 0xB0; +const TUint8 KTlvTextAttributeBackgroundColourBrightGreen = 0xC0; +const TUint8 KTlvTextAttributeBackgroundColourBrightCyan = 0xD0; +const TUint8 KTlvTextAttributeBackgroundColourBrightBlue = 0xE0; +const TUint8 KTlvTextAttributeBackgroundColourBrightMagenta = 0xF0; + +// Proactive command destination device Ids +const TUint8 KDeviceIdNotSet = 0x00; + +#endif // CCSATCOMPONENTTESTBASE_H +