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

Commit 21fff1d6 authored by Zhen Zhang's avatar Zhen Zhang Committed by Android (Google) Code Review
Browse files

Merge "Add tests for min-heap sorting in Share-sheet"

parents f52d4437 aa458b17
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -284,7 +284,7 @@ public class ChooserActivityTest {
        waitForIdle();
        UsageStatsManager usm = activity.getUsageStatsManager();
        verify(sOverrides.resolverListController, times(1))
                .sort(Mockito.any(List.class));
                .topK(Mockito.any(List.class), Mockito.anyInt());
        assertThat(activity.getIsSelected(), is(false));
        sOverrides.onSafelyStartCallback = targetInfo -> {
            return true;
+29 −2
Original line number Diff line number Diff line
@@ -41,6 +41,8 @@ import android.util.ArrayMap;

import androidx.test.runner.AndroidJUnit4;

import com.android.internal.app.ResolverActivity.ResolvedComponentInfo;

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -112,13 +114,30 @@ public class ResolverListControllerTest {
        when(mMockContext.getSystemService(Context.USAGE_STATS_SERVICE)).thenReturn(mUsm);
        mController = new ResolverListController(mMockContext, mMockPackageManager, sendIntent,
                refererPackage, UserHandle.USER_CURRENT);
        mController.sort(new ArrayList<ResolverActivity.ResolvedComponentInfo>());
        mController.sort(new ArrayList<ResolvedComponentInfo>());
        long beforeReport = getCount(mUsm, packageName, action, annotation);
        mController.updateChooserCounts(packageName, UserHandle.USER_CURRENT, action);
        long afterReport = getCount(mUsm, packageName, action, annotation);
        assertThat(afterReport, is(beforeReport + 1l));
    }

    @Test
    public void topKEqualsToSort() {
        String annotation = "test_annotation";
        Intent sendIntent = createSendImageIntent(annotation);
        String refererPackage = "test_referer_package";
        List<ResolvedComponentInfo> resolvedComponents = createResolvedComponentsForTest(15);
        mUsm = new UsageStatsManager(mMockContext, mMockService);
        when(mMockContext.getSystemService(Context.USAGE_STATS_SERVICE)).thenReturn(mUsm);
        mController = new ResolverListController(mMockContext, mMockPackageManager, sendIntent,
                refererPackage, UserHandle.USER_CURRENT);
        List<ResolvedComponentInfo> topKList = new ArrayList<>(resolvedComponents);
        mController.topK(topKList, 5);
        List<ResolvedComponentInfo> sortList = new ArrayList<>(topKList);
        mController.sort(sortList);
        assertThat(sortList.subList(0, 5), is(topKList.subList(0, 5)));
    }

    private UsageStats initStats(String packageName, String action,
                                 String annotation, int count) {
        ArrayMap<String, ArrayMap<String, Integer>> chooserCounts = new ArrayMap<>();
@@ -156,4 +175,12 @@ public class ResolverListControllerTest {
        }
        return packageStats.mChooserCounts.get(action).getOrDefault(annotation, 0);
    }

    private List<ResolvedComponentInfo> createResolvedComponentsForTest(int numberOfResults) {
        List<ResolvedComponentInfo> infoList = new ArrayList<>(numberOfResults);
        for (int i = 0; i < numberOfResults; i++) {
            infoList.add(ResolverDataProvider.createResolvedComponentInfo(i));
        }
        return infoList;
    }
}