[nautilus] test: Add file-utilities unit test



commit 89e362ae1384b2e812723893d735e23341bd51fa
Author: Alexandru Fazakas <alex fazakas97 yahoo com>
Date:   Tue Mar 27 20:05:06 2018 +0300

    test: Add file-utilities unit test
    
    File utilities operations need to be tested thoroughly everytime
    we make changes to make sure they're fine to use further.
    
    This patch introduces an unit test file for the
    nautilus_file_selection_equal.

 test/automated/displayless/meson.build           |   3 +
 test/automated/displayless/test-file-utilities.c | 239 +++++++++++++++++++++++
 2 files changed, 242 insertions(+)
---
diff --git a/test/automated/displayless/meson.build b/test/automated/displayless/meson.build
index fc8570f3c..cd7573417 100644
--- a/test/automated/displayless/meson.build
+++ b/test/automated/displayless/meson.build
@@ -4,6 +4,9 @@ tests = [
   ]],
   ['test-eel-string-get-common-prefix', [
     'test-eel-string-get-common-prefix.c'
+  ]],
+  ['test-file-utilities', [
+    'test-file-utilities.c'
   ]]
 ]
 
diff --git a/test/automated/displayless/test-file-utilities.c 
b/test/automated/displayless/test-file-utilities.c
new file mode 100644
index 000000000..ca61870ee
--- /dev/null
+++ b/test/automated/displayless/test-file-utilities.c
@@ -0,0 +1,239 @@
+#include <glib.h>
+#include <glib/gprintf.h>
+#include "src/nautilus-directory.h"
+#include "src/nautilus-file-utilities.h"
+#include "src/nautilus-search-directory.h"
+#include "src/nautilus-directory.h"
+#include "src/nautilus-file.h"
+#include "src/nautilus-file.c"
+#include <unistd.h>
+#include "eel/eel-string.h"
+
+#define ROOT_DIR "file:///tmp"
+
+/* Tests the function for empty selections */
+static void
+test_both_null (void)
+{
+    g_assert_true (nautilus_file_selection_equal (NULL, NULL));
+}
+
+/* Tests the function for an empty and a non-empty selection */
+static void
+test_either_null (void)
+{
+    g_autoptr (NautilusFile) file = NULL;
+    g_autoptr (NautilusDirectory) directory = NULL;
+    g_autolist (NautilusFile) selection = NULL;
+
+    directory = nautilus_directory_get_by_uri (ROOT_DIR);
+    g_assert_true (NAUTILUS_IS_DIRECTORY (directory));
+
+    file = nautilus_file_new_from_filename (directory, "null_first", FALSE);
+    nautilus_directory_add_file (directory, file);
+
+    selection = g_list_append (selection, g_object_ref (file));
+    g_assert_false (nautilus_file_selection_equal (NULL, selection));
+    g_assert_false (nautilus_file_selection_equal (selection, NULL));
+}
+
+/* tests the function for 2 identical selections, each containing one file */
+static void
+test_one_file_equal (void)
+{
+    g_autoptr (NautilusFile) file = NULL;
+    g_autoptr (NautilusDirectory) directory = NULL;
+    g_autolist (NautilusFile) selection = NULL;
+
+    directory = nautilus_directory_get_by_uri (ROOT_DIR);
+    g_assert_true (NAUTILUS_IS_DIRECTORY (directory));
+
+    file = nautilus_file_new_from_filename (directory, "one_file_equal", FALSE);
+    nautilus_directory_add_file (directory, file);
+
+    selection = g_list_append (selection, g_object_ref (file));
+    g_assert_true (nautilus_file_selection_equal (selection, selection));
+}
+
+/* Tests the function for 2 different selections, each containing one file */
+static void
+test_one_file_different (void)
+{
+    g_autoptr (NautilusFile) one_file_first = NULL;
+    g_autoptr (NautilusFile) one_file_second = NULL;
+    g_autoptr (NautilusDirectory) directory = NULL;
+    g_autolist (NautilusFile) first_selection = NULL;
+    g_autolist (NautilusFile) second_selection = NULL;
+
+    directory = nautilus_directory_get_by_uri (ROOT_DIR);
+    g_assert_true (NAUTILUS_IS_DIRECTORY (directory));
+
+    one_file_first = nautilus_file_new_from_filename (directory, "one_file_first", FALSE);
+    nautilus_directory_add_file (directory, one_file_first);
+
+    one_file_second = nautilus_file_new_from_filename (directory, "one_file_second", FALSE);
+    nautilus_directory_add_file (directory, one_file_second);
+
+    first_selection = g_list_append (first_selection, g_object_ref (one_file_first));
+    second_selection = g_list_append (second_selection, g_object_ref (one_file_second));
+    g_assert_false (nautilus_file_selection_equal (first_selection, second_selection));
+}
+
+/* Tests the function for 2 identical selections, each containing 50 files */
+static void
+test_multiple_files_equal_medium (void)
+{
+    g_autoptr (NautilusDirectory) directory = NULL;
+    g_autolist (NautilusFile) selection = NULL;
+
+    directory = nautilus_directory_get_by_uri (ROOT_DIR);
+    g_assert_true (NAUTILUS_IS_DIRECTORY (directory));
+    for (gint index = 0; index < 50; index++)
+    {
+        g_autoptr (NautilusFile) file = NULL;
+        g_autofree gchar *file_name = NULL;
+
+        file_name = g_strdup_printf ("multiple_files_equal_medium_%i", index);
+        file = nautilus_file_new_from_filename (directory, file_name, FALSE);
+        nautilus_directory_add_file (directory, file);
+        selection = g_list_prepend (selection, g_object_ref (file));
+    }
+
+    g_assert_true (nautilus_file_selection_equal (selection, selection));
+}
+
+/* Tests the function for 2 different selections, each containing 51 files,
+ * the last file being the different one */
+static void
+test_multiple_files_different_medium (void)
+{
+    g_autoptr (NautilusFile) first_file = NULL;
+    g_autoptr (NautilusFile) second_file = NULL;
+    g_autoptr (NautilusDirectory) directory = NULL;
+    g_autolist (NautilusFile) first_selection = NULL;
+    g_autolist (NautilusFile) second_selection = NULL;
+    g_autofree gchar *first_file_name = NULL;
+    g_autofree gchar *second_file_name = NULL;
+
+    directory = nautilus_directory_get_by_uri (ROOT_DIR);
+    g_assert_true (NAUTILUS_IS_DIRECTORY (directory));
+    for (gint index = 0; index < 50; index++)
+    {
+        first_file_name = g_strdup_printf ("multiple_files_different_medium_%i", index);
+        first_file = nautilus_file_new_from_filename (directory, first_file_name, FALSE);
+        nautilus_directory_add_file (directory, first_file);
+        g_assert_true (NAUTILUS_IS_FILE (first_file));
+        first_selection = g_list_prepend (first_selection, g_object_ref (first_file));
+        second_selection = g_list_prepend (second_selection, g_object_ref (first_file));
+    }
+
+    first_file_name = g_strdup_printf ("multiple_files_different_medium_lastElement");
+    second_file_name = g_strdup_printf ("multiple_files_different_medium_differentElement");
+    first_file = nautilus_file_new_from_filename (directory, first_file_name, FALSE);
+    nautilus_directory_add_file (directory, first_file);
+    second_file = nautilus_file_new_from_filename (directory, second_file_name, FALSE);
+    nautilus_directory_add_file (directory, second_file);
+    g_assert_true (NAUTILUS_IS_FILE (first_file));
+    g_assert_true (NAUTILUS_IS_FILE (second_file));
+    first_selection = g_list_append (first_selection, g_object_ref (first_file));
+    second_selection = g_list_append (second_selection, g_object_ref (second_file));
+
+    g_assert_false (nautilus_file_selection_equal (first_selection, second_selection));
+}
+
+/* Tests the function for 2 identical selections, each containing 1000 files */
+static void
+test_multiple_files_equal_large (void)
+{
+    g_autoptr (NautilusDirectory) directory = NULL;
+    g_autolist (NautilusFile) selection = NULL;
+
+    directory = nautilus_directory_get_by_uri (ROOT_DIR);
+    g_assert_true (NAUTILUS_IS_DIRECTORY (directory));
+    for (gint index = 0; index < 1000; index++)
+    {
+        g_autoptr (NautilusFile) file = NULL;
+        g_autofree gchar *file_name = NULL;
+
+        file_name = g_strdup_printf ("multiple_files_equal_large_%i", index);
+        file = nautilus_file_new_from_filename (directory, file_name, FALSE);
+        nautilus_directory_add_file (directory, file);
+        g_assert_true (NAUTILUS_IS_FILE (file));
+        selection = g_list_prepend (selection, g_object_ref (file));
+    }
+
+    g_assert_true (nautilus_file_selection_equal (selection, selection));
+}
+
+/* Tests the function for 2 different selections, each containing 1001 files,
+ * the last file being the different one */
+static void
+test_multiple_files_different_large (void)
+{
+    g_autoptr (NautilusFile) first_file = NULL;
+    g_autoptr (NautilusFile) second_file = NULL;
+    g_autoptr (NautilusDirectory) directory = NULL;
+    g_autolist (NautilusFile) first_selection = NULL;
+    g_autolist (NautilusFile) second_selection = NULL;
+    g_autofree gchar *first_file_name = NULL;
+    g_autofree gchar *second_file_name = NULL;
+
+    directory = nautilus_directory_get_by_uri (ROOT_DIR);
+    g_assert_true (NAUTILUS_IS_DIRECTORY (directory));
+    for (gint index = 0; index < 1000; index++)
+    {
+        first_file_name = g_strdup_printf ("multiple_files_different_large_%i", index);
+        first_file = nautilus_file_new_from_filename (directory, first_file_name, FALSE);
+        nautilus_directory_add_file (directory, first_file);
+        g_assert_true (NAUTILUS_IS_FILE (first_file));
+        first_selection = g_list_prepend (first_selection, g_object_ref (first_file));
+        second_selection = g_list_prepend (second_selection, g_object_ref (first_file));
+    }
+
+    first_file_name = g_strdup_printf ("multiple_files_different_large_lastElement");
+    second_file_name = g_strdup_printf ("multiple_files_different_large_differentElement");
+    first_file = nautilus_file_new_from_filename (directory, first_file_name, FALSE);
+    nautilus_directory_add_file (directory, first_file);
+    second_file = nautilus_file_new_from_filename (directory, second_file_name, FALSE);
+    nautilus_directory_add_file (directory, second_file);
+    g_assert_true (NAUTILUS_IS_FILE (first_file));
+    g_assert_true (NAUTILUS_IS_FILE (second_file));
+
+    first_selection = g_list_append (first_selection, g_object_ref (first_file));
+    second_selection = g_list_append (second_selection, g_object_ref (second_file));
+
+    g_assert_false (nautilus_file_selection_equal (first_selection, second_selection));
+}
+
+static void
+setup_test_suite (void)
+{
+    g_test_add_func ("/file-selection-equal-null/1.0",
+                     test_both_null);
+    g_test_add_func ("/file-selection-equal-null/1.1",
+                     test_either_null);
+    g_test_add_func ("/file-selection-equal-files/1.0",
+                     test_one_file_equal);
+    g_test_add_func ("/file-selection-equal-files/1.1",
+                     test_multiple_files_equal_medium);
+    g_test_add_func ("/file-selection-equal-files/1.2",
+                     test_multiple_files_equal_large);
+    g_test_add_func ("/file-selection-different-files/1.0",
+                     test_one_file_different);
+    g_test_add_func ("/file-selection-different-files/1.1",
+                     test_multiple_files_different_medium);
+    g_test_add_func ("/file-selection-different-files/1.2",
+                     test_multiple_files_different_large);
+}
+
+int
+main (int argc, char *argv[])
+{
+    g_test_init (&argc, &argv, NULL);
+    g_test_set_nonfatal_assertions ();
+    nautilus_ensure_extension_points();
+
+    setup_test_suite ();
+
+    return g_test_run ();
+}
\ No newline at end of file


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