Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8b965335 authored by Makoto Onuki's avatar Makoto Onuki Committed by Gerrit Code Review
Browse files

Merge "Use RavenwoodRule for system properties" into main

parents a6e560ca 18878918
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -23,10 +23,11 @@ import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;

import android.platform.test.ravenwood.RavenwoodConfig;
import android.platform.test.ravenwood.RavenwoodRule;

import androidx.test.filters.SmallTest;

import org.junit.Rule;
import org.junit.Test;

import java.util.Objects;
@@ -39,8 +40,8 @@ public class SystemPropertiesTest {
    private static final String PERSIST_KEY = "persist.sys.testkey";
    private static final String NONEXIST_KEY = "doesnotexist_2341431";

    @RavenwoodConfig.Config
    public static final RavenwoodConfig mRavenwood = new RavenwoodConfig.Builder()
    @Rule
    public final RavenwoodRule mRavenwood = new RavenwoodRule.Builder()
            .setSystemPropertyMutable(KEY, null)
            .setSystemPropertyMutable(UNSET_KEY, null)
            .setSystemPropertyMutable(PERSIST_KEY, null)
+16 −18
Original line number Diff line number Diff line
@@ -142,34 +142,32 @@ public final class RavenwoodConfig {
        }

        /**
         * Configure the given system property as immutable for the duration of the test.
         * Read access to the key is allowed, and write access will fail. When {@code value} is
         * {@code null}, the value is left as undefined.
         *
         * All properties in the {@code debug.*} namespace are automatically mutable, with no
         * developer action required.
         *
         * Has no effect on non-Ravenwood environments.
         * @deprecated Use {@link RavenwoodRule.Builder#setSystemPropertyImmutable(String, Object)}
         */
        @Deprecated
        public Builder setSystemPropertyImmutable(@NonNull String key,
                @Nullable Object value) {
            mConfig.mSystemProperties.setValue(key, value);
            mConfig.mSystemProperties.setAccessReadOnly(key);
            return this;
        }

        /**
         * Configure the given system property as mutable for the duration of the test.
         * Both read and write access to the key is allowed, and its value will be reset between
         * each test. When {@code value} is {@code null}, the value is left as undefined.
         *
         * All properties in the {@code debug.*} namespace are automatically mutable, with no
         * developer action required.
         *
         * Has no effect on non-Ravenwood environments.
         * @deprecated Use {@link RavenwoodRule.Builder#setSystemPropertyMutable(String, Object)}
         */
        @Deprecated
        public Builder setSystemPropertyMutable(@NonNull String key,
                @Nullable Object value) {
            return this;
        }

        Builder setSystemPropertyImmutableReal(@NonNull String key,
                @Nullable Object value) {
            mConfig.mSystemProperties.setValue(key, value);
            mConfig.mSystemProperties.setAccessReadOnly(key);
            return this;
        }

        Builder setSystemPropertyMutableReal(@NonNull String key,
                @Nullable Object value) {
            mConfig.mSystemProperties.setValue(key, value);
            mConfig.mSystemProperties.setAccessReadWrite(key);
            return this;
+2 −2
Original line number Diff line number Diff line
@@ -152,7 +152,7 @@ public final class RavenwoodRule implements TestRule {
         * Has no effect on non-Ravenwood environments.
         */
        public Builder setSystemPropertyImmutable(@NonNull String key, @Nullable Object value) {
            mBuilder.setSystemPropertyImmutable(key, value);
            mBuilder.setSystemPropertyImmutableReal(key, value);
            return this;
        }

@@ -167,7 +167,7 @@ public final class RavenwoodRule implements TestRule {
         * Has no effect on non-Ravenwood environments.
         */
        public Builder setSystemPropertyMutable(@NonNull String key, @Nullable Object value) {
            mBuilder.setSystemPropertyMutable(key, value);
            mBuilder.setSystemPropertyMutableReal(key, value);
            return this;
        }