chptr,
":%s NOTICE %%%s :%s is inviting %s to %s.",
me.name, chptr->chname, source_p->name, target_p->name, chptr->chname);
- sendto_channel_local_butone(NULL, CHFL_OWNER | CHFL_PROTECTED | CHFL_CHANOP | CHFL_HALFOP,
+ }
+
+ sendto_channel_local_butone(NULL, CHFL_OWNER | CHFL_PROTECTED | CHFL_CHANOP | CHFL_HALFOP,
CAP_INVITE_NOTIFY, 0,
chptr,
":%s!%s@%s INVITE %s %s",
source_p->name, source_p->username, source_p->host, target_p->name, chptr->chname);
- }
if (MyConnect(target_p))
{
struct PlexusClient *client1 = client_register("test1"),
*client2 = client_register("test2");
- client1->client->localClient->cap_active |= CAP_INVITE_NOTIFY;
-
irc_join(client1, "#a");
expect_message(client1, client1->client, "JOIN");
chptr->mode.mode |= MODE_INVITEONLY | MODE_PRIVATE;
+ irc_invite(client1, chptr, client2->client);
+ expect_numeric(client1, RPL_INVITING);
+
+ expect_message(client2, client1->client, "INVITE");
+
+ plexus_down();
+}
+END_TEST
+
+START_TEST(invite_notify)
+{
+ plexus_up();
+
+ struct PlexusClient *client1 = client_register("test1"),
+ *client2 = client_register("test2");
+
+ client1->client->localClient->cap_active |= CAP_INVITE_NOTIFY;
+
+ irc_join(client1, "#a");
+ expect_message(client1, client1->client, "JOIN");
+
+ struct Channel *chptr = hash_find_channel("#a");
+ ck_assert_ptr_ne(chptr, NULL);
+
irc_invite(client1, chptr, client2->client);
expect_numeric(client1, RPL_INVITING);
expect_message(client1, client1->client, "INVITE"); // invite-notify