diff options
Diffstat (limited to 'packages/SystemUI/tests/src/com/android/systemui/qs/external/TileLifecycleManagerTest.java')
-rw-r--r-- | packages/SystemUI/tests/src/com/android/systemui/qs/external/TileLifecycleManagerTest.java | 35 |
1 files changed, 30 insertions, 5 deletions
diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/external/TileLifecycleManagerTest.java b/packages/SystemUI/tests/src/com/android/systemui/qs/external/TileLifecycleManagerTest.java index 42fd288d94ee..c03b2eeee577 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/qs/external/TileLifecycleManagerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/qs/external/TileLifecycleManagerTest.java @@ -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()); + } } |