on xenial help sign in
Add some tests for the transformations
commit4d043d7756c2d4762d6bec82aba87ea033ba96ae authorMichal Hruby <michal.mhr@gmail.com> dateWed 9 Oct 2013, 17:21 (13 years ago) parent3ac13d3
2 files changed+74
tests/plugins/Unity/resultstest.cpp+72 tests/plugins/Unity/resultstest.h+2
tests/plugins/Unity/resultstest.cpp+72
@@ -19,6 +19,7 @@
1919
2020#include <QTest>
2121#include <dee.h>
22+#include <glib.h>
2223
2324#include "resultstest.h"
2425#include "categoryresults.h"
@@ -106,4 +107,75 @@ void ResultsTest::testIconColumn()
106107 QCOMPARE(transformedIcon, result);
107108}
108109
110+class GVariantWrapper
111+{
112+public:
113+ GVariantWrapper() : variant(NULL) {}
114+ GVariantWrapper(GVariant* v) {
115+ variant = v ? g_variant_ref_sink(v) : NULL;
116+ }
117+ GVariantWrapper(const GVariantWrapper& other) {
118+ variant = other.variant ? g_variant_ref(other.variant) : NULL;
119+ }
120+ ~GVariantWrapper() {
121+ if (variant) g_variant_unref(variant);
122+ }
123+
124+ GVariant* variant;
125+};
126+
127+Q_DECLARE_METATYPE(GVariantWrapper)
128+
129+void ResultsTest::testSpecialIcons_data()
130+{
131+ QTest::addColumn<QString>("uri");
132+ QTest::addColumn<GVariantWrapper>("metadata");
133+ QTest::addColumn<QString>("result");
134+
135+ GVariantBuilder builder, inner_builder;
136+
137+ g_variant_builder_init(&inner_builder, G_VARIANT_TYPE_VARDICT);
138+ g_variant_builder_add(&inner_builder, "{sv}", "artist", g_variant_new_string("U2"));
139+ g_variant_builder_add(&inner_builder, "{sv}", "album", g_variant_new_string("War"));
140+
141+ g_variant_builder_init(&builder, G_VARIANT_TYPE_VARDICT);
142+ g_variant_builder_add(&builder, "{sv}", "content", g_variant_builder_end(&inner_builder));
143+
144+ QTest::newRow("simple") << "file:///foo.mp3" << GVariantWrapper(g_variant_builder_end(&builder)) << "image://albumart/U2/War";
145+
146+ g_variant_builder_init(&inner_builder, G_VARIANT_TYPE_VARDICT);
147+ g_variant_builder_add(&inner_builder, "{sv}", "artist", g_variant_new_string("U2"));
148+ g_variant_builder_add(&inner_builder, "{sv}", "album", g_variant_new_string("War/Joshua tree"));
149+
150+ g_variant_builder_init(&builder, G_VARIANT_TYPE_VARDICT);
151+ g_variant_builder_add(&builder, "{sv}", "content", g_variant_builder_end(&inner_builder));
152+
153+ QTest::newRow("with-slash") << "file:///foo.mp3" << GVariantWrapper(g_variant_builder_end(&builder)) << "image://albumart/U2/War%2FJoshua%20tree";
154+}
155+
156+void ResultsTest::testSpecialIcons()
157+{
158+ QFETCH(QString, uri);
159+ QFETCH(GVariantWrapper, metadata);
160+ QFETCH(QString, result);
161+ auto deeModel = createBackendModel();
162+ dee_model_append (deeModel,
163+ uri.toLocal8Bit().constData(),
164+ "",
165+ 0,
166+ 0,
167+ "audio/mp3",
168+ "Test",
169+ "",
170+ uri.toLocal8Bit().constData(),
171+ metadata.variant);
172+
173+ CategoryResults* results = new CategoryResults(this);
174+ results->setModel(deeModel);
175+
176+ auto index = results->index(0, 0); // there's just one result
177+ auto transformedIcon = index.data(CategoryResults::Roles::RoleIconHint).toString();
178+ QCOMPARE(transformedIcon, result);
179+}
180+
109181QTEST_MAIN(ResultsTest)
tests/plugins/Unity/resultstest.h+2
@@ -30,6 +30,8 @@ class ResultsTest : public QObject
3030 void testAllColumns();
3131 void testIconColumn_data();
3232 void testIconColumn();
33+ void testSpecialIcons_data();
34+ void testSpecialIcons();
3335};
3436
3537#endif