void tst_QCalendarWidget::showPrevNext() { QFETCH(ShowFunc, function); QFETCH(QDate, dateOrigin); QFETCH(QDate, expectedDate); QCalendarWidget calWidget; calWidget.show(); QVERIFY(QTest::qWaitForWindowExposed(&calWidget)); if(!dateOrigin.isNull()) { calWidget.setSelectedDate(dateOrigin); calWidget.setCurrentPage(dateOrigin.year(), dateOrigin.month()); QCOMPARE(calWidget.yearShown(), dateOrigin.year()); QCOMPARE(calWidget.monthShown(), dateOrigin.month()); } else { QCOMPARE(calWidget.yearShown(), QDate::currentDate().year()); QCOMPARE(calWidget.monthShown(), QDate::currentDate().month()); } (calWidget.*function)(); QCOMPARE(calWidget.yearShown(), expectedDate.year()); QCOMPARE(calWidget.monthShown(), expectedDate.month()); // QTBUG-4058 QTest::qWait(20); QToolButton *button = calWidget.findChild<QToolButton *>("qt_calendar_prevmonth"); QTest::mouseClick(button, Qt::LeftButton); expectedDate = expectedDate.addMonths(-1); QCOMPARE(calWidget.yearShown(), expectedDate.year()); QCOMPARE(calWidget.monthShown(), expectedDate.month()); if(!dateOrigin.isNull()) { //the selectedDate should not have changed QCOMPARE(calWidget.selectedDate(), dateOrigin); } }
void tst_QCalendarWidget::buttonClickCheck() { QCalendarWidget object; QSize size = object.sizeHint(); object.setGeometry(0,0,size.width(), size.height()); object.show(); object.activateWindow(); QVERIFY(QTest::qWaitForWindowActive(&object)); QDate selectedDate(2005, 1, 1); //click on the month buttons int month = object.monthShown(); QToolButton *button = object.findChild<QToolButton *>("qt_calendar_prevmonth"); QTest::mouseClick(button, Qt::LeftButton); QCOMPARE(month > 1 ? month-1 : 12, object.monthShown()); button = object.findChild<QToolButton *>("qt_calendar_nextmonth"); QTest::mouseClick(button, Qt::LeftButton); QCOMPARE(month, object.monthShown()); button = object.findChild<QToolButton *>("qt_calendar_yearbutton"); QTest::mouseClick(button, Qt::LeftButton, Qt::NoModifier, button->rect().center(), 2); QVERIFY(!button->isVisible()); QSpinBox *spinbox = object.findChild<QSpinBox *>("qt_calendar_yearedit"); QTest::qWait(500); QTest::keyClick(spinbox, '2'); QTest::keyClick(spinbox, '0'); QTest::keyClick(spinbox, '0'); QTest::keyClick(spinbox, '6'); QTest::qWait(500); QWidget *widget = object.findChild<QWidget *>("qt_calendar_calendarview"); QTest::mouseMove(widget); QTest::mouseClick(widget, Qt::LeftButton); QCOMPARE(2006, object.yearShown()); object.setSelectedDate(selectedDate); object.showSelectedDate(); QTest::keyClick(widget, Qt::Key_Down); QVERIFY(selectedDate != object.selectedDate()); object.setDateRange(QDate(2006,1,1), QDate(2006,2,28)); object.setSelectedDate(QDate(2006,1,1)); object.showSelectedDate(); button = object.findChild<QToolButton *>("qt_calendar_prevmonth"); QTest::mouseClick(button, Qt::LeftButton); QCOMPARE(1, object.monthShown()); button = object.findChild<QToolButton *>("qt_calendar_nextmonth"); QTest::mouseClick(button, Qt::LeftButton); QCOMPARE(2, object.monthShown()); QTest::mouseClick(button, Qt::LeftButton); QCOMPARE(2, object.monthShown()); }