[gimp] app/tests: Add simple tests to switch to and from single-window mode



commit 8c10d1c4519c5dd968ea241c3b2c54d48c95f68a
Author: Martin Nordholts <martinn src gnome org>
Date:   Sun Jan 17 10:35:28 2010 +0100

    app/tests: Add simple tests to switch to and from single-window mode

 app/tests/test-ui.c |   67 +++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 63 insertions(+), 4 deletions(-)
---
diff --git a/app/tests/test-ui.c b/app/tests/test-ui.c
index 20beb9d..8a9b255 100644
--- a/app/tests/test-ui.c
+++ b/app/tests/test-ui.c
@@ -50,10 +50,15 @@ typedef struct
 } GimpTestFixture;
 
 
-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_tool_options_editor_updates      (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);
 
 
 int main(int argc, char **argv)
@@ -79,6 +84,18 @@ int main(int argc, char **argv)
               NULL,
               gimp_ui_tool_options_editor_updates,
               NULL);
+  g_test_add ("/gimp-ui/switch-to-single-window-mode",
+              GimpTestFixture,
+              gimp,
+              NULL,
+              gimp_ui_switch_to_single_window_mode,
+              NULL);
+  g_test_add ("/gimp-ui/switch-back-to-multi-window-mode",
+              GimpTestFixture,
+              gimp,
+              NULL,
+              gimp_ui_switch_back_to_multi_window_mode,
+              NULL);
   g_test_add ("/gimp-ui/create-new-image-via-dialog",
               GimpTestFixture,
               gimp,
@@ -145,6 +162,36 @@ 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)
 {
@@ -191,3 +238,15 @@ gimp_ui_create_new_image_via_dialog (GimpTestFixture *fixture,
                    ==,
                    n_initial_images + 1);
 }
+
+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);
+
+  return ui_manager;
+}



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]