imstutils/imconversationview/tsrc/imcvuiengine_test/src/imcvuiengine_testsendmessage.cpp
/*
* Copyright (c) 2002 - 2007 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: imcvuiengine_testsendmessage.cpp
*
*/
// [INCLUDE FILES] - do not remove
#include <e32math.h>
#include "imcvuiengine_testsendmessage.h"
#include "cimcvengine.h"
#include "mimcvenginemessagecontainerinfo.h"
#include "mimcvenginemessagecreator.h"
#include "cimcvenginemessagehandler.h"
#include <ximpbase.h>
#include <e32property.h>
#include "mimcvenginechatinterface.h"
#include "mimcvenginemessageswriteinterface.h"
#include "mimcvengineopenchats.h"
#include "cimcvenginemessagehandler.h"
#include <avabilitytext.h>
#include <spentry.h>
#include <spsettings.h>
#include <spproperty.h>
#include "s_cch.h"
#include "cimcvenginefactory.h"
#include "mimcvenginefactory.h"
#include "cimcvenginemessagecreator.h"
#include "mimcvenginemessagecreator.h"
_LIT(KOwnUser,"testlm123@gmail.com");
_LIT8(KBrandId,"YAHOO");
const TInt KProtocolUid = 0x20007B6D;
const TUid KIMPropertyUid = { 0x0D334E82 };
const TUint KIMConnectedKey = 0x00000001;
const TUint KIMServiceIdKey = 0x00000002;
const TUint KIMServiceProtocolUidKey = 0x00000003;
const TUint KIMOwnUserIdKey = 0x00000004;
_LIT(KRecipientID,"testui123@gmail.com");
_LIT(KRecipientID2,"testlm123@gmail.com");
_LIT(KInvalidRecipientID,"abcsddd@gmail.com");
// meco service uid
#define KMECOIMPLEMENTATIONUID 0x20012423
//const TInt ProcessInterval = 2000000; //2 seconds
// --------------------------------------------------------------------------
// CIMCVUiEngine_TestSendMessage::CIMCVUiEngine_TestSendMessage
// --------------------------------------------------------------------------
//
CIMCVUiEngine_TestSendMessage::CIMCVUiEngine_TestSendMessage()
{
}
// CIMCommands_TestLogin::~CIMCommands_TestLogin
// --------------------------------------------------------------------------
//
CIMCVUiEngine_TestSendMessage::~CIMCVUiEngine_TestSendMessage()
{
delete iSettings;
CIMCVEngineFactory::Release();
}
// --------------------------------------------------------------------------
// CIMCommands_TestLogin::NewL
// --------------------------------------------------------------------------
//
CIMCVUiEngine_TestSendMessage* CIMCVUiEngine_TestSendMessage::NewL()
{
CIMCVUiEngine_TestSendMessage* self = new(ELeave) CIMCVUiEngine_TestSendMessage();
CleanupStack::PushL(self);
self->ConstructL();
CleanupStack::Pop(self);
return self;
}
// -----------------------------------------------------------------------------
// Cimcvuiengine_test::ConstructL
// Simple printing to UI test.
// -----------------------------------------------------------------------------
void CIMCVUiEngine_TestSendMessage::ConstructL()
{
// define the property for upper layer to use serivceid ,
// servicesetting id and loggedin user id
// servicesetting id and loggedin user id
CreateSpEntryL(KTestServiceId);
ReadServiceDetalsL();
TInt err = RProperty::Define(KIMPropertyUid, KIMServiceIdKey, RProperty::EInt,
ECapabilityReadUserData ,ECapabilityWriteUserData);
//User::LeaveIfError(err);
err = RProperty::Define(KIMPropertyUid, KIMServiceProtocolUidKey, RProperty::EInt,
ECapabilityReadUserData ,ECapabilityWriteUserData );
//User::LeaveIfError(err);
err = RProperty::Define(KIMPropertyUid, KIMConnectedKey, RProperty::EInt,
ECapabilityReadUserData ,ECapabilityWriteUserData );
//User::LeaveIfError(err);
// write into defined property for upper layer to use serivceid ,
RProperty::Set( KIMPropertyUid, KIMServiceIdKey, KTestServiceId );
RProperty::Set( KIMPropertyUid, KIMServiceProtocolUidKey, KProtocolUid );
RProperty::Set( KIMPropertyUid, KIMConnectedKey, ETrue );
iEngineFactory = CIMCVEngineFactory::InstanceL();
iEngine = &iEngineFactory->GetServiceEngineL( KTestServiceId );
// for send operation
iEngine->MessageHandler().SetObserver(this);
//iEngine->CCHHandler().EnableService();
}
// -----------------------------------------------------------------------------
// CIMCVUiEngine_TestSendMessage::ReadServiceDetalsL
// Simple printing to UI test.
// -----------------------------------------------------------------------------
void CIMCVUiEngine_TestSendMessage::ReadServiceDetalsL()
{
iSettings = CSPSettings::NewL(); // CCH Login
iServiceId = KErrNotFound;
///////////////////////Get Service Id////////////////
RArray<TServiceId> services;
CleanupClosePushL( services );
iSettings->FindServiceIdsL( services );
const TInt serviceCount = services.Count();
for ( TInt i( 0 ); i < serviceCount; i++ )
{
TInt refContactUid = KErrNotFound;
CSPProperty* property = CSPProperty::NewLC();
iSettings->FindPropertyL( services[i],EPropertyContactViewPluginId,*property );
if ( property )
{
property->GetValue( refContactUid );
}
CleanupStack::PopAndDestroy( property );
if ( (TUid::Uid( refContactUid ) == TUid::Uid( KMECOIMPLEMENTATIONUID ))
|| (TUid::Uid( refContactUid ) == TUid::Uid( 0x20007B6D ) ))
{
iServiceId = services[i];
break;
}
}
CleanupStack::PopAndDestroy( &services );
}
// -----------------------------------------------------------------------------
// CIMCVUiEngine_TestSendMessage::CreateConnectionL
// Simple printing to UI test.
// -----------------------------------------------------------------------------
void CIMCVUiEngine_TestSendMessage::CreateConnectionL()
{
// TODO : allready loggedin in local mode enable when login to n/w
//if(!iEngine->IsLoggedIn() )
// {
// iEngine->CreateContextL();
// }
}
// -----------------------------------------------------------------------------
// CIMCVUiEngine_TestSendMessage::ReleaseConnectionL
// Simple printing to UI test.
// -----------------------------------------------------------------------------
void CIMCVUiEngine_TestSendMessage::ReleaseConnectionL()
{
if(iEngine->IsLoggedIn() )
{
iEngine->ReleaseConnectionL();
}
// iEngine->DeleteContextL();
}
// -----------------------------------------------------------------------------
// Cimcvuiengine_test::SendTextMessageL
// Simple printing to UI test.
// -----------------------------------------------------------------------------
//
TInt CIMCVUiEngine_TestSendMessage::SendTextMessageL()
{
_LIT(KSomeStr,"hello"); //String to be sent
MIMCVEngineChatInterface& chat = iEngine->ChatInterface();
MIMCVEngineMessageWriteInterface& write = chat.MessageWriteInterfaceL(1, KRecipientID );
iEngine->MessageHandler().StartNewConversationL( KRecipientID );
if ( !iWait.IsStarted() )
{
iWait.Start();
}
MIMCVEngineMessageCreator::SMessageData data =
{
KMessageDataVersion,
KOwnUser,
KRecipientID,
KSomeStr,
MIMCVEngineMessage::EContentText,
MIMCVEngineMessage::EMessageSent
};
MIMCVEngineMessage* message = iEngine->MessageHandler().MessageCreator().CreateMessageL( data );
write.AppendL(message );
iEngine->MessageHandler().SendMessageL( *message );
if ( !iWait.IsStarted() )
{
iWait.Start();
}
return iResult;
}
// -----------------------------------------------------------------------------
// Cimcvuiengine_test::SendNullMessageL
// Simple printing to UI test.
// -----------------------------------------------------------------------------
//
TInt CIMCVUiEngine_TestSendMessage::SendNullMessageL()
{
_LIT(KSomeStr,""); //String to be sent
MIMCVEngineChatInterface& chat = iEngine->ChatInterface();
MIMCVEngineMessageWriteInterface& write = chat.MessageWriteInterfaceL(1, KRecipientID);
iEngine->MessageHandler().StartNewConversationL( KRecipientID );
if ( !iWait.IsStarted() )
{
iWait.Start();
}
MIMCVEngineMessageCreator::SMessageData data =
{
KMessageDataVersion,
KOwnUser,
KRecipientID,
KSomeStr,
MIMCVEngineMessage::EContentText,
MIMCVEngineMessage::EMessageSent
};
MIMCVEngineMessage* message = iEngine->MessageHandler().MessageCreator().CreateMessageL( data );
write.AppendL(message );
iEngine->MessageHandler().SendMessageL( *message );
if ( !iWait.IsStarted() )
{
iWait.Start();
}
return iResult;
}
// -----------------------------------------------------------------------------
// Cimcvuiengine_test::StartNewConvesationL
// Simple printing to UI test.
// -----------------------------------------------------------------------------
//
TInt CIMCVUiEngine_TestSendMessage::StartNewConvesationL()
{
iEngine->MessageHandler().StartNewConversationL( KRecipientID );
if ( !iWait.IsStarted() )
{
iWait.Start();
}
return iResult;
}
// -----------------------------------------------------------------------------
// Cimcvuiengine_test::CloseConvesationL
// Simple printing to UI test.
// -----------------------------------------------------------------------------
//
TInt CIMCVUiEngine_TestSendMessage::CloseConvesationL()
{
iEngine->MessageHandler().StartNewConversationL( KRecipientID );
if ( !iWait.IsStarted() )
{
iWait.Start();
}
iEngine->MessageHandler().CloseConversationL( KRecipientID );
return iResult;
}
// -----------------------------------------------------------------------------
// Cimcvuiengine_test::SendSplCharMessageL
// Simple printing to UI test.
// -----------------------------------------------------------------------------
//
TInt CIMCVUiEngine_TestSendMessage::SendSplCharMessageL()
{
_LIT(KSomeSplStr,"@&!`$?#"); //String to be sent
MIMCVEngineChatInterface& chat = iEngine->ChatInterface();
MIMCVEngineMessageWriteInterface& write = chat.MessageWriteInterfaceL(1, KRecipientID );
iEngine->MessageHandler().StartNewConversationL( KRecipientID );
if ( !iWait.IsStarted() )
{
iWait.Start();
}
MIMCVEngineMessageCreator::SMessageData data =
{
KMessageDataVersion,
KOwnUser,
KRecipientID,
KSomeSplStr,
MIMCVEngineMessage::EContentText,
MIMCVEngineMessage::EMessageSent
};
MIMCVEngineMessage* message = iEngine->MessageHandler().MessageCreator().CreateMessageL( data );
write.AppendL(message );
iEngine->MessageHandler().SendMessageL( *message );
if ( !iWait.IsStarted() )
{
iWait.Start();
}
return iResult;
}
// -----------------------------------------------------------------------------
// Cimcvuiengine_test::SendCosMessageL
// Simple printing to UI test.
// -----------------------------------------------------------------------------
//
TInt CIMCVUiEngine_TestSendMessage::SendCosMessageL()
{
_LIT(KSomeSplStr,"asdscmdsdsvndv dsvndsfnv dfkdsfkd vkdsfvkdsj dsfdsjfkdsjf dsfjkdsjfkds dskfjdskfjdsk dfjkdsjfds dsfkdsjfkds dsfkdmfkds safdsajhf asfsajfnha adsfjndajsnhfd dsafnajdsfnh adsfjdajf ajfajfnhj fajadsjfa asasjfjafja afnajf asjfjdsaf"); //String to be sent
MIMCVEngineChatInterface& chat = iEngine->ChatInterface();
MIMCVEngineMessageWriteInterface& write = chat.MessageWriteInterfaceL(1, KRecipientID );
iEngine->MessageHandler().StartNewConversationL( KRecipientID );
if ( !iWait.IsStarted() )
{
iWait.Start();
}
MIMCVEngineMessageCreator::SMessageData data =
{
KMessageDataVersion,
KOwnUser,
KRecipientID,
KSomeSplStr,
MIMCVEngineMessage::EContentText,
MIMCVEngineMessage::EMessageSent
};
MIMCVEngineMessage* message = iEngine->MessageHandler().MessageCreator().CreateMessageL( data );
write.AppendL(message );
iEngine->MessageHandler().SendMessageL( *message );
if ( !iWait.IsStarted() )
{
iWait.Start();
}
return iResult;
}
// -----------------------------------------------------------------------------
// Cimcvuiengine_test::DeactivateConvesationL
// Simple printing to UI test.
// -----------------------------------------------------------------------------
//
TInt CIMCVUiEngine_TestSendMessage::DeactivateConvesationL()
{
iEngine->MessageHandler().StartNewConversationL( KRecipientID );
if ( !iWait.IsStarted() )
{
iWait.Start();
}
iEngine->MessageHandler().DeactivateConversationL();
return iResult;
}
// -----------------------------------------------------------------------------
// Cimcvuiengine_test::SendToInvaliedRecipientL
// Simple printing to UI test.
// -----------------------------------------------------------------------------
//
TInt CIMCVUiEngine_TestSendMessage::SendToInvaliedRecipientL()
{
_LIT(KSomeSplStr,"Invalied Recipient"); //String to be sent
MIMCVEngineChatInterface& chat = iEngine->ChatInterface();
MIMCVEngineMessageWriteInterface& write = chat.MessageWriteInterfaceL(1, KRecipientID );
iEngine->MessageHandler().StartNewConversationL( KInvalidRecipientID );
if ( !iWait.IsStarted() )
{
iWait.Start();
}
MIMCVEngineMessageCreator::SMessageData data =
{
KMessageDataVersion,
KOwnUser,
KInvalidRecipientID,
KSomeSplStr,
MIMCVEngineMessage::EContentText,
MIMCVEngineMessage::EMessageSent
};
MIMCVEngineMessage* message = iEngine->MessageHandler().MessageCreator().CreateMessageL( data );
write.AppendL(message );
iEngine->MessageHandler().SendMessageL( *message );
if ( !iWait.IsStarted() )
{
iWait.Start();
}
if(iResult == KErrArgument )
{
iResult = KErrNone;
}
return iResult;
}
// -----------------------------------------------------------------------------
// Cimcvuiengine_test::TestRecievedMessageL
// Simple printing to UI test.
// -----------------------------------------------------------------------------
//
TInt CIMCVUiEngine_TestSendMessage::TestMultipleSendMessageL()
{
_LIT(KSomeSplStr1,"this is recieved message 1"); //String to be sent
_LIT(KSomeSplStr2,"this is recieved message 2"); //String to be sent
_LIT(KSomeSplStr3,"this is recieved message 3"); //String to be sent
MIMCVEngineChatInterface& chat = iEngine->ChatInterface();
MIMCVEngineMessageWriteInterface& write = chat.MessageWriteInterfaceL(1, KRecipientID );
iEngine->MessageHandler().StartNewConversationL( KRecipientID );
if ( !iWait.IsStarted() )
{
iWait.Start();
}
MIMCVEngineMessageCreator::SMessageData data1 =
{
KMessageDataVersion,
KOwnUser,
KRecipientID,
KSomeSplStr1,
MIMCVEngineMessage::EContentText,
MIMCVEngineMessage::EMessageSent
};
MIMCVEngineMessage* message1 = iEngine->MessageHandler().MessageCreator().CreateMessageL( data1 );
write.AppendL(message1);
iEngine->MessageHandler().SendMessageL( *message1 );
if ( !iWait.IsStarted() )
{
iWait.Start();
}
MIMCVEngineMessageCreator::SMessageData data2 =
{
KMessageDataVersion,
KOwnUser,
KRecipientID,
KSomeSplStr2,
MIMCVEngineMessage::EContentText,
MIMCVEngineMessage::EMessageSent
};
MIMCVEngineMessage* message2 = iEngine->MessageHandler().MessageCreator().CreateMessageL( data2 );
write.AppendL(message2);
iEngine->MessageHandler().SendMessageL( *message2 );
if ( !iWait.IsStarted() )
{
iWait.Start();
}
MIMCVEngineMessageCreator::SMessageData data3 =
{
KMessageDataVersion,
KOwnUser,
KInvalidRecipientID,
KSomeSplStr3,
MIMCVEngineMessage::EContentText,
MIMCVEngineMessage::EMessageSent
};
MIMCVEngineMessage* message3 = iEngine->MessageHandler().MessageCreator().CreateMessageL( data3 );
write.AppendL(message3);
iEngine->MessageHandler().SendMessageL( *message3 );
if ( !iWait.IsStarted() )
{
iWait.Start();
}
return iResult;
}
// -----------------------------------------------------------------------------
// Cimcvuiengine_test::TestSendRecieveMsgL
// Simple printing to UI test.
// -----------------------------------------------------------------------------
//
TInt CIMCVUiEngine_TestSendMessage::TestSendRecieveMsgL()
{
_LIT(KSomeSplStr1,"this is send recieved message 1"); //String to be sent
_LIT(KSomeSplStr2,"this is send recieved message 2"); //String to be sent
MIMCVEngineChatInterface& chat = iEngine->ChatInterface();
MIMCVEngineMessageWriteInterface& write = chat.MessageWriteInterfaceL(1, KRecipientID );
iEngine->MessageHandler().StartNewConversationL( KRecipientID );
if ( !iWait.IsStarted() )
{
iWait.Start();
}
MIMCVEngineMessageCreator::SMessageData data1 =
{
KMessageDataVersion,
KOwnUser,
KRecipientID,
KSomeSplStr1,
MIMCVEngineMessage::EContentText,
MIMCVEngineMessage::EMessageSent
};
MIMCVEngineMessage* message1 = iEngine->MessageHandler().MessageCreator().CreateMessageL( data1 );
write.AppendL(message1 );
iEngine->MessageHandler().SendMessageL( *message1 );
if ( !iWait.IsStarted() )
{
iWait.Start();
}
MIMCVEngineMessageCreator::SMessageData data2 =
{
KMessageDataVersion,
KOwnUser,
KRecipientID,
KSomeSplStr2,
MIMCVEngineMessage::EContentText,
MIMCVEngineMessage::EMessageSent
};
MIMCVEngineMessage* message2 = iEngine->MessageHandler().MessageCreator().CreateMessageL( data2 );
write.AppendL(message2 );
iEngine->MessageHandler().SendMessageL( *message2 );
if ( !iWait.IsStarted() )
{
iWait.Start();
}
iEngine->MessageHandler().DeactivateConversationL();
iEngine->MessageHandler().StartNewConversationL( KRecipientID );
if ( !iWait.IsStarted() )
{
iWait.Start();
}
return iResult;
}
// -----------------------------------------------------------------------------
// Cimcvuiengine_test::TestSendFetchSendMsgL
// Simple printing to UI test.
// -----------------------------------------------------------------------------
//
TInt CIMCVUiEngine_TestSendMessage::TestSendFetchSendMsgL()
{
_LIT(KSomeSplStr1,"this is send recieved message 1"); //String to be sent
_LIT(KSomeSplStr2,"this is send recieved message 2"); //String to be sent
_LIT(KSomeSplStr3,"this is send recieved message 3 after fetched im from cache"); //String to be sent
MIMCVEngineChatInterface& chat = iEngine->ChatInterface();
MIMCVEngineMessageWriteInterface& write = chat.MessageWriteInterfaceL(1, KRecipientID );
iEngine->MessageHandler().StartNewConversationL( KRecipientID );
if ( !iWait.IsStarted() )
{
iWait.Start();
}
MIMCVEngineMessageCreator::SMessageData data1 =
{
KMessageDataVersion,
KOwnUser,
KRecipientID,
KSomeSplStr1,
MIMCVEngineMessage::EContentText,
MIMCVEngineMessage::EMessageSent
};
MIMCVEngineMessage* message1 = iEngine->MessageHandler().MessageCreator().CreateMessageL( data1 );
write.AppendL(message1);
iEngine->MessageHandler().SendMessageL( *message1 );
if ( !iWait.IsStarted() )
{
iWait.Start();
}
MIMCVEngineMessageCreator::SMessageData data2 =
{
KMessageDataVersion,
KOwnUser,
KRecipientID,
KSomeSplStr2,
MIMCVEngineMessage::EContentText,
MIMCVEngineMessage::EMessageSent
};
MIMCVEngineMessage* message2 = iEngine->MessageHandler().MessageCreator().CreateMessageL( data2 );
write.AppendL(message2);
iEngine->MessageHandler().SendMessageL( *message2 );
if ( !iWait.IsStarted() )
{
iWait.Start();
}
iEngine->MessageHandler().DeactivateConversationL();
iEngine->MessageHandler().StartNewConversationL( KRecipientID );
if ( !iWait.IsStarted() )
{
iWait.Start();
}
MIMCVEngineMessageCreator::SMessageData data3 =
{
KMessageDataVersion,
KOwnUser,
KRecipientID,
KSomeSplStr3,
MIMCVEngineMessage::EContentText,
MIMCVEngineMessage::EMessageSent
};
MIMCVEngineMessage* message3 = iEngine->MessageHandler().MessageCreator().CreateMessageL( data3 );
write.AppendL(message3);
iEngine->MessageHandler().SendMessageL( *message3 );
if ( !iWait.IsStarted() )
{
iWait.Start();
}
return iResult;
}
// -----------------------------------------------------------------------------
// Cimcvuiengine_test::PrintTest
// Simple printing to UI test.
// -----------------------------------------------------------------------------
//
TInt CIMCVUiEngine_TestSendMessage::GetResult() const
{
return iResult;
}
// -----------------------------------------------------------------------------
// Cimcvuiengine_test::HandleOperationCompletdL
// Simple printing to UI test.
// -----------------------------------------------------------------------------
//
void CIMCVUiEngine_TestSendMessage::HandleOperationCompletdL( TInt aserviceId, MIMCVEngineMessage::TMessagerType aType , TInt aResult )
{
iResult = aResult;
if ( iWait.IsStarted() )
{
iWait.AsyncStop();
}
}
// -----------------------------------------------------------------------------
// Cimcvuiengine_test::TestConnectionTerminationL
// Simple printing to UI test.
// -----------------------------------------------------------------------------
//
TInt CIMCVUiEngine_TestSendMessage::TestConnectionTerminationL()
{
return KErrNone;
}
// -----------------------------------------------------------------------------
// CIMCVUiEngine_TestSendMessage::HandleConnectionTerminatedL
// Simple printing to UI test.
// -----------------------------------------------------------------------------
//
void CIMCVUiEngine_TestSendMessage::HandleConnectionEventL(TInt aServiceId, TIMCVConnectionState aState, TInt aReason )
{
iResult = aReason;
if ( iWait.IsStarted() )
{
iWait.AsyncStop();
}
}
// -----------------------------------------------------------------------------
// Cimcvuiengine_test::TestLoginStateL
// Example test method function.TestLoginStateL
// (other items were commented in a header).
// -----------------------------------------------------------------------------
//
TInt CIMCVUiEngine_TestSendMessage::TestLoginStateL()
{
if(iEngine->IsLoggedIn() )
{
return KErrNone;
}
return KErrServerTerminated ;
}
// -----------------------------------------------------------------------------
// CIMCVUiEngine_TestSendMessage::TestLoginUserIdL
// Example test method function.
// (other items were commented in a header).
// -----------------------------------------------------------------------------
//
TInt CIMCVUiEngine_TestSendMessage::TestLoginUserIdL()
{
TPtrC userId = iEngine->GetLoggedInUserId();
if(! userId.Compare(KOwnUser ) )
{
return KErrNone;
}
return KErrArgument ;
}
// -----------------------------------------------------------------------------
// CIMCVUiEngine_TestSendMessage::TestGetBrandIdL
// Example test method function.
// (other items were commented in a header).
// -----------------------------------------------------------------------------
//
TInt CIMCVUiEngine_TestSendMessage::TestGetBrandIdL()
{
TPtrC8 BrandId = iEngine->GetBrandId();
if( BrandId.Length() )
{
return KErrNone;
}
return KErrArgument ;
}
// -----------------------------------------------------------------------------
// CIMCVUiEngine_TestSendMessage::TestGetLanguageIdL
// Example test method function.
// (other items were commented in a header).
// -----------------------------------------------------------------------------
//
TInt CIMCVUiEngine_TestSendMessage::TestGetLanguageIdL()
{
TInt languageId = iEngine->GetLanguageId();
if(KErrNone != languageId )
{
return KErrNone;
}
return KErrArgument ;
}
// -----------------------------------------------------------------------------
// CIMCVUiEngine_TestSendMessage::TestChatInterfaceL
// Example test method function.
// (other items were commented in a header).
// -----------------------------------------------------------------------------
//
TInt CIMCVUiEngine_TestSendMessage::TestChatInterfaceL()
{
MIMCVEngineChatInterface& chat = iEngine->ChatInterface();
MIMCVEngineMessageReadInterface& read = chat.MessageReadInterfaceL(1, KRecipientID) ;
read.Lock(ETrue); // to make sure ,valid ref
MIMCVEngineMessageWriteInterface& write = chat.MessageWriteInterfaceL(1, KRecipientID );
write.Time();// to make sure ,valid ref
return KErrNone;
}
// -----------------------------------------------------------------------------
// CIMCVUiEngine_TestSendMessage::TestMessageCoundL
// Example test method function.
// (other items were commented in a header).
// -----------------------------------------------------------------------------
//
TInt CIMCVUiEngine_TestSendMessage::TestMessageCoundL()
{
_LIT(KSomeStr,"hello"); //String to be sent
MIMCVEngineChatInterface& chat = iEngine->ChatInterface();
MIMCVEngineMessageWriteInterface& write = chat.MessageWriteInterfaceL(1, KRecipientID );
iEngine->MessageHandler().StartNewConversationL( KRecipientID );
if ( !iWait.IsStarted() )
{
iWait.Start();
}
MIMCVEngineMessageCreator::SMessageData data =
{
KMessageDataVersion,
KOwnUser,
KRecipientID,
KSomeStr,
MIMCVEngineMessage::EContentText,
MIMCVEngineMessage::EMessageSent
};
MIMCVEngineMessage* message = iEngine->MessageHandler().MessageCreator().CreateMessageL( data );
write.AppendL(message );
iEngine->MessageHandler().SendMessageL( *message );
if ( !iWait.IsStarted() )
{
iWait.Start();
}
MIMCVEngineMessageReadInterface& read = chat.MessageReadInterfaceL(1, KRecipientID) ;
// in case of send this must be zero , except unread
// this is the ReadOffset not the actaul message count
TInt count = read.MessageCount();
if(count == 0 )
{
return KErrNone;
}
return KErrNotFound;
}
// -----------------------------------------------------------------------------
// CIMCVUiEngine_TestSendMessage::TestMessageUnreadCoundL
// Example test method function.
// (other items were commented in a header).
// -----------------------------------------------------------------------------
//
TInt CIMCVUiEngine_TestSendMessage::TestMessageUnreadCoundL()
{
_LIT(KSomeStr,"hello"); //String to be sent
MIMCVEngineChatInterface& chat = iEngine->ChatInterface();
iEngine->MessageHandler().StartNewConversationL( KRecipientID );
MIMCVEngineMessageWriteInterface& write = chat.MessageWriteInterfaceL(1, KRecipientID );
if ( !iWait.IsStarted() )
{
iWait.Start();
}
MIMCVEngineMessageCreator::SMessageData data =
{
KMessageDataVersion,
KOwnUser,
KRecipientID,
KSomeStr,
MIMCVEngineMessage::EContentText,
MIMCVEngineMessage::EMessageReceived
};
MIMCVEngineMessage* message = iEngine->MessageHandler().MessageCreator().CreateMessageL( data );
write.AppendL(message );
iEngine->MessageHandler().SendMessageL( *message );
if ( !iWait.IsStarted() )
{
iWait.Start();
}
MIMCVEngineMessageReadInterface& read = chat.MessageReadInterfaceL(1, KRecipientID) ;
TInt count = read.UnreadCount(MIMCVEngineMessageReadInterface::EUnreadAll);
if(count == 1)
{
return KErrNone;
}
return KErrNotFound;
}
// -----------------------------------------------------------------------------
// CIMCVUiEngine_TestSendMessage::DeleteContextL
// Example test method function.
// (other items were commented in a header).
// -----------------------------------------------------------------------------
//
TInt CIMCVUiEngine_TestSendMessage::DeleteContextL()
{
//by default engine's context needs to be binded
iEngine->CreateContextL() ;
TRAPD(err, iEngine->DeleteContextL() );
return err;
}
// -----------------------------------------------------------------------------
// CIMCVUiEngine_TestSendMessage::CreateContextL
// Example test method function.
// (other items were commented in a header).
// -----------------------------------------------------------------------------
//
TInt CIMCVUiEngine_TestSendMessage::CreateContextL()
{
// by default presence must be EOffline
TRAPD(err, iEngine->CreateContextL() );
return err;
}
// -----------------------------------------------------------------------------
// CIMCVUiEngine_TestSendMessage::TestSubscribePresenceL
// Example test method function.
// (other items were commented in a header).
// -----------------------------------------------------------------------------
//
TInt CIMCVUiEngine_TestSendMessage::TestSubscribePresenceL()
{
TRAPD(err, iEngine->MessageHandler().SubscribePresenceL(KRecipientID) );
return err;
}
// -----------------------------------------------------------------------------
// CIMCVUiEngine_TestSendMessage::TestGetPresenceStatusL
// Example test method function.
// (other items were commented in a header).
// -----------------------------------------------------------------------------
//
TInt CIMCVUiEngine_TestSendMessage::TestGetPresenceStatusL()
{
// by default presence must be EOffline
TIMCVOnlineStatus status = iEngine->MessageHandler().GetPresenceStatus();
if(status == EOffline )
{
return KErrNone;
}
return KErrArgument;
}
// -----------------------------------------------------------------------------
// CIMCVUiEngine_TestSendMessage::TestAppendInfoMessageL
// Example test method function.
// (other items were commented in a header).
// -----------------------------------------------------------------------------
//
TInt CIMCVUiEngine_TestSendMessage::TestAppendInfoMessageL()
{
_LIT(KSomeStr,"hello this is information message "); //String to be sent
MIMCVEngineChatInterface& chat = iEngine->ChatInterface();
iEngine->MessageHandler().StartNewConversationL( KRecipientID );
MIMCVEngineMessageWriteInterface& write = chat.MessageWriteInterfaceL(1, KRecipientID );
if ( !iWait.IsStarted() )
{
iWait.Start();
}
MIMCVEngineMessageCreator::SMessageData data =
{
KMessageDataVersion,
KOwnUser,
KRecipientID,
KSomeStr,
MIMCVEngineMessage::EContentText,
MIMCVEngineMessage::EMessageOther
};
MIMCVEngineMessage* message = iEngine->MessageHandler().MessageCreator().CreateMessageL( data );
write.AppendL(message );
TRAPD(err, iEngine->MessageHandler().AppendToCacheL(KRecipientID, message->Text() ) );
return err;
}
// -----------------------------------------------------------------------------
// CIMCVUiEngine_TestSendMessage::HandlePresenceChangedL
// Example test method function.
// (other items were commented in a header).
// -----------------------------------------------------------------------------
//
void CIMCVUiEngine_TestSendMessage::HandlePresenceChangedL(TInt aServiceId, const TDesC& /*aBuddyId*/ )
{
// do nothings
}
// -----------------------------------------------------------------------------
// CIMCVUiEngine_TestSendMessage::TestCCHHandlerL
// Example test method function.
// (other items were commented in a header).
// -----------------------------------------------------------------------------
//
TInt CIMCVUiEngine_TestSendMessage::TestCCHHandlerL()
{
TInt error = KErrNone;
MIMCVEngineCchHandler& cchHandler = iEngine->CCHHandler();
if ( cchHandler.IsServiceLoggedIn() )
{
error = KErrArgument ;
}
HBufC* user = cchHandler.GetUserIdL();
if( user )
{
delete user;
error = KErrNone ;
}
else
{
error = KErrArgument ;
}
return error;
}
// -----------------------------------------------------------------------------
// CIMCVUiEngine_TestSendMessage::ReadyForShutdownTestL
// Example test method function.
// (other items were commented in a header).
// -----------------------------------------------------------------------------
//
TInt CIMCVUiEngine_TestSendMessage::ReadyForShutdownTestL()
{
if( !iEngine->ReadyForShutdown() )
{
// loggedin
return KErrNone;
}
return KErrArgument;
}
// -----------------------------------------------------------------------------
// CIMCVUiEngine_TestSendMessage::ServiceNameTestL
// Example test method function.
// (other items were commented in a header).
// -----------------------------------------------------------------------------
//
TInt CIMCVUiEngine_TestSendMessage::ServiceNameTestL()
{
if (iEngine->ServiceName().Length() )
{
return KErrNone ;
}
return KErrArgument;
}
// -----------------------------------------------------------------------------
// CIMCVUiEngine_TestSendMessage::OpenChatsTestL
// Example test method function.
// (other items were commented in a header).
// -----------------------------------------------------------------------------
//
TInt CIMCVUiEngine_TestSendMessage::OpenChatsTestL()
{
if ( &iEngine->OpenChats() )
{
MIMCVEngineOpenChats& openchat = iEngine->OpenChats() ;
if( !openchat.Count())
{
return KErrNone ;
}
}
return KErrArgument;
}
// -----------------------------------------------------------------------------
// CIMCVUiEngine_TestSendMessage::GetServiceIdTestL
// Example test method function.
// (other items were commented in a header).
// -----------------------------------------------------------------------------
//
TInt CIMCVUiEngine_TestSendMessage::GetServiceIdTestL()
{
if ( iEngine->GetServiceId() > 0 )
{
return KErrNone ;
}
return KErrArgument;
}
// -----------------------------------------------------------------------------
// CIMCVUiEngine_TestSendMessage::TestClosAllContainerL
// Example test method function.
// (other items were commented in a header).
// -----------------------------------------------------------------------------
//
TInt CIMCVUiEngine_TestSendMessage::TestClosAllContainerL()
{
_LIT(KSomeStr,"hello"); //String to be sent
MIMCVEngineChatInterface& chat = iEngine->ChatInterface();
iEngine->MessageHandler().StartNewConversationL( KRecipientID );
MIMCVEngineMessageWriteInterface& write = chat.MessageWriteInterfaceL(1, KRecipientID );
if ( !iWait.IsStarted() )
{
iWait.Start();
}
MIMCVEngineMessageCreator::SMessageData data =
{
KMessageDataVersion,
KOwnUser,
KRecipientID,
KSomeStr,
MIMCVEngineMessage::EContentText,
MIMCVEngineMessage::EMessageReceived
};
MIMCVEngineMessage* message = iEngine->MessageHandler().MessageCreator().CreateMessageL( data );
write.AppendL(message );
iEngine->MessageHandler().SendMessageL( *message );
if ( !iWait.IsStarted() )
{
iWait.Start();
}
if( chat.ChatCount() )
{
chat.CloseAllContainers();
}
if( !chat.ChatCount() )
{
return KErrNone;
}
return KErrArgument;
}
// -----------------------------------------------------------------------------
// CIMCVUiEngine_TestSendMessage::TestDeleteChatL
// Example test method function.
// (other items were commented in a header).
// -----------------------------------------------------------------------------
//
TInt CIMCVUiEngine_TestSendMessage::TestDeleteChatL()
{
_LIT(KSomeStr,"hello"); //String to be sent
MIMCVEngineChatInterface& chat = iEngine->ChatInterface();
iEngine->MessageHandler().StartNewConversationL( KRecipientID );
MIMCVEngineMessageWriteInterface& write = chat.MessageWriteInterfaceL(1, KRecipientID );
if ( !iWait.IsStarted() )
{
iWait.Start();
}
MIMCVEngineMessageCreator::SMessageData data =
{
KMessageDataVersion,
KOwnUser,
KRecipientID,
KSomeStr,
MIMCVEngineMessage::EContentText,
MIMCVEngineMessage::EMessageReceived
};
MIMCVEngineMessage* message = iEngine->MessageHandler().MessageCreator().CreateMessageL( data );
write.AppendL(message );
iEngine->MessageHandler().SendMessageL( *message );
if ( !iWait.IsStarted() )
{
iWait.Start();
}
MIMCVEngineMessageWriteInterface& write2 = chat.MessageWriteInterfaceL(1, KRecipientID2 );
iEngine->MessageHandler().StartNewConversationL( KRecipientID2 );
if ( !iWait.IsStarted() )
{
iWait.Start();
}
MIMCVEngineMessageCreator::SMessageData data1 =
{
KMessageDataVersion,
KOwnUser,
KRecipientID2,
KSomeStr,
MIMCVEngineMessage::EContentText,
MIMCVEngineMessage::EMessageReceived
};
MIMCVEngineMessage* message1 = iEngine->MessageHandler().MessageCreator().CreateMessageL( data1 );
write2.AppendL(message1 );
iEngine->MessageHandler().SendMessageL( *message1 );
if ( !iWait.IsStarted() )
{
iWait.Start();
}
if( chat.ChatCount() == 2 )
{
chat.DeleteChatL( 1, KRecipientID2 );
}
if( chat.ChatCount() == 1)
{
return KErrNone;
}
return KErrArgument;
}
// -----------------------------------------------------------------------------
// CIMCVUiEngine_TestSendMessage::TestEditorMessageL
// Example test method function.
// (other items were commented in a header).
// -----------------------------------------------------------------------------
//
TInt CIMCVUiEngine_TestSendMessage::TestEditorMessageL()
{
MIMCVEngineChatInterface& chat = iEngine->ChatInterface();
MIMCVEngineMessageReadInterface& read = chat.MessageReadInterfaceL(1, KRecipientID) ;
read.Lock(ETrue); // to make sure ,valid ref
read.StoreEditerMessageL(_L("Test Message"));
TBuf<15> receiveData;
receiveData = read.GetEditerMessage();
if(0 == receiveData.Compare(_L("Test Message")))
return KErrNone;
return KErrArgument;
}
// -----------------------------------------------------------------------------
// CIMCVUiEngine_TestSendMessage::TestEditorMessageL
// Example test method function.
// (other items were commented in a header).
// -----------------------------------------------------------------------------
//
TInt CIMCVUiEngine_TestSendMessage::TestConvertPresCacheEnum()
{
TInt err;
MIMCVEngineMessageUtils* aMessageUtils = NULL;
MIMCVEngineChatInterface& chat = iEngine->ChatInterface();
MIMCVEngineMessageCreator* messageCreator = CIMCVEngineMessageCreator::NewL();
CIMCVEngineMessageHandler* handler = CIMCVEngineMessageHandler::NewL( chat, *messageCreator, NULL, 1 ,KNullDesC);
MPresenceBuddyInfo2::TAvailabilityValues value = MPresenceBuddyInfo2::EUnknownAvailability;
TIMCVOnlineStatus status;
// the ConvertPresenceCacheEnums does not have the support for block and pending,
// hence should be added in the new test cases.
/*TBuf<50> buf1(KBlockedState);
TPtrC Ptr1 (buf1);
TIMCVOnlineStatus status = handler->ConvertPresenceCacheEnums(value, Ptr1);
if(EUnknown != status)
{
return KErrNotFound;
}
*/
value = MPresenceBuddyInfo2::EUnknownAvailability;
TBuf<50> buf2(KInvisibleState);
TPtrC Ptr2 (buf2);
status = handler->ConvertPresenceCacheEnums(value, Ptr2);
if(EInvisible != status)
{
return KErrNotFound;
}
value = MPresenceBuddyInfo2::EBusy;
TBuf<50> buf3(KAwayState);
TPtrC Ptr3 (buf3);
status = handler->ConvertPresenceCacheEnums(value, Ptr3);
if(EAway != status)
{
return KErrNotFound;
}
value = MPresenceBuddyInfo2::EBusy;
TBuf<50> buf4(KOnPhoneState);
TPtrC Ptr4 (buf4);
status = handler->ConvertPresenceCacheEnums(value, Ptr4);
if(EOnPhone != status)
{
return KErrNotFound;
}
value = MPresenceBuddyInfo2::EBusy;
TBuf<50> buf5(KDndState);
TPtrC Ptr5 (buf5);
status = handler->ConvertPresenceCacheEnums(value, Ptr5);
if(EDoNotDisturb != status)
{
return KErrNotFound;
}
/*value = MPresenceBuddyInfo2::EUnknownAvailability;
TBuf<50> buf6(KPendingRequestState);
TPtrC Ptr6 (buf6);
status = handler->ConvertPresenceCacheEnums(value, Ptr6);
if(EUnknown != status)
{
return KErrNotFound;
}
*/
value = MPresenceBuddyInfo2::EAvailable;
_LIT(KAnyMsg,"Any msg");
TBuf<50> buf7(KAnyMsg);
TPtrC Ptr7 (buf7);
status = handler->ConvertPresenceCacheEnums(value, Ptr7);
if(EOnline != status)
{
return KErrNotFound;
}
value = MPresenceBuddyInfo2::ENotAvailable;
status = handler->ConvertPresenceCacheEnums(value, Ptr7);
if(EOffline != status)
{
return KErrNotFound;
}
value = MPresenceBuddyInfo2::EUnknownAvailability;
status = handler->ConvertPresenceCacheEnums(value, Ptr7);
if(EUnknown != status)
{
return KErrNotFound;
}
return KErrNone;
}
// end of file