Fix failing BluetoothPermissionActivityTest

Bug: 314052293
Test: atest SettingsRoboTests:com.android.settings.bluetooth.BluetoothPermissionActivityTest
Change-Id: Ic62fa4f21a49f865ff713fcf4dea635179441a99
This commit is contained in:
Hyundo Moon
2023-12-04 12:14:52 +09:00
parent c1e33f5080
commit b571a9768f

View File

@@ -16,12 +16,20 @@
package com.android.settings.bluetooth; package com.android.settings.bluetooth;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.eq; import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.spy; import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.content.Context; import android.content.Context;
import android.content.ContextWrapper;
import android.content.Intent; import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.os.Process;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
@@ -29,7 +37,6 @@ import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor; import org.mockito.ArgumentCaptor;
import org.mockito.MockitoAnnotations; import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner; import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.util.ReflectionHelpers; import org.robolectric.util.ReflectionHelpers;
@RunWith(RobolectricTestRunner.class) @RunWith(RobolectricTestRunner.class)
@@ -41,14 +48,27 @@ public class BluetoothPermissionActivityTest {
@Before @Before
public void setUp() { public void setUp() {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
mContext = spy(RuntimeEnvironment.application); mContext = mock(ContextWrapper.class);
mActivity = new BluetoothPermissionActivity(); mActivity = new BluetoothPermissionActivity();
} }
@Test @Test
public void sendBroadcastWithPermission() { public void sendBroadcastWithPermission() throws Exception {
final ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class); final ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class);
ReflectionHelpers.setField(mActivity, "mBase", mContext); ReflectionHelpers.setField(mActivity, "mBase", mContext);
when(mContext.createContextAsUser(any(), anyInt())).thenReturn(mContext);
final String btPkgName = "com.android.bluetooth";
ActivityInfo btOppLauncherActivityInfo = new ActivityInfo();
btOppLauncherActivityInfo.name = "com.android.bluetooth.opp.BluetoothOppLauncherActivity";
PackageInfo btPkgInfo = new PackageInfo();
btPkgInfo.activities = new ActivityInfo[] {btOppLauncherActivityInfo};
PackageManager pm = mock(PackageManager.class);
when(pm.getPackagesForUid(Process.BLUETOOTH_UID)).thenReturn(new String[] {btPkgName});
when(pm.getPackageInfo(eq(btPkgName), anyInt())).thenReturn(btPkgInfo);
when(mContext.getPackageManager()).thenReturn(pm);
mActivity.sendReplyIntentToReceiver(true, true); mActivity.sendReplyIntentToReceiver(true, true);