1
0
Fork 0
nautilus/test/automated/displayless/test-file.c
Daniel Baumann c99d511d89
Adding upstream version 48.2.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-22 22:37:51 +02:00

112 lines
3.5 KiB
C

#include <glib.h>
#include <nautilus-directory-private.h>
#include <nautilus-file.h>
#include <nautilus-file-private.h>
#include <nautilus-file-utilities.h>
static void
test_file_refcount_single_file (void)
{
g_assert_cmpint (nautilus_directory_number_outstanding (), ==, 0);
NautilusFile *file = nautilus_file_get_by_uri ("file:///home/");
g_assert_cmpint (G_OBJECT (file)->ref_count, ==, 1);
g_assert_cmpint (G_OBJECT (file->details->directory)->ref_count, ==, 1);
g_assert_cmpint (nautilus_directory_number_outstanding (), ==, 1);
nautilus_file_unref (file);
g_assert_cmpint (nautilus_directory_number_outstanding (), ==, 0);
}
static void
test_file_check_name_bland (void)
{
g_autoptr (NautilusFile) file = nautilus_file_get_by_uri ("file:///home");
const char *name = nautilus_file_get_name (file);
g_assert_cmpstr (name, ==, "home");
}
static void
test_file_check_name_trailing_slash (void)
{
g_autoptr (NautilusFile) file = nautilus_file_get_by_uri ("file:///home/");
const char *name = nautilus_file_get_name (file);
g_assert_cmpstr (name, ==, "home");
}
static void
test_file_duplicate_pointers (void)
{
g_autoptr (NautilusFile) file = nautilus_file_get_by_uri ("file:///home/");
g_assert_true (nautilus_file_get_by_uri ("file:///home/") == file);
nautilus_file_unref (file);
g_assert_true (nautilus_file_get_by_uri ("file:///home") == file);
nautilus_file_unref (file);
}
static void
test_file_sort_order (void)
{
g_autoptr (NautilusFile) file_1 = nautilus_file_get_by_uri ("file:///etc");
g_autoptr (NautilusFile) file_2 = nautilus_file_get_by_uri ("file:///usr");
NautilusFileSortType sort_type = NAUTILUS_FILE_SORT_BY_DISPLAY_NAME;
g_assert_cmpint (G_OBJECT (file_1)->ref_count, ==, 1);
g_assert_cmpint (G_OBJECT (file_2)->ref_count, ==, 1);
int order = nautilus_file_compare_for_sort (file_1, file_2, sort_type, FALSE, FALSE);
g_assert_cmpint (order, <, 0);
int order_reversed = nautilus_file_compare_for_sort (file_1, file_2, sort_type, FALSE, TRUE);
g_assert_cmpint (order_reversed, >, 0);
}
static void
test_file_sort_with_self (void)
{
g_autoptr (NautilusFile) file_1 = nautilus_file_get_by_uri ("file:///etc");
NautilusFileSortType sort_type = NAUTILUS_FILE_SORT_BY_DISPLAY_NAME;
int order;
order = nautilus_file_compare_for_sort (file_1, file_1, sort_type, TRUE, TRUE);
g_assert_cmpint (order, ==, 0);
order = nautilus_file_compare_for_sort (file_1, file_1, sort_type, TRUE, FALSE);
g_assert_cmpint (order, ==, 0);
order = nautilus_file_compare_for_sort (file_1, file_1, sort_type, FALSE, TRUE);
g_assert_cmpint (order, ==, 0);
order = nautilus_file_compare_for_sort (file_1, file_1, sort_type, FALSE, FALSE);
g_assert_cmpint (order, ==, 0);
}
int
main (int argc,
char *argv[])
{
g_test_init (&argc, &argv, NULL);
g_test_set_nonfatal_assertions ();
nautilus_ensure_extension_points ();
g_test_add_func ("/file-refcount/single-file",
test_file_refcount_single_file);
g_test_add_func ("/file-check-name/bland",
test_file_check_name_bland);
g_test_add_func ("/file-check-name/trailing-slash",
test_file_check_name_trailing_slash);
g_test_add_func ("/file-duplicate-pointers/1.0",
test_file_duplicate_pointers);
g_test_add_func ("/file-sort/order",
test_file_sort_order);
g_test_add_func ("/file-sort/with-self",
test_file_sort_with_self);
return g_test_run ();
}