mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-01-26 22:16:16 +01:00
Add some contenttype tests
This commit is contained in:
parent
fb120b5d87
commit
14db75381e
@ -80,6 +80,7 @@ SAMPLE_PROGS = \
|
||||
testapp \
|
||||
appinfo-test \
|
||||
icons \
|
||||
contenttype \
|
||||
$(NULL)
|
||||
|
||||
|
||||
@ -276,6 +277,9 @@ testapps_LDADD = $(progs_ldadd)
|
||||
icons_SOURCES = icons.c
|
||||
icons_LDADD = $(progs_ldadd)
|
||||
|
||||
contenttype_SOURCES = contenttype.c
|
||||
contenttype_LDADD = $(progs_ldadd)
|
||||
|
||||
schema_tests = \
|
||||
schema-tests/array-default-not-in-choices.gschema.xml \
|
||||
schema-tests/bad-choice.gschema.xml \
|
||||
|
113
gio/tests/contenttype.c
Normal file
113
gio/tests/contenttype.c
Normal file
@ -0,0 +1,113 @@
|
||||
#include <gio/gio.h>
|
||||
|
||||
static void
|
||||
test_guess (void)
|
||||
{
|
||||
gchar *res;
|
||||
gchar *expected;
|
||||
gboolean uncertain;
|
||||
|
||||
res = g_content_type_guess ("/etc/", NULL, 0, &uncertain);
|
||||
expected = g_content_type_from_mime_type ("inode/directory");
|
||||
g_assert (g_content_type_equals (expected, res));
|
||||
g_free (res);
|
||||
g_free (expected);
|
||||
|
||||
res = g_content_type_guess ("foo.txt", NULL, 0, &uncertain);
|
||||
expected = g_content_type_from_mime_type ("text/plain");
|
||||
g_assert (g_content_type_equals (expected, res));
|
||||
g_free (res);
|
||||
g_free (expected);
|
||||
}
|
||||
|
||||
static void
|
||||
test_unknown (void)
|
||||
{
|
||||
gchar *unknown;
|
||||
gchar *str;
|
||||
|
||||
unknown = g_content_type_from_mime_type ("application/octet-stream");
|
||||
g_assert (g_content_type_is_unknown (unknown));
|
||||
str = g_content_type_get_mime_type (unknown);
|
||||
g_assert_cmpstr (str, ==, "application/octet-stream");
|
||||
g_free (str);
|
||||
g_free (unknown);
|
||||
}
|
||||
|
||||
static void
|
||||
test_subtype (void)
|
||||
{
|
||||
gchar *plain;
|
||||
gchar *xml;
|
||||
|
||||
plain = g_content_type_from_mime_type ("text/plain");
|
||||
xml = g_content_type_from_mime_type ("application/xml");
|
||||
|
||||
g_assert (g_content_type_is_a (xml, plain));
|
||||
|
||||
g_free (plain);
|
||||
g_free (xml);
|
||||
}
|
||||
|
||||
static gint
|
||||
find_mime (gconstpointer a, gconstpointer b)
|
||||
{
|
||||
if (g_content_type_equals (a, b))
|
||||
return 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
static void
|
||||
test_list (void)
|
||||
{
|
||||
GList *types;
|
||||
gchar *plain;
|
||||
gchar *xml;
|
||||
|
||||
plain = g_content_type_from_mime_type ("text/plain");
|
||||
xml = g_content_type_from_mime_type ("application/xml");
|
||||
|
||||
types = g_content_types_get_registered ();
|
||||
|
||||
g_assert (g_list_length (types) > 1);
|
||||
|
||||
/* just check that some types are in the list */
|
||||
g_assert (g_list_find_custom (types, plain, find_mime) != NULL);
|
||||
g_assert (g_list_find_custom (types, xml, find_mime) != NULL);
|
||||
|
||||
g_list_foreach (types, (GFunc)g_free, NULL);
|
||||
g_list_free (types);
|
||||
|
||||
g_free (plain);
|
||||
g_free (xml);
|
||||
}
|
||||
|
||||
static void
|
||||
test_executable (void)
|
||||
{
|
||||
gchar *type;
|
||||
|
||||
type = g_content_type_from_mime_type ("application/x-executable");
|
||||
g_assert (g_content_type_can_be_executable (type));
|
||||
g_free (type);
|
||||
|
||||
type = g_content_type_from_mime_type ("text/plain");
|
||||
g_assert (g_content_type_can_be_executable (type));
|
||||
g_free (type);
|
||||
}
|
||||
|
||||
int
|
||||
main (int argc, char *argv[])
|
||||
{
|
||||
g_type_init ();
|
||||
|
||||
g_test_init (&argc, &argv, NULL);
|
||||
|
||||
g_test_add_func ("/contenttype/guess", test_guess);
|
||||
g_test_add_func ("/contenttype/unknown", test_unknown);
|
||||
g_test_add_func ("/contenttype/subtype", test_subtype);
|
||||
g_test_add_func ("/contenttype/list", test_list);
|
||||
g_test_add_func ("/contenttype/executable", test_executable);
|
||||
|
||||
return g_test_run ();
|
||||
}
|
Loading…
Reference in New Issue
Block a user