kdelibs/kdeui/tests/ktimecomboboxtest.cpp
Ivailo Monev 82fc15f54b generic: use CMake moc instead of automoc4 by default
for compatibilty reasons automoc4 support is not removed but it
shall be in the future. automoc4 has not been maintained for a
while (last commit is from 2011) and the stable release is from
2009.

CMake version >= 2.8.6 provides the functionality for mocking so
I see no reason to not make use of it.
2015-02-27 07:40:26 +00:00

189 lines
6.4 KiB
C++

/*
Copyright 2011 John Layt <john@layt.net>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public License
along with this library; see the file COPYING.LIB. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#include "ktimecomboboxtest.h"
#include <QtCore/QTime>
#include "qtest_kde.h"
#include "kdebug.h"
#include "klineedit.h"
#include <ktimecombobox.h>
QTEST_KDEMAIN(KTimeComboBoxTest, GUI)
#include "moc_ktimecomboboxtest.cpp"
void KTimeComboBoxTest::testDefaults()
{
m_combo = new KTimeComboBox();
QCOMPARE(m_combo->time(), QTime(0, 0, 0, 0));
QCOMPARE(m_combo->minimumTime(), QTime(0, 0, 0, 0));
QCOMPARE(m_combo->maximumTime(), QTime(23, 59, 59, 999));
QCOMPARE(m_combo->isValid(), true);
QCOMPARE(m_combo->options(), KTimeComboBox::EditTime | KTimeComboBox::SelectTime);
QCOMPARE(m_combo->timeListInterval(), 15);
QCOMPARE(m_combo->displayFormat(), KLocale::TimeDefault);
delete m_combo;
}
void KTimeComboBoxTest::testValidNull()
{
m_combo = new KTimeComboBox(0);
QCOMPARE(m_combo->isValid(), true);
QCOMPARE(m_combo->isNull(), false);
m_combo->setTime(QTime());
QCOMPARE(m_combo->isValid(), false);
QCOMPARE(m_combo->isNull(), true);
m_combo->setTime(QTime(0, 0, 0));
m_combo->lineEdit()->setText("99:99");
QCOMPARE(m_combo->isValid(), false);
QCOMPARE(m_combo->isNull(), false);
delete m_combo;
}
void KTimeComboBoxTest::testTimeRange()
{
m_combo = new KTimeComboBox();
m_combo->setTime(QTime(2, 0, 0, 0));
QCOMPARE(m_combo->minimumTime(), QTime(0, 0, 0, 0));
QCOMPARE(m_combo->maximumTime(), QTime(23, 59, 59, 999));
QCOMPARE(m_combo->isValid(), true);
m_combo->setTimeRange(QTime(3, 0, 0, 0), QTime(22, 0, 0, 0));
QCOMPARE(m_combo->minimumTime(), QTime(3, 0, 0, 0));
QCOMPARE(m_combo->maximumTime(), QTime(22, 0, 0, 0));
QCOMPARE(m_combo->isValid(), false);
m_combo->setTime(QTime(23, 0, 0, 0));
QCOMPARE(m_combo->isValid(), false);
m_combo->setTime(QTime(12, 0, 0, 0));
QCOMPARE(m_combo->isValid(), true);
m_combo->setTime(QTime(3, 0, 0, 0));
QCOMPARE(m_combo->isValid(), true);
m_combo->setTime(QTime(22, 0, 0, 0));
QCOMPARE(m_combo->isValid(), true);
m_combo->setTime(QTime(2, 59, 59, 999));
QCOMPARE(m_combo->isValid(), false);
m_combo->setTime(QTime(22, 1, 0, 0));
QCOMPARE(m_combo->isValid(), false);
m_combo->setTimeRange(QTime(15, 0, 0, 0), QTime(5, 0, 0, 0));
QCOMPARE(m_combo->minimumTime(), QTime(3, 0, 0, 0));
QCOMPARE(m_combo->maximumTime(), QTime(22, 0, 0, 0));
m_combo->setMinimumTime(QTime(2, 0, 0, 0));
QCOMPARE(m_combo->minimumTime(), QTime(2, 0, 0, 0));
QCOMPARE(m_combo->maximumTime(), QTime(22, 0, 0, 0));
m_combo->setMaximumTime(QTime(21, 0, 0, 0));
QCOMPARE(m_combo->minimumTime(), QTime(2, 0, 0, 0));
QCOMPARE(m_combo->maximumTime(), QTime(21, 0, 0, 0));
delete m_combo;
}
void KTimeComboBoxTest::testTimeListInterval()
{
m_combo = new KTimeComboBox();
QCOMPARE(m_combo->timeListInterval(), 15);
m_combo-> setTimeListInterval(60);
QCOMPARE(m_combo->timeListInterval(), 60);
m_combo-> setTimeListInterval(7);
QCOMPARE(m_combo->timeListInterval(), 60);
m_combo-> setTimeListInterval(720);
QCOMPARE(m_combo->timeListInterval(), 720);
QList<QTime> list;
list << QTime(0, 0, 0) << QTime(12, 0, 0) << QTime(23, 59, 59, 999);
QCOMPARE(m_combo->timeList(), list);
m_combo->setTimeRange(QTime(4, 0, 0, 0), QTime(5, 0, 0, 0));
m_combo-> setTimeListInterval(30);
list.clear();
list << QTime(4, 0, 0) << QTime(4, 30, 0) << QTime(5, 0, 0, 0);
QCOMPARE(m_combo->timeList(), list);
m_combo->setTimeRange(QTime(4, 0, 0, 0), QTime(4, 59, 0, 0));
m_combo-> setTimeListInterval(30);
list.clear();
list << QTime(4, 0, 0) << QTime(4, 30, 0) << QTime(4, 59, 0, 0);
QCOMPARE(m_combo->timeList(), list);
delete m_combo;
}
void KTimeComboBoxTest::testTimeList()
{
m_combo = new KTimeComboBox();
QList<QTime> list;
// Test default list
QTime thisTime = QTime(0, 0, 0);
for (int i = 0; i < 1440; i = i + 15) {
list << thisTime.addSecs(i * 60);
}
list << QTime(23, 59, 59, 999);
QCOMPARE(m_combo->timeList(), list);
// Test basic list
list.clear();
list << QTime(3, 0, 0) << QTime(15, 16, 17);
m_combo->setTimeList(list);
QCOMPARE(m_combo->timeList(), list);
QCOMPARE(m_combo->minimumTime(), QTime(3, 0, 0));
QCOMPARE(m_combo->maximumTime(), QTime(15, 16, 17));
// Test sort input times
list.clear();
list << QTime(17, 16, 15) << QTime(4, 0, 0);
m_combo->setTimeList(list);
qSort(list);
QCOMPARE(m_combo->timeList(), list);
QCOMPARE(m_combo->minimumTime(), QTime(4, 0, 0));
QCOMPARE(m_combo->maximumTime(), QTime(17, 16, 15));
// Test ignore null QTime
list.clear();
list << QTime(3, 0, 0) << QTime(15, 16, 17) << QTime();
m_combo->setTimeList(list);
list.takeLast();
QCOMPARE(m_combo->timeList(), list);
QCOMPARE(m_combo->minimumTime(), QTime(3, 0, 0));
QCOMPARE(m_combo->maximumTime(), QTime(15, 16, 17));
delete m_combo;
}
void KTimeComboBoxTest::testOptions()
{
m_combo = new KTimeComboBox();
KTimeComboBox::Options options = KTimeComboBox::EditTime | KTimeComboBox::SelectTime;
QCOMPARE(m_combo->options(), options);
options = KTimeComboBox::EditTime | KTimeComboBox::WarnOnInvalid;
m_combo->setOptions(options);
QCOMPARE(m_combo->options(), options);
delete m_combo;
}
void KTimeComboBoxTest::testDisplayFormat()
{
m_combo = new KTimeComboBox();
KLocale::TimeFormatOptions format = KLocale::TimeDefault;
QCOMPARE(m_combo->displayFormat(), format);
format = KLocale::TimeWithoutSeconds;
m_combo->setDisplayFormat(format);
QCOMPARE(m_combo->displayFormat(), format);
delete m_combo;
}