summaryrefslogtreecommitdiffstats
path: root/bus/test-matchrule.c
diff options
context:
space:
mode:
Diffstat (limited to 'bus/test-matchrule.c')
-rw-r--r--bus/test-matchrule.c40
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;
+}