void tst_storage::tst_alldayUtc() { // test event saved with UTC time auto event = KCalCore::Event::Ptr(new KCalCore::Event); QDate startDate(2013, 12, 1); event->setDtStart(KDateTime(startDate, QTime(), KDateTime::UTC)); event->setAllDay(true); event->setSummary("test event utc"); QCOMPARE(event->allDay(), true); m_calendar->addEvent(event, NotebookId); m_storage->save(); QString uid = event->uid(); reloadDb(); auto fetchedEvent = m_calendar->event(uid); QVERIFY(fetchedEvent.data()); QVERIFY(fetchedEvent->dtStart().isUtc()); KDateTime localStart = fetchedEvent->dtStart().toLocalZone(); QVERIFY(localStart.time() == QTime(2, 0)); KDateTime localEnd = fetchedEvent->dtEnd().toLocalZone(); QVERIFY(localEnd.time() == QTime(2, 0)); QCOMPARE(localEnd.date(), localStart.date().addDays(1)); }
void tst_storage::tst_rawEvents() { // TODO: Should split tests if making more cases outside storage auto event = KCalCore::Event::Ptr(new KCalCore::Event); // NOTE: no other events should be made happening this day QDate startDate(2010, 12, 1); event->setDtStart(KDateTime(startDate, QTime(12, 0), KDateTime::ClockTime)); event->setDtEnd(KDateTime(startDate, QTime(13, 0), KDateTime::ClockTime)); KCalCore::Recurrence *recurrence = event->recurrence(); recurrence->setDaily(1); recurrence->setStartDateTime(event->dtStart()); m_calendar->addEvent(event, NotebookId); m_storage->save(); QString uid = event->uid(); reloadDb(); auto fetchEvent = m_calendar->event(uid); QVERIFY(fetchEvent); KCalCore::Recurrence *fetchRecurrence = fetchEvent->recurrence(); QVERIFY(fetchRecurrence); // should return occurrence for both days mKCal::ExtendedCalendar::ExpandedIncidenceList events = m_calendar->rawExpandedEvents(startDate, startDate.addDays(1), false, false, KDateTime::Spec(KDateTime::LocalZone)); QCOMPARE(events.size(), 2); }
void tst_storage::tst_allday() { auto event = KCalCore::Event::Ptr(new KCalCore::Event); QFETCH(QDate, startDate); QFETCH(int, days); event->setDtStart(KDateTime(startDate, QTime(), KDateTime::ClockTime)); event->setAllDay(true); if (days) { event->setDtEnd(KDateTime(startDate.addDays(days), QTime(), KDateTime::ClockTime)); } event->setSummary("test event"); QCOMPARE(event->allDay(), true); QCOMPARE(event->dtStart().date(), startDate); if (days) { QCOMPARE(event->dateEnd(), startDate.addDays(days)); QCOMPARE(event->hasEndDate(), true); QVERIFY(event->dateEnd() > event->dtStart().date()); } else { QCOMPARE(event->dateEnd(), startDate); QCOMPARE(event->hasEndDate(), false); } m_calendar->addEvent(event, NotebookId); m_storage->save(); QString uid = event->uid(); reloadDb(); auto fetchedEvent = m_calendar->event(uid); QVERIFY(fetchedEvent.data()); QCOMPARE(fetchedEvent->allDay(), true); QCOMPARE(fetchedEvent->dtStart().date(), startDate); QTime time = fetchedEvent->dtStart().time(); QVERIFY(time == QTime() || time == QTime(0, 0)); QTime localTime = fetchedEvent->dtStart().toLocalZone().time(); QVERIFY(localTime == QTime() || localTime == QTime(0, 0)); if (days) { QCOMPARE(fetchedEvent->dateEnd(), startDate.addDays(days)); QCOMPARE(fetchedEvent->hasEndDate(), true); QVERIFY(event->dateEnd() > event->dtStart().date()); } else { QCOMPARE(fetchedEvent->dateEnd(), startDate); QCOMPARE(fetchedEvent->hasEndDate(), false); } }
bool wxCalendarCtrlBase::SetHolidayAttrs() { if ( !HasFlag(wxCAL_SHOW_HOLIDAYS) ) return false; ResetHolidayAttrs(); wxDateTime::Tm tm = GetDate().GetTm(); wxDateTime dtStart(1, tm.mon, tm.year), dtEnd = dtStart.GetLastMonthDay(); wxDateTimeArray hol; wxDateTimeHolidayAuthority::GetHolidaysInRange(dtStart, dtEnd, hol); const size_t count = hol.GetCount(); for ( size_t n = 0; n < count; n++ ) { SetHoliday(hol[n].GetDay()); } return true; }
void COXTreeCal::Init(HTREEITEM hItem,int iItem,int iSubItem) { m_iItem= iItem; m_iSubItem = iSubItem; COXTreeCtrl *pTreeCtrl = (COXTreeCtrl*) GetParent(); CStringArray& sa = pTreeCtrl->GetItemTextEx(hItem,iSubItem); m_wndEdit.SetWindowText(pTreeCtrl->GetItemText(hItem,iSubItem)); if(sa.GetSize() == 0) return; COleDateTime dtStart(0,0,0,0,0,0); COleDateTime dtEnd(9999,12,31,0,0,0); if(sa.GetSize() > 0) { CString sFirstDate = sa[0]; dtStart.ParseDateTime(sFirstDate); } if(sa.GetSize() > 1) { CString sEndDate = sa[1]; dtEnd.ParseDateTime(sEndDate); } SetDateRange(dtStart,dtEnd); }
void tst_storage::tst_alldayRecurrence() { auto event = KCalCore::Event::Ptr(new KCalCore::Event); QDate startDate(2013, 12, 1); event->setDtStart(KDateTime(startDate, QTime(), KDateTime::ClockTime)); event->setAllDay(true); KCalCore::Recurrence *recurrence = event->recurrence(); recurrence->setWeekly(1); recurrence->setStartDateTime(event->dtStart()); m_calendar->addEvent(event, NotebookId); m_storage->save(); QString uid = event->uid(); reloadDb(); auto fetchEvent = m_calendar->event(uid); QVERIFY(fetchEvent); KCalCore::Recurrence *fetchRecurrence = fetchEvent->recurrence(); QVERIFY(fetchRecurrence); KDateTime match = recurrence->getNextDateTime(KDateTime(startDate)); QCOMPARE(match, KDateTime(startDate.addDays(7), QTime(), KDateTime::ClockTime)); }