diff options
Diffstat (limited to 'tests/auto/widgets/widgets/qspinbox/tst_qspinbox.cpp')
-rw-r--r-- | tests/auto/widgets/widgets/qspinbox/tst_qspinbox.cpp | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/tests/auto/widgets/widgets/qspinbox/tst_qspinbox.cpp b/tests/auto/widgets/widgets/qspinbox/tst_qspinbox.cpp index 07a2fd859d..5ee9160916 100644 --- a/tests/auto/widgets/widgets/qspinbox/tst_qspinbox.cpp +++ b/tests/auto/widgets/widgets/qspinbox/tst_qspinbox.cpp @@ -145,6 +145,8 @@ private slots: void wheelEvents(); + void adaptiveDecimalStep(); + public slots: void valueChangedHelper(const QString &); void valueChangedHelper(int); @@ -1240,5 +1242,84 @@ void tst_QSpinBox::wheelEvents() #endif } +void tst_QSpinBox::adaptiveDecimalStep() +{ + SpinBox spinBox; + spinBox.setRange(-100000, 100000); + spinBox.setStepType(SpinBox::StepType::AdaptiveDecimalStepType); + + // Positive values + + spinBox.setValue(0); + + // Go from 0 to 100 + for (int i = 0; i < 100; i++) { + QCOMPARE(spinBox.value(), i); + spinBox.stepBy(1); + } + + // Go from 100 to 1000 + for (int i = 100; i < 1000; i += 10) { + QCOMPARE(spinBox.value(), i); + spinBox.stepBy(1); + } + + // Go from 1000 to 10000 + for (int i = 1000; i < 10000; i += 100) { + QCOMPARE(spinBox.value(), i); + spinBox.stepBy(1); + } + + // Test decreasing the values now + + // Go from 10000 down to 1000 + for (int i = 10000; i > 1000; i -= 100) { + QCOMPARE(spinBox.value(), i); + spinBox.stepBy(-1); + } + + // Go from 1000 down to 100 + for (int i = 1000; i > 100; i -= 10) { + QCOMPARE(spinBox.value(), i); + spinBox.stepBy(-1); + } + + // Negative values + + spinBox.setValue(0); + + // Go from 0 to -100 + for (int i = 0; i > -100; i--) { + QCOMPARE(spinBox.value(), i); + spinBox.stepBy(-1); + } + + // Go from -100 to -1000 + for (int i = -100; i > -1000; i -= 10) { + QCOMPARE(spinBox.value(), i); + spinBox.stepBy(-1); + } + + // Go from 1000 to 10000 + for (int i = -1000; i > -10000; i -= 100) { + QCOMPARE(spinBox.value(), i); + spinBox.stepBy(-1); + } + + // Test increasing the values now + + // Go from -10000 up to -1000 + for (int i = -10000; i < -1000; i += 100) { + QCOMPARE(spinBox.value(), i); + spinBox.stepBy(1); + } + + // Go from -1000 up to -100 + for (int i = -1000; i < -100; i += 10) { + QCOMPARE(spinBox.value(), i); + spinBox.stepBy(1); + } +} + QTEST_MAIN(tst_QSpinBox) #include "tst_qspinbox.moc" |