Update Summary for Battery Optimization
Bug: 37221696 Test: RunSettingsRoboTests Change-Id: I7dc24879521a1375e0ad4b4b73e9a40633b93c3f
This commit is contained in:
@@ -22,14 +22,18 @@ import static org.mockito.Matchers.any;
|
||||
import static org.mockito.Matchers.anyInt;
|
||||
import static org.mockito.Matchers.anyString;
|
||||
import static org.mockito.Matchers.eq;
|
||||
import static org.mockito.Mockito.doReturn;
|
||||
import static org.mockito.Mockito.never;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import android.app.Fragment;
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.support.v14.preference.SwitchPreference;
|
||||
import android.support.v7.preference.Preference;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.SettingsActivity;
|
||||
import com.android.settings.TestConfig;
|
||||
|
||||
@@ -39,11 +43,14 @@ import org.junit.runner.RunWith;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.robolectric.RobolectricTestRunner;
|
||||
import org.robolectric.RuntimeEnvironment;
|
||||
import org.robolectric.annotation.Config;
|
||||
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
|
||||
public class BatteryOptimizationPreferenceControllerTest {
|
||||
private static final String PKG_IN_WHITELIST = "com.pkg.in.whitelist";
|
||||
private static final String PKG_NOT_IN_WHITELIST = "com.pkg.not.in.whitelist";
|
||||
private static final String KEY_OPTIMIZATION = "battery_optimization";
|
||||
private static final String KEY_OTHER = "other";
|
||||
@Mock
|
||||
@@ -51,20 +58,28 @@ public class BatteryOptimizationPreferenceControllerTest {
|
||||
@Mock
|
||||
private Fragment mFragment;
|
||||
@Mock
|
||||
private Preference mPreference;
|
||||
private TestPowerWhitelistBackend mBackend;
|
||||
|
||||
private BatteryOptimizationPreferenceController mController;
|
||||
private Preference mPreference;
|
||||
private Context mContext;
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
|
||||
mController = new BatteryOptimizationPreferenceController(mSettingsActivity, mFragment);
|
||||
mContext = RuntimeEnvironment.application;
|
||||
doReturn(false).when(mBackend).isWhitelisted(PKG_NOT_IN_WHITELIST);
|
||||
doReturn(true).when(mBackend).isWhitelisted(PKG_IN_WHITELIST);
|
||||
|
||||
mPreference = new SwitchPreference(mContext);
|
||||
mController = spy(new BatteryOptimizationPreferenceController(mSettingsActivity, mFragment,
|
||||
PKG_NOT_IN_WHITELIST, mBackend));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testHandlePreferenceTreeClick_OptimizationPreference_HandleClick() {
|
||||
when(mPreference.getKey()).thenReturn(KEY_OPTIMIZATION);
|
||||
mPreference.setKey(KEY_OPTIMIZATION);
|
||||
|
||||
final boolean handled = mController.handlePreferenceTreeClick(mPreference);
|
||||
|
||||
@@ -76,7 +91,7 @@ public class BatteryOptimizationPreferenceControllerTest {
|
||||
|
||||
@Test
|
||||
public void testHandlePreferenceTreeClick_OtherPreference_NotHandleClick() {
|
||||
when(mPreference.getKey()).thenReturn(KEY_OTHER);
|
||||
mPreference.setKey(KEY_OTHER);
|
||||
|
||||
final boolean handled = mController.handlePreferenceTreeClick(mPreference);
|
||||
|
||||
@@ -85,4 +100,33 @@ public class BatteryOptimizationPreferenceControllerTest {
|
||||
anyString(), any(Bundle.class), anyInt(), any(CharSequence.class),
|
||||
any(Fragment.class), anyInt());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUpdateState_appInWhitelist_showSummaryNotOptimized() {
|
||||
BatteryOptimizationPreferenceController controller =
|
||||
new BatteryOptimizationPreferenceController(mSettingsActivity, mFragment,
|
||||
PKG_IN_WHITELIST, mBackend);
|
||||
|
||||
controller.updateState(mPreference);
|
||||
|
||||
assertThat(mPreference.getSummary()).isEqualTo(mContext.getString(R.string.high_power_on));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUpdateState_appNotInWhitelist_showSummaryOptimized() {
|
||||
mController.updateState(mPreference);
|
||||
|
||||
assertThat(mPreference.getSummary()).isEqualTo(mContext.getString(R.string.high_power_off));
|
||||
}
|
||||
|
||||
/**
|
||||
* Create this test class so we could mock it
|
||||
*/
|
||||
public static class TestPowerWhitelistBackend extends PowerWhitelistBackend {
|
||||
|
||||
@Override
|
||||
void refreshList() {
|
||||
// Do nothing so we could mock it without error
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user