telephonyserverplugins/common_tsy/test/component/src/cctsysessionmanagementfu.cpp
changeset 0 3553901f7fa8
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telephonyserverplugins/common_tsy/test/component/src/cctsysessionmanagementfu.cpp	Tue Feb 02 01:41:59 2010 +0200
@@ -0,0 +1,916 @@
+// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// The TEFUnit test suite for SessionManagement in the Common TSY.
+// 
+//
+
+/**
+ @file 
+*/
+
+#include "cctsysessionmanagementfu.h"
+#include <etel.h>
+#include <etelmm.h>
+#include <ctsy/mmtsy_names.h>
+#include "tmockltsydata.h"
+#include <ctsy/serviceapi/gsmerror.h>
+
+
+_LIT(KDoubleColon, "::");
+
+
+CTestSuite* CCTsySessionManagementFU::CreateSuiteL(const TDesC& aName)
+	{
+	SUB_SUITE;
+
+	ADD_TEST_STEP_ISO_CPP(CCTsySessionManagementFU, TestInitialise0001L);
+	ADD_TEST_STEP_ISO_CPP(CCTsySessionManagementFU, TestInitialise0004L);
+	ADD_TEST_STEP_ISO_CPP(CCTsySessionManagementFU, TestOpen0001L);
+	ADD_TEST_STEP_ISO_CPP(CCTsySessionManagementFU, TestOpen0003L);
+	ADD_TEST_STEP_ISO_CPP(CCTsySessionManagementFU, TestGetTsyName0001L);
+	ADD_TEST_STEP_ISO_CPP(CCTsySessionManagementFU, TestGetTsyName0003L);
+	ADD_TEST_STEP_ISO_CPP(CCTsySessionManagementFU, TestEnumeratePhones0001L);
+	ADD_TEST_STEP_ISO_CPP(CCTsySessionManagementFU, TestUnloadPhoneModule0001L);
+	ADD_TEST_STEP_ISO_CPP(CCTsySessionManagementFU, TestUnloadPhoneModule0003L);
+	ADD_TEST_STEP_ISO_CPP(CCTsySessionManagementFU, TestGetTsyVersionNumber0001L);
+	ADD_TEST_STEP_ISO_CPP(CCTsySessionManagementFU, TestGetTsyVersionNumber0003L);
+	ADD_TEST_STEP_ISO_CPP(CCTsySessionManagementFU, TestSetExtendedErrorGranularity0001L);
+	ADD_TEST_STEP_ISO_CPP(CCTsySessionManagementFU, TestReferenceCount0001L);
+	ADD_TEST_STEP_ISO_CPP(CCTsySessionManagementFU, TestReferenceCount0006L);
+	ADD_TEST_STEP_ISO_CPP(CCTsySessionManagementFU, TestReferenceCount00011L);
+	ADD_TEST_STEP_ISO_CPP(CCTsySessionManagementFU, TestOpenExistingCall0001L);
+	ADD_TEST_STEP_ISO_CPP(CCTsySessionManagementFU, TestOpenExistingCall0003L);
+	ADD_TEST_STEP_ISO_CPP(CCTsySessionManagementFU, TestOpenExistingCall0006L);
+	ADD_TEST_STEP_ISO_CPP(CCTsySessionManagementFU, TestOpenExistingCall0008L);
+	ADD_TEST_STEP_ISO_CPP(CCTsySessionManagementFU, TestOpenExistingCall00011L);
+	ADD_TEST_STEP_ISO_CPP(CCTsySessionManagementFU, TestOpenExistingCall00013L);
+	ADD_TEST_STEP_ISO_CPP(CCTsySessionManagementFU, TestInitialiseMM0001L);
+
+	END_SUITE;
+	}
+
+
+//
+// Actual test cases
+//
+
+
+/**
+@SYMTestCaseID BA-CTSY-SESMG-PI-0001
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPhone::Initialise
+@SYMTestPriority High
+@SYMTestActions Invokes RPhone::Initialise
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsySessionManagementFU::TestInitialise0001L()
+	{
+
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+
+	TInt ret = iPhone.Open(iTelServer,KMmTsyPhoneName);
+	ASSERT_EQUALS(KErrNone, ret);
+
+	// test synchronous version of RPhone::Initialise
+	ret = iPhone.Initialise();
+	ASSERT_EQUALS(KErrNone, ret);
+
+	// test asynchronous version of RPhone::Initialise	
+	TRequestStatus requestStatus;
+	
+	iPhone.Initialise(requestStatus);
+	
+	User::WaitForRequest(requestStatus);
+	ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+	CleanupStack::PopAndDestroy(1, this);
+	
+	}
+
+
+
+/**
+@SYMTestCaseID BA-CTSY-SESMG-PI-0004
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPhone::Initialise
+@SYMTestPriority High
+@SYMTestActions Invokes multiple client requests to RPhone::Initialise
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsySessionManagementFU::TestInitialise0004L()
+	{
+					
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+
+	TInt ret = iPhone.Open(iTelServer,KMmTsyPhoneName);
+	ASSERT_EQUALS(KErrNone, ret);
+
+
+	// Open second client
+	RTelServer telServer2;
+	ret = telServer2.Connect();
+	ASSERT_EQUALS(KErrNone, ret);
+	CleanupClosePushL(telServer2);
+
+	RMobilePhone phone2;
+	ret = phone2.Open(telServer2,KMmTsyPhoneName);
+	ASSERT_EQUALS(KErrNone, ret);
+	CleanupClosePushL(phone2);
+
+	TRequestStatus requestStatus;
+	TRequestStatus requestStatus2;
+
+	iPhone.Initialise(requestStatus);
+	phone2.Initialise(requestStatus2);
+	
+	User::WaitForRequest(requestStatus);
+	ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+	User::WaitForRequest(requestStatus2);
+	ASSERT_EQUALS(KErrNone, requestStatus2.Int());
+
+	CleanupStack::PopAndDestroy(3, this);
+
+	}
+
+
+
+/**
+@SYMTestCaseID BA-CTSY-SESMG-PO-0001
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPhone::Open
+@SYMTestPriority High
+@SYMTestActions Invokes RPhone::Open
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsySessionManagementFU::TestOpen0001L()
+	{
+
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+
+	TInt err = iPhone.Open(iTelServer, KMmTsyPhoneName);
+	ASSERT_EQUALS(KErrNone, err);
+	
+	CleanupStack::PopAndDestroy(1, this); 
+	
+	}
+
+
+/**
+@SYMTestCaseID BA-CTSY-SESMG-PO-0003
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPhone::Open with bad parameter data
+@SYMTestPriority High
+@SYMTestActions Invokes RPhone::Open with bad parameter data
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsySessionManagementFU::TestOpen0003L()
+	{
+
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+
+	//"::" needed to cover some branches in name analyze
+	_LIT(KBadPhoneName, "::Bad::Phone::Name::");
+
+	TInt err = iPhone.Open(iTelServer, KBadPhoneName);
+	ASSERT_EQUALS(KErrNotFound, err);
+	
+	CleanupStack::PopAndDestroy(1, this); 
+
+	}
+
+
+/**
+@SYMTestCaseID BA-CTSY-SESMG-TGTN-0001
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RTelServer::GetTsyName
+@SYMTestPriority High
+@SYMTestActions Invokes RTelServer::GetTsyName
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsySessionManagementFU::TestGetTsyName0001L()
+	{
+
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+
+	TInt index(0);
+	TName tsyName;
+	
+	_LIT(KTsyName, "PHONETSY");
+	
+	TInt ret = iTelServer.GetTsyName(index, tsyName);
+	ASSERT_EQUALS(KErrNone, ret);
+	ASSERT_EQUALS(0, tsyName.Compare(KTsyName));
+	
+	CleanupStack::PopAndDestroy(1, this);
+	
+	}
+
+
+
+/**
+@SYMTestCaseID BA-CTSY-SESMG-TGTN-0003
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RTelServer::GetTsyName with bad parameter data
+@SYMTestPriority High
+@SYMTestActions Invokes RTelServer::GetTsyName with bad parameter data
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsySessionManagementFU::TestGetTsyName0003L()
+	{
+
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+
+	// test on negative index
+	TInt index(-1);
+	TName tsyName;
+		
+	TInt ret = iTelServer.GetTsyName(index, tsyName);
+	ASSERT_EQUALS(KErrNotFound, ret);
+
+	// test on a too large index
+	index = 100;
+		
+	ret = iTelServer.GetTsyName(index, tsyName);
+	ASSERT_EQUALS(KErrNotFound, ret);
+
+	index = 0;
+
+	// test on buffer overflow
+	TBuf<1> littleName(KNullDesC);
+	ret = iTelServer.GetTsyName(index, littleName);
+	ASSERT_EQUALS(KErrOverflow, ret);
+	
+	CleanupStack::PopAndDestroy(1, this);
+
+	}
+
+
+
+/**
+@SYMTestCaseID BA-CTSY-SESMG-TEP-0001
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RTelServer::EnumeratePhones
+@SYMTestPriority High
+@SYMTestActions Invokes RTelServer::EnumeratePhones
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsySessionManagementFU::TestEnumeratePhones0001L()
+	{
+
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+
+	TInt ret = iTelServer.UnloadPhoneModule(KMmTsyModuleName);
+	ASSERT_EQUALS(KErrNone, ret);
+	
+	TInt numPhones;
+	
+	// check if there are no phones loaded
+	ret = iTelServer.EnumeratePhones(numPhones);
+	ASSERT_EQUALS(KErrNone, ret);
+	ASSERT_EQUALS(0, numPhones);
+
+	// now add a phone
+	ret = iTelServer.LoadPhoneModule(KMmTsyModuleName);
+	ASSERT_EQUALS(KErrNone, ret);
+
+	ret = iTelServer.EnumeratePhones(numPhones);
+	ASSERT_EQUALS(KErrNone, ret);
+	ASSERT_EQUALS(1, numPhones);
+
+	CleanupStack::PopAndDestroy(1, this);
+	
+	}
+
+
+/**
+@SYMTestCaseID BA-CTSY-SESMG-TUPM-0001
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RTelServer::UnloadPhoneModule
+@SYMTestPriority High
+@SYMTestActions Invokes RTelServer::UnloadPhoneModule
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsySessionManagementFU::TestUnloadPhoneModule0001L()
+	{
+
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+
+	// test for loaded module
+	TInt ret = iTelServer.LoadPhoneModule(KMmTsyModuleName);
+	ASSERT_EQUALS(KErrNone, ret);
+
+	ret = iTelServer.UnloadPhoneModule(KMmTsyModuleName);
+	ASSERT_EQUALS(KErrNone, ret);
+
+
+	// test for unload with extension
+	//use the same name, but with extension
+	_LIT(KMyTsyName, "phonetsy.tsy");
+
+	ret = iTelServer.LoadPhoneModule(KMyTsyName);
+	ASSERT_EQUALS(KErrNone, ret);
+
+	ret = iTelServer.UnloadPhoneModule(KMyTsyName);
+	ASSERT_EQUALS(KErrNone, ret);
+
+
+	CleanupStack::PopAndDestroy(1, this);
+	
+	}
+
+
+
+/**
+@SYMTestCaseID BA-CTSY-SESMG-TUPM-0003
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RTelServer::UnloadPhoneModule with bad parameter data
+@SYMTestPriority High
+@SYMTestActions Invokes RTelServer::UnloadPhoneModule with bad parameter data
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsySessionManagementFU::TestUnloadPhoneModule0003L()
+	{
+
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+
+	// test on bad name
+	_LIT(KNoName, "noname");
+
+	TInt ret = iTelServer.UnloadPhoneModule(KNoName);
+	ASSERT_EQUALS(KErrNotFound, ret);
+
+
+	// test for KNullDesC as module name
+
+	ret = iTelServer.UnloadPhoneModule(KNullDesC);
+	ASSERT_EQUALS(KErrNotFound, ret);
+
+	CleanupStack::PopAndDestroy(1, this);
+
+	}
+
+
+
+/**
+@SYMTestCaseID BA-CTSY-SESMG-TGTVN-0001
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RTelServer::GetTsyVersionNumber
+@SYMTestPriority High
+@SYMTestActions Invokes RTelServer::GetTsyVersionNumber
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsySessionManagementFU::TestGetTsyVersionNumber0001L()
+	{
+
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+
+	TVersion version(0, 0, 0);
+
+	TInt ret = iTelServer.GetTsyVersionNumber(KMmTsyModuleName, version);
+	ASSERT_EQUALS(KErrNone, ret);
+	ASSERT_TRUE(0 <= version.iBuild);	// just common sense check
+	ASSERT_TRUE(0 <= version.iMajor);
+	ASSERT_TRUE(0 <= version.iMinor);
+
+	CleanupStack::PopAndDestroy(1, this); 
+	
+	}
+
+
+
+/**
+@SYMTestCaseID BA-CTSY-SESMG-TGTVN-0003
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RTelServer::GetTsyVersionNumber with bad parameter data
+@SYMTestPriority High
+@SYMTestActions Invokes RTelServer::GetTsyVersionNumber with bad parameter data
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsySessionManagementFU::TestGetTsyVersionNumber0003L()
+	{
+
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+
+	TVersion version(0, 0, 0);
+
+
+	_LIT(KBadName, "BadName");
+
+	// test not existiong tsy
+	TInt ret = iTelServer.GetTsyVersionNumber(KBadName, version);
+	ASSERT_EQUALS(KErrNotFound, ret);
+
+
+	TFileName bigName;
+
+	bigName.SetMax();	
+	bigName.Repeat(_L(" "));
+
+	// check buffer overlow, Etel calls PanicClient
+	ret = iTelServer.GetTsyVersionNumber(bigName, version);
+	ASSERT_EQUALS(KErrGeneral, ret);
+
+	CleanupStack::PopAndDestroy(2, this); 
+
+	}
+
+
+/**
+@SYMTestCaseID BA-CTSY-SESMG-TSEEG-0001
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RTelServer::SetExtendedErrorGranularity
+@SYMTestPriority High
+@SYMTestActions Invokes RTelServer::SetExtendedErrorGranularity
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsySessionManagementFU::TestSetExtendedErrorGranularity0001L()
+	{
+
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+
+	RTelServer::TErrorGranularity granularity(RTelServer::EErrorExtended);
+
+	TInt ret = iTelServer.SetExtendedErrorGranularity(granularity);
+	ASSERT_EQUALS(KErrNone, ret);
+
+	CleanupStack::PopAndDestroy(1, this); 
+	
+	}
+
+
+
+
+void CCTsySessionManagementFU::AuxReferenceCountL(const TDesC &aName)
+	{
+
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+
+	OpenPhoneL();
+
+    TName lineName(aName);    
+    RLine line;
+    
+    TInt ret  = line.Open(iPhone, lineName);
+    ASSERT_EQUALS(KErrNone, ret);
+    CleanupClosePushL(line);  
+    
+    TName name;
+	RCall call;
+    
+    ret = OpenNewCall(line, call, lineName, name);    
+    ASSERT_EQUALS(KErrNone, ret);
+    CleanupClosePushL(call);    
+
+	// test on successful completion
+	TInt count = call.ReferenceCount();
+    ASSERT_EQUALS(1, count);
+
+	AssertMockLtsyStatusL();
+
+	// test on successful completion, increasing count
+	RCall call2;
+	
+	ret = call2.OpenExistingCall(line, name);
+    ASSERT_EQUALS(KErrNone, ret);
+    CleanupClosePushL(call2);  
+	
+	count = call.ReferenceCount();
+    ASSERT_EQUALS(2, count);
+
+	AssertMockLtsyStatusL();
+
+	// test on successful completion, decreasing count
+	CleanupStack::PopAndDestroy(1);
+
+	count = call.ReferenceCount();
+    ASSERT_EQUALS(1, count);
+
+
+	AssertMockLtsyStatusL();
+	CleanupStack::PopAndDestroy(3, this); 
+	
+	}
+
+
+
+/**
+@SYMTestCaseID BA-CTSY-SESMG-CRC-0001
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RCall::ReferenceCount for voice calls
+@SYMTestPriority High
+@SYMTestActions Invokes RCall::ReferenceCount for voice calls
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsySessionManagementFU::TestReferenceCount0001L()
+	{
+
+	AuxReferenceCountL(KMmTsyVoice1LineName);
+	
+	}
+
+
+
+
+
+/**
+@SYMTestCaseID BA-CTSY-SESMG-CRC-0006
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RCall::ReferenceCount for data calls
+@SYMTestPriority High
+@SYMTestActions Invokes RCall::ReferenceCount for data calls
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsySessionManagementFU::TestReferenceCount0006L()
+	{
+
+	AuxReferenceCountL(KMmTsyDataLineName);
+
+	}
+
+
+
+
+/**
+@SYMTestCaseID BA-CTSY-SESMG-CRC-00011
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RCall::ReferenceCount for fax calls
+@SYMTestPriority High
+@SYMTestActions Invokes RCall::ReferenceCount for fax calls
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsySessionManagementFU::TestReferenceCount00011L()
+	{
+
+	AuxReferenceCountL(KMmTsyFaxLineName);	
+	
+	}
+
+
+
+
+void CCTsySessionManagementFU::AuxOpenExisting1L(const TDesC &aName)
+	{
+	
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+
+    TName lineName(aName);   
+    RLine line;
+    
+    TInt ret  = line.Open(iPhone, lineName);
+    ASSERT_EQUALS(KErrNone, ret);
+    CleanupClosePushL(line);  
+    
+    TName callname;
+	RCall call;
+	
+    ret = OpenNewCall(line, call, lineName, callname);
+    ASSERT_EQUALS(KErrNone, ret);
+    CleanupClosePushL(call);    
+
+
+	// test on successful completion
+	RCall call2;
+	
+	ret = call2.OpenExistingCall(line, callname);
+    ASSERT_EQUALS(KErrNone, ret);
+    CleanupClosePushL(call2);  
+	
+	AssertMockLtsyStatusL();
+
+	// test on successful completion (another params set)
+    TName name;
+    name = lineName;
+    name.Append(KDoubleColon);
+    name.Append(callname);
+
+	RCall call3;
+	
+	ret = call3.OpenExistingCall(iPhone, name);
+    ASSERT_EQUALS(KErrNone, ret);
+    CleanupClosePushL(call3);  
+	
+	AssertMockLtsyStatusL();
+
+	// test on successful completion (another params set)
+	RCall call4;
+
+    name = KMmTsyPhoneName;
+    name.Append(KDoubleColon);
+    name.Append(lineName);
+    name.Append(KDoubleColon);
+    name.Append(callname);
+	
+	ret = call4.OpenExistingCall(iTelServer, name);
+    ASSERT_EQUALS(KErrNone, ret);
+    CleanupClosePushL(call4);  
+
+	AssertMockLtsyStatusL();
+	
+	CleanupStack::PopAndDestroy(6, this); 
+		
+	}
+
+
+
+void CCTsySessionManagementFU::AuxOpenExisting3L(const TDesC &aName)
+	{
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+
+    TName lineName(aName);    
+    RLine line;
+    
+    TInt ret  = line.Open(iPhone, lineName);
+    ASSERT_EQUALS(KErrNone, ret);
+    CleanupClosePushL(line);  
+    
+    TName callname;
+	RCall call;
+	
+    ret = OpenNewCall(line, call, lineName, callname);
+    ASSERT_EQUALS(KErrNone, ret);
+    CleanupClosePushL(call);    
+
+
+	// test on bad call name
+
+	_LIT(KBadCallName, "BadCallName");
+
+	RCall call2;
+	
+	ret = call2.OpenExistingCall(line, KBadCallName);
+    ASSERT_EQUALS(KErrNotFound, ret);
+	
+	AssertMockLtsyStatusL();
+
+
+	// test on bad line name
+
+	_LIT(KBadLineName, "BadLineName");
+
+    TName name;
+    name = KBadLineName;
+    name.Append(KDoubleColon);
+    name.Append(callname);
+
+	ret = call2.OpenExistingCall(iPhone, name);
+    ASSERT_EQUALS(KErrNotSupported, ret);
+	
+	AssertMockLtsyStatusL();
+
+
+	// test on bad call name and correct line
+
+    name = lineName;
+    name.Append(KDoubleColon);
+    name.Append(KBadCallName);
+
+	ret = call2.OpenExistingCall(iPhone, name);
+    ASSERT_EQUALS(KErrNotFound, ret);
+	
+	AssertMockLtsyStatusL();
+
+
+	// test on bad phone name
+
+	_LIT(KBadPhoneName, "BadPhoneName");
+
+    name = KBadPhoneName;
+    name.Append(KDoubleColon);
+    name.Append(lineName);
+    name.Append(KDoubleColon);
+    name.Append(callname);
+	
+	ret = call2.OpenExistingCall(iTelServer, name);
+    ASSERT_EQUALS(KErrNotFound, ret);
+
+	AssertMockLtsyStatusL();
+
+
+	// test on bad line name and correct phone
+
+    name = KMmTsyPhoneName;
+    name.Append(KDoubleColon);
+    name.Append(KBadLineName);
+    name.Append(KDoubleColon);
+    name.Append(callname);
+	
+	ret = call2.OpenExistingCall(iTelServer, name);
+    ASSERT_EQUALS(KErrNotSupported, ret);
+
+	AssertMockLtsyStatusL();
+
+
+	// test on bad call name with correct phone and line
+
+    name = KMmTsyPhoneName;
+    name.Append(KDoubleColon);
+    name.Append(lineName);
+    name.Append(KDoubleColon);
+    name.Append(KBadCallName);
+	
+	ret = call2.OpenExistingCall(iTelServer, name);
+    ASSERT_EQUALS(KErrNotFound, ret);
+
+
+	// test on string analyze
+
+	_LIT(KBad, "::::::::");
+
+    name = KBad;
+	
+	ret = call2.OpenExistingCall(iTelServer, name);
+    ASSERT_EQUALS(KErrNotFound, ret);
+
+	AssertMockLtsyStatusL();
+	
+	CleanupStack::PopAndDestroy(3, this); 
+	
+	}
+
+
+/**
+@SYMTestCaseID BA-CTSY-SESMG-COEC-0001
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RCall::OpenExistingCall for voice calls
+@SYMTestPriority High
+@SYMTestActions Invokes RCall::OpenExistingCall for voice calls
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsySessionManagementFU::TestOpenExistingCall0001L()
+	{
+	
+	AuxOpenExisting1L(KMmTsyVoice1LineName);
+	
+	}
+
+
+
+/**
+@SYMTestCaseID BA-CTSY-SESMG-COEC-0003
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RCall::OpenExistingCall with bad parameter data for voice calls
+@SYMTestPriority High
+@SYMTestActions Invokes RCall::OpenExistingCall with bad parameter data for voice calls
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsySessionManagementFU::TestOpenExistingCall0003L()
+	{
+	
+	AuxOpenExisting3L(KMmTsyVoice1LineName);
+	
+	}
+
+
+
+/**
+@SYMTestCaseID BA-CTSY-SESMG-COEC-0006
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RCall::OpenExistingCall for data calls
+@SYMTestPriority High
+@SYMTestActions Invokes RCall::OpenExistingCall for data calls
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsySessionManagementFU::TestOpenExistingCall0006L()
+	{
+	
+	AuxOpenExisting1L(KMmTsyDataLineName);
+	
+	}
+
+
+
+
+/**
+@SYMTestCaseID BA-CTSY-SESMG-COEC-0008
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RCall::OpenExistingCall with bad parameter data for data calls
+@SYMTestPriority High
+@SYMTestActions Invokes RCall::OpenExistingCall with bad parameter data for data calls
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsySessionManagementFU::TestOpenExistingCall0008L()
+	{
+
+	AuxOpenExisting3L(KMmTsyDataLineName);
+
+	}
+
+
+
+
+/**
+@SYMTestCaseID BA-CTSY-SESMG-COEC-00011
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RCall::OpenExistingCall for fax calls
+@SYMTestPriority High
+@SYMTestActions Invokes RCall::OpenExistingCall for fax calls
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsySessionManagementFU::TestOpenExistingCall00011L()
+	{
+
+	AuxOpenExisting1L(KMmTsyFaxLineName);	
+	
+	}
+
+
+/**
+@SYMTestCaseID BA-CTSY-SESMG-COEC-00013
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RCall::OpenExistingCall with bad parameter data for fax calls
+@SYMTestPriority High
+@SYMTestActions Invokes RCall::OpenExistingCall with bad parameter data for fax calls
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsySessionManagementFU::TestOpenExistingCall00013L()
+	{
+
+	AuxOpenExisting3L(KMmTsyFaxLineName);	
+
+	}
+
+
+
+/**
+@SYMTestCaseID BA-CTSY-SESMG-MIM-0001
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RMobilePhone::InitialiseMM
+@SYMTestPriority High
+@SYMTestActions Invokes RMobilePhone::InitialiseMM
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsySessionManagementFU::TestInitialiseMM0001L()
+	{
+
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+
+	
+	TRequestStatus requestStatus;
+
+	RMobilePhone::TMMTableSettings tableSettings;
+	tableSettings.iLocId = 0;
+	RMobilePhone::TMMTableSettingsPckg tableSettingsPckg(tableSettings);
+	
+	iPhone.InitialiseMM(requestStatus, tableSettingsPckg);
+	
+	User::WaitForRequest(requestStatus);
+    ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
+	
+	AssertMockLtsyStatusL();
+	CleanupStack::PopAndDestroy(1, this); 
+	
+	}
+