mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-02-10 04:45:48 +01:00
Don't validate for UTF-8 here. (#148420, Robert Ögren)
2004-07-30 Matthias Clasen <mclasen@redhat.com> * glib/gconvert.c (g_unescape_uri_string): Don't validate for UTF-8 here. (#148420, Robert Ögren) * tests/uri-test.c (run_roundtrip_tests): Add tests for roundtrip compatibility. Going from filename to uri and back should always give you the same filename back.
This commit is contained in:
parent
abc4662d80
commit
0611985dd9
@ -1,3 +1,12 @@
|
|||||||
|
2004-07-30 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
|
* glib/gconvert.c (g_unescape_uri_string): Don't validate
|
||||||
|
for UTF-8 here. (#148420, Robert Ögren)
|
||||||
|
|
||||||
|
* tests/uri-test.c (run_roundtrip_tests): Add tests for
|
||||||
|
roundtrip compatibility. Going from filename to uri and
|
||||||
|
back should always give you the same filename back.
|
||||||
|
|
||||||
2004-07-28 Matthias Clasen <mclasen@redhat.com>
|
2004-07-28 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
* tests/markups/valid-{9,10,11}.gmarkup:
|
* tests/markups/valid-{9,10,11}.gmarkup:
|
||||||
|
@ -1,3 +1,12 @@
|
|||||||
|
2004-07-30 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
|
* glib/gconvert.c (g_unescape_uri_string): Don't validate
|
||||||
|
for UTF-8 here. (#148420, Robert Ögren)
|
||||||
|
|
||||||
|
* tests/uri-test.c (run_roundtrip_tests): Add tests for
|
||||||
|
roundtrip compatibility. Going from filename to uri and
|
||||||
|
back should always give you the same filename back.
|
||||||
|
|
||||||
2004-07-28 Matthias Clasen <mclasen@redhat.com>
|
2004-07-28 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
* tests/markups/valid-{9,10,11}.gmarkup:
|
* tests/markups/valid-{9,10,11}.gmarkup:
|
||||||
|
@ -1,3 +1,12 @@
|
|||||||
|
2004-07-30 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
|
* glib/gconvert.c (g_unescape_uri_string): Don't validate
|
||||||
|
for UTF-8 here. (#148420, Robert Ögren)
|
||||||
|
|
||||||
|
* tests/uri-test.c (run_roundtrip_tests): Add tests for
|
||||||
|
roundtrip compatibility. Going from filename to uri and
|
||||||
|
back should always give you the same filename back.
|
||||||
|
|
||||||
2004-07-28 Matthias Clasen <mclasen@redhat.com>
|
2004-07-28 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
* tests/markups/valid-{9,10,11}.gmarkup:
|
* tests/markups/valid-{9,10,11}.gmarkup:
|
||||||
|
@ -1,3 +1,12 @@
|
|||||||
|
2004-07-30 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
|
* glib/gconvert.c (g_unescape_uri_string): Don't validate
|
||||||
|
for UTF-8 here. (#148420, Robert Ögren)
|
||||||
|
|
||||||
|
* tests/uri-test.c (run_roundtrip_tests): Add tests for
|
||||||
|
roundtrip compatibility. Going from filename to uri and
|
||||||
|
back should always give you the same filename back.
|
||||||
|
|
||||||
2004-07-28 Matthias Clasen <mclasen@redhat.com>
|
2004-07-28 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
* tests/markups/valid-{9,10,11}.gmarkup:
|
* tests/markups/valid-{9,10,11}.gmarkup:
|
||||||
|
@ -1,3 +1,12 @@
|
|||||||
|
2004-07-30 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
|
* glib/gconvert.c (g_unescape_uri_string): Don't validate
|
||||||
|
for UTF-8 here. (#148420, Robert Ögren)
|
||||||
|
|
||||||
|
* tests/uri-test.c (run_roundtrip_tests): Add tests for
|
||||||
|
roundtrip compatibility. Going from filename to uri and
|
||||||
|
back should always give you the same filename back.
|
||||||
|
|
||||||
2004-07-28 Matthias Clasen <mclasen@redhat.com>
|
2004-07-28 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
* tests/markups/valid-{9,10,11}.gmarkup:
|
* tests/markups/valid-{9,10,11}.gmarkup:
|
||||||
|
@ -1401,7 +1401,7 @@ g_unescape_uri_string (const char *escaped,
|
|||||||
g_assert (out - result <= len);
|
g_assert (out - result <= len);
|
||||||
*out = '\0';
|
*out = '\0';
|
||||||
|
|
||||||
if (in != in_end || !g_utf8_validate (result, -1, NULL))
|
if (in != in_end)
|
||||||
{
|
{
|
||||||
g_free (result);
|
g_free (result);
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -127,10 +127,10 @@ from_uri_tests[] = {
|
|||||||
{ "file://otherhost/etc", "/etc", "otherhost"},
|
{ "file://otherhost/etc", "/etc", "otherhost"},
|
||||||
{ "file://otherhost/etc/%23%25%20file", "/etc/#% file", "otherhost"},
|
{ "file://otherhost/etc/%23%25%20file", "/etc/#% file", "otherhost"},
|
||||||
{ "file://%C3%B6%C3%A4%C3%A5/etc", NULL, NULL, G_CONVERT_ERROR_BAD_URI},
|
{ "file://%C3%B6%C3%A4%C3%A5/etc", NULL, NULL, G_CONVERT_ERROR_BAD_URI},
|
||||||
{ "file:////etc/%C3%B6%C3%C3%C3%A5", NULL, NULL, G_CONVERT_ERROR_BAD_URI},
|
{ "file:////etc/%C3%B6%C3%C3%C3%A5", "//etc/\xc3\xb6\xc3\xc3\xc3\xa5", NULL},
|
||||||
{ "file://localhost/\xE5\xE4\xF6", NULL, NULL, G_CONVERT_ERROR_BAD_URI},
|
{ "file://localhost/\xE5\xE4\xF6", "/\xe5\xe4\xf6", "localhost"},
|
||||||
{ "file://\xE5\xE4\xF6/etc", NULL, NULL, G_CONVERT_ERROR_BAD_URI},
|
{ "file://\xE5\xE4\xF6/etc", NULL, NULL, G_CONVERT_ERROR_BAD_URI},
|
||||||
{ "file://localhost/%E5%E4%F6", NULL, NULL, G_CONVERT_ERROR_BAD_URI},
|
{ "file://localhost/%E5%E4%F6", "/\xe5\xe4\xf6", "localhost"},
|
||||||
{ "file://%E5%E4%F6/etc", NULL, NULL, G_CONVERT_ERROR_BAD_URI},
|
{ "file://%E5%E4%F6/etc", NULL, NULL, G_CONVERT_ERROR_BAD_URI},
|
||||||
{ "file:///some/file#bad", NULL, NULL, G_CONVERT_ERROR_BAD_URI},
|
{ "file:///some/file#bad", NULL, NULL, G_CONVERT_ERROR_BAD_URI},
|
||||||
{ "file://some", NULL, NULL, G_CONVERT_ERROR_BAD_URI},
|
{ "file://some", NULL, NULL, G_CONVERT_ERROR_BAD_URI},
|
||||||
@ -310,6 +310,68 @@ run_from_uri_tests (void)
|
|||||||
g_print ("\n");
|
g_print ("\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static gint
|
||||||
|
safe_strcmp (const gchar *a, const gchar *b)
|
||||||
|
{
|
||||||
|
return strcmp (a ? a : "", b ? b : "");
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
run_roundtrip_tests (void)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
gchar *uri, *hostname, *res;
|
||||||
|
GError *error;
|
||||||
|
|
||||||
|
for (i = 0; i < G_N_ELEMENTS (to_uri_tests); i++)
|
||||||
|
{
|
||||||
|
if (to_uri_tests[i].expected_error != 0)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
error = NULL;
|
||||||
|
uri = g_filename_to_uri (to_uri_tests[i].filename,
|
||||||
|
to_uri_tests[i].hostname,
|
||||||
|
&error);
|
||||||
|
|
||||||
|
if (error != NULL)
|
||||||
|
{
|
||||||
|
g_print ("g_filename_to_uri failed unexpectedly: %s\n",
|
||||||
|
error->message);
|
||||||
|
any_failed = TRUE;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
error = NULL;
|
||||||
|
res = g_filename_from_uri (uri, &hostname, &error);
|
||||||
|
if (error != NULL)
|
||||||
|
{
|
||||||
|
g_print ("g_filename_from_uri failed unexpectedly: %s\n",
|
||||||
|
error->message);
|
||||||
|
any_failed = TRUE;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (safe_strcmp (to_uri_tests[i].filename, res))
|
||||||
|
{
|
||||||
|
g_message ("roundtrip test %d failed, filename modified: "
|
||||||
|
" expected \"%s\", but got \"%s\"\n",
|
||||||
|
i, to_uri_tests[i].filename, res);
|
||||||
|
any_failed = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (safe_strcmp (to_uri_tests[i].hostname, hostname))
|
||||||
|
{
|
||||||
|
g_print ("roundtrip test %d failed, hostname modified: "
|
||||||
|
" expected \"%s\", but got \"%s\"\n",
|
||||||
|
i, to_uri_tests[i].hostname, hostname);
|
||||||
|
any_failed = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Give some output */
|
||||||
|
g_print (".");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
main (int argc,
|
main (int argc,
|
||||||
char *argv[])
|
char *argv[])
|
||||||
@ -327,6 +389,7 @@ main (int argc,
|
|||||||
|
|
||||||
run_to_uri_tests ();
|
run_to_uri_tests ();
|
||||||
run_from_uri_tests ();
|
run_from_uri_tests ();
|
||||||
|
run_roundtrip_tests ();
|
||||||
|
|
||||||
return any_failed ? 1 : 0;
|
return any_failed ? 1 : 0;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user