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

Commit 6c898be0 authored by Mateusz Cicheński's avatar Mateusz Cicheński
Browse files

Grant runtime permissions required by the apps

This is a pre-emptive action so that the apps don't show up the system
popups asking for the permission preventing the automation from testing
the app.

Bug: 302034872
Test: n/a

Change-Id: Ibd3bdc2cc948884ac3711e6576ad58baeb977030
parent bcae0605
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -31,10 +31,18 @@ import org.junit.runners.Parameterized
abstract class AppsEnterPipTransition(flicker: LegacyFlickerTest) : EnterPipTransition(flicker) {
    protected abstract val standardAppHelper: StandardAppHelper

    protected abstract val permissions: Array<String>

    @FlickerBuilderProvider
    override fun buildFlicker(): FlickerBuilder {
        return FlickerBuilder(instrumentation).apply {
            instrumentation.uiAutomation.adoptShellPermissionIdentity()
            for (permission in permissions) {
                instrumentation.uiAutomation.grantRuntimePermission(
                    standardAppHelper.packageName,
                    permission
                )
            }
            setup { flicker.scenario.setIsTablet(tapl.isTablet) }
            transition()
        }
+4 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package com.android.wm.shell.flicker.pip.apps

import android.Manifest
import android.content.Context
import android.location.Criteria
import android.location.Location
@@ -64,6 +65,9 @@ import org.junit.runners.Parameterized
open class MapsEnterPipTest(flicker: LegacyFlickerTest) : AppsEnterPipTransition(flicker) {
    override val standardAppHelper: MapsAppHelper = MapsAppHelper(instrumentation)

    override val permissions: Array<String> = arrayOf(Manifest.permission.POST_NOTIFICATIONS,
        Manifest.permission.ACCESS_FINE_LOCATION)

    val locationManager: LocationManager =
        instrumentation.context.getSystemService(Context.LOCATION_SERVICE) as LocationManager
    val mainHandler = Handler(Looper.getMainLooper())
+3 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package com.android.wm.shell.flicker.pip.apps

import android.Manifest
import android.platform.test.annotations.Postsubmit
import android.tools.common.NavBar
import android.tools.common.Rotation
@@ -62,6 +63,8 @@ import org.junit.runners.Parameterized
open class NetflixEnterPipTest(flicker: LegacyFlickerTest) : AppsEnterPipTransition(flicker) {
    override val standardAppHelper: NetflixAppHelper = NetflixAppHelper(instrumentation)

    override val permissions: Array<String> = arrayOf(Manifest.permission.POST_NOTIFICATIONS)

    override val defaultEnterPip: FlickerBuilder.() -> Unit = {
        setup {
            standardAppHelper.launchViaIntent(
+3 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package com.android.wm.shell.flicker.pip.apps

import android.Manifest
import android.platform.test.annotations.Postsubmit
import android.tools.common.traces.component.ComponentNameMatcher
import android.tools.device.apphelpers.YouTubeAppHelper
@@ -58,6 +59,8 @@ import org.junit.runners.Parameterized
open class YouTubeEnterPipTest(flicker: LegacyFlickerTest) : AppsEnterPipTransition(flicker) {
    override val standardAppHelper: YouTubeAppHelper = YouTubeAppHelper(instrumentation)

    override val permissions: Array<String> = arrayOf(Manifest.permission.POST_NOTIFICATIONS)

    override val defaultEnterPip: FlickerBuilder.() -> Unit = {
        setup {
            standardAppHelper.launchViaIntent(