diff options
author | Lars Knoll <lars.knoll@nokia.com> | 2009-03-23 09:18:55 (GMT) |
---|---|---|
committer | Simon Hausmann <simon.hausmann@nokia.com> | 2009-03-23 09:18:55 (GMT) |
commit | e5fcad302d86d316390c6b0f62759a067313e8a9 (patch) | |
tree | c2afbf6f1066b6ce261f14341cf6d310e5595bc1 /tests/auto/qcalendarwidget | |
download | Qt-e5fcad302d86d316390c6b0f62759a067313e8a9.zip Qt-e5fcad302d86d316390c6b0f62759a067313e8a9.tar.gz Qt-e5fcad302d86d316390c6b0f62759a067313e8a9.tar.bz2 |
Long live Qt 4.5!
Diffstat (limited to 'tests/auto/qcalendarwidget')
-rw-r--r-- | tests/auto/qcalendarwidget/.gitignore | 1 | ||||
-rw-r--r-- | tests/auto/qcalendarwidget/qcalendarwidget.pro | 4 | ||||
-rw-r--r-- | tests/auto/qcalendarwidget/tst_qcalendarwidget.cpp | 244 |
3 files changed, 249 insertions, 0 deletions
diff --git a/tests/auto/qcalendarwidget/.gitignore b/tests/auto/qcalendarwidget/.gitignore new file mode 100644 index 0000000..db8a381 --- /dev/null +++ b/tests/auto/qcalendarwidget/.gitignore @@ -0,0 +1 @@ +tst_qcalendarwidget diff --git a/tests/auto/qcalendarwidget/qcalendarwidget.pro b/tests/auto/qcalendarwidget/qcalendarwidget.pro new file mode 100644 index 0000000..62b137b --- /dev/null +++ b/tests/auto/qcalendarwidget/qcalendarwidget.pro @@ -0,0 +1,4 @@ +load(qttest_p4) +SOURCES += tst_qcalendarwidget.cpp + + diff --git a/tests/auto/qcalendarwidget/tst_qcalendarwidget.cpp b/tests/auto/qcalendarwidget/tst_qcalendarwidget.cpp new file mode 100644 index 0000000..67a822f --- /dev/null +++ b/tests/auto/qcalendarwidget/tst_qcalendarwidget.cpp @@ -0,0 +1,244 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + + +#include <QtTest/QtTest> + +#include <qcalendarwidget.h> +#include <qtoolbutton.h> +#include <qspinbox.h> +#include <qmenu.h> +#include <qdebug.h> + + +//TESTED_CLASS= +//TESTED_FILES= + +class tst_QCalendarWidget : public QObject +{ + Q_OBJECT + +public: + tst_QCalendarWidget(); + virtual ~tst_QCalendarWidget(); +public slots: + void initTestCase(); + void cleanupTestCase(); + void init(); + void cleanup(); + +private slots: + void getSetCheck(); + void buttonClickCheck(); +}; + +// Testing get/set functions +void tst_QCalendarWidget::getSetCheck() +{ + QCalendarWidget object; + + //horizontal header formats + object.setHorizontalHeaderFormat(QCalendarWidget::NoHorizontalHeader); + QCOMPARE(QCalendarWidget::NoHorizontalHeader, object.horizontalHeaderFormat()); + object.setHorizontalHeaderFormat(QCalendarWidget::SingleLetterDayNames); + QCOMPARE(QCalendarWidget::SingleLetterDayNames, object.horizontalHeaderFormat()); + object.setHorizontalHeaderFormat(QCalendarWidget::ShortDayNames); + QCOMPARE(QCalendarWidget::ShortDayNames, object.horizontalHeaderFormat()); + object.setHorizontalHeaderFormat(QCalendarWidget::LongDayNames); + QCOMPARE(QCalendarWidget::LongDayNames, object.horizontalHeaderFormat()); + //vertical header formats + object.setVerticalHeaderFormat(QCalendarWidget::ISOWeekNumbers); + QCOMPARE(QCalendarWidget::ISOWeekNumbers, object.verticalHeaderFormat()); + object.setVerticalHeaderFormat(QCalendarWidget::NoVerticalHeader); + QCOMPARE(QCalendarWidget::NoVerticalHeader, object.verticalHeaderFormat()); + //maximum Date + QDate maxDate(2006, 7, 3); + object.setMaximumDate(maxDate); + QCOMPARE(maxDate, object.maximumDate()); + //minimum date + QDate minDate(2004, 7, 3); + object.setMinimumDate(minDate); + QCOMPARE(minDate, object.minimumDate()); + //day of week + object.setFirstDayOfWeek(Qt::Thursday); + QCOMPARE(Qt::Thursday, object.firstDayOfWeek()); + //grid visible + object.setGridVisible(true); + QVERIFY(object.isGridVisible()); + object.setGridVisible(false); + QVERIFY(!object.isGridVisible()); + //header visible + object.setHeaderVisible(true); + QVERIFY(object.isHeaderVisible()); + object.setHeaderVisible(false); + QVERIFY(!object.isHeaderVisible()); + //selection mode + QCOMPARE(QCalendarWidget::SingleSelection, object.selectionMode()); + object.setSelectionMode(QCalendarWidget::NoSelection); + QCOMPARE(QCalendarWidget::NoSelection, object.selectionMode()); + object.setSelectionMode(QCalendarWidget::SingleSelection); + QCOMPARE(QCalendarWidget::SingleSelection, object.selectionMode()); + //selected date + QDate selectedDate(2005, 7, 3); + QSignalSpy spy(&object, SIGNAL(selectionChanged())); + object.setSelectedDate(selectedDate); + QCOMPARE(spy.count(), 1); + QCOMPARE(selectedDate, object.selectedDate()); + //month and year + object.setCurrentPage(2004, 1); + QCOMPARE(1, object.monthShown()); + QCOMPARE(2004, object.yearShown()); + object.showNextMonth(); + QCOMPARE(2, object.monthShown()); + object.showPreviousMonth(); + QCOMPARE(1, object.monthShown()); + object.showNextYear(); + QCOMPARE(2005, object.yearShown()); + object.showPreviousYear(); + QCOMPARE(2004, object.yearShown()); + //date range + minDate = QDate(2006,1,1); + maxDate = QDate(2010,12,31); + object.setDateRange(minDate, maxDate); + QCOMPARE(maxDate, object.maximumDate()); + QCOMPARE(minDate, object.minimumDate()); + + //date should not go beyond the minimum. + selectedDate = minDate.addDays(-10); + object.setSelectedDate(selectedDate); + QCOMPARE(minDate, object.selectedDate()); + QVERIFY(selectedDate != object.selectedDate()); + //date should not go beyond the maximum. + selectedDate = maxDate.addDays(10); + object.setSelectedDate(selectedDate); + QCOMPARE(maxDate, object.selectedDate()); + QVERIFY(selectedDate != object.selectedDate()); + //show today + QDate today = QDate::currentDate(); + object.showToday(); + QCOMPARE(today.month(), object.monthShown()); + QCOMPARE(today.year(), object.yearShown()); + //slect a different date and move. + object.setSelectedDate(minDate); + object.showSelectedDate(); + QCOMPARE(minDate.month(), object.monthShown()); + QCOMPARE(minDate.year(), object.yearShown()); +} + +void tst_QCalendarWidget::buttonClickCheck() +{ + QCalendarWidget object; + QSize size = object.sizeHint(); + object.setGeometry(0,0,size.width(), size.height()); + object.show(); + + QRect rect = object.geometry(); + QDate selectedDate(2005, 1, 1); + //click on the month buttons + int month = object.monthShown(); + QToolButton *button = qFindChild<QToolButton *>(&object, "qt_calendar_prevmonth"); + QTest::mouseClick(button, Qt::LeftButton); + QCOMPARE(month > 1 ? month-1 : 12, object.monthShown()); + button = qFindChild<QToolButton *>(&object, "qt_calendar_nextmonth"); + QTest::mouseClick(button, Qt::LeftButton); + QCOMPARE(month, object.monthShown()); + + button = qFindChild<QToolButton *>(&object, "qt_calendar_yearbutton"); + QTest::mouseClick(button, Qt::LeftButton); + QVERIFY(!button->isVisible()); + QSpinBox *spinbox = qFindChild<QSpinBox *>(&object, "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 = qFindChild<QWidget *>(&object, "qt_calendar_calendarview"); + QTest::mouseMove(widget); + QTest::mouseClick(widget, Qt::LeftButton, 0, QPoint(), 50); + 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 = qFindChild<QToolButton *>(&object, "qt_calendar_prevmonth"); + QTest::mouseClick(button, Qt::LeftButton); + QCOMPARE(1, object.monthShown()); + + button = qFindChild<QToolButton *>(&object, "qt_calendar_nextmonth"); + QTest::mouseClick(button, Qt::LeftButton); + QCOMPARE(2, object.monthShown()); + QTest::mouseClick(button, Qt::LeftButton); + QCOMPARE(2, object.monthShown()); + +} + + +tst_QCalendarWidget::tst_QCalendarWidget() +{ +} + +tst_QCalendarWidget::~tst_QCalendarWidget() +{ +} + +void tst_QCalendarWidget::initTestCase() +{ +} + +void tst_QCalendarWidget::cleanupTestCase() +{ +} + +void tst_QCalendarWidget::init() +{ +} + +void tst_QCalendarWidget::cleanup() +{ +} + +QTEST_MAIN(tst_QCalendarWidget) +#include "tst_qcalendarwidget.moc" |