File indexing completed on 2024-04-21 03:52:38
0001 /* 0002 This file is part of the kcalcore library. 0003 SPDX-FileCopyrightText: 2006 Allen Winter <winter@kde.org> 0004 0005 SPDX-License-Identifier: LGPL-2.0-or-later 0006 */ 0007 0008 #include "testalarm.h" 0009 #include "alarm.h" 0010 #include "event.h" 0011 0012 #include <QTest> 0013 QTEST_MAIN(AlarmTest) 0014 0015 using namespace KCalendarCore; 0016 0017 void AlarmTest::testValidity() 0018 { 0019 Event inc; 0020 Alarm alarm(&inc); 0021 alarm.setType(Alarm::Email); 0022 QVERIFY(alarm.type() == Alarm::Email); 0023 } 0024 0025 void AlarmTest::testCompare() 0026 { 0027 Event inc1; 0028 Event inc2; 0029 Alarm alarm1(&inc1); 0030 Alarm alarm2(&inc2); 0031 alarm1.setType(Alarm::Email); 0032 alarm2.setType(Alarm::Email); 0033 0034 alarm1.setMailAddress(Person(QStringLiteral("name"), QStringLiteral("email@foo.com"))); 0035 alarm2.setMailAddress(Person(QStringLiteral("name"), QStringLiteral("email@foo.com"))); 0036 0037 QVERIFY(alarm1 == alarm2); 0038 0039 alarm2.setMailAddress(Person(QStringLiteral("name"), QStringLiteral("email@foo.pt"))); 0040 QVERIFY(alarm1 != alarm2); 0041 0042 alarm2.setType(Alarm::Display); 0043 QVERIFY(alarm1 != alarm2); 0044 } 0045 0046 void AlarmTest::testAssignment() 0047 { 0048 Alarm alarm1(nullptr); 0049 alarm1.setType(Alarm::Display); 0050 Alarm alarm2(nullptr); 0051 QCOMPARE(alarm2.type(), Alarm::Invalid); 0052 alarm2 = alarm1; 0053 QVERIFY(alarm1 == alarm2); 0054 } 0055 0056 void AlarmTest::testCopyConstructor() 0057 { 0058 Alarm alarm1(nullptr); 0059 alarm1.setType(Alarm::Display); 0060 Alarm alarm3 {alarm1}; 0061 QVERIFY(alarm1 == alarm3); 0062 } 0063 0064 void AlarmTest::testSerializer_data() 0065 { 0066 QTest::addColumn<KCalendarCore::Alarm::Ptr>("alarm"); 0067 Alarm::Ptr a1 = Alarm::Ptr(new Alarm(nullptr)); 0068 Alarm::Ptr a2 = Alarm::Ptr(new Alarm(nullptr)); 0069 Alarm::Ptr a3 = Alarm::Ptr(new Alarm(nullptr)); 0070 Alarm::Ptr a4 = Alarm::Ptr(new Alarm(nullptr)); 0071 0072 a1->setType(Alarm::Email); 0073 a2->setType(Alarm::Procedure); 0074 a3->setType(Alarm::Display); 0075 a4->setType(Alarm::Audio); 0076 0077 a3->setDisplayAlarm(QStringLiteral("foo")); 0078 a3->setText(QStringLiteral("foo bar")); 0079 a4->setAudioFile(QStringLiteral("file.mp3")); 0080 a2->setProgramFile(QStringLiteral("/usr/bin/foo")); 0081 a2->setProgramArguments(QStringLiteral("--play")); 0082 0083 a1->setMailSubject(QStringLiteral("empty subject")); 0084 0085 Person::List persons; 0086 persons << Person(QStringLiteral("a"), QStringLiteral("a@a.pt")) << Person(QStringLiteral("b"), QStringLiteral("b@b.pt")); 0087 a1->setMailAddresses(persons); 0088 a1->setMailAttachment(QStringLiteral("foo attachment")); 0089 a1->setMailText(QStringLiteral("mail body")); 0090 0091 a1->setTime(QDateTime(QDate(2006, 8, 3), QTime(8, 0, 0), QTimeZone::UTC)); 0092 a2->setStartOffset(Duration(7, Duration::Days)); 0093 a3->setEndOffset(Duration(1, Duration::Days)); 0094 0095 a1->setSnoozeTime(Duration(1, Duration::Seconds)); 0096 a1->setRepeatCount(50); 0097 a1->setEnabled(true); 0098 a2->setEnabled(true); 0099 a3->setHasLocationRadius(false); 0100 a3->setLocationRadius(100); 0101 0102 QTest::newRow("alarm1") << a1; 0103 QTest::newRow("alarm2") << a2; 0104 QTest::newRow("alarm3") << a3; 0105 QTest::newRow("alarm4") << a4; 0106 } 0107 0108 void AlarmTest::testSerializer() 0109 { 0110 QFETCH(KCalendarCore::Alarm::Ptr, alarm); 0111 0112 QByteArray array; 0113 QDataStream stream(&array, QIODevice::WriteOnly); 0114 stream << alarm; // Serialize 0115 0116 Alarm::Ptr alarm2 = Alarm::Ptr(new Alarm(nullptr)); 0117 QDataStream stream2(&array, QIODevice::ReadOnly); 0118 stream2 >> alarm2; // deserialize 0119 QVERIFY(*alarm == *alarm2); 0120 } 0121 0122 #include "moc_testalarm.cpp"