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 rawPreview = (GObject *)unity_protocol_generic_preview_new();
42 unity_protocol_preview_set_title(UNITY_PROTOCOL_PREVIEW(rawPreview), "Metallica");
43 unity_protocol_preview_set_subtitle(UNITY_PROTOCOL_PREVIEW(rawPreview), "Ride The Lightning");
44 unity_protocol_preview_set_description(UNITY_PROTOCOL_PREVIEW(rawPreview), "Lorem ipsum dolor sit amet");
45 GFile *iconFile = g_file_new_for_path("/foo.png");
46 GIcon *icon = g_file_icon_new(iconFile);
47 unity_protocol_preview_add_action(UNITY_PROTOCOL_PREVIEW(rawPreview), "1", "Action1", icon,
48 UNITY_PROTOCOL_LAYOUT_HINT_LEFT);
49 unity::glib::Object<GObject> genPrv(rawPreview);
51 auto corePrv = unity::dash::Preview::PreviewForProtocolObject(genPrv);
52 auto prv = Preview::newFromUnityPreview(corePrv);
54 QCOMPARE(prv != nullptr, true);
55 QCOMPARE(prv->title(), QString("Metallica"));
56 QCOMPARE(prv->subtitle(), QString("Ride The Lightning"));
57 QCOMPARE(prv->description(), QString("Lorem ipsum dolor sit amet"));
59 auto actions = prv->actions().value<QList<QObject *>>();
60 QCOMPARE(actions.size(), 1);
61 auto act = dynamic_cast<PreviewAction *>(actions[0]);
62 QVERIFY(act != nullptr);
63 QCOMPARE(act->id(), QString("1"));
64 QCOMPARE(act->displayName(), QString("Action1"));
65 QCOMPARE(act->iconHint(), QString("/foo.png"));
68 g_object_unref(iconFile);
71void PreviewBindingsTest::testApplicationPreview()
73 auto rawPreview = (GObject *)unity_protocol_application_preview_new();
74 unity_protocol_preview_set_title(UNITY_PROTOCOL_PREVIEW(rawPreview), "Firefox");
75 unity_protocol_preview_set_subtitle(UNITY_PROTOCOL_PREVIEW(rawPreview), "Web Browser");
76 unity_protocol_preview_set_description(UNITY_PROTOCOL_PREVIEW(rawPreview), "Lorem ipsum dolor sit amet");
77 unity_protocol_application_preview_set_license(UNITY_PROTOCOL_APPLICATION_PREVIEW(rawPreview), "GPL");
78 unity_protocol_application_preview_set_rating(UNITY_PROTOCOL_APPLICATION_PREVIEW(rawPreview), 0.5f);
79 unity_protocol_application_preview_set_num_ratings(UNITY_PROTOCOL_APPLICATION_PREVIEW(rawPreview), 4);
80 unity::glib::Object<GObject> genPrv(rawPreview);
82 auto corePrv = unity::dash::Preview::PreviewForProtocolObject(genPrv);
83 auto prv = Preview::newFromUnityPreview(corePrv);
84 auto appPrv = dynamic_cast<ApplicationPreview*>(prv);
86 QCOMPARE(appPrv != nullptr, true);
87 QCOMPARE(appPrv->title(), QString("Firefox"));
88 QCOMPARE(appPrv->subtitle(), QString("Web Browser"));
89 QCOMPARE(appPrv->description(), QString("Lorem ipsum dolor sit amet"));
90 QCOMPARE(appPrv->license(), QString("GPL"));
91 QCOMPARE(appPrv->rating(), 0.5f);
92 QCOMPARE(appPrv->numRatings(), unsigned (4));
95void PreviewBindingsTest::testMoviePreview()
97 auto rawPreview = (GObject *)unity_protocol_movie_preview_new();
98 unity_protocol_preview_set_title(UNITY_PROTOCOL_PREVIEW(rawPreview), "Blade Runner");
99 unity_protocol_preview_set_subtitle(UNITY_PROTOCOL_PREVIEW(rawPreview), "Ridley Scott");
100 unity_protocol_preview_set_description(UNITY_PROTOCOL_PREVIEW(rawPreview), "Lorem ipsum dolor sit amet");
101 unity_protocol_movie_preview_set_year(UNITY_PROTOCOL_MOVIE_PREVIEW(rawPreview), "1982");
102 unity::glib::Object<GObject> genPrv(rawPreview);
104 auto corePrv = unity::dash::Preview::PreviewForProtocolObject(genPrv);
105 auto prv = Preview::newFromUnityPreview(corePrv);
106 auto moviePrv = dynamic_cast<MoviePreview*>(prv);
108 QCOMPARE(moviePrv != nullptr, true);
109 QCOMPARE(moviePrv->title(), QString("Blade Runner"));
110 QCOMPARE(moviePrv->subtitle(), QString("Ridley Scott"));
111 QCOMPARE(moviePrv->description(), QString("Lorem ipsum dolor sit amet"));
112 QCOMPARE(moviePrv->year(), QString("1982"));
115void PreviewBindingsTest::testMusicPreview()
117 auto rawPreview = (GObject *)unity_protocol_music_preview_new();
118 unity_protocol_preview_set_title(UNITY_PROTOCOL_PREVIEW(rawPreview), "Metallica");
119 unity_protocol_preview_set_subtitle(UNITY_PROTOCOL_PREVIEW(rawPreview), "Death Magnetic");
120 unity_protocol_preview_set_description(UNITY_PROTOCOL_PREVIEW(rawPreview), "Lorem ipsum dolor sit amet");
121 unity::glib::Object<GObject> genPrv(rawPreview);
123 auto corePrv = unity::dash::Preview::PreviewForProtocolObject(genPrv);
124 auto prv = Preview::newFromUnityPreview(corePrv);
125 auto musicPrv = dynamic_cast<MusicPreview*>(prv);
127 QCOMPARE(musicPrv != nullptr, true);
128 QCOMPARE(musicPrv->title(), QString("Metallica"));
129 QCOMPARE(musicPrv->subtitle(), QString("Death Magnetic"));
130 QCOMPARE(musicPrv->description(), QString("Lorem ipsum dolor sit amet"));
133void PreviewBindingsTest::testSocialPreview()
135 GFile *iconFile = g_file_new_for_path("/foo.png");
136 GIcon *icon = g_file_icon_new(iconFile);
138 auto rawPreview = (GObject *)unity_protocol_social_preview_new();
139 unity_protocol_social_preview_set_sender(UNITY_PROTOCOL_SOCIAL_PREVIEW(rawPreview), "John");
140 unity_protocol_social_preview_set_avatar(UNITY_PROTOCOL_SOCIAL_PREVIEW(rawPreview), icon);
141 unity_protocol_social_preview_set_content(UNITY_PROTOCOL_SOCIAL_PREVIEW(rawPreview), "Lorem ipsum dolor sit amet");
142 unity_protocol_social_preview_add_comment(UNITY_PROTOCOL_SOCIAL_PREVIEW(rawPreview), "1", "comment1", "Ubuntu", "2013-07-04 14:10");
143 unity::glib::Object<GObject> genPrv(rawPreview);
145 auto corePrv = unity::dash::Preview::PreviewForProtocolObject(genPrv);
146 auto prv = Preview::newFromUnityPreview(corePrv);
147 auto socialPrv = dynamic_cast<SocialPreview*>(prv);
149 QCOMPARE(socialPrv != nullptr, true);
150 QCOMPARE(socialPrv->sender(), QString("John"));
151 QCOMPARE(socialPrv->content(), QString("Lorem ipsum dolor sit amet"));
152 QCOMPARE(socialPrv->avatar(), QString("/foo.png"));
154 auto comments = socialPrv->comments().value<QList<QObject *>>();
155 QCOMPARE(comments.size(), 1);
156 auto cmt = dynamic_cast<SocialPreviewComment *>(comments[0]);
157 QVERIFY(cmt != nullptr);
158 QCOMPARE(cmt->id(), QString("1"));
159 QCOMPARE(cmt->displayName(), QString("comment1"));
160 QCOMPARE(cmt->content(), QString("Ubuntu"));
161 QCOMPARE(cmt->time(), QString("2013-07-04 14:10"));
163 g_object_unref(icon);
164 g_object_unref(iconFile);
167QTEST_MAIN(PreviewBindingsTest)
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