telephonyserverplugins/ctsydispatchlayer/test/dispatchertests/dispatchsrc/cctsypacketcontextfu.cpp
branchopencode
changeset 24 6638e7f4bd8f
parent 0 3553901f7fa8
--- a/telephonyserverplugins/ctsydispatchlayer/test/dispatchertests/dispatchsrc/cctsypacketcontextfu.cpp	Mon May 03 13:37:20 2010 +0300
+++ b/telephonyserverplugins/ctsydispatchlayer/test/dispatchertests/dispatchsrc/cctsypacketcontextfu.cpp	Thu May 06 15:10:38 2010 +0100
@@ -1,340 +1,340 @@
-// 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 PacketContext in the Common TSY.
-// 
-//
-
-#include "cctsypacketcontextfu.h"
-#include "cctsypacketservicesfu.h"
-
-#include <etel.h>
-#include <etelmm.h>
-#include <et_clsvr.h>
-#include <ctsy/mmtsy_names.h>
-#include <ctsy/serviceapi/mmtsy_ipcdefs.h>
-#include <test/tmockltsydata.h>
-#include <ctsy/ltsy/mltsydispatchpacketservicesinterface.h>
-
-CTestSuite* CCTsyPacketContextFU::CreateSuiteL(const TDesC& aName)
-    {
-    SUB_SUITE;
-
-    ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestUnit00027L);
-    ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestUnit00028L);
-    ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestUnit00029L);
-
-    END_SUITE;
-    }
-
-
-//
-// Actual test cases
-//
-
-/**
-@SYMTestCaseID BA-CTSYD-DIS-PACKETSERVICES-UN00027
-@SYMComponent  telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::Delete
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::Delete
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestUnit00027L()
-    {
-
-    OpenEtelServerL(EUseExtendedError);
-    CleanupStack::PushL(TCleanupItem(Cleanup,this));
-    OpenPhoneL();
-
-    RBuf8 data;
-    CleanupClosePushL(data);
-    
-    RBuf8 expectData;
-    CleanupClosePushL(expectData);
-        
-    RPacketService packetService;
-    OpenPacketServiceLC(packetService, RPacketService::EStatusUnattached);    
-   
-    // Open new context
-    TInfoName contextId;    
-    RPacketContext packetContext;   
-    packetContext.OpenNewContext(packetService, contextId); 
-    CleanupClosePushL(packetContext);
- 
-    TInfoName primaryContext;
-    TInfoName secondaryContext;
-    primaryContext.Copy(KFirstAllocatedContextName);
-    secondaryContext.Copy(KDefaultContextName);    
-    
-    //-------------------------------------------------------------------------
-    // SEND Delete request when ContextStatus is Unknown
-    //-------------------------------------------------------------------------
-    TRequestStatus requestStatus;   
-    packetContext.Delete(requestStatus);
-    
-    User::WaitForRequest(requestStatus);    
-    ASSERT_EQUALS(KErrNotReady, requestStatus.Int());   
-    AssertMockLtsyStatusL();
-       
-    // Set context in Active state
-    SetContextActiveL(contextId);
-  
-    //----------------------------------
-    // Send an unsupported request
-    //----------------------------------
-    
-    RPacketContext::TDataVolume volume; 
-    packetContext.GetDataVolumeTransferred(requestStatus, volume);
-    User::WaitForRequest(requestStatus);        
-    ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
-    AssertMockLtsyStatusL();
-    
-
-    //-------------------------------------------------------------------------
-    // TEST E: Unsolicited completion of RPacketContext::Delete
-    // from LTSY.
-    //-------------------------------------------------------------------------    
-    TMockLtsyData1 <TInfoName > ltsyData(contextId);
-    data.Close();
-    ltsyData.SerialiseL(data);
-    
-    TRequestStatus mockLtsyStatus;
-    
-    iMockLTSY.NotifyTerminated(mockLtsyStatus);
-    // send completion 
-    iMockLTSY.CompleteL(MLtsyDispatchPacketServicesDeletePdpContext::KLtsyDispatchPacketServicesDeletePdpContextApiId, KErrNone, data);
-
-    // wait for completion
-    User::WaitForRequest(mockLtsyStatus);
-    ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
-    AssertMockLtsyStatusL();
-
-    //-------------------------------------------------------------------------
-    // TEST A: failure to dispatch request to LTSY
-    //-------------------------------------------------------------------------
-    //TMockLtsyData1 <TInfoName> expData(contextId);
-    TMockLtsyData1<TInfoName> expData(primaryContext);
-    expectData.Close();
-    expData.SerialiseL(expectData);
-    
-    iMockLTSY.ExpectL(MLtsyDispatchPacketServicesDeletePdpContext::KLtsyDispatchPacketServicesDeletePdpContextApiId, expectData, KErrNotSupported);
-
-    packetContext.Delete(requestStatus);
-    
-    User::WaitForRequest(requestStatus);    
-    ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());   
-    AssertMockLtsyStatusL();
-
-    //-------------------------------------------------------------------------
-    // TEST B: failure on completion of pending request from LTSY->CTSY
-    //-------------------------------------------------------------------------
-    iMockLTSY.ExpectL (MLtsyDispatchPacketServicesDeletePdpContext::KLtsyDispatchPacketServicesDeletePdpContextApiId, expectData);
-    iMockLTSY.CompleteL(MLtsyDispatchPacketServicesDeletePdpContext::KLtsyDispatchPacketServicesDeletePdpContextApiId, KErrGeneral, data);
-
-    packetContext.Delete(requestStatus);
-    
-    User::WaitForRequest(requestStatus);    
-    ASSERT_EQUALS(KErrGeneral, requestStatus.Int());    
-    AssertMockLtsyStatusL();
-
-    //-------------------------------------------------------------------------
-    // TEST C: Successful completion request of
-    // RPacketContext::Delete when result is not cached.
-    //-------------------------------------------------------------------------
-    iMockLTSY.ExpectL (MLtsyDispatchPacketServicesDeletePdpContext::KLtsyDispatchPacketServicesDeletePdpContextApiId, expectData);
-    iMockLTSY.CompleteL(MLtsyDispatchPacketServicesDeletePdpContext::KLtsyDispatchPacketServicesDeletePdpContextApiId, KErrNone, data);
-
-    packetContext.Delete(requestStatus);
-        
-    User::WaitForRequest(requestStatus);    
-    ASSERT_EQUALS(KErrNone, requestStatus.Int());   
-    AssertMockLtsyStatusL();
-
-    //-------------------------------------------------------------------------
-    // TEST D: failure to modify context parameters when context deleted
-    //-------------------------------------------------------------------------
-    packetContext.ModifyActiveContext(requestStatus);
-    User::WaitForRequest(requestStatus);        
-    AssertMockLtsyStatusL();
-    ASSERT_EQUALS(KErrNotReady, requestStatus.Int());
- 
-    iMockLTSY.ExpectL (MLtsyDispatchPacketServicesDeletePdpContext::KLtsyDispatchPacketServicesDeletePdpContextApiId, expectData);
-    CleanupStack::PopAndDestroy(5, this); //packetContext, packetService, expectData, data, this 
-    
-    }
-
-/**
-@SYMTestCaseID BA-CTSYD-DIS-PACKETSERVICES-UN00028
-@SYMComponent  telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketContext::Delete
-@SYMTestPriority High
-@SYMTestActions Invokes multiple client requests to RPacketContext::Delete
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestUnit00028L()
-    {                   
-    OpenEtelServerL(EUseExtendedError);
-    CleanupStack::PushL(TCleanupItem(Cleanup,this));
-    OpenPhoneL();
-
-    RBuf8 data;
-    CleanupClosePushL(data);    
-    
-    RBuf8 data2;
-    CleanupClosePushL(data2);
-    
-    RBuf8 expectData;
-    CleanupClosePushL(expectData);
-    
-    RBuf8 expectData2;
-    CleanupClosePushL(expectData2);
-
-    // Open second client
-    RTelServer telServer2;
-    TInt ret = telServer2.Connect();
-    ASSERT_EQUALS(KErrNone, ret);
-    CleanupClosePushL(telServer2);
-
-    RMobilePhone phone2;
-    ret = phone2.Open(iTelServer,KMmTsyPhoneName);
-    ASSERT_EQUALS(KErrNone, ret);
-    CleanupClosePushL(phone2);
-    
-    RPacketService packetService;
-    OpenPacketServiceLC(packetService, RPacketService::EStatusUnattached);
-    
-    RPacketService packetService2;                
-    ret = packetService2.Open(phone2);
-    ASSERT_EQUALS(KErrNone, ret);
-    CleanupClosePushL(packetService2);
-    
-    // Open first context
-    TInfoName contextId;    
-    RPacketContext packetContext;
-    packetContext.OpenNewContext(packetService, contextId);
-    CleanupClosePushL(packetContext);
-    
-    // Open second context
-    TInfoName contextId2;   
-    RPacketContext packetContext2;
-    packetContext2.OpenNewContext(packetService2, contextId2);
-    CleanupClosePushL(packetContext2);
-    
-    // Set first context in Active state
-    SetContextActiveL(contextId);
-    
-    // Set second context in Active state
-    SetContextActiveL(contextId2);
-
-    //-------------------------------------------------------------------------
-    // Test A: Test multiple clients requesting RPacketContext::Delete
-    //-------------------------------------------------------------------------
-    
-    // data for first CompleteL
-    TMockLtsyData1 <TInfoName > ltsyData(contextId);
-    ltsyData.SerialiseL(data);
-    
-    // data for second CompleteL
-    TMockLtsyData1 <TInfoName > ltsyData2(contextId2);
-    ltsyData2.SerialiseL(data2);    
-   
-    // for the first request
-    TRequestStatus requestStatus;
-    TMockLtsyData1 <TInfoName> expData(contextId);
-    expData.SerialiseL(expectData);
-    
-    // for the second request
-    TRequestStatus requestStatus2;
-    TMockLtsyData1 <TInfoName> expData2(contextId2);
-    expData2.SerialiseL(expectData2);
-            
-    iMockLTSY.ExpectL(MLtsyDispatchPacketServicesDeletePdpContext::KLtsyDispatchPacketServicesDeletePdpContextApiId, expectData);        
-    iMockLTSY.CompleteL(MLtsyDispatchPacketServicesDeletePdpContext::KLtsyDispatchPacketServicesDeletePdpContextApiId, KErrNone, data);
-    iMockLTSY.ExpectL(MLtsyDispatchPacketServicesDeletePdpContext::KLtsyDispatchPacketServicesDeletePdpContextApiId, expectData2);    
-    iMockLTSY.CompleteL(MLtsyDispatchPacketServicesDeletePdpContext::KLtsyDispatchPacketServicesDeletePdpContextApiId, KErrNone, data2);
-    
-    // send first request
-    packetContext.Delete(requestStatus);        
-    
-    // send second request
-    packetContext2.Delete(requestStatus2);
-    
-    // wait for first answer
-    User::WaitForRequest(requestStatus);        
-    ASSERT_EQUALS(KErrNone, requestStatus.Int());
-        
-    // wait for second answer
-    User::WaitForRequest(requestStatus2);       
-    ASSERT_EQUALS(KErrNone, requestStatus2.Int());
-
-    AssertMockLtsyStatusL();
-    iMockLTSY.ExpectL(MLtsyDispatchPacketServicesDeletePdpContext::KLtsyDispatchPacketServicesDeletePdpContextApiId, expectData2);
-    iMockLTSY.ExpectL(MLtsyDispatchPacketServicesDeletePdpContext::KLtsyDispatchPacketServicesDeletePdpContextApiId, expectData);
-    CleanupStack::PopAndDestroy(2); // expectData2, expectData
-    CleanupStack::PopAndDestroy(9, this); //packetContext2, packetContext, packetService2, packetService, phone2, telServer2, data,data2 this  
-    }
-
-/**
-@SYMTestCaseID BA-CTSYD-DIS-PACKETSERVICES-UN00029
-@SYMComponent  telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::Delete with timeout
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::Delete and tests for timeout
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestUnit00029L()
-    {
-
-    OpenEtelServerL(EUseExtendedError);
-    CleanupStack::PushL(TCleanupItem(Cleanup,this));
-    OpenPhoneL();
-
-    RBuf8 data;
-    CleanupClosePushL(data);
-    
-    RBuf8 expectData;
-    CleanupClosePushL(expectData);
-    
-    RPacketService packetService;
-    OpenPacketServiceLC(packetService, RPacketService::EStatusUnattached);
-    
-    // Open new context
-    TInfoName contextId;    
-    RPacketContext packetContext;   
-    packetContext.OpenNewContext(packetService, contextId); 
-    CleanupClosePushL(packetContext);
-    
-    // Set context in Active state
-    SetContextActiveL(contextId);
-    
-    //-------------------------------------------------------------------------
-    // Test A: Test timeout of RPacketContext::Delete
-    //-------------------------------------------------------------------------     
-    TRequestStatus requestStatus;   
-    TMockLtsyData1 <TInfoName> expData(contextId);
-    expData.SerialiseL(expectData);    
-    iMockLTSY.ExpectL(MLtsyDispatchPacketServicesDeletePdpContext::KLtsyDispatchPacketServicesDeletePdpContextApiId, expectData);
-    
-    packetContext.Delete(requestStatus);
-        
-    User::WaitForRequest(requestStatus);    
-    ASSERT_EQUALS(KErrTimedOut, requestStatus.Int());   
-    AssertMockLtsyStatusL();
-    
-    iMockLTSY.ExpectL(MLtsyDispatchPacketServicesDeletePdpContext::KLtsyDispatchPacketServicesDeletePdpContextApiId, expectData);
-    CleanupStack::PopAndDestroy(5, this); //packetContext, packetService, data, expectData, this
-    }
+// 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 PacketContext in the Common TSY.
+// 
+//
+
+#include "cctsypacketcontextfu.h"
+#include "cctsypacketservicesfu.h"
+
+#include <etel.h>
+#include <etelmm.h>
+#include <et_clsvr.h>
+#include <ctsy/mmtsy_names.h>
+#include <ctsy/serviceapi/mmtsy_ipcdefs.h>
+#include <test/tmockltsydata.h>
+#include <ctsy/ltsy/mltsydispatchpacketservicesinterface.h>
+
+CTestSuite* CCTsyPacketContextFU::CreateSuiteL(const TDesC& aName)
+    {
+    SUB_SUITE;
+
+    ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestUnit00027L);
+    ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestUnit00028L);
+    ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestUnit00029L);
+
+    END_SUITE;
+    }
+
+
+//
+// Actual test cases
+//
+
+/**
+@SYMTestCaseID BA-CTSYD-DIS-PACKETSERVICES-UN00027
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::Delete
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::Delete
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestUnit00027L()
+    {
+
+    OpenEtelServerL(EUseExtendedError);
+    CleanupStack::PushL(TCleanupItem(Cleanup,this));
+    OpenPhoneL();
+
+    RBuf8 data;
+    CleanupClosePushL(data);
+    
+    RBuf8 expectData;
+    CleanupClosePushL(expectData);
+        
+    RPacketService packetService;
+    OpenPacketServiceLC(packetService, RPacketService::EStatusUnattached);    
+   
+    // Open new context
+    TInfoName contextId;    
+    RPacketContext packetContext;   
+    packetContext.OpenNewContext(packetService, contextId); 
+    CleanupClosePushL(packetContext);
+ 
+    TInfoName primaryContext;
+    TInfoName secondaryContext;
+    primaryContext.Copy(KFirstAllocatedContextName);
+    secondaryContext.Copy(KDefaultContextName);    
+    
+    //-------------------------------------------------------------------------
+    // SEND Delete request when ContextStatus is Unknown
+    //-------------------------------------------------------------------------
+    TRequestStatus requestStatus;   
+    packetContext.Delete(requestStatus);
+    
+    User::WaitForRequest(requestStatus);    
+    ASSERT_EQUALS(KErrNotReady, requestStatus.Int());   
+    AssertMockLtsyStatusL();
+       
+    // Set context in Active state
+    SetContextActiveL(contextId);
+  
+    //----------------------------------
+    // Send an unsupported request
+    //----------------------------------
+    
+    RPacketContext::TDataVolume volume; 
+    packetContext.GetDataVolumeTransferred(requestStatus, volume);
+    User::WaitForRequest(requestStatus);        
+    ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
+    AssertMockLtsyStatusL();
+    
+
+    //-------------------------------------------------------------------------
+    // TEST E: Unsolicited completion of RPacketContext::Delete
+    // from LTSY.
+    //-------------------------------------------------------------------------    
+    TMockLtsyData1 <TInfoName > ltsyData(contextId);
+    data.Close();
+    ltsyData.SerialiseL(data);
+    
+    TRequestStatus mockLtsyStatus;
+    
+    iMockLTSY.NotifyTerminated(mockLtsyStatus);
+    // send completion 
+    iMockLTSY.CompleteL(MLtsyDispatchPacketServicesDeletePdpContext::KLtsyDispatchPacketServicesDeletePdpContextApiId, KErrNone, data);
+
+    // wait for completion
+    User::WaitForRequest(mockLtsyStatus);
+    ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+    AssertMockLtsyStatusL();
+
+    //-------------------------------------------------------------------------
+    // TEST A: failure to dispatch request to LTSY
+    //-------------------------------------------------------------------------
+    //TMockLtsyData1 <TInfoName> expData(contextId);
+    TMockLtsyData1<TInfoName> expData(primaryContext);
+    expectData.Close();
+    expData.SerialiseL(expectData);
+    
+    iMockLTSY.ExpectL(MLtsyDispatchPacketServicesDeletePdpContext::KLtsyDispatchPacketServicesDeletePdpContextApiId, expectData, KErrNotSupported);
+
+    packetContext.Delete(requestStatus);
+    
+    User::WaitForRequest(requestStatus);    
+    ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());   
+    AssertMockLtsyStatusL();
+
+    //-------------------------------------------------------------------------
+    // TEST B: failure on completion of pending request from LTSY->CTSY
+    //-------------------------------------------------------------------------
+    iMockLTSY.ExpectL (MLtsyDispatchPacketServicesDeletePdpContext::KLtsyDispatchPacketServicesDeletePdpContextApiId, expectData);
+    iMockLTSY.CompleteL(MLtsyDispatchPacketServicesDeletePdpContext::KLtsyDispatchPacketServicesDeletePdpContextApiId, KErrGeneral, data);
+
+    packetContext.Delete(requestStatus);
+    
+    User::WaitForRequest(requestStatus);    
+    ASSERT_EQUALS(KErrGeneral, requestStatus.Int());    
+    AssertMockLtsyStatusL();
+
+    //-------------------------------------------------------------------------
+    // TEST C: Successful completion request of
+    // RPacketContext::Delete when result is not cached.
+    //-------------------------------------------------------------------------
+    iMockLTSY.ExpectL (MLtsyDispatchPacketServicesDeletePdpContext::KLtsyDispatchPacketServicesDeletePdpContextApiId, expectData);
+    iMockLTSY.CompleteL(MLtsyDispatchPacketServicesDeletePdpContext::KLtsyDispatchPacketServicesDeletePdpContextApiId, KErrNone, data);
+
+    packetContext.Delete(requestStatus);
+        
+    User::WaitForRequest(requestStatus);    
+    ASSERT_EQUALS(KErrNone, requestStatus.Int());   
+    AssertMockLtsyStatusL();
+
+    //-------------------------------------------------------------------------
+    // TEST D: failure to modify context parameters when context deleted
+    //-------------------------------------------------------------------------
+    packetContext.ModifyActiveContext(requestStatus);
+    User::WaitForRequest(requestStatus);        
+    AssertMockLtsyStatusL();
+    ASSERT_EQUALS(KErrNotReady, requestStatus.Int());
+ 
+    iMockLTSY.ExpectL (MLtsyDispatchPacketServicesDeletePdpContext::KLtsyDispatchPacketServicesDeletePdpContextApiId, expectData);
+    CleanupStack::PopAndDestroy(5, this); //packetContext, packetService, expectData, data, this 
+    
+    }
+
+/**
+@SYMTestCaseID BA-CTSYD-DIS-PACKETSERVICES-UN00028
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketContext::Delete
+@SYMTestPriority High
+@SYMTestActions Invokes multiple client requests to RPacketContext::Delete
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestUnit00028L()
+    {                   
+    OpenEtelServerL(EUseExtendedError);
+    CleanupStack::PushL(TCleanupItem(Cleanup,this));
+    OpenPhoneL();
+
+    RBuf8 data;
+    CleanupClosePushL(data);    
+    
+    RBuf8 data2;
+    CleanupClosePushL(data2);
+    
+    RBuf8 expectData;
+    CleanupClosePushL(expectData);
+    
+    RBuf8 expectData2;
+    CleanupClosePushL(expectData2);
+
+    // Open second client
+    RTelServer telServer2;
+    TInt ret = telServer2.Connect();
+    ASSERT_EQUALS(KErrNone, ret);
+    CleanupClosePushL(telServer2);
+
+    RMobilePhone phone2;
+    ret = phone2.Open(iTelServer,KMmTsyPhoneName);
+    ASSERT_EQUALS(KErrNone, ret);
+    CleanupClosePushL(phone2);
+    
+    RPacketService packetService;
+    OpenPacketServiceLC(packetService, RPacketService::EStatusUnattached);
+    
+    RPacketService packetService2;                
+    ret = packetService2.Open(phone2);
+    ASSERT_EQUALS(KErrNone, ret);
+    CleanupClosePushL(packetService2);
+    
+    // Open first context
+    TInfoName contextId;    
+    RPacketContext packetContext;
+    packetContext.OpenNewContext(packetService, contextId);
+    CleanupClosePushL(packetContext);
+    
+    // Open second context
+    TInfoName contextId2;   
+    RPacketContext packetContext2;
+    packetContext2.OpenNewContext(packetService2, contextId2);
+    CleanupClosePushL(packetContext2);
+    
+    // Set first context in Active state
+    SetContextActiveL(contextId);
+    
+    // Set second context in Active state
+    SetContextActiveL(contextId2);
+
+    //-------------------------------------------------------------------------
+    // Test A: Test multiple clients requesting RPacketContext::Delete
+    //-------------------------------------------------------------------------
+    
+    // data for first CompleteL
+    TMockLtsyData1 <TInfoName > ltsyData(contextId);
+    ltsyData.SerialiseL(data);
+    
+    // data for second CompleteL
+    TMockLtsyData1 <TInfoName > ltsyData2(contextId2);
+    ltsyData2.SerialiseL(data2);    
+   
+    // for the first request
+    TRequestStatus requestStatus;
+    TMockLtsyData1 <TInfoName> expData(contextId);
+    expData.SerialiseL(expectData);
+    
+    // for the second request
+    TRequestStatus requestStatus2;
+    TMockLtsyData1 <TInfoName> expData2(contextId2);
+    expData2.SerialiseL(expectData2);
+            
+    iMockLTSY.ExpectL(MLtsyDispatchPacketServicesDeletePdpContext::KLtsyDispatchPacketServicesDeletePdpContextApiId, expectData);        
+    iMockLTSY.CompleteL(MLtsyDispatchPacketServicesDeletePdpContext::KLtsyDispatchPacketServicesDeletePdpContextApiId, KErrNone, data);
+    iMockLTSY.ExpectL(MLtsyDispatchPacketServicesDeletePdpContext::KLtsyDispatchPacketServicesDeletePdpContextApiId, expectData2);    
+    iMockLTSY.CompleteL(MLtsyDispatchPacketServicesDeletePdpContext::KLtsyDispatchPacketServicesDeletePdpContextApiId, KErrNone, data2);
+    
+    // send first request
+    packetContext.Delete(requestStatus);        
+    
+    // send second request
+    packetContext2.Delete(requestStatus2);
+    
+    // wait for first answer
+    User::WaitForRequest(requestStatus);        
+    ASSERT_EQUALS(KErrNone, requestStatus.Int());
+        
+    // wait for second answer
+    User::WaitForRequest(requestStatus2);       
+    ASSERT_EQUALS(KErrNone, requestStatus2.Int());
+
+    AssertMockLtsyStatusL();
+    iMockLTSY.ExpectL(MLtsyDispatchPacketServicesDeletePdpContext::KLtsyDispatchPacketServicesDeletePdpContextApiId, expectData2);
+    iMockLTSY.ExpectL(MLtsyDispatchPacketServicesDeletePdpContext::KLtsyDispatchPacketServicesDeletePdpContextApiId, expectData);
+    CleanupStack::PopAndDestroy(2); // expectData2, expectData
+    CleanupStack::PopAndDestroy(9, this); //packetContext2, packetContext, packetService2, packetService, phone2, telServer2, data,data2 this  
+    }
+
+/**
+@SYMTestCaseID BA-CTSYD-DIS-PACKETSERVICES-UN00029
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::Delete with timeout
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::Delete and tests for timeout
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestUnit00029L()
+    {
+
+    OpenEtelServerL(EUseExtendedError);
+    CleanupStack::PushL(TCleanupItem(Cleanup,this));
+    OpenPhoneL();
+
+    RBuf8 data;
+    CleanupClosePushL(data);
+    
+    RBuf8 expectData;
+    CleanupClosePushL(expectData);
+    
+    RPacketService packetService;
+    OpenPacketServiceLC(packetService, RPacketService::EStatusUnattached);
+    
+    // Open new context
+    TInfoName contextId;    
+    RPacketContext packetContext;   
+    packetContext.OpenNewContext(packetService, contextId); 
+    CleanupClosePushL(packetContext);
+    
+    // Set context in Active state
+    SetContextActiveL(contextId);
+    
+    //-------------------------------------------------------------------------
+    // Test A: Test timeout of RPacketContext::Delete
+    //-------------------------------------------------------------------------     
+    TRequestStatus requestStatus;   
+    TMockLtsyData1 <TInfoName> expData(contextId);
+    expData.SerialiseL(expectData);    
+    iMockLTSY.ExpectL(MLtsyDispatchPacketServicesDeletePdpContext::KLtsyDispatchPacketServicesDeletePdpContextApiId, expectData);
+    
+    packetContext.Delete(requestStatus);
+        
+    User::WaitForRequest(requestStatus);    
+    ASSERT_EQUALS(KErrTimedOut, requestStatus.Int());   
+    AssertMockLtsyStatusL();
+    
+    iMockLTSY.ExpectL(MLtsyDispatchPacketServicesDeletePdpContext::KLtsyDispatchPacketServicesDeletePdpContextApiId, expectData);
+    CleanupStack::PopAndDestroy(5, this); //packetContext, packetService, data, expectData, this
+    }