messagingfw/msgtestfw/TestActions/SendAs/src/CMtfTestActionSendAsSendMessageNew.cpp
// 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 "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:+ −
// __ACTION_INFO_BEGIN__ + −
// [Action Name]+ −
// SendAsSendMessage+ −
// [Action Parameters]+ −
// RSendAsMessage paramSendAsMessage <input>: Reference to the RSendAsMessage object+ −
// TInt paramSendMessageConfirmed <input>: 0 if the send operation is not a confirmed operation, 1 if the send operation has to be a confirmed operation. Default value is 0.+ −
// TInt paramCancelSendMessage <input>: 0 if the send operation need not be canceled, 1 if the send operation has to be canceled. Default value is 0.+ −
// [Action Description]+ −
// SendAsSendMessage Test Action is intended to request the Send-As server to send the message.+ −
// [APIs Used]+ −
// RSendAsMessage::SendMessage (TRequestStatus& aStatus)+ −
// RSendAsMessage::SendMessageConfirmed (TRequestStatus& aStatus)+ −
// __ACTION_INFO_END__+ −
// + −
//+ −
+ −
/**+ −
@file+ −
*/+ −
+ −
#include "sendas2.h"+ −
#include "CMtfTestActionSendAsSendMessageNew.h"+ −
#include "CMtfTestCase.h"+ −
#include "CMtfTestActionParameters.h"+ −
#include "MtfTestActionUtilsUser.h"+ −
+ −
CMtfTestAction* CMtfTestActionSendAsSendMessageNew::NewL(CMtfTestCase& aTestCase,CMtfTestActionParameters* aActionParameters)+ −
{+ −
CMtfTestActionSendAsSendMessageNew* self = new (ELeave) CMtfTestActionSendAsSendMessageNew(aTestCase);+ −
CleanupStack::PushL(self);+ −
self->ConstructL(aActionParameters);+ −
CleanupStack::Pop();+ −
return self;+ −
}+ −
+ −
+ −
CMtfTestActionSendAsSendMessageNew::CMtfTestActionSendAsSendMessageNew(CMtfTestCase& aTestCase)+ −
: CMtfTestAction(aTestCase)+ −
{+ −
}+ −
+ −
+ −
CMtfTestActionSendAsSendMessageNew::~CMtfTestActionSendAsSendMessageNew()+ −
{+ −
}+ −
+ −
+ −
void CMtfTestActionSendAsSendMessageNew::ExecuteActionL()+ −
{ + −
TestCase().INFO_PRINTF2(_L("Test Action %S start..."), &KTestActionSendAsSendMessageNew);+ −
iSendAsMessage = ObtainValueParameterL<RSendAsMessage>(TestCase(),ActionParameters().Parameter(0));+ −
TInt paramConfirmedSend = ObtainValueParameterL<TInt>(TestCase(),ActionParameters().Parameter(1), EFalse);+ −
TInt paramCancelSend = ObtainValueParameterL<TInt>(TestCase(),ActionParameters().Parameter(2), EFalse);+ −
TInt paramSetCharacterSet = ObtainValueParameterL<TInt>(TestCase(),ActionParameters().Parameter(4), EFalse);+ −
+ −
CActiveScheduler::Add (this);+ −
+ −
TInt err = KErrNone;+ −
+ −
// Sets the characterset for a message,it could be 8 bit or 16 bit (UCS2) Unicode value+ −
if(paramSetCharacterSet == TSmsDataCodingScheme::ESmsAlphabet8Bit || paramSetCharacterSet == TSmsDataCodingScheme::ESmsAlphabetUCS2 || paramSetCharacterSet == TSmsDataCodingScheme::ESmsAlphabet7Bit)+ −
{+ −
TRAP(err, iSendAsMessage.SetCharacterSetL(paramSetCharacterSet));+ −
TestCase().INFO_PRINTF2(_L("SetCharacterSetL completed with error %d"), err);+ −
}+ −
+ −
if(err == -47)+ −
{+ −
iStatus = KRequestPending;+ −
TRequestStatus *status = &iStatus;+ −
User::RequestComplete(status, err);+ −
}+ −
else+ −
{+ −
if(paramConfirmedSend)+ −
{+ −
TRAP(err, iSendAsMessage.SendMessageConfirmed(iStatus));+ −
}+ −
else+ −
{+ −
TRAP(err, iSendAsMessage.SendMessage(iStatus));+ −
}+ −
+ −
if(paramCancelSend)+ −
{+ −
TRAP(err, iSendAsMessage.Cancel());+ −
}+ −
}+ −
TestCase().INFO_PRINTF2(_L("Test Action %S completed."), &KTestActionSendAsSendMessageNew);+ −
SetActive();+ −
}+ −
+ −
void CMtfTestActionSendAsSendMessageNew::DoCancel()+ −
{+ −
iSendAsMessage.Cancel();+ −
}+ −
+ −
void CMtfTestActionSendAsSendMessageNew::RunL()+ −
{+ −
TSendAsProgress sendAsProgress;+ −
TInt errorCode = KErrNone;+ −
if (iStatus == KErrNone)+ −
{+ −
iSendAsMessage.ProgressL(sendAsProgress);+ −
errorCode = sendAsProgress.iError;+ −
}+ −
else+ −
{+ −
errorCode = iStatus.Int();+ −
}+ −
+ −
if(ActionParameters().Count() == 5 || ActionParameters().Count() == 4)+ −
{+ −
StoreParameterL<TInt>(TestCase(),errorCode,ActionParameters().Parameter(3));+ −
}+ −
else+ −
{+ −
User::LeaveIfError(errorCode);+ −
}+ −
+ −
TestCase().INFO_PRINTF2(_L("Test Action %S completed."), &KTestActionSendAsSendMessageNew);+ −
TestCase().ActionCompletedL(*this);+ −
}+ −
+ −