summaryrefslogtreecommitdiff
diff options
-rw-r--r--dash/previews/Preview.cpp2
-rw-r--r--tests/test_previews_application.cpp26
-rw-r--r--tests/test_previews_generic.cpp26
-rw-r--r--tests/test_previews_movie.cpp26
-rw-r--r--tests/test_previews_music.cpp26
5 files changed, 101 insertions, 5 deletions
diff --git a/dash/previews/Preview.cpp b/dash/previews/Preview.cpp
index 83104551a..b7d4d9463 100644
--- a/dash/previews/Preview.cpp
+++ b/dash/previews/Preview.cpp
@@ -167,7 +167,7 @@ nux::Layout* Preview::BuildVerticalActionsLayout(dash::Preview::ActionPtrList ac
uint action_iter = 0;
for (uint i = 0; i < actions.size(); i++)
{
- dash::Preview::ActionPtr action = actions[action_iter];
+ dash::Preview::ActionPtr action = actions[action_iter++];
ActionButton* button = new ActionButton(action->id, action->display_name, action->icon_hint, NUX_TRACKER_LOCATION);
button->SetFont(style.action_font());
diff --git a/tests/test_previews_application.cpp b/tests/test_previews_application.cpp
index b98233b49..4ce33ed7d 100644
--- a/tests/test_previews_application.cpp
+++ b/tests/test_previews_application.cpp
@@ -34,6 +34,7 @@ using namespace testing;
#include "dash/previews/ApplicationPreview.h"
#include "dash/previews/PreviewInfoHintWidget.h"
#include "dash/previews/PreviewRatingsWidget.h"
+#include "dash/previews/ActionButton.h"
#include "test_utils.h"
using namespace unity;
using namespace unity::dash;
@@ -69,6 +70,9 @@ public:
{
glib::Object<UnityProtocolPreview> proto_obj(UNITY_PROTOCOL_PREVIEW(unity_protocol_application_preview_new()));
+ GHashTable* action_hints1(g_hash_table_new(g_direct_hash, g_direct_equal));
+ g_hash_table_insert (action_hints1, g_strdup ("extra-text"), g_variant_new_string("£30.99"));
+
unity_protocol_application_preview_set_app_icon(UNITY_PROTOCOL_APPLICATION_PREVIEW(proto_obj.RawPtr()), g_icon_new_for_string("/home/nick/SkypeIcon.png", NULL));
unity_protocol_application_preview_set_license(UNITY_PROTOCOL_APPLICATION_PREVIEW(proto_obj.RawPtr()), "License & special char");
unity_protocol_application_preview_set_copyright(UNITY_PROTOCOL_APPLICATION_PREVIEW(proto_obj.RawPtr()), "Copywrite & special char");
@@ -81,13 +85,15 @@ public:
unity_protocol_preview_set_subtitle(proto_obj, "Application Subtitle > special char");
unity_protocol_preview_set_description(proto_obj, "Application Desctiption &lt; special char");
unity_protocol_preview_add_action(proto_obj, "action1", "Action 1", NULL, 0);
- unity_protocol_preview_add_action(proto_obj, "action2", "Action 2", NULL, 0);
+ unity_protocol_preview_add_action_with_hints(proto_obj, "action2", "Action 2", NULL, 0, action_hints1);
unity_protocol_preview_add_info_hint(proto_obj, "hint1", "Hint 1", NULL, g_variant_new("s", "string hint 1"));
unity_protocol_preview_add_info_hint(proto_obj, "hint2", "Hint 2", NULL, g_variant_new("s", "string hint 2"));
unity_protocol_preview_add_info_hint(proto_obj, "hint3", "Hint 3", NULL, g_variant_new("i", 12));
glib::Variant v(dee_serializable_serialize(DEE_SERIALIZABLE(proto_obj.RawPtr())), glib::StealRef());
preview_model_ = dash::Preview::PreviewForVariant(v);
+
+ g_hash_table_unref(action_hints1);
}
nux::BaseWindow* parent_window_;
@@ -119,6 +125,24 @@ TEST_F(TestPreviewApplication, TestUIValues)
EXPECT_EQ(preview_view->app_rating_->GetRating(), 0.8f);
EXPECT_EQ(preview_view->action_buttons_.size(), 2);
+
+ if (preview_view->action_buttons_.size() >= 2)
+ {
+ auto iter = preview_view->action_buttons_.begin();
+ if ((*iter)->Type().IsDerivedFromType(ActionButton::StaticObjectType))
+ {
+ ActionButton *action = static_cast<ActionButton*>(*iter);
+ EXPECT_EQ(action->GetLabel(), "Action 1");
+ EXPECT_EQ(action->GetExtraText(), "");
+ }
+ iter++;
+ if ((*iter)->Type().IsDerivedFromType(ActionButton::StaticObjectType))
+ {
+ ActionButton *action = static_cast<ActionButton*>(*iter);
+ EXPECT_EQ(action->GetLabel(), "Action 2");
+ EXPECT_EQ(action->GetExtraText(), "£30.99");
+ }
+ }
}
}
diff --git a/tests/test_previews_generic.cpp b/tests/test_previews_generic.cpp
index b88020720..19f34f071 100644
--- a/tests/test_previews_generic.cpp
+++ b/tests/test_previews_generic.cpp
@@ -32,6 +32,7 @@ using namespace testing;
#include <unity-protocol.h>
#include "UnityCore/GenericPreview.h"
#include "dash/previews/GenericPreview.h"
+#include "dash/previews/ActionButton.h"
#include "test_utils.h"
using namespace unity;
using namespace unity::dash;
@@ -63,18 +64,23 @@ public:
{
glib::Object<UnityProtocolPreview> proto_obj(UNITY_PROTOCOL_PREVIEW(unity_protocol_generic_preview_new()));
+ GHashTable* action_hints1(g_hash_table_new(g_direct_hash, g_direct_equal));
+ g_hash_table_insert (action_hints1, g_strdup ("extra-text"), g_variant_new_string("2.00"));
+
unity_protocol_preview_set_image_source_uri(proto_obj, "http://ia.media-imdb.com/images/M/MV5BMTM3NDM5MzY5Ml5BMl5BanBnXkFtZTcwNjExMDUwOA@@._V1._SY317_.jpg");
unity_protocol_preview_set_title(proto_obj, "Generic Title & special char");
unity_protocol_preview_set_subtitle(proto_obj, "Generic Subtitle > special char");
unity_protocol_preview_set_description(proto_obj, "Generic Desctiption &lt; special char");
unity_protocol_preview_add_action(proto_obj, "action1", "Action 1", NULL, 0);
- unity_protocol_preview_add_action(proto_obj, "action2", "Action 2", NULL, 0);
+ unity_protocol_preview_add_action_with_hints(proto_obj, "action2", "Action 2", NULL, 0, action_hints1);
unity_protocol_preview_add_info_hint(proto_obj, "hint1", "Hint 1", NULL, g_variant_new("s", "string hint 1"));
unity_protocol_preview_add_info_hint(proto_obj, "hint2", "Hint 2", NULL, g_variant_new("s", "string hint 2"));
unity_protocol_preview_add_info_hint(proto_obj, "hint3", "Hint 3", NULL, g_variant_new("i", 12));
glib::Variant v(dee_serializable_serialize(DEE_SERIALIZABLE(proto_obj.RawPtr())), glib::StealRef());
preview_model_ = dash::Preview::PreviewForVariant(v);
+
+ g_hash_table_unref(action_hints1);
}
nux::BaseWindow* parent_window_;
@@ -102,6 +108,24 @@ TEST_F(TestPreviewGeneric, TestUIValues)
EXPECT_EQ(preview_view->description_->GetText(), "Generic Desctiption &lt; special char");
EXPECT_EQ(preview_view->action_buttons_.size(), 2);
+
+ if (preview_view->action_buttons_.size() >= 2)
+ {
+ auto iter = preview_view->action_buttons_.begin();
+ if ((*iter)->Type().IsDerivedFromType(ActionButton::StaticObjectType))
+ {
+ ActionButton *action = static_cast<ActionButton*>(*iter);
+ EXPECT_EQ(action->GetLabel(), "Action 1");
+ EXPECT_EQ(action->GetExtraText(), "");
+ }
+ iter++;
+ if ((*iter)->Type().IsDerivedFromType(ActionButton::StaticObjectType))
+ {
+ ActionButton *action = static_cast<ActionButton*>(*iter);
+ EXPECT_EQ(action->GetLabel(), "Action 2");
+ EXPECT_EQ(action->GetExtraText(), "2.00");
+ }
+ }
}
}
diff --git a/tests/test_previews_movie.cpp b/tests/test_previews_movie.cpp
index d22a25d07..aead90d58 100644
--- a/tests/test_previews_movie.cpp
+++ b/tests/test_previews_movie.cpp
@@ -34,6 +34,7 @@ using namespace testing;
#include "dash/previews/MoviePreview.h"
#include "dash/previews/PreviewInfoHintWidget.h"
#include "dash/previews/PreviewRatingsWidget.h"
+#include "dash/previews/ActionButton.h"
#include "test_utils.h"
using namespace unity;
using namespace unity::dash;
@@ -66,6 +67,9 @@ public:
{
glib::Object<UnityProtocolPreview> proto_obj(UNITY_PROTOCOL_PREVIEW(unity_protocol_movie_preview_new()));
+ GHashTable* action_hints1(g_hash_table_new(g_direct_hash, g_direct_equal));
+ g_hash_table_insert (action_hints1, g_strdup ("extra-text"), g_variant_new_string("£1.00"));
+
unity_protocol_movie_preview_set_rating(UNITY_PROTOCOL_MOVIE_PREVIEW(proto_obj.RawPtr()), 0.8);
unity_protocol_movie_preview_set_num_ratings(UNITY_PROTOCOL_MOVIE_PREVIEW(proto_obj.RawPtr()), 12);
@@ -74,13 +78,15 @@ public:
unity_protocol_preview_set_subtitle(proto_obj, "Movie Subtitle > special char");
unity_protocol_preview_set_description(proto_obj, "Movie Desctiption &lt; special char");
unity_protocol_preview_add_action(proto_obj, "action1", "Action 1", NULL, 0);
- unity_protocol_preview_add_action(proto_obj, "action2", "Action 2", NULL, 0);
+ unity_protocol_preview_add_action_with_hints(proto_obj, "action2", "Action 2", NULL, 0, action_hints1);
unity_protocol_preview_add_info_hint(proto_obj, "hint1", "Hint 1", NULL, g_variant_new("s", "string hint 1"));
unity_protocol_preview_add_info_hint(proto_obj, "hint2", "Hint 2", NULL, g_variant_new("s", "string hint 2"));
unity_protocol_preview_add_info_hint(proto_obj, "hint3", "Hint 3", NULL, g_variant_new("i", 12));
glib::Variant v(dee_serializable_serialize(DEE_SERIALIZABLE(proto_obj.RawPtr())), glib::StealRef());
preview_model_ = dash::Preview::PreviewForVariant(v);
+
+ g_hash_table_unref(action_hints1);
}
nux::BaseWindow* parent_window_;
@@ -109,6 +115,24 @@ TEST_F(TestPreviewMovie, TestUIValues)
EXPECT_EQ(preview_view->rating_->GetRating(), 0.8f);
EXPECT_EQ(preview_view->action_buttons_.size(), 2);
+
+ if (preview_view->action_buttons_.size() >= 2)
+ {
+ auto iter = preview_view->action_buttons_.begin();
+ if ((*iter)->Type().IsDerivedFromType(ActionButton::StaticObjectType))
+ {
+ ActionButton *action = static_cast<ActionButton*>(*iter);
+ EXPECT_EQ(action->GetLabel(), "Action 1");
+ EXPECT_EQ(action->GetExtraText(), "");
+ }
+ iter++;
+ if ((*iter)->Type().IsDerivedFromType(ActionButton::StaticObjectType))
+ {
+ ActionButton *action = static_cast<ActionButton*>(*iter);
+ EXPECT_EQ(action->GetLabel(), "Action 2");
+ EXPECT_EQ(action->GetExtraText(), "£1.00");
+ }
+ }
}
}
diff --git a/tests/test_previews_music.cpp b/tests/test_previews_music.cpp
index aa43117ef..a8437feef 100644
--- a/tests/test_previews_music.cpp
+++ b/tests/test_previews_music.cpp
@@ -34,6 +34,7 @@ using namespace testing;
#include "dash/previews/MusicPreview.h"
#include "dash/previews/PreviewInfoHintWidget.h"
#include "dash/previews/PreviewRatingsWidget.h"
+#include "dash/previews/ActionButton.h"
#include "test_utils.h"
using namespace unity;
using namespace unity::dash;
@@ -64,12 +65,15 @@ public:
{
glib::Object<UnityProtocolPreview> proto_obj(UNITY_PROTOCOL_PREVIEW(unity_protocol_music_preview_new()));
+ GHashTable* action_hints1(g_hash_table_new(g_direct_hash, g_direct_equal));
+ g_hash_table_insert (action_hints1, g_strdup ("extra-text"), g_variant_new_string("£3.99"));
+
unity_protocol_preview_set_image_source_uri(proto_obj, "http://ia.media-imdb.com/images/M/MV5BMTM3NDM5MzY5Ml5BMl5BanBnXkFtZTcwNjExMDUwOA@@._V1._SY317_.jpg");
unity_protocol_preview_set_title(proto_obj, "Music Title & special char");
unity_protocol_preview_set_subtitle(proto_obj, "Music Subtitle > special char");
unity_protocol_preview_set_description(proto_obj, "Music Desctiption &lt; special char");
unity_protocol_preview_add_action(proto_obj, "action1", "Action 1", NULL, 0);
- unity_protocol_preview_add_action(proto_obj, "action2", "Action 2", NULL, 0);
+ unity_protocol_preview_add_action_with_hints(proto_obj, "action2", "Action 2", NULL, 0, action_hints1);
unity_protocol_preview_add_action(proto_obj, "action3", "Action 3", NULL, 0);
unity_protocol_preview_add_action(proto_obj, "action4", "Action 4", NULL, 0);
unity_protocol_preview_add_info_hint(proto_obj, "hint1", "Hint 1", NULL, g_variant_new("s", "string hint 1"));
@@ -78,6 +82,8 @@ public:
glib::Variant v(dee_serializable_serialize(DEE_SERIALIZABLE(proto_obj.RawPtr())), glib::StealRef());
preview_model_ = dash::Preview::PreviewForVariant(v);
+
+ g_hash_table_unref(action_hints1);
}
nux::BaseWindow* parent_window_;
@@ -104,6 +110,24 @@ TEST_F(TestPreviewMusic, TestUIValues)
EXPECT_EQ(preview_view->subtitle_->GetText(), "Music Subtitle &gt; special char");
EXPECT_EQ(preview_view->action_buttons_.size(), 4);
+
+ if (preview_view->action_buttons_.size() >= 2)
+ {
+ auto iter = preview_view->action_buttons_.begin();
+ if ((*iter)->Type().IsDerivedFromType(ActionButton::StaticObjectType))
+ {
+ ActionButton *action = static_cast<ActionButton*>(*iter);
+ EXPECT_EQ(action->GetLabel(), "Action 1");
+ EXPECT_EQ(action->GetExtraText(), "");
+ }
+ iter++;
+ if ((*iter)->Type().IsDerivedFromType(ActionButton::StaticObjectType))
+ {
+ ActionButton *action = static_cast<ActionButton*>(*iter);
+ EXPECT_EQ(action->GetLabel(), "Action 2");
+ EXPECT_EQ(action->GetExtraText(), "£3.99");
+ }
+ }
}
}