mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-12-24 14:36:13 +01:00
tests: Test file:// URIs with both query and fragment
This commit is contained in:
parent
0e475a6e11
commit
5790ce14e8
@ -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
|
||||
|
@ -950,35 +950,42 @@ test_no_conv (void)
|
||||
}
|
||||
|
||||
static void
|
||||
test_filename_from_uri_query_is_ignored (void)
|
||||
test_filename_from_uri_helper (const gchar *uri,
|
||||
const gchar *expected_filename)
|
||||
{
|
||||
gchar *filename;
|
||||
gchar *expected_platform_filename;
|
||||
GError *error = NULL;
|
||||
|
||||
filename = g_filename_from_uri ("file:///tmp/foo?bar", NULL, &error);
|
||||
g_assert_no_error (error);
|
||||
expected_platform_filename = g_strdup (expected_filename);
|
||||
#ifdef G_OS_WIN32
|
||||
g_assert_cmpstr (filename, ==, "\\tmp\\foo");
|
||||
#else
|
||||
g_assert_cmpstr (filename, ==, "/tmp/foo");
|
||||
for (gchar *p = expected_platform_filename; *p; p++)
|
||||
{
|
||||
if (*p == '/')
|
||||
*p = '\\';
|
||||
}
|
||||
#endif
|
||||
|
||||
filename = g_filename_from_uri (uri, NULL, &error);
|
||||
g_assert_no_error (error);
|
||||
g_assert_cmpstr (filename, ==, expected_platform_filename);
|
||||
g_free (filename);
|
||||
g_free (expected_platform_filename);
|
||||
}
|
||||
|
||||
static void
|
||||
test_filename_from_uri_query_is_ignored (void)
|
||||
{
|
||||
test_filename_from_uri_helper ("file:///tmp/foo?bar", "/tmp/foo");
|
||||
test_filename_from_uri_helper ("file:///tmp/foo?bar#baz", "/tmp/foo");
|
||||
}
|
||||
|
||||
static void
|
||||
test_filename_from_uri_fragment_is_ignored (void)
|
||||
{
|
||||
gchar *filename;
|
||||
GError *error = NULL;
|
||||
|
||||
filename = g_filename_from_uri ("file:///tmp/foo#bar", NULL, &error);
|
||||
g_assert_no_error (error);
|
||||
#ifdef G_OS_WIN32
|
||||
g_assert_cmpstr (filename, ==, "\\tmp\\foo");
|
||||
#else
|
||||
g_assert_cmpstr (filename, ==, "/tmp/foo");
|
||||
#endif
|
||||
g_free (filename);
|
||||
test_filename_from_uri_helper ("file:///tmp/foo#bar", "/tmp/foo");
|
||||
/* this doesn't have a query, only a bizarre anchor */
|
||||
test_filename_from_uri_helper ("file:///tmp/foo#bar?baz", "/tmp/foo");
|
||||
}
|
||||
|
||||
int
|
||||
|
@ -132,6 +132,8 @@ file_from_uri_tests[] = {
|
||||
{ "file://%E5%E4%F6/etc", NULL, NULL, G_CONVERT_ERROR_BAD_URI},
|
||||
{ "file:///some/file?query", "/some/file", NULL, 0 },
|
||||
{ "file:///some/file#bad", "/some/file", NULL, 0 },
|
||||
{ "file:///some/file?query#frag", "/some/file", NULL, 0 },
|
||||
{ "file:///some/file#fr?ag", "/some/file", NULL, 0 },
|
||||
{ "file://some", NULL, NULL, G_CONVERT_ERROR_BAD_URI},
|
||||
{ "", NULL, NULL, G_CONVERT_ERROR_BAD_URI},
|
||||
{ "file:test", NULL, NULL, G_CONVERT_ERROR_BAD_URI},
|
||||
|
Loading…
Reference in New Issue
Block a user