Refactor entry displayName to label and use it for SPA search
Bug: 253981143 Test: manual, unit test Change-Id: I4bf129092c7eb52b8feb277ab232456236ca338e
This commit is contained in:
@@ -64,7 +64,7 @@ object ItemListPageProvider : SettingsPageProvider {
|
||||
|
||||
return SettingsEntryBuilder.createInject(
|
||||
owner = createSettingsPage(arguments),
|
||||
displayName = "ItemList_$opParam",
|
||||
label = "ItemList_$opParam",
|
||||
).setUiLayoutFn {
|
||||
Preference(
|
||||
object : PreferenceModel {
|
||||
|
||||
@@ -99,7 +99,7 @@ object ItemOperatePageProvider : SettingsPageProvider {
|
||||
|
||||
return SettingsEntryBuilder.createInject(
|
||||
owner = createSettingsPage(arguments),
|
||||
displayName = "ItemOp_$opParam",
|
||||
label = "ItemOp_$opParam",
|
||||
).setUiLayoutFn {
|
||||
// Item name is a runtime parameter, which needs to be read inside UiLayoutFn
|
||||
val itemName = parameter.getStringArg(ITEM_NAME_PARAM_NAME, it) ?: "NULL"
|
||||
|
||||
@@ -87,7 +87,7 @@ object ArgumentPageProvider : SettingsPageProvider {
|
||||
|
||||
return SettingsEntryBuilder.createInject(
|
||||
owner = createSettingsPage(arguments),
|
||||
displayName = "${name}_$stringParam",
|
||||
label = "${name}_$stringParam",
|
||||
)
|
||||
.setSearchDataFn { ArgumentPageModel.genInjectSearchData() }
|
||||
.setUiLayoutFn {
|
||||
|
||||
@@ -50,22 +50,22 @@ fun SettingsPage.debugBrief(): String {
|
||||
}
|
||||
|
||||
fun SettingsEntry.debugBrief(): String {
|
||||
return "${owner.displayName}:$displayName"
|
||||
return "${owner.displayName}:$label"
|
||||
}
|
||||
|
||||
fun SettingsEntry.debugContent(entryRepository: SettingsEntryRepository): String {
|
||||
val searchData = getSearchData()
|
||||
val statusData = getStatusData()
|
||||
val entryPathWithName = entryRepository.getEntryPathWithDisplayName(id)
|
||||
val entryPathWithLabel = entryRepository.getEntryPathWithLabel(id)
|
||||
val entryPathWithTitle = entryRepository.getEntryPathWithTitle(id,
|
||||
searchData?.title ?: displayName)
|
||||
searchData?.title ?: label)
|
||||
val content = listOf(
|
||||
"------ STATIC ------",
|
||||
"id = $id",
|
||||
"owner = ${owner.debugBrief()} ${owner.debugArguments()}",
|
||||
"linkFrom = ${fromPage?.debugBrief()} ${fromPage?.debugArguments()}",
|
||||
"linkTo = ${toPage?.debugBrief()} ${toPage?.debugArguments()}",
|
||||
"hierarchy_path = $entryPathWithName",
|
||||
"hierarchy_path = $entryPathWithLabel",
|
||||
"------ ATTRIBUTION ------",
|
||||
"allowSearch = $isAllowSearch",
|
||||
"isSearchDynamic = $isSearchDataDynamic",
|
||||
|
||||
@@ -173,12 +173,12 @@ class DebugProvider : ContentProvider() {
|
||||
val intent = entry.createIntent(SESSION_SEARCH) ?: Intent()
|
||||
cursor.newRow()
|
||||
.add(ColumnEnum.ENTRY_ID.id, entry.id)
|
||||
.add(ColumnEnum.ENTRY_NAME.id, entry.displayName)
|
||||
.add(ColumnEnum.ENTRY_LABEL.id, entry.label)
|
||||
.add(ColumnEnum.ENTRY_ROUTE.id, entry.containerPage().buildRoute())
|
||||
.add(ColumnEnum.ENTRY_INTENT_URI.id, intent.toUri(URI_INTENT_SCHEME))
|
||||
.add(
|
||||
ColumnEnum.ENTRY_HIERARCHY_PATH.id,
|
||||
entryRepository.getEntryPathWithDisplayName(entry.id)
|
||||
entryRepository.getEntryPathWithLabel(entry.id)
|
||||
)
|
||||
}
|
||||
return cursor
|
||||
|
||||
@@ -33,7 +33,7 @@ enum class ColumnEnum(val id: String) {
|
||||
|
||||
// Columns related to entry
|
||||
ENTRY_ID("entryId"),
|
||||
ENTRY_NAME("entryName"),
|
||||
ENTRY_LABEL("entryLabel"),
|
||||
ENTRY_ROUTE("entryRoute"),
|
||||
ENTRY_INTENT_URI("entryIntent"),
|
||||
ENTRY_HIERARCHY_PATH("entryPath"),
|
||||
@@ -76,7 +76,7 @@ enum class QueryEnum(
|
||||
"entry_info", 200,
|
||||
listOf(
|
||||
ColumnEnum.ENTRY_ID,
|
||||
ColumnEnum.ENTRY_NAME,
|
||||
ColumnEnum.ENTRY_LABEL,
|
||||
ColumnEnum.ENTRY_ROUTE,
|
||||
ColumnEnum.ENTRY_INTENT_URI,
|
||||
ColumnEnum.ENTRY_HIERARCHY_PATH,
|
||||
|
||||
@@ -51,11 +51,13 @@ data class SettingsEntry(
|
||||
// The unique id of this entry, which is computed by name + owner + fromPage + toPage.
|
||||
val id: String,
|
||||
|
||||
// The name of the page, which is used to compute the unique id, and need to be stable.
|
||||
// The name of the entry, which is used to compute the unique id, and need to be stable.
|
||||
private val name: String,
|
||||
|
||||
// The display name of the page, for better readability.
|
||||
val displayName: String,
|
||||
// The label of the entry, for better readability.
|
||||
// For migration mapping, this should match the android:key field in the old architecture
|
||||
// if applicable.
|
||||
val label: String,
|
||||
|
||||
// The owner page of this entry.
|
||||
val owner: SettingsPage,
|
||||
|
||||
@@ -21,14 +21,14 @@ import android.os.Bundle
|
||||
import androidx.compose.runtime.remember
|
||||
import com.android.settingslib.spa.framework.util.genEntryId
|
||||
|
||||
private const val INJECT_ENTRY_NAME = "INJECT"
|
||||
private const val ROOT_ENTRY_NAME = "ROOT"
|
||||
private const val INJECT_ENTRY_LABEL = "INJECT"
|
||||
private const val ROOT_ENTRY_LABEL = "ROOT"
|
||||
|
||||
/**
|
||||
* The helper to build a Settings Entry instance.
|
||||
*/
|
||||
class SettingsEntryBuilder(private val name: String, private val owner: SettingsPage) {
|
||||
private var displayName = name
|
||||
private var label = name
|
||||
private var fromPage: SettingsPage? = null
|
||||
private var toPage: SettingsPage? = null
|
||||
|
||||
@@ -51,7 +51,7 @@ class SettingsEntryBuilder(private val name: String, private val owner: Settings
|
||||
id = genEntryId(name, owner, fromPage, toPage),
|
||||
name = name,
|
||||
owner = owner,
|
||||
displayName = displayName,
|
||||
label = label,
|
||||
|
||||
// linking data
|
||||
fromPage = fromPage,
|
||||
@@ -72,8 +72,8 @@ class SettingsEntryBuilder(private val name: String, private val owner: Settings
|
||||
)
|
||||
}
|
||||
|
||||
fun setDisplayName(displayName: String): SettingsEntryBuilder {
|
||||
this.displayName = displayName
|
||||
fun setLabel(label: String): SettingsEntryBuilder {
|
||||
this.label = label
|
||||
return this
|
||||
}
|
||||
|
||||
@@ -147,19 +147,19 @@ class SettingsEntryBuilder(private val name: String, private val owner: Settings
|
||||
return create(entryName, owner).setLink(toPage = owner)
|
||||
}
|
||||
|
||||
fun create(owner: SettingsPage, entryName: String, displayName: String? = null):
|
||||
fun create(owner: SettingsPage, entryName: String, label: String? = null):
|
||||
SettingsEntryBuilder {
|
||||
return SettingsEntryBuilder(entryName, owner).setDisplayName(displayName ?: entryName)
|
||||
return SettingsEntryBuilder(entryName, owner).setLabel(label ?: entryName)
|
||||
}
|
||||
|
||||
fun createInject(owner: SettingsPage, displayName: String? = null): SettingsEntryBuilder {
|
||||
val name = displayName ?: "${INJECT_ENTRY_NAME}_${owner.displayName}"
|
||||
return createLinkTo(INJECT_ENTRY_NAME, owner).setDisplayName(name)
|
||||
fun createInject(owner: SettingsPage, label: String? = null): SettingsEntryBuilder {
|
||||
val label = label ?: "${INJECT_ENTRY_LABEL}_${owner.displayName}"
|
||||
return createLinkTo(INJECT_ENTRY_LABEL, owner).setLabel(label)
|
||||
}
|
||||
|
||||
fun createRoot(owner: SettingsPage, displayName: String? = null): SettingsEntryBuilder {
|
||||
val name = displayName ?: "${ROOT_ENTRY_NAME}_${owner.displayName}"
|
||||
return createLinkTo(ROOT_ENTRY_NAME, owner).setDisplayName(name)
|
||||
fun createRoot(owner: SettingsPage, label: String? = null): SettingsEntryBuilder {
|
||||
val label = label ?: "${ROOT_ENTRY_LABEL}_${owner.displayName}"
|
||||
return createLinkTo(ROOT_ENTRY_LABEL, owner).setLabel(label)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -111,9 +111,9 @@ class SettingsEntryRepository(sppRepository: SettingsPageProviderRepository) {
|
||||
return entryPath
|
||||
}
|
||||
|
||||
fun getEntryPathWithDisplayName(entryId: String): List<String> {
|
||||
fun getEntryPathWithLabel(entryId: String): List<String> {
|
||||
val entryPath = getEntryPath(entryId)
|
||||
return entryPath.map { it.displayName }
|
||||
return entryPath.map { it.label }
|
||||
}
|
||||
|
||||
fun getEntryPathWithTitle(entryId: String, defaultTitle: String): List<String> {
|
||||
|
||||
@@ -43,6 +43,7 @@ const val SEARCH_DYNAMIC_ROW = "search_dynamic_row"
|
||||
/** Enum to define all column names in provider. */
|
||||
enum class ColumnEnum(val id: String) {
|
||||
ENTRY_ID("entryId"),
|
||||
ENTRY_LABEL("entryLabel"),
|
||||
SEARCH_TITLE("searchTitle"),
|
||||
SEARCH_KEYWORD("searchKw"),
|
||||
SEARCH_PATH("searchPath"),
|
||||
@@ -50,7 +51,6 @@ enum class ColumnEnum(val id: String) {
|
||||
INTENT_TARGET_CLASS("intentTargetClass"),
|
||||
INTENT_EXTRAS("intentExtras"),
|
||||
SLICE_URI("sliceUri"),
|
||||
LEGACY_KEY("legacyKey"),
|
||||
ENTRY_DISABLED("entryDisabled"),
|
||||
}
|
||||
|
||||
@@ -64,6 +64,7 @@ enum class QueryEnum(
|
||||
SEARCH_STATIC_DATA,
|
||||
listOf(
|
||||
ColumnEnum.ENTRY_ID,
|
||||
ColumnEnum.ENTRY_LABEL,
|
||||
ColumnEnum.SEARCH_TITLE,
|
||||
ColumnEnum.SEARCH_KEYWORD,
|
||||
ColumnEnum.SEARCH_PATH,
|
||||
@@ -71,13 +72,13 @@ enum class QueryEnum(
|
||||
ColumnEnum.INTENT_TARGET_CLASS,
|
||||
ColumnEnum.INTENT_EXTRAS,
|
||||
ColumnEnum.SLICE_URI,
|
||||
ColumnEnum.LEGACY_KEY
|
||||
)
|
||||
),
|
||||
SEARCH_DYNAMIC_DATA_QUERY(
|
||||
SEARCH_DYNAMIC_DATA,
|
||||
listOf(
|
||||
ColumnEnum.ENTRY_ID,
|
||||
ColumnEnum.ENTRY_LABEL,
|
||||
ColumnEnum.SEARCH_TITLE,
|
||||
ColumnEnum.SEARCH_KEYWORD,
|
||||
ColumnEnum.SEARCH_PATH,
|
||||
@@ -85,13 +86,13 @@ enum class QueryEnum(
|
||||
ColumnEnum.INTENT_TARGET_CLASS,
|
||||
ColumnEnum.INTENT_EXTRAS,
|
||||
ColumnEnum.SLICE_URI,
|
||||
ColumnEnum.LEGACY_KEY
|
||||
)
|
||||
),
|
||||
SEARCH_IMMUTABLE_STATUS_DATA_QUERY(
|
||||
SEARCH_IMMUTABLE_STATUS,
|
||||
listOf(
|
||||
ColumnEnum.ENTRY_ID,
|
||||
ColumnEnum.ENTRY_LABEL,
|
||||
ColumnEnum.ENTRY_DISABLED,
|
||||
)
|
||||
),
|
||||
@@ -99,6 +100,7 @@ enum class QueryEnum(
|
||||
SEARCH_MUTABLE_STATUS,
|
||||
listOf(
|
||||
ColumnEnum.ENTRY_ID,
|
||||
ColumnEnum.ENTRY_LABEL,
|
||||
ColumnEnum.ENTRY_DISABLED,
|
||||
)
|
||||
),
|
||||
@@ -106,6 +108,7 @@ enum class QueryEnum(
|
||||
SEARCH_STATIC_ROW,
|
||||
listOf(
|
||||
ColumnEnum.ENTRY_ID,
|
||||
ColumnEnum.ENTRY_LABEL,
|
||||
ColumnEnum.SEARCH_TITLE,
|
||||
ColumnEnum.SEARCH_KEYWORD,
|
||||
ColumnEnum.SEARCH_PATH,
|
||||
@@ -113,7 +116,6 @@ enum class QueryEnum(
|
||||
ColumnEnum.INTENT_TARGET_CLASS,
|
||||
ColumnEnum.INTENT_EXTRAS,
|
||||
ColumnEnum.SLICE_URI,
|
||||
ColumnEnum.LEGACY_KEY,
|
||||
ColumnEnum.ENTRY_DISABLED,
|
||||
)
|
||||
),
|
||||
@@ -121,6 +123,7 @@ enum class QueryEnum(
|
||||
SEARCH_DYNAMIC_ROW,
|
||||
listOf(
|
||||
ColumnEnum.ENTRY_ID,
|
||||
ColumnEnum.ENTRY_LABEL,
|
||||
ColumnEnum.SEARCH_TITLE,
|
||||
ColumnEnum.SEARCH_KEYWORD,
|
||||
ColumnEnum.SEARCH_PATH,
|
||||
@@ -128,7 +131,6 @@ enum class QueryEnum(
|
||||
ColumnEnum.INTENT_TARGET_CLASS,
|
||||
ColumnEnum.INTENT_EXTRAS,
|
||||
ColumnEnum.SLICE_URI,
|
||||
ColumnEnum.LEGACY_KEY,
|
||||
ColumnEnum.ENTRY_DISABLED,
|
||||
)
|
||||
),
|
||||
|
||||
@@ -42,7 +42,7 @@ private const val TAG = "SpaSearchProvider"
|
||||
* One can query the provider result by:
|
||||
* $ adb shell content query --uri content://<AuthorityPath>/<QueryPath>
|
||||
* For gallery, AuthorityPath = com.android.spa.gallery.search.provider
|
||||
* For Settings, AuthorityPath = com.android.settings.spa.search.provider"
|
||||
* For Settings, AuthorityPath = com.android.settings.spa.search.provider
|
||||
* Some examples:
|
||||
* $ adb shell content query --uri content://<AuthorityPath>/search_static_data
|
||||
* $ adb shell content query --uri content://<AuthorityPath>/search_dynamic_data
|
||||
@@ -205,6 +205,7 @@ class SpaSearchProvider : ContentProvider() {
|
||||
val searchData = entry.getSearchData() ?: return
|
||||
val intent = entry.createIntent(SESSION_SEARCH)
|
||||
val row = cursor.newRow().add(ColumnEnum.ENTRY_ID.id, entry.id)
|
||||
.add(ColumnEnum.ENTRY_LABEL.id, entry.label)
|
||||
.add(ColumnEnum.SEARCH_TITLE.id, searchData.title)
|
||||
.add(ColumnEnum.SEARCH_KEYWORD.id, searchData.keyword)
|
||||
.add(
|
||||
@@ -221,7 +222,6 @@ class SpaSearchProvider : ContentProvider() {
|
||||
ColumnEnum.SLICE_URI.id, Uri.Builder()
|
||||
.fromEntry(entry, spaEnvironment.sliceProviderAuthorities)
|
||||
)
|
||||
// TODO: support legacy key
|
||||
}
|
||||
|
||||
private fun fetchStatusData(entry: SettingsEntry, cursor: MatrixCursor) {
|
||||
@@ -229,6 +229,7 @@ class SpaSearchProvider : ContentProvider() {
|
||||
val statusData = entry.getStatusData() ?: return
|
||||
cursor.newRow()
|
||||
.add(ColumnEnum.ENTRY_ID.id, entry.id)
|
||||
.add(ColumnEnum.ENTRY_LABEL.id, entry.label)
|
||||
.add(ColumnEnum.ENTRY_DISABLED.id, statusData.isDisabled)
|
||||
}
|
||||
|
||||
@@ -239,6 +240,7 @@ class SpaSearchProvider : ContentProvider() {
|
||||
val searchData = entry.getSearchData() ?: return
|
||||
val intent = entry.createIntent(SESSION_SEARCH)
|
||||
val row = cursor.newRow().add(ColumnEnum.ENTRY_ID.id, entry.id)
|
||||
.add(ColumnEnum.ENTRY_LABEL.id, entry.label)
|
||||
.add(ColumnEnum.SEARCH_TITLE.id, searchData.title)
|
||||
.add(ColumnEnum.SEARCH_KEYWORD.id, searchData.keyword)
|
||||
.add(
|
||||
@@ -255,8 +257,6 @@ class SpaSearchProvider : ContentProvider() {
|
||||
ColumnEnum.SLICE_URI.id, Uri.Builder()
|
||||
.fromEntry(entry, spaEnvironment.sliceProviderAuthorities)
|
||||
)
|
||||
// TODO: support legacy key
|
||||
|
||||
// Fetch status data. We can add runtime arguments later if necessary
|
||||
val statusData = entry.getStatusData() ?: return
|
||||
row.add(ColumnEnum.ENTRY_DISABLED.id, statusData.isDisabled)
|
||||
|
||||
@@ -115,7 +115,7 @@ class SettingsEntryRepositoryTest {
|
||||
fun testGetEntryPath() {
|
||||
SpaEnvironmentFactory.reset(spaEnvironment)
|
||||
assertThat(
|
||||
entryRepository.getEntryPathWithDisplayName(
|
||||
entryRepository.getEntryPathWithLabel(
|
||||
genEntryId("Layer2Entry1", SppLayer2.createSettingsPage())
|
||||
)
|
||||
).containsExactly("Layer2Entry1", "INJECT_SppLayer2", "INJECT_SppLayer1", "ROOT_SppHome")
|
||||
@@ -129,7 +129,7 @@ class SettingsEntryRepositoryTest {
|
||||
).containsExactly("entryTitle", "SppLayer2", "TitleLayer1", "TitleHome").inOrder()
|
||||
|
||||
assertThat(
|
||||
entryRepository.getEntryPathWithDisplayName(
|
||||
entryRepository.getEntryPathWithLabel(
|
||||
genEntryId(
|
||||
"INJECT",
|
||||
SppLayer1.createSettingsPage(),
|
||||
|
||||
@@ -68,7 +68,7 @@ class SettingsEntryTest {
|
||||
val owner = createSettingsPage("mySpp")
|
||||
val entry = SettingsEntryBuilder.create(owner, "myEntry").build()
|
||||
assertThat(entry.id).isEqualTo(genEntryId("myEntry", owner))
|
||||
assertThat(entry.displayName).isEqualTo("myEntry")
|
||||
assertThat(entry.label).isEqualTo("myEntry")
|
||||
assertThat(entry.owner.sppName).isEqualTo("mySpp")
|
||||
assertThat(entry.owner.displayName).isEqualTo("mySpp")
|
||||
assertThat(entry.fromPage).isNull()
|
||||
@@ -87,14 +87,14 @@ class SettingsEntryTest {
|
||||
val entryFrom =
|
||||
SettingsEntryBuilder.createLinkFrom("myEntry", owner).setLink(toPage = toPage).build()
|
||||
assertThat(entryFrom.id).isEqualTo(genEntryId("myEntry", owner, owner, toPage))
|
||||
assertThat(entryFrom.displayName).isEqualTo("myEntry")
|
||||
assertThat(entryFrom.label).isEqualTo("myEntry")
|
||||
assertThat(entryFrom.fromPage!!.sppName).isEqualTo("mySpp")
|
||||
assertThat(entryFrom.toPage!!.sppName).isEqualTo("toSpp")
|
||||
|
||||
val entryTo =
|
||||
SettingsEntryBuilder.createLinkTo("myEntry", owner).setLink(fromPage = fromPage).build()
|
||||
assertThat(entryTo.id).isEqualTo(genEntryId("myEntry", owner, fromPage, owner))
|
||||
assertThat(entryTo.displayName).isEqualTo("myEntry")
|
||||
assertThat(entryTo.label).isEqualTo("myEntry")
|
||||
assertThat(entryTo.fromPage!!.sppName).isEqualTo("fromSpp")
|
||||
assertThat(entryTo.toPage!!.sppName).isEqualTo("mySpp")
|
||||
}
|
||||
@@ -108,7 +108,7 @@ class SettingsEntryTest {
|
||||
INJECT_ENTRY_NAME_TEST, owner, toPage = owner
|
||||
)
|
||||
)
|
||||
assertThat(entryInject.displayName).isEqualTo("${INJECT_ENTRY_NAME_TEST}_mySpp")
|
||||
assertThat(entryInject.label).isEqualTo("${INJECT_ENTRY_NAME_TEST}_mySpp")
|
||||
assertThat(entryInject.fromPage).isNull()
|
||||
assertThat(entryInject.toPage).isNotNull()
|
||||
}
|
||||
@@ -122,7 +122,7 @@ class SettingsEntryTest {
|
||||
ROOT_ENTRY_NAME_TEST, owner, toPage = owner
|
||||
)
|
||||
)
|
||||
assertThat(entryInject.displayName).isEqualTo("myRootEntry")
|
||||
assertThat(entryInject.label).isEqualTo("myRootEntry")
|
||||
assertThat(entryInject.fromPage).isNull()
|
||||
assertThat(entryInject.toPage).isNotNull()
|
||||
}
|
||||
@@ -133,14 +133,14 @@ class SettingsEntryTest {
|
||||
val owner = createSettingsPage("SppHome")
|
||||
val entryBuilder =
|
||||
SettingsEntryBuilder.create(owner, "myEntry")
|
||||
.setDisplayName("myEntryDisplay")
|
||||
.setLabel("myEntryDisplay")
|
||||
.setIsSearchDataDynamic(false)
|
||||
.setHasMutableStatus(true)
|
||||
.setSearchDataFn { null }
|
||||
.setSliceDataFn { _, _ -> null }
|
||||
val entry = entryBuilder.build()
|
||||
assertThat(entry.id).isEqualTo(genEntryId("myEntry", owner))
|
||||
assertThat(entry.displayName).isEqualTo("myEntryDisplay")
|
||||
assertThat(entry.label).isEqualTo("myEntryDisplay")
|
||||
assertThat(entry.fromPage).isNull()
|
||||
assertThat(entry.toPage).isNull()
|
||||
assertThat(entry.isAllowSearch).isTrue()
|
||||
@@ -152,14 +152,14 @@ class SettingsEntryTest {
|
||||
val ownerDisabled = createSettingsPage("SppDisabled")
|
||||
val entryBuilderDisabled =
|
||||
SettingsEntryBuilder.create(ownerDisabled, "myEntry")
|
||||
.setDisplayName("myEntryDisplay")
|
||||
.setLabel("myEntryDisplay")
|
||||
.setIsSearchDataDynamic(false)
|
||||
.setHasMutableStatus(true)
|
||||
.setSearchDataFn { null }
|
||||
.setSliceDataFn { _, _ -> null }
|
||||
val entryDisabled = entryBuilderDisabled.build()
|
||||
assertThat(entryDisabled.id).isEqualTo(genEntryId("myEntry", ownerDisabled))
|
||||
assertThat(entryDisabled.displayName).isEqualTo("myEntryDisplay")
|
||||
assertThat(entryDisabled.label).isEqualTo("myEntryDisplay")
|
||||
assertThat(entryDisabled.fromPage).isNull()
|
||||
assertThat(entryDisabled.toPage).isNull()
|
||||
assertThat(entryDisabled.isAllowSearch).isFalse()
|
||||
@@ -175,7 +175,7 @@ class SettingsEntryTest {
|
||||
SpaEnvironmentFactory.reset()
|
||||
val entry3 = entryBuilder.build()
|
||||
assertThat(entry3.id).isEqualTo(genEntryId("myEntry", owner))
|
||||
assertThat(entry3.displayName).isEqualTo("myEntryDisplay")
|
||||
assertThat(entry3.label).isEqualTo("myEntryDisplay")
|
||||
assertThat(entry3.fromPage).isNull()
|
||||
assertThat(entry3.toPage).isNull()
|
||||
assertThat(entry3.isAllowSearch).isFalse()
|
||||
|
||||
@@ -62,6 +62,11 @@ class SpaSearchProviderTest {
|
||||
ColumnEnum.ENTRY_ID,
|
||||
pageOwner.getEntryId("SearchDynamicWithImmutableStatus")
|
||||
)
|
||||
immutableStatus.checkValue(
|
||||
QueryEnum.SEARCH_IMMUTABLE_STATUS_DATA_QUERY,
|
||||
ColumnEnum.ENTRY_LABEL,
|
||||
pageOwner.getEntryLabel("SearchDynamicWithImmutableStatus")
|
||||
)
|
||||
immutableStatus.checkValue(
|
||||
QueryEnum.SEARCH_IMMUTABLE_STATUS_DATA_QUERY, ColumnEnum.ENTRY_DISABLED, true.toString()
|
||||
)
|
||||
@@ -74,6 +79,11 @@ class SpaSearchProviderTest {
|
||||
ColumnEnum.ENTRY_ID,
|
||||
pageOwner.getEntryId("SearchStaticWithMutableStatus")
|
||||
)
|
||||
mutableStatus.checkValue(
|
||||
QueryEnum.SEARCH_MUTABLE_STATUS_DATA_QUERY,
|
||||
ColumnEnum.ENTRY_LABEL,
|
||||
pageOwner.getEntryLabel("SearchStaticWithMutableStatus")
|
||||
)
|
||||
mutableStatus.checkValue(
|
||||
QueryEnum.SEARCH_MUTABLE_STATUS_DATA_QUERY, ColumnEnum.ENTRY_DISABLED, false.toString()
|
||||
)
|
||||
@@ -84,6 +94,11 @@ class SpaSearchProviderTest {
|
||||
ColumnEnum.ENTRY_ID,
|
||||
pageOwner.getEntryId("SearchDynamicWithMutableStatus")
|
||||
)
|
||||
mutableStatus.checkValue(
|
||||
QueryEnum.SEARCH_MUTABLE_STATUS_DATA_QUERY,
|
||||
ColumnEnum.ENTRY_LABEL,
|
||||
pageOwner.getEntryLabel("SearchDynamicWithMutableStatus")
|
||||
)
|
||||
mutableStatus.checkValue(
|
||||
QueryEnum.SEARCH_MUTABLE_STATUS_DATA_QUERY, ColumnEnum.ENTRY_DISABLED, true.toString()
|
||||
)
|
||||
@@ -101,6 +116,11 @@ class SpaSearchProviderTest {
|
||||
ColumnEnum.ENTRY_ID,
|
||||
pageOwner.getEntryId("SearchStaticWithNoStatus")
|
||||
)
|
||||
staticData.checkValue(
|
||||
QueryEnum.SEARCH_STATIC_DATA_QUERY,
|
||||
ColumnEnum.ENTRY_LABEL,
|
||||
pageOwner.getEntryLabel("SearchStaticWithNoStatus")
|
||||
)
|
||||
staticData.checkValue(
|
||||
QueryEnum.SEARCH_STATIC_DATA_QUERY, ColumnEnum.SEARCH_TITLE, "SearchStaticWithNoStatus"
|
||||
)
|
||||
@@ -139,6 +159,11 @@ class SpaSearchProviderTest {
|
||||
ColumnEnum.ENTRY_ID,
|
||||
pageOwner.getEntryId("SearchStaticWithMutableStatus")
|
||||
)
|
||||
staticData.checkValue(
|
||||
QueryEnum.SEARCH_STATIC_DATA_QUERY,
|
||||
ColumnEnum.ENTRY_LABEL,
|
||||
pageOwner.getEntryLabel("SearchStaticWithMutableStatus")
|
||||
)
|
||||
|
||||
val dynamicData = searchProvider.querySearchDynamicData()
|
||||
Truth.assertThat(dynamicData.count).isEqualTo(2)
|
||||
@@ -148,6 +173,11 @@ class SpaSearchProviderTest {
|
||||
ColumnEnum.ENTRY_ID,
|
||||
pageOwner.getEntryId("SearchDynamicWithMutableStatus")
|
||||
)
|
||||
dynamicData.checkValue(
|
||||
QueryEnum.SEARCH_DYNAMIC_DATA_QUERY,
|
||||
ColumnEnum.ENTRY_LABEL,
|
||||
pageOwner.getEntryLabel("SearchDynamicWithMutableStatus")
|
||||
)
|
||||
|
||||
dynamicData.moveToNext()
|
||||
dynamicData.checkValue(
|
||||
@@ -155,6 +185,11 @@ class SpaSearchProviderTest {
|
||||
ColumnEnum.ENTRY_ID,
|
||||
pageOwner.getEntryId("SearchDynamicWithImmutableStatus")
|
||||
)
|
||||
dynamicData.checkValue(
|
||||
QueryEnum.SEARCH_DYNAMIC_DATA_QUERY,
|
||||
ColumnEnum.ENTRY_LABEL,
|
||||
pageOwner.getEntryLabel("SearchDynamicWithImmutableStatus")
|
||||
)
|
||||
dynamicData.checkValue(
|
||||
QueryEnum.SEARCH_DYNAMIC_DATA_QUERY,
|
||||
ColumnEnum.SEARCH_KEYWORD,
|
||||
@@ -174,6 +209,11 @@ class SpaSearchProviderTest {
|
||||
ColumnEnum.ENTRY_ID,
|
||||
pageOwner.getEntryId("SearchStaticWithNoStatus")
|
||||
)
|
||||
staticRow.checkValue(
|
||||
QueryEnum.SEARCH_STATIC_ROW_QUERY,
|
||||
ColumnEnum.ENTRY_LABEL,
|
||||
pageOwner.getEntryLabel("SearchStaticWithNoStatus")
|
||||
)
|
||||
staticRow.checkValue(
|
||||
QueryEnum.SEARCH_STATIC_ROW_QUERY, ColumnEnum.SEARCH_TITLE, "SearchStaticWithNoStatus"
|
||||
)
|
||||
@@ -222,6 +262,11 @@ class SpaSearchProviderTest {
|
||||
ColumnEnum.ENTRY_ID,
|
||||
pageOwner.getEntryId("SearchStaticWithMutableStatus")
|
||||
)
|
||||
dynamicRow.checkValue(
|
||||
QueryEnum.SEARCH_DYNAMIC_ROW_QUERY,
|
||||
ColumnEnum.ENTRY_LABEL,
|
||||
pageOwner.getEntryLabel("SearchStaticWithMutableStatus")
|
||||
)
|
||||
dynamicRow.checkValue(
|
||||
QueryEnum.SEARCH_DYNAMIC_ROW_QUERY, ColumnEnum.ENTRY_DISABLED, false.toString()
|
||||
)
|
||||
@@ -232,6 +277,11 @@ class SpaSearchProviderTest {
|
||||
ColumnEnum.ENTRY_ID,
|
||||
pageOwner.getEntryId("SearchDynamicWithMutableStatus")
|
||||
)
|
||||
dynamicRow.checkValue(
|
||||
QueryEnum.SEARCH_DYNAMIC_ROW_QUERY,
|
||||
ColumnEnum.ENTRY_LABEL,
|
||||
pageOwner.getEntryLabel("SearchDynamicWithMutableStatus")
|
||||
)
|
||||
dynamicRow.checkValue(
|
||||
QueryEnum.SEARCH_DYNAMIC_ROW_QUERY, ColumnEnum.ENTRY_DISABLED, true.toString()
|
||||
)
|
||||
@@ -243,6 +293,11 @@ class SpaSearchProviderTest {
|
||||
ColumnEnum.ENTRY_ID,
|
||||
pageOwner.getEntryId("SearchDynamicWithImmutableStatus")
|
||||
)
|
||||
dynamicRow.checkValue(
|
||||
QueryEnum.SEARCH_DYNAMIC_ROW_QUERY,
|
||||
ColumnEnum.ENTRY_LABEL,
|
||||
pageOwner.getEntryLabel("SearchDynamicWithImmutableStatus")
|
||||
)
|
||||
dynamicRow.checkValue(
|
||||
QueryEnum.SEARCH_DYNAMIC_ROW_QUERY,
|
||||
ColumnEnum.SEARCH_KEYWORD,
|
||||
@@ -271,3 +326,7 @@ private fun Cursor.getExtras(query: QueryEnum, column: ColumnEnum): Bundle? {
|
||||
private fun SettingsPage.getEntryId(name: String): String {
|
||||
return SettingsEntryBuilder.create(this, name).build().id
|
||||
}
|
||||
|
||||
private fun SettingsPage.getEntryLabel(name: String): String {
|
||||
return SettingsEntryBuilder.create(this, name).build().label
|
||||
}
|
||||
|
||||
@@ -81,7 +81,7 @@ class TogglePermissionAppInfoPageTest {
|
||||
val entryList = appInfoPageProvider.buildEntry(null)
|
||||
|
||||
assertThat(entryList).hasSize(1)
|
||||
assertThat(entryList[0].displayName).isEqualTo("AllowControl")
|
||||
assertThat(entryList[0].label).isEqualTo("AllowControl")
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user