diff options
| -rw-r--r-- | dash/previews/Preview.cpp | 2 | ||||
| -rw-r--r-- | tests/test_previews_application.cpp | 26 | ||||
| -rw-r--r-- | tests/test_previews_generic.cpp | 26 | ||||
| -rw-r--r-- | tests/test_previews_movie.cpp | 26 | ||||
| -rw-r--r-- | tests/test_previews_music.cpp | 26 |
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 < 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 < 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 < 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 < 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 < 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 > 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"); + } + } } } |
