[gimp] app: Fix gimp_ui_get_ui_manager() to allow arbitrary test exec order
- From: Martin Nordholts <martinn src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gimp] app: Fix gimp_ui_get_ui_manager() to allow arbitrary test exec order
- Date: Sat, 13 Feb 2010 19:08:49 +0000 (UTC)
commit 509310912203d4529de8b4e93b5aba1f56c1113e
Author: Martin Nordholts <martinn src gnome org>
Date: Sat Feb 13 18:51:29 2010 +0100
app: Fix gimp_ui_get_ui_manager() to allow arbitrary test exec order
Make gimp_ui_get_ui_manager() in test-ui.c handle when there is no
empty display so we can put the new-image test before the
single-window mode tests. We want the single-window mode tests lasts
because they are so flickery.
app/tests/test-ui.c | 99 +++++++++++++++++++++++++++++----------------------
1 files changed, 56 insertions(+), 43 deletions(-)
---
diff --git a/app/tests/test-ui.c b/app/tests/test-ui.c
index de7abc8..c16192c 100644
--- a/app/tests/test-ui.c
+++ b/app/tests/test-ui.c
@@ -52,12 +52,12 @@ typedef struct
static void gimp_ui_tool_options_editor_updates (GimpTestFixture *fixture,
gconstpointer data);
+static void gimp_ui_create_new_image_via_dialog (GimpTestFixture *fixture,
+ gconstpointer data);
static void gimp_ui_switch_to_single_window_mode (GimpTestFixture *fixture,
gconstpointer data);
static void gimp_ui_switch_back_to_multi_window_mode (GimpTestFixture *fixture,
gconstpointer data);
-static void gimp_ui_create_new_image_via_dialog (GimpTestFixture *fixture,
- gconstpointer data);
static GimpUIManager * gimp_ui_get_ui_manager (Gimp *gimp);
@@ -85,23 +85,23 @@ int main(int argc, char **argv)
NULL,
gimp_ui_tool_options_editor_updates,
NULL);
- g_test_add ("/gimp-ui/switch-to-single-window-mode",
+ g_test_add ("/gimp-ui/create-new-image-via-dialog",
GimpTestFixture,
gimp,
NULL,
- gimp_ui_switch_to_single_window_mode,
+ gimp_ui_create_new_image_via_dialog,
NULL);
- g_test_add ("/gimp-ui/switch-back-to-multi-window-mode",
+ g_test_add ("/gimp-ui/switch-to-single-window-mode",
GimpTestFixture,
gimp,
NULL,
- gimp_ui_switch_back_to_multi_window_mode,
+ gimp_ui_switch_to_single_window_mode,
NULL);
- g_test_add ("/gimp-ui/create-new-image-via-dialog",
+ g_test_add ("/gimp-ui/switch-back-to-multi-window-mode",
GimpTestFixture,
gimp,
NULL,
- gimp_ui_create_new_image_via_dialog,
+ gimp_ui_switch_back_to_multi_window_mode,
NULL);
/* Run the tests and return status */
@@ -167,36 +167,6 @@ gimp_ui_tool_options_editor_updates (GimpTestFixture *fixture,
}
static void
-gimp_ui_switch_to_single_window_mode (GimpTestFixture *fixture,
- gconstpointer data)
-{
- Gimp *gimp = GIMP (data);
-
- /* Switch to single-window mode. We consider this test as passed if
- * we don't get any GLib warnings/errors
- */
- gimp_ui_manager_activate_action (gimp_ui_get_ui_manager (gimp),
- "windows",
- "windows-use-single-window-mode");
- gimp_test_run_mainloop_until_idle ();
-}
-
-static void
-gimp_ui_switch_back_to_multi_window_mode (GimpTestFixture *fixture,
- gconstpointer data)
-{
- Gimp *gimp = GIMP (data);
-
- /* Switch back to multi-window mode. We consider this test as passed
- * if we don't get any GLib warnings/errors
- */
- gimp_ui_manager_activate_action (gimp_ui_get_ui_manager (gimp),
- "windows",
- "windows-use-single-window-mode");
- gimp_test_run_mainloop_until_idle ();
-}
-
-static void
gimp_ui_create_new_image_via_dialog (GimpTestFixture *fixture,
gconstpointer data)
{
@@ -244,14 +214,57 @@ gimp_ui_create_new_image_via_dialog (GimpTestFixture *fixture,
n_initial_images + 1);
}
+static void
+gimp_ui_switch_to_single_window_mode (GimpTestFixture *fixture,
+ gconstpointer data)
+{
+ Gimp *gimp = GIMP (data);
+
+ /* Switch to single-window mode. We consider this test as passed if
+ * we don't get any GLib warnings/errors
+ */
+ gimp_ui_manager_activate_action (gimp_ui_get_ui_manager (gimp),
+ "windows",
+ "windows-use-single-window-mode");
+ gimp_test_run_mainloop_until_idle ();
+}
+
+static void
+gimp_ui_switch_back_to_multi_window_mode (GimpTestFixture *fixture,
+ gconstpointer data)
+{
+ Gimp *gimp = GIMP (data);
+
+ /* Switch back to multi-window mode. We consider this test as passed
+ * if we don't get any GLib warnings/errors
+ */
+ gimp_ui_manager_activate_action (gimp_ui_get_ui_manager (gimp),
+ "windows",
+ "windows-use-single-window-mode");
+ gimp_test_run_mainloop_until_idle ();
+}
+
static GimpUIManager *
gimp_ui_get_ui_manager (Gimp *gimp)
{
- GimpDisplay *display = GIMP_DISPLAY (gimp_get_empty_display (gimp));
- GimpDisplayShell *shell = gimp_display_get_shell (display);
- GtkWidget *toplevel = gtk_widget_get_toplevel (GTK_WIDGET (shell));
- GimpImageWindow *image_window = GIMP_IMAGE_WINDOW (toplevel);
- GimpUIManager *ui_manager = gimp_image_window_get_ui_manager (image_window);
+ GimpDisplay *display = NULL;
+ GimpDisplayShell *shell = NULL;
+ GtkWidget *toplevel = NULL;
+ GimpImageWindow *image_window = NULL;
+ GimpUIManager *ui_manager = NULL;
+
+ display = GIMP_DISPLAY (gimp_get_empty_display (gimp));
+
+ /* If there were not empty display, assume that there is at least
+ * one image display and use that
+ */
+ if (! display)
+ display = GIMP_DISPLAY (gimp_get_display_iter (gimp)->data);
+
+ shell = gimp_display_get_shell (display);
+ toplevel = gtk_widget_get_toplevel (GTK_WIDGET (shell));
+ image_window = GIMP_IMAGE_WINDOW (toplevel);
+ ui_manager = gimp_image_window_get_ui_manager (image_window);
return ui_manager;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]