2 * Copyright (C) 2011, 2013 Canonical, Ltd.
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; version 3.
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 General Public License for more details.
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17#include "previewbindingstest.h"
20#include <UnityCore/Preview.h>
21#include <UnityCore/GLibWrapper.h>
22#include <unity-protocol.h>
24#include "genericpreview.h"
25#include "applicationpreview.h"
26#include "moviepreview.h"
27#include "musicpreview.h"
28#include "socialpreview.h"
29#include "socialpreviewcomment.h"
30#include "previewaction.h"
33#include <glib-object.h>
35void PreviewBindingsTest::initTestCase()
39void PreviewBindingsTest::testGenericPreview()
41 auto raw_preview = (GObject *)unity_protocol_generic_preview_new();
42 unity_protocol_preview_set_title(UNITY_PROTOCOL_PREVIEW(raw_preview), "Metallica");
43 unity_protocol_preview_set_subtitle(UNITY_PROTOCOL_PREVIEW(raw_preview), "Ride The Lightning");
44 unity_protocol_preview_set_description(UNITY_PROTOCOL_PREVIEW(raw_preview), "Lorem ipsum dolor sit amet");
45 GFile *icon_file = g_file_new_for_path("/foo.png");
46 GIcon *icon = g_file_icon_new(icon_file);
47 unity_protocol_preview_add_action(UNITY_PROTOCOL_PREVIEW(raw_preview), "1", "Action1", icon, UNITY_PROTOCOL_LAYOUT_HINT_LEFT);
48 unity::glib::Object<GObject> gen_prv(raw_preview);
50 auto core_prv = unity::dash::Preview::PreviewForProtocolObject(gen_prv);
51 auto prv = Preview::newFromUnityPreview(core_prv);
53 QCOMPARE(prv != nullptr, true);
54 QCOMPARE(prv->title(), QString("Metallica"));
55 QCOMPARE(prv->subtitle(), QString("Ride The Lightning"));
56 QCOMPARE(prv->description(), QString("Lorem ipsum dolor sit amet"));
58 auto actions = prv->actions().value<QList<QObject *>>();
59 QCOMPARE(actions.size(), 1);
60 auto act = dynamic_cast<PreviewAction *>(actions[0]);
61 QVERIFY(act != nullptr);
62 QCOMPARE(act->id(), QString("1"));
63 QCOMPARE(act->displayName(), QString("Action1"));
64 QCOMPARE(act->iconHint(), QString("/foo.png"));
67 g_object_unref(icon_file);
70void PreviewBindingsTest::testApplicationPreview()
72 auto raw_preview = (GObject *)unity_protocol_application_preview_new();
73 unity_protocol_preview_set_title(UNITY_PROTOCOL_PREVIEW(raw_preview), "Firefox");
74 unity_protocol_preview_set_subtitle(UNITY_PROTOCOL_PREVIEW(raw_preview), "Web Browser");
75 unity_protocol_preview_set_description(UNITY_PROTOCOL_PREVIEW(raw_preview), "Lorem ipsum dolor sit amet");
76 unity_protocol_application_preview_set_license(UNITY_PROTOCOL_APPLICATION_PREVIEW(raw_preview), "GPL");
77 unity_protocol_application_preview_set_rating(UNITY_PROTOCOL_APPLICATION_PREVIEW(raw_preview), 0.5f);
78 unity_protocol_application_preview_set_num_ratings(UNITY_PROTOCOL_APPLICATION_PREVIEW(raw_preview), 4);
79 unity::glib::Object<GObject> gen_prv(raw_preview);
81 auto core_prv = unity::dash::Preview::PreviewForProtocolObject(gen_prv);
82 auto prv = Preview::newFromUnityPreview(core_prv);
83 auto app_prv = dynamic_cast<ApplicationPreview*>(prv);
85 QCOMPARE(app_prv != nullptr, true);
86 QCOMPARE(app_prv->title(), QString("Firefox"));
87 QCOMPARE(app_prv->subtitle(), QString("Web Browser"));
88 QCOMPARE(app_prv->description(), QString("Lorem ipsum dolor sit amet"));
89 QCOMPARE(app_prv->license(), QString("GPL"));
90 QCOMPARE(app_prv->rating(), 0.5f);
91 QCOMPARE(app_prv->numRatings(), unsigned (4));
94void PreviewBindingsTest::testMoviePreview()
96 auto raw_preview = (GObject *)unity_protocol_movie_preview_new();
97 unity_protocol_preview_set_title(UNITY_PROTOCOL_PREVIEW(raw_preview), "Blade Runner");
98 unity_protocol_preview_set_subtitle(UNITY_PROTOCOL_PREVIEW(raw_preview), "Ridley Scott");
99 unity_protocol_preview_set_description(UNITY_PROTOCOL_PREVIEW(raw_preview), "Lorem ipsum dolor sit amet");
100 unity_protocol_movie_preview_set_year(UNITY_PROTOCOL_MOVIE_PREVIEW(raw_preview), "1982");
101 unity::glib::Object<GObject> gen_prv(raw_preview);
103 auto core_prv = unity::dash::Preview::PreviewForProtocolObject(gen_prv);
104 auto prv = Preview::newFromUnityPreview(core_prv);
105 auto movie_prv = dynamic_cast<MoviePreview*>(prv);
107 QCOMPARE(movie_prv != nullptr, true);
108 QCOMPARE(movie_prv->title(), QString("Blade Runner"));
109 QCOMPARE(movie_prv->subtitle(), QString("Ridley Scott"));
110 QCOMPARE(movie_prv->description(), QString("Lorem ipsum dolor sit amet"));
111 QCOMPARE(movie_prv->year(), QString("1982"));
114void PreviewBindingsTest::testMusicPreview()
116 auto raw_preview = (GObject *)unity_protocol_music_preview_new();
117 unity_protocol_preview_set_title(UNITY_PROTOCOL_PREVIEW(raw_preview), "Metallica");
118 unity_protocol_preview_set_subtitle(UNITY_PROTOCOL_PREVIEW(raw_preview), "Death Magnetic");
119 unity_protocol_preview_set_description(UNITY_PROTOCOL_PREVIEW(raw_preview), "Lorem ipsum dolor sit amet");
120 unity::glib::Object<GObject> gen_prv(raw_preview);
122 auto core_prv = unity::dash::Preview::PreviewForProtocolObject(gen_prv);
123 auto prv = Preview::newFromUnityPreview(core_prv);
124 auto music_prv = dynamic_cast<MusicPreview*>(prv);
126 QCOMPARE(music_prv != nullptr, true);
127 QCOMPARE(music_prv->title(), QString("Metallica"));
128 QCOMPARE(music_prv->subtitle(), QString("Death Magnetic"));
129 QCOMPARE(music_prv->description(), QString("Lorem ipsum dolor sit amet"));
132void PreviewBindingsTest::testSocialPreview()
134 GFile *icon_file = g_file_new_for_path("/foo.png");
135 GIcon *icon = g_file_icon_new(icon_file);
137 auto raw_preview = (GObject *)unity_protocol_social_preview_new();
138 unity_protocol_social_preview_set_sender(UNITY_PROTOCOL_SOCIAL_PREVIEW(raw_preview), "John");
139 unity_protocol_social_preview_set_avatar(UNITY_PROTOCOL_SOCIAL_PREVIEW(raw_preview), icon);
140 unity_protocol_social_preview_set_content(UNITY_PROTOCOL_SOCIAL_PREVIEW(raw_preview), "Lorem ipsum dolor sit amet");
141 unity_protocol_social_preview_add_comment(UNITY_PROTOCOL_SOCIAL_PREVIEW(raw_preview), "1", "comment1", "Ubuntu", "2013-07-04 14:10");
142 unity::glib::Object<GObject> gen_prv(raw_preview);
144 auto core_prv = unity::dash::Preview::PreviewForProtocolObject(gen_prv);
145 auto prv = Preview::newFromUnityPreview(core_prv);
146 auto social_prv = dynamic_cast<SocialPreview*>(prv);
148 QCOMPARE(social_prv != nullptr, true);
149 QCOMPARE(social_prv->sender(), QString("John"));
150 QCOMPARE(social_prv->content(), QString("Lorem ipsum dolor sit amet"));
151 QCOMPARE(social_prv->avatar(), QString("/foo.png"));
153 auto comments = social_prv->comments().value<QList<QObject *>>();
154 QCOMPARE(comments.size(), 1);
155 auto cmt = dynamic_cast<SocialPreviewComment *>(comments[0]);
156 QVERIFY(cmt != nullptr);
157 QCOMPARE(cmt->id(), QString("1"));
158 QCOMPARE(cmt->displayName(), QString("comment1"));
159 QCOMPARE(cmt->content(), QString("Ubuntu"));
160 QCOMPARE(cmt->time(), QString("2013-07-04 14:10"));
162 g_object_unref(icon);
163 g_object_unref(icon_file);
166QTEST_MAIN(PreviewBindingsTest)
168#include "previewbindingstest.moc"
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list