Bug 1880075 - Use single name field for addresses

fenix/125.0
Issam Mani 3 months ago committed by mergify[bot]
parent cc83d5c472
commit e4af8643e1

@ -24,9 +24,7 @@ class AddressAutofillTest : TestSetup() {
var navigateToAutofillSettings = true
var isAddressAutofillEnabled = true
var userHasSavedAddress = false
var firstName = "Mozilla"
var middleName = "Fenix"
var lastName = "Firefox"
var name = "Mozilla Fenix Firefox"
var streetAddress = "Harrison Street"
var city = "San Francisco"
var state = "Alaska"
@ -38,9 +36,7 @@ class AddressAutofillTest : TestSetup() {
object SecondAddressAutofillDetails {
var navigateToAutofillSettings = false
var firstName = "Android"
var middleName = "Test"
var lastName = "Name"
var name = "Android Test Name"
var streetAddress = "Fort Street"
var city = "San Jose"
var state = "Arizona"
@ -65,9 +61,7 @@ class AddressAutofillTest : TestSetup() {
navigateToAutofillSettings = FirstAddressAutofillDetails.navigateToAutofillSettings,
isAddressAutofillEnabled = FirstAddressAutofillDetails.isAddressAutofillEnabled,
userHasSavedAddress = FirstAddressAutofillDetails.userHasSavedAddress,
firstName = FirstAddressAutofillDetails.firstName,
middleName = FirstAddressAutofillDetails.middleName,
lastName = FirstAddressAutofillDetails.lastName,
name = FirstAddressAutofillDetails.name,
streetAddress = FirstAddressAutofillDetails.streetAddress,
city = FirstAddressAutofillDetails.city,
state = FirstAddressAutofillDetails.state,
@ -102,9 +96,7 @@ class AddressAutofillTest : TestSetup() {
navigateToAutofillSettings = FirstAddressAutofillDetails.navigateToAutofillSettings,
isAddressAutofillEnabled = FirstAddressAutofillDetails.isAddressAutofillEnabled,
userHasSavedAddress = FirstAddressAutofillDetails.userHasSavedAddress,
firstName = FirstAddressAutofillDetails.firstName,
middleName = FirstAddressAutofillDetails.middleName,
lastName = FirstAddressAutofillDetails.lastName,
name = FirstAddressAutofillDetails.name,
streetAddress = FirstAddressAutofillDetails.streetAddress,
city = FirstAddressAutofillDetails.city,
state = FirstAddressAutofillDetails.state,
@ -145,9 +137,7 @@ class AddressAutofillTest : TestSetup() {
navigateToAutofillSettings = FirstAddressAutofillDetails.navigateToAutofillSettings,
isAddressAutofillEnabled = FirstAddressAutofillDetails.isAddressAutofillEnabled,
userHasSavedAddress = FirstAddressAutofillDetails.userHasSavedAddress,
firstName = FirstAddressAutofillDetails.firstName,
middleName = FirstAddressAutofillDetails.middleName,
lastName = FirstAddressAutofillDetails.lastName,
name = FirstAddressAutofillDetails.name,
streetAddress = FirstAddressAutofillDetails.streetAddress,
city = FirstAddressAutofillDetails.city,
state = FirstAddressAutofillDetails.state,
@ -173,9 +163,7 @@ class AddressAutofillTest : TestSetup() {
navigateToAutofillSettings = FirstAddressAutofillDetails.navigateToAutofillSettings,
isAddressAutofillEnabled = FirstAddressAutofillDetails.isAddressAutofillEnabled,
userHasSavedAddress = FirstAddressAutofillDetails.userHasSavedAddress,
firstName = FirstAddressAutofillDetails.firstName,
middleName = FirstAddressAutofillDetails.middleName,
lastName = FirstAddressAutofillDetails.lastName,
name = FirstAddressAutofillDetails.name,
streetAddress = FirstAddressAutofillDetails.streetAddress,
city = FirstAddressAutofillDetails.city,
state = FirstAddressAutofillDetails.state,
@ -219,9 +207,7 @@ class AddressAutofillTest : TestSetup() {
navigateToAutofillSettings = FirstAddressAutofillDetails.navigateToAutofillSettings,
isAddressAutofillEnabled = FirstAddressAutofillDetails.isAddressAutofillEnabled,
userHasSavedAddress = FirstAddressAutofillDetails.userHasSavedAddress,
firstName = FirstAddressAutofillDetails.firstName,
middleName = FirstAddressAutofillDetails.middleName,
lastName = FirstAddressAutofillDetails.lastName,
name = FirstAddressAutofillDetails.name,
streetAddress = FirstAddressAutofillDetails.streetAddress,
city = FirstAddressAutofillDetails.city,
state = FirstAddressAutofillDetails.state,
@ -256,9 +242,7 @@ class AddressAutofillTest : TestSetup() {
navigateToAutofillSettings = FirstAddressAutofillDetails.navigateToAutofillSettings,
isAddressAutofillEnabled = FirstAddressAutofillDetails.isAddressAutofillEnabled,
userHasSavedAddress = FirstAddressAutofillDetails.userHasSavedAddress,
firstName = FirstAddressAutofillDetails.firstName,
middleName = FirstAddressAutofillDetails.middleName,
lastName = FirstAddressAutofillDetails.lastName,
name = FirstAddressAutofillDetails.name,
streetAddress = FirstAddressAutofillDetails.streetAddress,
city = FirstAddressAutofillDetails.city,
state = FirstAddressAutofillDetails.state,
@ -271,9 +255,7 @@ class AddressAutofillTest : TestSetup() {
clickAddAddressButton()
fillAndSaveAddress(
navigateToAutofillSettings = SecondAddressAutofillDetails.navigateToAutofillSettings,
firstName = SecondAddressAutofillDetails.firstName,
middleName = SecondAddressAutofillDetails.middleName,
lastName = SecondAddressAutofillDetails.lastName,
name = SecondAddressAutofillDetails.name,
streetAddress = SecondAddressAutofillDetails.streetAddress,
city = SecondAddressAutofillDetails.city,
state = SecondAddressAutofillDetails.state,
@ -319,9 +301,7 @@ class AddressAutofillTest : TestSetup() {
navigateToAutofillSettings = FirstAddressAutofillDetails.navigateToAutofillSettings,
isAddressAutofillEnabled = FirstAddressAutofillDetails.isAddressAutofillEnabled,
userHasSavedAddress = FirstAddressAutofillDetails.userHasSavedAddress,
firstName = FirstAddressAutofillDetails.firstName,
middleName = FirstAddressAutofillDetails.middleName,
lastName = FirstAddressAutofillDetails.lastName,
name = FirstAddressAutofillDetails.name,
streetAddress = FirstAddressAutofillDetails.streetAddress,
city = FirstAddressAutofillDetails.city,
state = FirstAddressAutofillDetails.state,
@ -334,9 +314,7 @@ class AddressAutofillTest : TestSetup() {
clickSavedAddress("Mozilla")
fillAndSaveAddress(
navigateToAutofillSettings = SecondAddressAutofillDetails.navigateToAutofillSettings,
firstName = SecondAddressAutofillDetails.firstName,
middleName = SecondAddressAutofillDetails.middleName,
lastName = SecondAddressAutofillDetails.lastName,
name = SecondAddressAutofillDetails.name,
streetAddress = SecondAddressAutofillDetails.streetAddress,
city = SecondAddressAutofillDetails.city,
state = SecondAddressAutofillDetails.state,
@ -377,9 +355,7 @@ class AddressAutofillTest : TestSetup() {
navigateToAutofillSettings = FirstAddressAutofillDetails.navigateToAutofillSettings,
isAddressAutofillEnabled = FirstAddressAutofillDetails.isAddressAutofillEnabled,
userHasSavedAddress = FirstAddressAutofillDetails.userHasSavedAddress,
firstName = FirstAddressAutofillDetails.firstName,
middleName = FirstAddressAutofillDetails.middleName,
lastName = FirstAddressAutofillDetails.lastName,
name = FirstAddressAutofillDetails.name,
streetAddress = FirstAddressAutofillDetails.streetAddress,
city = FirstAddressAutofillDetails.city,
state = FirstAddressAutofillDetails.state,
@ -416,9 +392,7 @@ class AddressAutofillTest : TestSetup() {
navigateToAutofillSettings = FirstAddressAutofillDetails.navigateToAutofillSettings,
isAddressAutofillEnabled = FirstAddressAutofillDetails.isAddressAutofillEnabled,
userHasSavedAddress = FirstAddressAutofillDetails.userHasSavedAddress,
firstName = FirstAddressAutofillDetails.firstName,
middleName = FirstAddressAutofillDetails.middleName,
lastName = FirstAddressAutofillDetails.lastName,
name = FirstAddressAutofillDetails.name,
streetAddress = FirstAddressAutofillDetails.streetAddress,
city = FirstAddressAutofillDetails.city,
state = FirstAddressAutofillDetails.state,

@ -153,12 +153,10 @@ class SettingsSubMenuAutofillRobot {
addAddressToolbarTitle(),
navigateBackButton(),
toolbarCheckmarkButton(),
firstNameTextInput(),
middleNameTextInput(),
nameTextInput(),
)
scrollToElementByText(getStringResource(R.string.addresses_street_address))
assertUIObjectExists(
lastNameTextInput(),
streetAddressTextInput(),
)
scrollToElementByText(getStringResource(R.string.addresses_country))
@ -215,12 +213,10 @@ class SettingsSubMenuAutofillRobot {
navigateBackButton(),
toolbarDeleteAddressButton(),
toolbarCheckmarkButton(),
firstNameTextInput(),
middleNameTextInput(),
nameTextInput(),
)
scrollToElementByText(getStringResource(R.string.addresses_street_address))
assertUIObjectExists(
lastNameTextInput(),
streetAddressTextInput(),
)
scrollToElementByText(getStringResource(R.string.addresses_country))
@ -257,10 +253,10 @@ class SettingsSubMenuAutofillRobot {
manageAddressesButton().click()
Log.i(TAG, "clickManageAddressesButton: Clicked the \"Manage addresses\" button")
}
fun clickSavedAddress(firstName: String) {
Log.i(TAG, "clickSavedAddress: Trying to click the $firstName saved address and and wait for $waitingTime ms for a new window")
savedAddress(firstName).clickAndWaitForNewWindow(waitingTime)
Log.i(TAG, "clickSavedAddress: Clicked the $firstName saved address and and waited for $waitingTime ms for a new window")
fun clickSavedAddress(name: String) {
Log.i(TAG, "clickSavedAddress: Trying to click the $name saved address and and wait for $waitingTime ms for a new window")
savedAddress(name).clickAndWaitForNewWindow(waitingTime)
Log.i(TAG, "clickSavedAddress: Clicked the $name saved address and and waited for $waitingTime ms for a new window")
}
fun clickDeleteAddressButton() {
Log.i(TAG, "clickDeleteAddressButton: Waiting for $waitingTime ms for the delete address toolbar button to exist")
@ -307,9 +303,7 @@ class SettingsSubMenuAutofillRobot {
navigateToAutofillSettings: Boolean,
isAddressAutofillEnabled: Boolean = true,
userHasSavedAddress: Boolean = false,
firstName: String,
middleName: String,
lastName: String,
name: String,
streetAddress: String,
city: String,
state: String,
@ -327,21 +321,15 @@ class SettingsSubMenuAutofillRobot {
clickAddAddressButton()
}
}
Log.i(TAG, "fillAndSaveAddress: Waiting for $waitingTime ms for \"First Name\" text field to exist")
firstNameTextInput().waitForExists(waitingTime)
Log.i(TAG, "fillAndSaveAddress: Waited for $waitingTime ms for \"First Name\" text field to exist")
Log.i(TAG, "fillAndSaveAddress: Waiting for $waitingTime ms for \"Name\" text field to exist")
nameTextInput().waitForExists(waitingTime)
Log.i(TAG, "fillAndSaveAddress: Waited for $waitingTime ms for \"Name\" text field to exist")
Log.i(TAG, "fillAndSaveAddress: Trying to click device back button to dismiss keyboard using device back button")
mDevice.pressBack()
Log.i(TAG, "fillAndSaveAddress: Clicked device back button to dismiss keyboard using device back button")
Log.i(TAG, "fillAndSaveAddress: Trying to set \"First Name\" to $firstName")
firstNameTextInput().setText(firstName)
Log.i(TAG, "fillAndSaveAddress: \"First Name\" was set to $firstName")
Log.i(TAG, "fillAndSaveAddress: Trying to set \"Middle Name\" to $middleName")
middleNameTextInput().setText(middleName)
Log.i(TAG, "fillAndSaveAddress: \"Middle Name\" was set to $middleName")
Log.i(TAG, "fillAndSaveAddress: Trying to set \"Last Name\" to $lastName")
lastNameTextInput().setText(lastName)
Log.i(TAG, "fillAndSaveAddress: \"Last Name\" was set to $lastName")
Log.i(TAG, "fillAndSaveAddress: Trying to set \"Name\" to $name")
nameTextInput().setText(name)
Log.i(TAG, "fillAndSaveAddress: \"Name\" was set to $name")
Log.i(TAG, "fillAndSaveAddress: Trying to set \"Street Address\" to $streetAddress")
streetAddressTextInput().setText(streetAddress)
Log.i(TAG, "fillAndSaveAddress: \"Street Address\" was set to $streetAddress")
@ -616,13 +604,12 @@ private fun manageAddressesButton() =
.resourceId("android:id/title")
.text(getStringResource(R.string.preferences_addresses_manage_addresses)),
)
private fun addAddressToolbarTitle() = itemContainingText(getStringResource(R.string.addresses_add_address))
private fun editAddressToolbarTitle() = itemContainingText(getStringResource(R.string.addresses_edit_address))
private fun toolbarCheckmarkButton() = itemWithResId("$packageName:id/save_address_button")
private fun navigateBackButton() = itemWithDescription(getStringResource(R.string.action_bar_up_description))
private fun firstNameTextInput() = itemWithResId("$packageName:id/first_name_input")
private fun middleNameTextInput() = itemWithResId("$packageName:id/middle_name_input")
private fun lastNameTextInput() = itemWithResId("$packageName:id/last_name_input")
private fun nameTextInput() = itemWithResId("$packageName:id/name_input")
private fun streetAddressTextInput() = itemWithResId("$packageName:id/street_address_input")
private fun cityTextInput() = itemWithResId("$packageName:id/city_input")
private fun subRegionDropDown() = itemWithResId("$packageName:id/subregion_drop_down")
@ -657,7 +644,7 @@ private fun confirmDeleteCreditCardButton() = onView(withId(android.R.id.button1
private fun cancelDeleteCreditCardButton() = onView(withId(android.R.id.button2)).inRoot(RootMatchers.isDialog())
private fun securedCreditCardsLaterButton() = onView(withId(android.R.id.button2)).inRoot(RootMatchers.isDialog())
private fun savedAddress(firstName: String) = mDevice.findObject(UiSelector().textContains(firstName))
private fun savedAddress(name: String) = mDevice.findObject(UiSelector().textContains(name))
private fun subRegionOption(subRegion: String) = mDevice.findObject(UiSelector().textContains(subRegion))
private fun countryOption(country: String) = mDevice.findObject(UiSelector().textContains(country))

@ -7,15 +7,6 @@ package org.mozilla.fenix.settings.address.ext
import androidx.annotation.VisibleForTesting
import mozilla.components.concept.storage.Address
/**
* Generate a label item text for an [Address]. The combination of names is based on desktop code
* found here:
* https://searchfox.org/mozilla-central/rev/d989c65584ded72c2de85cb40bede7ac2f176387/toolkit/components/formautofill/FormAutofillNameUtils.jsm#400
*/
fun Address.getFullName(): String = listOf(givenName, additionalName, familyName)
.filter { it.isNotEmpty() }
.joinToString(" ")
/**
* Generate a description item text for an [Address]. The element ordering is based on the
* priorities defined by the desktop code found here:

@ -47,7 +47,7 @@ class AddressEditorView(
* Binds the view in the [AddressEditorFragment], using the current [Address] if available.
*/
fun bind() {
binding.firstNameInput.apply {
binding.nameInput.apply {
requestFocus()
placeCursorAtEnd()
showKeyboard()
@ -64,11 +64,7 @@ class AddressEditorView(
address?.let { address ->
binding.emailInput.setText(address.email)
binding.phoneInput.setText(address.tel)
binding.firstNameInput.setText(address.givenName)
binding.middleNameInput.setText(address.additionalName)
binding.lastNameInput.setText(address.familyName)
binding.nameInput.setText(address.name)
binding.streetAddressInput.setText(address.streetAddress)
binding.cityInput.setText(address.addressLevel2)
binding.zipInput.setText(address.postalCode)
@ -88,9 +84,7 @@ class AddressEditorView(
binding.root.hideKeyboard()
val addressFields = UpdatableAddressFields(
givenName = binding.firstNameInput.text.toString(),
additionalName = binding.middleNameInput.text.toString(),
familyName = binding.lastNameInput.text.toString(),
name = binding.nameInput.text.toString(),
organization = "",
streetAddress = binding.streetAddressInput.text.toString(),
addressLevel3 = "",

@ -20,7 +20,6 @@ import org.mozilla.fenix.R
import org.mozilla.fenix.compose.list.IconListItem
import org.mozilla.fenix.compose.list.TextListItem
import org.mozilla.fenix.settings.address.ext.getAddressLabel
import org.mozilla.fenix.settings.address.ext.getFullName
import org.mozilla.fenix.theme.FirefoxTheme
/**
@ -39,7 +38,7 @@ fun AddressList(
LazyColumn {
items(addresses) { address ->
TextListItem(
label = address.getFullName(),
label = address.name,
modifier = Modifier.padding(start = 56.dp),
description = address.getAddressLabel(),
maxDescriptionLines = 2,
@ -66,9 +65,7 @@ private fun AddressListPreview() {
addresses = listOf(
Address(
guid = "1",
givenName = "Banana",
additionalName = "",
familyName = "Apple",
name = "Banana Apple",
organization = "Mozilla",
streetAddress = "123 Sesame Street",
addressLevel3 = "",

@ -14,24 +14,24 @@
android:layout_height="wrap_content"
android:layout_margin="16dp">
<!-- First Name -->
<!-- A person's full name, typically made up of a first, middle and last name, e.g. John Joe Doe. -->
<TextView
android:id="@+id/first_name_title"
android:id="@+id/name_title"
style="@style/CaptionTextStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:labelFor="@id/first_name_input"
android:labelFor="@id/name_input"
android:letterSpacing="0.05"
android:paddingStart="3dp"
android:paddingEnd="0dp"
android:text="@string/addresses_first_name"
android:text="@string/addresses_name"
android:textColor="?attr/textPrimary"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/first_name_layout"
android:id="@+id/name_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="?attr/textPrimary"
@ -39,96 +39,10 @@
app:hintEnabled="false"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/first_name_title">
app:layout_constraintTop_toBottomOf="@+id/name_title">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/first_name_input"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="end"
android:fontFamily="sans-serif"
android:imeOptions="flagNoExtractUi"
android:letterSpacing="0.01"
android:lineSpacingExtra="8sp"
android:maxLines="1"
android:singleLine="true"
android:textColor="?attr/textPrimary"
android:textSize="16sp" />
</com.google.android.material.textfield.TextInputLayout>
<!-- Middle Name -->
<TextView
android:id="@+id/middle_name_title"
style="@style/CaptionTextStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:labelFor="@id/middle_name_input"
android:letterSpacing="0.05"
android:paddingStart="3dp"
android:paddingEnd="0dp"
android:text="@string/addresses_middle_name"
android:textColor="?attr/textPrimary"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/first_name_layout" />
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/middle_name_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="?attr/textPrimary"
app:errorEnabled="true"
app:hintEnabled="false"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/middle_name_title">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/middle_name_input"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="end"
android:fontFamily="sans-serif"
android:imeOptions="flagNoExtractUi"
android:letterSpacing="0.01"
android:lineSpacingExtra="8sp"
android:maxLines="1"
android:singleLine="true"
android:textColor="?attr/textPrimary"
android:textSize="16sp" />
</com.google.android.material.textfield.TextInputLayout>
<!-- Last Name -->
<TextView
android:id="@+id/last_name_title"
style="@style/CaptionTextStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:labelFor="@id/last_name_input"
android:letterSpacing="0.05"
android:paddingStart="3dp"
android:paddingEnd="0dp"
android:text="@string/addresses_last_name"
android:textColor="?attr/textPrimary"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/middle_name_layout" />
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/last_name_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="?attr/textPrimary"
app:errorEnabled="true"
app:hintEnabled="false"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/last_name_title">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/last_name_input"
android:id="@+id/name_input"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="end"
@ -158,7 +72,7 @@
android:textColor="?attr/textPrimary"
android:labelFor="@id/street_address_input"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/last_name_layout" />
app:layout_constraintTop_toBottomOf="@+id/name_layout" />
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/street_address_layout"

@ -1844,11 +1844,13 @@
<!-- Title of the "Manage addresses" screen -->
<string name="addresses_manage_addresses">Manage addresses</string>
<!-- The header for the first name of an address -->
<string name="addresses_first_name">First Name</string>
<string name="addresses_first_name" moz:removedIn="124" tools:ignore="UnusedResources">First Name</string>
<!-- The header for the middle name of an address -->
<string name="addresses_middle_name">Middle Name</string>
<string name="addresses_middle_name" moz:removedIn="124" tools:ignore="UnusedResources">Middle Name</string>
<!-- The header for the last name of an address -->
<string name="addresses_last_name">Last Name</string>
<string name="addresses_last_name" moz:removedIn="124" tools:ignore="UnusedResources">Last Name</string>
<!-- The header for the name of an address. Name represents a person's full name, typically made up of a first, middle and last name, e.g. John Joe Doe. -->
<string name="addresses_name">Name</string>
<!-- The header for the street address of an address -->
<string name="addresses_street_address">Street Address</string>
<!-- The header for the city of an address -->

@ -68,9 +68,7 @@ class AddressEditorViewTest {
addressEditorView.saveAddress()
val expected = UpdatableAddressFields(
givenName = address.givenName,
additionalName = address.additionalName,
familyName = address.familyName,
name = address.name,
organization = "",
streetAddress = address.streetAddress,
addressLevel3 = "",
@ -95,9 +93,7 @@ class AddressEditorViewTest {
addressEditorView.saveAddress()
val expected = UpdatableAddressFields(
givenName = "",
additionalName = "",
familyName = "",
name = "",
organization = "",
streetAddress = "",
addressLevel3 = "",
@ -137,9 +133,7 @@ class AddressEditorViewTest {
assertEquals(address.addressLevel1, binding.subregionDropDown.selectedItem.toString())
assertEquals("City", binding.cityInput.text.toString())
assertEquals("Street", binding.streetAddressInput.text.toString())
assertEquals("Family", binding.lastNameInput.text.toString())
assertEquals("Given", binding.firstNameInput.text.toString())
assertEquals("Additional", binding.middleNameInput.text.toString())
assertEquals("Name", binding.nameInput.text.toString())
assertEquals("email@mozilla.com", binding.emailInput.text.toString())
assertEquals("Telephone", binding.phoneInput.text.toString())
}
@ -334,9 +328,7 @@ class AddressEditorViewTest {
private fun generateAddress(country: String = "US", addressLevel1: String = "Oregon") = Address(
guid = "123",
givenName = "Given",
additionalName = "Additional",
familyName = "Family",
name = "Name",
organization = "Organization",
streetAddress = "Street",
addressLevel3 = "Suburb",

@ -53,9 +53,7 @@ class DefaultAddressEditorControllerTest {
@Test
fun `GIVEN a new address record WHEN save address is called THEN save the new address record to storage`() = runTestOnMain {
val addressFields = UpdatableAddressFields(
givenName = "John",
additionalName = "",
familyName = "Smith",
name = "John Smith",
organization = "Mozilla",
streetAddress = "123 Sesame Street",
addressLevel3 = "",

@ -9,41 +9,6 @@ import org.junit.Assert.assertEquals
import org.junit.Test
class AddressTest {
@Test
fun `WHEN all names are populated THEN label includes all names`() {
val addr = generateAddress()
val label = addr.getFullName()
assertEquals("${addr.givenName} ${addr.additionalName} ${addr.familyName}", label)
}
@Test
fun `WHEN middle name is missing THEN label is given and family combined`() {
val addr = generateAddress(additionalName = "")
val label = addr.getFullName()
assertEquals("${addr.givenName} ${addr.familyName}", label)
}
@Test
fun `WHEN only family and middle name are available THEN label is middle and family combined`() {
val addr = generateAddress(givenName = "")
val label = addr.getFullName()
assertEquals("${addr.additionalName} ${addr.familyName}", label)
}
@Test
fun `WHEN only family name is available THEN label is family name`() {
val addr = generateAddress(givenName = "", additionalName = "")
val label = addr.getFullName()
assertEquals(addr.familyName, label)
}
@Test
fun `WHEN all properties are present THEN all properties present in description`() {
@ -76,9 +41,7 @@ class AddressTest {
@Test
fun `WHEN everything is missing THEN description is empty`() {
val addr = generateAddress(
givenName = "",
additionalName = "",
familyName = "",
name = "",
organization = "",
streetAddress = "",
addressLevel3 = "",
@ -109,9 +72,7 @@ class AddressTest {
}
private fun generateAddress(
givenName: String = "Firefox",
additionalName: String = "The",
familyName: String = "Browser",
name: String = "Firefox The Browser",
organization: String = "Mozilla",
streetAddress: String = "street",
addressLevel3: String = "3",
@ -123,9 +84,7 @@ class AddressTest {
email: String = "email",
) = Address(
guid = "",
givenName = givenName,
additionalName = additionalName,
familyName = familyName,
name = name,
organization = organization,
streetAddress = streetAddress,
addressLevel3 = addressLevel3,

@ -31,9 +31,7 @@ class DefaultAddressEditorInteractorTest {
@Test
fun `WHEN save button is clicked THEN forward to controller handler`() {
val addressFields = UpdatableAddressFields(
givenName = "John",
additionalName = "",
familyName = "Smith",
name = "John Smith",
organization = "Mozilla",
streetAddress = "123 Sesame Street",
addressLevel3 = "",

Loading…
Cancel
Save