diff --git a/test/integration/tests/core.cpp b/test/integration/tests/core.cpp index d271a326..38e9127f 100644 --- a/test/integration/tests/core.cpp +++ b/test/integration/tests/core.cpp @@ -232,5 +232,35 @@ TEST_F(ZNCTest, BuildMod) { client.ReadUntil("Lorem ipsum"); } +TEST_F(ZNCTest, AwayNotify) { + auto znc = Run(); + auto ircd = ConnectIRCd(); + auto client = ConnectClient(); + client.Write("CAP LS"); + client.Write("PASS :hunter2"); + client.Write("NICK nick"); + client.Write("USER user/test x x :x"); + QByteArray cap_ls; + client.ReadUntilAndGet(" LS :", cap_ls); + ASSERT_THAT(cap_ls.toStdString(), AllOf(HasSubstr("cap-notify"), Not(HasSubstr("away-notify")))); + client.Write("CAP REQ :cap-notify"); + client.ReadUntil("ACK :cap-notify"); + client.Write("CAP END"); + client.ReadUntil(" 001 "); + ircd.ReadUntil("USER"); + ircd.Write("CAP user LS :away-notify"); + ircd.ReadUntil("CAP REQ :away-notify"); + ircd.Write("CAP user ACK :away-notify"); + ircd.ReadUntil("CAP END"); + ircd.Write(":server 001 user :welcome"); + client.ReadUntil("CAP user NEW :away-notify"); + client.Write("CAP REQ :away-notify"); + client.ReadUntil("ACK :away-notify"); + ircd.Write(":x!y@z AWAY :reason"); + client.ReadUntil(":x!y@z AWAY :reason"); + ircd.Close(); + client.ReadUntil("DEL :away-notify"); +} + } // namespace } // namespace znc_inttest