Merge "Adding null check when unregistering slice relay handler" into qt-dev

This commit is contained in:
TreeHugger Robot
2019-04-23 00:04:28 +00:00
committed by Android (Google) Code Review
2 changed files with 20 additions and 1 deletions

View File

@@ -59,7 +59,10 @@ public class SliceBroadcastRelayHandler extends SystemUI {
} else if (SliceBroadcastRelay.ACTION_UNREGISTER.equals(intent.getAction())) {
Uri uri = intent.getParcelableExtra(SliceBroadcastRelay.EXTRA_URI);
if (DEBUG) Log.d(TAG, "Unregister " + uri);
getAndRemoveRelay(uri).unregister(mContext);
BroadcastRelay relay = getAndRemoveRelay(uri);
if (relay != null) {
relay.unregister(mContext);
}
}
}

View File

@@ -94,6 +94,22 @@ public class SliceBroadcastRelayHandlerTest extends SysuiTestCase {
verify(relayHandler.mContext).unregisterReceiver(eq(relay.getValue()));
}
@Test
public void testUnregisterWithoutRegister() {
Uri testUri = new Uri.Builder()
.scheme(ContentResolver.SCHEME_CONTENT)
.authority("something")
.path("test")
.build();
SliceBroadcastRelayHandler relayHandler = new SliceBroadcastRelayHandler();
relayHandler.mContext = spy(mContext);
Intent intent = new Intent(SliceBroadcastRelay.ACTION_UNREGISTER);
intent.putExtra(SliceBroadcastRelay.EXTRA_URI, ContentProvider.maybeAddUserId(testUri, 0));
relayHandler.handleIntent(intent);
// No crash
}
@Test
public void testRelay() {
Receiver.sReceiver = mock(BroadcastReceiver.class);