#include typedef struct { GtkStyleContext *context; GtkCssProvider *blue_provider; GtkCssProvider *red_provider; GtkCssProvider *green_provider; } PrioritiesFixture; static void test_parse_selectors (void) { GtkCssProvider *provider; gint i; const gchar *valid[] = { "* {}", "E {}", "E F {}", "E > F {}", "E + F {}", "E#id {}", "#id {}", "tab:first-child {}", "tab:last-child {}", "tab:first-child {}", "tab:last-child {}", "tab:nth-child(even) {}", "tab:nth-child(odd) {}", ".some-class {}", ".some-class.another-class {}", ".some-class .another-class {}", "E * {}", "E .class {}", "E > .foo {}", "E > #id {}", "E:active {}", "E:hover {}", "E:selected {}", "E:disabled {}", "E:indeterminate {}", "E:focus {}", "E:active:hover {}", "* > .notebook tab:first-child .label:focus {}", "E, F {}", "E, F /* comment here */ {}", "E,/* comment here */ F {}", "E1.e1_2 #T3_4 {}", "E:first-child {}", "E:last-child {}", "E:first-child {}", "E:last-child {}", "E:nth-child(even) {}", "E:nth-child(odd) {}", "E:focus tab {}", NULL }; for (i = 0; valid[i]; i++) { provider = gtk_css_provider_new (); gtk_css_provider_load_from_data (provider, valid[i], -1); g_object_unref (provider); } } void test_widget_path_parent (void) { GtkStyleContext *parent, *context; parent = gtk_style_context_new (); context = gtk_style_context_new (); gtk_style_context_set_parent (context, parent); g_object_unref (parent); g_object_unref (context); } static void test_style_classes (void) { GtkStyleContext *context; GList *classes; context = gtk_style_context_new (); classes = gtk_style_context_list_classes (context); g_assert_null (classes); gtk_style_context_add_class (context, "A"); classes = gtk_style_context_list_classes (context); g_assert (classes); g_assert_null (classes->next); g_assert_cmpstr (classes->data, ==, "A"); g_list_free (classes); gtk_style_context_add_class (context, "B"); classes = gtk_style_context_list_classes (context); g_assert (classes); g_assert_cmpstr (classes->data, ==, "A"); g_assert (classes->next); g_assert_cmpstr (classes->next->data, ==, "B"); g_assert_null (classes->next->next); g_list_free (classes); gtk_style_context_remove_class (context, "A"); classes = gtk_style_context_list_classes (context); g_assert (classes); g_assert_null (classes->next); g_assert_cmpstr (classes->data, ==, "B"); g_list_free (classes); g_object_unref (context); } int main (int argc, char *argv[]) { gtk_init (); g_test_init (&argc, &argv, NULL); g_test_add_func ("/style/parse/selectors", test_parse_selectors); g_test_add_func ("/style/widget-path-parent", test_widget_path_parent); g_test_add_func ("/style/classes", test_style_classes); return g_test_run (); }