void ChatTests::testLeaveChatReinvite() { QSignalSpy spy(session2.data(), SIGNAL(invitationReceived(QSharedPointer<Chat>))); QVERIFY(spy.isValid()); QVERIFY(spy.isEmpty()); QSignalSpy spy4(chat.data(), SIGNAL(userJoined(QSharedPointer<const User>))); QVERIFY(spy4.isValid()); QVERIFY(spy4.isEmpty()); QSharedPointer<const User> u(new User(TEMP_SESSION_USER2, WORKING_DIR "public.pem")); chat->invite(u); waitForResult(spy); waitForResult(spy4); QList<QVariant> arguments = spy.takeFirst(); QSharedPointer<Chat> chat2 = arguments.at(0).value<QSharedPointer<Chat> >(); QSignalSpy spy2(chat2.data(), SIGNAL(leaveChatCompleted(bool, QString))); QVERIFY(spy2.isValid()); QVERIFY(spy2.isEmpty()); QSignalSpy spy3(chat.data(), SIGNAL(userLeft(QSharedPointer<const User>))); QVERIFY(spy3.isValid()); QVERIFY(spy3.isEmpty()); chat2->leaveChat(); waitForResult(spy2); waitForResult(spy3); QCOMPARE(spy2.count(), 1); QList<QVariant> arguments2 = spy2.takeFirst(); QVERIFY2(arguments2.at(0) == true, arguments2.at(1).toString().toStdString().c_str()); QCOMPARE(spy3.count(), 1); QList<QVariant> arguments3 = spy3.takeFirst(); QSharedPointer<const User> u2 = arguments3.at(0).value<QSharedPointer<const User> >(); QCOMPARE(u2->getName(), QString(TEMP_SESSION_USER2)); QSignalSpy spy9(session2.data(), SIGNAL(invitationReceived(QSharedPointer<Chat>))); QVERIFY(spy9.isValid()); QVERIFY(spy9.isEmpty()); chat->invite(u); waitForResult(spy9); QCOMPARE(spy9.count(), 1); }
void MucExtension::Initialize(Client *client) { client_ = client; framework_ = client_->GetFramework(); client_->GetQxmppClient()->addExtension(qxmpp_muc_manager_); connect(qxmpp_muc_manager_, SIGNAL(invitationReceived(QString,QString,QString)), this, SLOT(HandleInvitationReceived(QString,QString,QString))); }
CFrmGroupChatList::CFrmGroupChatList(QWidget *parent) : QFrame(parent), m_GroupList(this), ui(new Ui::CFrmGroupChatList) { ui->setupUi(this); QDesktopWidget *pDesk = QApplication::desktop(); move((pDesk->width() - width()) / 2, (pDesk->height() - height()) / 2); bool check = false; m_pAction = NULL; InitMenu(); m_pModel = new QStandardItemModel(this); if(m_pModel) { //增加头,只有增加了这个后,下面才会显示内容 m_pModel->setHorizontalHeaderLabels(QStringList() << tr("Rooms")<< tr("Information")); } //禁止列表文本框编辑 m_GroupList.setEditTriggers(QAbstractItemView::NoEditTriggers); m_GroupList.setModel(m_pModel); m_GroupList.show(); check = connect(&m_GroupList, SIGNAL(customContextMenuRequested(QPoint)), SLOT(slotCustomContextMenuRequested(QPoint))); Q_ASSERT(check); check = connect(&CGlobal::Instance()->GetXmppClient()->m_MucManager, SIGNAL(invitationReceived(QString,QString,QString)), SLOT(slotInvitationReceived(QString,QString,QString))); Q_ASSERT(check); /*check = connect(&CGlobal::Instance()->GetXmppClient()->m_MucManager, SIGNAL(roomAdded(QXmppMucRoom*)), SLOT(slotRoomAdded(QXmppMucRoom*))); Q_ASSERT(check);*/ check = connect(&m_GroupList, SIGNAL(clicked(QModelIndex)), SLOT(slotClicked(QModelIndex))); Q_ASSERT(check); check = connect(&m_GroupList, SIGNAL(doubleClicked(QModelIndex)), SLOT(slotDoubleClicked(QModelIndex))); Q_ASSERT(check); }
void ChatTests::testTransmitMessage() { QVERIFY(chat); QSignalSpy spy(session2.data(), SIGNAL(invitationReceived(QSharedPointer<Chat>))); QVERIFY(spy.isValid()); QVERIFY(spy.isEmpty()); QSignalSpy spy2(chat.data(), SIGNAL(userJoined(QSharedPointer<const User>))); QVERIFY(spy2.isValid()); QVERIFY(spy2.isEmpty()); QSharedPointer<const User> u(new User(TEMP_SESSION_USER2, WORKING_DIR "public.pem")); chat->invite(u); waitForResult(spy); QList<QVariant> arguments = spy.takeFirst(); QSharedPointer<Chat> chat2 = arguments.at(0).value<QSharedPointer<Chat> >(); waitForResult(spy2); QSignalSpy spy3(chat2.data(), SIGNAL(sendCompleted(bool, const QString &))); QVERIFY(spy3.isValid()); QVERIFY(spy3.isEmpty()); QSignalSpy spy4(chat.data(), SIGNAL(messageReceived(QSharedPointer<const User>, const QString &))); QVERIFY(spy4.isValid()); QVERIFY(spy4.isEmpty()); QSignalSpy spy5(chat2.data(), SIGNAL(messageReceived(QSharedPointer<const User>, const QString &))); QVERIFY(spy5.isValid()); QVERIFY(spy5.isEmpty()); chat2->send("Cupcakes!!!"); waitForResult(spy3); QList<QVariant> arguments2 = spy3.takeFirst(); QVERIFY(arguments2.at(0) == true); waitForResult(spy4); QList<QVariant> arguments3 = spy4.takeFirst(); QCOMPARE(arguments3.at(1).toString(), QString("Cupcakes!!!")); QSharedPointer<const User> u2 = arguments3.at(0).value<QSharedPointer<const User> >(); QCOMPARE(u2->getName(), u->getName()); waitForResult(spy5); QList<QVariant> arguments4 = spy5.takeFirst(); QCOMPARE(arguments4.at(1).toString(), QString("Cupcakes!!!")); QSharedPointer<const User> u3 = arguments4.at(0).value<QSharedPointer<const User> >(); QCOMPARE(u3->getName(), u->getName()); QSignalSpy spy6(chat.data(), SIGNAL(sendCompleted(bool, const QString &))); QVERIFY(spy6.isValid()); QVERIFY(spy6.isEmpty()); QSignalSpy spy7(chat2.data(), SIGNAL(messageReceived(QSharedPointer<const User>, const QString &))); QVERIFY(spy7.isValid()); QVERIFY(spy7.isEmpty()); QSignalSpy spy8(chat.data(), SIGNAL(messageReceived(QSharedPointer<const User>, const QString &))); QVERIFY(spy8.isValid()); QVERIFY(spy8.isEmpty()); chat->send("Khaaan!!!"); waitForResult(spy6); QList<QVariant> arguments5 = spy6.takeFirst(); QVERIFY(arguments5.at(0) == true); waitForResult(spy7); QList<QVariant> arguments6 = spy7.takeFirst(); QCOMPARE(arguments6.at(1).toString(), QString("Khaaan!!!")); QSharedPointer<const User> u4 = arguments6.at(0).value<QSharedPointer<const User> >(); QCOMPARE(u4->getName(), QString(TEMP_SESSION_USER3)); waitForResult(spy8); QList<QVariant> arguments7 = spy8.takeFirst(); QCOMPARE(arguments7.at(1).toString(), QString("Khaaan!!!")); QSharedPointer<const User> u5 = arguments7.at(0).value<QSharedPointer<const User> >(); QCOMPARE(u5->getName(), QString(TEMP_SESSION_USER3)); }