summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets
diff options
context:
space:
mode:
authorKent Hansen <kent.hansen@nokia.com>2012-03-23 13:36:29 +0100
committerKent Hansen <kent.hansen@nokia.com>2012-03-23 14:10:58 +0100
commit3b512ae142017f105f297467f74dc28d3cb9030a (patch)
tree9e131e23c01537f051851a1da9576c1e1ddf5ba2 /tests/auto/widgets
parente20c4730192f312881591fb50e571af0a88fe421 (diff)
parentf956f9a83603a3df5651e3238c24e8df37558d6e (diff)
Merge master into api_changes
Diffstat (limited to 'tests/auto/widgets')
-rw-r--r--tests/auto/widgets/dialogs/qcolordialog/tst_qcolordialog.cpp3
-rw-r--r--tests/auto/widgets/itemviews/qheaderview/tst_qheaderview.cpp27
-rw-r--r--tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp53
-rw-r--r--tests/auto/widgets/styles/qstyle/tst_qstyle.cpp4
-rw-r--r--tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp21
5 files changed, 78 insertions, 30 deletions
diff --git a/tests/auto/widgets/dialogs/qcolordialog/tst_qcolordialog.cpp b/tests/auto/widgets/dialogs/qcolordialog/tst_qcolordialog.cpp
index ff34b009e9..e6d3e56a43 100644
--- a/tests/auto/widgets/dialogs/qcolordialog/tst_qcolordialog.cpp
+++ b/tests/auto/widgets/dialogs/qcolordialog/tst_qcolordialog.cpp
@@ -156,9 +156,6 @@ void tst_QColorDialog::task247349_alpha()
dialog.setOption(QColorDialog::ShowAlphaChannel, true);
int alpha = 0x17;
dialog.setCurrentColor(QColor(0x01, 0x02, 0x03, alpha));
-#ifdef Q_OS_MAC
- QEXPECT_FAIL("", "Fails on Mac OS X, see QTBUG-24320", Abort);
-#endif
QCOMPARE(alpha, dialog.currentColor().alpha());
QCOMPARE(alpha, qAlpha(dialog.currentColor().rgba()));
}
diff --git a/tests/auto/widgets/itemviews/qheaderview/tst_qheaderview.cpp b/tests/auto/widgets/itemviews/qheaderview/tst_qheaderview.cpp
index 9ad71771c5..1158a9f06b 100644
--- a/tests/auto/widgets/itemviews/qheaderview/tst_qheaderview.cpp
+++ b/tests/auto/widgets/itemviews/qheaderview/tst_qheaderview.cpp
@@ -170,6 +170,7 @@ private slots:
void moveSectionAndReset();
void moveSectionAndRemove();
void saveRestore();
+ void defaultSectionSizeTest();
void defaultAlignment_data();
void defaultAlignment();
@@ -1625,6 +1626,32 @@ void tst_QHeaderView::saveRestore()
QVERIFY(s1 == s2);
}
+void tst_QHeaderView::defaultSectionSizeTest()
+{
+ // Setup
+ QTableView qtv;
+ QStandardItemModel amodel(4, 4);
+ qtv.setModel(&amodel);
+ QHeaderView *hv = qtv.verticalHeader();
+ const int defaultSize = 26;
+ hv->setDefaultSectionSize(defaultSize + 1); // Set it to a value different from defaultSize.
+
+ // no hidden Sections
+ hv->resizeSection(1, 0);
+ hv->setDefaultSectionSize(defaultSize);
+ QVERIFY(hv->sectionSize(1) == defaultSize);
+
+ // with hidden sections
+ hv->resizeSection(1, 0);
+ hv->hideSection(2);
+ hv->setDefaultSectionSize(defaultSize);
+
+ QVERIFY(hv->sectionSize(0) == defaultSize); // trivial case.
+ QVERIFY(hv->sectionSize(1) == defaultSize); // just sized 0. Now it should be 10
+ QVERIFY(hv->sectionSize(2) == 0); // section is hidden. It should not be resized.
+}
+
+
void tst_QHeaderView::defaultAlignment_data()
{
QTest::addColumn<int>("direction");
diff --git a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp
index 49c93f8f03..975c88db05 100644
--- a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp
+++ b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp
@@ -5103,6 +5103,27 @@ void tst_QWidget::multipleToplevelFocusCheck()
QTRY_COMPARE(QApplication::focusWidget(), (QWidget *)0);
}
+class FocusWidget: public QWidget
+{
+protected:
+ virtual bool event(QEvent *ev)
+ {
+ if (ev->type() == QEvent::FocusAboutToChange)
+ widgetDuringFocusAboutToChange = qApp->focusWidget();
+ return QWidget::event(ev);
+ }
+ virtual void focusOutEvent(QFocusEvent *)
+ {
+ widgetDuringFocusOut = qApp->focusWidget();
+ }
+
+public:
+ FocusWidget(QWidget *parent) : QWidget(parent), widgetDuringFocusAboutToChange(0), widgetDuringFocusOut(0) {}
+
+ QWidget *widgetDuringFocusAboutToChange;
+ QWidget *widgetDuringFocusOut;
+};
+
void tst_QWidget::setFocus()
{
{
@@ -5169,20 +5190,16 @@ void tst_QWidget::setFocus()
// window and children show, but window *is* active, children get focus
QWidget window;
- QWidget child1(&window);
+ FocusWidget child1(&window);
child1.setFocusPolicy(Qt::StrongFocus);
QWidget child2(&window);
child2.setFocusPolicy(Qt::StrongFocus);
window.show();
-#ifdef Q_WS_X11
- QApplication::setActiveWindow(&window);
- QTest::qWaitForWindowShown(&window);
-#else
window.activateWindow();
- QApplication::processEvents();
-#endif
+ QTest::qWaitForWindowShown(&window);
+ QTRY_VERIFY(qGuiApp->focusWindow());
child1.setFocus();
QTRY_VERIFY(child1.hasFocus());
@@ -5193,6 +5210,10 @@ void tst_QWidget::setFocus()
QVERIFY(child2.hasFocus());
QCOMPARE(window.focusWidget(), &child2);
QCOMPARE(QApplication::focusWidget(), &child2);
+
+ // focus changed in between the events
+ QCOMPARE(child1.widgetDuringFocusAboutToChange, &child1);
+ QCOMPARE(child1.widgetDuringFocusOut, &child2);
}
{
@@ -5200,12 +5221,9 @@ void tst_QWidget::setFocus()
QWidget window;
window.show();
-#ifdef Q_WS_X11
- QApplication::setActiveWindow(&window);
- QTest::qWaitForWindowShown(&window);
-#else
window.activateWindow();
-#endif
+ QTest::qWaitForWindowShown(&window);
+ QTRY_VERIFY(qGuiApp->focusWindow());
QWidget child1(&window);
child1.setFocusPolicy(Qt::StrongFocus);
@@ -5219,10 +5237,6 @@ void tst_QWidget::setFocus()
QCOMPARE(QApplication::focusWidget(), static_cast<QWidget *>(0));
child1.show();
-#ifdef Q_WS_X11
- QApplication::setActiveWindow(&child1);
- child1.activateWindow();
-#endif
QApplication::processEvents();
QTRY_VERIFY(child1.hasFocus());
QCOMPARE(window.focusWidget(), &child1);
@@ -5245,12 +5259,9 @@ void tst_QWidget::setFocus()
QWidget window;
window.show();
-#ifdef Q_WS_X11
- QApplication::setActiveWindow(&window);
- QTest::qWaitForWindowShown(&window);
-#else
window.activateWindow();
-#endif
+ QTest::qWaitForWindowShown(&window);
+ QTRY_VERIFY(qGuiApp->focusWindow());
QWidget child1(&window);
child1.setFocusPolicy(Qt::StrongFocus);
diff --git a/tests/auto/widgets/styles/qstyle/tst_qstyle.cpp b/tests/auto/widgets/styles/qstyle/tst_qstyle.cpp
index b96d3f7095..d9862affed 100644
--- a/tests/auto/widgets/styles/qstyle/tst_qstyle.cpp
+++ b/tests/auto/widgets/styles/qstyle/tst_qstyle.cpp
@@ -213,10 +213,10 @@ void tst_QStyle::testStyleFactory()
#endif
#ifdef Q_WS_WIN
if (QSysInfo::WindowsVersion >= QSysInfo::WV_XP &&
- QSysInfo::WindowsVersion < QSysInfo::WV_NT_based)
+ (QSysInfo::WindowsVersion & QSysInfo::WV_NT_based))
QVERIFY(keys.contains("WindowsXP"));
if (QSysInfo::WindowsVersion >= QSysInfo::WV_VISTA &&
- QSysInfo::WindowsVersion < QSysInfo::WV_NT_based)
+ (QSysInfo::WindowsVersion & QSysInfo::WV_NT_based))
QVERIFY(keys.contains("WindowsVista"));
#endif
diff --git a/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp b/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp
index 81dc940c00..f67f7ce1e8 100644
--- a/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp
+++ b/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp
@@ -3846,13 +3846,26 @@ void tst_QLineEdit::inputMethodSelection()
QCOMPARE(selectionSpy.count(), 1);
QCOMPARE(testWidget->selectionStart(), 0);
- QList<QInputMethodEvent::Attribute> attributes;
- attributes << QInputMethodEvent::Attribute(QInputMethodEvent::Selection, 12, 5, QVariant());
- QInputMethodEvent event("", attributes);
- QApplication::sendEvent(testWidget, &event);
+ // selection gained
+ {
+ QList<QInputMethodEvent::Attribute> attributes;
+ attributes << QInputMethodEvent::Attribute(QInputMethodEvent::Selection, 12, 5, QVariant());
+ QInputMethodEvent event("", attributes);
+ QApplication::sendEvent(testWidget, &event);
+ }
QCOMPARE(selectionSpy.count(), 2);
QCOMPARE(testWidget->selectionStart(), 12);
+
+ // selection removed
+ {
+ QList<QInputMethodEvent::Attribute> attributes;
+ attributes << QInputMethodEvent::Attribute(QInputMethodEvent::Selection, 0, 0, QVariant());
+ QInputMethodEvent event("", attributes);
+ QApplication::sendEvent(testWidget, &event);
+ }
+
+ QCOMPARE(selectionSpy.count(), 3);
}
void tst_QLineEdit::inputMethodTentativeCommit()