From 37462ff9593be7b1a7e66253be911f6122cfc69b Mon Sep 17 00:00:00 2001 From: Beverly Date: Thu, 26 Mar 2020 16:23:52 -0400 Subject: [PATCH] Add mocked main looper to test Toasts were updated in frameworks/base and now will try to get the main looper when trying to create an AccesssibilityManager. Add this mock to avoid a null pointer when trying to post a ShadowToast. Fixes: 151844983 Test: atest make RunSettingsRoboTests7 Change-Id: I4cb6fe44506097b52ce1bb0c8ae7a502d0901f64 --- .../notification/zen/ZenModeEventRuleSettingsTest.java | 7 ++++--- .../notification/zen/ZenModeScheduleRuleSettingsTest.java | 7 ++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/tests/robotests/src/com/android/settings/notification/zen/ZenModeEventRuleSettingsTest.java b/tests/robotests/src/com/android/settings/notification/zen/ZenModeEventRuleSettingsTest.java index 0c49850f5b6..8ebac3097e0 100644 --- a/tests/robotests/src/com/android/settings/notification/zen/ZenModeEventRuleSettingsTest.java +++ b/tests/robotests/src/com/android/settings/notification/zen/ZenModeEventRuleSettingsTest.java @@ -19,6 +19,7 @@ package com.android.settings.notification.zen; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.mock; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @@ -28,11 +29,11 @@ import android.app.NotificationManager; import android.content.Context; import android.content.Intent; import android.content.res.Resources; +import android.os.Looper; import androidx.fragment.app.FragmentActivity; import com.android.settings.R; -import com.android.settings.notification.zen.ZenModeEventRuleSettings; import org.junit.Before; import org.junit.Test; @@ -40,7 +41,6 @@ import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricTestRunner; -import org.robolectric.RuntimeEnvironment; import org.robolectric.shadows.ShadowApplication; import org.robolectric.shadows.ShadowToast; @@ -68,7 +68,7 @@ public class ZenModeEventRuleSettingsTest { ShadowApplication shadowApplication = ShadowApplication.getInstance(); shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager); - mContext = RuntimeEnvironment.application; + mContext = application; mFragment = spy(new TestFragment()); mFragment.onAttach(application); @@ -81,6 +81,7 @@ public class ZenModeEventRuleSettingsTest { when(mActivity.getTheme()).thenReturn(res.newTheme()); when(mActivity.getIntent()).thenReturn(mIntent); when(mActivity.getResources()).thenReturn(res); + when(mActivity.getMainLooper()).thenReturn(mock(Looper.class)); when(mFragment.getContext()).thenReturn(mContext); } diff --git a/tests/robotests/src/com/android/settings/notification/zen/ZenModeScheduleRuleSettingsTest.java b/tests/robotests/src/com/android/settings/notification/zen/ZenModeScheduleRuleSettingsTest.java index a556dbfaa88..ff96d687902 100644 --- a/tests/robotests/src/com/android/settings/notification/zen/ZenModeScheduleRuleSettingsTest.java +++ b/tests/robotests/src/com/android/settings/notification/zen/ZenModeScheduleRuleSettingsTest.java @@ -19,6 +19,7 @@ package com.android.settings.notification.zen; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.mock; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @@ -28,11 +29,11 @@ import android.app.NotificationManager; import android.content.Context; import android.content.Intent; import android.content.res.Resources; +import android.os.Looper; import androidx.fragment.app.FragmentActivity; import com.android.settings.R; -import com.android.settings.notification.zen.ZenModeScheduleRuleSettings; import org.junit.Before; import org.junit.Test; @@ -40,7 +41,6 @@ import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricTestRunner; -import org.robolectric.RuntimeEnvironment; import org.robolectric.shadows.ShadowApplication; import org.robolectric.shadows.ShadowToast; @@ -65,7 +65,7 @@ public class ZenModeScheduleRuleSettingsTest { ShadowApplication shadowApplication = ShadowApplication.getInstance(); shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager); - mContext = RuntimeEnvironment.application; + mContext = application; mFragment = spy(new TestFragment()); mFragment.onAttach(application); @@ -78,6 +78,7 @@ public class ZenModeScheduleRuleSettingsTest { when(mActivity.getTheme()).thenReturn(res.newTheme()); when(mActivity.getIntent()).thenReturn(mIntent); when(mActivity.getResources()).thenReturn(res); + when(mActivity.getMainLooper()).thenReturn(mock(Looper.class)); when(mFragment.getContext()).thenReturn(mContext); }