Example #1
0
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)));
}
Example #3
0
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);
}
Example #4
0
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));
}