[gtk+] testsuite: Add another random stylecontext test



commit 6c00eba7fbad4b4ee8a295e9826541bef48c29aa
Author: Benjamin Otte <otte redhat com>
Date:   Fri Feb 13 21:21:46 2015 +0100

    testsuite: Add another random stylecontext test

 testsuite/gtk/stylecontext.c |   46 ++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 46 insertions(+), 0 deletions(-)
---
diff --git a/testsuite/gtk/stylecontext.c b/testsuite/gtk/stylecontext.c
index 9ed3b58..fcbc0a1 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 ();
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]