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