sl@0: // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: // All rights reserved. sl@0: // This component and the accompanying materials are made available sl@0: // under the terms of "Eclipse Public License v1.0" sl@0: // which accompanies this distribution, and is available sl@0: // at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: // sl@0: // Initial Contributors: sl@0: // Nokia Corporation - initial contribution. sl@0: // sl@0: // Contributors: sl@0: // sl@0: // Description: sl@0: // Contains implementation of CTestEscapeEncodeUriStep class sl@0: // sl@0: // sl@0: sl@0: /** sl@0: @file sl@0: @internalTechnology sl@0: */ sl@0: sl@0: // User Include sl@0: #include "TestEscapeEncodeUriStep.h" sl@0: // System Include sl@0: #include sl@0: /** sl@0: Constructor: Sets the test step name. sl@0: @internalTechnology sl@0: @test sl@0: */ sl@0: CTestEscapeEncodeUriStep::CTestEscapeEncodeUriStep() sl@0: { sl@0: //Call base class method to set human readable name for test step sl@0: SetTestStepName(KTestEscapeEncodeUriStep); sl@0: } sl@0: sl@0: /** sl@0: Destructor sl@0: @internalTechnology sl@0: @test sl@0: */ sl@0: CTestEscapeEncodeUriStep::~CTestEscapeEncodeUriStep() sl@0: { sl@0: sl@0: } sl@0: sl@0: /** sl@0: Does the main functionality of a test step. sl@0: Here, reads values from INI file and calls EscEncodeAndCompareUriL sl@0: @internalTechnology sl@0: @param None sl@0: @return EPass or EFail indicating the success or failure of the test step sl@0: */ sl@0: TVerdict CTestEscapeEncodeUriStep::doTestStepL() sl@0: { sl@0: __UHEAP_MARK; sl@0: INFO_PRINTF1(_L("\n")); sl@0: // Get necessary information from INI file sl@0: sl@0: TPtrC decodedComponent; // to be encoded. sl@0: TPtrC expEncodedUri; sl@0: TPtrC expEncodedAuthority; sl@0: TPtrC expEncodedPath; sl@0: TPtrC expEncodedQuery; sl@0: TPtrC expEncodedNormal; sl@0: sl@0: if(!GetStringFromConfig(ConfigSection(), KIniEscapeDecoded, decodedComponent) || sl@0: !GetStringFromConfig(ConfigSection(), KIniEscapeEncodedUri, expEncodedUri) || sl@0: !GetStringFromConfig(ConfigSection(), KIniEscapeEncodedAuthority, expEncodedAuthority) || sl@0: !GetStringFromConfig(ConfigSection(), KIniEscapeEncodedPath, expEncodedPath) || sl@0: !GetStringFromConfig(ConfigSection(), KIniEscapeEncodedQuery, expEncodedQuery) || sl@0: !GetStringFromConfig(ConfigSection(), KIniEscapeEncodedNormal, expEncodedNormal) ) sl@0: { sl@0: ERR_PRINTF7(_L("Problem in reading values from ini. \ sl@0: \nExpected fields are: \n%S\n%S\n%S\n%S\n%S\n%S\n" sl@0: ),&KIniEscapeDecoded, &KIniEscapeEncodedUri, &KIniEscapeEncodedAuthority, &KIniEscapeEncodedPath, &KIniEscapeEncodedQuery, &KIniEscapeEncodedNormal sl@0: ); sl@0: SetTestStepResult(EFail); sl@0: } sl@0: else sl@0: {// No problem in reading values from INI file. Proceed. sl@0: TRAPD(err, EscEncodeAndCompareUriL(decodedComponent,expEncodedUri,expEncodedAuthority,expEncodedPath,expEncodedQuery,expEncodedNormal)); sl@0: if(err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("Test step failed: Leave occured in EscEncodeAndCompareUriL fun: %D\n"), err); sl@0: SetTestStepResult(EFail); sl@0: } sl@0: } sl@0: __UHEAP_MARKEND; sl@0: INFO_PRINTF1(_L("\nTest of EscapeEncodingUri is Executed\n")); sl@0: return TestStepResult(); sl@0: } sl@0: sl@0: /** sl@0: Performs escape encoding in all modes and compares actual & expected result. sl@0: @param aDecodeComp A descriptor with the data to encode. sl@0: @param aExpEncodedUrl An expected descriptor for the escape Mode EEscapeUrlEncoded. sl@0: @param aExpEncodedAut An expected descriptor for the escape Mode EEscapeAuth. sl@0: @param aExpEncodedPath An expected descriptor for the escape Mode EEscapePath. sl@0: @param aExpEncodedQuery An expected descriptor for the escape Mode EEscapeQuery. sl@0: @param aExpEncodedNormal An expected descriptor for the escape Mode EEscapeNormal. sl@0: */ sl@0: void CTestEscapeEncodeUriStep::EscEncodeAndCompareUriL(const TDesC& aDecodeComp,const TDesC& aExpEncodedUrl,const TDesC& aExpEncodedAut,const TDesC& aExpEncodedPath,const TDesC& aExpEncodedQuery,const TDesC& aExpEncodedNormal) sl@0: { sl@0: HBufC8* decodeBuf = HBufC8::NewLC(aDecodeComp.Length()); sl@0: TPtr8 decode8Bit(decodeBuf->Des()); sl@0: decode8Bit.Copy(aDecodeComp); sl@0: //Authority mode Encoding sl@0: TestComponentEncodingL(decode8Bit, aExpEncodedAut, EscapeUtils::EEscapeAuth ); sl@0: //Path mode Encoding sl@0: TestComponentEncodingL(decode8Bit, aExpEncodedPath, EscapeUtils::EEscapePath ); sl@0: //Query mode Encoding sl@0: TestComponentEncodingL(decode8Bit, aExpEncodedQuery, EscapeUtils::EEscapeQuery ); sl@0: //Normal mode Encoding sl@0: TestComponentEncodingL(decode8Bit, aExpEncodedNormal, EscapeUtils::EEscapeNormal ); sl@0: //Url mode Encoding sl@0: TestComponentEncodingL(decode8Bit, aExpEncodedUrl, EscapeUtils::EEscapeUrlEncoded ); sl@0: sl@0: CleanupStack::PopAndDestroy(decodeBuf); sl@0: } sl@0: sl@0: /** sl@0: Performs escape encoding the mode specifed and compares actual & expected result. sl@0: @param aDecode8Bit A descriptor with the data to encode. sl@0: @param aExpEncodedComponent An expected descriptor for the escape mode specified. sl@0: @param aMode An enum specifying the escape mode. sl@0: */ sl@0: void CTestEscapeEncodeUriStep::TestComponentEncodingL(const TDesC8& aDecode8Bit, const TDesC& aExpEncodedComponent, EscapeUtils::TEscapeMode aMode ) sl@0: { sl@0: //Component Encoding sl@0: HBufC8* expEncodedComponentBuf = HBufC8::NewLC(aExpEncodedComponent.Length()); sl@0: TPtr8 expEncodedComponent8Bit(expEncodedComponentBuf->Des()); sl@0: expEncodedComponent8Bit.Copy(aExpEncodedComponent); sl@0: sl@0: HBufC8* encodedComponent=EscapeUtils::EscapeEncodeL(aDecode8Bit,aMode); sl@0: if(expEncodedComponent8Bit.Compare(*encodedComponent)!=0) sl@0: { sl@0: switch (aMode) sl@0: { sl@0: case EscapeUtils::EEscapeAuth: sl@0: { sl@0: ERR_PRINTF1(_L("Test step failed: EEscapeAuth - EscapeEncoding done wrongly.\n")); sl@0: break; sl@0: } sl@0: case EscapeUtils::EEscapePath: sl@0: { sl@0: ERR_PRINTF1(_L("Test step failed: EEscapePath - EscapeEncoding done wrongly.\n")); sl@0: break; sl@0: } sl@0: case EscapeUtils::EEscapeQuery: sl@0: { sl@0: ERR_PRINTF1(_L("Test step failed: EEscapeQuery - EscapeEncoding done wrongly.\n")); sl@0: break; sl@0: } sl@0: case EscapeUtils::EEscapeNormal: sl@0: { sl@0: ERR_PRINTF1(_L("Test step failed: EEscapeNormal - EscapeEncoding done wrongly.\n")); sl@0: break; sl@0: } sl@0: case EscapeUtils::EEscapeUrlEncoded: sl@0: { sl@0: ERR_PRINTF1(_L("Test step failed: EEscapeUrlEncoded - EscapeEncoding done wrongly.\n")); sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: //do nothing sl@0: break; sl@0: } sl@0: } sl@0: sl@0: SetTestStepResult(EFail); sl@0: } sl@0: delete encodedComponent; sl@0: CleanupStack::PopAndDestroy(expEncodedComponentBuf); sl@0: } sl@0: sl@0: