Page MenuHomePhorge

bindingstest.cpp
No OneTemporary

Authored By
Unknown
Size
5 KB
Referenced Files
None
Subscribers
None

bindingstest.cpp

#include "bindingstest.h"
#include <QObject>
#include <QtTest/QtTest>
#include "bindings/iCalendar-props.hxx"
#include "bindings/iCalendar-valtypes.hxx"
#include "bindings/kolabformat.hxx"
#include <iostream>
#include <xercesc/dom/DOMException.hpp>
#include <xercesc/dom/DOMImplementation.hpp>
#include <lib/kolabformat.h>
#include <kdebug.h>
namespace QTest {
template<>
char *toString(const Kolab::DateTime &dt)
{
QByteArray ba = "DateTime(";
ba += QByteArray::number(dt.year()) + ", " + QByteArray::number(dt.month())+ ", " + QByteArray::number(dt.day()) + ", ";
ba += QByteArray::number(dt.hour()) + ", " + QByteArray::number(dt.minute()) + ", " + QByteArray::number(dt.second())+ ", ";
ba += QString(dt.isUTC()?QString("UTC"):QString("TZ: "+QString::fromStdString(dt.timezone()))).toAscii();
ba += ")";
return qstrdup(ba.data());
}
template<>
char *toString(const std::string &s)
{
QByteArray ba = "string(";
ba += QString::fromStdString(s).toAscii();
ba += ")";
return qstrdup(ba.data());
}
}
void BindingsTest::readEvent()
{
boost::shared_ptr<Kolab::Event> event = Kolab::readKolabEvent("../../tests/testfiles/icalEvent.xml", true);
QVERIFY(event);
QCOMPARE(event->created(), Kolab::DateTime(2006,2,6,0,11,21,true));
QCOMPARE(event->start(), Kolab::DateTime("US/Eastern",2006,1,2,12,0,0));
const Kolab::RecurrenceRule &rrule = event->recurrenceRule();
QCOMPARE(rrule.frequency(), Kolab::RecurrenceRule::Daily);
QCOMPARE(rrule.count(), 5);
QCOMPARE(rrule.interval(), 1);
QCOMPARE(event->summary(), std::string("Event #2"));
}
void BindingsTest::writeEvent()
{
Kolab::Event event;
event.setStart(Kolab::DateTime("US/Eastern", 2006,1,6,12,0,0));
event.setEnd(Kolab::DateTime("US/Eastern", 2006,1,8,12,0,0));
Kolab::RecurrenceRule rrule;
rrule.setFrequency(Kolab::RecurrenceRule::Daily);
rrule.setInterval(3);
rrule.setCount(5);
event.setRecurrenceRule(rrule);
std::cout << Kolab::writeKolabEvent(event) << std::endl;
}
void BindingsTest::roundtripEvent()
{
Kolab::Event event;
event.setStart(Kolab::DateTime("US/Eastern", 2006,1,6,12,0,0));
event.setEnd(Kolab::DateTime("US/Eastern", 2006,1,8,12,0,0));
Kolab::RecurrenceRule rrule;
rrule.setFrequency(Kolab::RecurrenceRule::Daily);
rrule.setInterval(3);
rrule.setCount(5);
event.setRecurrenceRule(rrule);
std::string result = Kolab::writeKolabEvent(event);
std::cout << result << std::endl;
}
void BindingsTest::roundtripReverseEvent()
{
boost::shared_ptr<Kolab::Event> event = Kolab::readKolabEvent("../../tests/testfiles/icalEvent.xml", true);
kDebug() << "-------------------";
std::cout << Kolab::writeKolabEvent(*event) << std::endl;
kDebug() << "-------------------";
}
void BindingsTest::BenchmarkRoundtrip()
{
boost::shared_ptr<Kolab::Event> event = Kolab::readKolabEvent("../../tests/testfiles/icalEvent.xml", true);
std::string result;
QBENCHMARK {
result = Kolab::writeKolabEvent(*event);
Kolab::readKolabEvent(result, false);
}
}
// void BindingsTest::eventCompletness_data()
void BindingsTest::eventCompletness()
{
Kolab::Event ev;
ev.setUid("UID");
ev.setCreated(Kolab::DateTime(2006,1,6,12,0,0)); //UTC
ev.setLastModified(Kolab::DateTime(2006,1,6,12,0,0));
ev.setSequence(1);
ev.setClassification(Kolab::Confidential);
ev.addCategory("Category");
ev.setStart(Kolab::DateTime("US/Eastern", 2006,1,6,12,0,0));
ev.setEnd(Kolab::DateTime("US/Eastern", 2006,1,8,12,0,0));
//TODO duration
ev.setTransparency(true);
Kolab::RecurrenceRule rule;
rule.setFrequency(Kolab::RecurrenceRule::Daily);
rule.setCount(5);
ev.setRecurrenceRule(rule);
ev.addRecurrenceDate(Kolab::DateTime("US/Eastern", 2006,1,6,12,0,0));
ev.addExceptionDate(Kolab::DateTime("US/Eastern", 2006,1,6,12,0,0));
ev.setRecurrenceID(Kolab::DateTime("US/Eastern", 2006,1,6,12,0,0), false);
ev.setSummary("summary");
ev.setDescription("description");
ev.setPriority(3);
ev.setStatus(Kolab::Confirmed);
ev.setLocation("location");
ev.setOrganizer("email","organizer");
//Attendee
//attach
//x-prop
std::string result = Kolab::writeKolabEvent(ev);
std::cout << result << endl;
boost::shared_ptr<Kolab::Event> e = Kolab::readKolabEvent(result, false);
const Kolab::Event &re = *e;
QCOMPARE(ev.uid(), re.uid());
QCOMPARE(ev.created(), re.created());
QCOMPARE(ev.lastModified(), re.lastModified());
QCOMPARE(ev.sequence(), re.sequence());
QCOMPARE(ev.classification(), re.classification());
QCOMPARE(ev.categories().size(), re.categories().size());
QCOMPARE(ev.categories().at(0), re.categories().at(0));
QCOMPARE(ev.start(), re.start());
QCOMPARE(ev.end(), re.end());
QCOMPARE(ev.transparency(), re.transparency());
// QCOMPARE(ev.recurrenceRule(), re.recurrenceRule());
QCOMPARE(ev.recurrenceDates().size(), re.recurrenceDates().size());
QCOMPARE(ev.recurrenceDates().at(0), re.recurrenceDates().at(0));
QCOMPARE(ev.exceptionDates().size(), re.exceptionDates().size());
QCOMPARE(ev.exceptionDates().at(0), re.exceptionDates().at(0));
QCOMPARE(ev.recurrenceID(), re.recurrenceID());
QCOMPARE(ev.summary(), re.summary());
QCOMPARE(ev.description(), re.description());
QCOMPARE(ev.priority(), re.priority());
QCOMPARE(ev.status(), re.status());
QCOMPARE(ev.location(), re.location());
}
QTEST_MAIN( BindingsTest )
#include "bindingstest.moc"

File Metadata

Mime Type
text/x-c++
Expires
Sat, Apr 4, 8:00 AM (1 w, 5 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
18823111
Default Alt Text
bindingstest.cpp (5 KB)

Event Timeline