mirror of
https://github.com/znc/znc.git
synced 2026-03-28 17:42:41 +01:00
Add OnSendToIRCMessage and OnSendToClientMessage
This also alters PutClient such that the CMessage variant handles sending messages, rather than the CString variant. As a side bonus, this gives callers better information on whether the message was sent to the client. Additionally, it eliminates the need for a hook to let modules set the tags sent to a client, as that can now be done inside OnSendToClientMessage.
This commit is contained in:
@@ -361,6 +361,25 @@ TEST_F(IRCSockTest, OnQuitMessage) {
|
||||
EXPECT_THAT(m_pTestClient->vsLines, ElementsAre(msg.ToString()));
|
||||
}
|
||||
|
||||
TEST_F(IRCSockTest, OnSendToIRCMessage) {
|
||||
CMessage msg(":nick PRIVMSG #chan :hello");
|
||||
m_pTestModule->eAction = CModule::HALT;
|
||||
m_pTestModule->bSendHooks = true;
|
||||
m_pTestSock->PutIRC(msg.ToString());
|
||||
|
||||
EXPECT_THAT(m_pTestModule->vsHooks, ElementsAre("OnSendToIRCMessage"));
|
||||
EXPECT_THAT(m_pTestModule->vsMessages, ElementsAre(msg.ToString()));
|
||||
EXPECT_THAT(m_pTestModule->vNetworks, ElementsAre(m_pTestNetwork));
|
||||
EXPECT_THAT(m_pTestModule->vChannels, ElementsAre(nullptr));
|
||||
EXPECT_THAT(m_pTestClient->vsLines, IsEmpty()); // halt
|
||||
|
||||
m_pTestModule->eAction = CModule::CONTINUE;
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
|
||||
EXPECT_THAT(m_pTestClient->vsLines, ElementsAre(msg.ToString()));
|
||||
m_pTestModule->bSendHooks = false;
|
||||
}
|
||||
|
||||
TEST_F(IRCSockTest, OnTextMessage) {
|
||||
CMessage msg(":nick PRIVMSG #chan :hello");
|
||||
m_pTestModule->eAction = CModule::HALT;
|
||||
|
||||
Reference in New Issue
Block a user