[gnome-autoar/wip/oholy/various-fixes: 10/17] tests: Fix tests for conflicts




commit b4d1f86eb406b2082e68f3a5f7ea956c445a0875
Author: Ondrej Holy <oholy redhat com>
Date:   Thu Mar 4 13:35:31 2021 +0100

    tests: Fix tests for conflicts
    
    The tests for conflicts contains several bugs and also are not able to
    distingues between skip and overwrite actions. Let's modify the test so
    they can really verify whether the files are skipped, or overwritten.

 .../test-conflict-skip-file/reference/arextract.txt     |  2 +-
 tests/test-extract-unit.c                               | 17 ++++++++++++-----
 2 files changed, 13 insertions(+), 6 deletions(-)
---
diff --git a/tests/files/extract/test-conflict-skip-file/reference/arextract.txt 
b/tests/files/extract/test-conflict-skip-file/reference/arextract.txt
index 12466e2..fe97d17 100644
--- a/tests/files/extract/test-conflict-skip-file/reference/arextract.txt
+++ b/tests/files/extract/test-conflict-skip-file/reference/arextract.txt
@@ -1 +1 @@
-AutoarExtract
+this file should not be overwritten
diff --git a/tests/test-extract-unit.c b/tests/test-extract-unit.c
index 17a1508..c4e50b1 100644
--- a/tests/test-extract-unit.c
+++ b/tests/test-extract-unit.c
@@ -198,7 +198,7 @@ conflict_handler (AutoarExtractor *extractor,
                   gpointer user_data)
 {
   ExtractTestData *data = user_data;
-  AutoarConflictAction action = AUTOAR_CONFLICT_SKIP;
+  AutoarConflictAction action = AUTOAR_CONFLICT_UNHANDLED;
   gpointer value;
   gboolean key_found;
 
@@ -393,7 +393,8 @@ scan_directory (GFile *directory,
     if (g_file_info_get_file_type (file_info) == G_FILE_TYPE_DIRECTORY) {
       enumerator = g_file_enumerate_children (file,
                                               G_FILE_ATTRIBUTE_STANDARD_NAME","
-                                              G_FILE_ATTRIBUTE_STANDARD_TYPE,
+                                              G_FILE_ATTRIBUTE_STANDARD_TYPE","
+                                              G_FILE_ATTRIBUTE_STANDARD_SIZE,
                                               G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS,
                                               NULL, NULL);
 
@@ -459,7 +460,9 @@ reference_file_scanned (GFile *scanned_file,
     g_assert_cmpuint (g_file_info_get_file_type (scanned_file_info),
                       ==,
                       g_file_info_get_file_type (corresponding_file_info));
-
+    g_assert_cmpuint (g_file_info_get_size (scanned_file_info),
+                      ==,
+                      g_file_info_get_size (corresponding_file_info));
     g_hash_table_remove (extract_test->unmatched_files, relative_path);
   }
 }
@@ -730,8 +733,8 @@ test_conflict_overwrite (void)
   conflict_file = g_file_get_child (extract_test->output,
                                     "arextract.txt");
 
-  g_file_copy (reference_file, conflict_file, G_FILE_COPY_NONE,
-               NULL, NULL, NULL, NULL);
+  g_file_replace_contents (conflict_file, "this file should be overwritten", 31,
+                           NULL, FALSE, G_FILE_CREATE_NONE, NULL, NULL, NULL);
 
   archive = g_file_get_child (extract_test->input, "arextract.zip");
 
@@ -739,6 +742,10 @@ test_conflict_overwrite (void)
 
   data = extract_test_data_new_for_extract (extractor);
 
+  g_hash_table_insert (data->conflict_files_actions,
+                       g_object_ref (conflict_file),
+                       GUINT_TO_POINTER (AUTOAR_CONFLICT_OVERWRITE));
+
   autoar_extractor_start (extractor, data->cancellable);
 
   g_assert_cmpuint (data->number_of_files, ==, 1);


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