void Ut_MImToolbar::testHideGroup() { m_subject->showToolbarWidget(toolbarData); //find button testbutton2, which click will hide group test MButton *button = qobject_cast<MButton *>(find("testbutton2")); QVERIFY(button != 0); button->click(); QCOMPARE(m_subject->leftBar.layout()->count(), 1); QCOMPARE(m_subject->rightBar.layout()->count(), 1); }
void Ut_MImToolbar::testSendString() { m_subject->showToolbarWidget(toolbarData); QSignalSpy spy(m_subject, SIGNAL(sendStringRequest(const QString &))); QVERIFY(spy.isValid()); //find button testbutton2, which click will send string MButton *button = qobject_cast<MButton *>(find("testbutton2")); QVERIFY(button != 0); button->click(); QVERIFY(spy.count() == 1); spy.clear(); }
void Ut_MImToolbar::testRegion() { QSKIP("Skip this case because Qt (4.7.1~git20101130) break the vkb toolbar.", SkipAll); QSignalSpy regionSignals(m_subject, SIGNAL(regionUpdated())); m_subject->showToolbarWidget(toolbarData); QCOMPARE(regionSignals.count(), 1); m_subject->updateVisibility(); QCOMPARE(regionSignals.count(), 1); // Get region when there are two buttons on the right. const QRegion regionTwoButtons = m_subject->region(); // When the region is substracted from rightRect there should be nothing left. const QRect rightRect = m_subject->rightBar.geometry().toRect(); QVERIFY((QRegion(rightRect) - regionTwoButtons).isEmpty()); // We need to add a new button, let's use groups. // Clicking testbutton1 will add one button to the right. MButton *button = qobject_cast<MButton *>(find("testbutton1")); QVERIFY(button != 0); button->click(); while (QCoreApplication::hasPendingEvents()) { QCoreApplication::processEvents(); } // Button added, check that regionUpdate() was emitted. QCOMPARE(regionSignals.count(), 2); // Get region when there are three buttons on the right. const QRegion regionThreeButtons = m_subject->region(); // Toolbar always occupy the same region, // because our toolbar contains one line only. QCOMPARE(regionThreeButtons, regionTwoButtons); m_subject->finalizeOrientationChange(); QCOMPARE(regionSignals.count(), 2); m_subject->hideToolbarWidget(); QCOMPARE(regionSignals.count(), 3); m_subject->hide(); QCOMPARE(regionSignals.count(), 4); QVERIFY(m_subject->region().isEmpty()); }
void Ut_MImToolbar::testKeySequenceString() { m_subject->showToolbarWidget(toolbarData); //find button testbutton1, which click will send key sequence (QKeyEvent) //because QKeyEvent is not supported by MetaType, use its own slot to test it. keyEvents = 0; connect(m_subject, SIGNAL(sendKeyEventRequest(const QKeyEvent &)), this, SLOT(receiveKeyEvent(const QKeyEvent &))); MButton *button = qobject_cast<MButton *>(find("testbutton1")); QVERIFY(button != 0); button->click(); QVERIFY(keyEvents > 0); keyEvents = 0; }
void Ut_MImToolbar::testPaste() { QSignalSpy spy(m_subject, SIGNAL(copyPasteRequest(CopyPasteState))); QVERIFY(spy.isValid()); m_subject->showToolbarWidget(toolbarData); //find button testbutton2, which click will paste MButton *button = qobject_cast<MButton *>(find("testbutton2")); QVERIFY(button != 0); button->click(); QVERIFY(spy.count() == 1); QVERIFY(spy.first().count() == 1); CopyPasteState result = spy.first().first().value<CopyPasteState>(); QCOMPARE(result, InputMethodPaste); spy.clear(); }