locationsystemui/locationsysui/tsrc/src/posnotificationtest.cpp
author hgs
Fri, 09 Jul 2010 20:18:03 +0530
changeset 35 1a92308afc46
permissions -rw-r--r--
201027

/*
 * 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)