From b1aa213ce95b908b1c90356b8fc4445599d55eca Mon Sep 17 00:00:00 2001 From: Raman Tenneti Date: Thu, 9 Jul 2020 18:37:41 -0700 Subject: [PATCH] AOSP/Messaging - Changes to make unit tests to run and pass. + Added missing androix libraries to LOCAL_STATIC_ANDROID_LIBRARIES. + Added keep class statements for androidx and messaging classes. + Deleted Assert.isEngBuild call (this package is the last user of that method). + Added import statements for androidx classes. Test: manual - Tested the messaging UI. Ran the following tests on Pixel phone. $ make -j 40 $ make messagingtests -j $ find out -name "messaging*.apk" -print -exec ls -l {} \; -rw-r----- 1 rtenneti primarygroup 733809 Jul 9 17:42 out/target/product/bonito/testcases/messagingtests/arm64/messagingtests.apk -rw-r----- 1 rtenneti primarygroup 10799132 Jul 9 18:34 out/target/product/bonito/product/app/messaging/messaging.apk $ adb install -r -d -t out/target/product/bonito/product/app/messaging/messaging.apk $ adb install -r -d -t out/target/product/bonito/testcases/messagingtests/arm64/messagingtests.apk $ adb shell am instrument -w com.android.messaging.test com.android.messaging.datamodel.BindingTest:....... com.android.messaging.datamodel.BitmapPoolTest:.... com.android.messaging.datamodel.ConversationListTest:. com.android.messaging.datamodel.DataModelTest:... com.android.messaging.datamodel.FrequentContactsCursorBuilderTest:... com.android.messaging.datamodel.MemoryCacheManagerTest:. com.android.messaging.datamodel.ParticipantRefreshTest:.......... com.android.messaging.datamodel.action.ActionServiceSystemTest:..... com.android.messaging.datamodel.action.ActionServiceTest:.. com.android.messaging.datamodel.action.ActionTest:..... com.android.messaging.datamodel.action.GetOrCreateConversationActionTest:. com.android.messaging.datamodel.action.ReadWriteDraftMessageActionTest:...... com.android.messaging.datamodel.data.ConversationMessageDataTest:... com.android.messaging.datamodel.data.ConversationParticipantsDataTest:. com.android.messaging.datamodel.media.ImageRequestTest:.. com.android.messaging.datamodel.media.MediaResourceManagerTest:..... com.android.messaging.ui.CustomHeaderViewPagerTest:. com.android.messaging.ui.MultiAttachmentLayoutTest:... com.android.messaging.ui.attachmentchooser.AttachmentChooserFragmentTest:. com.android.messaging.ui.contact.ContactListItemViewTest:.... com.android.messaging.ui.contact.ContactPickerFragmentTest:...... com.android.messaging.ui.conversation.ComposeMessageViewTest:.. com.android.messaging.ui.conversation.ConversationActivityUiStateTest:.... com.android.messaging.ui.conversation.ConversationFragmentTest:.. com.android.messaging.ui.conversation.ConversationInputManagerTest:..... com.android.messaging.ui.conversation.ConversationMessageViewTest:... com.android.messaging.ui.conversationlist.ConversationListFragmentTest:... com.android.messaging.ui.conversationlist.ConversationListItemViewTest:.... com.android.messaging.ui.mediapicker.AudioRecordViewTest:. com.android.messaging.ui.mediapicker.CameraManagerTest:...... com.android.messaging.ui.mediapicker.GalleryGridItemViewTest:..... com.android.messaging.ui.mediapicker.MediaPickerTest:.. com.android.messaging.util.BugleGservicesTest:. com.android.messaging.util.YouTubeUtilTest:. Test results for InstrumentationTestRunner=......................................... ......................................... ............................... Time: 9.903 OK (113 tests) Change-Id: If8fd8036791027739eb9bbb1d3849a46211a5137 --- Android.mk | 6 ++++-- proguard-test.flags | 4 +--- proguard.flags | 7 ++++++- src/com/android/messaging/datamodel/DatabaseHelper.java | 1 - .../messaging/ui/contact/ContactPickerFragmentTest.java | 1 + .../ui/conversation/ConversationFragmentTest.java | 1 + 6 files changed, 13 insertions(+), 7 deletions(-) diff --git a/Android.mk b/Android.mk index 09214ba..5be9f0a 100644 --- a/Android.mk +++ b/Android.mk @@ -23,14 +23,16 @@ LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res LOCAL_USE_AAPT2 := true LOCAL_STATIC_ANDROID_LIBRARIES := \ + androidx.appcompat_appcompat \ + androidx.collection_collection \ androidx.core_core \ + androidx.fragment_fragment \ androidx.media_media \ androidx.legacy_legacy-support-core-utils \ androidx.legacy_legacy-support-core-ui \ - androidx.fragment_fragment \ - androidx.appcompat_appcompat \ androidx.palette_palette \ androidx.recyclerview_recyclerview \ + androidx.viewpager_viewpager \ androidx.legacy_legacy-support-v13 \ colorpicker \ libchips \ diff --git a/proguard-test.flags b/proguard-test.flags index 353970a..50f69a2 100755 --- a/proguard-test.flags +++ b/proguard-test.flags @@ -18,8 +18,6 @@ -dontobfuscate -dontoptimize - - # FLAG(dnotario): Until we rationalize how to handle tests (extensive unit tests will want similar # settings to these, but maybe we want to require VisibleForTesting attribute), just expose all # non-private methods. This means we cannot run tests on user builds for the moment. @@ -35,7 +33,7 @@ !private *; } --keep class com.android.messaging.ui.contact.* { *; } +-keep class com.android.messaging.ui.*.* { *; } # Keep the classes needed by emma -keep class com.vladium.** { *; } diff --git a/proguard.flags b/proguard.flags index cb04900..c5bbb42 100644 --- a/proguard.flags +++ b/proguard.flags @@ -21,7 +21,9 @@ -keepclassmembers class * { @com.google.common.annotations.VisibleForTesting *; } --keep class com.android.messaging.ui.contact.* { *; } +-keep class com.android.messaging.* { *; } +-keep class com.android.messaging.*.* { *; } +-keep class com.android.messaging.*.*.* { *; } # Keep methods that have the @VisibleForAnimation annotation -keep @interface com.android.messaging.annotation.VisibleForAnimation @@ -39,10 +41,13 @@ -keep public class * extends androidx.fragment.app.Fragment -keep public class com.android.vcard.* { *; } +-keep class androidx.collection.* { *; } -keep class androidx.core.* { *; } -keep class androidx.core.*.* { *; } -keep class androidx.appcompat.* { *; } -keep class androidx.appcompat.*.* { *; } +-keep class androidx.recyclerview.widget.* { *; } +-keep class androidx.viewpager.widget.* { *; } # Keep rastermill classes that need to be accessed from native code (JNI) -keep class android.support.rastermill.** { *; } diff --git a/src/com/android/messaging/datamodel/DatabaseHelper.java b/src/com/android/messaging/datamodel/DatabaseHelper.java index 2025e2c..ed4a287 100644 --- a/src/com/android/messaging/datamodel/DatabaseHelper.java +++ b/src/com/android/messaging/datamodel/DatabaseHelper.java @@ -603,7 +603,6 @@ public class DatabaseHelper extends SQLiteOpenHelper { */ @VisibleForTesting static DatabaseHelper getNewInstanceForTest(final Context context) { - Assert.isEngBuild(); Assert.isTrue(BugleApplication.isRunningTests()); return new DatabaseHelper(context); } diff --git a/tests/src/com/android/messaging/ui/contact/ContactPickerFragmentTest.java b/tests/src/com/android/messaging/ui/contact/ContactPickerFragmentTest.java index 1997a4d..47b65f1 100644 --- a/tests/src/com/android/messaging/ui/contact/ContactPickerFragmentTest.java +++ b/tests/src/com/android/messaging/ui/contact/ContactPickerFragmentTest.java @@ -18,6 +18,7 @@ package com.android.messaging.ui.contact; import android.content.Context; import android.database.Cursor; +import androidx.viewpager.widget.PagerAdapter; import androidx.viewpager.widget.ViewPager; import android.test.suitebuilder.annotation.LargeTest; import android.view.View; diff --git a/tests/src/com/android/messaging/ui/conversation/ConversationFragmentTest.java b/tests/src/com/android/messaging/ui/conversation/ConversationFragmentTest.java index 797a2f1..658a1be 100644 --- a/tests/src/com/android/messaging/ui/conversation/ConversationFragmentTest.java +++ b/tests/src/com/android/messaging/ui/conversation/ConversationFragmentTest.java @@ -20,6 +20,7 @@ import android.app.Activity; import android.app.Fragment; import android.database.Cursor; import androidx.recyclerview.widget.RecyclerView; +import androidx.recyclerview.widget.RecyclerView.Adapter; import android.test.suitebuilder.annotation.LargeTest; import com.android.messaging.FakeFactory;