Remove scaffolding for identity autofill (#563)

This commit is contained in:
Lucas Kivi 2024-01-10 13:00:31 -06:00 committed by Álison Fernandes
parent 9c023bca9e
commit 75a08e72a6
7 changed files with 7 additions and 219 deletions

View file

@ -16,13 +16,6 @@ sealed class AutofillPartition {
override val views: List<AutofillView.Card>,
) : AutofillPartition()
/**
* The identity [AutofillPartition] data.
*/
data class Identity(
override val views: List<AutofillView.Identity>,
) : AutofillPartition()
/**
* The login [AutofillPartition] data.
*/

View file

@ -54,44 +54,6 @@ sealed class AutofillView {
) : Card()
}
/**
* A view that corresponds to the personal info data partition for autofill fields.
*/
sealed class Identity : AutofillView() {
/**
* The name [AutofillView] for the [Identity] data partition.
*/
data class Name(
override val autofillId: AutofillId,
override val isFocused: Boolean,
) : Identity()
/**
* The phone number [AutofillView] for the [Identity] data partition.
*/
data class PhoneNumber(
override val autofillId: AutofillId,
override val isFocused: Boolean,
) : Identity()
/**
* The postal address [AutofillView] for the [Identity] data partition.
*/
data class PostalAddress(
override val autofillId: AutofillId,
override val isFocused: Boolean,
) : Identity()
/**
* The postal code [AutofillView] for the [Identity] data partition.
*/
data class PostalCode(
override val autofillId: AutofillId,
override val isFocused: Boolean,
) : Identity()
}
/**
* A view that corresponds to the login data partition for autofill fields.
*/

View file

@ -33,12 +33,6 @@ class AutofillParserImpl : AutofillParser {
)
}
is AutofillView.Identity -> {
AutofillPartition.Identity(
views = autofillViews.filterIsInstance<AutofillView.Identity>(),
)
}
is AutofillView.Login -> {
AutofillPartition.Login(
views = autofillViews.filterIsInstance<AutofillView.Login>(),

View file

@ -68,13 +68,6 @@ private fun buildAutofillView(
)
}
View.AUTOFILL_HINT_NAME -> {
AutofillView.Identity.Name(
autofillId = autofillId,
isFocused = isFocused,
)
}
View.AUTOFILL_HINT_PASSWORD -> {
AutofillView.Login.Password(
autofillId = autofillId,
@ -82,27 +75,6 @@ private fun buildAutofillView(
)
}
View.AUTOFILL_HINT_PHONE -> {
AutofillView.Identity.PhoneNumber(
autofillId = autofillId,
isFocused = isFocused,
)
}
View.AUTOFILL_HINT_POSTAL_ADDRESS -> {
AutofillView.Identity.PostalAddress(
autofillId = autofillId,
isFocused = isFocused,
)
}
View.AUTOFILL_HINT_POSTAL_CODE -> {
AutofillView.Identity.PostalCode(
autofillId = autofillId,
isFocused = isFocused,
)
}
View.AUTOFILL_HINT_USERNAME -> {
AutofillView.Login.Username(
autofillId = autofillId,
@ -122,10 +94,6 @@ private val SUPPORTED_HINTS: List<String> = listOf(
View.AUTOFILL_HINT_CREDIT_CARD_NUMBER,
View.AUTOFILL_HINT_CREDIT_CARD_SECURITY_CODE,
View.AUTOFILL_HINT_EMAIL_ADDRESS,
View.AUTOFILL_HINT_NAME,
View.AUTOFILL_HINT_PASSWORD,
View.AUTOFILL_HINT_PHONE,
View.AUTOFILL_HINT_POSTAL_ADDRESS,
View.AUTOFILL_HINT_POSTAL_CODE,
View.AUTOFILL_HINT_USERNAME,
)

View file

@ -24,11 +24,11 @@ class FilledDataBuilderTest {
fun `build should return FilledData with FilledItems and ignored AutofillIds`() = runTest {
// Setup
val autofillId: AutofillId = mockk()
val autofillView = AutofillView.Identity.PostalCode(
val autofillView = AutofillView.Login.Username(
autofillId = autofillId,
isFocused = false,
)
val autofillPartition = AutofillPartition.Identity(
val autofillPartition = AutofillPartition.Login(
views = listOf(autofillView),
)
val ignoreAutofillIds: List<AutofillId> = mockk()

View file

@ -27,13 +27,6 @@ class AutofillParserTests {
every { this@mockk.autofillId } returns cardAutofillId
every { this@mockk.childCount } returns 0
}
private val identityAutofillHint = View.AUTOFILL_HINT_NAME
private val identityAutofillId: AutofillId = mockk()
private val identityViewNode: AssistStructure.ViewNode = mockk {
every { this@mockk.autofillHints } returns arrayOf(identityAutofillHint)
every { this@mockk.autofillId } returns identityAutofillId
every { this@mockk.childCount } returns 0
}
private val loginAutofillHint = View.AUTOFILL_HINT_USERNAME
private val loginAutofillId: AutofillId = mockk()
private val loginViewNode: AssistStructure.ViewNode = mockk {
@ -44,9 +37,6 @@ class AutofillParserTests {
private val cardWindowNode: AssistStructure.WindowNode = mockk {
every { this@mockk.rootViewNode } returns cardViewNode
}
private val identityWindowNode: AssistStructure.WindowNode = mockk {
every { this@mockk.rootViewNode } returns identityViewNode
}
private val loginWindowNode: AssistStructure.WindowNode = mockk {
every { this@mockk.rootViewNode } returns loginViewNode
}
@ -128,10 +118,6 @@ class AutofillParserTests {
autofillId = cardAutofillId,
isFocused = true,
)
val identityAutofillView: AutofillView.Identity = AutofillView.Identity.Name(
autofillId = identityAutofillId,
isFocused = false,
)
val loginAutofillView: AutofillView.Login = AutofillView.Login.Username(
autofillId = loginAutofillId,
isFocused = false,
@ -144,41 +130,6 @@ class AutofillParserTests {
partition = autofillPartition,
)
every { cardViewNode.toAutofillView() } returns cardAutofillView
every { identityViewNode.toAutofillView() } returns identityAutofillView
every { loginViewNode.toAutofillView() } returns loginAutofillView
// Test
val actual = parser.parse(assistStructure)
// Verify
assertEquals(expected, actual)
}
@Test
fun `parse should choose AutofillPartition Identity when an Identity view is focused`() {
// Setup
setupAssistStructureWithAllAutofillViewTypes()
val cardAutofillView: AutofillView.Card = AutofillView.Card.ExpirationMonth(
autofillId = cardAutofillId,
isFocused = false,
)
val identityAutofillView: AutofillView.Identity = AutofillView.Identity.Name(
autofillId = identityAutofillId,
isFocused = true,
)
val loginAutofillView: AutofillView.Login = AutofillView.Login.Username(
autofillId = loginAutofillId,
isFocused = false,
)
val autofillPartition = AutofillPartition.Identity(
views = listOf(identityAutofillView),
)
val expected = AutofillRequest.Fillable(
ignoreAutofillIds = emptyList(),
partition = autofillPartition,
)
every { cardViewNode.toAutofillView() } returns cardAutofillView
every { identityViewNode.toAutofillView() } returns identityAutofillView
every { loginViewNode.toAutofillView() } returns loginAutofillView
// Test
@ -196,10 +147,6 @@ class AutofillParserTests {
autofillId = cardAutofillId,
isFocused = false,
)
val identityAutofillView: AutofillView.Identity = AutofillView.Identity.Name(
autofillId = identityAutofillId,
isFocused = false,
)
val loginAutofillView: AutofillView.Login = AutofillView.Login.Username(
autofillId = loginAutofillId,
isFocused = true,
@ -212,7 +159,6 @@ class AutofillParserTests {
partition = autofillPartition,
)
every { cardViewNode.toAutofillView() } returns cardAutofillView
every { identityViewNode.toAutofillView() } returns identityAutofillView
every { loginViewNode.toAutofillView() } returns loginAutofillView
// Test
@ -230,13 +176,9 @@ class AutofillParserTests {
autofillId = cardAutofillId,
isFocused = true,
)
val identityAutofillView: AutofillView.Identity = AutofillView.Identity.Name(
autofillId = identityAutofillId,
isFocused = true,
)
val loginAutofillView: AutofillView.Login = AutofillView.Login.Username(
autofillId = loginAutofillId,
isFocused = false,
isFocused = true,
)
val autofillPartition = AutofillPartition.Card(
views = listOf(cardAutofillView),
@ -246,7 +188,6 @@ class AutofillParserTests {
partition = autofillPartition,
)
every { cardViewNode.toAutofillView() } returns cardAutofillView
every { identityViewNode.toAutofillView() } returns identityAutofillView
every { loginViewNode.toAutofillView() } returns loginAutofillView
// Test
@ -257,14 +198,12 @@ class AutofillParserTests {
}
/**
* Setup [assistStructure] to return window nodes with each [AutofillView] type (card, identity,
* and login) so we can test how different window node configurations produce different
* partitions.
* Setup [assistStructure] to return window nodes with each [AutofillView] type (card and login)
* so we can test how different window node configurations produce different partitions.
*/
private fun setupAssistStructureWithAllAutofillViewTypes() {
every { assistStructure.windowNodeCount } returns 3
every { assistStructure.windowNodeCount } returns 2
every { assistStructure.getWindowNodeAt(0) } returns cardWindowNode
every { assistStructure.getWindowNodeAt(1) } returns identityWindowNode
every { assistStructure.getWindowNodeAt(2) } returns loginWindowNode
every { assistStructure.getWindowNodeAt(1) } returns loginWindowNode
}
}

View file

@ -104,23 +104,6 @@ class ViewNodeExtensionsTest {
assertEquals(expected, actual)
}
@Test
fun `toAutofillView should return AutofillView Identity Name when hint matches`() {
// Setup
val autofillHint = View.AUTOFILL_HINT_NAME
val expected = AutofillView.Identity.Name(
autofillId = expectedAutofillId,
isFocused = expectedIsFocused,
)
every { viewNode.autofillHints } returns arrayOf(autofillHint)
// Test
val actual = viewNode.toAutofillView()
// Verify
assertEquals(expected, actual)
}
@Test
fun `toAutofillView should return AutofillView Login Password when hint matches`() {
// Setup
@ -138,57 +121,6 @@ class ViewNodeExtensionsTest {
assertEquals(expected, actual)
}
@Test
fun `toAutofillView should return AutofillView Identity PhoneNumber when hint matches`() {
// Setup
val autofillHint = View.AUTOFILL_HINT_PHONE
val expected = AutofillView.Identity.PhoneNumber(
autofillId = expectedAutofillId,
isFocused = expectedIsFocused,
)
every { viewNode.autofillHints } returns arrayOf(autofillHint)
// Test
val actual = viewNode.toAutofillView()
// Verify
assertEquals(expected, actual)
}
@Test
fun `toAutofillView should return AutofillView Identity PostalAddress when hint matches`() {
// Setup
val autofillHint = View.AUTOFILL_HINT_POSTAL_ADDRESS
val expected = AutofillView.Identity.PostalAddress(
autofillId = expectedAutofillId,
isFocused = expectedIsFocused,
)
every { viewNode.autofillHints } returns arrayOf(autofillHint)
// Test
val actual = viewNode.toAutofillView()
// Verify
assertEquals(expected, actual)
}
@Test
fun `toAutofillView should return AutofillView Identity PostalCOde when hint matches`() {
// Setup
val autofillHint = View.AUTOFILL_HINT_POSTAL_CODE
val expected = AutofillView.Identity.PostalCode(
autofillId = expectedAutofillId,
isFocused = expectedIsFocused,
)
every { viewNode.autofillHints } returns arrayOf(autofillHint)
// Test
val actual = viewNode.toAutofillView()
// Verify
assertEquals(expected, actual)
}
@Test
fun `toAutofillView should return AutofillView Login Username when hint matches`() {
// Setup