diff options
author | Friedemann Kleint <Friedemann.Kleint@digia.com> | 2013-04-04 14:09:20 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-04-05 11:28:47 +0200 |
commit | 54bd1102ad14b5c1c3112ebc98435877cc2a5c7f (patch) | |
tree | 05d06bb75bf34458b453c15b23bc78f6772a5ab8 /tests/auto/widgets | |
parent | 653e690923426dc8253e2adb155b1d108d934833 (diff) |
Stabilize tst_qcompleter.
- Use qWaitForWindowActive in task178797_activatedOnReturn().
- Remove hardcoded timeouts, use qWaitForWindowActive/Exposed.
- Instantiate widgets on stack or use QScopedPointer to ensure
cleanup.
- Move widgets to a central location, avoiding taskbar areas.
Change-Id: I98991b70067dddab9aa69b1681fa80398ec8b1f6
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
Diffstat (limited to 'tests/auto/widgets')
-rw-r--r-- | tests/auto/widgets/util/qcompleter/tst_qcompleter.cpp | 95 |
1 files changed, 54 insertions, 41 deletions
diff --git a/tests/auto/widgets/util/qcompleter/tst_qcompleter.cpp b/tests/auto/widgets/util/qcompleter/tst_qcompleter.cpp index d0b9b0a14a..d7050033f3 100644 --- a/tests/auto/widgets/util/qcompleter/tst_qcompleter.cpp +++ b/tests/auto/widgets/util/qcompleter/tst_qcompleter.cpp @@ -178,6 +178,7 @@ private: tst_QCompleter::tst_QCompleter() : completer(0), completionColumn(0), columnCount(3) { treeWidget = new QTreeWidget; + treeWidget->move(100, 100); treeWidget->setColumnCount(columnCount); } @@ -1065,12 +1066,13 @@ void tst_QCompleter::modelDeletion() completer->setCompletionPrefix("i"); completer->setModel(listModel); QVERIFY(completer->completionCount() == 3); - QListView *view = new QListView; + QScopedPointer<QListView> view(new QListView); view->setModel(completer->completionModel()); delete listModel; + view->move(200, 200); view->show(); qApp->processEvents(); - delete view; + view.reset(); QVERIFY(completer->completionCount() == 0); QVERIFY(completer->currentRow() == -1); } @@ -1083,10 +1085,10 @@ void tst_QCompleter::multipleWidgets() completer.setCompletionMode(QCompleter::InlineCompletion); QWidget window; + window.move(200, 200); window.show(); QApplication::setActiveWindow(&window); QVERIFY(QTest::qWaitForWindowActive(&window)); - QVERIFY(qApp->activeWindow() == &window); QFocusEvent focusIn(QEvent::FocusIn); QFocusEvent focusOut(QEvent::FocusOut); @@ -1128,13 +1130,11 @@ void tst_QCompleter::focusIn() QCompleter completer(list); QWidget window; + window.move(200, 200); window.show(); - QTest::qWait(100); window.activateWindow(); QApplication::setActiveWindow(&window); - QTest::qWait(100); - - QTRY_COMPARE(qApp->activeWindow(), &window); + QVERIFY(QTest::qWaitForWindowActive(&window)); QComboBox *comboBox = new QComboBox(&window); comboBox->setEditable(true); @@ -1194,7 +1194,9 @@ void tst_QCompleter::disabledItems() QCompleter *completer = new QCompleter(model, &lineEdit); QSignalSpy spy(completer, SIGNAL(activated(QString))); lineEdit.setCompleter(completer); + lineEdit.move(200, 200); lineEdit.show(); + QVERIFY(QTest::qWaitForWindowExposed(&lineEdit)); QTest::keyPress(&lineEdit, Qt::Key_S); QTest::keyPress(&lineEdit, Qt::Key_U); @@ -1212,15 +1214,19 @@ void tst_QCompleter::task178797_activatedOnReturn() { QStringList words; words << "foobar1" << "foobar2"; - QLineEdit *ledit = new QLineEdit; + QLineEdit ledit; + setFrameless(&ledit); QCompleter *completer = new QCompleter(words); - ledit->setCompleter(completer); + ledit.setCompleter(completer); QSignalSpy spy(completer, SIGNAL(activated(QString))); QCOMPARE(spy.count(), 0); - ledit->show(); - QTest::keyClick(ledit, Qt::Key_F); + ledit.move(200, 200); + ledit.show(); + qApp->setActiveWindow(&ledit); + QVERIFY(QTest::qWaitForWindowActive(&ledit)); + QTest::keyClick(&ledit, Qt::Key_F); qApp->processEvents(); - QVERIFY(qApp->activePopupWidget()); + QTRY_VERIFY(qApp->activePopupWidget()); QTest::keyClick(qApp->activePopupWidget(), Qt::Key_Down); qApp->processEvents(); QTest::keyClick(qApp->activePopupWidget(), Qt::Key_Return); @@ -1289,19 +1295,20 @@ private slots: void tst_QCompleter::task246056_setCompletionPrefix() { - task246056_ComboBox *comboBox = new task246056_ComboBox; - setFrameless(comboBox); - QVERIFY(comboBox->completer()); - comboBox->addItem(""); - comboBox->addItem("a1"); - comboBox->addItem("a2"); - comboBox->show(); - comboBox->setFocus(); - QTest::qWait(100); - QTest::keyPress(comboBox, 'a'); - QTest::keyPress(comboBox->completer()->popup(), Qt::Key_Down); - QTest::keyPress(comboBox->completer()->popup(), Qt::Key_Down); - QTest::keyPress(comboBox->completer()->popup(), Qt::Key_Enter); // don't crash! + task246056_ComboBox comboBox; + setFrameless(&comboBox); + QVERIFY(comboBox.completer()); + comboBox.addItem(""); + comboBox.addItem("a1"); + comboBox.addItem("a2"); + comboBox.move(200, 200); + comboBox.show(); + QApplication::setActiveWindow(&comboBox); + QVERIFY(QTest::qWaitForWindowActive(&comboBox)); + QTest::keyPress(&comboBox, 'a'); + QTest::keyPress(comboBox.completer()->popup(), Qt::Key_Down); + QTest::keyPress(comboBox.completer()->popup(), Qt::Key_Down); + QTest::keyPress(comboBox.completer()->popup(), Qt::Key_Enter); // don't crash! } class task250064_TextEdit : public QTextEdit @@ -1326,39 +1333,41 @@ class task250064_Widget : public QWidget { Q_OBJECT public: - task250064_TextEdit *textEdit; - - task250064_Widget(task250064_TextEdit *textEdit) - : textEdit(textEdit) + task250064_Widget() : m_textEdit(new task250064_TextEdit) { QTabWidget *tabWidget = new QTabWidget; tabWidget->setFocusPolicy(Qt::ClickFocus); - tabWidget->addTab(textEdit, "untitled"); + tabWidget->addTab(m_textEdit, "untitled"); QVBoxLayout *layout = new QVBoxLayout(this); layout->addWidget(tabWidget); - textEdit->setPlainText("bla bla bla"); - textEdit->setFocus(); + m_textEdit->setPlainText("bla bla bla"); + m_textEdit->setFocus(); } void setCompletionModel() { - textEdit->completer->setModel(0); + m_textEdit->completer->setModel(0); } + + QTextEdit *textEdit() const { return m_textEdit; } + +private: + task250064_TextEdit *m_textEdit; }; void tst_QCompleter::task250064_lostFocus() { - task250064_TextEdit *textEdit = new task250064_TextEdit; - task250064_Widget *widget = new task250064_Widget(textEdit); - widget->show(); - QTest::qWait(100); - QTest::keyPress(textEdit, 'a'); - Qt::FocusPolicy origPolicy = textEdit->focusPolicy(); + task250064_Widget widget; + widget.show(); + QApplication::setActiveWindow(&widget); + QVERIFY(QTest::qWaitForWindowActive(&widget)); + QTest::keyPress(widget.textEdit(), 'a'); + Qt::FocusPolicy origPolicy = widget.textEdit()->focusPolicy(); QVERIFY(origPolicy != Qt::NoFocus); - widget->setCompletionModel(); - QCOMPARE(textEdit->focusPolicy(), origPolicy); + widget.setCompletionModel(); + QCOMPARE(widget.textEdit()->focusPolicy(), origPolicy); } void tst_QCompleter::task253125_lineEditCompletion_data() @@ -1391,6 +1400,7 @@ void tst_QCompleter::task253125_lineEditCompletion() QLineEdit edit; edit.setCompleter(completer); + edit.move(200, 200); edit.show(); edit.setFocus(); QApplication::setActiveWindow(&edit); @@ -1423,6 +1433,7 @@ void tst_QCompleter::task247560_keyboardNavigation() QLineEdit edit; edit.setCompleter(&completer); + edit.move(200, 200); edit.show(); edit.setFocus(); QApplication::setActiveWindow(&edit); @@ -1543,6 +1554,7 @@ void tst_QCompleter::QTBUG_14292_filesystem() comp.setModel(&model); edit.setCompleter(&comp); + edit.move(200, 200); edit.show(); QApplication::setActiveWindow(&edit); QVERIFY(QTest::qWaitForWindowActive(&edit)); @@ -1583,6 +1595,7 @@ void tst_QCompleter::QTBUG_14292_filesystem() QTRY_VERIFY(!comp.popup()->isVisible()); QWidget w; + w.move(400, 200); w.show(); QApplication::setActiveWindow(&w); QVERIFY(QTest::qWaitForWindowActive(&w)); |