• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2009 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.android.providers.calendar;
18 
19 import android.database.Cursor;
20 import android.net.Uri;
21 import android.text.format.Time;
22 
23 /**
24  * Calendar Sync instrumentation tests. Testing creation of new events, deleting events,
25  * editing events.
26  */
27 public class SyncCalendarTest extends CalendarSyncTestingBase {
28     private EventInfo normalEvent =
29             new EventInfo("normal0", "2008-12-01T00:00:00", "2008-12-02T00:00:00", false);
30     private EventInfo dailyRecurringEvent = new EventInfo("dailyEvent",
31             "daily from 5/1/2008 12am to 1am", "2008-10-01T00:00:00", "2008-10-01T01:00:00",
32             "FREQ=DAILY;WKST=SU", false);
33 
34     private static final long ONE_HOUR_IN_MILLIS = 3600000;
35 
36     @Override
setUp()37     protected void setUp() throws Exception {
38         super.setUp();
39     }
40 
testCreateNewEvent()41     public void testCreateNewEvent() throws Exception {
42         int countBeforeNewEvent = getEventsCount();
43         insertEvent(normalEvent);
44         assertTrue("No new event was added. ", getEventsCount() > countBeforeNewEvent);
45     }
46 
testCreateAndDeleteNewRecurringEvent()47     public void testCreateAndDeleteNewRecurringEvent() throws Exception {
48         syncCalendar();
49         int countBeforeNewEvent = getEventsCount();
50         Uri insertUri = insertEvent(dailyRecurringEvent);
51 
52         assertTrue("A daily recurring event should have been created.",
53                    getEventsCount() > countBeforeNewEvent);
54         deleteEvent(insertUri);
55         assertEquals("Daily recurring event should have been deleted.",
56                      countBeforeNewEvent, getEventsCount());
57     }
58 
testCreateAllDayEvent()59     public void testCreateAllDayEvent() throws Exception {
60         Time time = new Time();
61         time.setToNow();
62         long dtStart = time.toMillis(false);
63         long dtEnd = time.toMillis(false) + ONE_HOUR_IN_MILLIS;
64         EventInfo allDayEvent = new EventInfo("allday0", dtStart, dtEnd, true);
65 
66         int countBeforeNewEvent = getEventsCount();
67         insertEvent(allDayEvent);
68 
69         assertTrue("An all-day event should have been created.",
70                    getEventsCount() > countBeforeNewEvent);
71     }
72 
testEditEventTitle()73     public void testEditEventTitle() throws Exception {
74         Cursor cursor;
75         cursor = mResolver.query(mEventsUri, null, null, null, null);
76 
77         int countBeforeNewEvent = cursor.getCount();
78         cursor.moveToNext();
79         Time time = new Time();
80         time.setToNow();
81         String newTitle = cursor.getString(cursor.getColumnIndex("title")) + time.toString();
82         long dtStart = cursor.getLong(cursor.getColumnIndex("dtstart"));
83         long dtEnd = cursor.getLong(cursor.getColumnIndex("dtend"));
84 
85         EventInfo event = new EventInfo(newTitle, dtStart, dtEnd, false);
86         long eventId = cursor.getLong(cursor.getColumnIndex("_id"));
87 
88         editEvent(eventId, event);
89         cursor = mResolver.query(mEventsUri, null, null, null, null);
90         assertTrue("Events count should remain same.", getEventsCount() == countBeforeNewEvent);
91 
92         while (cursor.moveToNext()) {
93             if (cursor.getLong(cursor.getColumnIndex("_id")) == eventId) {
94                 assertEquals(cursor.getString(cursor.getColumnIndex("title")), newTitle);
95                 break;
96             }
97         }
98         cursor.close();
99     }
100 
testEditEventDate()101     public void testEditEventDate() throws Exception {
102         Cursor cursor;
103         cursor = mResolver.query(mEventsUri, null, null, null, null);
104 
105         int countBeforeNewEvent = cursor.getCount();
106         cursor.moveToNext();
107         Time time = new Time();
108         String title = cursor.getString(cursor.getColumnIndex("title"));
109         long dtStart = cursor.getLong(cursor.getColumnIndex("dtstart"));
110         time.set(dtStart + 2 * ONE_HOUR_IN_MILLIS);
111         long newDtStart = time.toMillis(false);
112         time.set(dtStart + 3 * ONE_HOUR_IN_MILLIS);
113         long newDtEnd = time.toMillis(false);
114 
115         EventInfo event = new EventInfo(title, newDtStart, newDtEnd, false);
116         long eventId = cursor.getLong(cursor.getColumnIndex("_id"));
117 
118         editEvent(eventId,  event);
119 
120         cursor = mResolver.query(mEventsUri, null, null, null, null);
121         int countAfterNewEvent = cursor.getCount();
122         assertTrue("Events count should remain same.", countAfterNewEvent == countBeforeNewEvent);
123 
124         while (cursor.moveToNext()){
125           if (cursor.getLong(cursor.getColumnIndex("_id")) == eventId) {
126             assertEquals(cursor.getLong(cursor.getColumnIndex("dtstart")), newDtStart);
127             assertEquals(cursor.getLong(cursor.getColumnIndex("dtend")), newDtEnd);
128             break;
129           }
130         }
131         cursor.close();
132     }
133 
testEditEventDescription()134     public void testEditEventDescription() throws Exception {
135         Cursor cursor;
136         cursor = mResolver.query(mEventsUri, null, null, null, null);
137         int countBeforeNewEvent = cursor.getCount();
138         cursor.moveToNext();
139 
140         String title = cursor.getString(cursor.getColumnIndex("title"));
141         long dtStart = cursor.getLong(cursor.getColumnIndex("dtstart"));
142         long dtEnd = cursor.getLong(cursor.getColumnIndex("dtend"));
143 
144         String newDescription = "NEW Descrption";
145         EventInfo event = new EventInfo(title, dtStart, dtEnd, false, newDescription);
146 
147         long eventId = cursor.getLong(cursor.getColumnIndex("_id"));
148         editEvent(eventId,  event);
149 
150         cursor = mResolver.query(mEventsUri, null, null, null, null);
151         int countAfterNewEvent = cursor.getCount();
152         assertTrue("Events count should remain same.", countAfterNewEvent == countBeforeNewEvent);
153 
154         while (cursor.moveToNext()){
155           if (cursor.getLong(cursor.getColumnIndex("_id")) == eventId) {
156             assertEquals(cursor.getString(cursor.getColumnIndex("description")), newDescription);
157             break;
158           }
159         }
160         cursor.close();
161     }
162 }
163 
164