Destroy tiles after tests

This will prevent the lifecycle from changing after the test is over.

Test: atest SystemUITests
Bug: 269171747
Change-Id: I5d115de81cea06250e3bd278cfcaa1f58d1ece34
This commit is contained in:
Fabian Kozynski
2023-02-24 12:46:49 -05:00
parent 050627e4f7
commit 440c901d67
27 changed files with 209 additions and 37 deletions

View File

@@ -38,6 +38,7 @@ import com.android.systemui.settings.UserTracker
import com.android.systemui.util.settings.GlobalSettings
import com.google.common.truth.Truth.assertThat
import dagger.Lazy
import org.junit.After
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
@@ -94,6 +95,12 @@ class AirplaneModeTileTest : SysuiTestCase() {
mUserTracker)
}
@After
fun tearDown() {
mTile.destroy()
mTestableLooper.processAllMessages()
}
@Test
fun testIcon_whenDisabled_showsOffState() {
val state = QSTile.BooleanState()

View File

@@ -21,6 +21,7 @@ import com.android.systemui.statusbar.policy.NextAlarmController
import com.android.systemui.util.mockito.capture
import com.android.systemui.util.mockito.eq
import com.google.common.truth.Truth.assertThat
import org.junit.After
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
@@ -88,6 +89,12 @@ class AlarmTileTest : SysuiTestCase() {
testableLooper.processAllMessages()
}
@After
fun tearDown() {
tile.destroy()
testableLooper.processAllMessages()
}
@Test
fun testAvailable() {
assertThat(tile.isAvailable).isTrue()

View File

@@ -37,6 +37,7 @@ import com.android.systemui.statusbar.policy.BatteryController
import com.android.systemui.util.settings.FakeSettings
import com.android.systemui.util.settings.SecureSettings
import com.google.common.truth.Truth.assertThat
import org.junit.After
import org.junit.Assert.assertEquals
import org.junit.Before
import org.junit.Test
@@ -103,6 +104,12 @@ class BatterySaverTileTest : SysuiTestCase() {
testableLooper.processAllMessages()
}
@After
fun tearDown() {
tile.destroy()
testableLooper.processAllMessages()
}
@Test
fun testSettingWithCorrectUser() {
assertEquals(USER, tile.mSetting.currentUser)

View File

@@ -22,6 +22,7 @@ import com.android.systemui.qs.logging.QSLogger
import com.android.systemui.qs.tileimpl.QSTileImpl
import com.android.systemui.statusbar.policy.BluetoothController
import com.google.common.truth.Truth.assertThat
import org.junit.After
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
@@ -79,6 +80,12 @@ class BluetoothTileTest : SysuiTestCase() {
testableLooper.processAllMessages()
}
@After
fun tearDown() {
tile.destroy()
testableLooper.processAllMessages()
}
@Test
fun testRestrictionChecked() {
tile.refreshState()

View File

@@ -35,6 +35,7 @@ import com.android.systemui.qs.tileimpl.QSTileImpl
import com.android.systemui.statusbar.policy.IndividualSensorPrivacyController
import com.android.systemui.statusbar.policy.KeyguardStateController
import com.google.common.truth.Truth.assertThat
import org.junit.After
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
@@ -90,6 +91,12 @@ class CameraToggleTileTest : SysuiTestCase() {
keyguardStateController)
}
@After
fun tearDown() {
tile.destroy()
testableLooper.processAllMessages()
}
@Test
fun testIcon_whenCameraAccessEnabled_isOnState() {
val state = QSTile.BooleanState()

View File

@@ -53,6 +53,7 @@ import com.android.systemui.statusbar.policy.CastController.CastDevice;
import com.android.systemui.statusbar.policy.HotspotController;
import com.android.systemui.statusbar.policy.KeyguardStateController;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -141,6 +142,12 @@ public class CastTileTest extends SysuiTestCase {
mHotspotCallback = hotspotCallbackArgumentCaptor.getValue();
}
@After
public void tearDown() {
mCastTile.destroy();
mTestableLooper.processAllMessages();
}
// -------------------------------------------------
// All these tests for enabled/disabled wifi have hotspot not enabled
@Test

View File

@@ -43,6 +43,7 @@ import com.android.systemui.settings.UserTracker;
import com.android.systemui.util.settings.FakeSettings;
import com.android.systemui.util.settings.SecureSettings;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -101,6 +102,12 @@ public class ColorCorrectionTileTest extends SysuiTestCase {
mTestableLooper.processAllMessages();
}
@After
public void tearDown() {
mTile.destroy();
mTestableLooper.processAllMessages();
}
@Test
public void longClick_expectedAction() {
final ArgumentCaptor<Intent> IntentCaptor = ArgumentCaptor.forClass(Intent.class);

View File

@@ -46,6 +46,7 @@ import com.android.systemui.settings.UserTracker;
import com.android.systemui.util.settings.FakeSettings;
import com.android.systemui.util.settings.SecureSettings;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -106,6 +107,12 @@ public class ColorInversionTileTest extends SysuiTestCase {
mTestableLooper.processAllMessages();
}
@After
public void tearDown() {
mTile.destroy();
mTestableLooper.processAllMessages();
}
@Test
public void longClick_expectedAction() {
final ArgumentCaptor<Intent> IntentCaptor = ArgumentCaptor.forClass(Intent.class);

View File

@@ -34,6 +34,7 @@ import com.android.systemui.qs.logging.QSLogger
import com.android.systemui.qs.tileimpl.QSTileImpl
import com.android.systemui.statusbar.policy.DataSaverController
import com.google.common.truth.Truth.assertThat
import org.junit.After
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
@@ -84,6 +85,12 @@ class DataSaverTileTest : SysuiTestCase() {
)
}
@After
fun tearDown() {
tile.destroy()
testableLooper.processAllMessages()
}
@Test
fun testIcon_whenDataSaverEnabled_isOnState() {
val state = QSTile.BooleanState()

View File

@@ -67,6 +67,7 @@ import org.mockito.Mockito.spy
import org.mockito.Mockito.verify
import org.mockito.Mockito.verifyZeroInteractions
import java.util.Optional
import org.junit.After
@SmallTest
@RunWith(AndroidTestingRunner::class)
@@ -129,6 +130,12 @@ class DeviceControlsTileTest : SysuiTestCase() {
tile = createTile()
}
@After
fun tearDown() {
tile.destroy()
testableLooper.processAllMessages()
}
private fun setupControlsComponent() {
`when`(controlsComponent.getControlsController()).thenAnswer {
if (featureEnabled) {

View File

@@ -136,7 +136,8 @@ class DndTileTest : SysuiTestCase() {
@After
fun tearDown() {
tile.handleSetListening(false)
tile.destroy()
testableLooper.processAllMessages()
}
@Test

View File

@@ -54,6 +54,7 @@ import com.android.systemui.settings.UserTracker;
import com.android.systemui.util.settings.FakeSettings;
import com.android.systemui.util.settings.SecureSettings;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -112,6 +113,12 @@ public class DreamTileTest extends SysuiTestCase {
mTile.initialize();
}
@After
public void tearDown() {
mTile.destroy();
mTestableLooper.processAllMessages();
}
@Test
public void testNotAvailable() throws RemoteException {
// Should not be available if screensaver is disabled

View File

@@ -18,6 +18,7 @@ import com.android.systemui.qs.logging.QSLogger
import com.android.systemui.qs.tileimpl.QSTileImpl
import com.android.systemui.statusbar.policy.FlashlightController
import com.google.common.truth.Truth
import org.junit.After
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
@@ -71,6 +72,12 @@ class FlashlightTileTest : SysuiTestCase() {
)
}
@After
fun tearDown() {
tile.destroy()
testableLooper.processAllMessages()
}
@Test
fun testIcon_whenFlashlightEnabled_isOnState() {
Mockito.`when`(flashlightController.isAvailable).thenReturn(true)

View File

@@ -36,6 +36,7 @@ import com.android.systemui.util.mockito.eq
import com.android.systemui.util.mockito.nullable
import com.android.systemui.util.settings.FakeSettings
import com.google.common.truth.Truth.assertThat
import org.junit.After
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
@@ -87,6 +88,12 @@ class FontScalingTileTest : SysuiTestCase() {
testableLooper.processAllMessages()
}
@After
fun tearDown() {
fontScalingTile.destroy()
testableLooper.processAllMessages()
}
@Test
fun isAvailable_whenFlagIsFalse_returnsFalse() {
featureFlags.set(Flags.ENABLE_FONT_SCALING_TILE, false)

View File

@@ -43,6 +43,7 @@ import com.android.systemui.qs.tileimpl.QSTileImpl;
import com.android.systemui.statusbar.policy.DataSaverController;
import com.android.systemui.statusbar.policy.HotspotController;
import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
@@ -94,6 +95,12 @@ public class HotspotTileTest extends SysuiTestCase {
mTestableLooper.processAllMessages();
}
@After
public void tearDown() {
mTile.destroy();
mTestableLooper.processAllMessages();
}
@Test
public void handleUpdateState_wifiTetheringIsAllowed_stateIsNotUnavailable() {
MockitoSession mockitoSession = ExtendedMockito.mockitoSession()

View File

@@ -43,6 +43,7 @@ import com.android.systemui.statusbar.connectivity.IconState;
import com.android.systemui.statusbar.connectivity.NetworkController;
import com.android.systemui.statusbar.connectivity.WifiIndicators;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -91,6 +92,12 @@ public class InternetTileTest extends SysuiTestCase {
mTestableLooper.processAllMessages();
}
@After
public void tearDown() {
mTile.destroy();
mTestableLooper.processAllMessages();
}
@Test
public void setConnectivityStatus_defaultNetworkNotExists_updateTile() {
mTile.mSignalCallback.setConnectivityStatus(

View File

@@ -35,6 +35,7 @@ import com.android.systemui.qs.tileimpl.QSTileImpl
import com.android.systemui.statusbar.policy.KeyguardStateController
import com.android.systemui.statusbar.policy.LocationController
import com.google.common.truth.Truth.assertThat
import org.junit.After
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
@@ -88,6 +89,12 @@ class LocationTileTest : SysuiTestCase() {
keyguardStateController)
}
@After
fun tearDown() {
tile.destroy()
testableLooper.processAllMessages()
}
@Test
fun testIcon_whenDisabled_isOffState() {
val state = QSTile.BooleanState()

View File

@@ -35,6 +35,7 @@ import com.android.systemui.qs.tileimpl.QSTileImpl
import com.android.systemui.statusbar.policy.IndividualSensorPrivacyController
import com.android.systemui.statusbar.policy.KeyguardStateController
import com.google.common.truth.Truth.assertThat
import org.junit.After
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
@@ -90,6 +91,12 @@ class MicrophoneToggleTileTest : SysuiTestCase() {
keyguardStateController)
}
@After
fun tearDown() {
tile.destroy()
testableLooper.processAllMessages()
}
@Test
fun testIcon_whenMicrophoneAccessEnabled_isOnState() {
val state = QSTile.BooleanState()

View File

@@ -39,6 +39,7 @@ import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.qs.QSHost;
import com.android.systemui.qs.logging.QSLogger;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -97,6 +98,12 @@ public class NfcTileTest extends SysuiTestCase {
mTestableLooper.processAllMessages();
}
@After
public void tearDown() {
mNfcTile.destroy();
mTestableLooper.processAllMessages();
}
@Test
public void testIsAvailable_stockWithoutNfc_returnsFalse() {
when(mMockContext.getString(R.string.quick_settings_tiles_stock)).thenReturn(

View File

@@ -37,6 +37,7 @@ import com.android.systemui.qs.logging.QSLogger
import com.android.systemui.qs.tileimpl.QSTileImpl
import com.android.systemui.statusbar.policy.LocationController
import com.google.common.truth.Truth
import org.junit.After
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
@@ -49,32 +50,23 @@ import org.mockito.MockitoAnnotations
@TestableLooper.RunWithLooper(setAsMainLooper = true)
@SmallTest
class NightDisplayTileTest : SysuiTestCase() {
@Mock
private lateinit var mHost: QSHost
@Mock private lateinit var mHost: QSHost
@Mock
private lateinit var mMetricsLogger: MetricsLogger
@Mock private lateinit var mMetricsLogger: MetricsLogger
@Mock
private lateinit var mStatusBarStateController: StatusBarStateController
@Mock private lateinit var mStatusBarStateController: StatusBarStateController
@Mock
private lateinit var mActivityStarter: ActivityStarter
@Mock private lateinit var mActivityStarter: ActivityStarter
@Mock
private lateinit var mQsLogger: QSLogger
@Mock private lateinit var mQsLogger: QSLogger
@Mock
private lateinit var mLocationController: LocationController
@Mock private lateinit var mLocationController: LocationController
@Mock
private lateinit var mColorDisplayManager: ColorDisplayManager
@Mock private lateinit var mColorDisplayManager: ColorDisplayManager
@Mock
private lateinit var mNightDisplayListenerBuilder: NightDisplayListenerModule.Builder
@Mock private lateinit var mNightDisplayListenerBuilder: NightDisplayListenerModule.Builder
@Mock
private lateinit var mNightDisplayListener: NightDisplayListener
@Mock private lateinit var mNightDisplayListener: NightDisplayListener
private lateinit var mTestableLooper: TestableLooper
private lateinit var mTile: NightDisplayTile
@@ -88,24 +80,30 @@ class NightDisplayTileTest : SysuiTestCase() {
whenever(mHost.context).thenReturn(mContext)
whenever(mHost.uiEventLogger).thenReturn(mUiEventLogger)
whenever(mHost.userContext).thenReturn(mContext)
whenever(mNightDisplayListenerBuilder.setUser(anyInt())).thenReturn(
mNightDisplayListenerBuilder
)
whenever(mNightDisplayListenerBuilder.setUser(anyInt()))
.thenReturn(mNightDisplayListenerBuilder)
whenever(mNightDisplayListenerBuilder.build()).thenReturn(mNightDisplayListener)
mTile = NightDisplayTile(
mHost,
mTestableLooper.looper,
Handler(mTestableLooper.looper),
FalsingManagerFake(),
mMetricsLogger,
mStatusBarStateController,
mActivityStarter,
mQsLogger,
mLocationController,
mColorDisplayManager,
mNightDisplayListenerBuilder
)
mTile =
NightDisplayTile(
mHost,
mTestableLooper.looper,
Handler(mTestableLooper.looper),
FalsingManagerFake(),
mMetricsLogger,
mStatusBarStateController,
mActivityStarter,
mQsLogger,
mLocationController,
mColorDisplayManager,
mNightDisplayListenerBuilder
)
}
@After
fun tearDown() {
mTile.destroy()
mTestableLooper.processAllMessages()
}
@Test

View File

@@ -37,6 +37,7 @@ import com.android.systemui.qs.logging.QSLogger;
import com.android.systemui.settings.UserTracker;
import com.android.systemui.util.settings.SecureSettings;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -91,6 +92,12 @@ public class OneHandedModeTileTest extends SysuiTestCase {
mTile.initialize();
}
@After
public void tearDown() {
mTile.destroy();
mTestableLooper.processAllMessages();
}
@Test
public void testIsAvailable_unsupportOneHandedProperty_shouldReturnsFalse() {
when(mTile.isSupportOneHandedMode()).thenReturn(false);

View File

@@ -43,6 +43,7 @@ import com.android.systemui.qs.QSHost;
import com.android.systemui.qs.logging.QSLogger;
import com.android.systemui.qs.tileimpl.QSTileImpl;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -91,6 +92,12 @@ public class QRCodeScannerTileTest extends SysuiTestCase {
mTestableLooper.processAllMessages();
}
@After
public void tearDown() {
mTile.destroy();
mTestableLooper.processAllMessages();
}
@Test
public void testNewTile() {
assertFalse(mTile.newTileState().handlesLongClick);

View File

@@ -73,6 +73,7 @@ import com.android.systemui.statusbar.policy.KeyguardStateController;
import com.android.systemui.util.settings.SecureSettings;
import com.android.systemui.wallet.controller.QuickAccessWalletController;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -161,6 +162,12 @@ public class QuickAccessWalletTileTest extends SysuiTestCase {
mTestableLooper.processAllMessages();
}
@After
public void tearDown() {
mTile.destroy();
mTestableLooper.processAllMessages();
}
@Test
public void testNewTile() {
assertFalse(mTile.newTileState().handlesLongClick);

View File

@@ -44,8 +44,8 @@ import com.android.systemui.qs.logging.QSLogger;
import com.android.systemui.qs.tileimpl.QSTileImpl;
import com.android.systemui.settings.UserTracker;
import org.junit.After;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
@@ -54,7 +54,6 @@ import org.mockito.MockitoAnnotations;
@RunWith(AndroidTestingRunner.class)
@TestableLooper.RunWithLooper(setAsMainLooper = true)
@SmallTest
@Ignore("b/269171747")
public class ReduceBrightColorsTileTest extends SysuiTestCase {
@Mock
private QSHost mHost;
@@ -99,6 +98,12 @@ public class ReduceBrightColorsTileTest extends SysuiTestCase {
mTestableLooper.processAllMessages();
}
@After
public void tearDown() {
mTile.destroy();
mTestableLooper.processAllMessages();
}
@Test
public void testNotActive() {
when(mReduceBrightColorsController.isReduceBrightColorsActivated()).thenReturn(false);

View File

@@ -48,6 +48,7 @@ import com.android.systemui.statusbar.policy.RotationLockControllerImpl;
import com.android.systemui.util.settings.FakeSettings;
import com.android.systemui.util.wrapper.RotationPolicyWrapper;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -139,6 +140,12 @@ public class RotationLockTileTest extends SysuiTestCase {
mTestableLooper.processAllMessages();
}
@After
public void tearDown() {
mLockTile.destroy();
mTestableLooper.processAllMessages();
}
@Test
public void testSecondaryString_cameraRotateOn_returnsFaceBased() {
assertEquals(mContext.getString(R.string.rotation_lock_camera_rotation_on),

View File

@@ -50,6 +50,7 @@ import com.android.systemui.screenrecord.RecordingController;
import com.android.systemui.statusbar.phone.KeyguardDismissUtil;
import com.android.systemui.statusbar.policy.KeyguardStateController;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -114,6 +115,12 @@ public class ScreenRecordTileTest extends SysuiTestCase {
mTestableLooper.processAllMessages();
}
@After
public void tearDown() {
mTile.destroy();
mTestableLooper.processAllMessages();
}
// Test that the tile is inactive and labeled correctly when the controller is neither starting
// or recording, and that clicking on the tile in this state brings up the record prompt
@Test

View File

@@ -39,6 +39,7 @@ import com.android.systemui.statusbar.policy.BatteryController
import com.android.systemui.statusbar.policy.ConfigurationController
import com.android.systemui.statusbar.policy.LocationController
import com.google.common.truth.Truth.assertThat
import org.junit.After
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
@@ -98,6 +99,12 @@ class UiModeNightTileTest : SysuiTestCase() {
)
}
@After
fun tearDown() {
tile.destroy()
testableLooper.processAllMessages()
}
@Test
fun testIcon_whenNightModeOn_isOnState() {
val state = QSTile.BooleanState()