on master help sign in
unity8/tests/plugins/Unity/Indicators/RootActionStateTest.cpp
95 lines 3.1 kB history raw
1/*
2 * Copyright 2013 Canonical Ltd.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU Lesser General Public License as published by
6 * the Free Software Foundation; version 3.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU Lesser General Public License for more details.
12 *
13 * You should have received a copy of the GNU Lesser General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 * Authors:
17 * Nick Dedekind <nick.dedekind@canonical.com>
18 */
20#include "modelactionrootstate.h"
22#include <unitymenumodel.h>
23#include <QtTest>
24#include <gio/gio.h>
26class RootActionStateTest : public QObject
28 Q_OBJECT
29private Q_SLOTS:
31 void testDeleteRootActionState()
32 {
33 UnityMenuModel* menuModel = new UnityMenuModel();
34 ActionStateParser* originalParser = menuModel->actionStateParser();
35 ModelActionRootState* rootState = new ModelActionRootState();
37 rootState->setMenu(menuModel);
39 delete rootState;
40 QCOMPARE(menuModel->actionStateParser(), originalParser);
41 delete menuModel;
42 }
44 void testDeleteUnityMenuModel()
45 {
46 UnityMenuModel* menuModel = new UnityMenuModel();
47 ModelActionRootState* rootState = new ModelActionRootState();
49 rootState->setMenu(menuModel);
51 QCOMPARE(rootState->menu(), menuModel);
52 delete menuModel;
53 QVERIFY(rootState->menu() == nullptr);
54 delete rootState;
55 }
57 void testToQVariantIcons()
58 {
59 GVariantBuilder builderIcons;
60 g_variant_builder_init(&builderIcons, G_VARIANT_TYPE("av"));
61 for (int i = 0; i < 3; i ++) {
63 GIcon* icon = nullptr;
64 icon = g_icon_new_for_string (QString("testIcon%1").arg(i).toUtf8().constData(), nullptr);
66 g_variant_builder_add(&builderIcons,
67 "v",
68 g_icon_serialize (icon));
69 g_object_unref(icon);
70 }
72 GVariantBuilder builderParams;
73 g_variant_builder_init(&builderParams, G_VARIANT_TYPE_ARRAY);
74 GVariant* icons = g_variant_builder_end (&builderIcons);
75 g_variant_ref_sink (icons);
76 g_variant_builder_add (&builderParams, "{sv}", g_strdup ("icons"), icons, nullptr);
78 GVariant* params = g_variant_builder_end (&builderParams);
80 RootStateParser rootState;
81 QVariant result = rootState.toQVariant(params);
82 g_variant_unref(params);
84 QVariantMap paramResult = result.toMap();
85 QVERIFY(paramResult.contains("icons"));
87 QStringList serializedIcons = paramResult["icons"].toStringList();
88 QVERIFY(serializedIcons[0] == "image://theme/testIcon0");
89 QVERIFY(serializedIcons[1] == "image://theme/testIcon1");
90 QVERIFY(serializedIcons[2] == "image://theme/testIcon2");
91 }
92};
94QTEST_GUILESS_MAIN(RootActionStateTest)
95#include "RootActionStateTest.moc"