int cometd_fire_listeners(const cometd* h, const char* channel, JsonNode* message) { return cometd_listener_fire(h->subscriptions, channel, h, message); }
END_TEST START_TEST (test_cometd_listener_fire_with_wildcards) { JsonNode* message = cometd_json_str2node("{}"); cometd_subscription *s1, *s2; s1 = cometd_listener_add(listeners, "/foo/**", log_handler); s2 = cometd_listener_add(listeners, "/quux/*", log_handler); cometd_listener_fire(listeners, "/foo/bar/baz", NULL, message); ck_assert_int_eq(1, log_size()); cometd_listener_fire(listeners, "/quux/wat/wut", NULL, message); ck_assert_int_eq(1, log_size()); cometd_listener_fire(listeners, "/quux/wat", NULL, message); ck_assert_int_eq(2, log_size()); json_node_free(message); }
END_TEST START_TEST (test_cometd_listener_fire_exact_matches_first) { handler_data = NULL; cometd_listener_add(listeners, "/foo/*", handler1); cometd_listener_add(listeners, "/**", handler1); cometd_listener_add(listeners, "/foo/bar", handler2); cometd_listener_fire(listeners, "/foo/bar", NULL, NULL); ck_assert_str_eq("two", g_list_nth_data(handler_data, 0)); ck_assert_str_eq("one", g_list_nth_data(handler_data, 1)); ck_assert_str_eq("one", g_list_nth_data(handler_data, 2)); }