mirror of
https://github.com/znc/znc.git
synced 2026-08-03 15:33:02 +02:00
clang-format: switch tabs to spaces
I like tabs, but I have to admit that spaces make source code more consistent, because every editor/viewer tends to render tabs differently :(
This commit is contained in:
+342
-342
@@ -33,481 +33,481 @@ class IRCSockTest : public IRCTest {
|
||||
};
|
||||
|
||||
TEST_F(IRCSockTest, OnAccountMessage) {
|
||||
CMessage msg(":nick!user@host ACCOUNT accountname");
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
CMessage msg(":nick!user@host ACCOUNT accountname");
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
|
||||
EXPECT_THAT(m_pTestModule->vsHooks,
|
||||
IsEmpty()); // no OnAccountMessage() hook (yet?)
|
||||
EXPECT_THAT(m_pTestClient->vsLines, IsEmpty()); // account-notify disabled
|
||||
EXPECT_THAT(m_pTestModule->vsHooks,
|
||||
IsEmpty()); // no OnAccountMessage() hook (yet?)
|
||||
EXPECT_THAT(m_pTestClient->vsLines, IsEmpty()); // account-notify disabled
|
||||
}
|
||||
|
||||
TEST_F(IRCSockTest, OnActionMessage) {
|
||||
// 2 callbacks are called in row: OnCTCP, OnAction.
|
||||
// If OnCTCP returns HALT, OnAction isn't called.
|
||||
struct ActionModule : TestModule {
|
||||
ActionModule() { Reset(); }
|
||||
void Reset() {
|
||||
Mock::VerifyAndClear(this);
|
||||
EXPECT_CALL(*this, OnPrivCTCPMessage(_)).Times(0);
|
||||
EXPECT_CALL(*this, OnChanCTCPMessage(_)).Times(0);
|
||||
EXPECT_CALL(*this, OnPrivActionMessage(_)).Times(0);
|
||||
EXPECT_CALL(*this, OnChanActionMessage(_)).Times(0);
|
||||
TestModule::Reset();
|
||||
}
|
||||
MOCK_METHOD1(OnPrivCTCPMessage, EModRet(CCTCPMessage&));
|
||||
MOCK_METHOD1(OnChanCTCPMessage, EModRet(CCTCPMessage&));
|
||||
MOCK_METHOD1(OnPrivActionMessage, EModRet(CActionMessage&));
|
||||
MOCK_METHOD1(OnChanActionMessage, EModRet(CActionMessage&));
|
||||
};
|
||||
ActionModule testModule;
|
||||
CZNC::Get().GetModules().push_back(&testModule);
|
||||
CChan* pExpectedChan = m_pTestChan;
|
||||
// 2 callbacks are called in row: OnCTCP, OnAction.
|
||||
// If OnCTCP returns HALT, OnAction isn't called.
|
||||
struct ActionModule : TestModule {
|
||||
ActionModule() { Reset(); }
|
||||
void Reset() {
|
||||
Mock::VerifyAndClear(this);
|
||||
EXPECT_CALL(*this, OnPrivCTCPMessage(_)).Times(0);
|
||||
EXPECT_CALL(*this, OnChanCTCPMessage(_)).Times(0);
|
||||
EXPECT_CALL(*this, OnPrivActionMessage(_)).Times(0);
|
||||
EXPECT_CALL(*this, OnChanActionMessage(_)).Times(0);
|
||||
TestModule::Reset();
|
||||
}
|
||||
MOCK_METHOD1(OnPrivCTCPMessage, EModRet(CCTCPMessage&));
|
||||
MOCK_METHOD1(OnChanCTCPMessage, EModRet(CCTCPMessage&));
|
||||
MOCK_METHOD1(OnPrivActionMessage, EModRet(CActionMessage&));
|
||||
MOCK_METHOD1(OnChanActionMessage, EModRet(CActionMessage&));
|
||||
};
|
||||
ActionModule testModule;
|
||||
CZNC::Get().GetModules().push_back(&testModule);
|
||||
CChan* pExpectedChan = m_pTestChan;
|
||||
|
||||
CMessage msg(":nick PRIVMSG #chan :\001ACTION hello\001");
|
||||
auto CON = Invoke([&](CMessage& m) {
|
||||
EXPECT_EQ(msg.ToString(), m.ToString());
|
||||
EXPECT_EQ(m_pTestNetwork, m.GetNetwork());
|
||||
EXPECT_EQ(pExpectedChan, m.GetChan());
|
||||
return CModule::CONTINUE;
|
||||
});
|
||||
auto HAL = Invoke([&](CMessage& m) {
|
||||
EXPECT_EQ(msg.ToString(), m.ToString());
|
||||
EXPECT_EQ(m_pTestNetwork, m.GetNetwork());
|
||||
EXPECT_EQ(pExpectedChan, m.GetChan());
|
||||
return CModule::HALT;
|
||||
});
|
||||
auto Reset = [&]() {
|
||||
testModule.Reset();
|
||||
m_pTestClient->Reset();
|
||||
};
|
||||
CMessage msg(":nick PRIVMSG #chan :\001ACTION hello\001");
|
||||
auto CON = Invoke([&](CMessage& m) {
|
||||
EXPECT_EQ(msg.ToString(), m.ToString());
|
||||
EXPECT_EQ(m_pTestNetwork, m.GetNetwork());
|
||||
EXPECT_EQ(pExpectedChan, m.GetChan());
|
||||
return CModule::CONTINUE;
|
||||
});
|
||||
auto HAL = Invoke([&](CMessage& m) {
|
||||
EXPECT_EQ(msg.ToString(), m.ToString());
|
||||
EXPECT_EQ(m_pTestNetwork, m.GetNetwork());
|
||||
EXPECT_EQ(pExpectedChan, m.GetChan());
|
||||
return CModule::HALT;
|
||||
});
|
||||
auto Reset = [&]() {
|
||||
testModule.Reset();
|
||||
m_pTestClient->Reset();
|
||||
};
|
||||
|
||||
Reset();
|
||||
{
|
||||
InSequence seq;
|
||||
EXPECT_CALL(testModule, OnChanCTCPMessage(_)).WillOnce(CON);
|
||||
EXPECT_CALL(testModule, OnChanActionMessage(_)).WillOnce(CON);
|
||||
}
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
EXPECT_THAT(m_pTestClient->vsLines, ElementsAre(msg.ToString()));
|
||||
Reset();
|
||||
{
|
||||
InSequence seq;
|
||||
EXPECT_CALL(testModule, OnChanCTCPMessage(_)).WillOnce(CON);
|
||||
EXPECT_CALL(testModule, OnChanActionMessage(_)).WillOnce(CON);
|
||||
}
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
EXPECT_THAT(m_pTestClient->vsLines, ElementsAre(msg.ToString()));
|
||||
|
||||
Reset();
|
||||
{
|
||||
InSequence seq;
|
||||
EXPECT_CALL(testModule, OnChanCTCPMessage(_)).WillOnce(CON);
|
||||
EXPECT_CALL(testModule, OnChanActionMessage(_)).WillOnce(HAL);
|
||||
}
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
EXPECT_THAT(m_pTestClient->vsLines, IsEmpty());
|
||||
Reset();
|
||||
{
|
||||
InSequence seq;
|
||||
EXPECT_CALL(testModule, OnChanCTCPMessage(_)).WillOnce(CON);
|
||||
EXPECT_CALL(testModule, OnChanActionMessage(_)).WillOnce(HAL);
|
||||
}
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
EXPECT_THAT(m_pTestClient->vsLines, IsEmpty());
|
||||
|
||||
Reset();
|
||||
EXPECT_CALL(testModule, OnChanCTCPMessage(_)).WillOnce(HAL);
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
EXPECT_THAT(m_pTestClient->vsLines, IsEmpty());
|
||||
Reset();
|
||||
EXPECT_CALL(testModule, OnChanCTCPMessage(_)).WillOnce(HAL);
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
EXPECT_THAT(m_pTestClient->vsLines, IsEmpty());
|
||||
|
||||
msg.Parse(":nick PRIVMSG me :\001ACTION hello\001");
|
||||
pExpectedChan = nullptr;
|
||||
msg.Parse(":nick PRIVMSG me :\001ACTION hello\001");
|
||||
pExpectedChan = nullptr;
|
||||
|
||||
Reset();
|
||||
{
|
||||
InSequence seq;
|
||||
EXPECT_CALL(testModule, OnPrivCTCPMessage(_)).WillOnce(CON);
|
||||
EXPECT_CALL(testModule, OnPrivActionMessage(_)).WillOnce(CON);
|
||||
}
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
EXPECT_THAT(m_pTestClient->vsLines, ElementsAre(msg.ToString()));
|
||||
Reset();
|
||||
{
|
||||
InSequence seq;
|
||||
EXPECT_CALL(testModule, OnPrivCTCPMessage(_)).WillOnce(CON);
|
||||
EXPECT_CALL(testModule, OnPrivActionMessage(_)).WillOnce(CON);
|
||||
}
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
EXPECT_THAT(m_pTestClient->vsLines, ElementsAre(msg.ToString()));
|
||||
|
||||
Reset();
|
||||
{
|
||||
InSequence seq;
|
||||
EXPECT_CALL(testModule, OnPrivCTCPMessage(_)).WillOnce(CON);
|
||||
EXPECT_CALL(testModule, OnPrivActionMessage(_)).WillOnce(HAL);
|
||||
}
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
EXPECT_THAT(m_pTestClient->vsLines, IsEmpty());
|
||||
Reset();
|
||||
{
|
||||
InSequence seq;
|
||||
EXPECT_CALL(testModule, OnPrivCTCPMessage(_)).WillOnce(CON);
|
||||
EXPECT_CALL(testModule, OnPrivActionMessage(_)).WillOnce(HAL);
|
||||
}
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
EXPECT_THAT(m_pTestClient->vsLines, IsEmpty());
|
||||
|
||||
Reset();
|
||||
EXPECT_CALL(testModule, OnPrivCTCPMessage(_)).WillOnce(HAL);
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
EXPECT_THAT(m_pTestClient->vsLines, IsEmpty());
|
||||
Reset();
|
||||
EXPECT_CALL(testModule, OnPrivCTCPMessage(_)).WillOnce(HAL);
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
EXPECT_THAT(m_pTestClient->vsLines, IsEmpty());
|
||||
}
|
||||
|
||||
TEST_F(IRCSockTest, OnAwayMessage) {
|
||||
CMessage msg(":nick!user@host AWAY :reason");
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
CMessage msg(":nick!user@host AWAY :reason");
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
|
||||
EXPECT_THAT(m_pTestModule->vsHooks,
|
||||
IsEmpty()); // no OnAwayMessage() hook (yet?)
|
||||
EXPECT_THAT(m_pTestClient->vsLines, IsEmpty()); // away-notify disabled
|
||||
EXPECT_THAT(m_pTestModule->vsHooks,
|
||||
IsEmpty()); // no OnAwayMessage() hook (yet?)
|
||||
EXPECT_THAT(m_pTestClient->vsLines, IsEmpty()); // away-notify disabled
|
||||
}
|
||||
|
||||
TEST_F(IRCSockTest, OnCapabilityMessage) {
|
||||
CMessage msg(":server CAP * LS :multi-prefix sasl");
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
CMessage msg(":server CAP * LS :multi-prefix sasl");
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
|
||||
EXPECT_THAT(m_pTestModule->vsHooks,
|
||||
IsEmpty()); // no OnCapabilityMessage() hook (yet?)
|
||||
EXPECT_THAT(m_pTestClient->vsLines, IsEmpty());
|
||||
EXPECT_THAT(m_pTestModule->vsHooks,
|
||||
IsEmpty()); // no OnCapabilityMessage() hook (yet?)
|
||||
EXPECT_THAT(m_pTestClient->vsLines, IsEmpty());
|
||||
}
|
||||
|
||||
TEST_F(IRCSockTest, OnCTCPMessage) {
|
||||
CMessage msg(":nick PRIVMSG #chan :\001VERSION\001");
|
||||
m_pTestModule->eAction = CModule::HALT;
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
CMessage msg(":nick PRIVMSG #chan :\001VERSION\001");
|
||||
m_pTestModule->eAction = CModule::HALT;
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
|
||||
EXPECT_THAT(m_pTestModule->vsHooks, ElementsAre("OnChanCTCPMessage"));
|
||||
EXPECT_THAT(m_pTestModule->vsMessages, ElementsAre(msg.ToString()));
|
||||
EXPECT_THAT(m_pTestModule->vNetworks, ElementsAre(m_pTestNetwork));
|
||||
EXPECT_THAT(m_pTestModule->vChannels, ElementsAre(m_pTestChan));
|
||||
EXPECT_THAT(m_pTestClient->vsLines, IsEmpty()); // halt
|
||||
EXPECT_THAT(m_pTestModule->vsHooks, ElementsAre("OnChanCTCPMessage"));
|
||||
EXPECT_THAT(m_pTestModule->vsMessages, ElementsAre(msg.ToString()));
|
||||
EXPECT_THAT(m_pTestModule->vNetworks, ElementsAre(m_pTestNetwork));
|
||||
EXPECT_THAT(m_pTestModule->vChannels, ElementsAre(m_pTestChan));
|
||||
EXPECT_THAT(m_pTestClient->vsLines, IsEmpty()); // halt
|
||||
|
||||
m_pTestModule->eAction = CModule::CONTINUE;
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
m_pTestModule->eAction = CModule::CONTINUE;
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
|
||||
EXPECT_THAT(m_pTestClient->vsLines, ElementsAre(msg.ToString()));
|
||||
EXPECT_THAT(m_pTestClient->vsLines, ElementsAre(msg.ToString()));
|
||||
|
||||
m_pTestClient->Reset();
|
||||
m_pTestModule->Reset();
|
||||
m_pTestClient->Reset();
|
||||
m_pTestModule->Reset();
|
||||
|
||||
msg.Parse(":nick PRIVMSG me :\001VERSION\001");
|
||||
m_pTestModule->eAction = CModule::HALT;
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
msg.Parse(":nick PRIVMSG me :\001VERSION\001");
|
||||
m_pTestModule->eAction = CModule::HALT;
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
|
||||
EXPECT_THAT(m_pTestModule->vsHooks, ElementsAre("OnPrivCTCPMessage"));
|
||||
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
|
||||
EXPECT_THAT(m_pTestModule->vsHooks, ElementsAre("OnPrivCTCPMessage"));
|
||||
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());
|
||||
m_pTestModule->eAction = CModule::CONTINUE;
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
|
||||
EXPECT_THAT(m_pTestClient->vsLines, ElementsAre(msg.ToString()));
|
||||
EXPECT_THAT(m_pTestClient->vsLines, ElementsAre(msg.ToString()));
|
||||
|
||||
m_pTestClient->Reset();
|
||||
m_pTestModule->Reset();
|
||||
m_pTestClient->Reset();
|
||||
m_pTestModule->Reset();
|
||||
|
||||
msg.Parse(":nick NOTICE me :\001VERSION ZNC 0.0\001");
|
||||
m_pTestModule->eAction = CModule::HALT;
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
msg.Parse(":nick NOTICE me :\001VERSION ZNC 0.0\001");
|
||||
m_pTestModule->eAction = CModule::HALT;
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
|
||||
EXPECT_THAT(m_pTestModule->vsHooks, ElementsAre("OnCTCPReplyMessage"));
|
||||
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
|
||||
EXPECT_THAT(m_pTestModule->vsHooks, ElementsAre("OnCTCPReplyMessage"));
|
||||
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());
|
||||
m_pTestModule->eAction = CModule::CONTINUE;
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
|
||||
EXPECT_THAT(m_pTestClient->vsLines, ElementsAre(msg.ToString()));
|
||||
EXPECT_THAT(m_pTestClient->vsLines, ElementsAre(msg.ToString()));
|
||||
}
|
||||
|
||||
TEST_F(IRCSockTest, OnErrorMessage) {
|
||||
CMessage msg(":server ERROR :foo bar");
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
CMessage msg(":server ERROR :foo bar");
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
|
||||
EXPECT_THAT(m_pTestModule->vsHooks,
|
||||
IsEmpty()); // no OnErrorMessage() hook (yet?)
|
||||
EXPECT_THAT(
|
||||
m_pTestClient->vsLines,
|
||||
ElementsAre(
|
||||
":*status!znc@znc.in PRIVMSG me :Error from Server [foo bar]"));
|
||||
EXPECT_THAT(m_pTestModule->vsHooks,
|
||||
IsEmpty()); // no OnErrorMessage() hook (yet?)
|
||||
EXPECT_THAT(
|
||||
m_pTestClient->vsLines,
|
||||
ElementsAre(
|
||||
":*status!znc@znc.in PRIVMSG me :Error from Server [foo bar]"));
|
||||
}
|
||||
|
||||
TEST_F(IRCSockTest, OnInviteMessage) {
|
||||
CMessage msg(":nick INVITE me #znc");
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
CMessage msg(":nick INVITE me #znc");
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
|
||||
EXPECT_THAT(m_pTestModule->vsHooks,
|
||||
IsEmpty()); // no OnInviteMessage() hook (yet?)
|
||||
EXPECT_THAT(m_pTestClient->vsLines, ElementsAre(msg.ToString()));
|
||||
EXPECT_THAT(m_pTestModule->vsHooks,
|
||||
IsEmpty()); // no OnInviteMessage() hook (yet?)
|
||||
EXPECT_THAT(m_pTestClient->vsLines, ElementsAre(msg.ToString()));
|
||||
}
|
||||
|
||||
TEST_F(IRCSockTest, OnJoinMessage) {
|
||||
CMessage msg(":somebody JOIN #chan");
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
CMessage msg(":somebody JOIN #chan");
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
|
||||
EXPECT_THAT(m_pTestModule->vsHooks, ElementsAre("OnJoinMessage"));
|
||||
EXPECT_THAT(m_pTestModule->vsMessages, ElementsAre(msg.ToString()));
|
||||
EXPECT_THAT(m_pTestModule->vNetworks, ElementsAre(m_pTestNetwork));
|
||||
EXPECT_THAT(m_pTestModule->vChannels, ElementsAre(m_pTestChan));
|
||||
EXPECT_THAT(m_pTestModule->vsHooks, ElementsAre("OnJoinMessage"));
|
||||
EXPECT_THAT(m_pTestModule->vsMessages, ElementsAre(msg.ToString()));
|
||||
EXPECT_THAT(m_pTestModule->vNetworks, ElementsAre(m_pTestNetwork));
|
||||
EXPECT_THAT(m_pTestModule->vChannels, ElementsAre(m_pTestChan));
|
||||
}
|
||||
|
||||
TEST_F(IRCSockTest, OnKickMessage) {
|
||||
CMessage msg(":nick KICK #chan person :reason");
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
CMessage msg(":nick KICK #chan person :reason");
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
|
||||
EXPECT_THAT(m_pTestModule->vsHooks, ElementsAre("OnKickMessage"));
|
||||
EXPECT_THAT(m_pTestModule->vsMessages, ElementsAre(msg.ToString()));
|
||||
EXPECT_THAT(m_pTestModule->vNetworks, ElementsAre(m_pTestNetwork));
|
||||
EXPECT_THAT(m_pTestModule->vChannels, ElementsAre(m_pTestChan));
|
||||
EXPECT_THAT(m_pTestModule->vsHooks, ElementsAre("OnKickMessage"));
|
||||
EXPECT_THAT(m_pTestModule->vsMessages, ElementsAre(msg.ToString()));
|
||||
EXPECT_THAT(m_pTestModule->vNetworks, ElementsAre(m_pTestNetwork));
|
||||
EXPECT_THAT(m_pTestModule->vChannels, ElementsAre(m_pTestChan));
|
||||
}
|
||||
|
||||
TEST_F(IRCSockTest, OnModeMessage) {
|
||||
CMessage msg(":nick MODE #chan +k key");
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
CMessage msg(":nick MODE #chan +k key");
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
|
||||
EXPECT_THAT(m_pTestModule->vsHooks,
|
||||
IsEmpty()); // no OnModeMessage() hook (yet?)
|
||||
EXPECT_THAT(m_pTestClient->vsLines, ElementsAre(msg.ToString()));
|
||||
EXPECT_THAT(m_pTestModule->vsHooks,
|
||||
IsEmpty()); // no OnModeMessage() hook (yet?)
|
||||
EXPECT_THAT(m_pTestClient->vsLines, ElementsAre(msg.ToString()));
|
||||
}
|
||||
|
||||
TEST_F(IRCSockTest, OnNickMessage) {
|
||||
CMessage msg(":nobody NICK nick");
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
CMessage msg(":nobody NICK nick");
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
|
||||
EXPECT_THAT(m_pTestModule->vsHooks, ElementsAre("OnNickMessage"));
|
||||
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());
|
||||
EXPECT_THAT(m_pTestModule->vsHooks, ElementsAre("OnNickMessage"));
|
||||
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());
|
||||
|
||||
msg.Parse(":nick NICK somebody");
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
msg.Parse(":nick NICK somebody");
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
|
||||
EXPECT_THAT(m_pTestClient->vsLines, ElementsAre(msg.ToString()));
|
||||
EXPECT_THAT(m_pTestClient->vsLines, ElementsAre(msg.ToString()));
|
||||
}
|
||||
|
||||
TEST_F(IRCSockTest, OnNoticeMessage) {
|
||||
CMessage msg(":nick NOTICE #chan :hello");
|
||||
m_pTestModule->eAction = CModule::HALT;
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
CMessage msg(":nick NOTICE #chan :hello");
|
||||
m_pTestModule->eAction = CModule::HALT;
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
|
||||
EXPECT_THAT(m_pTestModule->vsHooks, ElementsAre("OnChanNoticeMessage"));
|
||||
EXPECT_THAT(m_pTestModule->vsMessages, ElementsAre(msg.ToString()));
|
||||
EXPECT_THAT(m_pTestModule->vNetworks, ElementsAre(m_pTestNetwork));
|
||||
EXPECT_THAT(m_pTestModule->vChannels, ElementsAre(m_pTestChan));
|
||||
EXPECT_THAT(m_pTestClient->vsLines, IsEmpty()); // halt
|
||||
EXPECT_THAT(m_pTestModule->vsHooks, ElementsAre("OnChanNoticeMessage"));
|
||||
EXPECT_THAT(m_pTestModule->vsMessages, ElementsAre(msg.ToString()));
|
||||
EXPECT_THAT(m_pTestModule->vNetworks, ElementsAre(m_pTestNetwork));
|
||||
EXPECT_THAT(m_pTestModule->vChannels, ElementsAre(m_pTestChan));
|
||||
EXPECT_THAT(m_pTestClient->vsLines, IsEmpty()); // halt
|
||||
|
||||
m_pTestModule->eAction = CModule::CONTINUE;
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
m_pTestModule->eAction = CModule::CONTINUE;
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
|
||||
EXPECT_THAT(m_pTestClient->vsLines, ElementsAre(msg.ToString()));
|
||||
EXPECT_THAT(m_pTestClient->vsLines, ElementsAre(msg.ToString()));
|
||||
|
||||
m_pTestClient->Reset();
|
||||
m_pTestModule->Reset();
|
||||
m_pTestClient->Reset();
|
||||
m_pTestModule->Reset();
|
||||
|
||||
msg.Parse(":nick NOTICE me :hello");
|
||||
m_pTestModule->eAction = CModule::HALT;
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
msg.Parse(":nick NOTICE me :hello");
|
||||
m_pTestModule->eAction = CModule::HALT;
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
|
||||
EXPECT_THAT(m_pTestModule->vsHooks, ElementsAre("OnPrivNoticeMessage"));
|
||||
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
|
||||
EXPECT_THAT(m_pTestModule->vsHooks, ElementsAre("OnPrivNoticeMessage"));
|
||||
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());
|
||||
m_pTestModule->eAction = CModule::CONTINUE;
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
|
||||
EXPECT_THAT(m_pTestClient->vsLines, ElementsAre(msg.ToString()));
|
||||
EXPECT_THAT(m_pTestClient->vsLines, ElementsAre(msg.ToString()));
|
||||
}
|
||||
|
||||
TEST_F(IRCSockTest, OnNumericMessage) {
|
||||
CMessage msg(":irc.server.com 372 nick :motd");
|
||||
m_pTestModule->eAction = CModule::HALT;
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
CMessage msg(":irc.server.com 372 nick :motd");
|
||||
m_pTestModule->eAction = CModule::HALT;
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
|
||||
EXPECT_THAT(m_pTestModule->vsHooks, ElementsAre("OnNumericMessage"));
|
||||
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
|
||||
EXPECT_THAT(m_pTestModule->vsHooks, ElementsAre("OnNumericMessage"));
|
||||
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());
|
||||
m_pTestModule->eAction = CModule::CONTINUE;
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
|
||||
EXPECT_THAT(m_pTestClient->vsLines, ElementsAre(msg.ToString()));
|
||||
EXPECT_THAT(m_pTestClient->vsLines, ElementsAre(msg.ToString()));
|
||||
}
|
||||
|
||||
TEST_F(IRCSockTest, OnPartMessage) {
|
||||
CMessage msg(":nick PART #chan :reason");
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
CMessage msg(":nick PART #chan :reason");
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
|
||||
EXPECT_THAT(m_pTestModule->vsHooks, ElementsAre("OnPartMessage"));
|
||||
EXPECT_THAT(m_pTestModule->vsMessages, ElementsAre(msg.ToString()));
|
||||
EXPECT_THAT(m_pTestModule->vNetworks, ElementsAre(m_pTestNetwork));
|
||||
EXPECT_THAT(m_pTestModule->vChannels, ElementsAre(m_pTestChan));
|
||||
EXPECT_THAT(m_pTestModule->vsHooks, ElementsAre("OnPartMessage"));
|
||||
EXPECT_THAT(m_pTestModule->vsMessages, ElementsAre(msg.ToString()));
|
||||
EXPECT_THAT(m_pTestModule->vNetworks, ElementsAre(m_pTestNetwork));
|
||||
EXPECT_THAT(m_pTestModule->vChannels, ElementsAre(m_pTestChan));
|
||||
}
|
||||
|
||||
TEST_F(IRCSockTest, OnPingMessage) {
|
||||
CMessage msg(":server PING :arg");
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
CMessage msg(":server PING :arg");
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
|
||||
EXPECT_THAT(m_pTestModule->vsHooks, IsEmpty());
|
||||
EXPECT_THAT(m_pTestClient->vsLines, IsEmpty());
|
||||
EXPECT_THAT(m_pTestModule->vsHooks, IsEmpty());
|
||||
EXPECT_THAT(m_pTestClient->vsLines, IsEmpty());
|
||||
}
|
||||
|
||||
TEST_F(IRCSockTest, OnPongMessage) {
|
||||
CMessage msg(":server PONG :arg");
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
CMessage msg(":server PONG :arg");
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
|
||||
EXPECT_THAT(m_pTestModule->vsHooks, IsEmpty());
|
||||
EXPECT_THAT(m_pTestClient->vsLines, IsEmpty());
|
||||
EXPECT_THAT(m_pTestModule->vsHooks, IsEmpty());
|
||||
EXPECT_THAT(m_pTestClient->vsLines, IsEmpty());
|
||||
}
|
||||
|
||||
TEST_F(IRCSockTest, OnQuitMessage) {
|
||||
CMessage msg(":nobody QUIT :bye");
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
CMessage msg(":nobody QUIT :bye");
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
|
||||
EXPECT_THAT(m_pTestModule->vsHooks, ElementsAre("OnQuitMessage"));
|
||||
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_pTestModule->vsHooks, ElementsAre("OnQuitMessage"));
|
||||
EXPECT_THAT(m_pTestModule->vsMessages, ElementsAre(msg.ToString()));
|
||||
EXPECT_THAT(m_pTestModule->vNetworks, ElementsAre(m_pTestNetwork));
|
||||
EXPECT_THAT(m_pTestModule->vChannels, ElementsAre(nullptr));
|
||||
|
||||
msg.Parse(":nick QUIT :bye");
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
msg.Parse(":nick QUIT :bye");
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
|
||||
EXPECT_THAT(m_pTestClient->vsLines, ElementsAre(msg.ToString()));
|
||||
EXPECT_THAT(m_pTestClient->vsLines, ElementsAre(msg.ToString()));
|
||||
}
|
||||
|
||||
TEST_F(IRCSockTest, OnTextMessage) {
|
||||
CMessage msg(":nick PRIVMSG #chan :hello");
|
||||
m_pTestModule->eAction = CModule::HALT;
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
CMessage msg(":nick PRIVMSG #chan :hello");
|
||||
m_pTestModule->eAction = CModule::HALT;
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
|
||||
EXPECT_THAT(m_pTestModule->vsHooks, ElementsAre("OnChanMessage"));
|
||||
EXPECT_THAT(m_pTestModule->vsMessages, ElementsAre(msg.ToString()));
|
||||
EXPECT_THAT(m_pTestModule->vNetworks, ElementsAre(m_pTestNetwork));
|
||||
EXPECT_THAT(m_pTestModule->vChannels, ElementsAre(m_pTestChan));
|
||||
EXPECT_THAT(m_pTestClient->vsLines, IsEmpty()); // halt
|
||||
EXPECT_THAT(m_pTestModule->vsHooks, ElementsAre("OnChanMessage"));
|
||||
EXPECT_THAT(m_pTestModule->vsMessages, ElementsAre(msg.ToString()));
|
||||
EXPECT_THAT(m_pTestModule->vNetworks, ElementsAre(m_pTestNetwork));
|
||||
EXPECT_THAT(m_pTestModule->vChannels, ElementsAre(m_pTestChan));
|
||||
EXPECT_THAT(m_pTestClient->vsLines, IsEmpty()); // halt
|
||||
|
||||
m_pTestModule->eAction = CModule::CONTINUE;
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
m_pTestModule->eAction = CModule::CONTINUE;
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
|
||||
EXPECT_THAT(m_pTestClient->vsLines, ElementsAre(msg.ToString()));
|
||||
EXPECT_THAT(m_pTestClient->vsLines, ElementsAre(msg.ToString()));
|
||||
|
||||
m_pTestClient->Reset();
|
||||
m_pTestModule->Reset();
|
||||
m_pTestClient->Reset();
|
||||
m_pTestModule->Reset();
|
||||
|
||||
msg.Parse(":nick PRIVMSG me :hello");
|
||||
m_pTestModule->eAction = CModule::HALT;
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
msg.Parse(":nick PRIVMSG me :hello");
|
||||
m_pTestModule->eAction = CModule::HALT;
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
|
||||
EXPECT_THAT(m_pTestModule->vsHooks, ElementsAre("OnPrivMessage"));
|
||||
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
|
||||
EXPECT_THAT(m_pTestModule->vsHooks, ElementsAre("OnPrivMessage"));
|
||||
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());
|
||||
m_pTestModule->eAction = CModule::CONTINUE;
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
|
||||
EXPECT_THAT(m_pTestClient->vsLines, ElementsAre(msg.ToString()));
|
||||
EXPECT_THAT(m_pTestClient->vsLines, ElementsAre(msg.ToString()));
|
||||
}
|
||||
|
||||
TEST_F(IRCSockTest, OnTopicMessage) {
|
||||
CMessage msg(":nick TOPIC #chan :topic");
|
||||
m_pTestModule->eAction = CModule::HALT;
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
CMessage msg(":nick TOPIC #chan :topic");
|
||||
m_pTestModule->eAction = CModule::HALT;
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
|
||||
EXPECT_THAT(m_pTestModule->vsHooks, ElementsAre("OnTopicMessage"));
|
||||
EXPECT_THAT(m_pTestModule->vsMessages, ElementsAre(msg.ToString()));
|
||||
EXPECT_THAT(m_pTestModule->vNetworks, ElementsAre(m_pTestNetwork));
|
||||
EXPECT_THAT(m_pTestModule->vChannels, ElementsAre(m_pTestChan));
|
||||
EXPECT_THAT(m_pTestClient->vsLines, IsEmpty()); // halt
|
||||
EXPECT_THAT(m_pTestModule->vsHooks, ElementsAre("OnTopicMessage"));
|
||||
EXPECT_THAT(m_pTestModule->vsMessages, ElementsAre(msg.ToString()));
|
||||
EXPECT_THAT(m_pTestModule->vNetworks, ElementsAre(m_pTestNetwork));
|
||||
EXPECT_THAT(m_pTestModule->vChannels, ElementsAre(m_pTestChan));
|
||||
EXPECT_THAT(m_pTestClient->vsLines, IsEmpty()); // halt
|
||||
|
||||
m_pTestModule->eAction = CModule::CONTINUE;
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
m_pTestModule->eAction = CModule::CONTINUE;
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
|
||||
EXPECT_THAT(m_pTestClient->vsLines, ElementsAre(msg.ToString()));
|
||||
EXPECT_THAT(m_pTestClient->vsLines, ElementsAre(msg.ToString()));
|
||||
}
|
||||
|
||||
TEST_F(IRCSockTest, OnWallopsMessage) {
|
||||
CMessage msg(":blub!dummy@rox-8DBEFE92 WALLOPS :this is a test");
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
CMessage msg(":blub!dummy@rox-8DBEFE92 WALLOPS :this is a test");
|
||||
m_pTestSock->ReadLine(msg.ToString());
|
||||
|
||||
EXPECT_THAT(m_pTestModule->vsHooks,
|
||||
IsEmpty()); // no OnWallopsMessage() hook (yet?)
|
||||
EXPECT_THAT(m_pTestClient->vsLines, ElementsAre(msg.ToString()));
|
||||
EXPECT_THAT(m_pTestModule->vsHooks,
|
||||
IsEmpty()); // no OnWallopsMessage() hook (yet?)
|
||||
EXPECT_THAT(m_pTestClient->vsLines, ElementsAre(msg.ToString()));
|
||||
}
|
||||
|
||||
TEST_F(IRCSockTest, ISupport) {
|
||||
MCString m1 = {
|
||||
{"CHANTYPES", "#"}, {"EXCEPTS", ""},
|
||||
{"INVEX", ""}, {"CHANMODES", "eIbq,k,flj,CFLMPQScgimnprstz"},
|
||||
{"CHANLIMIT", "#:120"}, {"PREFIX", "(ov)@+"},
|
||||
{"MAXLIST", "bqeI:100"}, {"MODES", "4"},
|
||||
{"NETWORK", "znc"}, {"KNOCK", ""},
|
||||
{"STATUSMSG", "@+"}, {"CALLERID", "g"},
|
||||
};
|
||||
MCString m1 = {
|
||||
{"CHANTYPES", "#"}, {"EXCEPTS", ""},
|
||||
{"INVEX", ""}, {"CHANMODES", "eIbq,k,flj,CFLMPQScgimnprstz"},
|
||||
{"CHANLIMIT", "#:120"}, {"PREFIX", "(ov)@+"},
|
||||
{"MAXLIST", "bqeI:100"}, {"MODES", "4"},
|
||||
{"NETWORK", "znc"}, {"KNOCK", ""},
|
||||
{"STATUSMSG", "@+"}, {"CALLERID", "g"},
|
||||
};
|
||||
|
||||
m_pTestSock->ReadLine(
|
||||
":irc.znc.in 005 user CHANTYPES=# EXCEPTS INVEX "
|
||||
"CHANMODES=eIbq,k,flj,CFLMPQScgimnprstz CHANLIMIT=#:120 PREFIX=(ov)@+ "
|
||||
"MAXLIST=bqeI:100 MODES=4 NETWORK=znc KNOCK STATUSMSG=@+ CALLERID=g "
|
||||
":are supported by this server");
|
||||
EXPECT_THAT(m_pTestSock->GetISupport(), ContainerEq(m1));
|
||||
for (const auto& it : m1) {
|
||||
EXPECT_EQ(it.second, m_pTestSock->GetISupport(it.first));
|
||||
}
|
||||
m_pTestSock->ReadLine(
|
||||
":irc.znc.in 005 user CHANTYPES=# EXCEPTS INVEX "
|
||||
"CHANMODES=eIbq,k,flj,CFLMPQScgimnprstz CHANLIMIT=#:120 PREFIX=(ov)@+ "
|
||||
"MAXLIST=bqeI:100 MODES=4 NETWORK=znc KNOCK STATUSMSG=@+ CALLERID=g "
|
||||
":are supported by this server");
|
||||
EXPECT_THAT(m_pTestSock->GetISupport(), ContainerEq(m1));
|
||||
for (const auto& it : m1) {
|
||||
EXPECT_EQ(it.second, m_pTestSock->GetISupport(it.first));
|
||||
}
|
||||
|
||||
MCString m2 = {
|
||||
{"CASEMAPPING", "rfc1459"},
|
||||
{"CHARSET", "ascii"},
|
||||
{"NICKLEN", "16"},
|
||||
{"CHANNELLEN", "50"},
|
||||
{"TOPICLEN", "390"},
|
||||
{"ETRACE", ""},
|
||||
{"CPRIVMSG", ""},
|
||||
{"CNOTICE", ""},
|
||||
{"DEAF", "D"},
|
||||
{"MONITOR", "100"},
|
||||
{"FNC", ""},
|
||||
{"TARGMAX",
|
||||
"NAMES:1,LIST:1,KICK:1,WHOIS:1,PRIVMSG:4,NOTICE:4,ACCEPT:,MONITOR:"},
|
||||
};
|
||||
MCString m2 = {
|
||||
{"CASEMAPPING", "rfc1459"},
|
||||
{"CHARSET", "ascii"},
|
||||
{"NICKLEN", "16"},
|
||||
{"CHANNELLEN", "50"},
|
||||
{"TOPICLEN", "390"},
|
||||
{"ETRACE", ""},
|
||||
{"CPRIVMSG", ""},
|
||||
{"CNOTICE", ""},
|
||||
{"DEAF", "D"},
|
||||
{"MONITOR", "100"},
|
||||
{"FNC", ""},
|
||||
{"TARGMAX",
|
||||
"NAMES:1,LIST:1,KICK:1,WHOIS:1,PRIVMSG:4,NOTICE:4,ACCEPT:,MONITOR:"},
|
||||
};
|
||||
|
||||
MCString m12;
|
||||
std::merge(m1.begin(), m1.end(), m2.begin(), m2.end(),
|
||||
std::inserter(m12, m12.begin()));
|
||||
MCString m12;
|
||||
std::merge(m1.begin(), m1.end(), m2.begin(), m2.end(),
|
||||
std::inserter(m12, m12.begin()));
|
||||
|
||||
m_pTestSock->ReadLine(
|
||||
":server 005 user CASEMAPPING=rfc1459 CHARSET=ascii NICKLEN=16 "
|
||||
"CHANNELLEN=50 TOPICLEN=390 ETRACE CPRIVMSG CNOTICE DEAF=D MONITOR=100 "
|
||||
"FNC "
|
||||
"TARGMAX=NAMES:1,LIST:1,KICK:1,WHOIS:1,PRIVMSG:4,NOTICE:4,ACCEPT:,"
|
||||
"MONITOR: :are supported by this server");
|
||||
EXPECT_THAT(m_pTestSock->GetISupport(), ContainerEq(m12));
|
||||
for (const auto& it : m2) {
|
||||
EXPECT_EQ(it.second, m_pTestSock->GetISupport(it.first));
|
||||
}
|
||||
m_pTestSock->ReadLine(
|
||||
":server 005 user CASEMAPPING=rfc1459 CHARSET=ascii NICKLEN=16 "
|
||||
"CHANNELLEN=50 TOPICLEN=390 ETRACE CPRIVMSG CNOTICE DEAF=D MONITOR=100 "
|
||||
"FNC "
|
||||
"TARGMAX=NAMES:1,LIST:1,KICK:1,WHOIS:1,PRIVMSG:4,NOTICE:4,ACCEPT:,"
|
||||
"MONITOR: :are supported by this server");
|
||||
EXPECT_THAT(m_pTestSock->GetISupport(), ContainerEq(m12));
|
||||
for (const auto& it : m2) {
|
||||
EXPECT_EQ(it.second, m_pTestSock->GetISupport(it.first));
|
||||
}
|
||||
|
||||
MCString m3 = {
|
||||
{"EXTBAN", "$,ajrxz"}, {"WHOX", ""}, {"CLIENTVER", "3.0"},
|
||||
{"SAFELIST", ""}, {"ELIST", "CTU"},
|
||||
};
|
||||
MCString m3 = {
|
||||
{"EXTBAN", "$,ajrxz"}, {"WHOX", ""}, {"CLIENTVER", "3.0"},
|
||||
{"SAFELIST", ""}, {"ELIST", "CTU"},
|
||||
};
|
||||
|
||||
MCString m123;
|
||||
std::merge(m12.begin(), m12.end(), m3.begin(), m3.end(),
|
||||
std::inserter(m123, m123.begin()));
|
||||
MCString m123;
|
||||
std::merge(m12.begin(), m12.end(), m3.begin(), m3.end(),
|
||||
std::inserter(m123, m123.begin()));
|
||||
|
||||
m_pTestSock->ReadLine(
|
||||
":server 005 zzzzzz EXTBAN=$,ajrxz WHOX CLIENTVER=3.0 SAFELIST "
|
||||
"ELIST=CTU :are supported by this server");
|
||||
EXPECT_THAT(m_pTestSock->GetISupport(), ContainerEq(m123));
|
||||
for (const auto& it : m3) {
|
||||
EXPECT_EQ(it.second, m_pTestSock->GetISupport(it.first));
|
||||
}
|
||||
m_pTestSock->ReadLine(
|
||||
":server 005 zzzzzz EXTBAN=$,ajrxz WHOX CLIENTVER=3.0 SAFELIST "
|
||||
"ELIST=CTU :are supported by this server");
|
||||
EXPECT_THAT(m_pTestSock->GetISupport(), ContainerEq(m123));
|
||||
for (const auto& it : m3) {
|
||||
EXPECT_EQ(it.second, m_pTestSock->GetISupport(it.first));
|
||||
}
|
||||
|
||||
EXPECT_EQ("default", m_pTestSock->GetISupport("FOOBAR", "default"));
|
||||
EXPECT_EQ("3.0", m_pTestSock->GetISupport("CLIENTVER", "default"));
|
||||
EXPECT_EQ("", m_pTestSock->GetISupport("SAFELIST", "default"));
|
||||
EXPECT_EQ("default", m_pTestSock->GetISupport("FOOBAR", "default"));
|
||||
EXPECT_EQ("3.0", m_pTestSock->GetISupport("CLIENTVER", "default"));
|
||||
EXPECT_EQ("", m_pTestSock->GetISupport("SAFELIST", "default"));
|
||||
}
|
||||
|
||||
TEST_F(IRCSockTest, StatusMsg) {
|
||||
m_pTestSock->ReadLine(
|
||||
":irc.znc.in 001 me :Welcome to the Internet Relay Network me");
|
||||
m_pTestSock->ReadLine(
|
||||
":irc.znc.in 005 me CHANTYPES=# PREFIX=(ov)@+ STATUSMSG=@+ :are "
|
||||
"supported by this server");
|
||||
m_pTestSock->ReadLine(
|
||||
":irc.znc.in 001 me :Welcome to the Internet Relay Network me");
|
||||
m_pTestSock->ReadLine(
|
||||
":irc.znc.in 005 me CHANTYPES=# PREFIX=(ov)@+ STATUSMSG=@+ :are "
|
||||
"supported by this server");
|
||||
|
||||
m_pTestUser->SetAutoClearChanBuffer(false);
|
||||
m_pTestSock->ReadLine(":someone PRIVMSG @#chan :hello ops");
|
||||
m_pTestUser->SetAutoClearChanBuffer(false);
|
||||
m_pTestSock->ReadLine(":someone PRIVMSG @#chan :hello ops");
|
||||
|
||||
EXPECT_EQ(1u, m_pTestChan->GetBuffer().Size());
|
||||
EXPECT_EQ(1u, m_pTestChan->GetBuffer().Size());
|
||||
|
||||
m_pTestUser->SetTimestampPrepend(false);
|
||||
EXPECT_EQ(":someone PRIVMSG @#chan :hello ops",
|
||||
m_pTestChan->GetBuffer().GetLine(0, *m_pTestClient));
|
||||
m_pTestUser->SetTimestampPrepend(false);
|
||||
EXPECT_EQ(":someone PRIVMSG @#chan :hello ops",
|
||||
m_pTestChan->GetBuffer().GetLine(0, *m_pTestClient));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user