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

Commit f90cdd8f authored by Joanne Chung's avatar Joanne Chung Committed by Android (Google) Code Review
Browse files

Merge "Ported TextClassificationManagerPerfTest from Settings to DeviceConfig."

parents ca445c49 ff33c168
Loading
Loading
Loading
Loading
+39 −12
Original line number Diff line number Diff line
@@ -18,35 +18,60 @@ package android.view.textclassifier;
import android.content.Context;
import android.perftests.utils.BenchmarkState;
import android.perftests.utils.PerfStatusReporter;
import android.perftests.utils.SettingsHelper;
import android.provider.Settings;
import android.provider.DeviceConfig;

import androidx.test.InstrumentationRegistry;
import androidx.test.filters.LargeTest;

import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Rule;
import org.junit.Test;

@LargeTest
public class TextClassificationManagerPerfTest {
    private static final String WRITE_DEVICE_CONFIG_PERMISSION =
            "android.permission.WRITE_DEVICE_CONFIG";

    @Rule
    public PerfStatusReporter mPerfStatusReporter = new PerfStatusReporter();

    private String mOriginalSystemTextclassifierStatus;

    @BeforeClass
    public static void setUpClass() {
        InstrumentationRegistry.getInstrumentation().getUiAutomation()
                .adoptShellPermissionIdentity(
                        WRITE_DEVICE_CONFIG_PERMISSION);
    }

    @AfterClass
    public static void tearDownClass() {
        InstrumentationRegistry
                .getInstrumentation()
                .getUiAutomation()
                .dropShellPermissionIdentity();
    }

    @Before
    public void setUp() {
        // Saves config original value.
        mOriginalSystemTextclassifierStatus = DeviceConfig.getProperty(
                DeviceConfig.NAMESPACE_TEXTCLASSIFIER, "system_textclassifier_enabled");
    }

    @After
    public void tearDown() {
        SettingsHelper.delete(
                SettingsHelper.NAMESPACE_GLOBAL, Settings.Global.TEXT_CLASSIFIER_CONSTANTS);
        // Restores config original value.
        enableSystemTextclassifier(mOriginalSystemTextclassifierStatus);
    }

    @Test
    public void testGetTextClassifier_systemTextClassifierDisabled() {
        Context context = InstrumentationRegistry.getTargetContext();
        SettingsHelper.set(
                SettingsHelper.NAMESPACE_GLOBAL,
                Settings.Global.TEXT_CLASSIFIER_CONSTANTS,
                "system_textclassifier_enabled=false");
        enableSystemTextclassifier(String.valueOf(false));
        TextClassificationManager textClassificationManager =
                context.getSystemService(TextClassificationManager.class);
        BenchmarkState state = mPerfStatusReporter.getBenchmarkState();
@@ -59,10 +84,7 @@ public class TextClassificationManagerPerfTest {
    @Test
    public void testGetTextClassifier_systemTextClassifierEnabled() {
        Context context = InstrumentationRegistry.getTargetContext();
        SettingsHelper.set(
                SettingsHelper.NAMESPACE_GLOBAL,
                Settings.Global.TEXT_CLASSIFIER_CONSTANTS,
                "system_textclassifier_enabled=true");
        enableSystemTextclassifier(String.valueOf(true));
        TextClassificationManager textClassificationManager =
                context.getSystemService(TextClassificationManager.class);
        BenchmarkState state = mPerfStatusReporter.getBenchmarkState();
@@ -71,4 +93,9 @@ public class TextClassificationManagerPerfTest {
            textClassificationManager.invalidateForTesting();
        }
    }

    private void enableSystemTextclassifier(String enabled) {
        DeviceConfig.setProperty(DeviceConfig.NAMESPACE_TEXTCLASSIFIER,
                "system_textclassifier_enabled", enabled, /* makeDefault */ false);
    }
}