Removed flash tag from Syborg test plan (Added automatically by ats_specialise_drop)
// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
// All rights reserved.
// This component and the accompanying materials are made available
// under the terms of the License "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:
// Contains implementation of CTestHttpBaseStep class
// @internalAll
//
//
// System Include
// for StartC32()
#include <c32comm.h>
#include <e32base.h>
#include <http.h>
// User Include
#include "testhttpbasestep.h"
// File system root
_LIT(KFileSystemRoot,"C:\\");
// PDD names for the physical device drivers that are loaded in wins or arm
#if defined (__WINS__)
#define PDD_NAME _L("ECDRV")
#else
#define PDD_NAME _L("EUART1")
#define PDD2_NAME _L("EUART2")
#define PDD3_NAME _L("EUART3")
#define PDD4_NAME _L("EUART4")
#endif
#define LDD_NAME _L("ECOMM")
// Loads the physical device drivers
void CTestHttpBaseStep::InitCommsL()
{
TInt ret = User::LoadPhysicalDevice(PDD_NAME);
User::LeaveIfError(ret == KErrAlreadyExists?KErrNone:ret);
#ifndef __WINS__
ret = User::LoadPhysicalDevice(PDD2_NAME);
ret = User::LoadPhysicalDevice(PDD3_NAME);
ret = User::LoadPhysicalDevice(PDD4_NAME);
#endif
ret = User::LoadLogicalDevice(LDD_NAME);
User::LeaveIfError(ret == KErrAlreadyExists?KErrNone:ret);
ret = StartC32();
User::LeaveIfError(ret == KErrAlreadyExists?KErrNone:ret);
}
/**
Constructor: Sets the test step name.
@internalTechnology
@test
*/
CTestHttpBaseStep::CTestHttpBaseStep()
{
//Call base class method to set human readable name for test step
SetTestStepName(KTestHttpBaseStep);
}
/**
Destructor: Closes the iFileServ.
@internalTechnology
@test
*/
CTestHttpBaseStep::~CTestHttpBaseStep()
{
iFileServ.Close();
delete iSched;
//CleanupStack::PopAndDestroy(); // iSched
iSched = NULL;
}
/**
Base class virtual doTestStepPreambleL():
Create and install the active scheduler and connect to iFileServ (RFs).
@internalTechnology
@test
@param None
@return EPass or EFail.
*/
TVerdict CTestHttpBaseStep::doTestStepPreambleL()
{
iSched = new(ELeave) CActiveScheduler;
CActiveScheduler::Install(iSched);
User::LeaveIfError(iFileServ.Connect());
return TestStepResult();
} // doTestPreambleL
/**
Base class pure virtual doTestStepL():
Tests the ebo support in http.
@internalTechnology
@test
@param None
@return EPass or EFail indicating the result of the test step.
*/
TVerdict CTestHttpBaseStep::doTestStepL()
{
// __UHEAP_MARK;
INFO_PRINTF1(_L("\n"));
// Start C32 and initalize some device drivers. This is necessary when running a test console as these won't
// have been started
TRAPD(err,InitCommsL());
if (err != KErrNone)
{
ERR_PRINTF2(_L("Teststep Failed: Leave occured in CTestHttpBaseStep::InitCommsL: %D\n"
),err
);
SetTestStepResult(EFail);
}
else
{
// Opening session
iSess.OpenL();
// start the client
TRAP(err,StartClientL());
if (err != KErrNone)
{
ERR_PRINTF2(_L("Teststep Failed: Leave occured in CTestHttpBaseStep::StartClientL: %D\n"
),err
);
SetTestStepResult(EFail);
}
// Closing session
iSess.Close();
}
// __UHEAP_MARKEND;
INFO_PRINTF1(_L("\n"));
return TestStepResult();
} // doTestStepL
/**
Sets the headers.
@internalTechnology
@test
@param aHeaders Headers collection
@param aHdrField Header field to be added
@return aHdrValue Header value to be added
*/
void CTestHttpBaseStep::SetHeaderL(RHTTPHeaders aHeaders, TInt aHdrField, const TDesC8& aHdrValue)
{
RStringF valStr = iSess.StringPool().OpenFStringL(aHdrValue);
THTTPHdrVal val(valStr);
aHeaders.SetFieldL(iSess.StringPool().StringF(aHdrField,RHTTPSession::GetTable()), val);
valStr.Close();
}