Beispiel #1
0
int
cometd_fire_listeners(const cometd* h,
                      const char* channel,
                      JsonNode* message)
{
  return cometd_listener_fire(h->subscriptions, channel, h, message);
}
Beispiel #2
0
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);
}
Beispiel #3
0
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));
}