OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 package org.chromium.chrome.browser.provider; | 5 package org.chromium.chrome.browser.provider; |
6 | 6 |
7 import android.content.ContentValues; | 7 import android.content.ContentValues; |
8 import android.database.Cursor; | 8 import android.database.Cursor; |
9 import android.net.Uri; | 9 import android.net.Uri; |
10 import android.support.test.filters.MediumTest; | 10 import android.support.test.filters.MediumTest; |
11 | 11 |
| 12 import org.junit.After; |
| 13 import org.junit.Assert; |
| 14 import org.junit.Before; |
| 15 import org.junit.Rule; |
| 16 import org.junit.Test; |
| 17 import org.junit.runner.RunWith; |
| 18 |
| 19 import org.chromium.base.test.util.CommandLineFlags; |
12 import org.chromium.base.test.util.Feature; | 20 import org.chromium.base.test.util.Feature; |
13 import org.chromium.base.test.util.RetryOnFailure; | 21 import org.chromium.base.test.util.RetryOnFailure; |
| 22 import org.chromium.chrome.browser.ChromeSwitches; |
| 23 import org.chromium.chrome.test.ChromeActivityTestRule; |
| 24 import org.chromium.chrome.test.ChromeJUnit4ClassRunner; |
14 | 25 |
15 import java.util.Arrays; | 26 import java.util.Arrays; |
16 import java.util.Date; | 27 import java.util.Date; |
17 | 28 |
18 /** | 29 /** |
19 * Tests the use of the Bookmark URI as part of the Android provider public API. | 30 * Tests the use of the Bookmark URI as part of the Android provider public API. |
20 */ | 31 */ |
21 public class ProviderBookmarksUriTest extends ProviderTestBase { | 32 @RunWith(ChromeJUnit4ClassRunner.class) |
| 33 @CommandLineFlags.Add({ |
| 34 ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE, |
| 35 ChromeActivityTestRule.DISABLE_NETWORK_PREDICTION_FLAG, |
| 36 }) |
| 37 public class ProviderBookmarksUriTest { |
| 38 @Rule |
| 39 public ProviderTestRule mProviderTestRule = new ProviderTestRule(); |
| 40 |
22 private static final String TAG = "ProviderBookmarkUriTest"; | 41 private static final String TAG = "ProviderBookmarkUriTest"; |
23 private static final byte[] FAVICON_DATA = { 1, 2, 3 }; | 42 private static final byte[] FAVICON_DATA = { 1, 2, 3 }; |
24 | 43 |
25 private Uri mBookmarksUri; | 44 private Uri mBookmarksUri; |
26 | 45 |
27 @Override | 46 @Before |
28 protected void setUp() throws Exception { | 47 public void setUp() throws Exception { |
29 super.setUp(); | 48 mBookmarksUri = ChromeBrowserProvider.getBookmarksApiUri(mProviderTestRu
le.getActivity()); |
30 mBookmarksUri = ChromeBrowserProvider.getBookmarksApiUri(getActivity()); | 49 mProviderTestRule.getContentResolver().delete(mBookmarksUri, null, null)
; |
31 getContentResolver().delete(mBookmarksUri, null, null); | |
32 } | 50 } |
33 | 51 |
34 @Override | 52 @After |
35 protected void tearDown() throws Exception { | 53 public void tearDown() throws Exception { |
36 getContentResolver().delete(mBookmarksUri, null, null); | 54 mProviderTestRule.getContentResolver().delete(mBookmarksUri, null, null)
; |
37 super.tearDown(); | |
38 } | 55 } |
39 | 56 |
40 private Uri addBookmark(String url, String title, long lastVisitTime, long c
reated, int visits, | 57 private Uri addBookmark(String url, String title, long lastVisitTime, long c
reated, int visits, |
41 byte[] icon, int isBookmark) { | 58 byte[] icon, int isBookmark) { |
42 ContentValues values = new ContentValues(); | 59 ContentValues values = new ContentValues(); |
43 values.put(BookmarkColumns.BOOKMARK, isBookmark); | 60 values.put(BookmarkColumns.BOOKMARK, isBookmark); |
44 values.put(BookmarkColumns.DATE, lastVisitTime); | 61 values.put(BookmarkColumns.DATE, lastVisitTime); |
45 values.put(BookmarkColumns.CREATED, created); | 62 values.put(BookmarkColumns.CREATED, created); |
46 values.put(BookmarkColumns.FAVICON, icon); | 63 values.put(BookmarkColumns.FAVICON, icon); |
47 values.put(BookmarkColumns.URL, url); | 64 values.put(BookmarkColumns.URL, url); |
48 values.put(BookmarkColumns.VISITS, visits); | 65 values.put(BookmarkColumns.VISITS, visits); |
49 values.put(BookmarkColumns.TITLE, title); | 66 values.put(BookmarkColumns.TITLE, title); |
50 return getContentResolver().insert(mBookmarksUri, values); | 67 return mProviderTestRule.getContentResolver().insert(mBookmarksUri, valu
es); |
51 } | 68 } |
52 | 69 |
| 70 @Test |
53 @MediumTest | 71 @MediumTest |
54 @Feature({"Android-ContentProvider"}) | 72 @Feature({"Android-ContentProvider"}) |
55 public void testAddBookmark() { | 73 public void testAddBookmark() { |
56 final long lastUpdateTime = System.currentTimeMillis(); | 74 final long lastUpdateTime = System.currentTimeMillis(); |
57 final long createdTime = lastUpdateTime - 1000 * 60 * 60; | 75 final long createdTime = lastUpdateTime - 1000 * 60 * 60; |
58 final String url = "http://www.google.com/"; | 76 final String url = "http://www.google.com/"; |
59 final int visits = 2; | 77 final int visits = 2; |
60 final String title = "Google"; | 78 final String title = "Google"; |
61 ContentValues values = new ContentValues(); | 79 ContentValues values = new ContentValues(); |
62 values.put(BookmarkColumns.BOOKMARK, 0); | 80 values.put(BookmarkColumns.BOOKMARK, 0); |
63 values.put(BookmarkColumns.DATE, lastUpdateTime); | 81 values.put(BookmarkColumns.DATE, lastUpdateTime); |
64 values.put(BookmarkColumns.CREATED, createdTime); | 82 values.put(BookmarkColumns.CREATED, createdTime); |
65 values.put(BookmarkColumns.FAVICON, FAVICON_DATA); | 83 values.put(BookmarkColumns.FAVICON, FAVICON_DATA); |
66 values.put(BookmarkColumns.URL, url); | 84 values.put(BookmarkColumns.URL, url); |
67 values.put(BookmarkColumns.VISITS, visits); | 85 values.put(BookmarkColumns.VISITS, visits); |
68 values.put(BookmarkColumns.TITLE, title); | 86 values.put(BookmarkColumns.TITLE, title); |
69 Uri uri = getContentResolver().insert(mBookmarksUri, values); | 87 Uri uri = mProviderTestRule.getContentResolver().insert(mBookmarksUri, v
alues); |
70 Cursor cursor = getContentResolver().query(uri, null, null, null, null); | 88 Cursor cursor = mProviderTestRule.getContentResolver().query(uri, null,
null, null, null); |
71 assertEquals(1, cursor.getCount()); | 89 Assert.assertEquals(1, cursor.getCount()); |
72 assertTrue(cursor.moveToNext()); | 90 Assert.assertTrue(cursor.moveToNext()); |
73 int index = cursor.getColumnIndex(BookmarkColumns.BOOKMARK); | 91 int index = cursor.getColumnIndex(BookmarkColumns.BOOKMARK); |
74 assertTrue(-1 != index); | 92 Assert.assertTrue(-1 != index); |
75 assertEquals(0, cursor.getInt(index)); | 93 Assert.assertEquals(0, cursor.getInt(index)); |
76 index = cursor.getColumnIndex(BookmarkColumns.CREATED); | 94 index = cursor.getColumnIndex(BookmarkColumns.CREATED); |
77 assertTrue(-1 != index); | 95 Assert.assertTrue(-1 != index); |
78 assertEquals(createdTime, cursor.getLong(index)); | 96 Assert.assertEquals(createdTime, cursor.getLong(index)); |
79 index = cursor.getColumnIndex(BookmarkColumns.DATE); | 97 index = cursor.getColumnIndex(BookmarkColumns.DATE); |
80 assertTrue(-1 != index); | 98 Assert.assertTrue(-1 != index); |
81 assertEquals(lastUpdateTime, cursor.getLong(index)); | 99 Assert.assertEquals(lastUpdateTime, cursor.getLong(index)); |
82 index = cursor.getColumnIndex(BookmarkColumns.FAVICON); | 100 index = cursor.getColumnIndex(BookmarkColumns.FAVICON); |
83 assertTrue(-1 != index); | 101 Assert.assertTrue(-1 != index); |
84 assertTrue(byteArraysEqual(FAVICON_DATA, cursor.getBlob(index))); | 102 Assert.assertTrue(byteArraysEqual(FAVICON_DATA, cursor.getBlob(index))); |
85 index = cursor.getColumnIndex(BookmarkColumns.URL); | 103 index = cursor.getColumnIndex(BookmarkColumns.URL); |
86 assertTrue(-1 != index); | 104 Assert.assertTrue(-1 != index); |
87 assertEquals(url, cursor.getString(index)); | 105 Assert.assertEquals(url, cursor.getString(index)); |
88 index = cursor.getColumnIndex(BookmarkColumns.VISITS); | 106 index = cursor.getColumnIndex(BookmarkColumns.VISITS); |
89 assertTrue(-1 != index); | 107 Assert.assertTrue(-1 != index); |
90 assertEquals(visits, cursor.getInt(index)); | 108 Assert.assertEquals(visits, cursor.getInt(index)); |
91 } | 109 } |
92 | 110 |
| 111 @Test |
93 @MediumTest | 112 @MediumTest |
94 @Feature({"Android-ContentProvider"}) | 113 @Feature({"Android-ContentProvider"}) |
95 @RetryOnFailure | 114 @RetryOnFailure |
96 public void testQueryBookmark() { | 115 public void testQueryBookmark() { |
97 final long now = System.currentTimeMillis(); | 116 final long now = System.currentTimeMillis(); |
98 final long lastUpdateTime[] = { now, now - 1000 * 60 }; | 117 final long lastUpdateTime[] = { now, now - 1000 * 60 }; |
99 final long createdTime[] = { now - 1000 * 60 * 60, now - 1000 * 60 * 60
* 60 }; | 118 final long createdTime[] = { now - 1000 * 60 * 60, now - 1000 * 60 * 60
* 60 }; |
100 final String url[] = { "http://www.google.com/", "http://mail.google.com
/" }; | 119 final String url[] = { "http://www.google.com/", "http://mail.google.com
/" }; |
101 final int visits[] = { 2, 20 }; | 120 final int visits[] = { 2, 20 }; |
102 final String title[] = { "Google", "Mail" }; | 121 final String title[] = { "Google", "Mail" }; |
103 final int isBookmark[] = { 1, 0 }; | 122 final int isBookmark[] = { 1, 0 }; |
104 Uri[] uris = new Uri[2]; | 123 Uri[] uris = new Uri[2]; |
105 byte[][] icons = { FAVICON_DATA, null }; | 124 byte[][] icons = { FAVICON_DATA, null }; |
106 for (int i = 0; i < uris.length; i++) { | 125 for (int i = 0; i < uris.length; i++) { |
107 uris[i] = addBookmark(url[i], title[i], lastUpdateTime[i], createdTi
me[i], visits[i], | 126 uris[i] = addBookmark(url[i], title[i], lastUpdateTime[i], createdTi
me[i], visits[i], |
108 icons[i], isBookmark[i]); | 127 icons[i], isBookmark[i]); |
109 assertNotNull(uris[i]); | 128 Assert.assertNotNull(uris[i]); |
110 } | 129 } |
111 | 130 |
112 // Query the 1st row. | 131 // Query the 1st row. |
113 String[] selectionArgs = { url[0], String.valueOf(lastUpdateTime[0]), | 132 String[] selectionArgs = { url[0], String.valueOf(lastUpdateTime[0]), |
114 String.valueOf(visits[0]), String.valueOf(isBookmark[0]) }; | 133 String.valueOf(visits[0]), String.valueOf(isBookmark[0]) }; |
115 Cursor cursor = getContentResolver().query(mBookmarksUri, null, | 134 Cursor cursor = mProviderTestRule.getContentResolver().query(mBookmarksU
ri, null, |
116 BookmarkColumns.URL + " = ? AND " + BookmarkColumns.DATE + " = ?
AND " | 135 BookmarkColumns.URL + " = ? AND " + BookmarkColumns.DATE + " = ?
AND " |
117 + BookmarkColumns.VISITS + " = ? AND " + BookmarkColumns.BOOKMAR
K + " = ? AND " | 136 + BookmarkColumns.VISITS + " = ? AND " + BookmarkColumns
.BOOKMARK |
118 + BookmarkColumns.FAVICON + " IS NOT NULL", | 137 + " = ? AND " + BookmarkColumns.FAVICON + " IS NOT NULL"
, |
119 selectionArgs, null); | 138 selectionArgs, null); |
120 assertNotNull(cursor); | 139 Assert.assertNotNull(cursor); |
121 assertEquals(1, cursor.getCount()); | 140 Assert.assertEquals(1, cursor.getCount()); |
122 assertTrue(cursor.moveToNext()); | 141 Assert.assertTrue(cursor.moveToNext()); |
123 int index = cursor.getColumnIndex(BookmarkColumns.BOOKMARK); | 142 int index = cursor.getColumnIndex(BookmarkColumns.BOOKMARK); |
124 assertTrue(-1 != index); | 143 Assert.assertTrue(-1 != index); |
125 assertEquals(isBookmark[0], cursor.getInt(index)); | 144 Assert.assertEquals(isBookmark[0], cursor.getInt(index)); |
126 index = cursor.getColumnIndex(BookmarkColumns.CREATED); | 145 index = cursor.getColumnIndex(BookmarkColumns.CREATED); |
127 assertTrue(-1 != index); | 146 Assert.assertTrue(-1 != index); |
128 assertEquals(createdTime[0], cursor.getLong(index)); | 147 Assert.assertEquals(createdTime[0], cursor.getLong(index)); |
129 index = cursor.getColumnIndex(BookmarkColumns.DATE); | 148 index = cursor.getColumnIndex(BookmarkColumns.DATE); |
130 assertTrue(-1 != index); | 149 Assert.assertTrue(-1 != index); |
131 assertEquals(lastUpdateTime[0], cursor.getLong(index)); | 150 Assert.assertEquals(lastUpdateTime[0], cursor.getLong(index)); |
132 index = cursor.getColumnIndex(BookmarkColumns.FAVICON); | 151 index = cursor.getColumnIndex(BookmarkColumns.FAVICON); |
133 assertTrue(-1 != index); | 152 Assert.assertTrue(-1 != index); |
134 assertTrue(byteArraysEqual(icons[0], cursor.getBlob(index))); | 153 Assert.assertTrue(byteArraysEqual(icons[0], cursor.getBlob(index))); |
135 index = cursor.getColumnIndex(BookmarkColumns.URL); | 154 index = cursor.getColumnIndex(BookmarkColumns.URL); |
136 assertTrue(-1 != index); | 155 Assert.assertTrue(-1 != index); |
137 assertEquals(url[0], cursor.getString(index)); | 156 Assert.assertEquals(url[0], cursor.getString(index)); |
138 index = cursor.getColumnIndex(BookmarkColumns.VISITS); | 157 index = cursor.getColumnIndex(BookmarkColumns.VISITS); |
139 assertTrue(-1 != index); | 158 Assert.assertTrue(-1 != index); |
140 assertEquals(visits[0], cursor.getInt(index)); | 159 Assert.assertEquals(visits[0], cursor.getInt(index)); |
141 | 160 |
142 // Query the 2nd row. | 161 // Query the 2nd row. |
143 String[] selectionArgs2 = { url[1], String.valueOf(lastUpdateTime[1]), | 162 String[] selectionArgs2 = { url[1], String.valueOf(lastUpdateTime[1]), |
144 String.valueOf(visits[1]), String.valueOf(isBookmark[1]) }; | 163 String.valueOf(visits[1]), String.valueOf(isBookmark[1]) }; |
145 cursor = getContentResolver().query(mBookmarksUri, null, | 164 cursor = mProviderTestRule.getContentResolver().query(mBookmarksUri, nul
l, |
146 BookmarkColumns.URL + " = ? AND " + BookmarkColumns.DATE + " = ?
AND " | 165 BookmarkColumns.URL + " = ? AND " + BookmarkColumns.DATE + " = ?
AND " |
147 + BookmarkColumns.VISITS + " = ? AND " + BookmarkColumns.BOOKMAR
K + " = ? AND " | 166 + BookmarkColumns.VISITS + " = ? AND " + BookmarkColumns
.BOOKMARK |
148 + BookmarkColumns.FAVICON + " IS NULL", | 167 + " = ? AND " + BookmarkColumns.FAVICON + " IS NULL", |
149 selectionArgs2, null); | 168 selectionArgs2, null); |
150 assertNotNull(cursor); | 169 Assert.assertNotNull(cursor); |
151 assertEquals(1, cursor.getCount()); | 170 Assert.assertEquals(1, cursor.getCount()); |
152 assertTrue(cursor.moveToNext()); | 171 Assert.assertTrue(cursor.moveToNext()); |
153 index = cursor.getColumnIndex(BookmarkColumns.BOOKMARK); | 172 index = cursor.getColumnIndex(BookmarkColumns.BOOKMARK); |
154 assertTrue(-1 != index); | 173 Assert.assertTrue(-1 != index); |
155 assertEquals(isBookmark[1], cursor.getInt(index)); | 174 Assert.assertEquals(isBookmark[1], cursor.getInt(index)); |
156 index = cursor.getColumnIndex(BookmarkColumns.CREATED); | 175 index = cursor.getColumnIndex(BookmarkColumns.CREATED); |
157 assertTrue(-1 != index); | 176 Assert.assertTrue(-1 != index); |
158 assertEquals(createdTime[1], cursor.getLong(index)); | 177 Assert.assertEquals(createdTime[1], cursor.getLong(index)); |
159 index = cursor.getColumnIndex(BookmarkColumns.DATE); | 178 index = cursor.getColumnIndex(BookmarkColumns.DATE); |
160 assertTrue(-1 != index); | 179 Assert.assertTrue(-1 != index); |
161 assertEquals(lastUpdateTime[1], cursor.getLong(index)); | 180 Assert.assertEquals(lastUpdateTime[1], cursor.getLong(index)); |
162 index = cursor.getColumnIndex(BookmarkColumns.FAVICON); | 181 index = cursor.getColumnIndex(BookmarkColumns.FAVICON); |
163 assertTrue(-1 != index); | 182 Assert.assertTrue(-1 != index); |
164 assertTrue(byteArraysEqual(icons[1], cursor.getBlob(index))); | 183 Assert.assertTrue(byteArraysEqual(icons[1], cursor.getBlob(index))); |
165 index = cursor.getColumnIndex(BookmarkColumns.URL); | 184 index = cursor.getColumnIndex(BookmarkColumns.URL); |
166 assertTrue(-1 != index); | 185 Assert.assertTrue(-1 != index); |
167 assertEquals(url[1], cursor.getString(index)); | 186 Assert.assertEquals(url[1], cursor.getString(index)); |
168 index = cursor.getColumnIndex(BookmarkColumns.VISITS); | 187 index = cursor.getColumnIndex(BookmarkColumns.VISITS); |
169 assertTrue(-1 != index); | 188 Assert.assertTrue(-1 != index); |
170 assertEquals(visits[1], cursor.getInt(index)); | 189 Assert.assertEquals(visits[1], cursor.getInt(index)); |
171 } | 190 } |
172 | 191 |
| 192 @Test |
173 @MediumTest | 193 @MediumTest |
174 @Feature({"Android-ContentProvider"}) | 194 @Feature({"Android-ContentProvider"}) |
175 @RetryOnFailure | 195 @RetryOnFailure |
176 public void testUpdateBookmark() { | 196 public void testUpdateBookmark() { |
177 final long now = System.currentTimeMillis(); | 197 final long now = System.currentTimeMillis(); |
178 final long lastUpdateTime[] = { now, now - 1000 * 60 }; | 198 final long lastUpdateTime[] = { now, now - 1000 * 60 }; |
179 final long createdTime[] = { now - 1000 * 60 * 60, now - 1000 * 60 * 60
* 60 }; | 199 final long createdTime[] = { now - 1000 * 60 * 60, now - 1000 * 60 * 60
* 60 }; |
180 final String url[] = { "http://www.google.com/", "http://mail.google.com
/" }; | 200 final String url[] = { "http://www.google.com/", "http://mail.google.com
/" }; |
181 final int visits[] = { 2, 20 }; | 201 final int visits[] = { 2, 20 }; |
182 final String title[] = { "Google", "Mail" }; | 202 final String title[] = { "Google", "Mail" }; |
183 final int isBookmark[] = { 1, 0 }; | 203 final int isBookmark[] = { 1, 0 }; |
184 | 204 |
185 byte[][] icons = { FAVICON_DATA, null }; | 205 byte[][] icons = { FAVICON_DATA, null }; |
186 Uri uri = addBookmark(url[0], title[0], lastUpdateTime[0], createdTime[0
], visits[0], | 206 Uri uri = addBookmark(url[0], title[0], lastUpdateTime[0], createdTime[0
], visits[0], |
187 icons[0], isBookmark[0]); | 207 icons[0], isBookmark[0]); |
188 assertNotNull(uri); | 208 Assert.assertNotNull(uri); |
189 | 209 |
190 ContentValues values = new ContentValues(); | 210 ContentValues values = new ContentValues(); |
191 values.put(BookmarkColumns.BOOKMARK, isBookmark[1]); | 211 values.put(BookmarkColumns.BOOKMARK, isBookmark[1]); |
192 values.put(BookmarkColumns.DATE, lastUpdateTime[1]); | 212 values.put(BookmarkColumns.DATE, lastUpdateTime[1]); |
193 values.put(BookmarkColumns.URL, url[1]); | 213 values.put(BookmarkColumns.URL, url[1]); |
194 values.putNull(BookmarkColumns.FAVICON); | 214 values.putNull(BookmarkColumns.FAVICON); |
195 values.put(BookmarkColumns.TITLE, title[1]); | 215 values.put(BookmarkColumns.TITLE, title[1]); |
196 values.put(BookmarkColumns.VISITS, visits[1]); | 216 values.put(BookmarkColumns.VISITS, visits[1]); |
197 String[] selectionArgs = { String.valueOf(lastUpdateTime[0]), | 217 String[] selectionArgs = { String.valueOf(lastUpdateTime[0]), |
198 String.valueOf(isBookmark[0]) }; | 218 String.valueOf(isBookmark[0]) }; |
199 getContentResolver().update(uri, values, BookmarkColumns.FAVICON + " IS
NOT NULL AND " | 219 mProviderTestRule.getContentResolver().update(uri, values, |
200 + BookmarkColumns.DATE + "= ? AND " + BookmarkColumns.BOOKMARK +
" = ?", | 220 BookmarkColumns.FAVICON + " IS NOT NULL AND " + BookmarkColumns.
DATE + "= ? AND " |
| 221 + BookmarkColumns.BOOKMARK + " = ?", |
201 selectionArgs); | 222 selectionArgs); |
202 Cursor cursor = getContentResolver().query(uri, null, null, null, null); | 223 Cursor cursor = mProviderTestRule.getContentResolver().query(uri, null,
null, null, null); |
203 assertEquals(1, cursor.getCount()); | 224 Assert.assertEquals(1, cursor.getCount()); |
204 assertTrue(cursor.moveToNext()); | 225 Assert.assertTrue(cursor.moveToNext()); |
205 int index = cursor.getColumnIndex(BookmarkColumns.BOOKMARK); | 226 int index = cursor.getColumnIndex(BookmarkColumns.BOOKMARK); |
206 assertTrue(-1 != index); | 227 Assert.assertTrue(-1 != index); |
207 assertEquals(isBookmark[1], cursor.getInt(index)); | 228 Assert.assertEquals(isBookmark[1], cursor.getInt(index)); |
208 index = cursor.getColumnIndex(BookmarkColumns.CREATED); | 229 index = cursor.getColumnIndex(BookmarkColumns.CREATED); |
209 assertTrue(-1 != index); | 230 Assert.assertTrue(-1 != index); |
210 assertEquals(createdTime[0], cursor.getLong(index)); | 231 Assert.assertEquals(createdTime[0], cursor.getLong(index)); |
211 index = cursor.getColumnIndex(BookmarkColumns.DATE); | 232 index = cursor.getColumnIndex(BookmarkColumns.DATE); |
212 assertTrue(-1 != index); | 233 Assert.assertTrue(-1 != index); |
213 assertEquals(lastUpdateTime[1], cursor.getLong(index)); | 234 Assert.assertEquals(lastUpdateTime[1], cursor.getLong(index)); |
214 index = cursor.getColumnIndex(BookmarkColumns.FAVICON); | 235 index = cursor.getColumnIndex(BookmarkColumns.FAVICON); |
215 assertTrue(-1 != index); | 236 Assert.assertTrue(-1 != index); |
216 assertTrue(byteArraysEqual(icons[1], cursor.getBlob(index))); | 237 Assert.assertTrue(byteArraysEqual(icons[1], cursor.getBlob(index))); |
217 index = cursor.getColumnIndex(BookmarkColumns.URL); | 238 index = cursor.getColumnIndex(BookmarkColumns.URL); |
218 assertTrue(-1 != index); | 239 Assert.assertTrue(-1 != index); |
219 assertEquals(url[1], cursor.getString(index)); | 240 Assert.assertEquals(url[1], cursor.getString(index)); |
220 index = cursor.getColumnIndex(BookmarkColumns.VISITS); | 241 index = cursor.getColumnIndex(BookmarkColumns.VISITS); |
221 assertTrue(-1 != index); | 242 Assert.assertTrue(-1 != index); |
222 assertEquals(visits[1], cursor.getInt(index)); | 243 Assert.assertEquals(visits[1], cursor.getInt(index)); |
223 } | 244 } |
224 | 245 |
| 246 @Test |
225 @MediumTest | 247 @MediumTest |
226 @Feature({"Android-ContentProvider"}) | 248 @Feature({"Android-ContentProvider"}) |
227 @RetryOnFailure | 249 @RetryOnFailure |
228 public void testDeleteBookmark() { | 250 public void testDeleteBookmark() { |
229 final long now = System.currentTimeMillis(); | 251 final long now = System.currentTimeMillis(); |
230 final long lastUpdateTime[] = { now, now - 1000 * 60 }; | 252 final long lastUpdateTime[] = { now, now - 1000 * 60 }; |
231 final long createdTime[] = { now - 1000 * 60 * 60, now - 1000 * 60 * 60
* 60 }; | 253 final long createdTime[] = { now - 1000 * 60 * 60, now - 1000 * 60 * 60
* 60 }; |
232 final String url[] = { "http://www.google.com/", "http://mail.google.com
/" }; | 254 final String url[] = { "http://www.google.com/", "http://mail.google.com
/" }; |
233 final int visits[] = { 2, 20 }; | 255 final int visits[] = { 2, 20 }; |
234 final String title[] = { "Google", "Mail" }; | 256 final String title[] = { "Google", "Mail" }; |
235 final int isBookmark[] = { 1, 0 }; | 257 final int isBookmark[] = { 1, 0 }; |
236 Uri[] uris = new Uri[2]; | 258 Uri[] uris = new Uri[2]; |
237 byte[][] icons = { FAVICON_DATA, null }; | 259 byte[][] icons = { FAVICON_DATA, null }; |
238 for (int i = 0; i < uris.length; i++) { | 260 for (int i = 0; i < uris.length; i++) { |
239 uris[i] = addBookmark(url[i], title[i], lastUpdateTime[i], createdTi
me[i], visits[i], | 261 uris[i] = addBookmark(url[i], title[i], lastUpdateTime[i], createdTi
me[i], visits[i], |
240 icons[i], isBookmark[i]); | 262 icons[i], isBookmark[i]); |
241 assertNotNull(uris[i]); | 263 Assert.assertNotNull(uris[i]); |
242 } | 264 } |
243 | 265 |
244 String[] selectionArgs = { String.valueOf(lastUpdateTime[0]), | 266 String[] selectionArgs = { String.valueOf(lastUpdateTime[0]), |
245 String.valueOf(isBookmark[0]) }; | 267 String.valueOf(isBookmark[0]) }; |
246 getContentResolver().delete(mBookmarksUri, BookmarkColumns.FAVICON + "
IS NOT NULL AND " | 268 mProviderTestRule.getContentResolver().delete(mBookmarksUri, |
247 + BookmarkColumns.DATE + "= ? AND " + BookmarkColumns.BOOKMARK +
" = ?", | 269 BookmarkColumns.FAVICON + " IS NOT NULL AND " + BookmarkColumns.
DATE + "= ? AND " |
| 270 + BookmarkColumns.BOOKMARK + " = ?", |
248 selectionArgs); | 271 selectionArgs); |
249 Cursor cursor = getContentResolver().query(uris[0], null, null, null, nu
ll); | 272 Cursor cursor = |
250 assertNotNull(cursor); | 273 mProviderTestRule.getContentResolver().query(uris[0], null, null
, null, null); |
251 assertEquals(0, cursor.getCount()); | 274 Assert.assertNotNull(cursor); |
252 cursor = getContentResolver().query(uris[1], null, null, null, null); | 275 Assert.assertEquals(0, cursor.getCount()); |
253 assertNotNull(cursor); | 276 cursor = mProviderTestRule.getContentResolver().query(uris[1], null, nul
l, null, null); |
254 assertEquals(1, cursor.getCount()); | 277 Assert.assertNotNull(cursor); |
| 278 Assert.assertEquals(1, cursor.getCount()); |
255 String[] selectionArgs1 = { String.valueOf(lastUpdateTime[1]), | 279 String[] selectionArgs1 = { String.valueOf(lastUpdateTime[1]), |
256 String.valueOf(isBookmark[1]) }; | 280 String.valueOf(isBookmark[1]) }; |
257 getContentResolver().delete(mBookmarksUri, BookmarkColumns.FAVICON + "
IS NULL AND " | 281 mProviderTestRule.getContentResolver().delete(mBookmarksUri, |
258 + BookmarkColumns.DATE + "= ? AND " + BookmarkColumns.BOOKMARK +
" = ?", | 282 BookmarkColumns.FAVICON + " IS NULL AND " + BookmarkColumns.DATE
+ "= ? AND " |
| 283 + BookmarkColumns.BOOKMARK + " = ?", |
259 selectionArgs1); | 284 selectionArgs1); |
260 cursor = getContentResolver().query(uris[1], null, null, null, null); | 285 cursor = mProviderTestRule.getContentResolver().query(uris[1], null, nul
l, null, null); |
261 assertNotNull(cursor); | 286 Assert.assertNotNull(cursor); |
262 assertEquals(0, cursor.getCount()); | 287 Assert.assertEquals(0, cursor.getCount()); |
263 } | 288 } |
264 | 289 |
265 /* | 290 /* |
266 * Copied from CTS test with minor adaptations. | 291 * Copied from CTS test with minor adaptations. |
267 */ | 292 */ |
| 293 @Test |
268 @MediumTest | 294 @MediumTest |
269 @Feature({"Android-ContentProvider"}) | 295 @Feature({"Android-ContentProvider"}) |
270 public void testBookmarksTable() { | 296 public void testBookmarksTable() { |
271 final String[] bookmarksProjection = new String[] { | 297 final String[] bookmarksProjection = new String[] { |
272 BookmarkColumns.ID, BookmarkColumns.URL, BookmarkColumns.VISITS, | 298 BookmarkColumns.ID, BookmarkColumns.URL, BookmarkColumns.VISITS, |
273 BookmarkColumns.DATE, BookmarkColumns.CREATED, BookmarkColumns.B
OOKMARK, | 299 BookmarkColumns.DATE, BookmarkColumns.CREATED, BookmarkColumns.B
OOKMARK, |
274 BookmarkColumns.TITLE, BookmarkColumns.FAVICON }; | 300 BookmarkColumns.TITLE, BookmarkColumns.FAVICON }; |
275 final int idIndex = 0; | 301 final int idIndex = 0; |
276 final int urlIndex = 1; | 302 final int urlIndex = 1; |
277 final int visitsIndex = 2; | 303 final int visitsIndex = 2; |
(...skipping 12 matching lines...) Expand all Loading... |
290 // Test: insert. | 316 // Test: insert. |
291 ContentValues value = new ContentValues(); | 317 ContentValues value = new ContentValues(); |
292 long createDate = new Date().getTime(); | 318 long createDate = new Date().getTime(); |
293 value.put(BookmarkColumns.TITLE, insertBookmarkTitle); | 319 value.put(BookmarkColumns.TITLE, insertBookmarkTitle); |
294 value.put(BookmarkColumns.URL, insertBookmarkUrl); | 320 value.put(BookmarkColumns.URL, insertBookmarkUrl); |
295 value.put(BookmarkColumns.VISITS, 0); | 321 value.put(BookmarkColumns.VISITS, 0); |
296 value.put(BookmarkColumns.DATE, createDate); | 322 value.put(BookmarkColumns.DATE, createDate); |
297 value.put(BookmarkColumns.CREATED, createDate); | 323 value.put(BookmarkColumns.CREATED, createDate); |
298 value.put(BookmarkColumns.BOOKMARK, 0); | 324 value.put(BookmarkColumns.BOOKMARK, 0); |
299 | 325 |
300 Uri insertUri = getContentResolver().insert(mBookmarksUri, value); | 326 Uri insertUri = mProviderTestRule.getContentResolver().insert(mBookmarks
Uri, value); |
301 Cursor cursor = getContentResolver().query( | 327 Cursor cursor = mProviderTestRule.getContentResolver().query(mBookmarksU
ri, |
302 mBookmarksUri, | 328 bookmarksProjection, BookmarkColumns.TITLE + " = ?", |
303 bookmarksProjection, | 329 new String[] {insertBookmarkTitle}, BookmarkColumns.DATE); |
304 BookmarkColumns.TITLE + " = ?", | 330 Assert.assertTrue(cursor.moveToNext()); |
305 new String[] { insertBookmarkTitle }, | 331 Assert.assertEquals(insertBookmarkTitle, cursor.getString(titleIndex)); |
306 BookmarkColumns.DATE); | 332 Assert.assertEquals(insertBookmarkUrl, cursor.getString(urlIndex)); |
307 assertTrue(cursor.moveToNext()); | 333 Assert.assertEquals(0, cursor.getInt(visitsIndex)); |
308 assertEquals(insertBookmarkTitle, cursor.getString(titleIndex)); | 334 Assert.assertEquals(createDate, cursor.getLong(dataIndex)); |
309 assertEquals(insertBookmarkUrl, cursor.getString(urlIndex)); | 335 Assert.assertEquals(createDate, cursor.getLong(createdIndex)); |
310 assertEquals(0, cursor.getInt(visitsIndex)); | 336 Assert.assertEquals(0, cursor.getInt(bookmarkIndex)); |
311 assertEquals(createDate, cursor.getLong(dataIndex)); | |
312 assertEquals(createDate, cursor.getLong(createdIndex)); | |
313 assertEquals(0, cursor.getInt(bookmarkIndex)); | |
314 // TODO(michaelbai): according to the test this should be null instead o
f an empty byte[]. | 337 // TODO(michaelbai): according to the test this should be null instead o
f an empty byte[]. |
315 // BUG 6288508 | 338 // BUG 6288508 |
316 // assertTrue(cursor.isNull(FAVICON_INDEX)); | 339 // assertTrue(cursor.isNull(FAVICON_INDEX)); |
317 int Id = cursor.getInt(idIndex); | 340 int Id = cursor.getInt(idIndex); |
318 cursor.close(); | 341 cursor.close(); |
319 | 342 |
320 // Test: update. | 343 // Test: update. |
321 value.clear(); | 344 value.clear(); |
322 long updateDate = new Date().getTime(); | 345 long updateDate = new Date().getTime(); |
323 value.put(BookmarkColumns.TITLE, updateBookmarkTitle); | 346 value.put(BookmarkColumns.TITLE, updateBookmarkTitle); |
324 value.put(BookmarkColumns.URL, updateBookmarkUrl); | 347 value.put(BookmarkColumns.URL, updateBookmarkUrl); |
325 value.put(BookmarkColumns.VISITS, 1); | 348 value.put(BookmarkColumns.VISITS, 1); |
326 value.put(BookmarkColumns.DATE, updateDate); | 349 value.put(BookmarkColumns.DATE, updateDate); |
327 | 350 |
328 getContentResolver().update(mBookmarksUri, value, | 351 mProviderTestRule.getContentResolver().update(mBookmarksUri, value, |
329 BookmarkColumns.TITLE + " = ?", | 352 BookmarkColumns.TITLE + " = ?", new String[] {insertBookmarkTitl
e}); |
330 new String[] { insertBookmarkTitle }); | 353 cursor = mProviderTestRule.getContentResolver().query( |
331 cursor = getContentResolver().query( | 354 mBookmarksUri, bookmarksProjection, BookmarkColumns.ID + " = " +
Id, null, null); |
332 mBookmarksUri, | 355 Assert.assertTrue(cursor.moveToNext()); |
333 bookmarksProjection, | 356 Assert.assertEquals(updateBookmarkTitle, cursor.getString(titleIndex)); |
334 BookmarkColumns.ID + " = " + Id, | 357 Assert.assertEquals(updateBookmarkUrl, cursor.getString(urlIndex)); |
335 null, null); | 358 Assert.assertEquals(1, cursor.getInt(visitsIndex)); |
336 assertTrue(cursor.moveToNext()); | 359 Assert.assertEquals(updateDate, cursor.getLong(dataIndex)); |
337 assertEquals(updateBookmarkTitle, cursor.getString(titleIndex)); | 360 Assert.assertEquals(createDate, cursor.getLong(createdIndex)); |
338 assertEquals(updateBookmarkUrl, cursor.getString(urlIndex)); | 361 Assert.assertEquals(0, cursor.getInt(bookmarkIndex)); |
339 assertEquals(1, cursor.getInt(visitsIndex)); | |
340 assertEquals(updateDate, cursor.getLong(dataIndex)); | |
341 assertEquals(createDate, cursor.getLong(createdIndex)); | |
342 assertEquals(0, cursor.getInt(bookmarkIndex)); | |
343 // TODO(michaelbai): according to the test this should be null instead o
f an empty byte[]. | 362 // TODO(michaelbai): according to the test this should be null instead o
f an empty byte[]. |
344 // BUG 6288508 | 363 // BUG 6288508 |
345 // assertTrue(cursor.isNull(FAVICON_INDEX)); | 364 // assertTrue(cursor.isNull(FAVICON_INDEX)); |
346 assertEquals(Id, cursor.getInt(idIndex)); | 365 Assert.assertEquals(Id, cursor.getInt(idIndex)); |
347 | 366 |
348 // Test: delete. | 367 // Test: delete. |
349 getContentResolver().delete(insertUri, null, null); | 368 mProviderTestRule.getContentResolver().delete(insertUri, null, null); |
350 cursor = getContentResolver().query( | 369 cursor = mProviderTestRule.getContentResolver().query( |
351 mBookmarksUri, | 370 mBookmarksUri, bookmarksProjection, BookmarkColumns.ID + " = " +
Id, null, null); |
352 bookmarksProjection, | 371 Assert.assertEquals(0, cursor.getCount()); |
353 BookmarkColumns.ID + " = " + Id, | |
354 null, null); | |
355 assertEquals(0, cursor.getCount()); | |
356 } | 372 } |
357 | 373 |
358 /** | 374 /** |
359 * Checks if two byte arrays are equal. Used to compare icons. | 375 * Checks if two byte arrays are equal. Used to compare icons. |
360 * @return True if equal, false otherwise. | 376 * @return True if equal, false otherwise. |
361 */ | 377 */ |
362 private static boolean byteArraysEqual(byte[] byte1, byte[] byte2) { | 378 private static boolean byteArraysEqual(byte[] byte1, byte[] byte2) { |
363 if (byte1 == null && byte2 != null) { | 379 if (byte1 == null && byte2 != null) { |
364 return byte2.length == 0; | 380 return byte2.length == 0; |
365 } | 381 } |
366 if (byte2 == null && byte1 != null) { | 382 if (byte2 == null && byte1 != null) { |
367 return byte1.length == 0; | 383 return byte1.length == 0; |
368 } | 384 } |
369 return Arrays.equals(byte1, byte2); | 385 return Arrays.equals(byte1, byte2); |
370 } | 386 } |
371 } | 387 } |
OLD | NEW |