[Catalyst] Include read/write permissions in get preference API
Bug: 374115149 Flag: com.android.settingslib.flags.settings_catalyst Test: unit Change-Id: I69a92a8029b94ca03d6232164edddf1a987201be
This commit is contained in:
@@ -204,5 +204,7 @@ private fun PreferenceProto.toMetadata(
|
|||||||
.setWritable(persistent)
|
.setWritable(persistent)
|
||||||
.setLaunchIntent(launchIntent.toIntent())
|
.setLaunchIntent(launchIntent.toIntent())
|
||||||
.setWriteSensitivity(sensitivity)
|
.setWriteSensitivity(sensitivity)
|
||||||
|
.setReadPermissions(readPermissionsList)
|
||||||
|
.setWritePermissions(writePermissionsList)
|
||||||
.build()
|
.build()
|
||||||
}
|
}
|
||||||
|
@@ -41,10 +41,8 @@ import com.android.settingslib.graph.preferenceGroupProto
|
|||||||
import com.android.settingslib.graph.preferenceOrGroupProto
|
import com.android.settingslib.graph.preferenceOrGroupProto
|
||||||
import com.android.settingslib.graph.preferenceProto
|
import com.android.settingslib.graph.preferenceProto
|
||||||
import com.android.settingslib.graph.preferenceScreenProto
|
import com.android.settingslib.graph.preferenceScreenProto
|
||||||
|
import com.android.settingslib.graph.preferenceValueProto
|
||||||
import com.android.settingslib.graph.proto.PreferenceGraphProto
|
import com.android.settingslib.graph.proto.PreferenceGraphProto
|
||||||
import com.android.settingslib.graph.proto.PreferenceProto
|
|
||||||
import com.android.settingslib.graph.proto.PreferenceValueProto
|
|
||||||
import com.android.settingslib.graph.proto.TextProto
|
|
||||||
import com.android.settingslib.graph.textProto
|
import com.android.settingslib.graph.textProto
|
||||||
import com.android.settingslib.graph.toProto
|
import com.android.settingslib.graph.toProto
|
||||||
import com.android.settingslib.metadata.SensitivityLevel
|
import com.android.settingslib.metadata.SensitivityLevel
|
||||||
@@ -57,8 +55,7 @@ import org.junit.runner.RunWith
|
|||||||
@RequiresFlagsEnabled(FLAG_SETTINGS_CATALYST)
|
@RequiresFlagsEnabled(FLAG_SETTINGS_CATALYST)
|
||||||
class PreferenceServiceRequestTransformerTest {
|
class PreferenceServiceRequestTransformerTest {
|
||||||
|
|
||||||
@get:Rule
|
@get:Rule val checkFlagsRule: CheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule()
|
||||||
val checkFlagsRule: CheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule()
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun transformCatalystGetMetadataResponse_emptyGraph_returnsFrameworkResponseWithError() {
|
fun transformCatalystGetMetadataResponse_emptyGraph_returnsFrameworkResponseWithError() {
|
||||||
@@ -97,7 +94,7 @@ class PreferenceServiceRequestTransformerTest {
|
|||||||
title = textProto { string = "title2" }
|
title = textProto { string = "title2" }
|
||||||
enabled = false
|
enabled = false
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -110,21 +107,23 @@ class PreferenceServiceRequestTransformerTest {
|
|||||||
assertThat(metadataList.size).isEqualTo(2)
|
assertThat(metadataList.size).isEqualTo(2)
|
||||||
}
|
}
|
||||||
assertThat(
|
assertThat(
|
||||||
fResult.metadataList.any {
|
fResult.metadataList.any {
|
||||||
it.key == "key1" &&
|
it.key == "key1" &&
|
||||||
it.screenKey == "screen" &&
|
it.screenKey == "screen" &&
|
||||||
it.title == "title1" &&
|
it.title == "title1" &&
|
||||||
it.isEnabled == true
|
it.isEnabled
|
||||||
}
|
}
|
||||||
).isTrue()
|
)
|
||||||
|
.isTrue()
|
||||||
assertThat(
|
assertThat(
|
||||||
fResult.metadataList.any {
|
fResult.metadataList.any {
|
||||||
it.key == "key2" &&
|
it.key == "key2" &&
|
||||||
it.screenKey == "screen" &&
|
it.screenKey == "screen" &&
|
||||||
it.title == "title2" &&
|
it.title == "title2" &&
|
||||||
it.isEnabled == false
|
!it.isEnabled
|
||||||
}
|
}
|
||||||
).isTrue()
|
)
|
||||||
|
.isTrue()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -143,26 +142,28 @@ class PreferenceServiceRequestTransformerTest {
|
|||||||
fun transformCatalystGetValueResponse_success_returnsValidFrameworkResponse() {
|
fun transformCatalystGetValueResponse_success_returnsValidFrameworkResponse() {
|
||||||
val context: Context = ApplicationProvider.getApplicationContext()
|
val context: Context = ApplicationProvider.getApplicationContext()
|
||||||
val fRequest = GetValueRequest.Builder("screen", "key").build()
|
val fRequest = GetValueRequest.Builder("screen", "key").build()
|
||||||
val cResult = PreferenceGetterResponse(
|
val cResult =
|
||||||
emptyMap(),
|
PreferenceGetterResponse(
|
||||||
mapOf(
|
emptyMap(),
|
||||||
PreferenceCoordinate(fRequest.screenKey, fRequest.preferenceKey) to
|
mapOf(
|
||||||
PreferenceProto.newBuilder()
|
PreferenceCoordinate(fRequest.screenKey, fRequest.preferenceKey) to
|
||||||
.setKey("key")
|
preferenceProto {
|
||||||
.setTitle(TextProto.newBuilder().setString("title"))
|
key = "key"
|
||||||
.setSummary(TextProto.newBuilder().setString("summary"))
|
title = textProto { string = "title" }
|
||||||
.setEnabled(true)
|
summary = textProto { string = "summary" }
|
||||||
.setAvailable(true)
|
enabled = true
|
||||||
.setRestricted(true)
|
available = true
|
||||||
.setPersistent(true)
|
restricted = true
|
||||||
.setSensitivityLevel(SensitivityLevel.LOW_SENSITIVITY)
|
persistent = true
|
||||||
.setLaunchIntent(
|
sensitivityLevel = SensitivityLevel.LOW_SENSITIVITY
|
||||||
|
addReadPermissions("read_permission")
|
||||||
|
addWritePermissions("write_permission")
|
||||||
|
launchIntent =
|
||||||
Intent(context, SettingsHomepageActivity::class.java).toProto()
|
Intent(context, SettingsHomepageActivity::class.java).toProto()
|
||||||
)
|
value = preferenceValueProto { booleanValue = true }
|
||||||
.setValue(PreferenceValueProto.newBuilder().setBooleanValue(true))
|
}
|
||||||
.build()
|
),
|
||||||
)
|
)
|
||||||
)
|
|
||||||
val fResult = transformCatalystGetValueResponse(context, fRequest, cResult)
|
val fResult = transformCatalystGetValueResponse(context, fRequest, cResult)
|
||||||
assertThat(fResult!!.resultCode).isEqualTo(GetValueResult.RESULT_OK)
|
assertThat(fResult!!.resultCode).isEqualTo(GetValueResult.RESULT_OK)
|
||||||
with(fResult.metadata!!) {
|
with(fResult.metadata!!) {
|
||||||
@@ -174,6 +175,8 @@ class PreferenceServiceRequestTransformerTest {
|
|||||||
assertThat(isWritable).isTrue()
|
assertThat(isWritable).isTrue()
|
||||||
assertThat(writeSensitivity)
|
assertThat(writeSensitivity)
|
||||||
.isEqualTo(SettingsPreferenceMetadata.EXPECT_POST_CONFIRMATION)
|
.isEqualTo(SettingsPreferenceMetadata.EXPECT_POST_CONFIRMATION)
|
||||||
|
assertThat(readPermissions).containsExactly("read_permission")
|
||||||
|
assertThat(writePermissions).containsExactly("write_permission")
|
||||||
assertThat(launchIntent).isNotNull()
|
assertThat(launchIntent).isNotNull()
|
||||||
assertThat(launchIntent!!.component!!.className)
|
assertThat(launchIntent!!.component!!.className)
|
||||||
.isEqualTo(SettingsHomepageActivity::class.java.name)
|
.isEqualTo(SettingsHomepageActivity::class.java.name)
|
||||||
@@ -188,13 +191,14 @@ class PreferenceServiceRequestTransformerTest {
|
|||||||
fun transformCatalystGetValueResponse_failure_returnsValidFrameworkResponse() {
|
fun transformCatalystGetValueResponse_failure_returnsValidFrameworkResponse() {
|
||||||
val context: Context = ApplicationProvider.getApplicationContext()
|
val context: Context = ApplicationProvider.getApplicationContext()
|
||||||
val fRequest = GetValueRequest.Builder("screen", "key").build()
|
val fRequest = GetValueRequest.Builder("screen", "key").build()
|
||||||
val cResult = PreferenceGetterResponse(
|
val cResult =
|
||||||
mapOf(
|
PreferenceGetterResponse(
|
||||||
PreferenceCoordinate(fRequest.screenKey, fRequest.preferenceKey) to
|
mapOf(
|
||||||
|
PreferenceCoordinate(fRequest.screenKey, fRequest.preferenceKey) to
|
||||||
PreferenceGetterErrorCode.NOT_FOUND
|
PreferenceGetterErrorCode.NOT_FOUND
|
||||||
),
|
),
|
||||||
emptyMap()
|
emptyMap(),
|
||||||
)
|
)
|
||||||
val fResult = transformCatalystGetValueResponse(context, fRequest, cResult)
|
val fResult = transformCatalystGetValueResponse(context, fRequest, cResult)
|
||||||
with(fResult!!) {
|
with(fResult!!) {
|
||||||
assertThat(resultCode).isEqualTo(GetValueResult.RESULT_UNSUPPORTED)
|
assertThat(resultCode).isEqualTo(GetValueResult.RESULT_UNSUPPORTED)
|
||||||
@@ -214,13 +218,15 @@ class PreferenceServiceRequestTransformerTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun transformFrameworkSetValueRequest_typeBoolean_returnsValidCatalystRequest() {
|
fun transformFrameworkSetValueRequest_typeBoolean_returnsValidCatalystRequest() {
|
||||||
val fRequest = SetValueRequest.Builder(
|
val fRequest =
|
||||||
"screen",
|
SetValueRequest.Builder(
|
||||||
"pref",
|
"screen",
|
||||||
SettingsPreferenceValue.Builder(SettingsPreferenceValue.TYPE_BOOLEAN)
|
"pref",
|
||||||
.setBooleanValue(true)
|
SettingsPreferenceValue.Builder(SettingsPreferenceValue.TYPE_BOOLEAN)
|
||||||
|
.setBooleanValue(true)
|
||||||
|
.build(),
|
||||||
|
)
|
||||||
.build()
|
.build()
|
||||||
).build()
|
|
||||||
val cRequest = transformFrameworkSetValueRequest(fRequest)
|
val cRequest = transformFrameworkSetValueRequest(fRequest)
|
||||||
with(cRequest!!) {
|
with(cRequest!!) {
|
||||||
assertThat(screenKey).isEqualTo(fRequest.screenKey)
|
assertThat(screenKey).isEqualTo(fRequest.screenKey)
|
||||||
@@ -232,13 +238,15 @@ class PreferenceServiceRequestTransformerTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun transformFrameworkSetValueRequest_typeInt_returnsValidCatalystRequest() {
|
fun transformFrameworkSetValueRequest_typeInt_returnsValidCatalystRequest() {
|
||||||
val fRequest = SetValueRequest.Builder(
|
val fRequest =
|
||||||
"screen",
|
SetValueRequest.Builder(
|
||||||
"pref",
|
"screen",
|
||||||
SettingsPreferenceValue.Builder(SettingsPreferenceValue.TYPE_INT)
|
"pref",
|
||||||
.setIntValue(5)
|
SettingsPreferenceValue.Builder(SettingsPreferenceValue.TYPE_INT)
|
||||||
|
.setIntValue(5)
|
||||||
|
.build(),
|
||||||
|
)
|
||||||
.build()
|
.build()
|
||||||
).build()
|
|
||||||
val cRequest = transformFrameworkSetValueRequest(fRequest)
|
val cRequest = transformFrameworkSetValueRequest(fRequest)
|
||||||
with(cRequest!!) {
|
with(cRequest!!) {
|
||||||
assertThat(screenKey).isEqualTo(fRequest.screenKey)
|
assertThat(screenKey).isEqualTo(fRequest.screenKey)
|
||||||
@@ -250,59 +258,59 @@ class PreferenceServiceRequestTransformerTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun transformFrameworkSetValueRequest_typeString_returnsNull() {
|
fun transformFrameworkSetValueRequest_typeString_returnsNull() {
|
||||||
val fRequest = SetValueRequest.Builder(
|
val fRequest =
|
||||||
"screen",
|
SetValueRequest.Builder(
|
||||||
"pref",
|
"screen",
|
||||||
SettingsPreferenceValue.Builder(SettingsPreferenceValue.TYPE_STRING)
|
"pref",
|
||||||
.setStringValue("value")
|
SettingsPreferenceValue.Builder(SettingsPreferenceValue.TYPE_STRING)
|
||||||
|
.setStringValue("value")
|
||||||
|
.build(),
|
||||||
|
)
|
||||||
.build()
|
.build()
|
||||||
).build()
|
|
||||||
val cRequest = transformFrameworkSetValueRequest(fRequest)
|
val cRequest = transformFrameworkSetValueRequest(fRequest)
|
||||||
assertThat(cRequest).isNull()
|
assertThat(cRequest).isNull()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun transformCatalystSetValueResponse_returnsValidFrameworkResponse() {
|
fun transformCatalystSetValueResponse_returnsValidFrameworkResponse() {
|
||||||
assertThat(
|
assertThat(transformCatalystSetValueResponse(PreferenceSetterResult.OK).resultCode)
|
||||||
transformCatalystSetValueResponse(PreferenceSetterResult.OK).resultCode
|
.isEqualTo(SetValueResult.RESULT_OK)
|
||||||
).isEqualTo(SetValueResult.RESULT_OK)
|
|
||||||
|
assertThat(transformCatalystSetValueResponse(PreferenceSetterResult.UNAVAILABLE).resultCode)
|
||||||
|
.isEqualTo(SetValueResult.RESULT_UNAVAILABLE)
|
||||||
|
|
||||||
|
assertThat(transformCatalystSetValueResponse(PreferenceSetterResult.DISABLED).resultCode)
|
||||||
|
.isEqualTo(SetValueResult.RESULT_DISABLED)
|
||||||
|
|
||||||
|
assertThat(transformCatalystSetValueResponse(PreferenceSetterResult.UNSUPPORTED).resultCode)
|
||||||
|
.isEqualTo(SetValueResult.RESULT_UNSUPPORTED)
|
||||||
|
|
||||||
|
assertThat(transformCatalystSetValueResponse(PreferenceSetterResult.DISALLOW).resultCode)
|
||||||
|
.isEqualTo(SetValueResult.RESULT_DISALLOW)
|
||||||
|
|
||||||
assertThat(
|
assertThat(
|
||||||
transformCatalystSetValueResponse(PreferenceSetterResult.UNAVAILABLE).resultCode
|
transformCatalystSetValueResponse(PreferenceSetterResult.REQUIRE_APP_PERMISSION)
|
||||||
).isEqualTo(SetValueResult.RESULT_UNAVAILABLE)
|
.resultCode
|
||||||
|
)
|
||||||
|
.isEqualTo(SetValueResult.RESULT_REQUIRE_APP_PERMISSION)
|
||||||
|
|
||||||
assertThat(
|
assertThat(
|
||||||
transformCatalystSetValueResponse(PreferenceSetterResult.DISABLED).resultCode
|
transformCatalystSetValueResponse(PreferenceSetterResult.REQUIRE_USER_AGREEMENT)
|
||||||
).isEqualTo(SetValueResult.RESULT_DISABLED)
|
.resultCode
|
||||||
|
)
|
||||||
|
.isEqualTo(SetValueResult.RESULT_REQUIRE_USER_CONSENT)
|
||||||
|
|
||||||
|
assertThat(transformCatalystSetValueResponse(PreferenceSetterResult.RESTRICTED).resultCode)
|
||||||
|
.isEqualTo(SetValueResult.RESULT_RESTRICTED)
|
||||||
|
|
||||||
assertThat(
|
assertThat(
|
||||||
transformCatalystSetValueResponse(PreferenceSetterResult.UNSUPPORTED).resultCode
|
transformCatalystSetValueResponse(PreferenceSetterResult.INVALID_REQUEST).resultCode
|
||||||
).isEqualTo(SetValueResult.RESULT_UNSUPPORTED)
|
)
|
||||||
|
.isEqualTo(SetValueResult.RESULT_INVALID_REQUEST)
|
||||||
|
|
||||||
assertThat(
|
assertThat(
|
||||||
transformCatalystSetValueResponse(PreferenceSetterResult.DISALLOW).resultCode
|
transformCatalystSetValueResponse(PreferenceSetterResult.INTERNAL_ERROR).resultCode
|
||||||
).isEqualTo(SetValueResult.RESULT_DISALLOW)
|
)
|
||||||
|
.isEqualTo(SetValueResult.RESULT_INTERNAL_ERROR)
|
||||||
assertThat(
|
|
||||||
transformCatalystSetValueResponse(PreferenceSetterResult.REQUIRE_APP_PERMISSION)
|
|
||||||
.resultCode
|
|
||||||
).isEqualTo(SetValueResult.RESULT_REQUIRE_APP_PERMISSION)
|
|
||||||
|
|
||||||
assertThat(
|
|
||||||
transformCatalystSetValueResponse(PreferenceSetterResult.REQUIRE_USER_AGREEMENT)
|
|
||||||
.resultCode
|
|
||||||
).isEqualTo(SetValueResult.RESULT_REQUIRE_USER_CONSENT)
|
|
||||||
|
|
||||||
assertThat(
|
|
||||||
transformCatalystSetValueResponse(PreferenceSetterResult.RESTRICTED).resultCode
|
|
||||||
).isEqualTo(SetValueResult.RESULT_RESTRICTED)
|
|
||||||
|
|
||||||
assertThat(
|
|
||||||
transformCatalystSetValueResponse(PreferenceSetterResult.INVALID_REQUEST).resultCode
|
|
||||||
).isEqualTo(SetValueResult.RESULT_INVALID_REQUEST)
|
|
||||||
|
|
||||||
assertThat(
|
|
||||||
transformCatalystSetValueResponse(PreferenceSetterResult.INTERNAL_ERROR).resultCode
|
|
||||||
).isEqualTo(SetValueResult.RESULT_INTERNAL_ERROR)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user