/*
* Copyright (c) 2009 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: Main test class for hspluginmodel library.
*
*/
#include <HbIcon>
#include "t_caclient.h"
#include "caservice.h"
#include "caquery.h"
#include "calocalizationentry.h"
#include "camenuiconutility.h"
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
//
void TestCaClient::TestEntryGetters()
{
{
CaIconDescription iconDesc;
iconDesc.setFilename(QString("fileName"));
iconDesc.setSkinId(QString("skinId"));
iconDesc.setApplicationId(QString("268458321"));
CaEntry entry;
entry.setText(QString("test"));
entry.setFlags(UninstallEntryFlag);
entry.setEntryTypeName(QString("typeNameTest"));
entry.setAttribute(QString("aname"),QString("aval"));
entry.setIconDescription(iconDesc);
QCOMPARE(entry.text(), QString("test"));
QCOMPARE(entry.flags(), UninstallEntryFlag);
QCOMPARE(entry.entryTypeName(), QString("typeNameTest"));
QCOMPARE(entry.attribute(QString("aname")), QString("aval"));
QCOMPARE(entry.iconDescription().filename(), QString("fileName"));
QCOMPARE(entry.iconDescription().skinId(), QString("skinId"));
QCOMPARE(entry.iconDescription().applicationId(), QString("268458321"));
}
}
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
//
void TestCaClient::TestEntryAssignmentOperator()
{
{
CaIconDescription iconDesc;
iconDesc.setFilename(QString("fileName"));
iconDesc.setSkinId(QString("skinId"));
iconDesc.setApplicationId(QString("268458321"));
CaEntry entry;
entry.setText(QString("test"));
entry.setFlags(UninstallEntryFlag);
entry.setEntryTypeName(QString("typeNameTest"));
entry.setAttribute(QString("aname"),QString("aval"));
entry.setIconDescription(iconDesc);
CaEntry copied(entry);
CaEntry assigned;
assigned = entry;
QCOMPARE(copied.text(), QString("test"));
QCOMPARE(copied.flags(), UninstallEntryFlag);
QCOMPARE(copied.entryTypeName(), QString("typeNameTest"));
QCOMPARE(copied.attribute(QString("aname")), QString("aval"));
QCOMPARE(copied.iconDescription().filename(), QString("fileName"));
QCOMPARE(copied.iconDescription().skinId(), QString("skinId"));
QCOMPARE(copied.iconDescription().applicationId(), QString("268458321"));
QCOMPARE(assigned.text(), QString("test"));
QCOMPARE(assigned.flags(), UninstallEntryFlag);
QCOMPARE(assigned.entryTypeName(), QString("typeNameTest"));
QCOMPARE(assigned.attribute(QString("aname")), QString("aval"));
QCOMPARE(assigned.iconDescription().filename(), QString("fileName"));
QCOMPARE(assigned.iconDescription().skinId(), QString("skinId"));
QCOMPARE(assigned.iconDescription().applicationId(), QString("268458321"));
CaEntry group(GroupEntryRole);
group.setText(QString("test"));
group.setFlags(UninstallEntryFlag);
group.setEntryTypeName(QString("typeNameTest"));
group.setAttribute(QString("aname"),QString("aval"));
group.setIconDescription(iconDesc);
CaEntry copiedG(group);
CaEntry assignedG(GroupEntryRole);
assignedG = group;
QCOMPARE(copiedG.text(), QString("test"));
QCOMPARE(copiedG.flags(), UninstallEntryFlag);
QCOMPARE(copiedG.entryTypeName(), QString("typeNameTest"));
QCOMPARE(copiedG.attribute(QString("aname")), QString("aval"));
QCOMPARE(copiedG.iconDescription().filename(), QString("fileName"));
QCOMPARE(copiedG.iconDescription().skinId(), QString("skinId"));
QCOMPARE(copiedG.iconDescription().applicationId(), QString("268458321"));
QCOMPARE(assignedG.text(), QString("test"));
QCOMPARE(assignedG.flags(), UninstallEntryFlag);
QCOMPARE(assignedG.entryTypeName(), QString("typeNameTest"));
QCOMPARE(assignedG.attribute(QString("aname")), QString("aval"));
QCOMPARE(assignedG.iconDescription().filename(), QString("fileName"));
QCOMPARE(assignedG.iconDescription().skinId(), QString("skinId"));
QCOMPARE(assignedG.iconDescription().applicationId(), QString("268458321"));
}
}
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
//
void TestCaClient::TestQueryGetters()
{
{
CaQuery query;
query.setEntryRoles(ItemEntryRole);
QStringList typenames;
typenames << QString("typename1");
query.setEntryTypeNames(typenames);
query.addEntryTypeName(QString("typename2"));
query.setFlagsOn(UninstallEntryFlag);
query.setFlagsOff(RemovableEntryFlag);
query.setParentId(7777);
query.setChildId(1111);
query.setSort(MostUsedSortAttribute, Qt::AscendingOrder);
query.setCount(67);
QCOMPARE(query.entryRoles(), ItemEntryRole);
QCOMPARE(query.parentId(), 7777);
QCOMPARE(query.childId(), 1111);
QCOMPARE(query.count(), uint(67));
QCOMPARE(query.entryTypeNames().count(), 2);
QCOMPARE(query.entryTypeNames().at(0), QString("typename1"));
QCOMPARE(query.entryTypeNames().at(1), QString("typename2"));
QCOMPARE(query.flagsOn(), UninstallEntryFlag);
QCOMPARE(query.flagsOff(), RemovableEntryFlag);
SortAttribute srtAttr;
Qt::SortOrder srtOrd;
query.getSort(srtAttr,srtOrd);
QCOMPARE(srtAttr, MostUsedSortAttribute);
QCOMPARE(srtOrd, Qt::AscendingOrder);
}
}
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
//
void TestCaClient::TestQueryClear()
{
{
CaQuery query;
query.setEntryRoles(ItemEntryRole);
QStringList typenames;
typenames << QString("typename1");
query.setEntryTypeNames(typenames);
query.addEntryTypeName(QString("typename2"));
query.setFlagsOn(UninstallEntryFlag);
query.setFlagsOff(RemovableEntryFlag);
query.setParentId(7777);
query.setChildId(1111);
query.setSort(MostUsedSortAttribute, Qt::DescendingOrder);
query.setCount(67);
query.clear();
QCOMPARE(query.entryRoles(), ItemEntryRole|GroupEntryRole);
QCOMPARE(query.parentId(), 0);
QCOMPARE(query.childId(), 0);
QCOMPARE(query.count(), uint(0));
QCOMPARE(query.entryTypeNames().count(), 0);
QCOMPARE(query.flagsOn(), EntryFlags());
QCOMPARE(query.flagsOff(), EntryFlags());
SortAttribute srtAttr;
Qt::SortOrder srtOrd;
query.getSort(srtAttr,srtOrd);
QCOMPARE(srtAttr, DefaultSortAttribute);
QCOMPARE(srtOrd, Qt::AscendingOrder);
}
}
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
//
void TestCaClient::TestQueryRemove()
{
CaQuery query;
QString native("native");
QString zero("0");
query.setAttribute(native, zero);
QCOMPARE(query.attribute(native), zero);
query.removeAttribute(native);
QCOMPARE(query.attribute(native), QString());
}
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
//
void TestCaClient::TestQueryAssignmentOperator()
{
{
CaQuery query;
query.setEntryRoles(ItemEntryRole);
QStringList typenames;
typenames << QString("typename1");
query.setEntryTypeNames(typenames);
query.addEntryTypeName(QString("typename2"));
query.setFlagsOn(UninstallEntryFlag);
query.setFlagsOff(RemovableEntryFlag);
query.setParentId(7777);
query.setChildId(1111);
query.setSort(MostUsedSortAttribute, Qt::DescendingOrder);
query.setCount(67);
CaQuery copied(query);
CaQuery assigned;
assigned = query;
QCOMPARE(copied.entryRoles(), ItemEntryRole);
QCOMPARE(copied.parentId(), 7777);
QCOMPARE(copied.childId(), 1111);
QCOMPARE(copied.count(), uint(67));
QCOMPARE(copied.entryTypeNames().count(), 2);
QCOMPARE(copied.entryTypeNames().at(0), QString("typename1"));
QCOMPARE(copied.entryTypeNames().at(1), QString("typename2"));
QCOMPARE(copied.flagsOn(), UninstallEntryFlag);
QCOMPARE(copied.flagsOff(), RemovableEntryFlag);
SortAttribute srtAttr;
Qt::SortOrder srtOrd;
copied.getSort(srtAttr,srtOrd);
QCOMPARE(srtAttr, MostUsedSortAttribute);
QCOMPARE(srtOrd, Qt::DescendingOrder);
QCOMPARE(assigned.entryRoles(), ItemEntryRole);
QCOMPARE(assigned.parentId(), 7777);
QCOMPARE(assigned.childId(), 1111);
QCOMPARE(assigned.count(), uint(67));
QCOMPARE(assigned.entryTypeNames().count(), 2);
QCOMPARE(assigned.entryTypeNames().at(0), QString("typename1"));
QCOMPARE(assigned.entryTypeNames().at(1), QString("typename2"));
QCOMPARE(assigned.flagsOn(), UninstallEntryFlag);
QCOMPARE(assigned.flagsOff(), RemovableEntryFlag);
assigned.getSort(srtAttr,srtOrd);
QCOMPARE(srtAttr, MostUsedSortAttribute);
QCOMPARE(srtOrd, Qt::DescendingOrder);
}
}
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
//
void TestCaClient::TestMakeDefaultCollectionIcon()
{
{
CaEntry entry;
entry.setText(QString("text"));
entry.setEntryTypeName(QString("collection"));
CaIconDescription iconDesc;// fake icon -> default should be fetched
iconDesc.setFilename(QString("fake"));
iconDesc.setSkinId(QString("fake"));
iconDesc.setApplicationId(QString("1234056789"));
entry.setIconDescription(iconDesc);
HbIcon icon = entry.makeIcon();
QVERIFY(icon.height() > 0);
QVERIFY(icon.width() > 0);
}
}
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
//
void TestCaClient::TestMakeDefaultApplicationIcon()
{
{
CaEntry entry;
entry.setText(QString("text"));
entry.setEntryTypeName(QString("application"));
CaIconDescription iconDesc;// fake icon -> default should be fetched
iconDesc.setFilename(QString("fake"));
iconDesc.setSkinId(QString("fake"));
iconDesc.setApplicationId(QString("1234056789"));
entry.setIconDescription(iconDesc);
HbIcon icon = entry.makeIcon();
QVERIFY(icon.height() > 0);
QVERIFY(icon.width() > 0);
}
}
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
//
void TestCaClient::TestMakeNotNativeApplicationIcon()
{
{
CaEntry entry;
entry.setText(QString("text"));
entry.setEntryTypeName(QString("application"));
entry.setAttribute(QString("native"), QString("0"));
HbIcon icon = entry.makeIcon();
QVERIFY(icon.height() > 0);
QVERIFY(icon.width() > 0);
}
}
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
//
void TestCaClient::TestMakeExistingIcon()
{
{
CaEntry entry;
entry.setText(QString("text"));
entry.setEntryTypeName(QString("type"));
CaIconDescription iconDesc;// fake icon -> default should be fetched
iconDesc.setSkinId(QString("qtg_large_applications_user"));
entry.setIconDescription(iconDesc);
HbIcon icon = entry.makeIcon();
QVERIFY(icon.height() > 0);
QVERIFY(icon.width() > 0);
//tapplication
CaEntry entry2;
entry2.setText(QString("text2"));
entry2.setEntryTypeName(QString("templatedApplication"));
CaIconDescription iconDesc2;// fake icon -> default should be fetched
iconDesc2.setApplicationId(QString("537001519")); // bluetouth
entry2.setIconDescription(iconDesc2);
HbIcon icon2 = entry2.makeIcon();
QVERIFY(icon2.height() > 0);
QVERIFY(icon2.width() > 0);
}
}
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
//
void TestCaClient::TestMakeNotExistingIcon()
{
{
CaEntry entry;
entry.setText(QString("text"));
entry.setEntryTypeName(QString("type"));
CaIconDescription iconDesc;// fake icon
iconDesc.setFilename(QString("z:/resource/apps/fake.mif"));
entry.setIconDescription(iconDesc);
HbIcon icon = entry.makeIcon();
QVERIFY(icon.height() < 0);
QVERIFY(icon.width() < 0);
CaEntry entry2;
entry2.setText(QString("text2"));
entry2.setEntryTypeName(QString("type"));
CaIconDescription iconDesc2;// fake icon
iconDesc2.setFilename(QString("aaaa"));
entry2.setIconDescription(iconDesc2);
HbIcon icon2 = entry2.makeIcon();
QVERIFY(icon2.height() < 0);
QVERIFY(icon2.width() < 0);
CaEntry entry3;
entry3.setId(9999); //to avoid cache
entry3.setText(QString("text3"));
entry3.setEntryTypeName(QString("type"));
CaIconDescription iconDesc3;// fake icon
iconDesc3.setSkinId(QString("z:/resource/apps/fake_notcached.mif"));
entry3.setIconDescription(iconDesc3);
HbIcon icon3 = entry3.makeIcon();
QVERIFY(icon3.height() < 0);
QVERIFY(icon3.width() < 0);
CaEntry entry4;
entry4.setId(1000); //to avoid cache
entry4.setText(QString("text4"));
entry4.setEntryTypeName(QString("type"));
CaIconDescription iconDesc4;// fake icon
iconDesc4.setSkinId(QString("aaaa"));
entry4.setIconDescription(iconDesc4);
HbIcon icon4 = entry4.makeIcon();
QVERIFY(icon4.height() < 0);
QVERIFY(icon4.width() < 0);
}
}
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
//
void TestCaClient::TestGetEntryIcon()
{
{
CaEntry entry;
entry.setEntryTypeName(QString("application"));
QSizeF size(50,50);
HbIcon icon = CaMenuIconUtility::getEntryIcon(entry, size);
QVERIFY(icon.size().isValid());
QVERIFY(icon.height() > 0);
QVERIFY(icon.width() > 0);
}
}
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
//
void TestCaClient::TestGetApplicationIcon()
{
{
int uid = 270495019; // contest mbm icon
QSizeF size(50,50);
HbIcon icon = CaMenuIconUtility::getApplicationIcon(uid,size);
QVERIFY(icon.size().isValid());
QVERIFY(icon.height() > 0);
QVERIFY(icon.width() > 0);
int uid2 = 537006483; // AknConf mif icon
HbIcon icon2 = CaMenuIconUtility::getApplicationIcon(uid2,size);
QVERIFY(icon2.size().isValid());
}
}
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
//
void TestCaClient::TestGetIconFromEntry()
{
{
CaEntry entry;
entry.setEntryTypeName(QString("application"));
entry.iconDescription().setFilename(QString("qtg_large_applications_download"));
QSizeF size(50,50);
HbIcon icon = CaMenuIconUtility::getEntryIcon(entry,size);
QVERIFY(icon.size().isValid());
}
}
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
//
void TestCaClient::TestGetIconFromApparc()
{
{
CaEntry entry;
entry.setEntryTypeName(QString("application"));
int uid = 270495019; // contest mbm icon
QSizeF size(50,50);
HbIcon icon = CaMenuIconUtility::getApplicationIcon(uid,size);
QVERIFY(icon.size().isValid());
}
}
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
//
void TestCaClient::TestGetDefaultIcon()
{
{
CaEntry entry;
entry.setText(QString("text"));
entry.setEntryTypeName(QString("application"));
CaIconDescription iconDesc;// fake icon -> default should be fetched
iconDesc.setFilename(QString("fake"));
iconDesc.setSkinId(QString("fake"));
entry.setIconDescription(iconDesc);
HbIcon icon = CaMenuIconUtility::getEntryIcon(entry);
QVERIFY(icon.size().isValid());
entry.setEntryTypeName(QString("collection"));
HbIcon icon2 = CaMenuIconUtility::getEntryIcon(entry);
QVERIFY(icon2.size().isValid());
entry.setEntryTypeName(QString("url"));
HbIcon icon3 = CaMenuIconUtility::getEntryIcon(entry);
QVERIFY(icon3.size().isValid());
entry.setEntryTypeName(QString("widget"));
HbIcon icon4 = CaMenuIconUtility::getEntryIcon(entry);
QVERIFY(icon4.size().isValid());
entry.setEntryTypeName(QString("templatedApplication"));
HbIcon icon5 = CaMenuIconUtility::getEntryIcon(entry);
QVERIFY(icon5.size().isValid());
entry.setEntryTypeName(QString("package"));
HbIcon icon6 = CaMenuIconUtility::getEntryIcon(entry);
QVERIFY(icon6.size().isValid());
}
}