summaryrefslogtreecommitdiffstats
path: root/tests/auto/qspinbox
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/qspinbox')
-rw-r--r--tests/auto/qspinbox/tst_qspinbox.cpp62
1 files changed, 57 insertions, 5 deletions
diff --git a/tests/auto/qspinbox/tst_qspinbox.cpp b/tests/auto/qspinbox/tst_qspinbox.cpp
index 79e3ca71e1..4829b6bca6 100644
--- a/tests/auto/qspinbox/tst_qspinbox.cpp
+++ b/tests/auto/qspinbox/tst_qspinbox.cpp
@@ -65,6 +65,7 @@
#include <QDoubleSpinBox>
#include <QVBoxLayout>
#include <QKeySequence>
+#include <QStackedWidget>
#include <QDebug>
#include "../../shared/util.h"
@@ -139,9 +140,12 @@ private slots:
void removeAll();
void startWithDash();
void undoRedo();
-
+
void specialValue();
void textFromValue();
+
+ void sizeHint();
+
public slots:
void valueChangedHelper(const QString &);
void valueChangedHelper(int);
@@ -241,6 +245,12 @@ void tst_QSpinBox::getSetCheck()
QCOMPARE(0.0, obj2.value());
obj2.setValue(1.0);
QCOMPARE(1.0, obj2.value());
+
+ // Make sure we update line edit geometry when updating
+ // buttons - see task 235747
+ QRect oldEditGeometry = obj1.childrenRect();
+ obj1.setButtonSymbols(QAbstractSpinBox::NoButtons);
+ QVERIFY(obj1.childrenRect() != oldEditGeometry);
}
tst_QSpinBox::tst_QSpinBox()
@@ -740,11 +750,13 @@ void tst_QSpinBox::editingFinished()
QSpinBox *box2 = new QSpinBox(testFocusWidget);
layout->addWidget(box2);
+ testFocusWidget->show();
+ QApplication::setActiveWindow(testFocusWidget);
+ QTest::qWaitForWindowShown(testFocusWidget);
box->activateWindow();
- QTest::qWait(1000);//qApp->processEvents();
box->setFocus();
- QTRY_VERIFY(qApp->focusWidget() == box);
+ QTRY_COMPARE(qApp->focusWidget(), box);
QSignalSpy editingFinishedSpy1(box, SIGNAL(editingFinished()));
QSignalSpy editingFinishedSpy2(box2, SIGNAL(editingFinished()));
@@ -900,7 +912,7 @@ void tst_QSpinBox::undoRedo()
void tst_QSpinBox::specialValue()
{
QString specialText="foo";
-
+
QWidget topWidget;
QVBoxLayout layout(&topWidget);
SpinBox spin(&topWidget);
@@ -927,7 +939,7 @@ void tst_QSpinBox::specialValue()
QCOMPARE(spin.text(), QString("0"));
QTest::keyClick(&spin, Qt::Key_Return);
QCOMPARE(spin.text(), specialText);
-
+
spin.setValue(50);
QTest::keyClick(&spin, Qt::Key_Return);
QTest::keyClick(&spin, '0');
@@ -950,5 +962,45 @@ void tst_QSpinBox::textFromValue()
QCOMPARE(spinBox.textFromValue(INT_MIN), QString::number(INT_MIN));
}
+class sizeHint_SpinBox : public QSpinBox
+{
+public:
+ QSize sizeHint() const
+ {
+ ++sizeHintRequests;
+ return QSpinBox::sizeHint();
+ }
+ mutable int sizeHintRequests;
+};
+
+void tst_QSpinBox::sizeHint()
+{
+ QWidget *widget = new QWidget;
+ QHBoxLayout *layout = new QHBoxLayout(widget);
+ sizeHint_SpinBox *spinBox = new sizeHint_SpinBox;
+ layout->addWidget(spinBox);
+ widget->show();
+ QTest::qWait(100);
+
+ // Prefix
+ spinBox->sizeHintRequests = 0;
+ spinBox->setPrefix(QLatin1String("abcdefghij"));
+ qApp->processEvents();
+ QVERIFY(spinBox->sizeHintRequests > 0);
+
+ // Suffix
+ spinBox->sizeHintRequests = 0;
+ spinBox->setSuffix(QLatin1String("abcdefghij"));
+ qApp->processEvents();
+ QVERIFY(spinBox->sizeHintRequests > 0);
+
+ // Range
+ spinBox->sizeHintRequests = 0;
+ spinBox->setRange(0, 1234567890);
+ spinBox->setValue(spinBox->maximum());
+ qApp->processEvents();
+ QVERIFY(spinBox->sizeHintRequests > 0);
+}
+
QTEST_MAIN(tst_QSpinBox)
#include "tst_qspinbox.moc"