Fix the test failures for the new lock screen notifications settings page

Fix the old tests that fail when the new lock screen notifications
settings page flag is enabled.

Fix: 393631085
Flag: com.android.server.notification.notification_lock_screen_settings
Test: LockscreenNotificationMinimalismPreferenceControllerTest,
RedactNotificationPreferenceControllerTest,
ShowOnlyUnseenNotificationsOnLockscreenPreferenceControllerTest

Change-Id: I427ce675721c6d4df6451deebfcb6e4c06c72c37
This commit is contained in:
Yining Liu
2025-01-31 15:19:17 -08:00
parent 7e6cc163d9
commit 3e0623bd7e
3 changed files with 50 additions and 8 deletions

View File

@@ -17,6 +17,10 @@
package com.android.settings.notification;
import static android.provider.Settings.Secure.LOCK_SCREEN_NOTIFICATION_MINIMALISM;
import static android.provider.Settings.Secure.LOCK_SCREEN_SHOW_NOTIFICATIONS;
import static com.android.settings.core.BasePreferenceController.AVAILABLE;
import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE;
import static com.google.common.truth.Truth.assertThat;
@@ -34,6 +38,8 @@ import android.provider.Settings;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
import com.android.server.notification.Flags;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
@@ -44,9 +50,15 @@ import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
/**
* Disable FLAG_NOTIFICATION_LOCK_SCREEN_SETTINGS because this toggle will be replaced by the new
* settings page.
*/
@RunWith(RobolectricTestRunner.class)
@DisableFlags(Flags.FLAG_NOTIFICATION_LOCK_SCREEN_SETTINGS)
public class LockscreenNotificationMinimalismPreferenceControllerTest {
@Rule
public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
private Context mContext;
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
@@ -56,8 +68,6 @@ public class LockscreenNotificationMinimalismPreferenceControllerTest {
private Preference mPreference;
static final int ON = 1;
static final int OFF = 0;
@Rule
public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
@Before
public void setUp() {
@@ -72,17 +82,33 @@ public class LockscreenNotificationMinimalismPreferenceControllerTest {
}
@Test
@DisableFlags(com.android.server.notification.Flags.FLAG_NOTIFICATION_MINIMALISM)
@DisableFlags(Flags.FLAG_NOTIFICATION_MINIMALISM)
public void display_featureFlagOff_shouldNotDisplay() {
// Given: lockscreen show notifications, FLAG_NOTIFICATION_MINIMALISM is disabled
Settings.Secure.putInt(mContext.getContentResolver(),
LOCK_SCREEN_SHOW_NOTIFICATIONS, ON);
// When: displayPreference
mController.displayPreference(mScreen);
// Then: The controller is CONDITIONALLY_UNAVAILABLE, preference is not visible
assertThat(mPreference.isVisible()).isFalse();
assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
}
@Test
@EnableFlags(com.android.server.notification.Flags.FLAG_NOTIFICATION_MINIMALISM)
public void display_featureFlagOn_shouldDisplay() {
// Given: lockscreen show notifications, FLAG_NOTIFICATION_MINIMALISM is enabled
Settings.Secure.putInt(mContext.getContentResolver(),
LOCK_SCREEN_SHOW_NOTIFICATIONS, ON);
// When: displayPreference
mController.displayPreference(mScreen);
// Then: The controller is AVAILABLE, preference is visible
assertThat(mPreference.isVisible()).isTrue();
assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
}
@Test

View File

@@ -37,11 +37,14 @@ import android.content.Context;
import android.content.pm.UserInfo;
import android.os.UserHandle;
import android.os.UserManager;
import android.platform.test.annotations.DisableFlags;
import android.platform.test.flag.junit.SetFlagsRule;
import android.provider.Settings;
import androidx.preference.PreferenceScreen;
import com.android.internal.widget.LockPatternUtils;
import com.android.server.notification.Flags;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.shadow.ShadowRestrictedLockUtilsInternal;
import com.android.settings.testutils.shadow.ShadowUtils;
@@ -49,6 +52,7 @@ import com.android.settingslib.RestrictedSwitchPreference;
import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
@@ -59,13 +63,19 @@ import org.robolectric.annotation.Config;
import java.util.Arrays;
/**
* Disable FLAG_NOTIFICATION_LOCK_SCREEN_SETTINGS because this toggle will be replaced by the new
* settings page.
*/
@RunWith(RobolectricTestRunner.class)
@Config(shadows = {
ShadowUtils.class,
ShadowRestrictedLockUtilsInternal.class,
})
@DisableFlags(Flags.FLAG_NOTIFICATION_LOCK_SCREEN_SETTINGS)
public class RedactNotificationPreferenceControllerTest {
@Rule
public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
@Mock
private DevicePolicyManager mDpm;
@Mock

View File

@@ -37,6 +37,8 @@ import android.provider.Settings;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
import com.android.server.notification.Flags;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
@@ -47,9 +49,15 @@ import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
/**
* Disable FLAG_NOTIFICATION_LOCK_SCREEN_SETTINGS because this toggle will be replaced by the new
* settings page.
*/
@RunWith(RobolectricTestRunner.class)
@DisableFlags(Flags.FLAG_NOTIFICATION_LOCK_SCREEN_SETTINGS)
public class ShowOnlyUnseenNotificationsOnLockscreenPreferenceControllerTest {
@Rule
public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
private Context mContext;
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
@@ -57,8 +65,6 @@ public class ShowOnlyUnseenNotificationsOnLockscreenPreferenceControllerTest {
private ShowOnlyUnseenNotificationsOnLockscreenPreferenceController mController;
private Preference mPreference;
@Rule
public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
@Before
public void setUp() {