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