summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomasz Mikolajewski <mtomasz@google.com>2017-02-28 15:42:50 +0900
committerTomasz Mikolajewski <mtomasz@google.com>2017-02-28 16:20:50 +0900
commitb96eb04b2a8ff4b7d47b09b4b2b5493c032e4d36 (patch)
treedcbe552021c8c0e30be3499e4652de6c21eea2e3
parentbdd2c887bbce4290c8f28bd0b4dec0c9988cfab6 (diff)
downloadUnifiedEmail-b96eb04b2a8ff4b7d47b09b4b2b5493c032e4d36.tar.gz
Fix tests for apps/UnifiedEmail.
They stopped compiling due to changes in O. Issues fixed: - Handler created on a thread without Looper. - Method not visible from userdebug built tests. - Exception thrown due to mismatching authorities in ContentProvider. Test: The tests compile and pass. Bug: 33609522 Change-Id: Ibe74c1d2f7c9a3cb16839ad0db1117146757c523
-rw-r--r--proguard-test.flags4
-rw-r--r--src/com/android/mail/ui/ActionableToastBar.java2
-rw-r--r--src/com/android/mail/utils/Utils.java2
-rw-r--r--tests/src/com/android/mail/browse/ConversationCursorTests.java3
-rw-r--r--tests/src/com/android/mail/browse/EmlMessageLoaderTest.java4
-rw-r--r--tests/src/com/android/mail/browse/TestProvider.java24
-rw-r--r--tests/src/com/android/mail/browse/TestProviderTests.java26
7 files changed, 24 insertions, 41 deletions
diff --git a/proguard-test.flags b/proguard-test.flags
index 2eb8cfa59..b73581421 100644
--- a/proguard-test.flags
+++ b/proguard-test.flags
@@ -29,10 +29,6 @@
public static boolean updateMessageFields(...);
}
--keep class com.android.mail.utils.Utils {
- public static android.text.Spanned insertStringWithStyle(...);
-}
-
-keepclasseswithmembers class * {
*** findProviderForDomain(...);
}
diff --git a/src/com/android/mail/ui/ActionableToastBar.java b/src/com/android/mail/ui/ActionableToastBar.java
index 8ad98287a..c6bf99090 100644
--- a/src/com/android/mail/ui/ActionableToastBar.java
+++ b/src/com/android/mail/ui/ActionableToastBar.java
@@ -459,4 +459,4 @@ public class ActionableToastBar extends FrameLayout {
public interface ActionClickedListener {
public void onActionClicked(Context context);
}
-} \ No newline at end of file
+}
diff --git a/src/com/android/mail/utils/Utils.java b/src/com/android/mail/utils/Utils.java
index a9c93bf16..95e8ee6ce 100644
--- a/src/com/android/mail/utils/Utils.java
+++ b/src/com/android/mail/utils/Utils.java
@@ -36,6 +36,7 @@ import android.os.Build;
import android.os.Bundle;
import android.provider.Browser;
import android.support.annotation.Nullable;
+import android.support.annotation.VisibleForTesting;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.TextUtils;
@@ -1069,6 +1070,7 @@ public class Utils {
* Applies the given appearance on the given subString, and inserts that as a parameter in the
* given parentString.
*/
+ @VisibleForTesting
public static Spanned insertStringWithStyle(Context context,
String entireString, String subString, int appearance) {
final int index = entireString.indexOf(subString);
diff --git a/tests/src/com/android/mail/browse/ConversationCursorTests.java b/tests/src/com/android/mail/browse/ConversationCursorTests.java
index bd8c928b2..50345263b 100644
--- a/tests/src/com/android/mail/browse/ConversationCursorTests.java
+++ b/tests/src/com/android/mail/browse/ConversationCursorTests.java
@@ -25,6 +25,7 @@ import android.content.ContentValues;
import android.content.Context;
import android.content.OperationApplicationException;
import android.net.Uri;
+import android.os.Looper;
import android.os.RemoteException;
import android.test.ProviderTestCase2;
import android.test.mock.MockContentResolver;
@@ -47,6 +48,7 @@ public class ConversationCursorTests extends ProviderTestCase2<TestProvider> {
public ConversationCursorTests() {
super(TestProvider.class, TestProvider.AUTHORITY);
+ Looper.prepare();
mActivity = new Activity() {
@Override
public ContentResolver getContentResolver() {
@@ -60,7 +62,6 @@ public class ConversationCursorTests extends ProviderTestCase2<TestProvider> {
super.setUp();
mMockContext = getMockContext();
mMockResolver = (MockContentResolver)mMockContext.getContentResolver();
- mMockResolver.addProvider(TestProvider.AUTHORITY, new TestProvider(mMockContext));
}
@Override
diff --git a/tests/src/com/android/mail/browse/EmlMessageLoaderTest.java b/tests/src/com/android/mail/browse/EmlMessageLoaderTest.java
index 8e4b803e4..54f1a254c 100644
--- a/tests/src/com/android/mail/browse/EmlMessageLoaderTest.java
+++ b/tests/src/com/android/mail/browse/EmlMessageLoaderTest.java
@@ -54,8 +54,8 @@ public class EmlMessageLoaderTest extends LoaderTestCase {
@SmallTest
public void testLoadingBlankEml() throws Exception {
- final Uri emptyEmlUri = TestProvider.uri(
- new Uri.Builder().scheme("content").authority("empty").path("empty").build());
+ final Uri emptyEmlUri = new Uri.Builder().scheme("content").authority(
+ TestProvider.AUTHORITY).path("empty").build();
final ContentValues cv = new ContentValues(2);
cv.put(OpenableColumns.DISPLAY_NAME, "Empty.eml");
cv.put(OpenableColumns.SIZE, 0);
diff --git a/tests/src/com/android/mail/browse/TestProvider.java b/tests/src/com/android/mail/browse/TestProvider.java
index df305b579..19d5ec30e 100644
--- a/tests/src/com/android/mail/browse/TestProvider.java
+++ b/tests/src/com/android/mail/browse/TestProvider.java
@@ -21,6 +21,7 @@ import android.content.ContentProvider;
import android.content.ContentValues;
import android.content.Context;
import android.content.UriMatcher;
+import android.content.pm.ProviderInfo;
import android.database.Cursor;
import android.database.MatrixCursor;
import android.net.Uri;
@@ -54,9 +55,6 @@ import java.util.Set;
* delete() and update() do not allow non-null selection or selectionArgs arguments; the presence
* of these will result in an UnsupportedOperationException
*
- * NOTE: When using any operation other than applyBatch, the Uri to be used must be created with
- * MockProvider.uri(yourUri). This guarantees that the operation is sent to MockProvider
- *
* NOTE: MockProvider only simulates direct storage/retrieval of rows; it does not (and can not)
* simulate other actions (e.g. creation of ancillary data) that the actual provider might perform
*
@@ -64,6 +62,7 @@ import java.util.Set;
**/
public class TestProvider extends ContentProvider {
public static final String AUTHORITY = "com.android.mail.mock.provider";
+
/* package */static final UriMatcher sURIMatcher = new UriMatcher(UriMatcher.NO_MATCH);
/* package */static final int TABLE = 100;
@@ -77,7 +76,9 @@ public class TestProvider extends ContentProvider {
public TestProvider(Context context) {
this();
- attachInfo(context, null);
+ ProviderInfo info = new ProviderInfo();
+ info.authority = AUTHORITY;
+ attachInfo(context, info);
}
// We'll store our values here
@@ -85,17 +86,6 @@ public class TestProvider extends ContentProvider {
// And we'll generate new id's from here
long mMockId = 1;
- /**
- * Create a Uri for MockProvider from a given Uri
- *
- * @param uri the Uri from which the MockProvider Uri will be created
- * @return a Uri that can be used with MockProvider
- */
- public static Uri uri(Uri uri) {
- return new Uri.Builder().scheme("content").authority(AUTHORITY)
- .path(uri.getPath().substring(1)).build();
- }
-
@Override
public int delete(Uri uri, String selection, String[] selectionArgs) {
if (selection != null || selectionArgs != null) {
@@ -144,7 +134,7 @@ public class TestProvider extends ContentProvider {
if (selection != null || selectionArgs != null || sortOrder != null || projection == null) {
throw new UnsupportedOperationException();
}
- final int match = sURIMatcher.match(uri(uri));
+ final int match = sURIMatcher.match(uri);
ArrayList<ContentValues> valuesList = new ArrayList<ContentValues>();
switch (match) {
case TABLE:
@@ -182,7 +172,7 @@ public class TestProvider extends ContentProvider {
if (selection != null || selectionArgs != null) {
throw new UnsupportedOperationException();
}
- final int match = sURIMatcher.match(uri(uri));
+ final int match = sURIMatcher.match(uri);
ArrayList<ContentValues> updateValuesList = new ArrayList<ContentValues>();
String path = uri.getPath();
switch (match) {
diff --git a/tests/src/com/android/mail/browse/TestProviderTests.java b/tests/src/com/android/mail/browse/TestProviderTests.java
index 0e26980c5..be45655ba 100644
--- a/tests/src/com/android/mail/browse/TestProviderTests.java
+++ b/tests/src/com/android/mail/browse/TestProviderTests.java
@@ -37,7 +37,6 @@ public class TestProviderTests extends ProviderTestCase2<TestProvider> {
Context mMockContext;
MockContentResolver mMockResolver;
- private static final String CANHAZ_AUTHORITY = "com.android.canhaz";
private static final String PONY_TABLE = "pony";
private static final String PONY_COLUMN_NAME = "name";
private static final String PONY_COLUMN_TYPE = "type";
@@ -60,7 +59,6 @@ public class TestProviderTests extends ProviderTestCase2<TestProvider> {
super.setUp();
mMockContext = getMockContext();
mMockResolver = (MockContentResolver)mMockContext.getContentResolver();
- mMockResolver.addProvider(CANHAZ_AUTHORITY, new TestProvider(mMockContext));
}
@Override
@@ -79,8 +77,7 @@ public class TestProviderTests extends ProviderTestCase2<TestProvider> {
private ContentProviderResult[] setupPonies() throws RemoteException,
OperationApplicationException {
- // The Uri is content://com.android.canhaz/pony
- Uri uri = new Uri.Builder().scheme("content").authority(CANHAZ_AUTHORITY)
+ Uri uri = new Uri.Builder().scheme("content").authority(TestProvider.AUTHORITY)
.path(PONY_TABLE).build();
// Our array of CPO's to be used with applyBatch
ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
@@ -95,12 +92,11 @@ public class TestProviderTests extends ProviderTestCase2<TestProvider> {
}
private static Uri getPonyUri() {
- return new Uri.Builder().scheme("content").authority(CANHAZ_AUTHORITY)
+ return new Uri.Builder().scheme("content").authority(TestProvider.AUTHORITY)
.path(PONY_TABLE).build();
}
public void testInsertQueryandDelete() throws RemoteException, OperationApplicationException {
- // The Uri is content://com.android.canhaz/pony
ContentProviderResult[] results = setupPonies();
Uri uri = getPonyUri();
@@ -108,10 +104,9 @@ public class TestProviderTests extends ProviderTestCase2<TestProvider> {
assertNotNull(results);
assertEquals(2, results.length);
// Make sure that we've created matcher entries for pony and pony/#
- assertEquals(TestProvider.TABLE, TestProvider.sURIMatcher.match(TestProvider.uri(uri)));
- assertEquals(TestProvider.RECORD,
- TestProvider.sURIMatcher.match(TestProvider.uri(results[0].uri)));
- Cursor c = mMockResolver.query(TestProvider.uri(uri), PONY_PROJECTION, null, null, null);
+ assertEquals(TestProvider.TABLE, TestProvider.sURIMatcher.match(uri));
+ assertEquals(TestProvider.RECORD, TestProvider.sURIMatcher.match(results[0].uri));
+ Cursor c = mMockResolver.query(uri, PONY_PROJECTION, null, null, null);
assertNotNull(c);
assertEquals(2, c.getCount());
long eliseId = -1;
@@ -138,9 +133,9 @@ public class TestProviderTests extends ProviderTestCase2<TestProvider> {
assertNotSame(-1, eliseId);
assertNotSame(-1, flickaId);
// Delete the elise record
- assertEquals(1, mMockResolver.delete(ContentUris.withAppendedId(TestProvider.uri(uri),
+ assertEquals(1, mMockResolver.delete(ContentUris.withAppendedId(uri,
eliseId), null, null));
- c = mMockResolver.query(TestProvider.uri(uri), PONY_PROJECTION, null, null, null);
+ c = mMockResolver.query(uri, PONY_PROJECTION, null, null, null);
assertNotNull(c);
// There should be one left (Flicka)
assertEquals(1, c.getCount());
@@ -149,17 +144,16 @@ public class TestProviderTests extends ProviderTestCase2<TestProvider> {
}
public void testUpdate() throws RemoteException, OperationApplicationException {
- // The Uri is content://com.android.canhaz/pony
Uri uri = getPonyUri();
setupPonies();
- Cursor c = mMockResolver.query(TestProvider.uri(uri), PONY_PROJECTION, null, null, null);
+ Cursor c = mMockResolver.query(uri, PONY_PROJECTION, null, null, null);
assertNotNull(c);
assertEquals(2, c.getCount());
// Give all the ponies 5 legs
ContentValues cv = new ContentValues();
cv.put(PONY_COLUMN_LEGS, 5);
- assertEquals(2, mMockResolver.update(TestProvider.uri(uri), cv, null, null));
- c = mMockResolver.query(TestProvider.uri(uri), PONY_PROJECTION, null, null, null);
+ assertEquals(2, mMockResolver.update(uri, cv, null, null));
+ c = mMockResolver.query(uri, PONY_PROJECTION, null, null, null);
assertNotNull(c);
// We should still have two records, and each should have 5 legs, but otherwise be the same
assertEquals(2, c.getCount());