[tepl] Dumb FileSaver unit tests: test backup



commit 391459f9c8b0fde1ff5eb163b05d732828275cda
Author: Sébastien Wilmet <swilmet gnome org>
Date:   Tue May 12 20:34:14 2020 +0200

    Dumb FileSaver unit tests: test backup

 testsuite/test-file-saver.c | 63 ++++++++++++++++++++++++++++++++++++++-------
 1 file changed, 53 insertions(+), 10 deletions(-)
---
diff --git a/testsuite/test-file-saver.c b/testsuite/test-file-saver.c
index 153e685..a3eace8 100644
--- a/testsuite/test-file-saver.c
+++ b/testsuite/test-file-saver.c
@@ -29,9 +29,9 @@ check_equal_content (GFile       *file,
 }
 
 static void
-check_save_content_cb (GObject      *source_object,
-                      GAsyncResult *result,
-                      gpointer      user_data)
+save_sync_cb (GObject      *source_object,
+             GAsyncResult *result,
+             gpointer      user_data)
 {
        TeplFileSaver *saver = TEPL_FILE_SAVER (source_object);
        gboolean ok;
@@ -44,6 +44,17 @@ check_save_content_cb (GObject      *source_object,
        gtk_main_quit ();
 }
 
+static void
+save_sync (TeplFileSaver *saver)
+{
+       tepl_file_saver_save_async (saver,
+                                   G_PRIORITY_DEFAULT,
+                                   NULL,
+                                   save_sync_cb,
+                                   NULL);
+       gtk_main ();
+}
+
 static void
 check_save_content (const gchar *content)
 {
@@ -59,13 +70,7 @@ check_save_content (const gchar *content)
        location = g_file_new_build_filename (g_get_tmp_dir (), "tepl-file-saver-test", NULL);
        saver = tepl_file_saver_new_with_target (buffer, file, location);
 
-       tepl_file_saver_save_async (saver,
-                                   G_PRIORITY_DEFAULT,
-                                   NULL,
-                                   check_save_content_cb,
-                                   NULL);
-       gtk_main ();
-
+       save_sync (saver);
        check_equal_content (location, content);
 
        g_object_unref (buffer);
@@ -84,6 +89,43 @@ test_basic (void)
        check_save_content ("UTF-8-Évo");
 }
 
+static void
+test_backup (void)
+{
+       TeplBuffer *buffer;
+       TeplFile *file;
+       GFile *location;
+       GFile *backup_location;
+       TeplFileSaver *saver;
+
+       buffer = tepl_buffer_new ();
+       gtk_text_buffer_set_text (GTK_TEXT_BUFFER (buffer), "contentA", -1);
+
+       file = tepl_file_new ();
+       location = g_file_new_build_filename (g_get_tmp_dir (), "tepl-file-saver-test", NULL);
+
+       saver = tepl_file_saver_new_with_target (buffer, file, location);
+       save_sync (saver);
+       check_equal_content (location, "contentA");
+       g_object_unref (saver);
+
+       gtk_text_buffer_set_text (GTK_TEXT_BUFFER (buffer), "contentB", -1);
+
+       saver = tepl_file_saver_new_with_target (buffer, file, location);
+       tepl_file_saver_set_flags (saver, TEPL_FILE_SAVER_FLAGS_CREATE_BACKUP);
+       save_sync (saver);
+       check_equal_content (location, "contentB");
+       g_object_unref (saver);
+
+       backup_location = g_file_new_build_filename (g_get_tmp_dir (), "tepl-file-saver-test~", NULL);
+       check_equal_content (backup_location, "contentA");
+
+       g_object_unref (buffer);
+       g_object_unref (file);
+       g_object_unref (location);
+       g_object_unref (backup_location);
+}
+
 int
 main (int    argc,
       char **argv)
@@ -91,6 +133,7 @@ main (int    argc,
        gtk_test_init (&argc, &argv);
 
        g_test_add_func ("/file_saver/basic", test_basic);
+       g_test_add_func ("/file_saver/backup", test_backup);
 
        return g_test_run ();
 }


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