cssprovider: Have a section when parsing style properties
Signal handlers expect a section to be present, so provide them with one. New testcase included. https://bugzilla.gnome.org/show_bug.cgi?id=757240
This commit is contained in:
@ -41,6 +41,7 @@ TEST_PROGS += \
|
||||
cellarea \
|
||||
check-icon-names \
|
||||
clipboard \
|
||||
cssprovider \
|
||||
defaultvalue \
|
||||
entry \
|
||||
expander \
|
||||
|
||||
63
testsuite/gtk/cssprovider.c
Normal file
63
testsuite/gtk/cssprovider.c
Normal file
@ -0,0 +1,63 @@
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
static void
|
||||
assert_section_is_not_null (GtkCssProvider *provider,
|
||||
GtkCssSection *section,
|
||||
const GError *error,
|
||||
gpointer unused)
|
||||
{
|
||||
g_assert (section != NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
test_section_in_load_from_data (void)
|
||||
{
|
||||
GtkCssProvider *provider;
|
||||
|
||||
provider = gtk_css_provider_new ();
|
||||
g_signal_connect (provider, "parsing-error",
|
||||
G_CALLBACK (assert_section_is_not_null), NULL);
|
||||
gtk_css_provider_load_from_data (provider, "random garbage goes here", -1, NULL);
|
||||
g_object_unref (provider);
|
||||
}
|
||||
|
||||
static void
|
||||
test_section_in_style_property (void)
|
||||
{
|
||||
GtkCssProvider *provider;
|
||||
GtkWidgetClass *widget_class;
|
||||
GtkWidgetPath *path;
|
||||
GParamSpec *pspec;
|
||||
GValue value = G_VALUE_INIT;
|
||||
|
||||
provider = gtk_css_provider_new ();
|
||||
g_signal_connect (provider, "parsing-error",
|
||||
G_CALLBACK (assert_section_is_not_null), NULL);
|
||||
gtk_css_provider_load_from_data (provider, "* { -GtkWidget-interior-focus: random garbage goes here; }", -1, NULL);
|
||||
|
||||
widget_class = g_type_class_ref (GTK_TYPE_WIDGET);
|
||||
pspec = gtk_widget_class_find_style_property (widget_class, "interior-focus");
|
||||
g_assert (pspec);
|
||||
path = gtk_widget_path_new ();
|
||||
gtk_widget_path_append_type (path, GTK_TYPE_WIDGET);
|
||||
|
||||
G_GNUC_BEGIN_IGNORE_DEPRECATIONS;
|
||||
gtk_style_provider_get_style_property (GTK_STYLE_PROVIDER (provider), path, 0, pspec, &value);
|
||||
G_GNUC_END_IGNORE_DEPRECATIONS;
|
||||
|
||||
gtk_widget_path_unref (path);
|
||||
g_type_class_unref (widget_class);
|
||||
g_object_unref (provider);
|
||||
}
|
||||
|
||||
int
|
||||
main (int argc, char *argv[])
|
||||
{
|
||||
gtk_init (NULL, NULL);
|
||||
g_test_init (&argc, &argv, NULL);
|
||||
|
||||
g_test_add_func ("/cssprovider/section-in-load-from-data", test_section_in_load_from_data);
|
||||
g_test_add_func ("/cssprovider/section-in-style-property", test_section_in_style_property);
|
||||
|
||||
return g_test_run ();
|
||||
}
|
||||
Reference in New Issue
Block a user