EMMA Coverage Report (generated Tue Aug 20 10:07:21 PDT 2013)
[all classes][org.chromium.chrome.browser.test]

COVERAGE SUMMARY FOR SOURCE FILE [ProviderBookmarksUriTest.java]

nameclass, %method, %block, %line, %
ProviderBookmarksUriTest.java0%   (0/1)0%   (0/9)0%   (0/1500)0%   (0/231)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class ProviderBookmarksUriTest0%   (0/1)0%   (0/9)0%   (0/1500)0%   (0/231)
ProviderBookmarksUriTest (): void 0%   (0/1)0%   (0/3)0%   (0/1)
addBookmark (String, String, long, long, int, byte [], int): Uri 0%   (0/1)0%   (0/43)0%   (0/9)
setUp (): void 0%   (0/1)0%   (0/16)0%   (0/4)
tearDown (): void 0%   (0/1)0%   (0/11)0%   (0/3)
testAddBookmark (): void 0%   (0/1)0%   (0/171)0%   (0/36)
testBookmarksTable (): void 0%   (0/1)0%   (0/280)0%   (0/52)
testDeleteBookmark (): void 0%   (0/1)0%   (0/229)0%   (0/26)
testQueryBookmark (): void 0%   (0/1)0%   (0/444)0%   (0/59)
testUpdateBookmark (): void 0%   (0/1)0%   (0/303)0%   (0/41)

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

[all classes][org.chromium.chrome.browser.test]
EMMA 2.0.5312 (C) Vladimir Roubtsov