src/objectvalidation.cpp tests/validationtest.cpp tests/validationtest.h
Christian Mollekopf
mollekopf at kolabsys.com
Wed Oct 16 18:00:06 CEST 2013
src/objectvalidation.cpp | 4 +++-
tests/validationtest.cpp | 29 +++++++++++++++++++++++++++++
tests/validationtest.h | 1 +
3 files changed, 33 insertions(+), 1 deletion(-)
New commits:
commit cbf4dcc16b219658fde8bc6f9cf91cd11243e931
Author: Christian Mollekopf <mollekopf at kolabsys.com>
Date: Wed Oct 16 17:57:07 2013 +0200
Fixed todo timezone validation.
We can only compare timezones if start and due are set.
diff --git a/src/objectvalidation.cpp b/src/objectvalidation.cpp
index b451aed..e6a1464 100644
--- a/src/objectvalidation.cpp
+++ b/src/objectvalidation.cpp
@@ -100,7 +100,9 @@ void validate(const Todo& todo)
{
ASSERTVALID(todo.start());
ASSERTVALID(todo.due());
- ASSERTEQUAL(todo.start().timezone(), todo.due().timezone());
+ if (todo.start().isValid() && todo.due().isValid()) {
+ ASSERTEQUAL(todo.start().timezone(), todo.due().timezone());
+ }
}
void validate(const Journal& journal)
diff --git a/tests/validationtest.cpp b/tests/validationtest.cpp
index 97a928e..a1a1c04 100644
--- a/tests/validationtest.cpp
+++ b/tests/validationtest.cpp
@@ -39,6 +39,29 @@ void ValidationTest::testNoErrorOnValidEvent()
QCOMPARE(Kolab::error(), Kolab::NoError);
}
+void ValidationTest::testNoErrorOnValidTodo()
+{
+ {
+ Todo todo;
+ todo.setStart(cDateTime("Europe/Zurich", 2013,1,1,1,1,1));
+ writeTodo(todo);
+ QCOMPARE(Kolab::error(), Kolab::NoError);
+ }
+ {
+ Todo todo;
+ todo.setDue(cDateTime("Europe/Zurich", 2013,1,1,1,1,1));
+ writeTodo(todo);
+ QCOMPARE(Kolab::error(), Kolab::NoError);
+ }
+ {
+ Todo todo;
+ todo.setStart(cDateTime("Europe/Zurich", 2013,1,1,1,1,1));
+ todo.setDue(cDateTime("Europe/Zurich", 2013,1,1,1,1,1));
+ writeTodo(todo);
+ QCOMPARE(Kolab::error(), Kolab::NoError);
+ }
+}
+
void ValidationTest::testOlsonTimezone()
{
Event event;
@@ -54,6 +77,12 @@ void ValidationTest::testDifferentTimezones()
event.setEnd(cDateTime("Europe/London",2013,1,1,1,1,1));
writeEvent(event);
QCOMPARE(Kolab::error(), Kolab::Error);
+
+ Todo todo;
+ todo.setStart(cDateTime("Europe/Zurich",2013,1,1,1,1,1));
+ todo.setDue(cDateTime("Europe/London",2013,1,1,1,1,1));
+ writeTodo(todo);
+ QCOMPARE(Kolab::error(), Kolab::Error);
}
void ValidationTest::testUTCwithTimezone()
diff --git a/tests/validationtest.h b/tests/validationtest.h
index 4751ca0..552fa09 100644
--- a/tests/validationtest.h
+++ b/tests/validationtest.h
@@ -26,6 +26,7 @@ class ValidationTest: public QObject {
private slots:
void testErrorOnEmptyEvent();
void testNoErrorOnValidEvent();
+ void testNoErrorOnValidTodo();
void testOlsonTimezone();
void testDifferentTimezones();
void testUTCwithTimezone();
More information about the commits
mailing list