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

Commit afa36931 authored by Fan Zhang's avatar Fan Zhang
Browse files

Update settingslib tests to work with tot Robolectric

Bug: 116278591
Test: make RunSettingsLibRoboTests -j40
Change-Id: I3c3e59767c58b57449faa6e13acda356785bb644
parent 43f887ae
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -254,7 +254,8 @@ public class ApplicationsState {
                                user.isAdmin() ? mAdminRetrieveFlags : mRetrieveFlags,
                                user.id);
                mApplications.addAll(list.getList());
            } catch (RemoteException e) {
            } catch (Exception e) {
                Log.e(TAG, "Error during doResumeIfNeededLocked", e);
            }
        }

+1 −25
Original line number Diff line number Diff line
@@ -16,18 +16,11 @@

package com.android.settingslib.license;

import static com.android.settingslib.license.LicenseHtmlLoaderCompat.generateHtmlFile;
import static com.android.settingslib.license.LicenseHtmlLoaderCompat.getCachedHtmlFile;
import static com.android.settingslib.license.LicenseHtmlLoaderCompat.getVaildXmlFiles;
import static com.android.settingslib.license.LicenseHtmlLoaderCompat.isCachedHtmlFileOutdated;

import android.content.Context;
import android.util.Log;

import com.android.settingslib.utils.AsyncLoader;

import java.io.File;
import java.util.List;

/**
 * LicenseHtmlLoader is a loader which loads a license html file from default license xml files.
@@ -44,27 +37,10 @@ public class LicenseHtmlLoader extends AsyncLoader<File> {

    @Override
    public File loadInBackground() {
        return generateHtmlFromDefaultXmlFiles();
        return new LicenseHtmlLoaderCompat(mContext).loadInBackground();
    }

    @Override
    protected void onDiscardResult(File f) {
    }

    private File generateHtmlFromDefaultXmlFiles() {
        final List<File> xmlFiles = getVaildXmlFiles();
        if (xmlFiles.isEmpty()) {
            Log.e(TAG, "No notice file exists.");
            return null;
        }

        File cachedHtmlFile = getCachedHtmlFile(mContext);
        if (!isCachedHtmlFileOutdated(xmlFiles, cachedHtmlFile)
                || generateHtmlFile(mContext, xmlFiles, cachedHtmlFile)) {
            return cachedHtmlFile;
        }

        return null;
    }

}
+4 −4
Original line number Diff line number Diff line
@@ -73,7 +73,7 @@ public class LicenseHtmlLoaderCompat extends AsyncLoaderCompat<File> {
        return null;
    }

    static List<File> getVaildXmlFiles() {
    private List<File> getVaildXmlFiles() {
        final List<File> xmlFiles = new ArrayList();
        for (final String xmlPath : DEFAULT_LICENSE_XML_PATHS) {
            File file = new File(xmlPath);
@@ -84,11 +84,11 @@ public class LicenseHtmlLoaderCompat extends AsyncLoaderCompat<File> {
        return xmlFiles;
    }

    static File getCachedHtmlFile(Context context) {
    private File getCachedHtmlFile(Context context) {
        return new File(context.getCacheDir(), NOTICE_HTML_FILE_NAME);
    }

    static boolean isCachedHtmlFileOutdated(List<File> xmlFiles, File cachedHtmlFile) {
    private boolean isCachedHtmlFileOutdated(List<File> xmlFiles, File cachedHtmlFile) {
        boolean outdated = true;
        if (cachedHtmlFile.exists() && cachedHtmlFile.length() != 0) {
            outdated = false;
@@ -102,7 +102,7 @@ public class LicenseHtmlLoaderCompat extends AsyncLoaderCompat<File> {
        return outdated;
    }

    static boolean generateHtmlFile(Context context, List<File> xmlFiles, File htmlFile) {
    private boolean generateHtmlFile(Context context, List<File> xmlFiles, File htmlFile) {
        return LicenseHtmlGeneratorFromXml.generateHtml(xmlFiles, htmlFile,
                context.getString(R.string.notice_header));
    }
+11 −10
Original line number Diff line number Diff line
@@ -86,21 +86,21 @@ public class ApplicationsStateRoboTest {
    @Mock
    private StorageStatsManager mStorageStatsManager;

    @Implements(value = IconDrawableFactory.class, inheritImplementationMethods = true)
    @Implements(value = IconDrawableFactory.class)
    public static class ShadowIconDrawableFactory {

        @Implementation
        public Drawable getBadgedIcon(ApplicationInfo appInfo) {
        protected Drawable getBadgedIcon(ApplicationInfo appInfo) {
            return new ColorDrawable(0);
        }
    }

    @Implements(value = ApplicationPackageManager.class, inheritImplementationMethods = true)
    @Implements(value = ApplicationPackageManager.class)
    public static class ShadowPackageManager extends
            org.robolectric.shadows.ShadowApplicationPackageManager {

        @Implementation
        public ComponentName getHomeActivities(List<ResolveInfo> outActivities) {
        protected ComponentName getHomeActivities(List<ResolveInfo> outActivities) {
            ResolveInfo resolveInfo = new ResolveInfo();
            resolveInfo.activityInfo = new ActivityInfo();
            resolveInfo.activityInfo.packageName = HOME_PACKAGE_NAME;
@@ -139,6 +139,7 @@ public class ApplicationsStateRoboTest {
        when(mStorageStatsManager.queryStatsForPackage(ArgumentMatchers.any(UUID.class),
                anyString(), ArgumentMatchers.any(UserHandle.class))).thenReturn(storageStats);

        ApplicationsState.sInstance = null;
        mApplicationsState = ApplicationsState.getInstance(RuntimeEnvironment.application);
        mApplicationsState.clearEntries();
    }
+8 −9
Original line number Diff line number Diff line
@@ -18,11 +18,14 @@ package com.android.settingslib.development;

import static com.google.common.truth.Truth.assertThat;

import android.os.UserManager;
import android.content.Context;
import android.provider.Settings;

import com.android.settingslib.SettingsLibRobolectricTestRunner;
import com.android.settingslib.testutils.shadow.ShadowUserManager;

import org.robolectric.shadows.ShadowUserManager;
import org.robolectric.shadow.api.Shadow;

import org.junit.After;
import org.junit.Before;
@@ -32,20 +35,16 @@ import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;

@RunWith(SettingsLibRobolectricTestRunner.class)
@Config(shadows = ShadowUserManager.class)
public class DevelopmentSettingsEnablerTest {

    private Context mContext;
    private ShadowUserManager mUserManager;

    @Before
    public void setUp() {
        mContext = RuntimeEnvironment.application;
        ShadowUserManager.getShadow().setIsAdminUser(true);
    }

    @After
    public void tearDown() {
        ShadowUserManager.getShadow().reset();
        mUserManager = Shadow.extract(mContext.getSystemService(UserManager.class));
        mUserManager.setIsAdminUser(true);
    }

    @Test
@@ -76,7 +75,7 @@ public class DevelopmentSettingsEnablerTest {
    public void isEnabled_settingsOn_noRestriction_notAdmin_shouldReturnFalse() {
        Settings.Global.putInt(mContext.getContentResolver(),
                Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 1);
        ShadowUserManager.getShadow().setIsAdminUser(false);
        mUserManager.setIsAdminUser(false);

        assertThat(DevelopmentSettingsEnabler.isDevelopmentSettingsEnabled(mContext)).isFalse();
    }
Loading