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

Commit e1c055e5 authored by Zhi Dou's avatar Zhi Dou Committed by Automerger Merge Worker
Browse files

Merge changes from topic "fakefeatureflagsimpl" into main am: de521a1b

parents 96371255 de521a1b
Loading
Loading
Loading
Loading
+20 −1
Original line number Diff line number Diff line
@@ -101,7 +101,7 @@ java_aconfig_library {
android_test {
    name: "aconfig.test.java",
    srcs: [
        "tests/**/*.java",
        "tests/AconfigTest.java",
    ],
    manifest: "tests/AndroidManifest.xml",
    certificate: "platform",
@@ -113,6 +113,25 @@ android_test {
    test_suites: ["device-tests"],
}

java_aconfig_library {
    name: "aconfig_host_test_java_library",
    aconfig_declarations: "aconfig.test.flags",
    host_supported: true,
    test: true,
}

java_test_host {
    name: "AconfigJavaHostTest",
    srcs: [
        "tests/AconfigHostTest.java",
    ],
    static_libs: [
        "aconfig_host_test_java_library",
        "junit",
    ],
    test_suites: ["general-tests"],
}

// integration tests: C++

cc_aconfig_library {
+24 −4
Original line number Diff line number Diff line
@@ -116,14 +116,14 @@ mod tests {
    use super::*;
    use std::collections::HashMap;

    const EXPECTED_FEATUREFLAGS_CONTENT: &str = r#"
    const EXPECTED_FEATUREFLAGS_COMMON_CONTENT: &str = r#"
    package com.android.aconfig.test;
    public interface FeatureFlags {
        boolean disabledRo();
        boolean disabledRw();
        boolean enabledRo();
        boolean enabledRw();
    }"#;
    "#;

    const EXPECTED_FLAG_COMMON_CONTENT: &str = r#"
    package com.android.aconfig.test;
@@ -179,6 +179,9 @@ mod tests {
            CodegenMode::Production,
        )
        .unwrap();
        let expect_featureflags_content = EXPECTED_FEATUREFLAGS_COMMON_CONTENT.to_string()
            + r#"
        }"#;
        let expect_flags_content = EXPECTED_FLAG_COMMON_CONTENT.to_string()
            + r#"
            private static FeatureFlags FEATURE_FLAGS = new FeatureFlagsImpl();
@@ -224,7 +227,7 @@ mod tests {
        let mut file_set = HashMap::from([
            ("com/android/aconfig/test/Flags.java", expect_flags_content.as_str()),
            ("com/android/aconfig/test/FeatureFlagsImpl.java", expect_featureflagsimpl_content),
            ("com/android/aconfig/test/FeatureFlags.java", EXPECTED_FEATUREFLAGS_CONTENT),
            ("com/android/aconfig/test/FeatureFlags.java", expect_featureflags_content.as_str()),
            (
                "com/android/aconfig/test/FakeFeatureFlagsImpl.java",
                expect_fakefeatureflagsimpl_content.as_str(),
@@ -258,6 +261,11 @@ mod tests {
            CodegenMode::Test,
        )
        .unwrap();
        let expect_featureflags_content = EXPECTED_FEATUREFLAGS_COMMON_CONTENT.to_string()
            + r#"
            public void setFlag(String flagName, boolean value);
            public void resetAll();
        }"#;
        let expect_flags_content = EXPECTED_FLAG_COMMON_CONTENT.to_string()
            + r#"
            public static void setFeatureFlags(FeatureFlags featureFlags) {
@@ -275,6 +283,16 @@ mod tests {
            .to_owned()
            + EXPECTED_METHOD_NOT_IMPL_COMMON_CONTENT
            + r#"
            @Override
            public void setFlag(String flagName, boolean value) {
                throw new UnsupportedOperationException(
                    "Method is not implemented.");
            }
            @Override
            public void resetAll() {
                throw new UnsupportedOperationException(
                    "Method is not implemented.");
            }
        }
        "#;
        let expect_fakefeatureflagsimpl_content = r#"
@@ -300,12 +318,14 @@ mod tests {
            public boolean enabledRw() {
                return getFlag(Flags.FLAG_ENABLED_RW);
            }
            @Override
            public void setFlag(String flagName, boolean value) {
                if (!this.mFlagMap.containsKey(flagName)) {
                    throw new IllegalArgumentException("no such flag" + flagName);
                }
                this.mFlagMap.put(flagName, value);
            }
            @Override
            public void resetAll() {
                for (Map.Entry entry : mFlagMap.entrySet()) {
                    entry.setValue(null);
@@ -334,7 +354,7 @@ mod tests {

        let mut file_set = HashMap::from([
            ("com/android/aconfig/test/Flags.java", expect_flags_content.as_str()),
            ("com/android/aconfig/test/FeatureFlags.java", EXPECTED_FEATUREFLAGS_CONTENT),
            ("com/android/aconfig/test/FeatureFlags.java", expect_featureflags_content.as_str()),
            (
                "com/android/aconfig/test/FeatureFlagsImpl.java",
                expect_featureflagsimpl_content.as_str(),
+2 −0
Original line number Diff line number Diff line
@@ -13,6 +13,7 @@ public class FakeFeatureFlagsImpl implements FeatureFlags \{
        return getFlag(Flags.FLAG_{item.flag_name_constant_suffix});
    }
{{ endfor}}
    @Override
    public void setFlag(String flagName, boolean value) \{
        if (!this.mFlagMap.containsKey(flagName)) \{
            throw new IllegalArgumentException("no such flag" + flagName);
@@ -20,6 +21,7 @@ public class FakeFeatureFlagsImpl implements FeatureFlags \{
        this.mFlagMap.put(flagName, value);
    }

    @Override
    public void resetAll() \{
        for (Map.Entry entry : mFlagMap.entrySet()) \{
            entry.setValue(null);
+6 −0
Original line number Diff line number Diff line
@@ -4,4 +4,10 @@ public interface FeatureFlags \{
{{ for item in class_elements}}
    boolean {item.method_name}();
{{ endfor }}

{{ -if is_test_mode }}
    public void setFlag(String flagName, boolean value);

    public void resetAll();
{{ -endif }}
}
+11 −0
Original line number Diff line number Diff line
@@ -29,5 +29,16 @@ public final class FeatureFlagsImpl implements FeatureFlags \{
            "Method is not implemented.");
    }
{{ endfor- }}
    @Override
    public void setFlag(String flagName, boolean value) \{
        throw new UnsupportedOperationException(
            "Method is not implemented.");
    }

    @Override
    public void resetAll() \{
        throw new UnsupportedOperationException(
            "Method is not implemented.");
    }
}
{{ endif }}
Loading