--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/libtelepathy/tsrc/src/telepathygabbletestblocks.cpp Tue Feb 02 01:10:06 2010 +0200
@@ -0,0 +1,4599 @@
+/*
+* 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
\ No newline at end of file