Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c7dd3cab authored by Dave McCloskey's avatar Dave McCloskey
Browse files

Changes to reduce flakiness of TrustTests

Use AndroidTest.xml to disable the double-click on power for turning on
Camera.
While trying to dismiss keyguard, use the back button instead of trying to power cycle the phone in order
to dismiss bouncer. As part of this, also wake the device if it's asleep
since you cannot dismiss keyguard if the display is off.

Bug: 226652325
Test: atest --iterations TrustTests
Change-Id: I7eb920f220dbc8d28d7c2035252365277d51421a
parent 8ffe12bb
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -16,6 +16,13 @@
  -->
<configuration description="TrustTests configuration">
    <option name="test-tag" value="TrustTests" />
    <target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer">
        <!-- Disable the double-tap power button for camera -->
        <option name="run-command"
                value="settings put secure camera_double_tap_power_gesture_disabled 1" />
        <option name="teardown-command"
                value="settings delete secure camera_double_tap_power_gesture_disabled" />
    </target_preparer>
    <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller">
        <option name="cleanup-apks" value="true" />
        <option name="test-file-name" value="TrustTests.apk" />
+1 −1
Original line number Diff line number Diff line
@@ -38,7 +38,7 @@ import org.junit.runner.RunWith
 */
@RunWith(AndroidJUnit4::class)
class UserUnlockRequestTest {
    private val context: Context = getApplicationContext()
    private val context = getApplicationContext<Context>()
    private val trustManager = context.getSystemService(TrustManager::class.java) as TrustManager
    private val userId = context.userId
    private val activityScenarioRule = ActivityScenarioRule(TrustTestActivity::class.java)
+11 −8
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package android.trust.test.lib

import android.content.Context
import android.util.Log
import android.view.KeyEvent
import android.view.WindowManagerGlobal
import androidx.test.core.app.ApplicationProvider.getApplicationContext
import androidx.test.platform.app.InstrumentationRegistry.getInstrumentation
@@ -64,17 +65,19 @@ class ScreenLockRule : TestRule {

    fun dismissKeyguard() {
        wait("keyguard dismissed") { count ->
            windowManager.dismissKeyguard(null, null)

            // Sometimes, bouncer gets shown due to a race, so we have to put display to sleep
            // and wake it back up to get it to go away
            if (count >= 10 && count % 5 == 0) {
                Log.i(TAG, "Escalation: attempting screen off/on to get rid of bouncer")
                uiDevice.sleep()
                Thread.sleep(250)
            if (!uiDevice.isScreenOn) {
                Log.i(TAG, "Waking device, +500ms")
                uiDevice.wakeUp()
            }

            // Bouncer may be shown due to a race; back dismisses it
            if (count >= 10) {
                Log.i(TAG, "Pressing back to dismiss Bouncer")
                uiDevice.pressKeyCode(KeyEvent.KEYCODE_BACK)
            }

            windowManager.dismissKeyguard(null, null)

            !windowManager.isKeyguardLocked
        }
    }