void MyIrcSession::on_topicChanged(IrcMessage *message) { IrcTopicMessage *m = (IrcTopicMessage *) message; std::string nickname = TO_UTF8(m->sender().name()); correctNickname(nickname); LOG4CXX_INFO(logger, user << ": " << nickname << " topic changed to " << TO_UTF8(m->topic())); np->handleSubject(user, TO_UTF8(m->channel().toLower()) + suffix, TO_UTF8(m->topic()), nickname); }
void tst_IrcMessage::testTopicMessage() { QFETCH(bool, valid); QFETCH(QByteArray, data); QFETCH(QString, channel); QFETCH(QString, topic); QFETCH(bool, reply); IrcConnection connection; IrcMessage* message = IrcMessage::fromData(data, &connection); QCOMPARE(message->type(), IrcMessage::Topic); QCOMPARE(message->command(), QString("TOPIC")); QCOMPARE(message->property("valid").toBool(), valid); QCOMPARE(message->property("channel").toString(), channel); QCOMPARE(message->property("topic").toString(), topic); QCOMPARE(message->property("reply").toBool(), reply); IrcTopicMessage* topicMessage = qobject_cast<IrcTopicMessage*>(message); QVERIFY(topicMessage); QCOMPARE(topicMessage->isValid(), valid); QCOMPARE(topicMessage->channel(), channel); QCOMPARE(topicMessage->topic(), topic); QCOMPARE(topicMessage->isReply(), reply); }