From 6c00eba7fbad4b4ee8a295e9826541bef48c29aa Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Fri, 13 Feb 2015 21:21:46 +0100 Subject: [PATCH] testsuite: Add another random stylecontext test --- testsuite/gtk/stylecontext.c | 46 ++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/testsuite/gtk/stylecontext.c b/testsuite/gtk/stylecontext.c index 9ed3b58f1e..fcbc0a1612 100644 --- a/testsuite/gtk/stylecontext.c +++ b/testsuite/gtk/stylecontext.c @@ -307,6 +307,51 @@ G_GNUC_END_IGNORE_DEPRECATIONS gtk_widget_destroy (window); } +void +test_set_widget_path_saved (void) +{ + GtkWidgetPath *path; + GtkCssProvider *provider; + GtkStyleContext *context; + GtkBorder padding; + + context = gtk_style_context_new (); + + provider = gtk_css_provider_new (); + gtk_style_context_add_provider (context, + GTK_STYLE_PROVIDER (provider), + GTK_STYLE_PROVIDER_PRIORITY_USER); + gtk_css_provider_load_from_data (provider, + "GtkWindow * { padding: 1px; }\n" + ".foo * { padding: 2px; }\n", + -1, + NULL); + + path = gtk_widget_path_new (); + gtk_widget_path_append_type (path, GTK_TYPE_WINDOW); + gtk_style_context_set_path (context, path); + + gtk_style_context_get_padding (context, gtk_style_context_get_state (context), &padding); + g_assert_cmpint (padding.top, ==, 0); + + gtk_style_context_save (context); + gtk_style_context_get_padding (context, gtk_style_context_get_state (context), &padding); + g_assert_cmpint (padding.top, ==, 1); + + gtk_widget_path_iter_add_class (path, -1, "foo"); + gtk_style_context_set_path (context, path); + gtk_style_context_get_padding (context, gtk_style_context_get_state (context), &padding); + g_assert_cmpint (padding.top, ==, 2); + + gtk_style_context_restore (context); + gtk_style_context_get_padding (context, gtk_style_context_get_state (context), &padding); + g_assert_cmpint (padding.top, ==, 0); + + gtk_widget_path_free (path); + g_object_unref (provider); + g_object_unref (context); +} + int main (int argc, char *argv[]) { @@ -318,6 +363,7 @@ main (int argc, char *argv[]) g_test_add_func ("/style/match", test_match); g_test_add_func ("/style/basic", test_basic_properties); g_test_add_func ("/style/invalidate-saved", test_invalidate_saved); + g_test_add_func ("/style/set-widget-path-saved", test_set_widget_path_saved); return g_test_run (); }