blob: d1830426164bd8ab91f46ff187882e3789fa1c8c [file] [log] [blame]
/*
* Copyright (C) 2009 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.providers.calendar;
import android.database.Cursor;
import android.net.Uri;
import android.text.format.Time;
/**
* Calendar Sync instrumentation tests. Testing creation of new events, deleting events,
* editing events.
*/
public class SyncCalendarTest extends CalendarSyncTestingBase {
private EventInfo normalEvent =
new EventInfo("normal0", "2008-12-01T00:00:00", "2008-12-02T00:00:00", false);
private EventInfo dailyRecurringEvent = new EventInfo("dailyEvent",
"daily from 5/1/2008 12am to 1am", "2008-10-01T00:00:00", "2008-10-01T01:00:00",
"FREQ=DAILY;WKST=SU", false);
private static final long ONE_HOUR_IN_MILLIS = 3600000;
@Override
protected void setUp() throws Exception {
super.setUp();
}
public void testCreateNewEvent() throws Exception {
int countBeforeNewEvent = getEventsCount();
insertEvent(normalEvent);
assertTrue("No new event was added. ", getEventsCount() > countBeforeNewEvent);
}
public void testCreateAndDeleteNewRecurringEvent() throws Exception {
syncCalendar();
int countBeforeNewEvent = getEventsCount();
Uri insertUri = insertEvent(dailyRecurringEvent);
assertTrue("A daily recurring event should have been created.",
getEventsCount() > countBeforeNewEvent);
deleteEvent(insertUri);
assertEquals("Daily recurring event should have been deleted.",
countBeforeNewEvent, getEventsCount());
}
public void testCreateAllDayEvent() throws Exception {
Time time = new Time();
time.setToNow();
long dtStart = time.toMillis(false);
long dtEnd = time.toMillis(false) + ONE_HOUR_IN_MILLIS;
EventInfo allDayEvent = new EventInfo("allday0", dtStart, dtEnd, true);
int countBeforeNewEvent = getEventsCount();
insertEvent(allDayEvent);
assertTrue("An all-day event should have been created.",
getEventsCount() > countBeforeNewEvent);
}
public void testEditEventTitle() throws Exception {
Cursor cursor;
cursor = mResolver.query(mEventsUri, null, null, null, null);
int countBeforeNewEvent = cursor.getCount();
cursor.moveToNext();
Time time = new Time();
time.setToNow();
String newTitle = cursor.getString(cursor.getColumnIndex("title")) + time.toString();
long dtStart = cursor.getLong(cursor.getColumnIndex("dtstart"));
long dtEnd = cursor.getLong(cursor.getColumnIndex("dtend"));
EventInfo event = new EventInfo(newTitle, dtStart, dtEnd, false);
long eventId = cursor.getLong(cursor.getColumnIndex("_id"));
editEvent(eventId, event);
cursor = mResolver.query(mEventsUri, null, null, null, null);
assertTrue("Events count should remain same.", getEventsCount() == countBeforeNewEvent);
while (cursor.moveToNext()) {
if (cursor.getLong(cursor.getColumnIndex("_id")) == eventId) {
assertEquals(cursor.getString(cursor.getColumnIndex("title")), newTitle);
break;
}
}
cursor.close();
}
public void testEditEventDate() throws Exception {
Cursor cursor;
cursor = mResolver.query(mEventsUri, null, null, null, null);
int countBeforeNewEvent = cursor.getCount();
cursor.moveToNext();
Time time = new Time();
String title = cursor.getString(cursor.getColumnIndex("title"));
long dtStart = cursor.getLong(cursor.getColumnIndex("dtstart"));
time.set(dtStart + 2 * ONE_HOUR_IN_MILLIS);
long newDtStart = time.toMillis(false);
time.set(dtStart + 3 * ONE_HOUR_IN_MILLIS);
long newDtEnd = time.toMillis(false);
EventInfo event = new EventInfo(title, newDtStart, newDtEnd, false);
long eventId = cursor.getLong(cursor.getColumnIndex("_id"));
editEvent(eventId, event);
cursor = mResolver.query(mEventsUri, null, null, null, null);
int countAfterNewEvent = cursor.getCount();
assertTrue("Events count should remain same.", countAfterNewEvent == countBeforeNewEvent);
while (cursor.moveToNext()){
if (cursor.getLong(cursor.getColumnIndex("_id")) == eventId) {
assertEquals(cursor.getLong(cursor.getColumnIndex("dtstart")), newDtStart);
assertEquals(cursor.getLong(cursor.getColumnIndex("dtend")), newDtEnd);
break;
}
}
cursor.close();
}
public void testEditEventDescription() throws Exception {
Cursor cursor;
cursor = mResolver.query(mEventsUri, null, null, null, null);
int countBeforeNewEvent = cursor.getCount();
cursor.moveToNext();
String title = cursor.getString(cursor.getColumnIndex("title"));
long dtStart = cursor.getLong(cursor.getColumnIndex("dtstart"));
long dtEnd = cursor.getLong(cursor.getColumnIndex("dtend"));
String newDescription = "NEW Descrption";
EventInfo event = new EventInfo(title, dtStart, dtEnd, false, newDescription);
long eventId = cursor.getLong(cursor.getColumnIndex("_id"));
editEvent(eventId, event);
cursor = mResolver.query(mEventsUri, null, null, null, null);
int countAfterNewEvent = cursor.getCount();
assertTrue("Events count should remain same.", countAfterNewEvent == countBeforeNewEvent);
while (cursor.moveToNext()){
if (cursor.getLong(cursor.getColumnIndex("_id")) == eventId) {
assertEquals(cursor.getString(cursor.getColumnIndex("description")), newDescription);
break;
}
}
cursor.close();
}
}