Ejemplo n.º 1
0
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));
}
Ejemplo n.º 2
0
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);
}
Ejemplo n.º 3
0
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);
  }
}
Ejemplo n.º 4
0
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;
}
Ejemplo n.º 5
0
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);
}
Ejemplo n.º 6
0
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));
}