multimediacommsengine/mmcesrv/mmceserver/tsrc/ut_server/src/UT_CMCESIPConnection.cpp
branchRCL_3
changeset 46 4da1f672912e
parent 45 3f7c7e6eea8a
child 59 b0e4b01681c5
--- a/multimediacommsengine/mmcesrv/mmceserver/tsrc/ut_server/src/UT_CMCESIPConnection.cpp	Tue Aug 31 15:35:13 2010 +0300
+++ b/multimediacommsengine/mmcesrv/mmceserver/tsrc/ut_server/src/UT_CMCESIPConnection.cpp	Wed Sep 01 12:20:28 2010 +0100
@@ -617,7 +617,31 @@
   	iConnection->ConnectionStateChanged( CSIPConnection::EUnavailable );
     EUNIT_ASSERT( !iSipSession->Body()->iIsConnectionActive );
   	
-  	
+    //cleanup orphan session test
+    CMceSipManager& manager = iServerCore->Manager();
+    iIds.iProfileID = 1;
+    iIds.iManagerType = KMceCSSIPSession;
+    iIds.iDialogType = KMceDlgTypeInvite;
+    
+    CDesC8ArrayFlat* params = new (ELeave) CDesC8ArrayFlat( KMceArrayGranularity );
+    CleanupStack::PushL( params );
+    params->AppendL( _L8("User <user2@host>") );
+    params->AppendL( _L8("User <user@host>") );
+
+    iConnection->Connection().SetState( CSIPConnection::EActive );
+    CMceCsSubSession* subsession = 
+    		manager.CreateSubSessionL( *iSession, iIds, *params );
+    CleanupStack::PushL( subsession );
+    
+    manager.AddOrphanSubSessionL(subsession);
+    CleanupStack::Pop( subsession );
+    EUNIT_ASSERT ( manager.OrphanSubSessionCount() == 1 );
+
+    iConnection->Connection().SetState( CSIPConnection::EInactive );
+  	iConnection->ConnectionStateChanged( CSIPConnection::EInactive );
+    EUNIT_ASSERT ( manager.OrphanSubSessionCount() == 0 );
+    
+    CleanupStack::PopAndDestroy();
     }