/*
* Copyright (c) 2008 - 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: Stif Test Cases Test blocks file.
* RunMethodL mentions all the test cases that will be run.
*
*/
// [INCLUDE FILES] - do not remove
#include <e32svr.h>
#include <StifParser.h>
#include <StifTestInterface.h>
#include "telepathygabbletest.h"
#include "telepathygabbletestdata.h"
//glib related include files
#include <glib.h>
#include <glib/gprintf.h> // for g_stpcpy
#include <string.h>
#include <stdlib.h>
#include <glowmem.h>
//Login related file
#include "telepathygabblelogintest.h"
//Send Message related file
#include "telepathygabblesendmessage.h"
//AddDeleteContact related file
#include "telepathygabbleadddeletecontact.h"
//FetchContacts related files
#include "telepathygabblefetchcontacts.h"
//Search related files
#include "telepathygabblesearch.h"
const TInt KRepeatedMessageCount=4;
typedef enum
{
RC_OK,
RC_ERROR
} RC_Code_t;
typedef struct
{
gchar *recipient;
gchar *message;
} MessageData;
typedef struct
{
gchar *proxy_server;
gchar *proxy_port;
}ProxyData;
typedef struct
{
gchar *key;
gchar *value;
}SearchData;
typedef struct
{
gchar *server;
gchar *username;
gchar *password;
gchar *resource;
MessageData *msg_data;
#ifdef __WINSCW__
ProxyData *proxy_data;
#endif
gchar *port;
gchar *ssl_flag; //needed for gizmo and gtalk.
SearchData *search_data;
} ConnectData;
typedef struct
{
ConnectData *connect_data;
GMainLoop *main_loop;
RC_Code_t rCode;
} AuthData;
typedef struct
{
GMainLoop *main_loop;
RC_Code_t Test_Success;
} HandleData;
// Function to read data from the cfg file
static RC_Code_t read_data ( ConnectData*& connect_data,
CStifItemParser& aItem, CStifLogger* aLog );
// Function to free the allocated resources
static void free_data ( ConnectData*& connect_data, CStifLogger* aLog);
// ============================= LOCAL FUNCTIONS ===============================
//-----------------------------------------------------------------------------
// function_name : read_data
// description : Reads data from the CFG file
// Returns : None
//-----------------------------------------------------------------------------
//
static RC_Code_t
read_data ( ConnectData*& connect_data, CStifItemParser& aItem, CStifLogger* aLog )
{
TPtrC string;
TBuf8<KMaxFileName> temp;
//TBuf8<KMaxChar> temp;
MessageData *msg_data = NULL;
SearchData *search_data = NULL;
#ifdef __WINSCW__
ProxyData *proxy_data = NULL;
#endif
connect_data = g_new0 ( ConnectData, 1 );
if ( !connect_data )
{
return RC_ERROR;
}
msg_data = g_new0 ( MessageData, 1 );
if ( !msg_data )
{
free_data (connect_data, aLog );
return RC_ERROR;
}
connect_data->msg_data = msg_data;
search_data = g_new0 ( SearchData, 1 );
if ( !search_data )
{
free_data (connect_data, aLog );
return RC_ERROR;
}
connect_data->search_data = search_data;
#ifdef __WINSCW__
proxy_data = g_new0 ( ProxyData, 1 );
if ( !proxy_data )
{
free_data (connect_data, aLog );
return RC_ERROR;
}
connect_data->proxy_data = proxy_data;
#endif
// Read server name
if ( aItem.GetNextString ( string ) == KErrNone )
{
temp.Copy ( string );
temp.Append ( '\0' );
connect_data->server = g_new0 ( gchar, temp.Length() );
if ( !connect_data->server )
{
free_data (connect_data, aLog );
return RC_ERROR;
}
g_stpcpy ( connect_data->server, ( gchar * ) temp.Ptr() );
}
// Read Username
if ( aItem.GetNextString ( string ) == KErrNone )
{
temp.Copy ( string );
temp.Append ( '\0' );
connect_data->username = g_new0 ( gchar, temp.Length() );
if ( !connect_data->username )
{
free_data (connect_data, aLog );
return RC_ERROR;
}
g_stpcpy ( connect_data->username, ( gchar * ) temp.Ptr() );
}
// Read Password corresponding to Username
if ( aItem.GetNextString ( string ) == KErrNone )
{
temp.Copy ( string );
temp.Append ( '\0' );
connect_data->password = g_new0 ( gchar, temp.Length () );
if ( !connect_data->password )
{
free_data (connect_data, aLog );
return RC_ERROR;
}
g_stpcpy ( connect_data->password, ( gchar *) temp.Ptr() );
}
// Read recipient
if ( aItem.GetNextString ( string ) == KErrNone )
{
temp.Copy ( string );
temp.Append ( '\0' );
msg_data->recipient = g_new0 ( gchar, temp.Length() );
if ( !msg_data->recipient )
{
free_data (connect_data, aLog );
return RC_ERROR;
}
g_stpcpy ( msg_data->recipient, ( gchar * ) temp.Ptr() );
}
// Read Message
if ( aItem.GetNextString ( string ) == KErrNone )
{
temp.Copy ( string );
temp.Append ( '\0' );
msg_data->message = g_new0 ( gchar, temp.Length() );
if ( !msg_data->message )
{
free_data (connect_data, aLog );
return RC_ERROR;
}
g_stpcpy ( msg_data->message, ( gchar * ) temp.Ptr() );
}
// Read resource identifier
if ( aItem.GetNextString ( string ) == KErrNone )
{
temp.Copy ( string );
temp.Append ( '\0' );
connect_data->resource = g_new0 ( gchar, temp.Length() );
if ( !connect_data->resource )
{
free_data (connect_data, aLog );
return RC_ERROR;
}
g_stpcpy ( connect_data->resource, ( gchar * ) temp.Ptr() );
}
// Read proxy server and proxy port
if ( aItem.GetNextString ( string ) == KErrNone )
{
temp.Copy ( string );
temp.Append ( '\0' );
#ifdef __WINSCW__
proxy_data->proxy_server = g_new0 ( gchar, temp.Length() );
if ( !proxy_data->proxy_server )
{
free_data (connect_data, aLog );
return RC_ERROR;
}
g_stpcpy ( proxy_data->proxy_server, ( gchar * ) temp.Ptr() );
#endif
}
if ( aItem.GetNextString ( string ) == KErrNone )
{
temp.Copy ( string );
temp.Append ( '\0' );
#ifdef __WINSCW__
proxy_data->proxy_port = g_new0 ( gchar, temp.Length() );
if ( !proxy_data->proxy_port )
{
free_data (connect_data, aLog );
return RC_ERROR;
}
g_stpcpy ( proxy_data->proxy_port, ( gchar * ) temp.Ptr() );
#endif
}
/* if ( aItem.GetNextInt ( proxy_port ) == KErrNone )
{
proxy_data->proxy_port = proxy_port;
} */
//Read the port
if ( aItem.GetNextString ( string ) == KErrNone )
{
temp.Copy ( string );
temp.Append ( '\0' );
connect_data->port = g_new0 ( gchar, temp.Length() );
if ( !connect_data->port )
{
free_data (connect_data, aLog );
return RC_ERROR;
}
g_stpcpy ( connect_data->port, ( gchar * ) temp.Ptr() );
}
//Read the ssl_flag value
if ( aItem.GetNextString ( string ) == KErrNone )
{
temp.Copy ( string );
temp.Append ( '\0' );
connect_data->ssl_flag = g_new0 ( gchar, temp.Length() );
if ( !connect_data->ssl_flag )
{
free_data (connect_data, aLog );
return RC_ERROR;
}
g_stpcpy ( connect_data->ssl_flag, ( gchar * ) temp.Ptr() );
}
// Read key
if ( aItem.GetNextString ( string ) == KErrNone )
{
temp.Copy ( string );
temp.Append ( '\0' );
search_data->key = g_new0 ( gchar, temp.Length() );
if ( !search_data->key )
{
free_data (connect_data, aLog );
return RC_ERROR;
}
g_stpcpy ( search_data->key, ( gchar * ) temp.Ptr() );
}
// Read value
if ( aItem.GetNextString ( string ) == KErrNone )
{
temp.Copy ( string );
temp.Append ( '\0' );
search_data->value = g_new0 ( gchar, temp.Length() );
if ( !search_data->value )
{
free_data (connect_data, aLog );
return RC_ERROR;
}
g_stpcpy ( search_data->value, ( gchar * ) temp.Ptr() );
}
return RC_OK;
}
//-----------------------------------------------------------------------------
// function_name : free_data
// description : Deallocates all the data
// Returns : None
//-----------------------------------------------------------------------------
//
static void
free_data ( ConnectData*& connect_data, CStifLogger* aLog )
{
//iLog->Log( _L("free_data\n") );
if ( connect_data )
{
if ( connect_data->server )
{
//iLog->Log( _L("free server\n") );
g_free ( connect_data->server );
connect_data->server = NULL;
}
if ( connect_data->username )
{
aLog->Log( _L(" free username\n") );
g_free ( connect_data->username );
connect_data->username = NULL;
}
if ( connect_data->password )
{
aLog->Log( _L(" free password\n") );
g_free ( connect_data->password );
connect_data->password = NULL;
}
if ( connect_data->msg_data )
{
if ( connect_data->msg_data->recipient )
{
aLog->Log( _L(" free recipient\n") );
g_free ( connect_data->msg_data->recipient );
connect_data->msg_data->recipient = NULL;
}
if ( connect_data->msg_data->message )
{
aLog->Log( _L(" free message\n") );
g_free ( connect_data->msg_data->message );
connect_data->msg_data->message = NULL;
}
g_free ( connect_data->msg_data );
connect_data->msg_data = NULL;
}
if ( connect_data->resource )
{
aLog->Log( _L(" free resource\n") );
g_free ( connect_data->resource );
connect_data->resource = NULL;
}
#ifdef __WINSCW__
if ( connect_data->proxy_data )
{
if ( connect_data->proxy_data->proxy_server )
{
aLog->Log( _L(" free proxy_server\n") );
g_free ( connect_data->proxy_data->proxy_server );
connect_data->proxy_data->proxy_server = NULL;
}
if ( connect_data->proxy_data->proxy_port )
{
aLog->Log( _L(" free proxy_port\n") );
g_free ( connect_data->proxy_data->proxy_port );
connect_data->proxy_data->proxy_port = NULL;
}
g_free ( connect_data->proxy_data );
connect_data->proxy_data = NULL;
}
#endif
//port free
if ( connect_data->port )
{
aLog->Log( _L(" free port\n") );
g_free ( connect_data->port );
connect_data->port = NULL;
}
//ssl_flag free
if ( connect_data->ssl_flag )
{
aLog->Log( _L(" free ssl_flag\n") );
g_free ( connect_data->ssl_flag );
connect_data->ssl_flag = NULL;
}
if ( connect_data->search_data )
{
if ( connect_data->search_data->key )
{
aLog->Log( _L(" free key\n") );
g_free ( connect_data->search_data->key );
connect_data->search_data->key = NULL;
}
if ( connect_data->search_data->value )
{
aLog->Log( _L(" free value\n") );
g_free ( connect_data->search_data->value );
connect_data->search_data->value = NULL;
}
g_free ( connect_data->search_data );
connect_data->search_data = NULL;
}
aLog->Log( _L(" free connect_data\n") );
g_free ( connect_data );
connect_data = NULL;
}
aLog->Log( _L(" free connect_data out\n") );
}
// ============================ MEMBER FUNCTIONS ===============================
// -----------------------------------------------------------------------------
// CTelepathyGabbleTest::Delete
// Delete here all resources allocated and opened from test methods.
// Called from destructor.
// -----------------------------------------------------------------------------
//
void CTelepathyGabbleTest::Delete()
{
iLog->Log( _L("CTelepathyGabbleTest::Delete in\n") );
if (iLoginObj)
{
iLog->Log( _L("In Delete iLoginObj \n") );
delete iLoginObj;
iLoginObj = NULL;
}
if (iSendMsgObj)
{
delete iSendMsgObj;
iSendMsgObj = NULL;
}
if (iAddDelContactObj)
{
delete iAddDelContactObj;
iAddDelContactObj = NULL;
}
if (iFetchContactObj)
{
delete iFetchContactObj;
iFetchContactObj = NULL;
}
if (iSearchObj)
{
delete iSearchObj;
iSearchObj = NULL;
}
if (iTestData)
{
iLog->Log( _L("In Delete iTestData \n") );
delete iTestData;
iTestData = NULL;
}
iLog->Log( _L("CTelepathyGabbleTest::Delete out\n") );
}
// -----------------------------------------------------------------------------
// CTelepathyGabbleTest::RunMethodL
// Run specified method. Contains also table of test mothods and their names.
// -----------------------------------------------------------------------------
//
TInt CTelepathyGabbleTest::RunMethodL(
CStifItemParser& aItem )
{
iLog->Log( _L("CTelepathyGabbleTest::RunMethodL in") );
static TStifFunctionInfo const KFunctions[] =
{
// Copy this line for every implemented function.
// First string is the function name used in TestScripter script file.
// Second is the actual implementation member function.
//ENTRY( "Example", CTelepathyGabbleTest::ExampleL ),
//ADD NEW ENTRY HERE
// [test cases entries] - Do not remove
//Login - Logout related test cases
ENTRY("LoginTest", CTelepathyGabbleTest::LoginTestL ),
ENTRY("LogoutTest", CTelepathyGabbleTest::LogoutTestL ),
ENTRY("LoginInvalidUseridTest", CTelepathyGabbleTest::LoginInvalidUseridTestL ),
ENTRY("LoginInvalidPasswdTest", CTelepathyGabbleTest::LoginInvalidPasswdTestL ),
ENTRY("LoginInvalidUseridPasswdTest", CTelepathyGabbleTest::LoginInvalidUseridPasswdTestL ),
ENTRY("LoginblankUseridTest", CTelepathyGabbleTest::LoginblankUseridTestL ),
ENTRY("LoginblankPasswdTest", CTelepathyGabbleTest::LoginblankPasswdTestL ),
ENTRY("LoginblankUseridblankPasswdTest", CTelepathyGabbleTest::LoginblankUseridblankPasswdTestL ),
ENTRY("LoginWithMaxLengthUserIDTest", CTelepathyGabbleTest::LoginTestL ),
ENTRY("LoginWithMinLengthUserIDTest", CTelepathyGabbleTest::LoginTestL ),
ENTRY("LoginUseridWithSplChrsTest", CTelepathyGabbleTest::LoginInvalidUseridTestL ),
ENTRY("LoginCancelTest", CTelepathyGabbleTest::LoginCancelTestL ),
//Send Message related Test Cases
ENTRY("SendMessageTest", CTelepathyGabbleTest::SendMessageTestL ),
ENTRY("SendMesasgeToMaxLengthUserIDTest", CTelepathyGabbleTest::SendMessageTestL ),
ENTRY("SendMesasgetoofflinecontactTest", CTelepathyGabbleTest::SendMessagetoinvalidUseridTestL ),
ENTRY("SendMessageWith400Test", CTelepathyGabbleTest::SendMessageWith400TestL ),
ENTRY("SendMesasgeBlankTest", CTelepathyGabbleTest::SendMesasgeBlankTestL ),
ENTRY("SendMesasgeToBlankUserIdTest", CTelepathyGabbleTest::SendMesasgeToBlankUserIdTestL ),
ENTRY("SendMesasgeSplCharsTest", CTelepathyGabbleTest::SendMessageTestL ),
ENTRY("SendMesasgeEmoticonsTest", CTelepathyGabbleTest::SendMessageTestL ),
ENTRY("SendMessageRepeatedTest",CTelepathyGabbleTest:: SendMessageRepeatedTestL),
ENTRY("SendMessagetoUserNotInContactListTest",CTelepathyGabbleTest:: SendMessageTestL),
ENTRY("SendMessagetoinvalidUseridTest",CTelepathyGabbleTest:: SendMessagetoinvalidUseridTestL),
//Receive Message related Test Cases
ENTRY("ReceiveMessageTest", CTelepathyGabbleTest::ReceiveMessageTestL ),
ENTRY("ReceiveMessageMaxLengthTest", CTelepathyGabbleTest::ReceiveMessageMaxLengthTestL ),
ENTRY("ReceiveMessageWithSplChrsTest", CTelepathyGabbleTest::ReceiveMessageTestL ),
ENTRY("ReceiveMessageWithEmoticonsTest", CTelepathyGabbleTest::ReceiveMessageTestL ),
ENTRY("ReceiveMessageBlankTest", CTelepathyGabbleTest::ReceiveMessageBlankTestL ),
ENTRY("ReceiveRepeatedMessageTest", CTelepathyGabbleTest::ReceiveRepeatedMessageTestL ),
//Add Contact related test cases
ENTRY("AddContactTest", CTelepathyGabbleTest::AddContactTestL ),
ENTRY("AddContactWithMaxLengthUserIdTest", CTelepathyGabbleTest::AddContactTestL ),
ENTRY("AddContactWithBlankUserIdTest", CTelepathyGabbleTest::AddContactWithBlankUserIdTestL ),
ENTRY("AddContactinvalidTest", CTelepathyGabbleTest::AddContactTestL ),
ENTRY("AddContactinvalidWithSplCharsTest", CTelepathyGabbleTest::AddContactTestL ),
ENTRY("AddContactAlreadyInRosterTest", CTelepathyGabbleTest::AddContactAlreadyInRosterTestL ),
//Remove Contact related test cases
ENTRY("RemoveContactTest", CTelepathyGabbleTest::RemoveContactTestL ),
ENTRY("RemoveInvalidContactTest", CTelepathyGabbleTest::RemoveInvalidContactTestL),
ENTRY("RemoveContactAlreadyRemovedTest", CTelepathyGabbleTest::RemoveInvalidContactTestL ),
ENTRY("RemoveContactWithMaxLengthUserIDTest", CTelepathyGabbleTest::RemoveContactTestL ),
ENTRY("RemoveContactWithBlankUserIdTest", CTelepathyGabbleTest::RemoveContactWithBlankUserIdTestL ),
//Fetch Contact related test cases
ENTRY("FetchContactsTest", CTelepathyGabbleTest::FetchContactsTestL ),
ENTRY("FetchZeroContactTest", CTelepathyGabbleTest::FetchContactsTestL ),
//Search related test cases
ENTRY("SearchTest", CTelepathyGabbleTest::SearchTestL ),
ENTRY("GetSearchKeysTest", CTelepathyGabbleTest::GetSearchKeysTestL ),
ENTRY("SearchInvalidKeyTest", CTelepathyGabbleTest::SearchInvalidKeyTestL ),
ENTRY("SearchNoKeyValueTest", CTelepathyGabbleTest::SearchNoKeyValueTestL ),
ENTRY("SearchTwoInvalidKeysTest", CTelepathyGabbleTest::SearchTwoInvalidKeysTestL ),
ENTRY("SearchWithAllKeysTest", CTelepathyGabbleTest::SearchWithAllKeysTestL ),
ENTRY("SearchBlankStringTest", CTelepathyGabbleTest::SearchBlankStringTestL ),
ENTRY("SearchTwiceTest", CTelepathyGabbleTest::SearchTwiceTestL ),
ENTRY("SearchTwiceWithDiffStringsTest", CTelepathyGabbleTest::SearchTwiceWithDiffStringsTestL ),
ENTRY("SearchFiveTimesTest", CTelepathyGabbleTest::SearchFiveTimesTestL ),
ENTRY("SearchAfterGetSearchKeys", CTelepathyGabbleTest::SearchAfterGetSearchKeysL ),
};
const TInt count = sizeof( KFunctions ) /
sizeof( TStifFunctionInfo );
return RunInternalL( KFunctions, count, aItem );
}
// -----------------------------------------------------------------------------
// CTelepathyGabbleTest::LoginTestL
// Test for login.
// -----------------------------------------------------------------------------
//
TInt CTelepathyGabbleTest::LoginTestL(
CStifItemParser& aItem )
{
//Pass the parameters to action_login() from the
//data mentioned in the cfg file.
iLog->Log( _L("LoginTestL starting") );
ConnectData *connect_data = NULL;
if ( read_data ( connect_data, aItem, iLog) != RC_OK )
{
//iLog->Log( _L("read_data failed") );
free_data (connect_data, iLog );
return KErrGeneral;
}
char *username, *passwd , *servername , *resource_login, *ssl_flag, *port;
char *proxy_server = NULL;
char *proxy_port = NULL;
username = connect_data->username;
passwd = connect_data->password;
servername = connect_data->server;
resource_login = connect_data->resource;
ssl_flag = connect_data->ssl_flag;
port = connect_data->port;
#ifdef __WINSCW__
proxy_server = connect_data->proxy_data->proxy_server;
proxy_port = connect_data->proxy_data->proxy_port;
#endif
iTestData = CTestData::NewL(iLog);
iLog->Log( _L("iTestData created") );
iLoginObj = CTelepathyGabbleLoginTest::NewL();
iLog->Log( _L("iLoginObj created") );
iTestData->SetTestType(CTestData::ELogin) ;
//action_login will have parameters
//passed from cfg file
TInt login_status =
iLoginObj->action_login(username,passwd,servername, resource_login,ssl_flag,
port,proxy_server, proxy_port, iTestData);
iLog->Log( _L("after action_login") );
if (login_status == CTestData::ECONNECTED)
{
//Do the logout so that all the resources are deallocated properly
login_status = iLoginObj->action_logout(iTestData);
iLog->Log( _L("after action_logout") );
free_data (connect_data, iLog);
iLog->Log( _L("after free_data") );
if (login_status != CTestData::EDISCONNECTED)
{
iLog->Log( _L("logout failed") );
return KErrGeneral; //logout didnot happen successfully.
}
//we completed login and logout successfully.
iLog->Log( _L("login-logout test case passed\n") );
if (iTestData)
{ iLog->Log( _L("delete iTestData \n") );
delete iTestData;
iTestData = NULL;
}
if (iLoginObj)
{
iLog->Log( _L("delete iLoginObj \n") );
delete iLoginObj;
iLoginObj = NULL;
}
return KErrNone;
}
else
{
//Login didnot happen successfully.
//return from here itself, no need for a logout
free_data (connect_data, iLog );
iLog->Log( _L("login test case failed") );
return KErrGeneral;
}
}
// -----------------------------------------------------------------------------
// CTelepathyGabbleTest::LoginblankUseridblankPasswdTestL
// -----------------------------------------------------------------------------
TInt CTelepathyGabbleTest::LoginblankUseridblankPasswdTestL(
CStifItemParser& aItem )
{
//Pass the parameters to action_login() from the
//data mentioned in the cfg file.
ConnectData *connect_data = NULL;
if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
{
free_data ( connect_data,iLog );
return KErrGeneral;
}
char *username, *passwd , *servername , *resource_login, *ssl_flag, *port;
char *proxy_server = NULL;
char *proxy_port = NULL;
username = ""; //make the username as blank
passwd = ""; //make the username as blank
servername = connect_data->server;
resource_login = connect_data->resource;
ssl_flag = connect_data->ssl_flag;
port = connect_data->port;
#ifdef __WINSCW__
proxy_server = connect_data->proxy_data->proxy_server;
proxy_port = connect_data->proxy_data->proxy_port;
#endif
iTestData = CTestData::NewL(iLog);
iLoginObj = CTelepathyGabbleLoginTest::NewL();
iTestData->SetTestType(CTestData::ELogin) ;
//action_login will have parameters
//passed from cfg file
TInt login_status =
iLoginObj->action_login(username,passwd,servername, resource_login, ssl_flag,
port,proxy_server, proxy_port,iTestData);
free_data (connect_data, iLog );
if (login_status == CTestData::EDISCONNECTED)
{
//login_status is disconnected(default state)
//which is correct since the username was blank.
return KErrNone;
}
else
{
//There was some error
return KErrGeneral;
}
}
// -----------------------------------------------------------------------------
// CTelepathyGabbleTest::LoginblankUseridTestL
// -----------------------------------------------------------------------------
TInt CTelepathyGabbleTest::LoginblankUseridTestL(
CStifItemParser& aItem )
{
//Pass the parameters to action_login() from the
//data mentioned in the cfg file.
ConnectData *connect_data = NULL;
if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
{
free_data ( connect_data,iLog );
return KErrGeneral;
}
char *username, *passwd , *servername , *resource_login, *ssl_flag, *port;
char *proxy_server = NULL;
char *proxy_port = NULL;
username = ""; //make the username as blank
passwd = connect_data->password;
servername = connect_data->server;
resource_login = connect_data->resource;
ssl_flag = connect_data->ssl_flag;
port = connect_data->port;
#ifdef __WINSCW__
proxy_server = connect_data->proxy_data->proxy_server;
proxy_port = connect_data->proxy_data->proxy_port;
#endif
iTestData = CTestData::NewL(iLog);
iLoginObj = CTelepathyGabbleLoginTest::NewL();
iTestData->SetTestType(CTestData::ELogin) ;
//action_login will have parameters
//passed from cfg file
TInt login_status =
iLoginObj->action_login(username,passwd,servername, resource_login, ssl_flag,
port,proxy_server, proxy_port,iTestData);
free_data (connect_data, iLog );
if (login_status == CTestData::EDISCONNECTED)
{
//login_status is disconnected(default state)
//which is correct since the username was blank.
return KErrNone;
}
else
{
//There was some error
return KErrGeneral;
}
}
// -----------------------------------------------------------------------------
// CTelepathyGabbleTest::LoginblankPasswdTestL
// -----------------------------------------------------------------------------
TInt CTelepathyGabbleTest::LoginblankPasswdTestL(
CStifItemParser& aItem )
{
//Pass the parameters to action_login() from the
//data mentioned in the cfg file.
ConnectData *connect_data = NULL;
if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
{
free_data ( connect_data, iLog );
return KErrGeneral;
}
char *username, *passwd , *servername , *resource_login,*ssl_flag, *port;
char *proxy_server = NULL;
char *proxy_port = NULL;
username = connect_data->username;
passwd = ""; //make the passwd as blank.
servername = connect_data->server;
resource_login = connect_data->resource;
ssl_flag = connect_data->ssl_flag;
port = connect_data->port;
#ifdef __WINSCW__
proxy_server = connect_data->proxy_data->proxy_server;
proxy_port = connect_data->proxy_data->proxy_port;
#endif
iTestData = CTestData::NewL(iLog);
iLoginObj = CTelepathyGabbleLoginTest::NewL();
iTestData->SetTestType(CTestData::ELogin) ;
//action_login will have parameters
//passed from cfg file
TInt login_status =
iLoginObj->action_login(username,passwd,servername, resource_login,ssl_flag,
port,proxy_server, proxy_port,iTestData);
free_data (connect_data, iLog );
if (login_status == CTestData::EDISCONNECTED)
{
//the status is disconnected which is correct since the
//login didnot happen with blank passwd.
return KErrNone;
}
else
{
return KErrGeneral;
}
}
// -----------------------------------------------------------------------------
// CTelepathyGabbleTest::LogoutTestL
// Test for logout
// -----------------------------------------------------------------------------
TInt CTelepathyGabbleTest::LogoutTestL(
CStifItemParser& aItem )
{
//Pass the parameters to action_login() from the
//data mentioned in the cfg file.
ConnectData *connect_data = NULL;
if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
{
free_data ( connect_data, iLog );
return KErrGeneral;
}
char *username, *passwd , *servername , *resource_login, *ssl_flag, *port;
char *proxy_server = NULL;
char *proxy_port = NULL;
username = connect_data->username;
passwd = connect_data->password;
servername = connect_data->server;
resource_login = connect_data->resource;
ssl_flag = connect_data->ssl_flag;
port = connect_data->port;
#ifdef __WINSCW__
proxy_server = connect_data->proxy_data->proxy_server;
proxy_port = connect_data->proxy_data->proxy_port;
#endif
iTestData = CTestData::NewL(iLog);
iLoginObj = CTelepathyGabbleLoginTest::NewL();
iTestData->SetTestType(CTestData::ELogin);
//action_login will have parameters
//passed from cfg file
TInt login_status = iLoginObj->action_login(username,passwd,servername, resource_login,ssl_flag,
port,proxy_server, proxy_port,iTestData);
if (login_status == CTestData::ECONNECTED)
{
//If the login variable is ECONNECTED
//Do the Logout
login_status = iLoginObj->action_logout(iTestData);
if (login_status == CTestData::EDISCONNECTED)
{
//the logout happened succesfully
free_data ( connect_data, iLog );
return KErrNone;
}
else
{
//login_status is still connected, there was a problem
//in logging out.
free_data ( connect_data, iLog );
return KErrGeneral;
}
}
else
{
//Login itself didnot happen.
free_data ( connect_data, iLog );
return KErrGeneral;
}
}
// -----------------------------------------------------------------------------
// CTelepathyGabbleTest::SearchAfterGetSearchKeysL
// -----------------------------------------------------------------------------
TInt CTelepathyGabbleTest::SearchAfterGetSearchKeysL( CStifItemParser& aItem )
{
TInt return_value = KErrNone;
//Pass the parameters to action_login() from the
//data mentioned in the cfg file.
//step 1: Do the login.
ConnectData *connect_data = NULL;
if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
{
free_data ( connect_data, iLog );
return KErrGeneral;
}
//for login
char *username, *passwd , *servername , *resource_login, *ssl_flag, *value, *port;
char *proxy_server = NULL;
char *proxy_port = NULL;
username = connect_data->username;
passwd = connect_data->password;
servername = connect_data->server;
resource_login = connect_data->resource;
ssl_flag = connect_data->ssl_flag;
value = connect_data->msg_data->message;
port = connect_data->port;
#ifdef __WINSCW__
proxy_server = connect_data->proxy_data->proxy_server;
proxy_port = connect_data->proxy_data->proxy_port;
#endif
if (iTestData == NULL)
{
//Create the iTestData if it is not existing.
iTestData = CTestData::NewL(iLog);
}
iTestData->SetTestType(CTestData::EGetSearchKeys);
//Create the login object
iLoginObj = CTelepathyGabbleLoginTest::NewL();
//action_login will have parameters
//passed from cfg file
TInt login_status =
iLoginObj->action_login(username,passwd,servername,
resource_login,ssl_flag,
port,proxy_server, proxy_port,
iTestData );
if (login_status == CTestData::ECONNECTED)
{
//login was successful
//Create the Object of Send Message class
iSearchObj = CTelepathyGabbleSearch::NewL();
TInt search_state = iSearchObj->GetSearchKeysL( iTestData);
if( search_state == CTestData::ESearchError )
{
return_value = KErrGeneral; //Error in finding search keys
}
else if( search_state == CTestData::ESearchKeysFound)
{
return_value = KErrNone;
GHashTable *data_to_search = NULL;
data_to_search = g_hash_table_new(g_str_hash,g_str_equal);
gchar **keys = iTestData->GetSearchKeys();
iTestData->SetTestType(CTestData::ESearch);
for(TInt i=0; i<8 ; i++ )
{
GValue *gvalue = NULL;
gvalue = g_new0(GValue, 1);
g_value_init(gvalue, G_TYPE_STRING);
g_value_set_string (gvalue, g_strdup(value) );
g_hash_table_insert( data_to_search,keys[i], gvalue);
}
search_state = iSearchObj->SearchL(data_to_search, iTestData);
if( search_state == CTestData::ESearchError )
{
return_value = KErrGeneral; //Error in Searching
}
else if( search_state == CTestData::ESearchCompleted)
{
return_value = KErrNone;
}
//Free the hash table itself
g_hash_table_destroy ( data_to_search );
}
iSearchObj->CloseChannel(iTestData);
//Do the logout
login_status = iLoginObj->action_logout(iTestData);
if (login_status != CTestData::EDISCONNECTED)
{
//logout didnot happen successfully
return_value = KErrGeneral;
}
//do this later
/*g_hash_table_foreach_remove ( data_to_search,
search_hash_remove, NULL );*/
}
else
{
//Login itself didnot happen.
return_value = KErrGeneral;
}
free_data ( connect_data, iLog );
return return_value;
}
// -----------------------------------------------------------------------------
// CTelepathyGabbleTest::SearchWithAllKeysTestL
// -----------------------------------------------------------------------------
TInt CTelepathyGabbleTest::SearchWithAllKeysTestL( CStifItemParser& aItem )
{
TInt return_value = KErrNone;
//Pass the parameters to action_login() from the
//data mentioned in the cfg file.
//step 1: Do the login.
ConnectData *connect_data = NULL;
if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
{
free_data ( connect_data, iLog );
return KErrGeneral;
}
//for login
char *username, *passwd , *servername , *resource_login, *ssl_flag, *value, *port;
char *proxy_server = NULL;
char *proxy_port = NULL;
username = connect_data->username;
passwd = connect_data->password;
servername = connect_data->server;
resource_login = connect_data->resource;
ssl_flag = connect_data->ssl_flag;
value = connect_data->msg_data->message;
port = connect_data->port;
#ifdef __WINSCW__
proxy_server = connect_data->proxy_data->proxy_server;
proxy_port = connect_data->proxy_data->proxy_port;
#endif
if (iTestData == NULL)
{
//Create the iTestData if it is not existing.
iTestData = CTestData::NewL(iLog);
}
iTestData->SetTestType(CTestData::EGetSearchKeys);
//Create the login object
iLoginObj = CTelepathyGabbleLoginTest::NewL();
//action_login will have parameters
//passed from cfg file
TInt login_status =
iLoginObj->action_login(username,passwd,servername,
resource_login,ssl_flag,
port,proxy_server, proxy_port,
iTestData );
if (login_status == CTestData::ECONNECTED)
{
//login was successful
//Create the Object of Send Message class
iSearchObj = CTelepathyGabbleSearch::NewL();
TInt search_state = iSearchObj->GetSearchKeysL( iTestData);
if( search_state == CTestData::ESearchError )
{
return_value = KErrGeneral; //Error in finding search keys
}
else if( search_state == CTestData::ESearchKeysFound)
{
return_value = KErrNone;
iTestData->SetTestType(CTestData::ESearch);
GHashTable *data_to_search = NULL;
TInt i = 0;
data_to_search = g_hash_table_new(g_str_hash,g_str_equal);
gchar **keys = iTestData->GetSearchKeys();
for( i=0; i<7 ; i++ )
{
GValue *gvalue = NULL;
gvalue = g_new0(GValue, 1);
g_value_init(gvalue, G_TYPE_STRING);
g_value_set_string (gvalue, g_strdup(value) );
g_hash_table_insert( data_to_search, keys[i], gvalue);
}
GValue *gvalue1 = NULL;
gvalue1 = g_new0(GValue, 1);
g_value_init(gvalue1, G_TYPE_STRING);
g_value_set_string (gvalue1, g_strdup("5") );
g_hash_table_insert( data_to_search,keys[i], gvalue1);
search_state = iSearchObj->SearchL(data_to_search, iTestData);
if( search_state == CTestData::ESearchError )
{
return_value = KErrGeneral; //Error in Searching
}
else if( search_state == CTestData::ESearchCompleted)
{
return_value = KErrNone;
}
//Free the hash table itself
g_hash_table_destroy ( data_to_search );
g_free(keys);
}
iSearchObj->CloseChannel(iTestData);
//Do the logout
login_status = iLoginObj->action_logout(iTestData);
if (login_status != CTestData::EDISCONNECTED)
{
//logout didnot happen successfully
return_value = KErrGeneral;
}
//do this later
/*g_hash_table_foreach_remove ( data_to_search,
search_hash_remove, NULL );*/
}
else
{
//Login itself didnot happen.
return_value = KErrGeneral;
}
free_data ( connect_data, iLog );
return return_value;
}
// -----------------------------------------------------------------------------
// CTelepathyGabbleTest::SearchBlankStringTestL
// -----------------------------------------------------------------------------
TInt CTelepathyGabbleTest::SearchBlankStringTestL(
CStifItemParser& aItem )
{
TInt return_value = KErrNone;
//Pass the parameters to action_login() from the
//data mentioned in the cfg file.
//step 1: Do the login.
ConnectData *connect_data = NULL;
if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
{
free_data ( connect_data, iLog );
return KErrGeneral;
}
//for login
char *username, *passwd , *servername , *resource_login, *ssl_flag, *port;
char *proxy_server = NULL;
char *proxy_port = NULL;
username = connect_data->username;
passwd = connect_data->password;
servername = connect_data->server;
resource_login = connect_data->resource;
ssl_flag = connect_data->ssl_flag;
port = connect_data->port;
#ifdef __WINSCW__
proxy_server = connect_data->proxy_data->proxy_server;
proxy_port = connect_data->proxy_data->proxy_port;
#endif
if (iTestData == NULL)
{
//Create the iTestData if it is not existing.
iTestData = CTestData::NewL(iLog);
}
//Create the login object
iLoginObj = CTelepathyGabbleLoginTest::NewL();
iTestData->SetTestType(CTestData::ESearch);
//action_login will have parameters
//passed from cfg file
TInt login_status =
iLoginObj->action_login(username,passwd,servername,
resource_login,ssl_flag,
port,proxy_server, proxy_port,
iTestData );
if (login_status == CTestData::ECONNECTED)
{
//login was successful
GHashTable *data_to_search = NULL;
GValue *gvalue = NULL;
char *key, *value;
key = connect_data->msg_data->recipient;
//value = connect_data->msg_data->message;
//search for blank string
value = "";
data_to_search = g_hash_table_new(g_str_hash,g_str_equal);
gvalue = g_new0(GValue, 1);
g_value_init(gvalue, G_TYPE_STRING);
g_value_set_string (gvalue, value );
g_hash_table_insert( data_to_search, key, gvalue);
//Create the Object of Send Message class
iSearchObj = CTelepathyGabbleSearch::NewL();
//call the SendMessage test case
TInt search_state = iSearchObj->SearchL(data_to_search, iTestData);
if( search_state == CTestData::ESearchError )
{
return_value = KErrGeneral; //Error in Searching
}
else if( search_state == CTestData::ESearchCompleted)
{
return_value = KErrNone;
}
iSearchObj->CloseChannel(iTestData);
//Do the logout
login_status = iLoginObj->action_logout(iTestData);
if (login_status != CTestData::EDISCONNECTED)
{
//logout didnot happen successfully
return_value = KErrGeneral;
}
//do this later
/*g_hash_table_foreach_remove ( data_to_search,
search_hash_remove, NULL );*/
//Free the hash table itself
g_hash_table_destroy ( data_to_search );
}
else
{
//Login itself didnot happen.
return_value = KErrGeneral;
}
free_data ( connect_data, iLog );
return return_value;
}
// -----------------------------------------------------------------------------
// CTelepathyGabbleTest::SearchTestL
// -----------------------------------------------------------------------------
TInt CTelepathyGabbleTest::SearchTestL(
CStifItemParser& aItem )
{
TInt return_value = KErrNone;
//Pass the parameters to action_login() from the
//data mentioned in the cfg file.
//step 1: Do the login.
ConnectData *connect_data = NULL;
if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
{
free_data ( connect_data, iLog );
return KErrGeneral;
}
//for login
char *username, *passwd , *servername , *resource_login, *ssl_flag, *port;
char *proxy_server = NULL;
char *proxy_port = NULL;
username = connect_data->username;
passwd = connect_data->password;
servername = connect_data->server;
resource_login = connect_data->resource;
ssl_flag = connect_data->ssl_flag;
port = connect_data->port;
#ifdef __WINSCW__
proxy_server = connect_data->proxy_data->proxy_server;
proxy_port = connect_data->proxy_data->proxy_port;
#endif
if (iTestData == NULL)
{
//Create the iTestData if it is not existing.
iTestData = CTestData::NewL(iLog);
}
iTestData->SetTestType(CTestData::ESearch);
//Create the login object
iLoginObj = CTelepathyGabbleLoginTest::NewL();
//action_login will have parameters
//passed from cfg file
TInt login_status =
iLoginObj->action_login(username,passwd,servername,
resource_login,ssl_flag,
port,proxy_server, proxy_port,
iTestData );
if (login_status == CTestData::ECONNECTED)
{
//login was successful
GHashTable *data_to_search = NULL;
GValue *gvalue = NULL;
char *key, *value;
key = connect_data->msg_data->recipient;
value = connect_data->msg_data->message;
data_to_search = g_hash_table_new(g_str_hash,g_str_equal);
gvalue = g_new0(GValue, 1);
g_value_init(gvalue, G_TYPE_STRING);
g_value_set_string (gvalue, value );
g_hash_table_insert( data_to_search, GetSearchLabelL(servername,key), gvalue);
//Create the Object of Send Message class
iSearchObj = CTelepathyGabbleSearch::NewL();
//call the SendMessage test case
TInt search_state = iSearchObj->SearchL(data_to_search, iTestData);
if( search_state == CTestData::ESearchError )
{
return_value = KErrGeneral; //Error in Searching
}
else if( search_state == CTestData::ESearchCompleted)
{
return_value = KErrNone;
}
iSearchObj->CloseChannel(iTestData);
//Do the logout
login_status = iLoginObj->action_logout(iTestData);
if (login_status != CTestData::EDISCONNECTED)
{
//logout didnot happen successfully
return_value = KErrGeneral;
}
//do this later
/*g_hash_table_foreach_remove ( data_to_search,
search_hash_remove, NULL );*/
//Free the hash table itself
g_hash_table_destroy ( data_to_search );
}
else
{
//Login itself didnot happen.
return_value = KErrGeneral;
}
free_data ( connect_data, iLog );
return return_value;
}
// -----------------------------------------------------------------------------
// CTelepathyGabbleTest::SearchTwoInvalidKeysTestL
// -----------------------------------------------------------------------------
TInt CTelepathyGabbleTest::SearchTwoInvalidKeysTestL(
CStifItemParser& aItem )
{
TInt return_value = KErrNone;
//Pass the parameters to action_login() from the
//data mentioned in the cfg file.
//step 1: Do the login.
ConnectData *connect_data = NULL;
if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
{
free_data ( connect_data, iLog );
return KErrGeneral;
}
//for login
char *username, *passwd , *servername , *resource_login, *ssl_flag, *port;
char *proxy_server = NULL;
char *proxy_port = NULL;
username = connect_data->username;
passwd = connect_data->password;
servername = connect_data->server;
resource_login = connect_data->resource;
ssl_flag = connect_data->ssl_flag;
port = connect_data->port;
#ifdef __WINSCW__
proxy_server = connect_data->proxy_data->proxy_server;
proxy_port = connect_data->proxy_data->proxy_port;
#endif
if (iTestData == NULL)
{
//Create the iTestData if it is not existing.
iTestData = CTestData::NewL(iLog);
}
iTestData->SetTestType(CTestData::ESearch);
//Create the login object
iLoginObj = CTelepathyGabbleLoginTest::NewL();
//action_login will have parameters
//passed from cfg file
TInt login_status =
iLoginObj->action_login(username,passwd,servername,
resource_login,ssl_flag,
port,proxy_server, proxy_port,
iTestData );
if (login_status == CTestData::ECONNECTED)
{
//login was successful
GHashTable *data_to_search = NULL;
GValue *gvalue1, *gvalue2 ;
char *key1,*key2, *value1, *value2;
key1 = connect_data->msg_data->recipient;
value1 = connect_data->msg_data->message;
key2 = connect_data->search_data->key;
value2 = connect_data->search_data->value;
data_to_search = g_hash_table_new(g_str_hash,g_str_equal);
gvalue1 = g_new0(GValue, 1);
g_value_init(gvalue1, G_TYPE_STRING);
g_value_set_string (gvalue1, value1 );
g_hash_table_insert( data_to_search, GetSearchLabelL(servername,key1), gvalue1);
gvalue2 = g_new0(GValue, 1);
g_value_init(gvalue2, G_TYPE_STRING);
g_value_set_string (gvalue2, value2 );
g_hash_table_insert( data_to_search, GetSearchLabelL(servername,key2), gvalue2);
//Create the Object of Send Message class
iSearchObj = CTelepathyGabbleSearch::NewL();
//call the SendMessage test case
TInt search_state = iSearchObj->SearchL(data_to_search, iTestData);
if( search_state == CTestData::ESearchError )
{
//Error in Searching,
//as one of the search key passed is wrong
return_value = KErrNone;
}
else
{
return_value = KErrGeneral;
}
iSearchObj->CloseChannel(iTestData);
//Do the logout
login_status = iLoginObj->action_logout(iTestData);
if (login_status != CTestData::EDISCONNECTED)
{
//logout didnot happen successfully
return_value = KErrGeneral;
}
//do this later
/*g_hash_table_foreach_remove ( data_to_search,
search_hash_remove, NULL );*/
//Free the hash table itself
g_hash_table_destroy ( data_to_search );
}
else
{
//Login itself didnot happen.
return_value = KErrGeneral;
}
free_data ( connect_data, iLog );
return return_value;
}
// -----------------------------------------------------------------------------
// CTelepathyGabbleTest::SearchTwiceWithDiffStringsTestL
// -----------------------------------------------------------------------------
TInt CTelepathyGabbleTest::SearchTwiceWithDiffStringsTestL(
CStifItemParser& aItem )
{
TInt return_value = KErrNone;
//Pass the parameters to action_login() from the
//data mentioned in the cfg file.
//step 1: Do the login.
ConnectData *connect_data = NULL;
if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
{
free_data ( connect_data, iLog );
return KErrGeneral;
}
//for login
char *username, *passwd , *servername , *resource_login, *ssl_flag, *port;
char *proxy_server = NULL;
char *proxy_port = NULL;
username = connect_data->username;
passwd = connect_data->password;
servername = connect_data->server;
resource_login = connect_data->resource;
ssl_flag = connect_data->ssl_flag;
port = connect_data->port;
#ifdef __WINSCW__
proxy_server = connect_data->proxy_data->proxy_server;
proxy_port = connect_data->proxy_data->proxy_port;
#endif
if (iTestData == NULL)
{
//Create the iTestData if it is not existing.
iTestData = CTestData::NewL(iLog);
}
iTestData->SetTestType(CTestData::ESearch);
//Create the login object
iLoginObj = CTelepathyGabbleLoginTest::NewL();
//action_login will have parameters
//passed from cfg file
TInt login_status =
iLoginObj->action_login(username,passwd,servername,
resource_login,ssl_flag,
port,proxy_server, proxy_port,
iTestData );
if (login_status == CTestData::ECONNECTED)
{
//login was successful
GHashTable *data_to_search_first = NULL;
GHashTable *data_to_search_second = NULL;
GValue *gvalue1, *gvalue2 ;
char *key1,*value1, *key2, *value2;
key1 = connect_data->msg_data->recipient;
value1 = connect_data->msg_data->message;
key2 = connect_data->search_data->key;
value2 = connect_data->search_data->value;
data_to_search_first = g_hash_table_new(g_str_hash,g_str_equal);
data_to_search_second = g_hash_table_new(g_str_hash,g_str_equal);
gvalue1 = g_new0(GValue, 1);
g_value_init(gvalue1, G_TYPE_STRING);
g_value_set_string (gvalue1, value1 );
g_hash_table_insert( data_to_search_first, GetSearchLabelL(servername,key1), gvalue1);
gvalue2 = g_new0(GValue, 1);
g_value_init(gvalue2, G_TYPE_STRING);
g_value_set_string (gvalue2, value2 );
g_hash_table_insert( data_to_search_second, GetSearchLabelL(servername,key2), gvalue2);
//Create the Object of Send Message class
iSearchObj = CTelepathyGabbleSearch::NewL();
//call the SendMessage test case
TInt search_state = iSearchObj->SearchL(data_to_search_first, iTestData);
if( search_state == CTestData::ESearchError)
{
return_value = KErrGeneral;
}
else
{
search_state = iSearchObj->SearchL(data_to_search_second, iTestData);
if( search_state == CTestData::ESearchError )
{
return_value = KErrGeneral; //Error in Searching
}
}
iSearchObj->CloseChannel(iTestData);
//Do the logout
login_status = iLoginObj->action_logout(iTestData);
if (login_status != CTestData::EDISCONNECTED)
{
//logout didnot happen successfully
return_value = KErrGeneral;
}
//do this later
/*g_hash_table_foreach_remove ( data_to_search,
search_hash_remove, NULL );*/
//Free the hash table itself
g_hash_table_destroy ( data_to_search_first );
g_hash_table_destroy ( data_to_search_second );
}
else
{
//Login itself didnot happen.
return_value = KErrGeneral;
}
free_data ( connect_data, iLog );
return return_value;
}
// -----------------------------------------------------------------------------
// CTelepathyGabbleTest::SearchNoKeyValueTestL
// -----------------------------------------------------------------------------
TInt CTelepathyGabbleTest::SearchNoKeyValueTestL(
CStifItemParser& aItem )
{
TInt return_value = KErrNone;
//Pass the parameters to action_login() from the
//data mentioned in the cfg file.
//step 1: Do the login.
ConnectData *connect_data = NULL;
if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
{
free_data ( connect_data, iLog );
return KErrGeneral;
}
//for login
char *username, *passwd , *servername , *resource_login, *ssl_flag, *port;
char *proxy_server = NULL;
char *proxy_port = NULL;
username = connect_data->username;
passwd = connect_data->password;
servername = connect_data->server;
resource_login = connect_data->resource;
ssl_flag = connect_data->ssl_flag;
port = connect_data->port;
#ifdef __WINSCW__
proxy_server = connect_data->proxy_data->proxy_server;
proxy_port = connect_data->proxy_data->proxy_port;
#endif
if (iTestData == NULL)
{
//Create the iTestData if it is not existing.
iTestData = CTestData::NewL(iLog);
}
iTestData->SetTestType(CTestData::ESearch);
//Create the login object
iLoginObj = CTelepathyGabbleLoginTest::NewL();
//action_login will have parameters
//passed from cfg file
TInt login_status =
iLoginObj->action_login(username,passwd,servername,
resource_login,ssl_flag,
port,proxy_server, proxy_port,
iTestData );
if (login_status == CTestData::ECONNECTED)
{
//login was successful
GHashTable *data_to_search = NULL;
data_to_search = g_hash_table_new(g_str_hash,g_str_equal);
//Create the Object of Send Message class
iSearchObj = CTelepathyGabbleSearch::NewL();
//call the SendMessage test case
TInt search_state = iSearchObj->SearchL(data_to_search, iTestData);
if( search_state == CTestData::ESearchError )
{
//Error in Searching,
//as one of the search key passed is wrong
return_value = KErrNone;
}
else
{
return_value = KErrGeneral;
}
iSearchObj->CloseChannel(iTestData);
//Do the logout
login_status = iLoginObj->action_logout(iTestData);
if (login_status != CTestData::EDISCONNECTED)
{
//logout didnot happen successfully
return_value = KErrGeneral;
}
//do this later
/*g_hash_table_foreach_remove ( data_to_search,
search_hash_remove, NULL );*/
//Free the hash table itself
g_hash_table_destroy ( data_to_search );
}
else
{
//Login itself didnot happen.
return_value = KErrGeneral;
}
free_data ( connect_data, iLog );
return return_value;
}
// -----------------------------------------------------------------------------
// CTelepathyGabbleTest::SearchInvalidKeyTest
// -----------------------------------------------------------------------------
TInt CTelepathyGabbleTest::SearchInvalidKeyTestL(
CStifItemParser& aItem )
{
TInt return_value = KErrNone;
//Pass the parameters to action_login() from the
//data mentioned in the cfg file.
//step 1: Do the login.
ConnectData *connect_data = NULL;
if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
{
free_data ( connect_data, iLog );
return KErrGeneral;
}
//for login
char *username, *passwd , *servername , *resource_login, *ssl_flag, *port;
char *proxy_server = NULL;
char *proxy_port = NULL;
username = connect_data->username;
passwd = connect_data->password;
servername = connect_data->server;
resource_login = connect_data->resource;
ssl_flag = connect_data->ssl_flag;
port = connect_data->port;
#ifdef __WINSCW__
proxy_server = connect_data->proxy_data->proxy_server;
proxy_port = connect_data->proxy_data->proxy_port;
#endif
if (iTestData == NULL)
{
//Create the iTestData if it is not existing.
iTestData = CTestData::NewL(iLog);
}
iTestData->SetTestType(CTestData::ESearch);
//Create the login object
iLoginObj = CTelepathyGabbleLoginTest::NewL();
//action_login will have parameters
//passed from cfg file
TInt login_status =
iLoginObj->action_login(username,passwd,servername,
resource_login,ssl_flag,
port,proxy_server, proxy_port,
iTestData );
if (login_status == CTestData::ECONNECTED)
{
//login was successful
GHashTable *data_to_search = NULL;
GValue *gvalue = NULL;
char *key, *value;
key = connect_data->msg_data->recipient;
value = connect_data->msg_data->message;
data_to_search = g_hash_table_new(g_str_hash,g_str_equal);
gvalue = g_new0(GValue, 1);
g_value_init(gvalue, G_TYPE_STRING);
g_value_set_string (gvalue, value );
//ivalid search key..label has to be passed so no need to pass label
g_hash_table_insert( data_to_search, key, gvalue);
//Create the Object of Send Message class
iSearchObj = CTelepathyGabbleSearch::NewL();
//call the SendMessage test case
TInt search_state = iSearchObj->SearchL(data_to_search, iTestData);
if( search_state == CTestData::ESearchError )
{
//Error in Searching,
//as one of the search key passed is wrong
return_value = KErrNone;
}
else
{
return_value = KErrGeneral;
}
iSearchObj->CloseChannel(iTestData);
//Do the logout
login_status = iLoginObj->action_logout(iTestData);
if (login_status != CTestData::EDISCONNECTED)
{
//logout didnot happen successfully
return_value = KErrGeneral;
}
//do this later
/*g_hash_table_foreach_remove ( data_to_search,
search_hash_remove, NULL );*/
//Free the hash table itself
g_hash_table_destroy ( data_to_search );
}
else
{
//Login itself didnot happen.
return_value = KErrGeneral;
}
free_data (connect_data, iLog );
return return_value;
}
// -----------------------------------------------------------------------------
// CTelepathyGabbleTest::GetSearchKeysTestL
// -----------------------------------------------------------------------------
TInt CTelepathyGabbleTest::GetSearchKeysTestL(
CStifItemParser& aItem )
{
TInt return_value = KErrNone;
//Pass the parameters to action_login() from the
//data mentioned in the cfg file.
//step 1: Do the login.
ConnectData *connect_data = NULL;
if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
{
free_data (connect_data, iLog );
return KErrGeneral;
}
//for login
char *username, *passwd , *servername , *resource_login, *ssl_flag, *port;
char *proxy_server = NULL;
char *proxy_port = NULL;
username = connect_data->username;
passwd = connect_data->password;
servername = connect_data->server;
resource_login = connect_data->resource;
ssl_flag = connect_data->ssl_flag;
port = connect_data->port;
#ifdef __WINSCW__
proxy_server = connect_data->proxy_data->proxy_server;
proxy_port = connect_data->proxy_data->proxy_port;
#endif
if (iTestData == NULL)
{
//Create the iTestData if it is not existing.
iTestData = CTestData::NewL(iLog);
}
iTestData->SetTestType(CTestData::EGetSearchKeys);
//Create the login object
iLoginObj = CTelepathyGabbleLoginTest::NewL();
//action_login will have parameters
//passed from cfg file
TInt login_status =
iLoginObj->action_login(username,passwd,servername,
resource_login,ssl_flag,
port,proxy_server, proxy_port,
iTestData );
if (login_status == CTestData::ECONNECTED)
{
//login was successful
//Create the Object of Send Message class
iSearchObj = CTelepathyGabbleSearch::NewL();
TInt search_state = iSearchObj->GetSearchKeysL( iTestData);
if( search_state == CTestData::ESearchError )
{
return_value = KErrGeneral; //Error in Searching
}
else if( search_state == CTestData::ESearchKeysFound)
{
return_value = KErrNone;
}
iSearchObj->CloseChannel(iTestData);
//Do the logout
login_status = iLoginObj->action_logout(iTestData);
if (login_status != CTestData::EDISCONNECTED)
{
//logout didnot happen successfully
return_value = KErrGeneral;
}
}
else
{
//Login itself didnot happen.
return_value = KErrGeneral;
}
free_data (connect_data, iLog );
return return_value;
}
// -----------------------------------------------------------------------------
// CTelepathyGabbleTest::SendMessageTestL
// -----------------------------------------------------------------------------
TInt CTelepathyGabbleTest::SendMessageTestL(
CStifItemParser& aItem )
{
TInt return_value = KErrNone;
//Pass the parameters to action_login() from the
//data mentioned in the cfg file.
//step 1: Do the login.
ConnectData *connect_data = NULL;
if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
{
free_data (connect_data, iLog );
return KErrGeneral;
}
//for login
char *username, *passwd , *servername , *resource_login, *ssl_flag, *port;
char *proxy_server = NULL;
char *proxy_port = NULL;
username = connect_data->username;
passwd = connect_data->password;
servername = connect_data->server;
resource_login = connect_data->resource;
ssl_flag = connect_data->ssl_flag;
port = connect_data->port;
#ifdef __WINSCW__
proxy_server = connect_data->proxy_data->proxy_server;
proxy_port = connect_data->proxy_data->proxy_port;
#endif
if (iTestData == NULL)
{
//Create the iTestData if it is not existing.
iTestData = CTestData::NewL(iLog);
}
iTestData->SetTestType(CTestData::ESend);
//Create the login object
iLoginObj = CTelepathyGabbleLoginTest::NewL();
//action_login will have parameters
//passed from cfg file
TInt login_status =
iLoginObj->action_login(username,passwd,servername,
resource_login,ssl_flag,
port,proxy_server, proxy_port,
iTestData );
if (login_status == CTestData::ECONNECTED)
{
//login was successful
//Send a message
//for sending a message
char *recipient_id, *msg;
recipient_id = connect_data->msg_data->recipient;
msg = connect_data->msg_data->message;
//Create the Object of Send Message class
iSendMsgObj = CTelepathyGabbleSendRecvMessage::NewL();
//call the SendMessage test case
TInt sendmsg_state = iSendMsgObj->SendMessage(recipient_id,msg,iTestData);
if( sendmsg_state == CTestData::EMessageNotSent )
{
return_value = KErrGeneral; //Error in Sending message
}
else if( sendmsg_state == CTestData::EMessageSendErr )
{
// error was not expected
return_value = KErrGeneral;
}
else if( sendmsg_state == CTestData::EMessageSent )
{
//If message sent to invalid userid or blank userid, state should EMessageSendErr
// This is used in case of SendMessagetoinvalidUseridTestL
return_value = KErrNone;
}
//Do the logout
login_status = iLoginObj->action_logout(iTestData);
if (login_status != CTestData::EDISCONNECTED)
{
//logout didnot happen successfully
return_value = KErrGeneral;
}
}
else
{
//Login itself didnot happen.
return_value = KErrGeneral;
}
free_data (connect_data, iLog );
return return_value;
}
// -----------------------------------------------------------------------------
// CTelepathyGabbleTest::SendMessageRepeatedTestL
// -----------------------------------------------------------------------------
TInt CTelepathyGabbleTest::SendMessageRepeatedTestL(
CStifItemParser& aItem )
{
TInt return_value = KErrNone;
//Pass the parameters to action_login() from the
//data mentioned in the cfg file.
//step 1: Do the login.
ConnectData *connect_data = NULL;
if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
{
free_data (connect_data, iLog );
return KErrGeneral;
}
//for login
char *username, *passwd , *servername , *resource_login, *ssl_flag, *port;
char *proxy_server = NULL;
char *proxy_port = NULL;
username = connect_data->username;
passwd = connect_data->password;
servername = connect_data->server;
resource_login = connect_data->resource;
ssl_flag = connect_data->ssl_flag;
port = connect_data->port;
#ifdef __WINSCW__
proxy_server = connect_data->proxy_data->proxy_server;
proxy_port = connect_data->proxy_data->proxy_port;
#endif
if (iTestData == NULL)
{
//Create the iTestData if it is not existing.
iTestData = CTestData::NewL(iLog);
}
iTestData->SetTestType(CTestData::ESend);
//Create the login object
iLoginObj = CTelepathyGabbleLoginTest::NewL();
//action_login will have parameters
//passed from cfg file
TInt login_status =
iLoginObj->action_login(username,passwd,servername,
resource_login,ssl_flag,
port,proxy_server, proxy_port,
iTestData );
if (login_status == CTestData::ECONNECTED)
{
//login was successful
//Send a message
//for sending a message
char *recipient_id, *msg;
recipient_id = connect_data->msg_data->recipient;
msg = connect_data->msg_data->message;
//Create the Object of Send Message class
iSendMsgObj = CTelepathyGabbleSendRecvMessage::NewL();
//call the SendMessage test case
TInt sendmsg_state = CTestData::EMessageNotSent;
for( TInt cnt =0 ; cnt < KRepeatedMessageCount ; cnt++ )
{
sendmsg_state = iSendMsgObj->SendMessage(recipient_id,msg,iTestData);
if( sendmsg_state != CTestData::EMessageSent )
{
return_value = KErrGeneral; //Error in Sending message
break;
}
}
//Do the logout
login_status = iLoginObj->action_logout(iTestData);
if (login_status != CTestData::EDISCONNECTED)
{
//logout didnot happen successfully
return_value = KErrGeneral;
}
}
else
{
//Login itself didnot happen.
return_value = KErrGeneral;
}
free_data (connect_data, iLog );
return return_value;
}
// -----------------------------------------------------------------------------
// CTelepathyGabbleTest::ReceiveRepeatedMessageTestL
// Test for login.
// -----------------------------------------------------------------------------
TInt CTelepathyGabbleTest::ReceiveRepeatedMessageTestL(
CStifItemParser& aItem )
{
TInt return_value = KErrNone;
//Pass the parameters to action_login() from the
//data mentioned in the cfg file.
//step 1: Do the login.
ConnectData *connect_data = NULL;
if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
{
free_data (connect_data, iLog );
return KErrGeneral;
}
//for login
char *username, *passwd , *servername , *resource_login,*ssl_flag, *port;
char *proxy_server = NULL;
char *proxy_port = NULL;
username = connect_data->username;
passwd = connect_data->password;
servername = connect_data->server;
resource_login = connect_data->resource;
ssl_flag = connect_data->ssl_flag;
port = connect_data->port;
#ifdef __WINSCW__
proxy_server = connect_data->proxy_data->proxy_server;
proxy_port = connect_data->proxy_data->proxy_port;
#endif
iTestData = CTestData::NewL(iLog);
iTestData->SetTestType(CTestData::EReceive);
//Create the login object
iLoginObj = CTelepathyGabbleLoginTest::NewL();
//action_login will have parameters
//passed from cfg file
TInt login_status =
iLoginObj->action_login(username,passwd,
servername, resource_login,ssl_flag,
port,proxy_server, proxy_port,
iTestData);
if (login_status == CTestData::ECONNECTED)
{
//Get the contact_id and the message.
char *recipient_id, *msg;
recipient_id = connect_data->msg_data->recipient;
msg = connect_data->msg_data->message;
//Do the receive message test case
//Create the Object of Send Message class
iSendMsgObj = CTelepathyGabbleSendRecvMessage::NewL();
TInt recvmsg_state = CTestData::EMessageNotSent;
for( TInt cnt =0 ; cnt < KRepeatedMessageCount ; cnt++ )
{
iTestData->SetSendRecvMsgState(CTestData::EMessageNotSent);
recvmsg_state = iSendMsgObj->ReceiveMessage(recipient_id,msg,iTestData);
if( recvmsg_state != CTestData::EMessageRecvd )
{
return_value = KErrGeneral;
break;
}
}
//do the logout and the cleanup
login_status = iLoginObj->action_logout(iTestData);
if (login_status != CTestData::EDISCONNECTED)
{
//logout didnot happen successfully
return_value = KErrGeneral;
}
}
else
{
//login didnot happen successfully
return_value = KErrGeneral;
}
free_data (connect_data, iLog );
return return_value;
}
// -----------------------------------------------------------------------------
// CTelepathyGabbleTest::ReceiveMessageTestL
// Test for login.
// -----------------------------------------------------------------------------
TInt CTelepathyGabbleTest::ReceiveMessageTestL(
CStifItemParser& aItem )
{
TInt return_value = KErrNone;
//Pass the parameters to action_login() from the
//data mentioned in the cfg file.
//step 1: Do the login.
ConnectData *connect_data = NULL;
if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
{
free_data (connect_data, iLog );
return KErrGeneral;
}
//for login
char *username, *passwd , *servername , *resource_login,*ssl_flag, *port;
char *proxy_server = NULL;
char *proxy_port = NULL;
username = connect_data->username;
passwd = connect_data->password;
servername = connect_data->server;
resource_login = connect_data->resource;
ssl_flag = connect_data->ssl_flag;
port = connect_data->port;
#ifdef __WINSCW__
proxy_server = connect_data->proxy_data->proxy_server;
proxy_port = connect_data->proxy_data->proxy_port;
#endif
iTestData = CTestData::NewL(iLog);
iTestData->SetTestType(CTestData::EReceive);
//Create the login object
iLoginObj = CTelepathyGabbleLoginTest::NewL();
//action_login will have parameters
//passed from cfg file
TInt login_status =
iLoginObj->action_login(username,passwd,
servername, resource_login,ssl_flag,
port,proxy_server, proxy_port,
iTestData);
if (login_status == CTestData::ECONNECTED)
{
//Get the contact_id and the message.
char *recipient_id, *msg;
recipient_id = connect_data->msg_data->recipient;
msg = connect_data->msg_data->message;
iLog->Log( _L("ReceiveMessageTestL:: Logged In \n") );
//Do the receive message test case
//Create the Object of Send Message class
iSendMsgObj = CTelepathyGabbleSendRecvMessage::NewL();
TInt recvmsg_state = iSendMsgObj->ReceiveMessage(recipient_id,msg,iTestData);
if( recvmsg_state != CTestData::EMessageRecvd )
{
iLog->Log( _L("ReceiveMessageTestL:: receive Error \n") );
return_value = KErrGeneral;
}
//do the logout and the cleanup
login_status = iLoginObj->action_logout(iTestData);
if (login_status != CTestData::EDISCONNECTED)
{
iLog->Log( _L("ReceiveMessageTestL:: Logout Error \n") );
//logout didnot happen successfully
return_value = KErrGeneral;
}
}
else
{
//login didnot happen successfully
return_value = KErrGeneral;
}
free_data (connect_data, iLog );
return return_value;
}
// -----------------------------------------------------------------------------
// CTelepathyGabbleTest::ReceiveMessageBlankTestL
// Test for login.
// -----------------------------------------------------------------------------
TInt CTelepathyGabbleTest::ReceiveMessageBlankTestL(
CStifItemParser& aItem )
{
TInt return_value = KErrNone;
//Pass the parameters to action_login() from the
//data mentioned in the cfg file.
//step 1: Do the login.
ConnectData *connect_data = NULL;
if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
{
free_data (connect_data, iLog );
return KErrGeneral;
}
//for login
char *username, *passwd , *servername , *resource_login,*ssl_flag, *port;
char *proxy_server = NULL;
char *proxy_port = NULL;
username = connect_data->username;
passwd = connect_data->password;
servername = connect_data->server;
resource_login = connect_data->resource;
ssl_flag = connect_data->ssl_flag;
port = connect_data->port;
#ifdef __WINSCW__
proxy_server = connect_data->proxy_data->proxy_server;
proxy_port = connect_data->proxy_data->proxy_port;
#endif
iTestData = CTestData::NewL(iLog);
iTestData->SetTestType(CTestData::ERecvBlank);
//Create the login object
iLoginObj = CTelepathyGabbleLoginTest::NewL();
//action_login will have parameters
//passed from cfg file
TInt login_status =
iLoginObj->action_login(username,passwd,
servername, resource_login,ssl_flag,
port,proxy_server, proxy_port,
iTestData);
if (login_status == CTestData::ECONNECTED)
{
iLog->Log( _L("ReceiveMessageBlankTestL:: Logged In \n") );
//Get the contact_id and the message.
char *recipient_id, *msg;
recipient_id = connect_data->msg_data->recipient;
msg = connect_data->msg_data->message;
//Set the message to blamk string
msg = "";
//Do the receive message test case
//Create the Object of Send Message class
iSendMsgObj = CTelepathyGabbleSendRecvMessage::NewL();
TInt recvmsg_state = iSendMsgObj->ReceiveMessage(recipient_id,msg,iTestData);
if( recvmsg_state == CTestData::EMessageNotSent )
{
iLog->Log( _L("ReceiveMessageBlankTestL:: EMESSAGE_NOT_SENT \n") );
return_value = KErrNone; //Error in Sending message
}
iLog->Log( _L("ReceiveMessageBlankTestL:: b4 action_logout \n") );
//do the logout and the cleanup
login_status = iLoginObj->action_logout(iTestData);
if (login_status != CTestData::EDISCONNECTED)
{
iLog->Log( _L("ReceiveMessageBlankTestL:: logout error \n") );
//logout didnot happen successfully
return_value = KErrGeneral;
}
}
else
{
//login didnot happen successfully
return_value = KErrGeneral;
}
free_data (connect_data, iLog );
return return_value;
}
// -----------------------------------------------------------------------------
// CTelepathyGabbleTest::ReceiveMessageMaxLengthTestL
// Test for login.
// -----------------------------------------------------------------------------
TInt CTelepathyGabbleTest::ReceiveMessageMaxLengthTestL(
CStifItemParser& aItem )
{
TInt return_value = KErrNone;
//Pass the parameters to action_login() from the
//data mentioned in the cfg file.
//step 1: Do the login.
ConnectData *connect_data = NULL;
if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
{
free_data (connect_data, iLog );
return KErrGeneral;
}
//for login
char *username, *passwd , *servername , *resource_login,*ssl_flag, *port;
char *proxy_server = NULL;
char *proxy_port = NULL;
username = connect_data->username;
passwd = connect_data->password;
servername = connect_data->server;
resource_login = connect_data->resource;
ssl_flag = connect_data->ssl_flag;
port = connect_data->port;
#ifdef __WINSCW__
proxy_server = connect_data->proxy_data->proxy_server;
proxy_port = connect_data->proxy_data->proxy_port;
#endif
iTestData = CTestData::NewL(iLog);
iTestData->SetTestType(CTestData::EReceive);
//Create the login object
iLoginObj = CTelepathyGabbleLoginTest::NewL();
//action_login will have parameters
//passed from cfg file
TInt login_status =
iLoginObj->action_login(username,passwd,
servername, resource_login,ssl_flag,
port,proxy_server, proxy_port,
iTestData);
if (login_status == CTestData::ECONNECTED)
{
//Get the contact_id and the message.
char *recipient_id;
//char *msg;
recipient_id = connect_data->msg_data->recipient;
// msg = connect_data->msg_data->message; //not required
//Set the message to maxlength string( with 400 chars)
char *max_len_msg = {"abcdefghijklmnopqrstuvwxyzabcd \
abcdefghijklmnopqrstuvwxyzabcd \
abcdefghijklmnopqrstuvwxyzabcd \
abcdefghijklmnopqrstuvwxyzabcd \
abcdefghijklmnopqrstuvwxyzabcd \
abcdefghijklmnopqrstuvwxyzabcd \
abcdefghijklmnopqrstuvwxyzabcd \
abcdefghijklmnopqrstuvwxyzabcd \
abcdefghijklmnopqrstuvwxyzabcd \
abcdefghijklmnopqrstuvwxyzabcd \
abcdefghijklmnopqrstuvwxyzabcd \
abcdefghijklmnopqrstuvwxyzabcd \
abcdefghijklmnopqrstuvwxyzabcd \
abcdefghij"};
//Do the receive message test case
//Create the Object of Send Message class
iSendMsgObj = CTelepathyGabbleSendRecvMessage::NewL();
TInt recvmsg_state = iSendMsgObj->ReceiveMessage(recipient_id,max_len_msg,iTestData);
if( recvmsg_state != CTestData::EMessageRecvd )
{
return_value = KErrGeneral;
}
//do the logout and the cleanup
login_status = iLoginObj->action_logout(iTestData);
if (login_status != CTestData::EDISCONNECTED)
{
//logout didnot happen successfully
return_value = KErrGeneral;
}
}
else
{
//login didnot happen successfully
return_value = KErrGeneral;
}
free_data (connect_data, iLog );
return return_value;
}
// -----------------------------------------------------------------------------
// CTelepathyGabbleTest::LoginCancelTestL
// Test for Cancelling the login.
// -----------------------------------------------------------------------------
TInt CTelepathyGabbleTest::LoginCancelTestL(
CStifItemParser& aItem )
{
//Pass the parameters to action_login() from the
//data mentioned in the cfg file.
ConnectData *connect_data = NULL;
if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
{
free_data (connect_data, iLog );
return KErrGeneral;
}
char *username, *passwd , *servername , *resource_login, *ssl_flag, *port;
char *proxy_server = NULL;
char *proxy_port = NULL;
username = connect_data->username;
passwd = connect_data->password;
servername = connect_data->server;
resource_login = connect_data->resource;
ssl_flag = connect_data->ssl_flag;
port = connect_data->port;
#ifdef __WINSCW__
proxy_server = connect_data->proxy_data->proxy_server;
proxy_port = connect_data->proxy_data->proxy_port;
#endif
iTestData = CTestData::NewL(iLog);
iLoginObj = CTelepathyGabbleLoginTest::NewL();
//action_login will have parameters
//passed from cfg file
TInt login_status =
iLoginObj->action_cancel(username,passwd,
servername, resource_login,ssl_flag,
port,proxy_server, proxy_port,
iTestData );
free_data (connect_data, iLog );
if (login_status == CTestData::EDISCONNECTED )
{
//i.e the login didnot happen successfully
//which is correct, since this is a cancel test case.
return KErrNone;
}
return KErrGeneral; //login status must be disconnceted else an error
}
// -----------------------------------------------------------------------------
// CTelepathyGabbleTest::LoginInvalidUseridTestL
// Test for login.
// -----------------------------------------------------------------------------
TInt CTelepathyGabbleTest::LoginInvalidUseridTestL( CStifItemParser& aItem )
{
//Pass the parameters to action_login() from the
//data mentioned in the cfg file.
ConnectData *connect_data = NULL;
if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
{
free_data (connect_data, iLog );
return KErrGeneral;
}
char *username, *passwd , *servername , *resource_login, *ssl_flag, *port;
char *proxy_server = NULL;
char *proxy_port = NULL;
username = connect_data->username;
passwd = connect_data->password;
servername = connect_data->server;
resource_login = connect_data->resource;
ssl_flag = connect_data->ssl_flag;
port = connect_data->port;
#ifdef __WINSCW__
proxy_server = connect_data->proxy_data->proxy_server;
proxy_port = connect_data->proxy_data->proxy_port;
#endif
iTestData = CTestData::NewL(iLog);
iLoginObj = CTelepathyGabbleLoginTest::NewL();
//action_login will have parameters
//passed from cfg file
TInt login_status =
iLoginObj->action_login(username,passwd,
servername, resource_login,ssl_flag,
port,proxy_server, proxy_port,
iTestData );
free_data (connect_data, iLog );
if (login_status == CTestData::EDISCONNECTED)
{
//i.e. login didnot happen with invalid user-id and passwd
return KErrNone;
}
return KErrGeneral; //login status must be disconnceted else an error
}
// -----------------------------------------------------------------------------
// CTelepathyGabbleTest::LoginInvalidPasswdTestL
// Test for login.
// -----------------------------------------------------------------------------
TInt CTelepathyGabbleTest::LoginInvalidPasswdTestL( CStifItemParser& aItem )
{
//Pass the parameters to action_login() from the
//data mentioned in the cfg file.
ConnectData *connect_data = NULL;
if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
{
free_data (connect_data, iLog );
return KErrGeneral;
}
char *username, *passwd , *servername , *resource_login, *ssl_flag, *port;
char *proxy_server = NULL;
char *proxy_port = NULL;
username = connect_data->username;
passwd = connect_data->password;
servername = connect_data->server;
resource_login = connect_data->resource;
ssl_flag = connect_data->ssl_flag;
port = connect_data->port;
#ifdef __WINSCW__
proxy_server = connect_data->proxy_data->proxy_server;
proxy_port = connect_data->proxy_data->proxy_port;
#endif
iTestData = CTestData::NewL(iLog);
iLoginObj = CTelepathyGabbleLoginTest::NewL();
//action_login will have parameters
//passed from cfg file
TInt login_status =
iLoginObj->action_login(username,passwd,
servername, resource_login,ssl_flag,
port,proxy_server, proxy_port,
iTestData );
free_data (connect_data, iLog );
if (login_status == CTestData::EDISCONNECTED)
{
//i.e. login didnot happen with invalid user-id and passwd
return (KErrNone);
}
return KErrGeneral; //login status must be disconnceted else an error
}
// -----------------------------------------------------------------------------
// CTelepathyGabbleTest::LoginInvalidUseridPasswdTestL
// Test for login.
// -----------------------------------------------------------------------------
TInt CTelepathyGabbleTest::LoginInvalidUseridPasswdTestL(
CStifItemParser& aItem )
{
//Pass the parameters to action_login() from the
//data mentioned in the cfg file.
ConnectData *connect_data = NULL;
if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
{
free_data (connect_data, iLog );
return KErrGeneral;
}
char *username, *passwd , *servername , *resource_login, *ssl_flag, *port;
char *proxy_server = NULL;
char *proxy_port = NULL;
username = connect_data->username;
passwd = connect_data->password;
servername = connect_data->server;
resource_login = connect_data->resource;
ssl_flag = connect_data->ssl_flag;
port = connect_data->port;
#ifdef __WINSCW__
proxy_server = connect_data->proxy_data->proxy_server;
proxy_port = connect_data->proxy_data->proxy_port;
#endif
iTestData = CTestData::NewL(iLog);
iLoginObj = CTelepathyGabbleLoginTest::NewL();
//action_login will have parameters
//passed from cfg file
TInt login_status =
iLoginObj->action_login(username,passwd,
servername, resource_login,ssl_flag,
port,proxy_server, proxy_port,
iTestData );
free_data (connect_data, iLog );
if (login_status == CTestData::EDISCONNECTED)
{
//i.e. login didnot happen with invalid user-id and passwd
return KErrNone;
}
return KErrGeneral; //login status must be disconnceted else an error
}
// -----------------------------------------------------------------------------
// CTelepathyGabbleTest::SendMessageWith400TestL
// Test for login.
// -----------------------------------------------------------------------------
TInt CTelepathyGabbleTest::SendMessageWith400TestL(
CStifItemParser& aItem )
{
TInt return_value = KErrNone;
//Pass the parameters to action_login() from the
//data mentioned in the cfg file.
//step 1: Do the login.
ConnectData *connect_data = NULL;
if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
{
free_data (connect_data, iLog );
return KErrGeneral;
}
//for login
char *username, *passwd , *servername , *resource_login, *ssl_flag, *port;
char *proxy_server = NULL;
char *proxy_port = NULL;
username = connect_data->username;
passwd = connect_data->password;
servername = connect_data->server;
resource_login = connect_data->resource;
ssl_flag = connect_data->ssl_flag;
port = connect_data->port;
#ifdef __WINSCW__
proxy_server = connect_data->proxy_data->proxy_server;
proxy_port = connect_data->proxy_data->proxy_port;
#endif
iTestData = CTestData::NewL(iLog);
iTestData->SetTestType(CTestData::ESend);
//Create the login object
iLoginObj = CTelepathyGabbleLoginTest::NewL();
//action_login will have parameters
//passed from cfg file
TInt login_status =
iLoginObj->action_login( username,passwd,
servername, resource_login,ssl_flag,
port,proxy_server, proxy_port,
iTestData );
if (login_status == CTestData::ECONNECTED)
{
//login was successful
//Send a message
//for sending a message
char *recipient_id;
recipient_id = connect_data->msg_data->recipient;
//msg = connect_data->msg_data->message;
//hardcode the message of 400 characters.
//Set the message to maxlength string( with 400 chars)
char *msg = {"abcdefghijklmnopqrstuvwxyzabcd \
abcdefghijklmnopqrstuvwxyzabcd \
abcdefghijklmnopqrstuvwxyzabcd \
abcdefghijklmnopqrstuvwxyzabcd \
abcdefghijklmnopqrstuvwxyzabcd \
abcdefghijklmnopqrstuvwxyzabcd \
abcdefghijklmnopqrstuvwxyzabcd \
abcdefghijklmnopqrstuvwxyzabcd \
abcdefghijklmnopqrstuvwxyzabcd \
abcdefghijklmnopqrstuvwxyzabcd \
abcdefghijklmnopqrstuvwxyzabcd \
abcdefghijklmnopqrstuvwxyzabcd \
abcdefghijklmnopqrstuvwxyzabcd \
abcdefghij"};
//Create the Object of Send Message class
iSendMsgObj = CTelepathyGabbleSendRecvMessage::NewL();
//call the SendMessage test case
TInt sendmsg_state = iSendMsgObj->SendMessage(recipient_id,msg,iTestData );
if( sendmsg_state == CTestData::EMessageNotSent ||
sendmsg_state == CTestData::EMessageSendErr )
{
return_value = KErrGeneral; //Error in Sending message
}
else if( sendmsg_state == CTestData::EMessageSent )
{
// EMessageSent was expected
return_value = KErrNone;
}
//Do the logout.
login_status = iLoginObj->action_logout( iTestData );
if (login_status != CTestData::EDISCONNECTED)
{
//logout didnot happen successfully
return_value = KErrGeneral;
}
}
else
{
//Login itself didnot happen.
return_value = KErrGeneral;
}
free_data (connect_data, iLog );
return return_value;
}
// -----------------------------------------------------------------------------
// CTelepathyGabbleTest::SendMesasgeToBlankUserIdTestL
// Test for login.
// -----------------------------------------------------------------------------
TInt CTelepathyGabbleTest::SendMesasgeToBlankUserIdTestL(
CStifItemParser& aItem )
{
TInt return_value = KErrNone;
//Pass the parameters to action_login() from the
//data mentioned in the cfg file.
//step 1: Do the login.
ConnectData *connect_data = NULL;
if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
{
free_data (connect_data, iLog );
return KErrGeneral;
}
//for login
char *username, *passwd , *servername , *resource_login, *ssl_flag, *port;
char *proxy_server = NULL;
char *proxy_port = NULL;
username = connect_data->username;
passwd = connect_data->password;
servername = connect_data->server;
resource_login = connect_data->resource;
ssl_flag = connect_data->ssl_flag;
port = connect_data->port;
#ifdef __WINSCW__
proxy_server = connect_data->proxy_data->proxy_server;
proxy_port = connect_data->proxy_data->proxy_port;
#endif
iTestData = CTestData::NewL(iLog);
iTestData->SetTestType(CTestData::ESendErr);
//Create the login object
iLoginObj = CTelepathyGabbleLoginTest::NewL();
//action_login will have parameters
//passed from cfg file
TInt login_status = iLoginObj->action_login(username,passwd,
servername, resource_login,ssl_flag,
port,proxy_server, proxy_port,
iTestData );
if (login_status == CTestData::ECONNECTED)
{
//login was successful
//Send a message
//for sending a message
char *recipient_id, *msg;
recipient_id = "";//hardcode the recipient for blank.
msg = connect_data->msg_data->message;
//Create the Object of Send Message class
iSendMsgObj = CTelepathyGabbleSendRecvMessage::NewL();
//call the SendMessage test case
TInt sendmsg_state = iSendMsgObj->SendMessage(recipient_id,msg,iTestData);
if( sendmsg_state == CTestData::EMessageNotSent
|| sendmsg_state == CTestData::EMessageSent )
{
return_value = KErrGeneral; //Error in Sending message
}
else if( sendmsg_state == CTestData::EMessageSendErr )
{
//If message sent to invalid userid or blank userid, state should EMessageSendErr
// This is used in case of SendMessagetoinvalidUseridTestL
return_value = KErrNone;
}
//Do the logout.
login_status = iLoginObj->action_logout(iTestData);
if (login_status != CTestData::EDISCONNECTED)
{
//logout didnot happen successfully
return_value = KErrGeneral;
}
}
else
{
//Login itself didnot happen.
return_value = KErrGeneral;
}
free_data (connect_data, iLog );
return return_value;
}
// -----------------------------------------------------------------------------
// CTelepathyGabbleTest::SendMesasgeBlankTestL
// Test for login.
// -----------------------------------------------------------------------------
TInt CTelepathyGabbleTest::SendMesasgeBlankTestL(
CStifItemParser& aItem )
{
TInt return_value = KErrNone;
//Pass the parameters to action_login() from the
//data mentioned in the cfg file.
//step 1: Do the login.
ConnectData *connect_data = NULL;
if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
{
free_data (connect_data, iLog );
return KErrGeneral;
}
//for login
char *username, *passwd , *servername , *resource_login, *ssl_flag, *port;
char *proxy_server = NULL;
char *proxy_port = NULL;
username = connect_data->username;
passwd = connect_data->password;
servername = connect_data->server;
resource_login = connect_data->resource;
ssl_flag = connect_data->ssl_flag;
port = connect_data->port;
#ifdef __WINSCW__
proxy_server = connect_data->proxy_data->proxy_server;
proxy_port = connect_data->proxy_data->proxy_port;
#endif
iTestData = CTestData::NewL(iLog);
iTestData->SetTestType(CTestData::ESend);
//Create the login object
iLoginObj = CTelepathyGabbleLoginTest::NewL();
//action_login will have parameters
//passed from cfg file
TInt login_status = iLoginObj->action_login(username,passwd,
servername, resource_login,ssl_flag,
port,proxy_server, proxy_port,
iTestData );
if (login_status == CTestData::ECONNECTED)
{
//login was successful
//Send a message
//for sending a message
char *recipient_id, *msg;
recipient_id = connect_data->msg_data->recipient;
//msg = connect_data->msg_data->message;
//hardcode the message for blank.
msg = "";
//Create the Object of Send Message class
iSendMsgObj = CTelepathyGabbleSendRecvMessage::NewL();
//call the SendMessage test case
TInt sendmsg_state = iSendMsgObj->SendMessage(recipient_id,msg,iTestData);
if( sendmsg_state != CTestData::EMessageSent )
{
//There was some error while sending the message.
return_value = KErrGeneral;
}
//Do the logout.
login_status = iLoginObj->action_logout(iTestData);
if (login_status != CTestData::EDISCONNECTED)
{
//logout didnot happen successfully
return_value = KErrGeneral;
}
}
else
{
//Login itself didnot happen.
return_value = KErrGeneral;
}
free_data (connect_data, iLog );
return return_value;
}
// -----------------------------------------------------------------------------
// CTelepathyGabbleTest::SendMessagetoinvalidUseridTestL
// -----------------------------------------------------------------------------
TInt CTelepathyGabbleTest::SendMessagetoinvalidUseridTestL(
CStifItemParser& aItem )
{
TInt return_value = KErrNone;
//Pass the parameters to action_login() from the
//data mentioned in the cfg file.
//step 1: Do the login.
ConnectData *connect_data = NULL;
if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
{
free_data (connect_data, iLog );
return KErrGeneral;
}
//for login
char *username, *passwd , *servername , *resource_login, *ssl_flag, *port;
char *proxy_server = NULL;
char *proxy_port = NULL;
username = connect_data->username;
passwd = connect_data->password;
servername = connect_data->server;
resource_login = connect_data->resource;
ssl_flag = connect_data->ssl_flag;
port = connect_data->port;
#ifdef __WINSCW__
proxy_server = connect_data->proxy_data->proxy_server;
proxy_port = connect_data->proxy_data->proxy_port;
#endif
if (iTestData == NULL)
{
//Create the iTestData if it is not existing.
iTestData = CTestData::NewL(iLog);
}
iTestData->SetTestType(CTestData::ESendErr);
//Create the login object
iLoginObj = CTelepathyGabbleLoginTest::NewL();
//action_login will have parameters
//passed from cfg file
TInt login_status =
iLoginObj->action_login(username,passwd,servername,
resource_login,ssl_flag,
port,proxy_server, proxy_port,
iTestData );
if (login_status == CTestData::ECONNECTED)
{
//login was successful
//Send a message
//for sending a message
char *recipient_id, *msg;
TInt testType = iTestData->GetTestType();
recipient_id = connect_data->msg_data->recipient;
msg = connect_data->msg_data->message;
//Create the Object of Send Message class
iSendMsgObj = CTelepathyGabbleSendRecvMessage::NewL();
//call the SendMessage test case
TInt sendmsg_state = iSendMsgObj->SendMessage(recipient_id,msg,iTestData);
if( sendmsg_state == CTestData::EMessageNotSent ||
sendmsg_state == CTestData::EMessageSent )
{
// EMessageSendErr was expected
return_value = KErrGeneral; //Error in Sending message
}
else if( sendmsg_state == CTestData::EMessageSendErr )
{
//If message sent to invalid userid or blank userid, state should EMessageSendErr
// This is used in case of SendMessagetoinvalidUseridTestL
return_value = KErrNone;
}
//Do the logout
login_status = iLoginObj->action_logout(iTestData);
if (login_status != CTestData::EDISCONNECTED)
{
//logout didnot happen successfully
return_value = KErrGeneral;
}
}
else
{
//Login itself didnot happen.
return_value = KErrGeneral;
}
free_data (connect_data, iLog );
return return_value;
}
// -----------------------------------------------------------------------------
// CTelepathyGabbleTest::RemoveContactWithBlankUserIdTestL
// Test for removing blank userid
// -----------------------------------------------------------------------------
TInt CTelepathyGabbleTest::RemoveContactWithBlankUserIdTestL(
CStifItemParser& aItem )
{
TInt return_value = KErrNone;
//Pass the parameters to action_login() from the
//data mentioned in the cfg file.
ConnectData *connect_data = NULL;
if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
{
free_data (connect_data, iLog );
return KErrGeneral;
}
char *username, *passwd , *servername , *resource_login, *ssl_flag, *port;
char *proxy_server = NULL;
char *proxy_port = NULL;
username = connect_data->username;
passwd = connect_data->password;
servername = connect_data->server;
resource_login = connect_data->resource;
ssl_flag = connect_data->ssl_flag;
port = connect_data->port;
#ifdef __WINSCW__
proxy_server = connect_data->proxy_data->proxy_server;
proxy_port = connect_data->proxy_data->proxy_port;
#endif
iTestData = CTestData::NewL(iLog);
iLoginObj = CTelepathyGabbleLoginTest::NewL();
//action_login will have parameters
//passed from cfg file
TInt login_status = iLoginObj->action_login(username,passwd,
servername, resource_login,ssl_flag,
port,proxy_server, proxy_port,
iTestData);
if (login_status == CTestData::ECONNECTED)
{
//login happened successfully.
//Create the AddDelete Contact class object.
//iAddDelContactObj = CTelepathyGabbleAddDeleteContact::NewL();
iAddDelContactObj = CTelepathyGabbleAddDeleteContact::NewL();
//Get the contact_id and the message.
char *contact_id, *msg;
contact_id = ""; //make the contactid as blank
msg = connect_data->msg_data->message;
TInt contact_status = iAddDelContactObj->remove_contact( contact_id, msg, iTestData );
if( contact_status == CTestData::EDELETE_FAIL )
{
return_value = KErrNone;
}
//Do the logout and then return KErrNone;
login_status = iLoginObj->action_logout(iTestData);
if (login_status != CTestData::EDISCONNECTED)
{
return_value = KErrGeneral; //logout was not successful
}
free_data (connect_data, iLog );
return return_value;
}
else
{
free_data (connect_data, iLog );
return KErrGeneral;//login was not successful
}
}
// -----------------------------------------------------------------------------
// CTelepathyGabbleTest::AddContactWithBlankUserIdTestL
// Test for Adding blank userid
// -----------------------------------------------------------------------------
TInt CTelepathyGabbleTest::AddContactWithBlankUserIdTestL(
CStifItemParser& aItem )
{
TInt return_value = KErrNone;
//Pass the parameters to action_login() from the
//data mentioned in the cfg file.
ConnectData *connect_data = NULL;
if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
{
free_data (connect_data, iLog );
return KErrGeneral;
}
char *username, *passwd , *servername , *resource_login, *ssl_flag, *port;
char *proxy_server = NULL;
char *proxy_port = NULL;
username = connect_data->username;
passwd = connect_data->password;
servername = connect_data->server;
resource_login = connect_data->resource;
ssl_flag = connect_data->ssl_flag;
port = connect_data->port;
#ifdef __WINSCW__
proxy_server = connect_data->proxy_data->proxy_server;
proxy_port = connect_data->proxy_data->proxy_port;
#endif
iTestData = CTestData::NewL(iLog);
iLoginObj = CTelepathyGabbleLoginTest::NewL();
//action_login will have parameters
//passed from cfg file
TInt login_status = iLoginObj->action_login(username,passwd,
servername, resource_login,ssl_flag,
port,proxy_server, proxy_port,
iTestData);
if (login_status == CTestData::ECONNECTED)
{
//login happened successfully.
//Create the AddDelete Contact class object.
//iAddDelContactObj = CTelepathyGabbleAddDeleteContact::NewL();
iAddDelContactObj = CTelepathyGabbleAddDeleteContact::NewL();
//Get the contact_id and the message.
char *addcontact_id, *msg;
addcontact_id = ""; //make the contactid as blank
msg = connect_data->msg_data->message;
TInt addcontact_status = iAddDelContactObj->add_contact(addcontact_id,msg, iTestData );
if( addcontact_status == CTestData::EADD_FAIL )
{
return_value = KErrNone;
}
//Do the logout and then return KErrNone;
login_status = iLoginObj->action_logout(iTestData);
if (login_status != CTestData::EDISCONNECTED)
{
return_value = KErrGeneral; //logout was not successful
}
free_data (connect_data, iLog );
return return_value;
}
else
{
free_data (connect_data, iLog );
return KErrGeneral;//login was not successful
}
}
// -----------------------------------------------------------------------------
// CTelepathyGabbleTest::AddContactTestL
// Test for Adding Contact
// -----------------------------------------------------------------------------
TInt CTelepathyGabbleTest::AddContactTestL(
CStifItemParser& aItem )
{
TInt return_value = KErrNone;
//Pass the parameters to action_login() from the
//data mentioned in the cfg file.
ConnectData *connect_data = NULL;
if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
{
free_data (connect_data, iLog );
return KErrGeneral;
}
char *username, *passwd , *servername , *resource_login, *ssl_flag, *port;
char *proxy_server = NULL;
char *proxy_port = NULL;
username = connect_data->username;
passwd = connect_data->password;
servername = connect_data->server;
resource_login = connect_data->resource;
ssl_flag = connect_data->ssl_flag;
port = connect_data->port;
#ifdef __WINSCW__
proxy_server = connect_data->proxy_data->proxy_server;
proxy_port = connect_data->proxy_data->proxy_port;
#endif
iTestData = CTestData::NewL(iLog);
iLoginObj = CTelepathyGabbleLoginTest::NewL();
//action_login will have parameters
//passed from cfg file
TInt login_status = iLoginObj->action_login(username,passwd,
servername, resource_login,ssl_flag,
port,proxy_server, proxy_port,
iTestData);
if (login_status == CTestData::ECONNECTED)
{
//login happened successfully.
//Create the AddDelete Contact class object.
//iAddDelContactObj = CTelepathyGabbleAddDeleteContact::NewL();
iAddDelContactObj = CTelepathyGabbleAddDeleteContact::NewL();
//Get the contact_id and the message.
char *addcontact_id, *msg;
addcontact_id = connect_data->msg_data->recipient;
msg = connect_data->msg_data->message;
TInt addcontact_status = iAddDelContactObj->add_contact(addcontact_id,msg, iTestData );
if( addcontact_status != CTestData::EADD_SUCCESS )
{
return_value = KErrGeneral;
}
//Do the logout and then return KErrNone;
login_status = iLoginObj->action_logout(iTestData);
if (login_status != CTestData::EDISCONNECTED)
{
return_value = KErrGeneral; //logout was not successful
}
free_data (connect_data, iLog );
return return_value;
}
else
{
free_data (connect_data, iLog );
return KErrGeneral;//login was not successful
}
}
// -----------------------------------------------------------------------------
// CTelepathyGabbleTest::AddContactAlreadyInRosterTestL
// Test for Adding Contact which is already added
// -----------------------------------------------------------------------------
TInt CTelepathyGabbleTest::AddContactAlreadyInRosterTestL(
CStifItemParser& aItem )
{
TInt return_value = KErrNone;
//Pass the parameters to action_login() from the
//data mentioned in the cfg file.
ConnectData *connect_data = NULL;
if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
{
free_data (connect_data, iLog );
return KErrGeneral;
}
char *username, *passwd , *servername , *resource_login, *ssl_flag, *port;
char *proxy_server = NULL;
char *proxy_port = NULL;
username = connect_data->username;
passwd = connect_data->password;
servername = connect_data->server;
resource_login = connect_data->resource;
ssl_flag = connect_data->ssl_flag;
port = connect_data->port;
#ifdef __WINSCW__
proxy_server = connect_data->proxy_data->proxy_server;
proxy_port = connect_data->proxy_data->proxy_port;
#endif
iTestData = CTestData::NewL(iLog);
iLoginObj = CTelepathyGabbleLoginTest::NewL();
//action_login will have parameters
//passed from cfg file
TInt login_status = iLoginObj->action_login(username,passwd,
servername, resource_login,ssl_flag,
port,proxy_server, proxy_port,
iTestData);
if (login_status == CTestData::ECONNECTED)
{
//login happened successfully.
//Create the AddDelete Contact class object.
iAddDelContactObj = CTelepathyGabbleAddDeleteContact::NewL();
//Get the contact_id and the message.
char *addcontact_id, *msg;
addcontact_id = connect_data->msg_data->recipient;
msg = connect_data->msg_data->message;
TInt addcontact_status = iAddDelContactObj->add_contact(addcontact_id,msg, iTestData );
if( addcontact_status != CTestData::EADD_SUCCESS )
{
return_value = KErrGeneral;
login_status = iLoginObj->action_logout(iTestData);
if (login_status != CTestData::EDISCONNECTED)
{
return_value = KErrGeneral;
}
}
else
{
//The function add_contact resets iAddDeleteContactStatus (in CTestData) to EADD_FAIL
//to check again that adding a contact already added was successful(EADD_SUCCESS)
//so no need to set here explicitly
addcontact_status = iAddDelContactObj->add_contact(addcontact_id,msg, iTestData );
if( addcontact_status != CTestData::EADD_SUCCESS )
{
return_value = KErrGeneral;
}
login_status = iLoginObj->action_logout(iTestData);
if (login_status != CTestData::EDISCONNECTED)
{
return_value = KErrGeneral;
}
}
free_data (connect_data, iLog );
return return_value;
}
else
{
free_data (connect_data, iLog );
return KErrGeneral; //login was not successful
}
}
// -----------------------------------------------------------------------------
// CTelepathyGabbleTest::RemoveContactAlreadyRemovedTestL
// Test for removing Contact which is already removed
// -----------------------------------------------------------------------------
TInt CTelepathyGabbleTest::RemoveContactAlreadyRemovedTestL(
CStifItemParser& aItem )
{
TInt return_value = KErrNone;
//Pass the parameters to action_login() from the
//data mentioned in the cfg file.
ConnectData *connect_data = NULL;
if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
{
free_data (connect_data, iLog );
return KErrGeneral;
}
char *username, *passwd , *servername , *resource_login, *ssl_flag, *port;
char *proxy_server = NULL;
char *proxy_port = NULL;
username = connect_data->username;
passwd = connect_data->password;
servername = connect_data->server;
resource_login = connect_data->resource;
ssl_flag = connect_data->ssl_flag;
port = connect_data->port;
#ifdef __WINSCW__
proxy_server = connect_data->proxy_data->proxy_server;
proxy_port = connect_data->proxy_data->proxy_port;
#endif
iTestData = CTestData::NewL(iLog);
iLoginObj = CTelepathyGabbleLoginTest::NewL();
//action_login will have parameters
//passed from cfg file
TInt login_status = iLoginObj->action_login(username,passwd,
servername, resource_login,ssl_flag,
port,proxy_server, proxy_port,
iTestData);
if (login_status == CTestData::ECONNECTED)
{
//login happened successfully.
//Create the AddDelete Contact class object.
iAddDelContactObj = CTelepathyGabbleAddDeleteContact::NewL();
//Get the contact_id and the message.
char *contact_id, *msg;
contact_id = connect_data->msg_data->recipient;
msg = connect_data->msg_data->message;
TInt contact_status = iAddDelContactObj->add_contact( contact_id, msg, iTestData );
if( contact_status != CTestData::EADD_SUCCESS )
{
iLog->Log( _L("CTelepathyGabbleTest:: contact not added successfully \n") );
return_value = KErrGeneral;
login_status = iLoginObj->action_logout(iTestData);
if (login_status != CTestData::EDISCONNECTED)
{
return_value = KErrGeneral;
}
free_data (connect_data, iLog );
return return_value;
}
contact_status = iAddDelContactObj->remove_contact( contact_id, msg, iTestData );
if( contact_status != CTestData::EDELETE_SUCCESS )
{
//contact removed first time, so should be removed successfully, otherwise error
iLog->Log( _L("CTelepathyGabbleTest::First Time contact not deleted successfully \n") );
return_value = KErrGeneral;
login_status = iLoginObj->action_logout(iTestData);
if (login_status != CTestData::EDISCONNECTED)
{
return_value = KErrGeneral;
}
}
else
{
//The function remove_contact resets iAddDeleteContactStatus (in CTestData) to EDELETE_FAIL
//to check again that removing a contact already removed was not successful,
// so no need to set here explicitly
iLog->Log( _L("CTelepathyGabbleTest::First Time contact deleted successfully \n") );
contact_status = iAddDelContactObj->remove_contact(contact_id,msg, iTestData );
// because contact to be removed was already deleted, so status should be EDELETE_FAIL
if( contact_status != CTestData::EDELETE_FAIL )
{
iLog->Log( _L("CTelepathyGabbleTest::Second Time deleted successfully, it should give some error \n") );
return_value = KErrGeneral;
}
login_status = iLoginObj->action_logout(iTestData);
if (login_status != CTestData::EDISCONNECTED)
{
iLog->Log( _L("CTelepathyGabbleTest::Error in logout \n") );
return_value = KErrGeneral;
}
}
free_data (connect_data, iLog );
return return_value;
}
else
{
free_data (connect_data, iLog );
return KErrGeneral; //login was not successful
}
}
// -----------------------------------------------------------------------------
// CTelepathyGabbleTest::RemoveContactTestL
// Test for removing a contact
// -----------------------------------------------------------------------------
TInt CTelepathyGabbleTest::RemoveContactTestL(
CStifItemParser& aItem )
{
TInt return_value = KErrNone;
//Pass the parameters to action_login() from the
//data mentioned in the cfg file.
ConnectData *connect_data = NULL;
if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
{
free_data (connect_data, iLog );
return KErrGeneral;
}
char *username, *passwd , *servername , *resource_login,*ssl_flag, *port;
char *proxy_server = NULL;
char *proxy_port = NULL;
username = connect_data->username;
passwd = connect_data->password;
servername = connect_data->server;
resource_login = connect_data->resource;
ssl_flag = connect_data->ssl_flag;
port = connect_data->port;
#ifdef __WINSCW__
proxy_server = connect_data->proxy_data->proxy_server;
proxy_port = connect_data->proxy_data->proxy_port;
#endif
iTestData = CTestData::NewL(iLog);
iLoginObj = CTelepathyGabbleLoginTest::NewL();
//action_login will have parameters
//passed from cfg file
TInt login_status = iLoginObj->action_login(username,passwd,
servername, resource_login,ssl_flag,
port,proxy_server, proxy_port,
iTestData );
if (login_status == CTestData::ECONNECTED)
{
//login happened successfully.
//Create the AddDelete Contact class object.
iAddDelContactObj = CTelepathyGabbleAddDeleteContact::NewL();
//Get the contact_id and the message.
char *contact_id, *msg;
contact_id = connect_data->msg_data->recipient;
msg = connect_data->msg_data->message;
TInt removecontact_status = iAddDelContactObj->remove_contact( contact_id, msg, iTestData);
if( removecontact_status != CTestData::EDELETE_SUCCESS )
{
return_value = KErrGeneral;
}
//Do the logout and then return KErrNone;
login_status = iLoginObj->action_logout(iTestData);
if (login_status != CTestData::EDISCONNECTED)
{
return_value = KErrGeneral; //logout was not successful
}
free_data (connect_data, iLog );
return return_value;
}
else
{
free_data (connect_data, iLog );
return KErrGeneral;
}
}
// -----------------------------------------------------------------------------
// CTelepathyGabbleTest::RemoveInvalidContactTestL
// Test for removing invalid userid
// -----------------------------------------------------------------------------
TInt CTelepathyGabbleTest::RemoveInvalidContactTestL(
CStifItemParser& aItem )
{
TInt err = RemoveContactTestL(aItem);
if ( err == KErrGeneral
&& iTestData->GetAddDeleteContactStatus() == CTestData::EDELETE_FAIL )
{
// This is correct, since the contact_id was invalid
return KErrNone;
}
return KErrGeneral;
}
// -----------------------------------------------------------------------------
// CTelepathyGabbleTest::FetchContactsTestL
// Test for fetching contacts
// -----------------------------------------------------------------------------
TInt CTelepathyGabbleTest::FetchContactsTestL(
CStifItemParser& aItem )
{
TInt return_value = KErrNone;
//Pass the parameters to action_login() from the
//data mentioned in the cfg file.
ConnectData *connect_data = NULL;
if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
{
free_data (connect_data, iLog );
return KErrGeneral;
}
char *username, *passwd , *servername , *resource_login,*ssl_flag, *port;
char *proxy_server = NULL;
char *proxy_port = NULL;
username = connect_data->username;
passwd = connect_data->password;
servername = connect_data->server;
resource_login = connect_data->resource;
ssl_flag = connect_data->ssl_flag;
port = connect_data->port;
#ifdef __WINSCW__
proxy_server = connect_data->proxy_data->proxy_server;
proxy_port = connect_data->proxy_data->proxy_port;
#endif
iTestData = CTestData::NewL(iLog);
iLoginObj = CTelepathyGabbleLoginTest::NewL();
//action_login will have parameters
//passed from cfg file
TInt login_status =
iLoginObj->action_login(username,passwd,
servername, resource_login,ssl_flag,
port,proxy_server, proxy_port,
iTestData);
if (login_status == CTestData::ECONNECTED)
{
//if successfully logged in
//fetch the contacts
iFetchContactObj = CTelepathyGabbleFetchContacts::NewL();
return_value = iFetchContactObj->test_request_roster( iTestData );
//Do the logout and the cleanup.
login_status = iLoginObj->action_logout(iTestData);
if (login_status != CTestData::EDISCONNECTED)
{
return_value = KErrGeneral; //there was error in logout
}
}
else
{
return_value = KErrGeneral; //login didn't happen successfully
}
free_data (connect_data, iLog );
return return_value;
}
// -----------------------------------------------------------------------------
// CTelepathyGabbleTest::SearchTwiceTestL
// -----------------------------------------------------------------------------
TInt CTelepathyGabbleTest::SearchTwiceTestL( CStifItemParser& aItem )
{
TInt return_value = KErrNone;
//Pass the parameters to action_login() from the
//data mentioned in the cfg file.
//step 1: Do the login.
ConnectData *connect_data = NULL;
if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
{
free_data ( connect_data, iLog );
return KErrGeneral;
}
//for login
char *username, *passwd , *servername , *resource_login, *ssl_flag, *port;
char *proxy_server = NULL;
char *proxy_port = NULL;
username = connect_data->username;
passwd = connect_data->password;
servername = connect_data->server;
resource_login = connect_data->resource;
ssl_flag = connect_data->ssl_flag;
port = connect_data->port;
#ifdef __WINSCW__
proxy_server = connect_data->proxy_data->proxy_server;
proxy_port = connect_data->proxy_data->proxy_port;
#endif
if (iTestData == NULL)
{
//Create the iTestData if it is not existing.
iTestData = CTestData::NewL(iLog);
}
iTestData->SetTestType(CTestData::ESearch);
//Create the login object
iLoginObj = CTelepathyGabbleLoginTest::NewL();
//action_login will have parameters
//passed from cfg file
TInt login_status =
iLoginObj->action_login(username,passwd,servername,
resource_login,ssl_flag,
port,proxy_server, proxy_port,
iTestData );
if (login_status == CTestData::ECONNECTED)
{
//login was successful
GHashTable *data_to_search = NULL;
GValue *gvalue = NULL;
char *key, *value;
key = connect_data->msg_data->recipient;
value = connect_data->msg_data->message;
data_to_search = g_hash_table_new(g_str_hash,g_str_equal);
gvalue = g_new0(GValue, 1);
g_value_init(gvalue, G_TYPE_STRING);
g_value_set_string (gvalue, value );
g_hash_table_insert( data_to_search, GetSearchLabelL(servername,key), gvalue);
//Create the Object of Send Message class
iSearchObj = CTelepathyGabbleSearch::NewL();
//call the SendMessage test case
TInt search_state = iSearchObj->SearchL(data_to_search, iTestData);
if( search_state == CTestData::ESearchError )
{
return_value = KErrGeneral; //Error in Searching
}
else if( search_state == CTestData::ESearchCompleted)
{
search_state = iSearchObj->SearchL(data_to_search, iTestData);
if( search_state == CTestData::ESearchError )
{
return_value = KErrGeneral; //Error in Searching
}
//return_value = KErrNone;
}
iSearchObj->CloseChannel(iTestData);
//Do the logout
login_status = iLoginObj->action_logout(iTestData);
if (login_status != CTestData::EDISCONNECTED)
{
//logout didnot happen successfully
return_value = KErrGeneral;
}
//do this later
/*g_hash_table_foreach_remove ( data_to_search,
search_hash_remove, NULL );*/
//Free the hash table itself
g_hash_table_destroy ( data_to_search );
}
else
{
//Login itself didnot happen.
return_value = KErrGeneral;
}
free_data ( connect_data, iLog );
return return_value;
}
// -----------------------------------------------------------------------------
// CTelepathyGabbleTest::SearchFiveTimesTestL
// -----------------------------------------------------------------------------
TInt CTelepathyGabbleTest::SearchFiveTimesTestL( CStifItemParser& aItem )
{
TInt return_value = KErrNone;
//Pass the parameters to action_login() from the
//data mentioned in the cfg file.
//step 1: Do the login.
ConnectData *connect_data = NULL;
if ( read_data ( connect_data, aItem, iLog ) != RC_OK )
{
free_data ( connect_data, iLog );
return KErrGeneral;
}
//for login
char *username, *passwd , *servername , *resource_login, *ssl_flag, *port;
char *proxy_server = NULL;
char *proxy_port = NULL;
username = connect_data->username;
passwd = connect_data->password;
servername = connect_data->server;
resource_login = connect_data->resource;
ssl_flag = connect_data->ssl_flag;
port = connect_data->port;
#ifdef __WINSCW__
proxy_server = connect_data->proxy_data->proxy_server;
proxy_port = connect_data->proxy_data->proxy_port;
#endif
if (iTestData == NULL)
{
//Create the iTestData if it is not existing.
iTestData = CTestData::NewL(iLog);
}
iTestData->SetTestType(CTestData::ESearch);
//Create the login object
iLoginObj = CTelepathyGabbleLoginTest::NewL();
//action_login will have parameters
//passed from cfg file
TInt login_status =
iLoginObj->action_login(username,passwd,servername,
resource_login,ssl_flag,
port,proxy_server, proxy_port,
iTestData );
if (login_status == CTestData::ECONNECTED)
{
//login was successful
GHashTable *data_to_search = NULL;
GValue *gvalue = NULL;
char *key, *value;
key = connect_data->msg_data->recipient;
value = connect_data->msg_data->message;
data_to_search = g_hash_table_new(g_str_hash,g_str_equal);
gvalue = g_new0(GValue, 1);
g_value_init(gvalue, G_TYPE_STRING);
g_value_set_string (gvalue, value );
g_hash_table_insert( data_to_search, GetSearchLabelL(servername,key), gvalue);
//Create the Object of Send Message class
iSearchObj = CTelepathyGabbleSearch::NewL();
TInt search_state;
for(TInt i = 0; i<5 ;i++ )
{
search_state = iSearchObj->SearchL(data_to_search, iTestData);
if( search_state == CTestData::ESearchError )
{
return_value = KErrGeneral; //Error in Searching
break;
}
}
iSearchObj->CloseChannel(iTestData);
//Do the logout
login_status = iLoginObj->action_logout(iTestData);
if (login_status != CTestData::EDISCONNECTED)
{
//logout didnot happen successfully
return_value = KErrGeneral;
}
//do this later
/*g_hash_table_foreach_remove ( data_to_search,
search_hash_remove, NULL );*/
//Free the hash table itself
g_hash_table_destroy ( data_to_search );
}
else
{
//Login itself didnot happen.
return_value = KErrGeneral;
}
free_data ( connect_data, iLog );
return return_value;
}
// -----------------------------------------------------------------------------
// CTelepathyGabbleTest::GetSearchLabelForYukonL
// -----------------------------------------------------------------------------
gchar* CTelepathyGabbleTest::GetSearchLabelForYukonL(gchar *search_key)
{
if(strcmp(search_key,"user") == 0)
{
gchar* label= "User";
return label;
}
else if(strcmp(search_key,"fn") == 0)
{
gchar* label= "Full Name";
return label;
}
else if(strcmp(search_key,"first") == 0)
{
gchar* label= "Name";
return label;
}
else if(strcmp(search_key,"middle") == 0)
{
gchar* label= "Middle Name";
return label;
}
else if(strcmp(search_key,"last") == 0)
{
gchar* label= "Family Name";
return label;
}
else if(strcmp(search_key,"nick") == 0)
{
gchar* label= "Nickname";
return label;
}
else if(strcmp(search_key,"email") == 0)
{
gchar* label= "Email";
return label;
}
else if(strcmp(search_key,"bday") == 0)
{
gchar* label= "Birthday";
return label;
}
else if(strcmp(search_key,"ctry") == 0)
{
gchar* label= "Country";
return label;
}
else if(strcmp(search_key,"orgname") == 0)
{
gchar* label= "Organization Name";
return label;
}
else if(strcmp(search_key,"locality") == 0)
{
gchar* label= "City";
return label;
}
else if(strcmp(search_key,"orgunit") == 0)
{
gchar* label= "Organization Unit";
return label;
}
}
// -----------------------------------------------------------------------------
// CTelepathyGabbleTest::GetSearchLabelForGizmoL
// -----------------------------------------------------------------------------
gchar* CTelepathyGabbleTest::GetSearchLabelForGizmoL(gchar *search_key)
{
if(strcmp(search_key,"xmpp_user") == 0)
{
gchar* label= "Account Name";
return label;
}
else if(strcmp(search_key,"email_address") == 0)
{
gchar* label= "Email Address";
return label;
}
else if(strcmp(search_key,"first_name") == 0)
{
gchar* label= "First Name";
return label;
}
else if(strcmp(search_key,"last_name") == 0)
{
gchar* label= "Family Name";
return label;
}
else if(strcmp(search_key,"country") == 0)
{
gchar* label= "Country";
return label;
}
else if(strcmp(search_key,"state") == 0)
{
gchar* label= "State/Province";
return label;
}
else if(strcmp(search_key,"city") == 0)
{
gchar* label= "City";
return label;
}
else if(strcmp(search_key,"max_results") == 0)
{
gchar* label= "Maximum # of Results";
return label;
}
}
// -----------------------------------------------------------------------------
// CTelepathyGabbleTest::GetSearchLabelL
// -----------------------------------------------------------------------------
gchar* CTelepathyGabbleTest::GetSearchLabelL(gchar* aService,gchar* aSearchKey)
{
if(strcmp(aService,"chat.gizmoproject.com") == 0)
{
GetSearchLabelForGizmoL(aSearchKey);
}
else if(strcmp(aService,"chat.ovi.com") == 0 )
{
GetSearchLabelForYukonL(aSearchKey);
}
}
/**
* Free function for the hash key/value pairs
*/
/*gboolean search_hash_remove( gpointer key, gpointer value,
gpointer user_data )
{
//Free function for the hash values
if ( key )
{
free( key );
}
if ( value )
{
free ( value );
}
return TRUE;
}
*/
//End of File