Add CCTCPMessage::IsReply()

This commit is contained in:
J-P Nurmi
2015-09-05 01:28:55 +02:00
parent ec952024d7
commit 58fc0e91d7
2 changed files with 19 additions and 0 deletions

View File

@@ -103,6 +103,7 @@ public:
class CCTCPMessage : public CTargetMessage {
public:
bool IsReply() const { return GetCommand().Equals("NOTICE"); }
CString GetText() const { return GetParam(1).TrimPrefix_n("\001").TrimSuffix_n("\001"); }
void SetText(const CString& sText) { SetParam(1, "\001" + sText + "\001"); }
};

View File

@@ -123,6 +123,7 @@ TEST(MessageTest, ChanCTCP) {
EXPECT_EQ("PRIVMSG", msg.GetCommand());
EXPECT_EQ("#chan", msg.GetTarget());
EXPECT_EQ("text", msg.GetText());
EXPECT_FALSE(msg.IsReply());
msg.SetTarget("#znc");
EXPECT_EQ("#znc", msg.GetTarget());
@@ -146,6 +147,22 @@ TEST(MessageTest, ChanMsg) {
EXPECT_EQ(":sender PRIVMSG #znc :foo bar", msg.ToString());
}
TEST(MessageTest, CTCPReply) {
CCTCPMessage msg;
msg.Parse(":sender NOTICE nick :\001FOO bar\001");
EXPECT_EQ("sender", msg.GetNick().GetNick());
EXPECT_EQ("NOTICE", msg.GetCommand());
EXPECT_EQ("nick", msg.GetTarget());
EXPECT_EQ("FOO bar", msg.GetText());
EXPECT_TRUE(msg.IsReply());
msg.SetTarget("noone");
EXPECT_EQ("noone", msg.GetTarget());
msg.SetText("BAR foo");
EXPECT_EQ("BAR foo", msg.GetText());
EXPECT_EQ(":sender NOTICE noone :\001BAR foo\001", msg.ToString());
}
TEST(MessageTest, Kick) {
CKickMessage msg;
msg.Parse(":nick KICK #chan person :reason");
@@ -248,6 +265,7 @@ TEST(MessageTest, PrivCTCP) {
EXPECT_EQ("PRIVMSG", msg.GetCommand());
EXPECT_EQ("receiver", msg.GetTarget());
EXPECT_EQ("text", msg.GetText());
EXPECT_FALSE(msg.IsReply());
msg.SetTarget("noone");
EXPECT_EQ("noone", msg.GetTarget());