BP2ProviderTests.java revision 57e39f9e46091750c8a07895531446a7f0efdb21
1/* 2 * Copyright (C) 2011 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 17package com.android.browser.tests; 18 19import com.android.browser.tests.utils.BP2TestCaseHelper; 20 21import android.content.ContentUris; 22import android.content.ContentValues; 23import android.database.Cursor; 24import android.graphics.Bitmap; 25import android.graphics.Bitmap.Config; 26import android.net.Uri; 27import android.provider.BrowserContract; 28import android.provider.BrowserContract.Images; 29import android.test.suitebuilder.annotation.SmallTest; 30 31import java.io.ByteArrayOutputStream; 32 33@SmallTest 34public class BP2ProviderTests extends BP2TestCaseHelper { 35 36 public void testUpdateImage() { 37 String url = "http://stub1.com"; 38 insertBookmark(url, "stub 1"); 39 ContentValues values = new ContentValues(); 40 values.put(Images.URL, url); 41 Bitmap bitmap = Bitmap.createBitmap(1, 1, Config.ARGB_8888); 42 ByteArrayOutputStream os = new ByteArrayOutputStream(); 43 bitmap.compress(Bitmap.CompressFormat.PNG, 100, os); 44 values.put(Images.THUMBNAIL, os.toByteArray()); 45 // Use updateBookmarks because the bookmarks URI observer should 46 // be triggered, even though we aren't giving it a bookmarks URI 47 assertTrue(updateBookmark(Images.CONTENT_URI, values)); 48 } 49 50 public void testIsValidParentNullAccount() { 51 doTestIsValidParent(null, null); 52 } 53 54 public void testIsValidParentWithAccount() { 55 doTestIsValidParent("test@gmail.com", "com.google"); 56 } 57 58 private void doTestIsValidParent(String accountName, String accountType) { 59 ContentValues values = new ContentValues(); 60 values.put(BrowserContract.Bookmarks.TITLE, "New Folder"); 61 values.put(BrowserContract.Bookmarks.IS_FOLDER, 1); 62 values.put(BrowserContract.Bookmarks.ACCOUNT_NAME, accountName); 63 values.put(BrowserContract.Bookmarks.ACCOUNT_TYPE, accountType); 64 Uri folderUri = insertBookmark(values); 65 assertNotNull(folderUri); 66 long folderId = ContentUris.parseId(folderUri); 67 assertTrue("Failed to parse folder id!", folderId > 0); 68 values.put(BrowserContract.Bookmarks.TITLE, "google"); 69 values.put(BrowserContract.Bookmarks.URL, "http://google.com"); 70 values.put(BrowserContract.Bookmarks.IS_FOLDER, 0); 71 values.put(BrowserContract.Bookmarks.PARENT, folderId); 72 Uri insertedUri = insertBookmark(values); 73 assertNotNull(insertedUri); 74 Cursor c = getMockContentResolver().query(insertedUri, 75 new String[] { BrowserContract.Bookmarks.PARENT }, 76 null, null, null); 77 try { 78 assertNotNull(c); 79 assertTrue(c.moveToFirst()); 80 long insertedParentId = c.getLong(0); 81 assertEquals(folderId, insertedParentId); 82 if (accountName == null) { 83 values.put(BrowserContract.Bookmarks.ACCOUNT_NAME, "test2@gmail.com"); 84 values.put(BrowserContract.Bookmarks.ACCOUNT_TYPE, "com.google"); 85 } else { 86 values.remove(BrowserContract.Bookmarks.ACCOUNT_NAME); 87 values.remove(BrowserContract.Bookmarks.ACCOUNT_TYPE); 88 } 89 insertedUri = insertBookmark(values); 90 assertNotNull(insertedUri); 91 c.close(); 92 c = getMockContentResolver().query(insertedUri, 93 new String[] { BrowserContract.Bookmarks.PARENT }, 94 null, null, null); 95 assertNotNull(c); 96 assertTrue(c.moveToFirst()); 97 insertedParentId = c.getLong(0); 98 assertFalse("child has different accounts than parent!", 99 folderId == insertedParentId); 100 } finally { 101 c.close(); 102 } 103 } 104} 105