Keep FakeFeatureFlagsImpl

* Keep FakeFeatureFlagsImpl.
* Use EnableFlags and DisableFlags annotation
* Switch back from `assumeTrue` to `assert` when flag is enabled or disabled.
* Remove flag rollback test.

Bug: 342830919
Change-Id: Ic9b3438f3f0e31e64d5405ed81903b352195714a
This commit is contained in:
Kyle Zhang
2024-06-11 18:45:11 +00:00
parent f647356d62
commit 7dbe6517ec
3 changed files with 11 additions and 18 deletions

View File

@@ -65,3 +65,6 @@
-keep class androidx.window.extensions.** { *; } -keep class androidx.window.extensions.** { *; }
-dontwarn androidx.window.extensions.** -dontwarn androidx.window.extensions.**
-keep class androidx.window.** { *; } -keep class androidx.window.** { *; }
# Keep the com.android.settings.media_drm.FakeFeatureFlagsImpl
-keep class com.android.settings.media_drm.FakeFeatureFlagsImpl { *; }

View File

@@ -32,7 +32,6 @@ android_test {
"truth", "truth",
"kotlinx_coroutines_test", "kotlinx_coroutines_test",
"Settings-testutils2", "Settings-testutils2",
"MediaDrmSettingsFlagsLib",
"servicestests-utils", "servicestests-utils",
// Don't add SettingsLib libraries here - you can use them directly as they are in the // Don't add SettingsLib libraries here - you can use them directly as they are in the
// instrumented Settings app. // instrumented Settings app.

View File

@@ -29,6 +29,8 @@ import android.util.Log;
import android.content.Context; import android.content.Context;
import com.android.settings.media_drm.Flags; import com.android.settings.media_drm.Flags;
import android.platform.test.annotations.DisableFlags;
import android.platform.test.annotations.EnableFlags;
import android.platform.test.flag.junit.SetFlagsRule; import android.platform.test.flag.junit.SetFlagsRule;
import androidx.preference.SwitchPreference; import androidx.preference.SwitchPreference;
@@ -65,10 +67,10 @@ public class ForceSwSecureCryptoFallbackPreferenceControllerTest {
} }
@Test @Test
@EnableFlags(Flags.FLAG_FORCE_L3_ENABLED)
public void updateState_flagEnabled_checkPreference() { public void updateState_flagEnabled_checkPreference() {
mSetFlagsRule.enableFlags(Flags.FLAG_FORCE_L3_ENABLED);
mController.updateState(mPreference); mController.updateState(mPreference);
assumeTrue(mPreference.isEnabled()); assertThat(mPreference.isEnabled()).isTrue();
assertThat(mPreference.isChecked()).isFalse(); assertThat(mPreference.isChecked()).isFalse();
assertThat(WidevineProperties.forcel3_enabled().orElse(false)).isFalse(); assertThat(WidevineProperties.forcel3_enabled().orElse(false)).isFalse();
@@ -85,33 +87,22 @@ public class ForceSwSecureCryptoFallbackPreferenceControllerTest {
assertThat(WidevineProperties.forcel3_enabled().orElse(false)).isFalse(); assertThat(WidevineProperties.forcel3_enabled().orElse(false)).isFalse();
assertThat(mPreference.isEnabled()).isTrue(); assertThat(mPreference.isEnabled()).isTrue();
assertThat(mPreference.isChecked()).isFalse(); assertThat(mPreference.isChecked()).isFalse();
// Test flag rollback
mController.setChecked(true);
mController.updateState(mPreference);
assertThat(mPreference.isChecked()).isTrue();
assertThat(WidevineProperties.forcel3_enabled().orElse(false)).isTrue();
mSetFlagsRule.disableFlags(Flags.FLAG_FORCE_L3_ENABLED);
mController.updateState(mPreference);
assertThat(mPreference.isEnabled()).isFalse();
assertThat(mPreference.isChecked()).isFalse();
assertThat(WidevineProperties.forcel3_enabled().orElse(false)).isFalse();
} }
@Test @Test
@DisableFlags(Flags.FLAG_FORCE_L3_ENABLED)
public void updateState_flagDisabled_checkPreference() { public void updateState_flagDisabled_checkPreference() {
mSetFlagsRule.disableFlags(Flags.FLAG_FORCE_L3_ENABLED);
mController.updateState(mPreference); mController.updateState(mPreference);
assertThat(mPreference.isEnabled()).isFalse(); assertThat(mPreference.isEnabled()).isFalse();
} }
@Test @Test
@EnableFlags(Flags.FLAG_FORCE_L3_ENABLED)
public void updateState_checkWidevine() throws Exception { public void updateState_checkWidevine() throws Exception {
try (MediaDrm drm = new MediaDrm(WIDEVINE_UUID)) { try (MediaDrm drm = new MediaDrm(WIDEVINE_UUID)) {
assumeTrue(drm.getPropertyString("securityLevel").equals("L1")); assumeTrue(drm.getPropertyString("securityLevel").equals("L1"));
mSetFlagsRule.enableFlags(Flags.FLAG_FORCE_L3_ENABLED);
mController.updateState(mPreference); mController.updateState(mPreference);
assumeTrue(mPreference.isEnabled()); assertThat(mPreference.isEnabled()).isTrue();
} catch (UnsupportedSchemeException ex) { } catch (UnsupportedSchemeException ex) {
assumeNoException(ex); assumeNoException(ex);
} }
@@ -139,11 +130,11 @@ public class ForceSwSecureCryptoFallbackPreferenceControllerTest {
} }
@Test @Test
@EnableFlags(Flags.FLAG_FORCE_L3_ENABLED)
public void updateState_checkWhenWidevineReady() throws Exception { public void updateState_checkWhenWidevineReady() throws Exception {
try (MediaDrm drm = new MediaDrm(WIDEVINE_UUID)) { try (MediaDrm drm = new MediaDrm(WIDEVINE_UUID)) {
if (drm.getPropertyString("securityLevel").equals("L1")) { if (drm.getPropertyString("securityLevel").equals("L1")) {
String version = drm.getPropertyString(MediaDrm.PROPERTY_VERSION); String version = drm.getPropertyString(MediaDrm.PROPERTY_VERSION);
mSetFlagsRule.enableFlags(Flags.FLAG_FORCE_L3_ENABLED);
mController.updateState(mPreference); mController.updateState(mPreference);
if (Integer.parseInt(version.split("\\.", 2)[0]) >= 19) { if (Integer.parseInt(version.split("\\.", 2)[0]) >= 19) {
assertThat(mPreference.isEnabled()).isTrue(); assertThat(mPreference.isEnabled()).isTrue();