diff options
Diffstat (limited to 'bus/test-matchrule.c')
-rw-r--r-- | bus/test-matchrule.c | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/bus/test-matchrule.c b/bus/test-matchrule.c new file mode 100644 index 0000000..63110fd --- /dev/null +++ b/bus/test-matchrule.c @@ -0,0 +1,40 @@ +#include "matchrule.h" + +int +main(gint argc, gchar **argv) +{ + BusMatchRule *rule, *rule1; + g_type_init (); + + rule = bus_match_rule_new (" type='signal' , interface = 'org.freedesktop.IBus' "); + g_assert (rule->message_type == DBUS_MESSAGE_TYPE_SIGNAL); + g_assert (g_strcmp0 (rule->interface, "org.freedesktop.IBus") == 0 ); + g_object_unref (rule); + + rule = bus_match_rule_new ("type='method_call', interface='org.freedesktop.IBus' "); + g_assert (rule->message_type == DBUS_MESSAGE_TYPE_METHOD_CALL); + g_assert (g_strcmp0 (rule->interface, "org.freedesktop.IBus") == 0 ); + g_object_unref (rule); + + rule = bus_match_rule_new ("type='signal'," + "interface='org.freedesktop.DBus'," + "member='NameOwnerChanged'," + "arg0='ibus.freedesktop.IBus.config'," + "arg0='ibus.freedesktop.IBus.config'," + "arg2='ibus.freedesktop.IBus.config'"); + g_assert (rule->message_type == DBUS_MESSAGE_TYPE_SIGNAL); + g_assert (g_strcmp0 (rule->interface, "org.freedesktop.DBus") == 0 ); + rule1 = bus_match_rule_new ("type='signal'," + "interface='org.freedesktop.DBus'," + "member='NameOwnerChanged'," + "arg0='ibus.freedesktop.IBus.config'," + "arg0='ibus.freedesktop.IBus.config'," + "arg2='ibus.freedesktop.IBus.config'"); + + g_assert (bus_match_rule_is_equal (rule, rule1)); + + g_object_unref (rule); + g_object_unref (rule1); + + return 0; +} |