Use explicit intent to broadcast grayscale state changed
Query PackageManager for receivers that can handle the intent and send an explicit intent to these receivers. Change-Id: I06f500c20ae0a20d689cf0805b6a82247ea55e73 Fix: 118387886 Test: robotests
This commit is contained in:
@@ -25,6 +25,8 @@ import static org.mockito.Mockito.verify;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.ActivityInfo;
|
||||
import android.content.pm.ResolveInfo;
|
||||
import android.hardware.display.ColorDisplayManager;
|
||||
|
||||
import org.junit.Before;
|
||||
@@ -34,7 +36,9 @@ import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.robolectric.RobolectricTestRunner;
|
||||
import org.robolectric.RuntimeEnvironment;
|
||||
import org.robolectric.Shadows;
|
||||
import org.robolectric.annotation.Config;
|
||||
import org.robolectric.shadows.ShadowPackageManager;
|
||||
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
public class GrayscaleConditionControllerTest {
|
||||
@@ -45,6 +49,7 @@ public class GrayscaleConditionControllerTest {
|
||||
private ColorDisplayManager mColorDisplayManager;
|
||||
private Context mContext;
|
||||
private GrayscaleConditionController mController;
|
||||
private ShadowPackageManager mPackageManager;
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
@@ -53,6 +58,7 @@ public class GrayscaleConditionControllerTest {
|
||||
mColorDisplayManager = spy(mContext.getSystemService(ColorDisplayManager.class));
|
||||
doReturn(mColorDisplayManager).when(mContext).getSystemService(ColorDisplayManager.class);
|
||||
mController = new GrayscaleConditionController(mContext, mConditionManager);
|
||||
mPackageManager = Shadows.shadowOf(mContext.getPackageManager());
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -85,8 +91,13 @@ public class GrayscaleConditionControllerTest {
|
||||
|
||||
@Test
|
||||
public void onActionClick_shouldSendBroadcast() {
|
||||
final Intent intent = new Intent(GrayscaleConditionController.ACTION_GRAYSCALE_CHANGED);
|
||||
final ResolveInfo info = new ResolveInfo();
|
||||
info.activityInfo = new ActivityInfo();
|
||||
mPackageManager.addResolveInfoForIntent(intent, info);
|
||||
|
||||
mController.onActionClick();
|
||||
|
||||
verify(mContext).sendBroadcast(any(Intent.class), any(String.class));
|
||||
verify(mContext).sendBroadcast(any(Intent.class));
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user