Skip to content
Snippets Groups Projects
Commit 375b0959 authored by Fabian Kozynski's avatar Fabian Kozynski Committed by Android (Google) Code Review
Browse files

Merge "Unbind TileService onNullBinding" into rvc-dev

parents 1d28c472 7bf830ca
No related branches found
No related tags found
No related merge requests found
......@@ -220,6 +220,11 @@ public class TileLifecycleManager extends BroadcastReceiver implements
handlePendingMessages();
}
@Override
public void onNullBinding(ComponentName name) {
setBindService(false);
}
@Override
public void onServiceDisconnected(ComponentName name) {
if (DEBUG) Log.d(TAG, "onServiceDisconnected " + name);
......
......@@ -22,13 +22,16 @@ import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.any;
import static org.mockito.Mockito.anyInt;
import static org.mockito.Mockito.anyString;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import android.content.pm.PackageInfo;
import android.content.pm.ServiceInfo;
import android.net.Uri;
......@@ -51,7 +54,7 @@ import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mockito;
import org.mockito.ArgumentCaptor;
@SmallTest
@RunWith(AndroidJUnit4.class)
......@@ -59,10 +62,10 @@ public class TileLifecycleManagerTest extends SysuiTestCase {
private static final int TEST_FAIL_TIMEOUT = 5000;
private final PackageManagerAdapter mMockPackageManagerAdapter =
Mockito.mock(PackageManagerAdapter.class);
mock(PackageManagerAdapter.class);
private final BroadcastDispatcher mMockBroadcastDispatcher =
Mockito.mock(BroadcastDispatcher.class);
private final IQSTileService.Stub mMockTileService = Mockito.mock(IQSTileService.Stub.class);
mock(BroadcastDispatcher.class);
private final IQSTileService.Stub mMockTileService = mock(IQSTileService.Stub.class);
private ComponentName mTileServiceComponentName;
private Intent mTileServiceIntent;
private UserHandle mUser;
......@@ -87,7 +90,7 @@ public class TileLifecycleManagerTest extends SysuiTestCase {
mThread.start();
mHandler = Handler.createAsync(mThread.getLooper());
mStateManager = new TileLifecycleManager(mHandler, mContext,
Mockito.mock(IQSService.class), new Tile(),
mock(IQSService.class), new Tile(),
mTileServiceIntent,
mUser,
mMockPackageManagerAdapter,
......@@ -247,4 +250,26 @@ public class TileLifecycleManagerTest extends SysuiTestCase {
public void testToggleableTile() throws Exception {
assertTrue(mStateManager.isToggleableTile());
}
@Test
public void testNullBindingCallsUnbind() {
Context mockContext = mock(Context.class);
// Binding has to succeed
when(mockContext.bindServiceAsUser(any(), any(), anyInt(), any())).thenReturn(true);
TileLifecycleManager manager = new TileLifecycleManager(mHandler, mockContext,
mock(IQSService.class),
new Tile(),
mTileServiceIntent,
mUser,
mMockPackageManagerAdapter,
mMockBroadcastDispatcher);
manager.setBindService(true);
ArgumentCaptor<ServiceConnection> captor = ArgumentCaptor.forClass(ServiceConnection.class);
verify(mockContext).bindServiceAsUser(any(), captor.capture(), anyInt(), any());
captor.getValue().onNullBinding(mTileServiceComponentName);
verify(mockContext).unbindService(captor.getValue());
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment