Merge "Fix AppStateAppBatteryUsageBridge test fail" into main

This commit is contained in:
Treehugger Robot
2024-05-07 13:46:15 +00:00
committed by Android (Google) Code Review

View File

@@ -6,7 +6,9 @@ import static org.mockito.Mockito.when;
import android.app.AppOpsManager; import android.app.AppOpsManager;
import android.content.Context; import android.content.Context;
import android.content.pm.ApplicationInfo;
import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.android.settingslib.applications.ApplicationsState.AppEntry; import com.android.settingslib.applications.ApplicationsState.AppEntry;
@@ -15,64 +17,67 @@ import com.android.settingslib.fuelgauge.PowerAllowlistBackend;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.mockito.Answers;
import org.mockito.Mock; import org.mockito.Mock;
import org.mockito.MockitoAnnotations; import org.mockito.MockitoAnnotations;
@RunWith(AndroidJUnit4.class) @RunWith(AndroidJUnit4.class)
public final class AppStateAppBatteryUsageBridgeTest { public final class AppStateAppBatteryUsageBridgeTest {
private static final String TEST_PACKAGE_1 = "com.example.test.pkg1"; private static final String TEST_PACKAGE_1 = "com.example.test.pkg1";
private static final String TEST_PACKAGE_2 = "com.example.test.pkg2"; private static final String TEST_PACKAGE_2 = "com.example.test.pkg2";
private static final int UID_1 = 12345; private static final int UID_1 = 12345;
private static final int UID_2 = 7654321; private static final int UID_2 = 7654321;
@Mock(answer = Answers.RETURNS_DEEP_STUBS) private Context mContext;
private Context mContext; private ApplicationInfo mApplicationInfo;
@Mock
private AppOpsManager mAppOpsManager;
@Mock
private PowerAllowlistBackend mPowerAllowlistBackend;
@Before @Mock
public void initMocks() { private AppOpsManager mAppOpsManager;
MockitoAnnotations.initMocks(this); @Mock
} private PowerAllowlistBackend mPowerAllowlistBackend;
@Test @Before
public void updateExtraInfo_updatesRestricted() { public void initMocks() {
when(mPowerAllowlistBackend.isAllowlisted(TEST_PACKAGE_1, UID_1)).thenReturn(false); MockitoAnnotations.initMocks(this);
when(mAppOpsManager.checkOpNoThrow(AppOpsManager.OP_RUN_ANY_IN_BACKGROUND, mContext = ApplicationProvider.getApplicationContext();
UID_1, TEST_PACKAGE_1)).thenReturn(AppOpsManager.MODE_IGNORED); mApplicationInfo = new ApplicationInfo();
AppStateAppBatteryUsageBridge bridge = mApplicationInfo.sourceDir = "test_dir";
new AppStateAppBatteryUsageBridge(mContext, null, null); }
bridge.mAppOpsManager = mAppOpsManager;
bridge.mPowerAllowlistBackend = mPowerAllowlistBackend;
AppEntry entry = new AppEntry(mContext, null, 0);
bridge.updateExtraInfo(entry, TEST_PACKAGE_1, UID_1); @Test
public void updateExtraInfo_updatesRestricted() {
when(mPowerAllowlistBackend.isAllowlisted(TEST_PACKAGE_1, UID_1)).thenReturn(false);
when(mAppOpsManager.checkOpNoThrow(AppOpsManager.OP_RUN_ANY_IN_BACKGROUND,
UID_1, TEST_PACKAGE_1)).thenReturn(AppOpsManager.MODE_IGNORED);
AppStateAppBatteryUsageBridge bridge =
new AppStateAppBatteryUsageBridge(mContext, null, null);
bridge.mAppOpsManager = mAppOpsManager;
bridge.mPowerAllowlistBackend = mPowerAllowlistBackend;
AppEntry entry = new AppEntry(mContext, mApplicationInfo, 0);
assertThat(entry.extraInfo.getClass()) bridge.updateExtraInfo(entry, TEST_PACKAGE_1, UID_1);
.isEqualTo(AppStateAppBatteryUsageBridge.AppBatteryUsageDetails.class);
assertThat(AppStateAppBatteryUsageBridge.getAppBatteryUsageDetailsMode(entry))
.isEqualTo(AppStateAppBatteryUsageBridge.MODE_RESTRICTED);
}
@Test assertThat(entry.extraInfo.getClass())
public void updateExtraInfo_updatesUnrestricted() { .isEqualTo(AppStateAppBatteryUsageBridge.AppBatteryUsageDetails.class);
when(mPowerAllowlistBackend.isAllowlisted(TEST_PACKAGE_1, UID_1)).thenReturn(true); assertThat(AppStateAppBatteryUsageBridge.getAppBatteryUsageDetailsMode(entry))
when(mAppOpsManager.checkOpNoThrow(AppOpsManager.OP_RUN_ANY_IN_BACKGROUND, .isEqualTo(AppStateAppBatteryUsageBridge.MODE_RESTRICTED);
UID_2, TEST_PACKAGE_2)).thenReturn(AppOpsManager.MODE_ALLOWED); }
AppStateAppBatteryUsageBridge bridge =
new AppStateAppBatteryUsageBridge(mContext, null, null);
bridge.mAppOpsManager = mAppOpsManager;
bridge.mPowerAllowlistBackend = mPowerAllowlistBackend;
AppEntry entry = new AppEntry(mContext, null, 0);
bridge.updateExtraInfo(entry, TEST_PACKAGE_2, UID_2); @Test
public void updateExtraInfo_updatesUnrestricted() {
when(mPowerAllowlistBackend.isAllowlisted(TEST_PACKAGE_2, UID_2)).thenReturn(true);
when(mAppOpsManager.checkOpNoThrow(AppOpsManager.OP_RUN_ANY_IN_BACKGROUND,
UID_2, TEST_PACKAGE_2)).thenReturn(AppOpsManager.MODE_ALLOWED);
AppStateAppBatteryUsageBridge bridge =
new AppStateAppBatteryUsageBridge(mContext, null, null);
bridge.mAppOpsManager = mAppOpsManager;
bridge.mPowerAllowlistBackend = mPowerAllowlistBackend;
AppEntry entry = new AppEntry(mContext, mApplicationInfo, 0);
assertThat(entry.extraInfo.getClass()) bridge.updateExtraInfo(entry, TEST_PACKAGE_2, UID_2);
.isEqualTo(AppStateAppBatteryUsageBridge.AppBatteryUsageDetails.class);
assertThat(AppStateAppBatteryUsageBridge.getAppBatteryUsageDetailsMode(entry)) assertThat(entry.extraInfo.getClass())
.isEqualTo(AppStateAppBatteryUsageBridge.MODE_UNRESTRICTED); .isEqualTo(AppStateAppBatteryUsageBridge.AppBatteryUsageDetails.class);
} assertThat(AppStateAppBatteryUsageBridge.getAppBatteryUsageDetailsMode(entry))
.isEqualTo(AppStateAppBatteryUsageBridge.MODE_UNRESTRICTED);
}
} }