From 5b0c2c7f344e72915ac63ff45cf3d65885373a39 Mon Sep 17 00:00:00 2001 From: Makoto Onuki Date: Fri, 10 Sep 2010 14:37:01 -0700 Subject: [PATCH] Fix tests broken by I2bf5de4e (Clean-ups for EmailProvider) My previous CL broke some tests. - make sure to set 0 to unreadCount when adding a new row - when updating messageCount in the tests, directly manipulate the DB. (the provider no longer allows this) Change-Id: Ib569349707007badf4f23600fbca37110c78fa6d --- .../android/email/provider/EmailProvider.java | 23 ++++++++++--------- .../android/email/provider/ProviderTests.java | 4 +++- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/src/com/android/email/provider/EmailProvider.java b/src/com/android/email/provider/EmailProvider.java index 5cb2d31d0..2a3b0eb06 100644 --- a/src/com/android/email/provider/EmailProvider.java +++ b/src/com/android/email/provider/EmailProvider.java @@ -1042,7 +1042,12 @@ public class EmailProvider extends ContentProvider { Log.v(TAG, "EmailProvider.insert: uri=" + uri + ", match is " + match); } - removeAutoColumnsFromContentValues(match, values); + // We do NOT allow setting of unreadCount/messageCount via the provider + // These columns are maintained via triggers + if (match == MAILBOX_ID || match == MAILBOX) { + values.put(MailboxColumns.UNREAD_COUNT, 0); + values.put(MailboxColumns.MESSAGE_COUNT, 0); + } Uri resultUri = null; @@ -1261,7 +1266,12 @@ public class EmailProvider extends ContentProvider { Log.v(TAG, "EmailProvider.update: uri=" + uri + ", match is " + match); } - removeAutoColumnsFromContentValues(match, values); + // We do NOT allow setting of unreadCount/messageCount via the provider + // These columns are maintained via triggers + if (match == MAILBOX_ID || match == MAILBOX) { + values.remove(MailboxColumns.UNREAD_COUNT); + values.remove(MailboxColumns.MESSAGE_COUNT); + } String id; try { @@ -1344,15 +1354,6 @@ public class EmailProvider extends ContentProvider { return result; } - private static void removeAutoColumnsFromContentValues(int match, ContentValues values) { - // We do NOT allow setting of unreadCount/messageCount via the provider - // These columns are maintained via triggers - if (match == MAILBOX_ID || match == MAILBOX) { - values.remove(MailboxColumns.UNREAD_COUNT); - values.remove(MailboxColumns.MESSAGE_COUNT); - } - } - /* (non-Javadoc) * @see android.content.ContentProvider#applyBatch(android.content.ContentProviderOperation) */ diff --git a/tests/src/com/android/email/provider/ProviderTests.java b/tests/src/com/android/email/provider/ProviderTests.java index c1289cdc2..4704afc8b 100644 --- a/tests/src/com/android/email/provider/ProviderTests.java +++ b/tests/src/com/android/email/provider/ProviderTests.java @@ -1849,7 +1849,9 @@ public class ProviderTests extends ProviderTestCase2 { ContentValues values = new ContentValues(); values.put(MailboxColumns.MESSAGE_COUNT, -1); - getProvider().update(Mailbox.CONTENT_URI, values, null, null); + // EmailProvider.update() doesn't allow updating messageCount, so directly use the DB. + SQLiteDatabase db = getProvider().getDatabase(mMockContext); + db.update(Mailbox.TABLE_NAME, values, null, null); } /**