os/ossrv/genericservices/httputils/Test/Integration/TestInetProtUtilsSuite/Src/TestEscapeEncodeUriStep.cpp
author sl@SLION-WIN7.fritz.box
Fri, 15 Jun 2012 03:10:57 +0200
changeset 0 bde4ae8d615e
permissions -rw-r--r--
First public contribution.
sl@0
     1
// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
sl@0
     2
// All rights reserved.
sl@0
     3
// This component and the accompanying materials are made available
sl@0
     4
// under the terms of "Eclipse Public License v1.0"
sl@0
     5
// which accompanies this distribution, and is available
sl@0
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
sl@0
     7
//
sl@0
     8
// Initial Contributors:
sl@0
     9
// Nokia Corporation - initial contribution.
sl@0
    10
//
sl@0
    11
// Contributors:
sl@0
    12
//
sl@0
    13
// Description:
sl@0
    14
// Contains implementation of CTestEscapeEncodeUriStep class
sl@0
    15
// 
sl@0
    16
//
sl@0
    17
sl@0
    18
/**
sl@0
    19
 @file
sl@0
    20
 @internalTechnology 
sl@0
    21
*/
sl@0
    22
sl@0
    23
// User Include
sl@0
    24
#include "TestEscapeEncodeUriStep.h"
sl@0
    25
// System Include
sl@0
    26
#include <escapeutils.h>
sl@0
    27
/**
sl@0
    28
  Constructor: Sets the test step name.
sl@0
    29
  @internalTechnology
sl@0
    30
  @test
sl@0
    31
*/
sl@0
    32
CTestEscapeEncodeUriStep::CTestEscapeEncodeUriStep()
sl@0
    33
	{
sl@0
    34
	//Call base class method to set human readable name for test step
sl@0
    35
	SetTestStepName(KTestEscapeEncodeUriStep);
sl@0
    36
	}
sl@0
    37
sl@0
    38
/**
sl@0
    39
  Destructor
sl@0
    40
  @internalTechnology
sl@0
    41
  @test
sl@0
    42
*/
sl@0
    43
CTestEscapeEncodeUriStep::~CTestEscapeEncodeUriStep()
sl@0
    44
	{
sl@0
    45
sl@0
    46
	}
sl@0
    47
sl@0
    48
/**
sl@0
    49
  Does the main functionality of a test step.
sl@0
    50
  Here, reads values from INI file and calls EscEncodeAndCompareUriL
sl@0
    51
  @internalTechnology 
sl@0
    52
  @param		None
sl@0
    53
  @return		EPass or EFail indicating the success or failure of the test step
sl@0
    54
*/
sl@0
    55
TVerdict CTestEscapeEncodeUriStep::doTestStepL()
sl@0
    56
	{
sl@0
    57
	__UHEAP_MARK;
sl@0
    58
	INFO_PRINTF1(_L("\n"));
sl@0
    59
	// Get necessary information from INI file
sl@0
    60
	
sl@0
    61
	TPtrC decodedComponent; // to be encoded.
sl@0
    62
	TPtrC expEncodedUri;
sl@0
    63
	TPtrC expEncodedAuthority;
sl@0
    64
	TPtrC expEncodedPath;
sl@0
    65
	TPtrC expEncodedQuery;
sl@0
    66
	TPtrC expEncodedNormal;
sl@0
    67
	
sl@0
    68
	if(!GetStringFromConfig(ConfigSection(), KIniEscapeDecoded, decodedComponent) ||
sl@0
    69
	   !GetStringFromConfig(ConfigSection(), KIniEscapeEncodedUri, expEncodedUri) ||
sl@0
    70
	   !GetStringFromConfig(ConfigSection(), KIniEscapeEncodedAuthority, expEncodedAuthority) ||
sl@0
    71
	   !GetStringFromConfig(ConfigSection(), KIniEscapeEncodedPath, expEncodedPath) ||
sl@0
    72
	   !GetStringFromConfig(ConfigSection(), KIniEscapeEncodedQuery, expEncodedQuery) ||
sl@0
    73
       !GetStringFromConfig(ConfigSection(), KIniEscapeEncodedNormal, expEncodedNormal)	  )
sl@0
    74
		{
sl@0
    75
		ERR_PRINTF7(_L("Problem in reading values from ini.			\
sl@0
    76
						\nExpected fields are: \n%S\n%S\n%S\n%S\n%S\n%S\n"
sl@0
    77
					  ),&KIniEscapeDecoded, &KIniEscapeEncodedUri, &KIniEscapeEncodedAuthority, &KIniEscapeEncodedPath, &KIniEscapeEncodedQuery, &KIniEscapeEncodedNormal
sl@0
    78
				   );
sl@0
    79
		SetTestStepResult(EFail);
sl@0
    80
		}
sl@0
    81
	else
sl@0
    82
		{// No problem in reading values from INI file. Proceed.
sl@0
    83
	    TRAPD(err, EscEncodeAndCompareUriL(decodedComponent,expEncodedUri,expEncodedAuthority,expEncodedPath,expEncodedQuery,expEncodedNormal));
sl@0
    84
	    if(err != KErrNone)
sl@0
    85
			{
sl@0
    86
			ERR_PRINTF2(_L("Test step failed: Leave occured in EscEncodeAndCompareUriL fun: %D\n"), err);
sl@0
    87
			SetTestStepResult(EFail);	
sl@0
    88
			}
sl@0
    89
		 }
sl@0
    90
	__UHEAP_MARKEND;
sl@0
    91
	INFO_PRINTF1(_L("\nTest of EscapeEncodingUri is Executed\n"));
sl@0
    92
	return TestStepResult();
sl@0
    93
	}
sl@0
    94
sl@0
    95
/**
sl@0
    96
  Performs escape encoding in all modes and compares actual & expected result.
sl@0
    97
  @param		aDecodeComp A descriptor with the data to encode.
sl@0
    98
  @param		aExpEncodedUrl An expected descriptor for the escape Mode EEscapeUrlEncoded.
sl@0
    99
  @param		aExpEncodedAut An expected descriptor for the escape Mode EEscapeAuth.
sl@0
   100
  @param		aExpEncodedPath An expected descriptor for the escape Mode EEscapePath.
sl@0
   101
  @param		aExpEncodedQuery An expected descriptor for the escape Mode EEscapeQuery.
sl@0
   102
  @param		aExpEncodedNormal An expected descriptor for the escape Mode EEscapeNormal.
sl@0
   103
*/	
sl@0
   104
void CTestEscapeEncodeUriStep::EscEncodeAndCompareUriL(const TDesC& aDecodeComp,const TDesC& aExpEncodedUrl,const TDesC& aExpEncodedAut,const TDesC& aExpEncodedPath,const TDesC& aExpEncodedQuery,const TDesC& aExpEncodedNormal)
sl@0
   105
	{
sl@0
   106
	HBufC8* decodeBuf = HBufC8::NewLC(aDecodeComp.Length());
sl@0
   107
	TPtr8 decode8Bit(decodeBuf->Des());
sl@0
   108
	decode8Bit.Copy(aDecodeComp);
sl@0
   109
	//Authority mode Encoding 
sl@0
   110
	TestComponentEncodingL(decode8Bit, aExpEncodedAut, EscapeUtils::EEscapeAuth );
sl@0
   111
     //Path mode Encoding
sl@0
   112
    TestComponentEncodingL(decode8Bit, aExpEncodedPath, EscapeUtils::EEscapePath );
sl@0
   113
    //Query mode Encoding
sl@0
   114
    TestComponentEncodingL(decode8Bit, aExpEncodedQuery, EscapeUtils::EEscapeQuery );
sl@0
   115
    //Normal mode Encoding
sl@0
   116
    TestComponentEncodingL(decode8Bit, aExpEncodedNormal, EscapeUtils::EEscapeNormal );
sl@0
   117
    //Url mode Encoding
sl@0
   118
    TestComponentEncodingL(decode8Bit, aExpEncodedUrl, EscapeUtils::EEscapeUrlEncoded );
sl@0
   119
    
sl@0
   120
    CleanupStack::PopAndDestroy(decodeBuf);
sl@0
   121
    }
sl@0
   122
	
sl@0
   123
/**
sl@0
   124
  Performs escape encoding the mode specifed and compares actual & expected result.
sl@0
   125
  @param		aDecode8Bit A descriptor with the data to encode.
sl@0
   126
  @param		aExpEncodedComponent An expected descriptor for the escape mode specified.
sl@0
   127
  @param		aMode An enum specifying the escape mode.
sl@0
   128
*/
sl@0
   129
void CTestEscapeEncodeUriStep::TestComponentEncodingL(const TDesC8& aDecode8Bit, const TDesC& aExpEncodedComponent, EscapeUtils::TEscapeMode aMode )
sl@0
   130
	{
sl@0
   131
	//Component Encoding 
sl@0
   132
	HBufC8* expEncodedComponentBuf = HBufC8::NewLC(aExpEncodedComponent.Length());
sl@0
   133
	TPtr8 expEncodedComponent8Bit(expEncodedComponentBuf->Des());
sl@0
   134
	expEncodedComponent8Bit.Copy(aExpEncodedComponent);
sl@0
   135
sl@0
   136
    HBufC8* encodedComponent=EscapeUtils::EscapeEncodeL(aDecode8Bit,aMode);
sl@0
   137
    if(expEncodedComponent8Bit.Compare(*encodedComponent)!=0)
sl@0
   138
	    {
sl@0
   139
	    switch (aMode)
sl@0
   140
		    {
sl@0
   141
		    case EscapeUtils::EEscapeAuth:
sl@0
   142
		    	{
sl@0
   143
		    	ERR_PRINTF1(_L("Test step failed: EEscapeAuth - EscapeEncoding done wrongly.\n"));
sl@0
   144
		    	break;
sl@0
   145
		    	}
sl@0
   146
		    case EscapeUtils::EEscapePath:
sl@0
   147
		    	{
sl@0
   148
		    	ERR_PRINTF1(_L("Test step failed: EEscapePath - EscapeEncoding done wrongly.\n"));
sl@0
   149
		    	break;
sl@0
   150
		    	}
sl@0
   151
		    case EscapeUtils::EEscapeQuery:
sl@0
   152
		    	{
sl@0
   153
		    	ERR_PRINTF1(_L("Test step failed: EEscapeQuery - EscapeEncoding done wrongly.\n"));
sl@0
   154
		    	break;
sl@0
   155
		    	}
sl@0
   156
		    case EscapeUtils::EEscapeNormal:
sl@0
   157
		    	{
sl@0
   158
		    	ERR_PRINTF1(_L("Test step failed: EEscapeNormal - EscapeEncoding done wrongly.\n"));
sl@0
   159
		    	break;
sl@0
   160
		    	}
sl@0
   161
		    case EscapeUtils::EEscapeUrlEncoded:
sl@0
   162
		    	{
sl@0
   163
		    	ERR_PRINTF1(_L("Test step failed: EEscapeUrlEncoded - EscapeEncoding done wrongly.\n"));
sl@0
   164
		    	break;
sl@0
   165
		    	}
sl@0
   166
		    default:
sl@0
   167
		    	{
sl@0
   168
		    	//do nothing
sl@0
   169
		    	break;	
sl@0
   170
		    	}
sl@0
   171
		    }
sl@0
   172
	    
sl@0
   173
		SetTestStepResult(EFail);
sl@0
   174
	    }
sl@0
   175
    delete encodedComponent;
sl@0
   176
    CleanupStack::PopAndDestroy(expEncodedComponentBuf);	
sl@0
   177
	}
sl@0
   178
sl@0
   179