[gnome-builder] tests: port test-ide-buffer to IDE_APPLICATION_MODE_TESTS



commit 9ecc51fe0536eb672ebc189bb7ec1d5bf97e1f51
Author: Christian Hergert <chergert redhat com>
Date:   Wed Jan 13 15:44:09 2016 -0800

    tests: port test-ide-buffer to IDE_APPLICATION_MODE_TESTS

 tests/test-ide-buffer.c |  113 +++++++++++++++++++++++------------------------
 1 files changed, 56 insertions(+), 57 deletions(-)
---
diff --git a/tests/test-ide-buffer.c b/tests/test-ide-buffer.c
index ce4e263..1c86246 100644
--- a/tests/test-ide-buffer.c
+++ b/tests/test-ide-buffer.c
@@ -16,39 +16,36 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#define G_LOG_DOMAIN "test-ide-buffer"
+
 #include <glib.h>
 #include <glib/gstdio.h>
 #include <ide.h>
 
-#include "gb-plugins.h"
-#include "test-helper.h"
-
-typedef struct
-{
-  GMainLoop    *main_loop;
-  IdeContext   *context;
-  GCancellable *cancellable;
-  GError       *error;
-} test_buffer_basic_state;
+#include "ide-application-tests.h"
 
 static void
 flags_changed_cb (IdeBuffer *buffer,
                   gpointer   user_data)
 {
-  test_buffer_basic_state *state = user_data;
   g_autofree gchar *str = NULL;
+  g_autoptr(GTask) task = user_data;
   GtkTextIter begin;
   GtkTextIter end;
 
+  IDE_ENTRY;
+
   ide_buffer_trim_trailing_whitespace (buffer);
 
   gtk_text_buffer_get_bounds (GTK_TEXT_BUFFER (buffer), &begin, &end);
   str = gtk_text_buffer_get_text (GTK_TEXT_BUFFER (buffer), &begin, &end, TRUE);
   g_assert_cmpstr (str, ==, "abcd\n\n\n");
 
+  g_task_return_boolean (task, TRUE);
+
   g_object_unref (buffer);
 
-  g_main_loop_quit (state->main_loop);
+  IDE_EXIT;
 }
 
 static void
@@ -57,19 +54,25 @@ test_buffer_basic_cb2 (GObject      *object,
                        gpointer      user_data)
 {
   IdeBufferManager *manager = (IdeBufferManager *)object;
-  test_buffer_basic_state *state = user_data;
-  GError *error = NULL;
   g_autoptr(IdeBuffer) ret = NULL;
+  g_autoptr(GTask) task = user_data;
+  GError *error = NULL;
+
+  IDE_ENTRY;
 
   ret = ide_buffer_manager_load_file_finish (manager, result, &error);
   g_assert_no_error (error);
   g_assert (ret);
   g_assert (IDE_IS_BUFFER (ret));
 
-  g_signal_connect (ret, "line-flags-changed", G_CALLBACK (flags_changed_cb), state);
-  g_object_ref (ret);
-
+  g_signal_connect_object (ret,
+                           "line-flags-changed",
+                           G_CALLBACK (flags_changed_cb),
+                           g_object_ref (task),
+                           0);
   gtk_text_buffer_set_text (GTK_TEXT_BUFFER (ret), "abcd  \n\n  \n", -1);
+
+  IDE_EXIT;
 }
 
 static void
@@ -77,74 +80,70 @@ test_buffer_basic_cb1 (GObject      *object,
                        GAsyncResult *result,
                        gpointer      user_data)
 {
-  test_buffer_basic_state *state = user_data;
+  g_autoptr(GTask) task = user_data;
   g_autoptr(IdeFile) file = NULL;
+  g_autoptr(IdeContext) context = NULL;
   IdeBufferManager *manager;
   IdeProject *project;
+  GError *error = NULL;
 
-  state->context = ide_context_new_finish (result, &state->error);
-
-  if (!state->context)
-    goto failure;
+  IDE_ENTRY;
 
-  manager = ide_context_get_buffer_manager (state->context);
+  context = ide_context_new_finish (result, &error);
+  g_assert_no_error (error);
+  g_assert (context != NULL);
+  g_assert (IDE_IS_CONTEXT (context));
 
-  project = ide_context_get_project (state->context);
+  manager = ide_context_get_buffer_manager (context);
+  project = ide_context_get_project (context);
   file = ide_project_get_file_for_path (project, "test-ide-buffer.tmp");
 
   ide_buffer_manager_load_file_async (manager,
                                       file,
                                       FALSE,
                                       NULL,
-                                      state->cancellable,
+                                      g_task_get_cancellable (task),
                                       test_buffer_basic_cb2,
-                                      state);
-
-  return;
+                                      g_object_ref (task));
 
-failure:
-  g_main_loop_quit (state->main_loop);
+  IDE_EXIT;
 }
 
 static void
-test_buffer_basic (void)
+test_buffer_basic (GCancellable        *cancellable,
+                   GAsyncReadyCallback  callback,
+                   gpointer             user_data)
 {
-  test_buffer_basic_state state = { 0 };
-  IdeBufferManager *manager;
-  GFile *project_file;
+  g_autoptr(GFile) project_file = NULL;
   g_autofree gchar *path = NULL;
+  GTask *task;
 
-  test_helper_begin_test ();
+  IDE_ENTRY;
 
+  task = g_task_new (NULL, cancellable, callback, user_data);
   path = g_build_filename (g_get_current_dir (), TEST_DATA_DIR, "project1", "configure.ac", NULL);
   project_file = g_file_new_for_path (path);
+  ide_context_new_async (project_file, cancellable, test_buffer_basic_cb1, task);
 
-  state.main_loop = g_main_loop_new (NULL, FALSE);
-  state.cancellable = g_cancellable_new ();
-
-  ide_context_new_async (project_file, state.cancellable,
-                         test_buffer_basic_cb1, &state);
-
-  g_main_loop_run (state.main_loop);
-
-  g_assert_no_error (state.error);
-  g_assert (state.context);
-
-  manager = ide_context_get_buffer_manager (state.context);
-  g_assert (IDE_IS_BUFFER_MANAGER (manager));
-
-  g_clear_object (&state.cancellable);
-  g_clear_object (&state.context);
-  g_clear_error (&state.error);
-  g_main_loop_unref (state.main_loop);
-  g_clear_object (&project_file);
+  IDE_EXIT;
 }
 
 gint
 main (gint   argc,
       gchar *argv[])
 {
-  test_helper_init (&argc, &argv);
-  g_test_add_func ("/Ide/Buffer/basic", test_buffer_basic);
-  return g_test_run ();
+  IdeApplication *app;
+  gint ret;
+
+  g_test_init (&argc, &argv, NULL);
+
+  ide_log_init (TRUE, NULL);
+  ide_log_set_verbosity (4);
+
+  app = ide_application_new ();
+  ide_application_add_test (app, "/Ide/Buffer/basic", test_buffer_basic, NULL);
+  ret = g_application_run (G_APPLICATION (app), argc, argv);
+  g_object_unref (app);
+
+  return ret;
 }


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