tests/auto/qspinbox/tst_qspinbox.cpp
changeset 3 41300fa6a67c
parent 0 1918ee327afb
child 4 3b1da2848fc7
equal deleted inserted replaced
2:56cd8111b7f7 3:41300fa6a67c
   143 
   143 
   144     void specialValue();
   144     void specialValue();
   145     void textFromValue();
   145     void textFromValue();
   146 
   146 
   147     void sizeHint();
   147     void sizeHint();
       
   148 
       
   149     void taskQTBUG_5008_textFromValueAndValidate();
   148 
   150 
   149 public slots:
   151 public slots:
   150     void valueChangedHelper(const QString &);
   152     void valueChangedHelper(const QString &);
   151     void valueChangedHelper(int);
   153     void valueChangedHelper(int);
   152 private:
   154 private:
   754     QApplication::setActiveWindow(testFocusWidget);
   756     QApplication::setActiveWindow(testFocusWidget);
   755     QTest::qWaitForWindowShown(testFocusWidget);
   757     QTest::qWaitForWindowShown(testFocusWidget);
   756     box->activateWindow();
   758     box->activateWindow();
   757     box->setFocus();
   759     box->setFocus();
   758 
   760 
   759     QTRY_COMPARE(qApp->focusWidget(), box);
   761     QTRY_COMPARE(qApp->focusWidget(), (QWidget *)box);
   760 
   762 
   761     QSignalSpy editingFinishedSpy1(box, SIGNAL(editingFinished()));
   763     QSignalSpy editingFinishedSpy1(box, SIGNAL(editingFinished()));
   762     QSignalSpy editingFinishedSpy2(box2, SIGNAL(editingFinished()));
   764     QSignalSpy editingFinishedSpy2(box2, SIGNAL(editingFinished()));
   763 
   765 
   764     box->setFocus();
   766     box->setFocus();
  1002     QTRY_VERIFY(spinBox->sizeHintRequests > 0);
  1004     QTRY_VERIFY(spinBox->sizeHintRequests > 0);
  1003 
  1005 
  1004     delete widget;
  1006     delete widget;
  1005 }
  1007 }
  1006 
  1008 
       
  1009 void tst_QSpinBox::taskQTBUG_5008_textFromValueAndValidate()
       
  1010 {
       
  1011     class DecoratedSpinBox : public QSpinBox
       
  1012     {
       
  1013     public:
       
  1014         DecoratedSpinBox()
       
  1015         {
       
  1016             setLocale(QLocale::French);
       
  1017             setMaximum(100000000);
       
  1018             setValue(1000000);
       
  1019         }
       
  1020 
       
  1021         QLineEdit *lineEdit() const
       
  1022         {
       
  1023             return QSpinBox::lineEdit();
       
  1024         }
       
  1025 
       
  1026         //we use the French delimiters here
       
  1027         QString textFromValue (int value) const
       
  1028         {
       
  1029             return locale().toString(value);
       
  1030         }
       
  1031 
       
  1032     } spinbox;
       
  1033     spinbox.show();
       
  1034     spinbox.activateWindow();
       
  1035     spinbox.setFocus();
       
  1036     QApplication::setActiveWindow(&spinbox);
       
  1037     QTest::qWaitForWindowShown(&spinbox);
       
  1038     QTRY_VERIFY(spinbox.hasFocus());
       
  1039     QTRY_COMPARE(static_cast<QWidget *>(&spinbox), QApplication::activeWindow());
       
  1040     QCOMPARE(spinbox.text(), spinbox.locale().toString(spinbox.value()));
       
  1041     spinbox.lineEdit()->setCursorPosition(2); //just after the first thousand separator
       
  1042     QTest::keyClick(0, Qt::Key_0); // let's insert a 0
       
  1043     QCOMPARE(spinbox.value(), 10000000); //it's been multiplied by 10
       
  1044     spinbox.clearFocus(); //make sure the value is correctly formatted
       
  1045     QCOMPARE(spinbox.text(), spinbox.locale().toString(spinbox.value()));
       
  1046 }
       
  1047 
       
  1048 
  1007 QTEST_MAIN(tst_QSpinBox)
  1049 QTEST_MAIN(tst_QSpinBox)
  1008 #include "tst_qspinbox.moc"
  1050 #include "tst_qspinbox.moc"