Loading packages/SystemUI/multivalentTests/src/com/android/systemui/mediaprojection/permission/ShareToAppPermissionDialogDelegateTest.kt +37 −2 Original line number Original line Diff line number Diff line Loading @@ -18,12 +18,17 @@ package com.android.systemui.mediaprojection.permission import android.app.AlertDialog import android.app.AlertDialog import android.media.projection.MediaProjectionConfig import android.media.projection.MediaProjectionConfig import android.platform.test.annotations.RequiresFlagsDisabled import android.platform.test.annotations.RequiresFlagsEnabled import android.platform.test.flag.junit.CheckFlagsRule import android.platform.test.flag.junit.DeviceFlagsValueProvider import android.testing.TestableLooper import android.testing.TestableLooper import android.view.WindowManager import android.view.WindowManager import android.widget.Spinner import android.widget.Spinner import android.widget.TextView import android.widget.TextView import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import androidx.test.filters.SmallTest import com.android.systemui.Flags import com.android.systemui.SysuiTestCase import com.android.systemui.SysuiTestCase import com.android.systemui.mediaprojection.MediaProjectionMetricsLogger import com.android.systemui.mediaprojection.MediaProjectionMetricsLogger import com.android.systemui.res.R import com.android.systemui.res.R Loading @@ -32,6 +37,7 @@ import com.android.systemui.statusbar.phone.SystemUIDialog import com.google.common.truth.Truth.assertThat import com.google.common.truth.Truth.assertThat import kotlin.test.assertEquals import kotlin.test.assertEquals import org.junit.After import org.junit.After import org.junit.Rule import org.junit.Test import org.junit.Test import org.junit.runner.RunWith import org.junit.runner.RunWith import org.mockito.kotlin.mock import org.mockito.kotlin.mock Loading @@ -41,6 +47,8 @@ import org.mockito.kotlin.mock @TestableLooper.RunWithLooper(setAsMainLooper = true) @TestableLooper.RunWithLooper(setAsMainLooper = true) class ShareToAppPermissionDialogDelegateTest : SysuiTestCase() { class ShareToAppPermissionDialogDelegateTest : SysuiTestCase() { @get:Rule val checkFlagRule: CheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule() private lateinit var dialog: AlertDialog private lateinit var dialog: AlertDialog private val appName = "Test App" private val appName = "Test App" Loading @@ -51,6 +59,8 @@ class ShareToAppPermissionDialogDelegateTest : SysuiTestCase() { R.string.media_projection_entry_app_permission_dialog_option_text_entire_screen R.string.media_projection_entry_app_permission_dialog_option_text_entire_screen private val resIdSingleAppDisabled = private val resIdSingleAppDisabled = R.string.media_projection_entry_app_permission_dialog_single_app_disabled R.string.media_projection_entry_app_permission_dialog_single_app_disabled private val resIdSingleAppNotSupported = R.string.media_projection_entry_app_permission_dialog_single_app_not_supported @After @After fun teardown() { fun teardown() { Loading Loading @@ -78,6 +88,7 @@ class ShareToAppPermissionDialogDelegateTest : SysuiTestCase() { } } @Test @Test @RequiresFlagsDisabled(Flags.FLAG_MEDIA_PROJECTION_GREY_ERROR_TEXT) fun showDialog_disableSingleApp() { fun showDialog_disableSingleApp() { setUpAndShowDialog( setUpAndShowDialog( mediaProjectionConfig = MediaProjectionConfig.createConfigForDefaultDisplay() mediaProjectionConfig = MediaProjectionConfig.createConfigForDefaultDisplay() Loading @@ -97,11 +108,35 @@ class ShareToAppPermissionDialogDelegateTest : SysuiTestCase() { assertEquals(context.getString(resIdSingleAppDisabled, appName), secondOptionWarningText) assertEquals(context.getString(resIdSingleAppDisabled, appName), secondOptionWarningText) } } @Test @RequiresFlagsEnabled(Flags.FLAG_MEDIA_PROJECTION_GREY_ERROR_TEXT) fun showDialog_disableSingleApp_appNotSupported() { setUpAndShowDialog( mediaProjectionConfig = MediaProjectionConfig.createConfigForDefaultDisplay() ) val spinner = dialog.requireViewById<Spinner>(R.id.screen_share_mode_options) val secondOptionWarningText = spinner.adapter .getDropDownView(1, null, spinner) .findViewById<TextView>(android.R.id.text2) ?.text // check that the first option is full screen and enabled assertEquals(context.getString(resIdFullScreen), spinner.selectedItem) // check that the second option is single app and disabled assertEquals( context.getString(resIdSingleAppNotSupported, appName), secondOptionWarningText, ) } @Test @Test fun showDialog_disableSingleApp_forceShowPartialScreenShareTrue() { fun showDialog_disableSingleApp_forceShowPartialScreenShareTrue() { setUpAndShowDialog( setUpAndShowDialog( mediaProjectionConfig = MediaProjectionConfig.createConfigForDefaultDisplay(), mediaProjectionConfig = MediaProjectionConfig.createConfigForDefaultDisplay(), overrideDisableSingleAppOption = true overrideDisableSingleAppOption = true, ) ) val spinner = dialog.requireViewById<Spinner>(R.id.screen_share_mode_options) val spinner = dialog.requireViewById<Spinner>(R.id.screen_share_mode_options) Loading Loading @@ -161,7 +196,7 @@ class ShareToAppPermissionDialogDelegateTest : SysuiTestCase() { appName, appName, overrideDisableSingleAppOption, overrideDisableSingleAppOption, hostUid = 12345, hostUid = 12345, mediaProjectionMetricsLogger = mock<MediaProjectionMetricsLogger>() mediaProjectionMetricsLogger = mock<MediaProjectionMetricsLogger>(), ) ) dialog = AlertDialogWithDelegate(context, R.style.Theme_SystemUI_Dialog, delegate) dialog = AlertDialogWithDelegate(context, R.style.Theme_SystemUI_Dialog, delegate) Loading packages/SystemUI/multivalentTests/src/com/android/systemui/mediaprojection/permission/SystemCastPermissionDialogDelegateTest.kt +36 −1 Original line number Original line Diff line number Diff line Loading @@ -18,12 +18,17 @@ package com.android.systemui.mediaprojection.permission import android.app.AlertDialog import android.app.AlertDialog import android.media.projection.MediaProjectionConfig import android.media.projection.MediaProjectionConfig import android.platform.test.annotations.RequiresFlagsDisabled import android.platform.test.annotations.RequiresFlagsEnabled import android.platform.test.flag.junit.CheckFlagsRule import android.platform.test.flag.junit.DeviceFlagsValueProvider import android.testing.TestableLooper import android.testing.TestableLooper import android.view.WindowManager import android.view.WindowManager import android.widget.Spinner import android.widget.Spinner import android.widget.TextView import android.widget.TextView import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import androidx.test.filters.SmallTest import com.android.systemui.Flags import com.android.systemui.SysuiTestCase import com.android.systemui.SysuiTestCase import com.android.systemui.mediaprojection.MediaProjectionMetricsLogger import com.android.systemui.mediaprojection.MediaProjectionMetricsLogger import com.android.systemui.res.R import com.android.systemui.res.R Loading @@ -32,6 +37,7 @@ import com.android.systemui.statusbar.phone.SystemUIDialog import com.google.common.truth.Truth.assertThat import com.google.common.truth.Truth.assertThat import kotlin.test.assertEquals import kotlin.test.assertEquals import org.junit.After import org.junit.After import org.junit.Rule import org.junit.Test import org.junit.Test import org.junit.runner.RunWith import org.junit.runner.RunWith import org.mockito.kotlin.mock import org.mockito.kotlin.mock Loading @@ -41,6 +47,8 @@ import org.mockito.kotlin.mock @TestableLooper.RunWithLooper(setAsMainLooper = true) @TestableLooper.RunWithLooper(setAsMainLooper = true) class SystemCastPermissionDialogDelegateTest : SysuiTestCase() { class SystemCastPermissionDialogDelegateTest : SysuiTestCase() { @get:Rule val checkFlagRule: CheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule() private lateinit var dialog: AlertDialog private lateinit var dialog: AlertDialog private val appName = "Test App" private val appName = "Test App" Loading @@ -51,6 +59,8 @@ class SystemCastPermissionDialogDelegateTest : SysuiTestCase() { R.string.media_projection_entry_cast_permission_dialog_option_text_entire_screen R.string.media_projection_entry_cast_permission_dialog_option_text_entire_screen private val resIdSingleAppDisabled = private val resIdSingleAppDisabled = R.string.media_projection_entry_app_permission_dialog_single_app_disabled R.string.media_projection_entry_app_permission_dialog_single_app_disabled private val resIdSingleAppNotSupported = R.string.media_projection_entry_app_permission_dialog_single_app_not_supported @After @After fun teardown() { fun teardown() { Loading Loading @@ -78,6 +88,7 @@ class SystemCastPermissionDialogDelegateTest : SysuiTestCase() { } } @Test @Test @RequiresFlagsDisabled(Flags.FLAG_MEDIA_PROJECTION_GREY_ERROR_TEXT) fun showDialog_disableSingleApp() { fun showDialog_disableSingleApp() { setUpAndShowDialog( setUpAndShowDialog( mediaProjectionConfig = MediaProjectionConfig.createConfigForDefaultDisplay() mediaProjectionConfig = MediaProjectionConfig.createConfigForDefaultDisplay() Loading @@ -97,6 +108,30 @@ class SystemCastPermissionDialogDelegateTest : SysuiTestCase() { assertEquals(context.getString(resIdSingleAppDisabled, appName), secondOptionWarningText) assertEquals(context.getString(resIdSingleAppDisabled, appName), secondOptionWarningText) } } @Test @RequiresFlagsEnabled(Flags.FLAG_MEDIA_PROJECTION_GREY_ERROR_TEXT) fun showDialog_disableSingleApp_appNotSupported() { setUpAndShowDialog( mediaProjectionConfig = MediaProjectionConfig.createConfigForDefaultDisplay() ) val spinner = dialog.requireViewById<Spinner>(R.id.screen_share_mode_options) val secondOptionWarningText = spinner.adapter .getDropDownView(1, null, spinner) .findViewById<TextView>(android.R.id.text2) ?.text // check that the first option is full screen and enabled assertEquals(context.getString(resIdFullScreen), spinner.selectedItem) // check that the second option is single app and disabled assertEquals( context.getString(resIdSingleAppNotSupported, appName), secondOptionWarningText, ) } @Test @Test fun showDialog_disableSingleApp_forceShowPartialScreenShareTrue() { fun showDialog_disableSingleApp_forceShowPartialScreenShareTrue() { setUpAndShowDialog( setUpAndShowDialog( Loading Loading @@ -169,7 +204,7 @@ class SystemCastPermissionDialogDelegateTest : SysuiTestCase() { SystemUIDialog.setDialogSize(dialog) SystemUIDialog.setDialogSize(dialog) dialog.window?.addSystemFlags( dialog.window?.addSystemFlags( WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS, WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS ) ) delegate.onCreate(dialog, savedInstanceState = null) delegate.onCreate(dialog, savedInstanceState = null) Loading Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/mediaprojection/permission/ShareToAppPermissionDialogDelegateTest.kt +37 −2 Original line number Original line Diff line number Diff line Loading @@ -18,12 +18,17 @@ package com.android.systemui.mediaprojection.permission import android.app.AlertDialog import android.app.AlertDialog import android.media.projection.MediaProjectionConfig import android.media.projection.MediaProjectionConfig import android.platform.test.annotations.RequiresFlagsDisabled import android.platform.test.annotations.RequiresFlagsEnabled import android.platform.test.flag.junit.CheckFlagsRule import android.platform.test.flag.junit.DeviceFlagsValueProvider import android.testing.TestableLooper import android.testing.TestableLooper import android.view.WindowManager import android.view.WindowManager import android.widget.Spinner import android.widget.Spinner import android.widget.TextView import android.widget.TextView import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import androidx.test.filters.SmallTest import com.android.systemui.Flags import com.android.systemui.SysuiTestCase import com.android.systemui.SysuiTestCase import com.android.systemui.mediaprojection.MediaProjectionMetricsLogger import com.android.systemui.mediaprojection.MediaProjectionMetricsLogger import com.android.systemui.res.R import com.android.systemui.res.R Loading @@ -32,6 +37,7 @@ import com.android.systemui.statusbar.phone.SystemUIDialog import com.google.common.truth.Truth.assertThat import com.google.common.truth.Truth.assertThat import kotlin.test.assertEquals import kotlin.test.assertEquals import org.junit.After import org.junit.After import org.junit.Rule import org.junit.Test import org.junit.Test import org.junit.runner.RunWith import org.junit.runner.RunWith import org.mockito.kotlin.mock import org.mockito.kotlin.mock Loading @@ -41,6 +47,8 @@ import org.mockito.kotlin.mock @TestableLooper.RunWithLooper(setAsMainLooper = true) @TestableLooper.RunWithLooper(setAsMainLooper = true) class ShareToAppPermissionDialogDelegateTest : SysuiTestCase() { class ShareToAppPermissionDialogDelegateTest : SysuiTestCase() { @get:Rule val checkFlagRule: CheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule() private lateinit var dialog: AlertDialog private lateinit var dialog: AlertDialog private val appName = "Test App" private val appName = "Test App" Loading @@ -51,6 +59,8 @@ class ShareToAppPermissionDialogDelegateTest : SysuiTestCase() { R.string.media_projection_entry_app_permission_dialog_option_text_entire_screen R.string.media_projection_entry_app_permission_dialog_option_text_entire_screen private val resIdSingleAppDisabled = private val resIdSingleAppDisabled = R.string.media_projection_entry_app_permission_dialog_single_app_disabled R.string.media_projection_entry_app_permission_dialog_single_app_disabled private val resIdSingleAppNotSupported = R.string.media_projection_entry_app_permission_dialog_single_app_not_supported @After @After fun teardown() { fun teardown() { Loading Loading @@ -78,6 +88,7 @@ class ShareToAppPermissionDialogDelegateTest : SysuiTestCase() { } } @Test @Test @RequiresFlagsDisabled(Flags.FLAG_MEDIA_PROJECTION_GREY_ERROR_TEXT) fun showDialog_disableSingleApp() { fun showDialog_disableSingleApp() { setUpAndShowDialog( setUpAndShowDialog( mediaProjectionConfig = MediaProjectionConfig.createConfigForDefaultDisplay() mediaProjectionConfig = MediaProjectionConfig.createConfigForDefaultDisplay() Loading @@ -97,11 +108,35 @@ class ShareToAppPermissionDialogDelegateTest : SysuiTestCase() { assertEquals(context.getString(resIdSingleAppDisabled, appName), secondOptionWarningText) assertEquals(context.getString(resIdSingleAppDisabled, appName), secondOptionWarningText) } } @Test @RequiresFlagsEnabled(Flags.FLAG_MEDIA_PROJECTION_GREY_ERROR_TEXT) fun showDialog_disableSingleApp_appNotSupported() { setUpAndShowDialog( mediaProjectionConfig = MediaProjectionConfig.createConfigForDefaultDisplay() ) val spinner = dialog.requireViewById<Spinner>(R.id.screen_share_mode_options) val secondOptionWarningText = spinner.adapter .getDropDownView(1, null, spinner) .findViewById<TextView>(android.R.id.text2) ?.text // check that the first option is full screen and enabled assertEquals(context.getString(resIdFullScreen), spinner.selectedItem) // check that the second option is single app and disabled assertEquals( context.getString(resIdSingleAppNotSupported, appName), secondOptionWarningText, ) } @Test @Test fun showDialog_disableSingleApp_forceShowPartialScreenShareTrue() { fun showDialog_disableSingleApp_forceShowPartialScreenShareTrue() { setUpAndShowDialog( setUpAndShowDialog( mediaProjectionConfig = MediaProjectionConfig.createConfigForDefaultDisplay(), mediaProjectionConfig = MediaProjectionConfig.createConfigForDefaultDisplay(), overrideDisableSingleAppOption = true overrideDisableSingleAppOption = true, ) ) val spinner = dialog.requireViewById<Spinner>(R.id.screen_share_mode_options) val spinner = dialog.requireViewById<Spinner>(R.id.screen_share_mode_options) Loading Loading @@ -161,7 +196,7 @@ class ShareToAppPermissionDialogDelegateTest : SysuiTestCase() { appName, appName, overrideDisableSingleAppOption, overrideDisableSingleAppOption, hostUid = 12345, hostUid = 12345, mediaProjectionMetricsLogger = mock<MediaProjectionMetricsLogger>() mediaProjectionMetricsLogger = mock<MediaProjectionMetricsLogger>(), ) ) dialog = AlertDialogWithDelegate(context, R.style.Theme_SystemUI_Dialog, delegate) dialog = AlertDialogWithDelegate(context, R.style.Theme_SystemUI_Dialog, delegate) Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/mediaprojection/permission/SystemCastPermissionDialogDelegateTest.kt +36 −1 Original line number Original line Diff line number Diff line Loading @@ -18,12 +18,17 @@ package com.android.systemui.mediaprojection.permission import android.app.AlertDialog import android.app.AlertDialog import android.media.projection.MediaProjectionConfig import android.media.projection.MediaProjectionConfig import android.platform.test.annotations.RequiresFlagsDisabled import android.platform.test.annotations.RequiresFlagsEnabled import android.platform.test.flag.junit.CheckFlagsRule import android.platform.test.flag.junit.DeviceFlagsValueProvider import android.testing.TestableLooper import android.testing.TestableLooper import android.view.WindowManager import android.view.WindowManager import android.widget.Spinner import android.widget.Spinner import android.widget.TextView import android.widget.TextView import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import androidx.test.filters.SmallTest import com.android.systemui.Flags import com.android.systemui.SysuiTestCase import com.android.systemui.SysuiTestCase import com.android.systemui.mediaprojection.MediaProjectionMetricsLogger import com.android.systemui.mediaprojection.MediaProjectionMetricsLogger import com.android.systemui.res.R import com.android.systemui.res.R Loading @@ -32,6 +37,7 @@ import com.android.systemui.statusbar.phone.SystemUIDialog import com.google.common.truth.Truth.assertThat import com.google.common.truth.Truth.assertThat import kotlin.test.assertEquals import kotlin.test.assertEquals import org.junit.After import org.junit.After import org.junit.Rule import org.junit.Test import org.junit.Test import org.junit.runner.RunWith import org.junit.runner.RunWith import org.mockito.kotlin.mock import org.mockito.kotlin.mock Loading @@ -41,6 +47,8 @@ import org.mockito.kotlin.mock @TestableLooper.RunWithLooper(setAsMainLooper = true) @TestableLooper.RunWithLooper(setAsMainLooper = true) class SystemCastPermissionDialogDelegateTest : SysuiTestCase() { class SystemCastPermissionDialogDelegateTest : SysuiTestCase() { @get:Rule val checkFlagRule: CheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule() private lateinit var dialog: AlertDialog private lateinit var dialog: AlertDialog private val appName = "Test App" private val appName = "Test App" Loading @@ -51,6 +59,8 @@ class SystemCastPermissionDialogDelegateTest : SysuiTestCase() { R.string.media_projection_entry_cast_permission_dialog_option_text_entire_screen R.string.media_projection_entry_cast_permission_dialog_option_text_entire_screen private val resIdSingleAppDisabled = private val resIdSingleAppDisabled = R.string.media_projection_entry_app_permission_dialog_single_app_disabled R.string.media_projection_entry_app_permission_dialog_single_app_disabled private val resIdSingleAppNotSupported = R.string.media_projection_entry_app_permission_dialog_single_app_not_supported @After @After fun teardown() { fun teardown() { Loading Loading @@ -78,6 +88,7 @@ class SystemCastPermissionDialogDelegateTest : SysuiTestCase() { } } @Test @Test @RequiresFlagsDisabled(Flags.FLAG_MEDIA_PROJECTION_GREY_ERROR_TEXT) fun showDialog_disableSingleApp() { fun showDialog_disableSingleApp() { setUpAndShowDialog( setUpAndShowDialog( mediaProjectionConfig = MediaProjectionConfig.createConfigForDefaultDisplay() mediaProjectionConfig = MediaProjectionConfig.createConfigForDefaultDisplay() Loading @@ -97,6 +108,30 @@ class SystemCastPermissionDialogDelegateTest : SysuiTestCase() { assertEquals(context.getString(resIdSingleAppDisabled, appName), secondOptionWarningText) assertEquals(context.getString(resIdSingleAppDisabled, appName), secondOptionWarningText) } } @Test @RequiresFlagsEnabled(Flags.FLAG_MEDIA_PROJECTION_GREY_ERROR_TEXT) fun showDialog_disableSingleApp_appNotSupported() { setUpAndShowDialog( mediaProjectionConfig = MediaProjectionConfig.createConfigForDefaultDisplay() ) val spinner = dialog.requireViewById<Spinner>(R.id.screen_share_mode_options) val secondOptionWarningText = spinner.adapter .getDropDownView(1, null, spinner) .findViewById<TextView>(android.R.id.text2) ?.text // check that the first option is full screen and enabled assertEquals(context.getString(resIdFullScreen), spinner.selectedItem) // check that the second option is single app and disabled assertEquals( context.getString(resIdSingleAppNotSupported, appName), secondOptionWarningText, ) } @Test @Test fun showDialog_disableSingleApp_forceShowPartialScreenShareTrue() { fun showDialog_disableSingleApp_forceShowPartialScreenShareTrue() { setUpAndShowDialog( setUpAndShowDialog( Loading Loading @@ -169,7 +204,7 @@ class SystemCastPermissionDialogDelegateTest : SysuiTestCase() { SystemUIDialog.setDialogSize(dialog) SystemUIDialog.setDialogSize(dialog) dialog.window?.addSystemFlags( dialog.window?.addSystemFlags( WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS, WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS ) ) delegate.onCreate(dialog, savedInstanceState = null) delegate.onCreate(dialog, savedInstanceState = null) Loading