/*
* Copyright 2013 Canonical Ltd.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation; version 3.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see .
*
* Authors:
* Nick Dedekind
*/
#include "modelactionrootstate.h"
#include
#include
#include
class RootActionStateTest : public QObject
{
Q_OBJECT
private Q_SLOTS:
void testDeleteRootActionState()
{
UnityMenuModel* menuModel = new UnityMenuModel();
ActionStateParser* originalParser = menuModel->actionStateParser();
ModelActionRootState* rootState = new ModelActionRootState();
rootState->setMenu(menuModel);
delete rootState;
QCOMPARE(menuModel->actionStateParser(), originalParser);
delete menuModel;
}
void testDeleteUnityMenuModel()
{
UnityMenuModel* menuModel = new UnityMenuModel();
ModelActionRootState* rootState = new ModelActionRootState();
rootState->setMenu(menuModel);
QCOMPARE(rootState->menu(), menuModel);
delete menuModel;
QVERIFY(rootState->menu() == nullptr);
delete rootState;
}
void testToQVariantIcons()
{
GVariantBuilder builderIcons;
g_variant_builder_init(&builderIcons, G_VARIANT_TYPE("av"));
for (int i = 0; i < 3; i ++) {
GIcon* icon = nullptr;
icon = g_icon_new_for_string (QString("testIcon%1").arg(i).toUtf8().constData(), nullptr);
g_variant_builder_add(&builderIcons,
"v",
g_icon_serialize (icon));
g_object_unref(icon);
}
GVariantBuilder builderParams;
g_variant_builder_init(&builderParams, G_VARIANT_TYPE_ARRAY);
GVariant* icons = g_variant_builder_end (&builderIcons);
g_variant_ref_sink (icons);
g_variant_builder_add (&builderParams, "{sv}", g_strdup ("icons"), icons, nullptr);
GVariant* params = g_variant_builder_end (&builderParams);
RootStateParser rootState;
QVariant result = rootState.toQVariant(params);
g_variant_unref(params);
QVariantMap paramResult = result.toMap();
QVERIFY(paramResult.contains("icons"));
QStringList serializedIcons = paramResult["icons"].toStringList();
QVERIFY(serializedIcons[0] == "image://theme/testIcon0");
QVERIFY(serializedIcons[1] == "image://theme/testIcon1");
QVERIFY(serializedIcons[2] == "image://theme/testIcon2");
}
};
QTEST_GUILESS_MAIN(RootActionStateTest)
#include "RootActionStateTest.moc"