contentstorage/caclient/tsrc/t_caclient/src/t_caclient_entryquery.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) 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());
    }
}