Merge "Make ZenIconLoader injectable (in SystemUI)" into main

This commit is contained in:
Treehugger Robot
2024-08-29 22:59:49 +00:00
committed by Android (Google) Code Review
10 changed files with 59 additions and 30 deletions

View File

@@ -36,7 +36,6 @@ import org.junit.runner.RunWith;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.shadows.ShadowLooper;
@RunWith(RobolectricTestRunner.class)
@EnableFlags(Flags.FLAG_MODES_UI)
@@ -45,18 +44,18 @@ public class ZenModesListItemPreferenceTest {
public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
private Context mContext;
private final ZenIconLoader mIconLoader = new ZenIconLoader(
MoreExecutors.newDirectExecutorService());
@Before
public void setup() {
MockitoAnnotations.initMocks(this);
mContext = RuntimeEnvironment.application;
ZenIconLoader.setInstance(new ZenIconLoader(MoreExecutors.newDirectExecutorService()));
}
@Test
public void constructor_setsMode() {
ZenModesListItemPreference preference = new ZenModesListItemPreference(mContext,
TestModeBuilder.EXAMPLE);
ZenModesListItemPreference preference = newPreference(TestModeBuilder.EXAMPLE);
assertThat(preference.getKey()).isEqualTo(TestModeBuilder.EXAMPLE.getId());
assertThat(preference.getZenMode()).isEqualTo(TestModeBuilder.EXAMPLE);
@@ -70,8 +69,7 @@ public class ZenModesListItemPreferenceTest {
.setEnabled(true)
.build();
ZenModesListItemPreference preference = new ZenModesListItemPreference(mContext, mode);
ShadowLooper.idleMainLooper(); // To load icon.
ZenModesListItemPreference preference = newPreference(mode);
assertThat(preference.getTitle()).isEqualTo("Enabled mode");
assertThat(preference.getSummary()).isEqualTo("When the thrush knocks");
@@ -87,8 +85,7 @@ public class ZenModesListItemPreferenceTest {
.setActive(true)
.build();
ZenModesListItemPreference preference = new ZenModesListItemPreference(mContext, mode);
ShadowLooper.idleMainLooper();
ZenModesListItemPreference preference = newPreference(mode);
assertThat(preference.getTitle()).isEqualTo("Active mode");
assertThat(preference.getSummary()).isEqualTo("ON • When Birnam forest comes to Dunsinane");
@@ -103,8 +100,7 @@ public class ZenModesListItemPreferenceTest {
.setEnabled(false, /* byUser= */ false)
.build();
ZenModesListItemPreference preference = new ZenModesListItemPreference(mContext, mode);
ShadowLooper.idleMainLooper();
ZenModesListItemPreference preference = newPreference(mode);
assertThat(preference.getTitle()).isEqualTo("Mode disabled by app");
assertThat(preference.getSummary()).isEqualTo("Not set");
@@ -119,11 +115,15 @@ public class ZenModesListItemPreferenceTest {
.setEnabled(false, /* byUser= */ true)
.build();
ZenModesListItemPreference preference = new ZenModesListItemPreference(mContext, mode);
ShadowLooper.idleMainLooper();
ZenModesListItemPreference preference = newPreference(mode);
assertThat(preference.getTitle()).isEqualTo("Mode disabled by user");
assertThat(preference.getSummary()).isEqualTo("Disabled");
assertThat(preference.getIcon()).isNotNull();
}
private ZenModesListItemPreference newPreference(ZenMode zenMode) {
return new ZenModesListItemPreference(mContext, mIconLoader, MoreExecutors.directExecutor(),
zenMode);
}
}

View File

@@ -40,11 +40,13 @@ import androidx.preference.PreferenceManager;
import androidx.preference.PreferenceScreen;
import com.android.settingslib.notification.modes.TestModeBuilder;
import com.android.settingslib.notification.modes.ZenIconLoader;
import com.android.settingslib.notification.modes.ZenMode;
import com.android.settingslib.notification.modes.ZenModesBackend;
import com.android.settingslib.search.SearchIndexableRaw;
import com.google.common.collect.ImmutableList;
import com.google.common.util.concurrent.MoreExecutors;
import org.junit.Before;
import org.junit.Rule;
@@ -95,7 +97,8 @@ public class ZenModesListPreferenceControllerTest {
PreferenceScreen preferenceScreen = preferenceManager.createPreferenceScreen(mContext);
preferenceScreen.addPreference(mPreference);
mPrefController = new ZenModesListPreferenceController(mContext, mBackend);
mPrefController = new ZenModesListPreferenceController(mContext, mBackend,
new ZenIconLoader(MoreExecutors.newDirectExecutorService()));
}
@Test