From f4d44c5500afeb1326c2bfc47a4aa90fca3e1621 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mat=C3=ADas=20Hern=C3=A1ndez?= Date: Tue, 30 Jul 2024 14:30:06 +0200 Subject: [PATCH] Fix Zen tests that were failing with modes_ui enabled Actual fixes are in ZenModesListFragmentTest (was creating somewhat unrelated preferences with the actual ZenModesBackend, and isAvailable now returns true for them) and ZenModePreferenceControllerTest (no longer available with modes_ui). But also added EnableFlags(FLAG_MODES_UI) to all tests in notification/modes that lacked it, so we don't regress before we flip the flag. Bug: 356334282 Test: atest com.android.settings.notification Flag: android.app.modes_ui Change-Id: I791b52cfb3fd9adea61079b4b41e456c8b3fe7bd --- .../notification/modes/ZenModesListFragment.java | 13 ++++++------- .../modes/ConfigurationActivityHelperTest.java | 7 +++++++ .../modes/ManualDurationHelperTest.java | 9 +++++++++ ...odeAddBypassingAppsPreferenceControllerTest.java | 8 ++++++++ ...odeAllBypassingAppsPreferenceControllerTest.java | 9 +++++++++ .../ZenModeDisplayLinkPreferenceControllerTest.java | 2 +- .../ZenModeEditDonePreferenceControllerTest.java | 8 ++++++++ .../modes/ZenModeEditNameIconFragmentTest.java | 8 ++++++++ .../ZenModeEditNamePreferenceControllerTest.java | 9 ++++++++- .../ZenModeExitAtAlarmPreferenceControllerTest.java | 8 ++++++++ ...nModeIconPickerListPreferenceControllerTest.java | 7 +++++++ ...ZenModeMessagesLinkPreferenceControllerTest.java | 2 +- .../modes/ZenModeNewCustomFragmentTest.java | 7 +++++++ ...ZenModesListAddModePreferenceControllerTest.java | 8 ++++++++ .../modes/ZenModesListFragmentTest.java | 11 +++++++++-- .../modes/ZenModesListItemPreferenceTest.java | 7 +++++++ .../zen/ZenModePreferenceControllerTest.java | 13 +++++++++---- 17 files changed, 120 insertions(+), 16 deletions(-) diff --git a/src/com/android/settings/notification/modes/ZenModesListFragment.java b/src/com/android/settings/notification/modes/ZenModesListFragment.java index a45ca1796f2..cab0209e06c 100644 --- a/src/com/android/settings/notification/modes/ZenModesListFragment.java +++ b/src/com/android/settings/notification/modes/ZenModesListFragment.java @@ -49,15 +49,11 @@ public class ZenModesListFragment extends ZenModesFragmentBase { @Override protected List createPreferenceControllers(Context context) { - return buildPreferenceControllers(context, this::onAvailableModeTypesForAdd); + return buildPreferenceControllers(context, mBackend, this::onAvailableModeTypesForAdd); } private static List buildPreferenceControllers(Context context, - OnAddModeListener onAddModeListener) { - // We need to redefine ZenModesBackend here even though mBackend exists so that this method - // can be static; it must be static to be able to be used in SEARCH_INDEX_DATA_PROVIDER. - ZenModesBackend backend = ZenModesBackend.getInstance(context); - + ZenModesBackend backend, OnAddModeListener onAddModeListener) { return ImmutableList.of( new ZenModesListPreferenceController(context, backend), new ZenModesListAddModePreferenceController(context, onAddModeListener) @@ -150,7 +146,10 @@ public class ZenModesListFragment extends ZenModesFragmentBase { @Override public List createPreferenceControllers( Context context) { - return buildPreferenceControllers(context, ignoredType -> {}); + // We need to redefine ZenModesBackend here even though mBackend exists so that + // SEARCH_INDEX_DATA_PROVIDER can be static. + return buildPreferenceControllers(context, ZenModesBackend.getInstance(context), + ignoredType -> {}); } }; } diff --git a/tests/robotests/src/com/android/settings/notification/modes/ConfigurationActivityHelperTest.java b/tests/robotests/src/com/android/settings/notification/modes/ConfigurationActivityHelperTest.java index 47291a000e4..5a40c7f1c10 100644 --- a/tests/robotests/src/com/android/settings/notification/modes/ConfigurationActivityHelperTest.java +++ b/tests/robotests/src/com/android/settings/notification/modes/ConfigurationActivityHelperTest.java @@ -25,6 +25,7 @@ import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.Mockito.when; +import android.app.Flags; import android.content.ComponentName; import android.content.Context; import android.content.Intent; @@ -32,12 +33,15 @@ import android.content.pm.ComponentInfo; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.os.Bundle; +import android.platform.test.annotations.EnableFlags; +import android.platform.test.flag.junit.SetFlagsRule; import android.service.notification.ConditionProviderService; import com.android.settingslib.notification.modes.TestModeBuilder; import com.android.settingslib.notification.modes.ZenMode; import org.junit.Before; +import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; @@ -50,7 +54,10 @@ import java.util.List; import java.util.function.Function; @RunWith(RobolectricTestRunner.class) +@EnableFlags(Flags.FLAG_MODES_UI) public class ConfigurationActivityHelperTest { + @Rule + public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(); private Context mContext; private ConfigurationActivityHelper mHelper; diff --git a/tests/robotests/src/com/android/settings/notification/modes/ManualDurationHelperTest.java b/tests/robotests/src/com/android/settings/notification/modes/ManualDurationHelperTest.java index 18ee2cf630e..c90f337f59f 100644 --- a/tests/robotests/src/com/android/settings/notification/modes/ManualDurationHelperTest.java +++ b/tests/robotests/src/com/android/settings/notification/modes/ManualDurationHelperTest.java @@ -18,13 +18,17 @@ package com.android.settings.notification.modes; import static com.google.common.truth.Truth.assertThat; +import android.app.Flags; import android.content.ContentResolver; import android.content.Context; +import android.platform.test.annotations.EnableFlags; +import android.platform.test.flag.junit.SetFlagsRule; import android.provider.Settings; import com.android.settings.R; import org.junit.Before; +import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.MockitoAnnotations; @@ -32,7 +36,12 @@ import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; @RunWith(RobolectricTestRunner.class) +@EnableFlags(Flags.FLAG_MODES_UI) public class ManualDurationHelperTest { + + @Rule + public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(); + private Context mContext; private ContentResolver mContentResolver; diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeAddBypassingAppsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeAddBypassingAppsPreferenceControllerTest.java index bca1ccf58c6..c524ab957a7 100644 --- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeAddBypassingAppsPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeAddBypassingAppsPreferenceControllerTest.java @@ -24,10 +24,13 @@ import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import android.app.Flags; import android.app.NotificationChannel; import android.content.Context; import android.content.pm.ApplicationInfo; import android.content.pm.ParceledListSlice; +import android.platform.test.annotations.EnableFlags; +import android.platform.test.flag.junit.SetFlagsRule; import androidx.fragment.app.Fragment; import androidx.preference.Preference; @@ -37,6 +40,7 @@ import com.android.settings.notification.NotificationBackend; import com.android.settingslib.applications.ApplicationsState; import org.junit.Before; +import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; @@ -50,8 +54,12 @@ import java.util.Arrays; import java.util.List; @RunWith(RobolectricTestRunner.class) +@EnableFlags(Flags.FLAG_MODES_UI) public class ZenModeAddBypassingAppsPreferenceControllerTest { + @Rule + public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(); + @Mock private NotificationBackend mBackend; @Mock diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeAllBypassingAppsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeAllBypassingAppsPreferenceControllerTest.java index 3114a2d01ca..a7d52b16575 100644 --- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeAllBypassingAppsPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeAllBypassingAppsPreferenceControllerTest.java @@ -27,10 +27,13 @@ import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import android.app.Flags; import android.app.NotificationChannel; import android.content.Context; import android.content.pm.ApplicationInfo; import android.content.pm.ParceledListSlice; +import android.platform.test.annotations.EnableFlags; +import android.platform.test.flag.junit.SetFlagsRule; import androidx.fragment.app.Fragment; import androidx.preference.Preference; @@ -40,6 +43,7 @@ import com.android.settings.notification.NotificationBackend; import com.android.settingslib.applications.ApplicationsState; import org.junit.Before; +import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; @@ -52,7 +56,12 @@ import java.util.ArrayList; import java.util.List; @RunWith(RobolectricTestRunner.class) +@EnableFlags(Flags.FLAG_MODES_UI) public class ZenModeAllBypassingAppsPreferenceControllerTest { + + @Rule + public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(); + private ZenModeAllBypassingAppsPreferenceController mController; private Context mContext; diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeDisplayLinkPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeDisplayLinkPreferenceControllerTest.java index 29350f6737f..7cf0109d436 100644 --- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeDisplayLinkPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeDisplayLinkPreferenceControllerTest.java @@ -41,6 +41,7 @@ import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; @RunWith(RobolectricTestRunner.class) +@EnableFlags(Flags.FLAG_MODES_UI) public final class ZenModeDisplayLinkPreferenceControllerTest { private ZenModeDisplayLinkPreferenceController mController; @@ -75,7 +76,6 @@ public final class ZenModeDisplayLinkPreferenceControllerTest { } @Test - @EnableFlags(Flags.FLAG_MODES_UI) public void testHasSummary() { Preference pref = mock(Preference.class); mController.updateZenMode(pref, TestModeBuilder.EXAMPLE); diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeEditDonePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeEditDonePreferenceControllerTest.java index b15d4d671a1..74328bee089 100644 --- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeEditDonePreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeEditDonePreferenceControllerTest.java @@ -21,7 +21,10 @@ import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyNoMoreInteractions; +import android.app.Flags; import android.content.Context; +import android.platform.test.annotations.EnableFlags; +import android.platform.test.flag.junit.SetFlagsRule; import android.widget.Button; import androidx.preference.PreferenceManager; @@ -33,6 +36,7 @@ import com.android.settingslib.notification.modes.ZenMode; import com.android.settingslib.widget.LayoutPreference; import org.junit.Before; +import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; @@ -41,8 +45,12 @@ import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; @RunWith(RobolectricTestRunner.class) +@EnableFlags(Flags.FLAG_MODES_UI) public class ZenModeEditDonePreferenceControllerTest { + @Rule + public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(); + private ZenModeEditDonePreferenceController mController; private LayoutPreference mPreference; private Button mButton; diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeEditNameIconFragmentTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeEditNameIconFragmentTest.java index 2441803735a..cb853bb10ce 100644 --- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeEditNameIconFragmentTest.java +++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeEditNameIconFragmentTest.java @@ -27,7 +27,10 @@ import static org.mockito.Mockito.verifyNoMoreInteractions; import static org.mockito.Mockito.when; import android.app.Activity; +import android.app.Flags; import android.os.Bundle; +import android.platform.test.annotations.EnableFlags; +import android.platform.test.flag.junit.SetFlagsRule; import androidx.annotation.Nullable; import androidx.fragment.app.testing.FragmentScenario; @@ -40,6 +43,7 @@ import com.android.settingslib.notification.modes.ZenModesBackend; import org.junit.After; import org.junit.Before; +import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; @@ -48,8 +52,12 @@ import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricTestRunner; @RunWith(RobolectricTestRunner.class) +@EnableFlags(Flags.FLAG_MODES_UI) public class ZenModeEditNameIconFragmentTest { + @Rule + public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(); + private static final ZenMode MODE = new TestModeBuilder().setId("id").setName("Mode").build(); private Activity mActivity; diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeEditNamePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeEditNamePreferenceControllerTest.java index b54727c36e4..795de505097 100644 --- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeEditNamePreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeEditNamePreferenceControllerTest.java @@ -21,7 +21,10 @@ import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyNoMoreInteractions; +import android.app.Flags; import android.content.Context; +import android.platform.test.annotations.EnableFlags; +import android.platform.test.flag.junit.SetFlagsRule; import android.widget.EditText; import androidx.preference.PreferenceManager; @@ -33,6 +36,7 @@ import com.android.settingslib.notification.modes.ZenMode; import com.android.settingslib.widget.LayoutPreference; import org.junit.Before; +import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; @@ -43,14 +47,17 @@ import org.robolectric.RuntimeEnvironment; import java.util.function.Consumer; @RunWith(RobolectricTestRunner.class) +@EnableFlags(Flags.FLAG_MODES_UI) public class ZenModeEditNamePreferenceControllerTest { + @Rule + public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(); + private ZenModeEditNamePreferenceController mController; private LayoutPreference mPreference; private EditText mEditText; @Mock private Consumer mNameSetter; - @Before public void setup() { MockitoAnnotations.initMocks(this); diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeExitAtAlarmPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeExitAtAlarmPreferenceControllerTest.java index 4c8db077f73..3efa5f0e7aa 100644 --- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeExitAtAlarmPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeExitAtAlarmPreferenceControllerTest.java @@ -21,7 +21,10 @@ import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; +import android.app.Flags; import android.content.Context; +import android.platform.test.annotations.EnableFlags; +import android.platform.test.flag.junit.SetFlagsRule; import android.service.notification.ZenModeConfig; import androidx.preference.TwoStatePreference; @@ -32,6 +35,7 @@ import com.android.settingslib.notification.modes.ZenMode; import com.android.settingslib.notification.modes.ZenModesBackend; import org.junit.Before; +import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; @@ -42,7 +46,11 @@ import org.robolectric.RobolectricTestRunner; import java.util.Calendar; @RunWith(RobolectricTestRunner.class) +@EnableFlags(Flags.FLAG_MODES_UI) public class ZenModeExitAtAlarmPreferenceControllerTest { + @Rule + public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(); + private Context mContext; @Mock private ZenModesBackend mBackend; diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeIconPickerListPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeIconPickerListPreferenceControllerTest.java index 1904734ac22..eae606bf0a6 100644 --- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeIconPickerListPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeIconPickerListPreferenceControllerTest.java @@ -22,7 +22,10 @@ import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import android.app.Flags; import android.content.Context; +import android.platform.test.annotations.EnableFlags; +import android.platform.test.flag.junit.SetFlagsRule; import android.view.View; import android.view.ViewGroup; import android.widget.FrameLayout; @@ -39,6 +42,7 @@ import com.android.settingslib.widget.LayoutPreference; import com.google.common.collect.ImmutableList; import org.junit.Before; +import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; @@ -47,7 +51,10 @@ import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; @RunWith(RobolectricTestRunner.class) +@EnableFlags(Flags.FLAG_MODES_UI) public class ZenModeIconPickerListPreferenceControllerTest { + @Rule + public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(); private Context mContext; private ZenModeIconPickerListPreferenceController mController; diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeMessagesLinkPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeMessagesLinkPreferenceControllerTest.java index 100ff432ab1..fad4f2aa9ee 100644 --- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeMessagesLinkPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeMessagesLinkPreferenceControllerTest.java @@ -39,6 +39,7 @@ import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; @RunWith(RobolectricTestRunner.class) +@EnableFlags(Flags.FLAG_MODES_UI) public final class ZenModeMessagesLinkPreferenceControllerTest { private ZenModeMessagesLinkPreferenceController mController; @@ -60,7 +61,6 @@ public final class ZenModeMessagesLinkPreferenceControllerTest { } @Test - @EnableFlags(Flags.FLAG_MODES_UI) public void testHasSummary() { Preference pref = mock(Preference.class); mController.updateZenMode(pref, TestModeBuilder.EXAMPLE); diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeNewCustomFragmentTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeNewCustomFragmentTest.java index dd2b49b1165..9aa42eaf3fb 100644 --- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeNewCustomFragmentTest.java +++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeNewCustomFragmentTest.java @@ -30,8 +30,11 @@ import static org.mockito.Mockito.when; import static org.robolectric.Shadows.shadowOf; import android.app.Activity; +import android.app.Flags; import android.content.Intent; import android.os.Bundle; +import android.platform.test.annotations.EnableFlags; +import android.platform.test.flag.junit.SetFlagsRule; import androidx.fragment.app.testing.EmptyFragmentActivity; import androidx.fragment.app.testing.FragmentScenario; @@ -53,8 +56,12 @@ import org.mockito.stubbing.Answer; import org.robolectric.RobolectricTestRunner; @RunWith(RobolectricTestRunner.class) +@EnableFlags(Flags.FLAG_MODES_UI) public class ZenModeNewCustomFragmentTest { + @Rule + public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(); + @Rule public ActivityScenarioRule mActivityScenario = new ActivityScenarioRule<>(EmptyFragmentActivity.class); diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModesListAddModePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModesListAddModePreferenceControllerTest.java index fe530c10d18..2db917111d6 100644 --- a/tests/robotests/src/com/android/settings/notification/modes/ZenModesListAddModePreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModesListAddModePreferenceControllerTest.java @@ -27,6 +27,7 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import android.app.Flags; import android.app.NotificationManager; import android.content.ComponentName; import android.content.Context; @@ -37,6 +38,8 @@ import android.content.pm.PackageManager; import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; import android.os.Bundle; +import android.platform.test.annotations.EnableFlags; +import android.platform.test.flag.junit.SetFlagsRule; import com.android.settings.notification.modes.ZenModesListAddModePreferenceController.ModeType; @@ -44,6 +47,7 @@ import com.google.common.collect.ImmutableSet; import com.google.common.util.concurrent.MoreExecutors; import org.junit.Before; +import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; @@ -58,8 +62,12 @@ import java.util.List; import java.util.function.Function; @RunWith(RobolectricTestRunner.class) +@EnableFlags(Flags.FLAG_MODES_UI) public class ZenModesListAddModePreferenceControllerTest { + @Rule + public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(); + private Context mContext; private ZenModesListAddModePreferenceController mController; diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModesListFragmentTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModesListFragmentTest.java index e1056416bc7..5bf7f05133c 100644 --- a/tests/robotests/src/com/android/settings/notification/modes/ZenModesListFragmentTest.java +++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModesListFragmentTest.java @@ -27,10 +27,13 @@ import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.when; import static org.robolectric.Shadows.shadowOf; +import android.app.Flags; import android.content.ComponentName; import android.content.Intent; import android.graphics.drawable.ColorDrawable; import android.os.Bundle; +import android.platform.test.annotations.EnableFlags; +import android.platform.test.flag.junit.SetFlagsRule; import androidx.fragment.app.FragmentActivity; import androidx.fragment.app.testing.EmptyFragmentActivity; @@ -53,8 +56,12 @@ import org.robolectric.RobolectricTestRunner; import org.robolectric.shadows.ShadowActivity.IntentForResult; @RunWith(RobolectricTestRunner.class) +@EnableFlags(Flags.FLAG_MODES_UI) public class ZenModesListFragmentTest { + @Rule + public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(); + private static final ModeType APP_PROVIDED_MODE_TYPE = new ModeType("Mode", new ColorDrawable(), "Details", new Intent().setComponent(new ComponentName("pkg", "configActivity"))); @@ -77,14 +84,14 @@ public class ZenModesListFragmentTest { @Before public void setUp() { MockitoAnnotations.initMocks(this); + ZenModesBackend.setInstance(mBackend); + mFragment = new ZenModesListFragment(); mActivityScenario.getScenario().onActivity(activity -> { activity.getSupportFragmentManager().beginTransaction() .add(mFragment, "tag").commitNow(); mActivity = activity; }); - - mFragment.setBackend(mBackend); // after onAttach() } @Test diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModesListItemPreferenceTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModesListItemPreferenceTest.java index dafcee7339a..ea45a71d057 100644 --- a/tests/robotests/src/com/android/settings/notification/modes/ZenModesListItemPreferenceTest.java +++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModesListItemPreferenceTest.java @@ -18,13 +18,17 @@ package com.android.settings.notification.modes; import static com.google.common.truth.Truth.assertThat; +import android.app.Flags; import android.content.Context; +import android.platform.test.annotations.EnableFlags; +import android.platform.test.flag.junit.SetFlagsRule; import android.service.notification.ZenModeConfig; import com.android.settingslib.notification.modes.TestModeBuilder; import com.android.settingslib.notification.modes.ZenMode; import org.junit.Before; +import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.MockitoAnnotations; @@ -33,7 +37,10 @@ import org.robolectric.RuntimeEnvironment; import org.robolectric.shadows.ShadowLooper; @RunWith(RobolectricTestRunner.class) +@EnableFlags(Flags.FLAG_MODES_UI) public class ZenModesListItemPreferenceTest { + @Rule + public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(); private Context mContext; diff --git a/tests/robotests/src/com/android/settings/notification/zen/ZenModePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/zen/ZenModePreferenceControllerTest.java index 8d551e5c9c3..e7d42d864dc 100644 --- a/tests/robotests/src/com/android/settings/notification/zen/ZenModePreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/notification/zen/ZenModePreferenceControllerTest.java @@ -19,10 +19,10 @@ package com.android.settings.notification.zen; import static android.platform.test.flag.junit.SetFlagsRule.DefaultInitValueType.DEVICE_DEFAULT; import static com.android.settings.core.BasePreferenceController.AVAILABLE_UNSEARCHABLE; +import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_DEVICE; import static com.google.common.truth.Truth.assertThat; -import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.never; @@ -40,8 +40,6 @@ import android.platform.test.flag.junit.SetFlagsRule; import androidx.preference.Preference; -import com.android.settings.notification.modes.ZenModesListFragment; - import org.junit.Before; import org.junit.Rule; import org.junit.Test; @@ -85,7 +83,14 @@ public class ZenModePreferenceControllerTest { } @Test - public void isAvailable_unsearchable() { + @EnableFlags(Flags.FLAG_MODES_UI) + public void isAvailable_modesUi_unavailable() { + assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE); + } + + @Test + @DisableFlags(Flags.FLAG_MODES_UI) + public void isAvailable_notModesUi_unsearchable() { assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE_UNSEARCHABLE); }