tests: Test file:// URIs with both query and fragment

This commit is contained in:
Colomban Wendling
2023-12-20 19:23:40 +01:00
parent 0e475a6e11
commit 5790ce14e8
3 changed files with 50 additions and 34 deletions

View File

@@ -3958,35 +3958,42 @@ test_enumerator_cancellation (void)
}
static void
test_from_uri_ignores_fragment (void)
test_path_from_uri_helper (const gchar *uri,
const gchar *expected_path)
{
GFile *file;
gchar *path;
file = g_file_new_for_uri ("file:///tmp/foo#bar");
path = g_file_get_path (file);
gchar *expected_platform_path;
expected_platform_path = g_strdup (expected_path);
#ifdef G_OS_WIN32
g_assert_cmpstr (path, ==, "\\tmp\\foo");
#else
g_assert_cmpstr (path, ==, "/tmp/foo");
for (gchar *p = expected_platform_path; *p; p++)
{
if (*p == '/')
*p = '\\';
}
#endif
file = g_file_new_for_uri (uri);
path = g_file_get_path (file);
g_assert_cmpstr (path, ==, expected_platform_path);
g_free (path);
g_object_unref (file);
g_free (expected_platform_path);
}
static void
test_from_uri_ignores_fragment (void)
{
test_path_from_uri_helper ("file:///tmp/foo#bar", "/tmp/foo");
test_path_from_uri_helper ("file:///tmp/foo#bar?baz", "/tmp/foo");
}
static void
test_from_uri_ignores_query_string (void)
{
GFile *file;
gchar *path;
file = g_file_new_for_uri ("file:///tmp/foo?bar");
path = g_file_get_path (file);
#ifdef G_OS_WIN32
g_assert_cmpstr (path, ==, "\\tmp\\foo");
#else
g_assert_cmpstr (path, ==, "/tmp/foo");
#endif
g_free (path);
g_object_unref (file);
test_path_from_uri_helper ("file:///tmp/foo?bar", "/tmp/foo");
test_path_from_uri_helper ("file:///tmp/foo?bar#baz", "/tmp/foo");
}
int