locationsystemui/locationsysui/tsrc/src/posnotificationtest.cpp
changeset 35 1a92308afc46
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/tsrc/src/posnotificationtest.cpp	Fri Jul 09 20:18:03 2010 +0530
@@ -0,0 +1,1297 @@
+/*
+ * Copyright (c) 2010 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: Implementation of the notification related test cases.
+ *
+ */
+#include "posnotificationtest.h"
+#include <lbs/epos_cposnetworkprivacy.h>
+#include <EPos_CPosGSMPrivacyRequestInfo.h> 
+#include <EPos_CPosSUPLPrivacyRequestInfo.h>
+#include <EPos_CPosNetworkPrivacyRequestInfo.h> 
+#include <QDebug>
+// constants
+_LIT( KTxtRequestorName, "TestNotificationRequestor" );
+_LIT( KTxtLongRequestorName, "123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890");
+_LIT( KTxtRequestorURL, "www.nokia.com" );
+_LIT( KTxtRequestorPhone, "0501231231" );
+_LIT( KTxtRequestorEmail, "abcd" );
+_LIT( KTxtRequestorSIPURL, "James@Hill.se" );
+_LIT(KTxtRequestorIMSPublicIdentity, "abcde123");
+_LIT( KTxtRequestorIMS, "5665656656" );
+_LIT( KTxtRequestorMIN, "9999999999" );
+_LIT( KTxtRequestorMDN, "5665656656" );
+
+const TInt KWaitPeriod1 = 20000000;
+const TInt KWaitPeriod2 = 40000000;
+
+//---------------------------------------------------------------------
+// PosNotificationTest::HandleVerifyComplete()
+// 
+//---------------------------------------------------------------------
+
+void PosNotificationTest::HandleVerifyComplete(TInt /*aRequestId*/,
+        TInt /*aCompletionCode*/)
+    {
+    mEventLoop.exit();
+    }
+
+//---------------------------------------------------------------------
+// PosNotificationTest::IssueNotificationRequest1()
+// 
+//---------------------------------------------------------------------
+void PosNotificationTest::IssueNotificationRequest1()
+    {
+    TRAPD(error,IssueNotificationRequest1L());
+    QVERIFY( error == KErrNone );
+    }
+
+//---------------------------------------------------------------------
+// PosNotificationTest::IssueNotificationRequest2()
+// 
+//---------------------------------------------------------------------
+void PosNotificationTest::IssueNotificationRequest2()
+    {
+    TRAPD(error,IssueNotificationRequest2L());
+    QVERIFY( error == KErrNone );
+    }
+
+//---------------------------------------------------------------------
+// PosNotificationTest::IssueNotificationRequest3()
+// 
+//---------------------------------------------------------------------
+void PosNotificationTest::IssueNotificationRequest3()
+    {
+    TRAPD(error,IssueNotificationRequest3L());
+    QVERIFY( error == KErrNone );
+    }
+
+//---------------------------------------------------------------------
+// PosNotificationTest::IssueNotificationRequest4()
+// 
+//---------------------------------------------------------------------
+void PosNotificationTest::IssueNotificationRequest4()
+    {
+    TRAPD(error,IssueNotificationRequest4L());
+    QVERIFY( error == KErrNone );
+    }
+
+//---------------------------------------------------------------------
+// PosNotificationTest::IssueNotificationRequest5()
+// 
+//---------------------------------------------------------------------
+void PosNotificationTest::IssueNotificationRequest5()
+    {
+    TRAPD(error,IssueNotificationRequest5L());
+    QVERIFY( error == KErrNone );
+    }
+
+//---------------------------------------------------------------------
+// PosNotificationTest::IssueNotificationRequest6()
+// 
+//---------------------------------------------------------------------
+void PosNotificationTest::IssueNotificationRequest6()
+    {
+    TRAPD(error,IssueNotificationRequest6L());
+    QVERIFY( error == KErrNone );
+    }
+
+//---------------------------------------------------------------------
+// PosNotificationTest::IssueNotificationRequest7()
+// 
+//---------------------------------------------------------------------
+void PosNotificationTest::IssueNotificationRequest7()
+    {
+    TRAPD(error,IssueNotificationRequest7L());
+    QVERIFY( error == KErrNone );
+    }
+
+//---------------------------------------------------------------------
+// PosNotificationTest::IssueNotificationRequest8()
+// 
+//---------------------------------------------------------------------
+void PosNotificationTest::IssueNotificationRequest8()
+    {
+    TRAPD(error,IssueNotificationRequest8L());
+    QVERIFY( error == KErrNone );
+    }
+
+//---------------------------------------------------------------------
+// PosNotificationTest::IssueNotificationRequest9()
+// 
+//---------------------------------------------------------------------
+void PosNotificationTest::IssueNotificationRequest9()
+    {
+    TRAPD(error,IssueNotificationRequest9L());
+    QVERIFY( error == KErrNone );
+    }
+
+//---------------------------------------------------------------------
+// PosNotificationTest::IssueNotificationRequest10()
+// 
+//---------------------------------------------------------------------
+void PosNotificationTest::IssueNotificationRequest10()
+    {
+    TRAPD(error,IssueNotificationRequest10L());
+    QVERIFY( error == KErrNone );
+    }
+
+//---------------------------------------------------------------------
+// PosNotificationTest::IssueNotificationRequest11()
+// 
+//---------------------------------------------------------------------
+void PosNotificationTest::IssueNotificationRequest11()
+    {
+    TRAPD(error,IssueNotificationRequest11L());
+    QVERIFY( error == KErrNone );
+    }
+
+//---------------------------------------------------------------------
+// PosNotificationTest::IssueNotificationRequest12()
+// 
+//---------------------------------------------------------------------
+void PosNotificationTest::IssueNotificationRequest12()
+    {
+    TRAPD(error,IssueNotificationRequest12L());
+    QVERIFY( error == KErrNone );
+    }
+
+//---------------------------------------------------------------------
+// PosNotificationTest::IssueNotificationRequest13()
+// 
+//---------------------------------------------------------------------
+void PosNotificationTest::IssueNotificationRequest13()
+    {
+    TRAPD(error,IssueNotificationRequest13L());
+    QVERIFY( error == KErrNone );
+    }
+
+//---------------------------------------------------------------------
+// PosNotificationTest::IssueNotificationRequest14()
+// 
+//---------------------------------------------------------------------
+void PosNotificationTest::IssueNotificationRequest14()
+    {
+    TRAPD(error,IssueNotificationRequest14L());
+    QVERIFY( error == KErrNone );
+    }
+
+//---------------------------------------------------------------------
+// PosNotificationTest::IssueNotificationRequest15()
+// 
+//---------------------------------------------------------------------
+void PosNotificationTest::IssueNotificationRequest15()
+    {
+    TRAPD(error,IssueNotificationRequest15L());
+    QVERIFY( error == KErrNone );
+    }
+
+//---------------------------------------------------------------------
+// PosNotificationTest::IssueNotificationRequest16()
+// 
+//---------------------------------------------------------------------
+void PosNotificationTest::IssueNotificationRequest16()
+    {
+    TRAPD(error,IssueNotificationRequest16L());
+    QVERIFY( error == KErrNone );
+    }
+
+//---------------------------------------------------------------------
+// PosNotificationTest::IssueNotificationRequest17()
+// 
+//---------------------------------------------------------------------
+void PosNotificationTest::IssueNotificationRequest17()
+    {
+    TRAPD(error,IssueNotificationRequest17L());
+    QVERIFY( error == KErrNone );
+    }
+
+//---------------------------------------------------------------------
+// PosNotificationTest::IssueNotificationRequest18()
+// 
+//---------------------------------------------------------------------
+void PosNotificationTest::IssueNotificationRequest18()
+    {
+    TRAPD(error,IssueNotificationRequest18L());
+    QVERIFY( error == KErrNone );
+    }
+
+//---------------------------------------------------------------------
+// PosNotificationTest::IssueNotifyVerificationTimeOut1()
+// 
+//---------------------------------------------------------------------
+void PosNotificationTest::IssueNotifyVerificationTimeOut1()
+    {
+    TRAPD(error,IssueNotifyVerificationTimeOut1L());
+    QVERIFY( error == KErrNone );
+    }
+
+//---------------------------------------------------------------------
+// PosNotificationTest::IssueNotifyVerificationTimeOut2()
+// 
+//---------------------------------------------------------------------
+void PosNotificationTest::IssueNotifyVerificationTimeOut2()
+    {
+    TRAPD(error,IssueNotifyVerificationTimeOut2L());
+    QVERIFY( error == KErrNone );
+    }
+
+//---------------------------------------------------------------------
+// PosNotificationTest::IssueNotifyVerificationTimeOut3()
+// 
+//---------------------------------------------------------------------
+void PosNotificationTest::IssueNotifyVerificationTimeOut3()
+    {
+    TRAPD(error,IssueNotifyVerificationTimeOut3L());
+    QVERIFY( error == KErrNone );
+    }
+
+//---------------------------------------------------------------------
+// PosNotificationTest::IssueNotifyVerificationTimeOut4()
+// 
+//---------------------------------------------------------------------
+void PosNotificationTest::IssueNotifyVerificationTimeOut4()
+    {
+    TRAPD(error,IssueNotifyVerificationTimeOut4L());
+    QVERIFY( error == KErrNone );
+    }
+
+//---------------------------------------------------------------------
+// PosNotificationTest::IssueMultipleRequests1()
+// 
+//---------------------------------------------------------------------
+void PosNotificationTest::IssueMultipleRequests1()
+    {
+    TRAPD(error,IssueMultipleRequests1L());
+    QVERIFY( error == KErrNone );
+    }
+
+//---------------------------------------------------------------------
+// PosNotificationTest::IssueMultipleRequests2()
+// 
+//---------------------------------------------------------------------
+void PosNotificationTest::IssueMultipleRequests2()
+    {
+    TRAPD(error,IssueMultipleRequests2L());
+    QVERIFY( error == KErrNone );
+    }
+
+//---------------------------------------------------------------------
+// PosNotificationTest::IssueNotificationRequest1L()
+// 
+//---------------------------------------------------------------------
+void PosNotificationTest::IssueNotificationRequest1L()
+    {
+    qDebug() << "IssueNotificationRequest1L - In";
+    TInt result = KErrNone;
+    // Create a new CPosGSMPrivacyRequestInfo object    
+    CPosGSMPrivacyRequestInfo* info = CPosGSMPrivacyRequestInfo::NewLC();
+    // Set Lcs client identified by phone number
+    info->SetLCSClientL(KTxtRequestorPhone,
+            CPosGSMPrivacyRequestInfo::EIdTypeMSISDN);
+    // set the requestor identified by phone number
+    info->SetRequestorL(KTxtRequestorPhone,
+            CPosGSMPrivacyRequestInfo::EIdTypeMSISDN);
+    // set request type to be single shot
+    info->SetRequestType(CPosNetworkPrivacyRequestInfo::ERequestSingleShot);
+
+    TInt requestId = -1;
+    // create an instance of CPosNetworkPrivacy used to issue the notification request
+    CPosNetworkPrivacy* privacy = CPosNetworkPrivacy::NewL();
+    CleanupStack::PushL(privacy);
+    TRAPD(error,privacy->NotifyLocationRequestL(*info, requestId));
+    qDebug() << "After call to NotifyLocationRequestL,error =" << error;
+    if (error == KErrNone)
+        {
+        if (requestId < 0)
+            {
+            User::Leave(KErrGeneral);
+            }
+        }
+    else
+        {
+        User::Leave(KErrGeneral);
+        }
+    CleanupStack::PopAndDestroy(privacy);
+    CleanupStack::PopAndDestroy(info);
+    }
+
+//---------------------------------------------------------------------
+// PosNotificationTest::IssueNotificationRequest2L()
+// 
+//---------------------------------------------------------------------
+void PosNotificationTest::IssueNotificationRequest2L()
+    {
+    TInt result = KErrNone;
+    // Create a new CPosGSMPrivacyRequestInfo object    
+    CPosGSMPrivacyRequestInfo* info = CPosGSMPrivacyRequestInfo::NewLC();
+    // Set Lcs client identified by phone number
+    info->SetLCSClientL(KTxtRequestorPhone,
+            CPosGSMPrivacyRequestInfo::EIdTypeMSISDN);
+    // set the requestor identified by phone number
+    info->SetRequestorL(KTxtRequestorPhone,
+            CPosGSMPrivacyRequestInfo::EIdTypeMSISDN);
+    // set request type to be periodic
+    info->SetRequestType(CPosNetworkPrivacyRequestInfo::ERequestPeriodic);
+
+    TInt requestId = -1;
+    // create an instance of CPosNetworkPrivacy used to issue the notification request
+    CPosNetworkPrivacy* privacy = CPosNetworkPrivacy::NewL();
+    CleanupStack::PushL(privacy);
+    TRAPD(error,privacy->NotifyLocationRequestL(*info, requestId));
+    if (error == KErrNone)
+        {
+        if (requestId < 0)
+            {
+            User::Leave(KErrGeneral);
+            }
+        }
+    else
+        {
+        User::Leave(KErrGeneral);
+        }
+    CleanupStack::PopAndDestroy(privacy);
+    CleanupStack::PopAndDestroy(info);
+    }
+
+//---------------------------------------------------------------------
+// PosNotificationTest::IssueNotificationRequest3L()
+// 
+//---------------------------------------------------------------------
+void PosNotificationTest::IssueNotificationRequest3L()
+    {
+    TInt result = KErrNone;
+    // Create a new CPosGSMPrivacyRequestInfo object    
+    CPosGSMPrivacyRequestInfo* info = CPosGSMPrivacyRequestInfo::NewLC();
+    // Set Lcs client identified by name
+    info->SetLCSClientL(KTxtRequestorName,
+            CPosGSMPrivacyRequestInfo::EIdTypeLogicalName);
+    // set the requestor identified by name
+    info->SetRequestorL(KTxtRequestorName,
+            CPosGSMPrivacyRequestInfo::EIdTypeLogicalName);
+    // set request type to be single shot
+    info->SetRequestType(CPosNetworkPrivacyRequestInfo::ERequestSingleShot);
+
+    TInt requestId = -1;
+    // create an instance of CPosNetworkPrivacy used to issue the notification request
+    CPosNetworkPrivacy* privacy = CPosNetworkPrivacy::NewL();
+    CleanupStack::PushL(privacy);
+    TRAPD(error,privacy->NotifyLocationRequestL(*info, requestId));
+    if (error == KErrNone)
+        {
+        if (requestId < 0)
+            {
+            User::Leave(KErrGeneral);
+            }
+        }
+    else
+        {
+        User::Leave(KErrGeneral);
+        }
+    CleanupStack::PopAndDestroy(privacy);
+    CleanupStack::PopAndDestroy(info);
+    }
+
+//---------------------------------------------------------------------
+// PosNotificationTest::IssueNotificationRequest4L()
+// 
+//---------------------------------------------------------------------
+void PosNotificationTest::IssueNotificationRequest4L()
+    {
+    	
+    TInt result = KErrNone;
+    // Create a new CPosGSMPrivacyRequestInfo object    
+    CPosGSMPrivacyRequestInfo* info = CPosGSMPrivacyRequestInfo::NewLC();
+    // Set Lcs client identified by email
+    info->SetLCSClientL(KTxtRequestorEmail,
+            CPosGSMPrivacyRequestInfo::EIdTypeEmailAddress);
+    // set the requestor identified by email
+    info->SetRequestorL(KTxtRequestorEmail,
+            CPosGSMPrivacyRequestInfo::EIdTypeEmailAddress);
+    // set request type to be single shot
+    info->SetRequestType(CPosNetworkPrivacyRequestInfo::ERequestSingleShot);
+
+    TInt requestId = -1;
+    // create an instance of CPosNetworkPrivacy used to issue the notification request
+    CPosNetworkPrivacy* privacy = CPosNetworkPrivacy::NewL();
+    CleanupStack::PushL(privacy);
+    TRAPD(error,privacy->NotifyLocationRequestL(*info, requestId));
+    qDebug()<<"error code  is  "<<error << " in testcase4";
+    if (error == KErrNone)
+        {
+        if (requestId < 0)
+            {
+            User::Leave(KErrGeneral);
+            }
+        }
+    else
+        {
+        User::Leave(KErrGeneral);
+        }
+    CleanupStack::PopAndDestroy(privacy);
+    CleanupStack::PopAndDestroy(info);
+    }
+
+//---------------------------------------------------------------------
+// PosNotificationTest::IssueNotificationRequest5L()
+// 
+//---------------------------------------------------------------------
+void PosNotificationTest::IssueNotificationRequest5L()
+    {
+    TInt result = KErrNone;
+    // Create a new CPosGSMPrivacyRequestInfo object    
+    CPosGSMPrivacyRequestInfo* info = CPosGSMPrivacyRequestInfo::NewLC();
+    // Set Lcs client identified by url
+    info->SetLCSClientL(KTxtRequestorURL,
+            CPosGSMPrivacyRequestInfo::EIdTypeURL);
+    // set the requestor identified by url
+    info->SetRequestorL(KTxtRequestorURL,
+            CPosGSMPrivacyRequestInfo::EIdTypeURL);
+    // set request type to be single shot
+    info->SetRequestType(CPosNetworkPrivacyRequestInfo::ERequestSingleShot);
+
+    TInt requestId = -1;
+    // create an instance of CPosNetworkPrivacy used to issue the notification request
+    CPosNetworkPrivacy* privacy = CPosNetworkPrivacy::NewL();
+    CleanupStack::PushL(privacy);
+    TRAPD(error,privacy->NotifyLocationRequestL(*info, requestId));
+    if (error == KErrNone)
+        {
+        if (requestId < 0)
+            {
+            User::Leave(KErrGeneral);
+            }
+        }
+    else
+        {
+        User::Leave(KErrGeneral);
+        }
+    CleanupStack::PopAndDestroy(privacy);
+    CleanupStack::PopAndDestroy(info);
+    }
+
+//---------------------------------------------------------------------
+// PosNotificationTest::IssueNotificationRequest6L()
+// 
+//---------------------------------------------------------------------
+void PosNotificationTest::IssueNotificationRequest6L()
+    {
+    TInt result = KErrNone;
+    // Create a new CPosGSMPrivacyRequestInfo object    
+    CPosGSMPrivacyRequestInfo* info = CPosGSMPrivacyRequestInfo::NewLC();
+    // Set Lcs client identified by URL of user in a SIP session
+    info->SetLCSClientL(KTxtRequestorSIPURL,
+            CPosGSMPrivacyRequestInfo::EIdTypeSIPURL);
+    // set the requestor identified by URL of user in a SIP session
+    info->SetRequestorL(KTxtRequestorSIPURL,
+            CPosGSMPrivacyRequestInfo::EIdTypeSIPURL);
+    // set request type to be single shot
+    info->SetRequestType(CPosNetworkPrivacyRequestInfo::ERequestSingleShot);
+
+    TInt requestId = -1;
+    // create an instance of CPosNetworkPrivacy used to issue the notification request
+    CPosNetworkPrivacy* privacy = CPosNetworkPrivacy::NewL();
+    CleanupStack::PushL(privacy);
+    TRAPD(error,privacy->NotifyLocationRequestL(*info, requestId));
+    if (error == KErrNone)
+        {
+        if (requestId < 0)
+            {
+            User::Leave(KErrGeneral);
+            }
+        }
+    else
+        {
+        User::Leave(KErrGeneral);
+        }
+    CleanupStack::PopAndDestroy(privacy);
+    CleanupStack::PopAndDestroy(info);
+    }
+
+//---------------------------------------------------------------------
+// PosNotificationTest::IssueNotificationRequest7L()
+// 
+//---------------------------------------------------------------------
+void PosNotificationTest::IssueNotificationRequest7L()
+    {
+    TInt result = KErrNone;
+    // Create a new CPosGSMPrivacyRequestInfo object    
+    CPosGSMPrivacyRequestInfo* info = CPosGSMPrivacyRequestInfo::NewLC();
+    // Set Lcs client identified by user Identifier in an IP Multimedia Service session.
+    info->SetLCSClientL(KTxtRequestorIMSPublicIdentity,
+            CPosGSMPrivacyRequestInfo::EIdTypeIMSPublicIdentity);
+    // set the requestor identified by Mobile Identification Number
+    info->SetRequestorL(KTxtRequestorIMSPublicIdentity,
+            CPosGSMPrivacyRequestInfo::EIdTypeIMSPublicIdentity);
+    // set request type to be single shot
+    info->SetRequestType(CPosNetworkPrivacyRequestInfo::ERequestSingleShot);
+
+    TInt requestId = -1;
+    // create an instance of CPosNetworkPrivacy used to issue the notification request
+    CPosNetworkPrivacy* privacy = CPosNetworkPrivacy::NewL();
+    CleanupStack::PushL(privacy);
+    TRAPD(error,privacy->NotifyLocationRequestL(*info, requestId));
+    if (error == KErrNone)
+        {
+        if (requestId < 0)
+            {
+            User::Leave(KErrGeneral);
+            }
+        }
+    else
+        {
+        User::Leave(KErrGeneral);
+        }
+    CleanupStack::PopAndDestroy(privacy);
+    CleanupStack::PopAndDestroy(info);
+    }
+//---------------------------------------------------------------------
+// PosNotificationTest::IssueNotificationRequest8L()
+// 
+//---------------------------------------------------------------------
+void PosNotificationTest::IssueNotificationRequest8L()
+    {
+    TInt result = KErrNone;
+    // Create a new CPosSUPLPrivacyRequestInfo object    
+    CPosSUPLPrivacyRequestInfo * info = CPosSUPLPrivacyRequestInfo::NewLC();
+    // Set Lcs client identified by phone number
+    info->SetLCSClientL(KTxtRequestorPhone,
+            CPosSUPLPrivacyRequestInfo::EIdTypeMSISDN);
+    // set the requestor identified by phone number
+    info->SetRequestorL(KTxtRequestorPhone,
+            CPosSUPLPrivacyRequestInfo::EIdTypeMSISDN);
+    // set request type to be single shot
+    info->SetRequestType(CPosNetworkPrivacyRequestInfo::ERequestSingleShot);
+
+    TInt requestId = -1;
+    // create an instance of CPosNetworkPrivacy used to issue the notification request
+    CPosNetworkPrivacy* privacy = CPosNetworkPrivacy::NewL();
+    CleanupStack::PushL(privacy);
+    TRAPD(error,privacy->NotifyLocationRequestL(*info, requestId));
+    if (error == KErrNone)
+        {
+        if (requestId < 0)
+            {
+            User::Leave(KErrGeneral);
+            }
+        }
+    else
+        {
+        User::Leave(KErrGeneral);
+        }
+    CleanupStack::PopAndDestroy(privacy);
+    CleanupStack::PopAndDestroy(info);
+    }
+
+//---------------------------------------------------------------------
+// PosNotificationTest::IssueNotificationRequest9L()
+// 
+//---------------------------------------------------------------------
+void PosNotificationTest::IssueNotificationRequest9L()
+    {
+    TInt result = KErrNone;
+    // Create a new CPosSUPLPrivacyRequestInfo object    
+    CPosSUPLPrivacyRequestInfo * info = CPosSUPLPrivacyRequestInfo::NewLC();
+    // Set Lcs client identified by phone number
+    info->SetLCSClientL(KTxtRequestorPhone,
+            CPosSUPLPrivacyRequestInfo::EIdTypeMSISDN);
+    // set the requestor identified by phone number
+    info->SetRequestorL(KTxtRequestorPhone,
+            CPosSUPLPrivacyRequestInfo::EIdTypeMSISDN);
+    // set request type to be periodic
+    info->SetRequestType(CPosNetworkPrivacyRequestInfo::ERequestPeriodic);
+
+    TInt requestId = -1;
+    // create an instance of CPosNetworkPrivacy used to issue the notification request
+    CPosNetworkPrivacy* privacy = CPosNetworkPrivacy::NewL();
+    CleanupStack::PushL(privacy);
+    TRAPD(error,privacy->NotifyLocationRequestL(*info, requestId));
+    if (error == KErrNone)
+        {
+        if (requestId < 0)
+            {
+            User::Leave(KErrGeneral);
+            }
+        }
+    else
+        {
+        User::Leave(KErrGeneral);
+        }
+
+    CleanupStack::PopAndDestroy(privacy);
+    CleanupStack::PopAndDestroy(info);
+    }
+
+//---------------------------------------------------------------------
+// PosNotificationTest::IssueNotificationRequest10L()
+// 
+//---------------------------------------------------------------------
+void PosNotificationTest::IssueNotificationRequest10L()
+    {
+    TInt result = KErrNone;
+    // Create a new CPosSUPLPrivacyRequestInfo object    
+    CPosSUPLPrivacyRequestInfo * info = CPosSUPLPrivacyRequestInfo::NewLC();
+    // Set Lcs client identified by Logical name
+    info->SetLCSClientL(KTxtRequestorName,
+            CPosSUPLPrivacyRequestInfo::EIdTypeLogicalName);
+    // set the requestor identified by Logical name
+    info->SetRequestorL(KTxtRequestorName,
+            CPosSUPLPrivacyRequestInfo::EIdTypeLogicalName);
+    // set request type to be single shot
+    info->SetRequestType(CPosNetworkPrivacyRequestInfo::ERequestSingleShot);
+
+    TInt requestId = -1;
+    // create an instance of CPosNetworkPrivacy used to issue the notification request
+    CPosNetworkPrivacy* privacy = CPosNetworkPrivacy::NewL();
+    CleanupStack::PushL(privacy);
+    TRAPD(error,privacy->NotifyLocationRequestL(*info, requestId));
+    if (error == KErrNone)
+        {
+        if (requestId < 0)
+            {
+            User::Leave(KErrGeneral);
+            }
+        }
+    else
+        {
+        User::Leave(KErrGeneral);
+        }
+    CleanupStack::PopAndDestroy(privacy);
+    CleanupStack::PopAndDestroy(info);
+    }
+
+//---------------------------------------------------------------------
+// PosNotificationTest::IssueNotificationRequest11L()
+// 
+//---------------------------------------------------------------------
+void PosNotificationTest::IssueNotificationRequest11L()
+    {
+    TInt result = KErrNone;
+    // Create a new CPosSUPLPrivacyRequestInfo object    
+    CPosSUPLPrivacyRequestInfo * info = CPosSUPLPrivacyRequestInfo::NewLC();
+    // Set Lcs client identified by email
+    info->SetLCSClientL(KTxtRequestorEmail,
+            CPosSUPLPrivacyRequestInfo::EIdTypeEmailAddress);
+    // set the requestor identified by email
+    info->SetRequestorL(KTxtRequestorEmail,
+            CPosSUPLPrivacyRequestInfo::EIdTypeEmailAddress);
+    // set request type to be single shot
+    info->SetRequestType(CPosNetworkPrivacyRequestInfo::ERequestSingleShot);
+
+    TInt requestId = -1;
+    // create an instance of CPosNetworkPrivacy used to issue the notification request
+    CPosNetworkPrivacy* privacy = CPosNetworkPrivacy::NewL();
+    CleanupStack::PushL(privacy);
+    TRAPD(error,privacy->NotifyLocationRequestL(*info, requestId));
+    if (error == KErrNone)
+        {
+        if (requestId < 0)
+            {
+            User::Leave(KErrGeneral);
+            }
+        }
+    else
+        {
+        User::Leave(KErrGeneral);
+        }
+
+    CleanupStack::PopAndDestroy(privacy);
+    CleanupStack::PopAndDestroy(info);
+    }
+
+//---------------------------------------------------------------------
+// PosNotificationTest::IssueNotificationRequest12L()
+// 
+//---------------------------------------------------------------------
+void PosNotificationTest::IssueNotificationRequest12L()
+    {
+    TInt result = KErrNone;
+    // Create a new CPosSUPLPrivacyRequestInfo object    
+    CPosSUPLPrivacyRequestInfo * info = CPosSUPLPrivacyRequestInfo::NewLC();
+    // Set Lcs client identified by url
+    info->SetLCSClientL(KTxtRequestorURL,
+            CPosSUPLPrivacyRequestInfo::EIdTypeURL);
+    // set the requestor identified by url
+    info->SetRequestorL(KTxtRequestorURL,
+            CPosSUPLPrivacyRequestInfo::EIdTypeURL);
+    // set request type to be single shot
+    info->SetRequestType(CPosNetworkPrivacyRequestInfo::ERequestSingleShot);
+
+    TInt requestId = -1;
+    // create an instance of CPosNetworkPrivacy used to issue the notification request
+    CPosNetworkPrivacy* privacy = CPosNetworkPrivacy::NewL();
+    CleanupStack::PushL(privacy);
+    TRAPD(error,privacy->NotifyLocationRequestL(*info, requestId));
+    if (error == KErrNone)
+        {
+        if (requestId < 0)
+            {
+            User::Leave(KErrGeneral);
+            }
+        }
+    else
+        {
+        User::Leave(KErrGeneral);
+        }
+    CleanupStack::PopAndDestroy(privacy);
+    CleanupStack::PopAndDestroy(info);
+    }
+
+//---------------------------------------------------------------------
+// PosNotificationTest::IssueNotificationRequest13L()
+// 
+//---------------------------------------------------------------------
+void PosNotificationTest::IssueNotificationRequest13L()
+    {
+    TInt result = KErrNone;
+    // Create a new CPosSUPLPrivacyRequestInfo object    
+    CPosSUPLPrivacyRequestInfo * info = CPosSUPLPrivacyRequestInfo::NewLC();
+    // Set Lcs client identified by URL of user in a SIP session
+    info->SetLCSClientL(KTxtRequestorSIPURL,
+            CPosSUPLPrivacyRequestInfo::EIdTypeSIPURL);
+    // set the requestor identified by URL of user in a SIP session
+    info->SetRequestorL(KTxtRequestorSIPURL,
+            CPosSUPLPrivacyRequestInfo::EIdTypeSIPURL);
+    // set request type to be single shot
+    info->SetRequestType(CPosNetworkPrivacyRequestInfo::ERequestSingleShot);
+
+    TInt requestId = -1;
+    // create an instance of CPosNetworkPrivacy used to issue the notification request
+    CPosNetworkPrivacy* privacy = CPosNetworkPrivacy::NewL();
+    CleanupStack::PushL(privacy);
+    TRAPD(error,privacy->NotifyLocationRequestL(*info, requestId));
+    if (error == KErrNone)
+        {
+        if (requestId < 0)
+            {
+            User::Leave(KErrGeneral);
+            }
+        }
+    else
+        {
+        User::Leave(KErrGeneral);
+        }
+    CleanupStack::PopAndDestroy(privacy);
+    CleanupStack::PopAndDestroy(info);
+    }
+
+//---------------------------------------------------------------------
+// PosNotificationTest::IssueNotificationRequest14L()
+// 
+//---------------------------------------------------------------------
+void PosNotificationTest::IssueNotificationRequest14L()
+    {
+    TInt result = KErrNone;
+    // Create a new CPosSUPLPrivacyRequestInfo object    
+    CPosSUPLPrivacyRequestInfo * info = CPosSUPLPrivacyRequestInfo::NewLC();
+    // Set Lcs client identified by Mobile Identification Number
+    info->SetLCSClientL(KTxtRequestorMIN,
+            CPosSUPLPrivacyRequestInfo::EIdTypeMIN);
+    // set the requestor identified by Mobile Identification Number
+    info->SetRequestorL(KTxtRequestorMIN,
+            CPosSUPLPrivacyRequestInfo::EIdTypeMIN);
+    // set request type to be single shot
+    info->SetRequestType(CPosNetworkPrivacyRequestInfo::ERequestSingleShot);
+
+    TInt requestId = -1;
+    // create an instance of CPosNetworkPrivacy used to issue the notification request
+    CPosNetworkPrivacy* privacy = CPosNetworkPrivacy::NewL();
+    CleanupStack::PushL(privacy);
+    TRAPD(error,privacy->NotifyLocationRequestL(*info, requestId));
+    if (error == KErrNone)
+        {
+        if (requestId < 0)
+            {
+            User::Leave(KErrGeneral);
+            }
+        }
+    else
+        {
+        User::Leave(KErrGeneral);
+        }
+    CleanupStack::PopAndDestroy(privacy);
+    CleanupStack::PopAndDestroy(info);
+    }
+
+//---------------------------------------------------------------------
+// PosNotificationTest::IssueNotificationRequest15L()
+// 
+//---------------------------------------------------------------------
+void PosNotificationTest::IssueNotificationRequest15L()
+    {
+    TInt result = KErrNone;
+    // Create a new CPosSUPLPrivacyRequestInfo object    
+    CPosSUPLPrivacyRequestInfo * info = CPosSUPLPrivacyRequestInfo::NewLC();
+    // Set Lcs client identified by Mobile Directory Number
+    info->SetLCSClientL(KTxtRequestorMDN,
+            CPosSUPLPrivacyRequestInfo::EIdTypeMDN);
+    // set the requestor identified by Mobile Directory Number
+    info->SetRequestorL(KTxtRequestorMDN,
+            CPosSUPLPrivacyRequestInfo::EIdTypeMDN);
+    // set request type to be single shot
+    info->SetRequestType(CPosNetworkPrivacyRequestInfo::ERequestSingleShot);
+
+    TInt requestId = -1;
+    // create an instance of CPosNetworkPrivacy used to issue the notification request
+    CPosNetworkPrivacy* privacy = CPosNetworkPrivacy::NewL();
+    CleanupStack::PushL(privacy);
+    TRAPD(error,privacy->NotifyLocationRequestL(*info, requestId));
+    if (error == KErrNone)
+        {
+        if (requestId < 0)
+            {
+            User::Leave(KErrGeneral);
+            }
+        }
+    else
+        {
+        User::Leave(KErrGeneral);
+        }
+    CleanupStack::PopAndDestroy(privacy);
+    CleanupStack::PopAndDestroy(info);
+    }
+
+//---------------------------------------------------------------------
+// PosNotificationTest::IssueNotificationRequest16L()
+// 
+//---------------------------------------------------------------------
+void PosNotificationTest::IssueNotificationRequest16L()
+    {
+    TInt result = KErrNone;
+    // Create a new CPosSUPLPrivacyRequestInfo object    
+    CPosSUPLPrivacyRequestInfo* info = CPosSUPLPrivacyRequestInfo::NewLC();
+    // Set Lcs client identified by user Identifier in an IP Multimedia Service session.
+    info->SetLCSClientL(KTxtRequestorIMSPublicIdentity,
+            CPosSUPLPrivacyRequestInfo::EIdTypeIMSPublicIdentity);
+    // set the requestor identified by Mobile Identification Number
+    info->SetRequestorL(KTxtRequestorIMSPublicIdentity,
+            CPosSUPLPrivacyRequestInfo::EIdTypeIMSPublicIdentity);
+    // set request type to be single shot
+    info->SetRequestType(CPosNetworkPrivacyRequestInfo::ERequestSingleShot);
+
+    TInt requestId = -1;
+    // create an instance of CPosNetworkPrivacy used to issue the notification request
+    CPosNetworkPrivacy* privacy = CPosNetworkPrivacy::NewL();
+    CleanupStack::PushL(privacy);
+    TRAPD(error,privacy->NotifyLocationRequestL(*info, requestId));
+    if (error == KErrNone)
+        {
+        if (requestId < 0)
+            {
+            User::Leave(KErrGeneral);
+            }
+        }
+    else
+        {
+        User::Leave(KErrGeneral);
+        }
+    CleanupStack::PopAndDestroy(privacy);
+    CleanupStack::PopAndDestroy(info);
+    }
+
+//---------------------------------------------------------------------
+// PosNotificationTest::IssueNotificationRequest17L()
+// 
+//---------------------------------------------------------------------
+void PosNotificationTest::IssueNotificationRequest17L()
+    {
+    TInt result = KErrNone;
+    // Create a new CPosSUPLPrivacyRequestInfo object    
+    CPosSUPLPrivacyRequestInfo * info = CPosSUPLPrivacyRequestInfo::NewLC();
+    // set request type to be single shot
+    info->SetRequestType(CPosNetworkPrivacyRequestInfo::ERequestSingleShot);
+
+    TInt requestId = -1;
+    // create an instance of CPosNetworkPrivacy used to issue the notification request
+    CPosNetworkPrivacy* privacy = CPosNetworkPrivacy::NewL();
+    CleanupStack::PushL(privacy);
+    TRAPD(error,privacy->NotifyLocationRequestL(*info, requestId));
+    if (error == KErrNone)
+        {
+        if (requestId < 0)
+            {
+            User::Leave(KErrGeneral);
+            }
+        }
+    else
+        {
+        User::Leave(KErrGeneral);
+        }
+    CleanupStack::PopAndDestroy(privacy);
+    CleanupStack::PopAndDestroy(info);
+    }
+
+//---------------------------------------------------------------------
+// PosNotificationTest::IssueNotificationRequest18L()
+// 
+//---------------------------------------------------------------------
+void PosNotificationTest::IssueNotificationRequest18L()
+    {
+    TInt result = KErrNone;
+    // Create a new CPosSUPLPrivacyRequestInfo object    
+    CPosSUPLPrivacyRequestInfo * info = CPosSUPLPrivacyRequestInfo::NewLC();
+    // Set Lcs client identified by phone number
+    info->SetLCSClientL(KTxtLongRequestorName,
+            CPosSUPLPrivacyRequestInfo::EIdTypeLogicalName);
+    // set the requestor identified by phone number
+    info->SetRequestorL(KTxtLongRequestorName,
+            CPosSUPLPrivacyRequestInfo::EIdTypeLogicalName);
+    // set request type to be single shot
+    info->SetRequestType(CPosNetworkPrivacyRequestInfo::ERequestSingleShot);
+
+    TInt requestId = -1;
+    // create an instance of CPosNetworkPrivacy used to issue the notification request
+    CPosNetworkPrivacy* privacy = CPosNetworkPrivacy::NewL();
+    CleanupStack::PushL(privacy);
+    TRAPD(error,privacy->NotifyLocationRequestL(*info, requestId));
+    if (error == KErrNone)
+        {
+        if (requestId < 0)
+            {
+            User::Leave(KErrGeneral);
+            }
+        }
+    else
+        {
+        User::Leave(KErrGeneral);
+        }
+    CleanupStack::PopAndDestroy(privacy);
+    CleanupStack::PopAndDestroy(info);
+    }
+
+//---------------------------------------------------------------------
+// PosNotificationTest::IssueNotifyVerificationTimeOut1L()
+// 
+//---------------------------------------------------------------------
+void PosNotificationTest::IssueNotifyVerificationTimeOut1L()
+    {
+    qDebug() << "IssueNotifyVerificationTimeOut1L - IN";
+    TInt result = KErrNone;
+    // Create a new CPosGSMPrivacyRequestInfo object    
+    CPosGSMPrivacyRequestInfo* info = CPosGSMPrivacyRequestInfo::NewLC();
+    // Set Lcs client identified by phone number
+    info->SetLCSClientL(KTxtRequestorPhone,
+            CPosGSMPrivacyRequestInfo::EIdTypeMSISDN);
+    // set the requestor identified by phone number
+    info->SetRequestorL(KTxtRequestorPhone,
+            CPosGSMPrivacyRequestInfo::EIdTypeMSISDN);
+    // set request type to be single shot
+    info->SetRequestType(CPosNetworkPrivacyRequestInfo::ERequestSingleShot);
+
+    TInt requestId = 123;
+    // create an instance of CPosNetworkPrivacy used to issue the notify verifiaiton timeout
+    // with default decision as accepted
+    CPosNetworkPrivacy* privacy = CPosNetworkPrivacy::NewL();
+    CleanupStack::PushL(privacy);
+    // issue a verify location request
+  //  TRAPD( err,privacy->VerifyLocationRequestL(*info,requestId,*this,CPosNetworkPrivacy::EDecisionAccepted));
+    
+    TRAPD(error,privacy->NotifyVerificationTimeoutL(*info, requestId,CPosNetworkPrivacy::EDecisionAccepted));
+
+ //   if( err == KErrNone )
+ //       {
+ //       mEventLoop.exec();
+ //       }
+    qDebug() << " After NotifyVerificationTimeoutL error = " << error;
+    if (error == KErrNone)
+        {
+        if (requestId < 0)
+            {
+            User::Leave(KErrGeneral);
+            }
+        }
+    else
+        {
+        User::Leave(KErrGeneral);
+        }
+    CleanupStack::PopAndDestroy(privacy);
+    CleanupStack::PopAndDestroy(info);
+    }
+
+//---------------------------------------------------------------------
+// PosNotificationTest::IssueNotifyVerificationTimeOut2L()
+// 
+//---------------------------------------------------------------------
+void PosNotificationTest::IssueNotifyVerificationTimeOut2L()
+    {
+    TInt result = KErrNone;
+    // Create a new CPosGSMPrivacyRequestInfo object    
+    CPosGSMPrivacyRequestInfo* info = CPosGSMPrivacyRequestInfo::NewLC();
+    // Set Lcs client identified by phone number
+    info->SetLCSClientL(KTxtRequestorPhone,
+            CPosGSMPrivacyRequestInfo::EIdTypeMSISDN);
+    // set the requestor identified by phone number
+    info->SetRequestorL(KTxtRequestorPhone,
+            CPosGSMPrivacyRequestInfo::EIdTypeMSISDN);
+    // set request type to be single shot
+    info->SetRequestType(CPosNetworkPrivacyRequestInfo::ERequestSingleShot);
+
+    TInt requestId = 123;
+    // create an instance of CPosNetworkPrivacy used to issue the notify verifiaiton timeout
+    // with default decision as rejected
+    CPosNetworkPrivacy* privacy = CPosNetworkPrivacy::NewL();
+    CleanupStack::PushL(privacy);
+    // issue a verify location request
+  //  TRAPD( err,privacy->VerifyLocationRequestL(*info,requestId,*this,CPosNetworkPrivacy::EDecisionRejected));
+
+    TRAPD(error,privacy->NotifyVerificationTimeoutL(*info, requestId,CPosNetworkPrivacy::EDecisionRejected));
+
+  //  if( err == KErrNone )
+  //      {
+  //      mEventLoop.exec();
+  //      }
+
+    if (error == KErrNone)
+        {
+        if (requestId < 0)
+            {
+            User::Leave(KErrGeneral);
+            }
+        }
+    else
+        {
+        User::Leave(KErrGeneral);
+        }
+    CleanupStack::PopAndDestroy(privacy);
+    CleanupStack::PopAndDestroy(info);
+    }
+
+//---------------------------------------------------------------------
+// PosNotificationTest::IssueNotifyVerificationTimeOut3L()
+// 
+//---------------------------------------------------------------------
+void PosNotificationTest::IssueNotifyVerificationTimeOut3L()
+    {
+    TInt result = KErrNone;
+    // Create a new CPosSUPLPrivacyRequestInfo object    
+    CPosSUPLPrivacyRequestInfo* info = CPosSUPLPrivacyRequestInfo::NewLC();
+    // Set Lcs client identified by phone number
+    info->SetLCSClientL(KTxtRequestorPhone,
+            CPosSUPLPrivacyRequestInfo::EIdTypeMSISDN);
+    // set the requestor identified by phone number
+    info->SetRequestorL(KTxtRequestorPhone,
+            CPosSUPLPrivacyRequestInfo::EIdTypeMSISDN);
+    // set request type to be single shot
+    info->SetRequestType(CPosNetworkPrivacyRequestInfo::ERequestSingleShot);
+
+    TInt requestId = 123 ;
+    // create an instance of CPosNetworkPrivacy used to issue the notify verifiaiton timeout
+    // with default decision as accepted
+    CPosNetworkPrivacy* privacy = CPosNetworkPrivacy::NewL();
+    CleanupStack::PushL(privacy);
+    // issue a verify location request
+ //   TRAPD( err,privacy->VerifyLocationRequestL(*info,requestId,*this,CPosNetworkPrivacy::EDecisionAccepted));
+
+    TRAPD(error,privacy->NotifyVerificationTimeoutL(*info, requestId,CPosNetworkPrivacy::EDecisionAccepted));
+  //  if( err == KErrNone )
+   //     {
+   //     mEventLoop.exec();
+   //     }
+
+    if (error == KErrNone)
+        {
+        if (requestId < 0)
+            {
+            User::Leave(KErrGeneral);
+            }
+        }
+    else
+        {
+        User::Leave(KErrGeneral);
+        }
+    CleanupStack::PopAndDestroy(privacy);
+    CleanupStack::PopAndDestroy(info);
+    }
+
+//---------------------------------------------------------------------
+// PosNotificationTest::IssueNotifyVerificationTimeOut4L()
+// 
+//---------------------------------------------------------------------
+void PosNotificationTest::IssueNotifyVerificationTimeOut4L()
+    {
+    TInt result = KErrNone;
+    // Create a new CPosSUPLPrivacyRequestInfo object    
+    CPosSUPLPrivacyRequestInfo* info = CPosSUPLPrivacyRequestInfo::NewLC();
+    // Set Lcs client identified by phone number
+    info->SetLCSClientL(KTxtRequestorPhone,
+            CPosSUPLPrivacyRequestInfo::EIdTypeMSISDN);
+    // set the requestor identified by phone number
+    info->SetRequestorL(KTxtRequestorPhone,
+            CPosSUPLPrivacyRequestInfo::EIdTypeMSISDN);
+    // set request type to be single shot
+    info->SetRequestType(CPosNetworkPrivacyRequestInfo::ERequestSingleShot);
+
+    TInt requestId = 123;
+    // create an instance of CPosNetworkPrivacy used to issue the notify verifiaiton timeout
+    // with default decision as rejected
+    CPosNetworkPrivacy* privacy = CPosNetworkPrivacy::NewL();
+    CleanupStack::PushL(privacy);
+    // issue a verify location request
+  //  TRAPD( err,privacy->VerifyLocationRequestL(*info,requestId,*this,CPosNetworkPrivacy::EDecisionRejected));
+
+    TRAPD(error,privacy->NotifyVerificationTimeoutL(*info, requestId,CPosNetworkPrivacy::EDecisionRejected));
+ //   if( err == KErrNone )
+ //       {
+ //       mEventLoop.exec();
+ //       }
+
+    if (error == KErrNone)
+        {
+        if (requestId < 0)
+            {
+            User::Leave(KErrGeneral);
+            }
+        }
+    else
+        {
+        User::Leave(KErrGeneral);
+        }
+    CleanupStack::PopAndDestroy(privacy);
+    CleanupStack::PopAndDestroy(info);
+    }
+
+//---------------------------------------------------------------------
+// PosNotificationTest::IssueMultipleRequests1L()
+// 
+//---------------------------------------------------------------------
+void PosNotificationTest::IssueMultipleRequests1L()
+    {
+    TInt result = KErrNone;
+    // Create a new CPosSUPLPrivacyRequestInfo object    
+    CPosSUPLPrivacyRequestInfo * info = CPosSUPLPrivacyRequestInfo::NewLC();
+    // Set Lcs client identified by phone number
+    info->SetLCSClientL(KTxtRequestorPhone,
+            CPosSUPLPrivacyRequestInfo::EIdTypeMSISDN);
+    // set the requestor identified by phone number
+    info->SetRequestorL(KTxtRequestorPhone,
+            CPosSUPLPrivacyRequestInfo::EIdTypeMSISDN);
+    // set request type to be single shot
+    info->SetRequestType(CPosNetworkPrivacyRequestInfo::ERequestSingleShot);
+
+    // Create another new CPosSUPLPrivacyRequestInfo object    
+    CPosSUPLPrivacyRequestInfo * info1 = CPosSUPLPrivacyRequestInfo::NewLC();
+    // Set Lcs client identified by phone number
+    info1->SetLCSClientL(KTxtRequestorName,
+            CPosSUPLPrivacyRequestInfo::EIdTypeLogicalName);
+    // set the requestor identified by phone number
+    info1->SetRequestorL(KTxtRequestorName,
+            CPosSUPLPrivacyRequestInfo::EIdTypeLogicalName);
+    // set request type to be single shot
+    info1->SetRequestType(CPosNetworkPrivacyRequestInfo::ERequestSingleShot);
+
+    TInt requestId = -1;
+    // create an instance of CPosNetworkPrivacy used to issue the notification request
+    CPosNetworkPrivacy* privacy = CPosNetworkPrivacy::NewL();
+    CleanupStack::PushL(privacy);
+    TRAPD(error,privacy->NotifyLocationRequestL(*info, requestId));
+    if (error == KErrNone)
+        {
+        if (requestId > 0)
+            {
+            // issue the same request again
+            TRAPD(error1,privacy->NotifyLocationRequestL(*info1, requestId));
+            if (error1 == KErrNone)
+                {
+                if (requestId > 0)
+                    {
+                    result = KErrNone;
+                    }
+                else
+                    {
+                    result = KErrGeneral;
+                    }
+                }
+            else
+                {
+                result = error1;
+                }
+            }
+        else
+            {
+            result = KErrGeneral;
+            }
+        }
+    else
+        {
+        result = error;
+        }
+    CleanupStack::PopAndDestroy(privacy);
+    CleanupStack::PopAndDestroy(info1);
+    CleanupStack::PopAndDestroy(info);
+    User::Leave(result);
+    }
+
+//---------------------------------------------------------------------
+// PosNotificationTest::IssueMultipleRequests2L()
+// 
+//---------------------------------------------------------------------
+void PosNotificationTest::IssueMultipleRequests2L()
+    {
+    TInt result = KErrNone;
+    // Create a new CPosGSMPrivacyRequestInfo object    
+    CPosGSMPrivacyRequestInfo* info = CPosGSMPrivacyRequestInfo::NewLC();
+    // Set Lcs client identified by phone number
+    info->SetLCSClientL(KTxtRequestorPhone,
+            CPosGSMPrivacyRequestInfo::EIdTypeMSISDN);
+    // set the requestor identified by phone number
+    info->SetRequestorL(KTxtRequestorPhone,
+            CPosGSMPrivacyRequestInfo::EIdTypeMSISDN);
+    // set request type to be single shot
+    info->SetRequestType(CPosNetworkPrivacyRequestInfo::ERequestSingleShot);
+
+    // Create another new CPosGSMPrivacyRequestInfo object    
+    CPosGSMPrivacyRequestInfo* info1 = CPosGSMPrivacyRequestInfo::NewLC();
+    // Set Lcs client identified by phone number
+    info1->SetLCSClientL(KTxtRequestorName,
+            CPosGSMPrivacyRequestInfo::EIdTypeLogicalName);
+    // set the requestor identified by phone number
+    info1->SetRequestorL(KTxtRequestorName,
+            CPosGSMPrivacyRequestInfo::EIdTypeLogicalName);
+    // set request type to be single shot
+    info1->SetRequestType(CPosNetworkPrivacyRequestInfo::ERequestSingleShot);
+
+    TInt requestId = -1;
+    TInt requestId1 = -1;
+    // create an instance of CPosNetworkPrivacy used to issue the notification request
+    CPosNetworkPrivacy* privacy = CPosNetworkPrivacy::NewL();
+    CleanupStack::PushL(privacy);
+    // create another instance of CPosNetworkPrivacy used to issue the second notification request
+    CPosNetworkPrivacy* privacy1 = CPosNetworkPrivacy::NewL();
+    CleanupStack::PushL(privacy1);
+    TRAPD(error,privacy->NotifyLocationRequestL(*info, requestId));
+    TRAPD(error1,privacy1->NotifyLocationRequestL(*info1, requestId1));
+
+    if (error == KErrNone && error1 == KErrNone)
+        {
+        if (requestId > 0 && requestId1 > 0)
+            {
+            result = KErrNone;
+            }
+        else
+            {
+            result = KErrGeneral;
+            }
+        }
+    else
+        {
+        result = KErrGeneral;
+        }
+    CleanupStack::PopAndDestroy(privacy1);
+    CleanupStack::PopAndDestroy(privacy);
+    CleanupStack::PopAndDestroy(info1);
+    CleanupStack::PopAndDestroy(info);
+    User::Leave(result);
+    }
+
+QTEST_MAIN_S60(PosNotificationTest)
+