1 /*
2  * Copyright (C) 2010 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 package com.android.providers.calendar;
17 
18 import android.database.sqlite.SQLiteOpenHelper;
19 import android.test.AndroidTestCase;
20 
21 /**
22  * Run various tests on CalendarCache
23  *
24  * Use the following command line:
25  *
26  * adb shell am instrument -e debug false -w -e class com.android.providers.calendar.CalendarCacheTest com.android.providers.calendar.tests/android.test.InstrumentationTestRunner
27  *
28  */
29 public class CalendarCacheTest extends AndroidTestCase {
30 
31     private SQLiteOpenHelper mDbHelper;
32     private CalendarCache mCalendarCache;
33     private static final String TIMEZONE_DB_2011A = "2011a";
34 
35     private static final String TIMEZONE_AMERICA_LOS_ANGELES = "America/Los_Angeles";
36     private static final String TIMEZONE_AMERICA_DENVER = "America/Denver";
37 
38     @Override
setUp()39     public void setUp() {
40         mDbHelper = CalendarDatabaseHelper.getInstance(getContext());
41         mCalendarCache = new CalendarCache(mDbHelper);
42     }
43 
44     @Override
tearDown()45     public void tearDown() {
46         if (mDbHelper != null) {
47             mDbHelper.close();
48             mDbHelper = null;
49             mCalendarCache = null;
50         }
51     }
52 
testGenerateCacheException()53     public void testGenerateCacheException() {
54         boolean hasException = false;
55         try {
56             String value = mCalendarCache.readData(null);
57         } catch (CalendarCache.CacheException e) {
58             hasException = true;
59         }
60         assertTrue(hasException);
61     }
62 
testWriteAndReadTimezoneDatabaseVersion()63     public void testWriteAndReadTimezoneDatabaseVersion() throws CalendarCache.CacheException {
64         mCalendarCache.writeTimezoneDatabaseVersion(TIMEZONE_DB_2011A);
65         assertEquals(TIMEZONE_DB_2011A, mCalendarCache.readTimezoneDatabaseVersion());
66     }
67 
testWriteAndReadTimezone()68     public void testWriteAndReadTimezone() throws CalendarCache.CacheException {
69         mCalendarCache.writeTimezoneInstances(TIMEZONE_AMERICA_DENVER);
70         assertEquals(TIMEZONE_AMERICA_DENVER, mCalendarCache.readTimezoneInstances());
71     }
72 
testWriteAndReadTimezonePrevious()73     public void testWriteAndReadTimezonePrevious() throws CalendarCache.CacheException {
74         mCalendarCache.writeTimezoneInstancesPrevious(TIMEZONE_AMERICA_LOS_ANGELES);
75         assertEquals(TIMEZONE_AMERICA_LOS_ANGELES, mCalendarCache.readTimezoneInstancesPrevious());
76     }
77 
testWriteAndReadTimezoneType()78     public void testWriteAndReadTimezoneType() throws CalendarCache.CacheException {
79         mCalendarCache.writeTimezoneType(CalendarCache.TIMEZONE_TYPE_AUTO);
80         assertEquals(CalendarCache.TIMEZONE_TYPE_AUTO, mCalendarCache.readTimezoneType());
81 
82         mCalendarCache.writeTimezoneType(CalendarCache.TIMEZONE_TYPE_HOME);
83         assertEquals(CalendarCache.TIMEZONE_TYPE_HOME, mCalendarCache.readTimezoneType());
84     }
85 }
86