contentstorage/tsrc/t_casrv/src/t_casrvutils.cpp
author Jaakko Haukipuro (Nokia-MS/Oulu) <Jaakko.Haukipuro@nokia.com>
Thu, 16 Sep 2010 12:11:40 +0100
changeset 117 c63ee96dbe5f
permissions -rw-r--r--
Missing activityfw and taskswitcher components - fix for Bug 3670

/*
* Copyright (c) 2004 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:
*
*/


//  CLASS HEADER
#include "T_casrvUtils.h"

//  EXTERNAL INCLUDES
#include <e32property.h>
#include <e32debug.h>

#include "cadef.h"
#include "castorageproxy.h"
#include "castorage.h"
#include "casrvengutils.h"
#include "cainnerentry.h"

//  INTERNAL INCLUDES
#include "casrvtestutils.h"
#include "testconsts.h"

//  CONSTANTS
const TUid KAppScannerPluginUid = {0x20026FAF};

void T_casrvUtils::initTestCase()
{
}

void T_casrvUtils::cleanupTestCase()
{
}

// ---------------------------------------------------------------------------
//
// ---------------------------------------------------------------------------
//
void
T_casrvUtils::init()
{
    TRAPD(err,
          iTestUtils = CTestUtils::NewL();
          iTestUtils->CopyDb();

          iStorage = CCaStorageProxy::NewL();

          iSrvEngUtils = CCaSrvEngUtils::NewL();
         );
    QCOMPARE(err, KErrNone);
}

// ---------------------------------------------------------------------------
//
// ---------------------------------------------------------------------------
//
void
T_casrvUtils::cleanup()
{

    delete iSrvEngUtils;
    iSrvEngUtils = NULL;
    delete iStorage;
    iStorage = NULL;
    delete iTestUtils;
    iTestUtils = NULL;

}

// ---------------------------------------------------------------------------
//
// ---------------------------------------------------------------------------
//
void
T_casrvUtils::testNewL()
{
    CCaSrvEngUtils *obj(0);

    TRAPD(err, obj = CCaSrvEngUtils::NewL());
    QCOMPARE(err, KErrNone);

    QVERIFY(obj != NULL);

    delete obj;
}

void
T_casrvUtils::testGetAppUidL()
{
    TInt getAppUidResult(KErrGeneral);
    TInt getInvalidAppUidResult(KErrNone);
    TUid actualAppUid = TUid::Uid(0);
    const TInt32 expectedAppUid = 1;

    TRAPD(err,
          CCaInnerEntry *const entry = CCaInnerEntry::NewLC();

          entry->SetUid(expectedAppUid);


          getAppUidResult =
              iSrvEngUtils->GetAppUid(*entry, actualAppUid);

          const TInt32 invalidUid = 0;
          entry->SetUid(invalidUid);

          getInvalidAppUidResult =
              iSrvEngUtils->GetAppUid(*entry, actualAppUid);

          CleanupStack::PopAndDestroy(entry);
         );

    QCOMPARE(err, KErrNone);
    QCOMPARE(getAppUidResult, KErrNone);
    QCOMPARE(expectedAppUid, actualAppUid.iUid);
    QCOMPARE(getInvalidAppUidResult, KErrNotFound);
}

void
T_casrvUtils::testGetApaAppInfoL()
{
    TApaAppInfo referenceInfo;

    RApaLsSession apaLsSession;
    TInt err(KErrNone);
    TRAP(err, User::LeaveIfError(apaLsSession.Connect()));
    QCOMPARE(err, KErrNone);

    QCOMPARE(apaLsSession.GetAppInfo(referenceInfo, TUid::Uid(KSystemApp)), KErrNone);

    TApaAppInfo srvEngUtilsInfo;
    const TInt result  = iSrvEngUtils->GetApaAppInfo(
                             TUid::Uid(KSystemApp), srvEngUtilsInfo);
    QCOMPARE(result, KErrNone);

    QCOMPARE(srvEngUtilsInfo.iUid.iUid, referenceInfo.iUid.iUid);
    QVERIFY(srvEngUtilsInfo.iFullName.Compare(referenceInfo.iFullName) == 0);
    QVERIFY(srvEngUtilsInfo.iCaption.Compare(referenceInfo.iCaption) == 0);
    QVERIFY(srvEngUtilsInfo.iShortCaption.Compare(referenceInfo.iShortCaption) == 0);
}

void
T_casrvUtils::testGetAppInfoL()
{
    CCaInnerEntry *entry(0);
    TRAPD(err,
          entry = CCaInnerEntry::NewLC();
          CleanupStack::Pop(entry);
         );
    QCOMPARE(err, KErrNone);

    TApaAppInfo info;

    entry->SetUid(KSystemApp);

    TInt result = iSrvEngUtils->GetAppInfo(*entry, info);
    QCOMPARE(result, KErrNone);
    QCOMPARE(info.iUid.iUid, static_cast<TInt32>(KSystemApp));
    QVERIFY(info.iFullName.Compare(_L("Z:\\sys\\bin\\phonebook.exe")) == 0);
    QVERIFY(info.iCaption.Compare(_L("Contacts")) == 0); 
    QVERIFY(info.iShortCaption.Length()>0);

    const TInt32 invalidUid = 0;
    entry->SetUid(invalidUid);
    QCOMPARE(iSrvEngUtils->GetAppInfo(*entry, info), KErrNotFound);

    entry->SetUid(notInstalledUid);
    QCOMPARE(iSrvEngUtils->GetAppInfo(*entry, info), KErrNotFound);

    delete entry;
}

void
T_casrvUtils::testIsNativeL()
{
    CCaInnerEntry *entry(0);
    TRAPD(err,
          entry = CCaInnerEntry::NewLC();
          entry->SetEntryTypeNameL(KCaTypeApp);
          CleanupStack::Pop(entry);
         );
    QCOMPARE(err, KErrNone);


    entry->SetUid(KSystemApp);

    const TInt32 isNative = iSrvEngUtils->IsNativeL(*entry);

    QVERIFY(isNative != 0);

    delete entry;
}

QTEST_MAIN(T_casrvUtils)

//  END OF FILE