Merge "suppress copyPixel error"
diff --git a/src/com/android/browser/Controller.java b/src/com/android/browser/Controller.java
index 89b700b..7c93e9f 100644
--- a/src/com/android/browser/Controller.java
+++ b/src/com/android/browser/Controller.java
@@ -1000,7 +1000,7 @@
if (username != null && password != null) {
handler.proceed(username, password);
} else {
- if (tab.inForeground()) {
+ if (tab.inForeground() && !handler.suppressDialog()) {
mPageDialogsHandler.showHttpAuthentication(tab, handler, host, realm);
} else {
handler.cancel();
diff --git a/src/com/android/browser/provider/BrowserProvider.java b/src/com/android/browser/provider/BrowserProvider.java
index fabf57e..b55b84a 100644
--- a/src/com/android/browser/provider/BrowserProvider.java
+++ b/src/com/android/browser/provider/BrowserProvider.java
@@ -251,7 +251,7 @@
public DatabaseHelper(Context context) {
super(context, sDatabaseName, null, DATABASE_VERSION);
- mContext = context.getApplicationContext();
+ mContext = context;
}
@Override
diff --git a/tests/src/com/android/browser/tests/BP2ProviderTests.java b/tests/src/com/android/browser/tests/BP2ProviderTests.java
index 6c3c71e..fa1b9ef 100644
--- a/tests/src/com/android/browser/tests/BP2ProviderTests.java
+++ b/tests/src/com/android/browser/tests/BP2ProviderTests.java
@@ -33,6 +33,15 @@
@SmallTest
public class BP2ProviderTests extends BP2TestCaseHelper {
+ static final String[] PROJECTION = new String[] {
+ BrowserContract.Bookmarks.PARENT,
+ BrowserContract.Bookmarks.ACCOUNT_NAME,
+ BrowserContract.Bookmarks.ACCOUNT_TYPE,
+ };
+ static final int INDEX_PARENT = 0;
+ static final int INDEX_ACCOUNT_NAME = 1;
+ static final int INDEX_ACCOUNT_TYPE = 2;
+
public void testUpdateImage() {
String url = "http://stub1.com";
insertBookmark(url, "stub 1");
@@ -56,6 +65,7 @@
}
private void doTestIsValidParent(String accountName, String accountType) {
+ // Create the folder
ContentValues values = new ContentValues();
values.put(BrowserContract.Bookmarks.TITLE, "New Folder");
values.put(BrowserContract.Bookmarks.IS_FOLDER, 1);
@@ -65,6 +75,7 @@
assertNotNull(folderUri);
long folderId = ContentUris.parseId(folderUri);
assertTrue("Failed to parse folder id!", folderId > 0);
+ // Insert a bookmark with the same ACCOUNT_* info as parent
values.put(BrowserContract.Bookmarks.TITLE, "google");
values.put(BrowserContract.Bookmarks.URL, "http://google.com");
values.put(BrowserContract.Bookmarks.IS_FOLDER, 0);
@@ -72,31 +83,54 @@
Uri insertedUri = insertBookmark(values);
assertNotNull(insertedUri);
Cursor c = getMockContentResolver().query(insertedUri,
- new String[] { BrowserContract.Bookmarks.PARENT },
- null, null, null);
+ PROJECTION, null, null, null);
try {
assertNotNull(c);
assertTrue(c.moveToFirst());
- long insertedParentId = c.getLong(0);
+ long insertedParentId = c.getLong(INDEX_PARENT);
+ String insertedAccountName = c.getString(INDEX_ACCOUNT_NAME);
+ String insertedAccountType = c.getString(INDEX_ACCOUNT_TYPE);
assertEquals(folderId, insertedParentId);
- if (accountName == null) {
- values.put(BrowserContract.Bookmarks.ACCOUNT_NAME, "test2@gmail.com");
- values.put(BrowserContract.Bookmarks.ACCOUNT_TYPE, "com.google");
- } else {
- values.remove(BrowserContract.Bookmarks.ACCOUNT_NAME);
- values.remove(BrowserContract.Bookmarks.ACCOUNT_TYPE);
- }
+ assertEquals(accountName, insertedAccountName);
+ assertEquals(accountType, insertedAccountType);
+
+ // Insert a bookmark with no ACCOUNT_* set, BUT with a valid parent
+ // The inserted should end up with the ACCOUNT_* of the parent
+ values.remove(BrowserContract.Bookmarks.ACCOUNT_NAME);
+ values.remove(BrowserContract.Bookmarks.ACCOUNT_TYPE);
insertedUri = insertBookmark(values);
assertNotNull(insertedUri);
c.close();
c = getMockContentResolver().query(insertedUri,
- new String[] { BrowserContract.Bookmarks.PARENT },
- null, null, null);
+ PROJECTION, null, null, null);
assertNotNull(c);
assertTrue(c.moveToFirst());
- insertedParentId = c.getLong(0);
- assertFalse("child has different accounts than parent!",
- folderId == insertedParentId);
+ insertedParentId = c.getLong(INDEX_PARENT);
+ insertedAccountName = c.getString(INDEX_ACCOUNT_NAME);
+ insertedAccountType = c.getString(INDEX_ACCOUNT_TYPE);
+ assertEquals(folderId, insertedParentId);
+ assertEquals(accountName, insertedAccountName);
+ assertEquals(accountType, insertedAccountType);
+
+ // Insert a bookmark with a different ACCOUNT_* than it's parent
+ // ACCOUNT_* should override parent
+ accountName = accountName + "@something.else";
+ accountType = "com.google";
+ values.put(BrowserContract.Bookmarks.ACCOUNT_NAME, accountName);
+ values.put(BrowserContract.Bookmarks.ACCOUNT_TYPE, accountType);
+ insertedUri = insertBookmark(values);
+ assertNotNull(insertedUri);
+ c.close();
+ c = getMockContentResolver().query(insertedUri,
+ PROJECTION, null, null, null);
+ assertNotNull(c);
+ assertTrue(c.moveToFirst());
+ insertedParentId = c.getLong(INDEX_PARENT);
+ insertedAccountName = c.getString(INDEX_ACCOUNT_NAME);
+ insertedAccountType = c.getString(INDEX_ACCOUNT_TYPE);
+ assertNotSame(folderId, insertedParentId);
+ assertEquals(accountName, insertedAccountName);
+ assertEquals(accountType, insertedAccountType);
} finally {
c.close();
}
diff --git a/tests/src/com/android/browser/tests/utils/BP2TestCaseHelper.java b/tests/src/com/android/browser/tests/utils/BP2TestCaseHelper.java
index 18c1c10..e341c6a 100644
--- a/tests/src/com/android/browser/tests/utils/BP2TestCaseHelper.java
+++ b/tests/src/com/android/browser/tests/utils/BP2TestCaseHelper.java
@@ -18,6 +18,9 @@
import com.android.browser.provider.BrowserProvider2;
+import java.io.File;
+import java.io.FilenameFilter;
+
import android.content.ContentValues;
import android.database.ContentObserver;
import android.net.Uri;
@@ -208,4 +211,22 @@
perfIdeallyUntriggered(mBookmarksObserver, mWidgetObserver);
return updated;
}
+
+ @Override
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ // Delete the test databases so that subsequent runs have a clean slate
+ File f = getMockContext().getDatabasePath("test");
+ File dir = f.getParentFile();
+ File testFiles[] = dir.listFiles(new FilenameFilter() {
+
+ @Override
+ public boolean accept(File dir, String filename) {
+ return filename.startsWith(ProviderTestCase3.FILENAME_PREFIX);
+ }
+ });
+ for (File testFile : testFiles) {
+ testFile.delete();
+ }
+ }
}
diff --git a/tests/src/com/android/browser/tests/utils/ProviderTestCase3.java b/tests/src/com/android/browser/tests/utils/ProviderTestCase3.java
index 536163a..75bc052 100644
--- a/tests/src/com/android/browser/tests/utils/ProviderTestCase3.java
+++ b/tests/src/com/android/browser/tests/utils/ProviderTestCase3.java
@@ -35,6 +35,8 @@
*/
public abstract class ProviderTestCase3<T extends ContentProvider> extends AndroidTestCase {
+ public static final String FILENAME_PREFIX = "test.";
+
Class<T> mProviderClass;
String[] mProviderAuthority;
@@ -112,13 +114,12 @@
super.setUp();
mResolver = new MockContentResolver2();
- final String filenamePrefix = "test.";
RenamingDelegatingContext targetContextWrapper = new
RenamingDelegatingContext(
new MockContext2(), // The context that most methods are
//delegated to
getContext(), // The context that file methods are delegated to
- filenamePrefix);
+ FILENAME_PREFIX);
// The default IsolatedContext has a mock AccountManager that doesn't
// work for us, so override getSystemService to always return null
mProviderContext = new IsolatedContext(mResolver, targetContextWrapper) {