summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorP. F. Chimento <philip.chimento@gmail.com>2013-07-24 10:17:19 -0700
committerP. F. Chimento <philip.chimento@gmail.com>2013-07-24 10:17:19 -0700
commit3bbf1c4223d4b05a790b22e24c74ec144ce48c34 (patch)
tree94b1329b4a7ec8ce999183e027040b11e3023f2a /test
parent1ff95e823772b048a5c966235a7f3a7b5ab3681a (diff)
parentb6d8e1da288e7b1dab3cc792f8b7dd449f6db6cd (diff)
Merge pull request #170 from endlessm/issues/146
#146 Layout of `EosActionMenu`
Diffstat (limited to 'test')
-rw-r--r--test/smoke-tests/action-buttons.js25
-rw-r--r--test/smoke-tests/eosactionbutton.css1
-rw-r--r--test/test-action-menu.c52
3 files changed, 62 insertions, 16 deletions
diff --git a/test/smoke-tests/action-buttons.js b/test/smoke-tests/action-buttons.js
index 7997793..476912a 100644
--- a/test/smoke-tests/action-buttons.js
+++ b/test/smoke-tests/action-buttons.js
@@ -24,9 +24,9 @@ const TestApplication = new Lang.Class ({
this._darkSwitch = new Gtk.Switch ({active: false});
this._darkSwitch.connect ('notify::active', Lang.bind (this, function (active) {
if (this._darkSwitch.get_active()) {
- this._menu_panel.get_style_context().add_class('dark');
+ this._menu.get_style_context().add_class('dark');
} else {
- this._menu_panel.get_style_context().remove_class('dark');
+ this._menu.get_style_context().remove_class('dark');
}
}));
this._content.attach(new Gtk.Label ({label: 'Dark action menu'}), 0, 0, 1, 1);
@@ -57,23 +57,17 @@ const TestApplication = new Lang.Class ({
'label-position': Gtk.PositionType.RIGHT
}), 1, 2, 1, 1);
- this._menu = new Endless.ActionMenu ();
+ this._menu = new Endless.ActionMenu ({name: 'menu'});
- // put the ActionMenu in a panel, as GtkGrid doesn't expand if none of its children want to
- this._menu_panel = new Gtk.Frame ({name: 'menu'});
- this._menu_panel.add (this._menu);
- this._menu_panel.set_hexpand (true);
- this._menu_panel.set_vexpand (true);
-
// the ActionMenu takes 1/6 of the width
this._page.set_column_homogeneous (true);
this._page.attach (this._content, 0, 0, 5, 1);
- this._page.attach (this._menu_panel, 5, 0, 1, 1);
+ this._page.attach (this._menu, 5, 0, 1, 1);
this._menu.add_action ({
name: 'select',
'icon-name': 'object-select-symbolic',
- label: 'select stuff',
+ label: 'SELECT',
'is-important': true },
Lang.bind(this, function () {
var md = new Gtk.MessageDialog({modal:true, title:"Information",
@@ -86,19 +80,20 @@ const TestApplication = new Lang.Class ({
this._menu.add_action ({
name: 'delete',
'icon-name': 'edit-delete-symbolic',
- label: 'delete stuff',
- 'is-important': false });
+ label: 'DELETE',
+ 'is-important': false,
+ 'stock-id': Gtk.STOCK_DELETE });
this._menu.add_action ({
name: 'smile',
'icon-name': 'face-smile-symbolic',
- label: 'smile',
+ label: 'SMILE',
'is-important': false });
this._menu.add_action ({
name: 'sadface',
'icon-name': 'face-sad-symbolic',
- label: 'sadface',
+ label: 'SAD FACE',
'is-important': false });
this._pm = new Endless.PageManager();
diff --git a/test/smoke-tests/eosactionbutton.css b/test/smoke-tests/eosactionbutton.css
index b01e3cf..189a15a 100644
--- a/test/smoke-tests/eosactionbutton.css
+++ b/test/smoke-tests/eosactionbutton.css
@@ -8,6 +8,7 @@ GtkWindow {
background-color: mix(white, black, 0.2);
border-color: mix(white, black, 0.5);
border-width: 0 0 0 6px;
+ padding: 30px;
}
.dark#menu {
diff --git a/test/test-action-menu.c b/test/test-action-menu.c
index b12ff8d..e066b70 100644
--- a/test/test-action-menu.c
+++ b/test/test-action-menu.c
@@ -5,6 +5,8 @@
#include "run-tests.h"
+#include "endless/eosactionmenu.c"
+
#define ADD_ACTION_MENU_TEST(path, test_func) \
g_test_add ((path), ActionMenuFixture, NULL, \
am_fixture_setup, (test_func), am_fixture_teardown)
@@ -55,7 +57,7 @@ test_am_add_action (ActionMenuFixture *fixture,
eos_action_menu_add_action (fixture->action_menu, fixture->action1);
- GtkWidget *button = gtk_grid_get_child_at (GTK_GRID (fixture->action_menu), 0, 0);
+ GtkWidget *button = gtk_grid_get_child_at (GTK_GRID (fixture->action_menu->priv->center_grid), 0, 0);
g_assert (EOS_IS_ACTION_BUTTON (button));
@@ -103,6 +105,35 @@ test_am_list_actions (ActionMenuFixture *fixture,
g_assert (g_list_find (list, fixture->action3) == NULL);
}
+static gboolean
+menu_contains_button_with_label (EosActionMenu *menu, const gchar* button_label)
+{
+ GList* children;
+ gboolean found = FALSE;
+
+ children = gtk_container_get_children (GTK_CONTAINER (menu->priv->center_grid));
+
+ children = g_list_concat (children,
+ gtk_container_get_children (GTK_CONTAINER (menu->priv->bottom_grid)));
+
+ for (GList *i = children; i != NULL ; i = i->next)
+ {
+ if (EOS_IS_ACTION_BUTTON (i->data))
+ {
+ if (g_strcmp0 (eos_action_button_get_label (EOS_ACTION_BUTTON (i->data)),
+ button_label) == 0)
+ {
+ found = TRUE;
+ break;
+ }
+ }
+ }
+
+ g_list_free (children);
+
+ return found;
+}
+
static void
test_am_remove_action (ActionMenuFixture *fixture,
gconstpointer unused)
@@ -121,6 +152,14 @@ test_am_remove_action (ActionMenuFixture *fixture,
g_assert (g_list_find (list, fixture->action2) == NULL);
g_assert (g_list_find (list, fixture->action3) != NULL);
+ // the buttons have been removed as well
+ g_assert (menu_contains_button_with_label (fixture->action_menu,
+ gtk_action_get_label (fixture->action1)));
+ g_assert (!menu_contains_button_with_label (fixture->action_menu,
+ gtk_action_get_label (fixture->action2)));
+ g_assert (menu_contains_button_with_label (fixture->action_menu,
+ gtk_action_get_label (fixture->action3)));
+
eos_action_menu_remove_action (fixture->action_menu, fixture->action1);
eos_action_menu_remove_action (fixture->action_menu, fixture->action3);
@@ -129,6 +168,10 @@ test_am_remove_action (ActionMenuFixture *fixture,
g_assert (g_list_find (list, fixture->action1) == NULL);
g_assert (g_list_find (list, fixture->action2) == NULL);
g_assert (g_list_find (list, fixture->action3) == NULL);
+
+ // the container is empty
+ g_assert (gtk_container_get_children (GTK_CONTAINER (fixture->action_menu->priv->center_grid)) == NULL);
+ g_assert (gtk_container_get_children (GTK_CONTAINER (fixture->action_menu->priv->bottom_grid)) == NULL);
}
static void
@@ -146,6 +189,13 @@ test_am_remove_action_by_name (ActionMenuFixture *fixture,
g_assert (g_list_find (list, fixture->action1) != NULL);
g_assert (g_list_find (list, fixture->action2) == NULL);
g_assert (g_list_find (list, fixture->action3) != NULL);
+
+ g_assert (menu_contains_button_with_label (fixture->action_menu,
+ gtk_action_get_label (fixture->action1)));
+ g_assert (!menu_contains_button_with_label (fixture->action_menu,
+ gtk_action_get_label (fixture->action2)));
+ g_assert (menu_contains_button_with_label (fixture->action_menu,
+ gtk_action_get_label (fixture->action3)));
}
void