Prompt user to Setup a device lock if not set
This add below changes on selecting private space setting: 1. Prompt user to setup device lock if not already set 2. If device lock is set authenticate user first before displaying private space settings page Screenshot - https://screenshot.googleplex.com/4SrYHbBMJfVuoRy.png https://screenshot.googleplex.com/6vNWm7Lg83vfnH8.png RecordingLink - https://drive.google.com/file/d/1r4zb3ILPRqwvP5tlwfjQ9GgnDAW4vZg6/view?usp=drive_link Bug: 289016927 Test: atest PrivateSpaceSettingsAuthenticatorTest , atest SecuritySettingsTest Change-Id: I0e5dfb30213843c0dec60a17d01c30cd91db89b0
This commit is contained in:
@@ -16,6 +16,9 @@
|
||||
|
||||
package com.android.settings.ui
|
||||
|
||||
import android.os.Flags
|
||||
import android.platform.test.annotations.RequiresFlagsEnabled
|
||||
import android.platform.test.flag.junit.DeviceFlagsValueProvider
|
||||
import android.provider.Settings
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||
import androidx.test.platform.app.InstrumentationRegistry
|
||||
@@ -23,13 +26,18 @@ import androidx.test.uiautomator.UiDevice
|
||||
import com.android.settings.ui.testutils.SettingsTestUtils.assertHasTexts
|
||||
import com.android.settings.ui.testutils.SettingsTestUtils.startMainActivityFromHomeScreen
|
||||
import org.junit.Before
|
||||
import org.junit.Rule
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
|
||||
|
||||
@RunWith(AndroidJUnit4::class)
|
||||
class SecuritySettingsTest {
|
||||
private val device = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation())
|
||||
|
||||
@get:Rule
|
||||
public val mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule()
|
||||
|
||||
@Before
|
||||
fun setUp() {
|
||||
device.startMainActivityFromHomeScreen(Settings.ACTION_SECURITY_SETTINGS)
|
||||
@@ -40,6 +48,12 @@ class SecuritySettingsTest {
|
||||
device.assertHasTexts(ON_SCREEN_TEXTS)
|
||||
}
|
||||
|
||||
@Test
|
||||
@RequiresFlagsEnabled(Flags.FLAG_ALLOW_PRIVATE_PROFILE)
|
||||
fun privateSpace_ifFlagON() {
|
||||
device.assertHasTexts(listOf("Private Space"))
|
||||
}
|
||||
|
||||
private companion object {
|
||||
// Items we really want to always show
|
||||
val ON_SCREEN_TEXTS = listOf(
|
||||
|
||||
@@ -0,0 +1,91 @@
|
||||
/*
|
||||
* Copyright (C) 2023 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.settings.ui.privatespace
|
||||
|
||||
|
||||
import android.os.Flags
|
||||
import android.platform.test.annotations.RequiresFlagsEnabled
|
||||
import android.platform.test.flag.junit.DeviceFlagsValueProvider
|
||||
import android.provider.Settings
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||
import androidx.test.platform.app.InstrumentationRegistry
|
||||
import androidx.test.uiautomator.By
|
||||
import androidx.test.uiautomator.UiDevice
|
||||
import com.android.settings.ui.testutils.SettingsTestUtils.assertHasTexts
|
||||
import com.android.settings.ui.testutils.SettingsTestUtils.clickObject
|
||||
import com.android.settings.ui.testutils.SettingsTestUtils.startMainActivityFromHomeScreen
|
||||
import com.android.settings.ui.testutils.SettingsTestUtils.waitObject
|
||||
import org.junit.Before
|
||||
import org.junit.Rule
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
|
||||
|
||||
@RunWith(AndroidJUnit4::class)
|
||||
@RequiresFlagsEnabled(Flags.FLAG_ALLOW_PRIVATE_PROFILE)
|
||||
class PrivateSpaceAuthenticationActivityTest {
|
||||
private val device = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation())
|
||||
|
||||
@get:Rule
|
||||
public val mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule()
|
||||
|
||||
@Before
|
||||
fun setUp() {
|
||||
device.startMainActivityFromHomeScreen(Settings.ACTION_SECURITY_SETTINGS)
|
||||
device.assertHasTexts(listOf(PRIVATE_SPACE_SETTING))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun showAuthenticationScreen() {
|
||||
Thread.sleep(1000)
|
||||
device.clickObject(By.text(PRIVATE_SPACE_SETTING))
|
||||
device.waitObject(By.text(DIALOG_TITLE))
|
||||
Thread.sleep(1000)
|
||||
device.assertHasTexts(listOf("Set a screen lock","Cancel"))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun onCancelLockExitSetup() {
|
||||
Thread.sleep(1000)
|
||||
device.clickObject(By.text(PRIVATE_SPACE_SETTING))
|
||||
device.waitObject(By.text(DIALOG_TITLE))
|
||||
Thread.sleep(1000)
|
||||
device.assertHasTexts(listOf(SET_LOCK_BUTTON, CANCEL_TEXT))
|
||||
device.clickObject(By.text(CANCEL_TEXT))
|
||||
device.assertHasTexts(listOf(PRIVATE_SPACE_SETTING))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun onSetupSetLock() {
|
||||
Thread.sleep(1000)
|
||||
device.clickObject(By.text(PRIVATE_SPACE_SETTING))
|
||||
device.waitObject(By.text(DIALOG_TITLE))
|
||||
Thread.sleep(1000)
|
||||
device.assertHasTexts(listOf(SET_LOCK_BUTTON,CANCEL_TEXT))
|
||||
device.clickObject(By.text(SET_LOCK_BUTTON))
|
||||
device.assertHasTexts(listOf(LOCK_SCREEN_TITLE))
|
||||
}
|
||||
|
||||
private companion object {
|
||||
// Items we really want to always show
|
||||
val PRIVATE_SPACE_SETTING = "Private Space"
|
||||
const val SET_LOCK_BUTTON = "Set screen lock"
|
||||
val CANCEL_TEXT = "Cancel"
|
||||
val DIALOG_TITLE = "Set a screen lock"
|
||||
val LOCK_SCREEN_TITLE = "Choose screen lock"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user