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

Commit 2c1c37ae authored by arangelov's avatar arangelov
Browse files

Fix tests for infrastructure for sharesheet work tab (part 1)

Test: atest com.android.internal.app.ResolverActivityTest
Test: atest com.android.internal.app.ChooserActivityTest
Test: atest com.android.internal.app.ResolverListControllerTest
Bug: 142537267
Bug: 142538125
Change-Id: I851dab8b23774a1b2c992f41a47356a4c2c4ca59
parent 38a6fce5
Loading
Loading
Loading
Loading
+8 −8
Original line number Original line Diff line number Diff line
@@ -313,7 +313,7 @@ public class ChooserActivityTest {
        assertThat(activity.isFinishing(), is(false));
        assertThat(activity.isFinishing(), is(false));


        onView(withId(R.id.empty)).check(matches(isDisplayed()));
        onView(withId(R.id.empty)).check(matches(isDisplayed()));
        onView(withId(R.id.resolver_list)).check(matches(not(isDisplayed())));
        onView(withId(R.id.profile_pager)).check(matches(not(isDisplayed())));
        InstrumentationRegistry.getInstrumentation().runOnMainSync(
        InstrumentationRegistry.getInstrumentation().runOnMainSync(
                () -> activity.getAdapter().handlePackagesChanged()
                () -> activity.getAdapter().handlePackagesChanged()
        );
        );
@@ -674,12 +674,12 @@ public class ChooserActivityTest {


        mActivityRule.launchActivity(Intent.createChooser(sendIntent, null));
        mActivityRule.launchActivity(Intent.createChooser(sendIntent, null));
        waitForIdle();
        waitForIdle();
        // Second invocation is from onCreate
        verify(mockLogger, Mockito.times(2)).write(logMakerCaptor.capture());
        verify(mockLogger, Mockito.times(2)).write(logMakerCaptor.capture());
        // First invocation is from onCreate
        assertThat(logMakerCaptor.getAllValues().get(0).getSubtype(),
        assertThat(logMakerCaptor.getAllValues().get(1).getCategory(),
                is(MetricsEvent.ACTION_SHARE_WITH_PREVIEW));
        assertThat(logMakerCaptor.getAllValues().get(1).getSubtype(),
                is(CONTENT_PREVIEW_TEXT));
                is(CONTENT_PREVIEW_TEXT));
        assertThat(logMakerCaptor.getAllValues().get(0).getCategory(),
                is(MetricsEvent.ACTION_SHARE_WITH_PREVIEW));
    }
    }


    @Test
    @Test
@@ -706,10 +706,10 @@ public class ChooserActivityTest {
        waitForIdle();
        waitForIdle();
        verify(mockLogger, Mockito.times(2)).write(logMakerCaptor.capture());
        verify(mockLogger, Mockito.times(2)).write(logMakerCaptor.capture());
        // First invocation is from onCreate
        // First invocation is from onCreate
        assertThat(logMakerCaptor.getAllValues().get(1).getCategory(),
        assertThat(logMakerCaptor.getAllValues().get(0).getSubtype(),
                is(MetricsEvent.ACTION_SHARE_WITH_PREVIEW));
        assertThat(logMakerCaptor.getAllValues().get(1).getSubtype(),
                is(CONTENT_PREVIEW_IMAGE));
                is(CONTENT_PREVIEW_IMAGE));
        assertThat(logMakerCaptor.getAllValues().get(0).getCategory(),
                is(MetricsEvent.ACTION_SHARE_WITH_PREVIEW));
    }
    }


    @Test
    @Test
+3 −2
Original line number Original line Diff line number Diff line
@@ -29,6 +29,7 @@ import android.content.res.Resources;
import android.database.Cursor;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.Bitmap;
import android.net.Uri;
import android.net.Uri;
import android.os.UserHandle;
import android.util.Size;
import android.util.Size;


import com.android.internal.app.ResolverListAdapter.ResolveInfoPresentationGetter;
import com.android.internal.app.ResolverListAdapter.ResolveInfoPresentationGetter;
@@ -47,7 +48,7 @@ public class ChooserWrapperActivity extends ChooserActivity {
    private UsageStatsManager mUsm;
    private UsageStatsManager mUsm;


    ChooserListAdapter getAdapter() {
    ChooserListAdapter getAdapter() {
        return (ChooserListAdapter) mAdapter;
        return mChooserMultiProfilePagerAdapter.getCurrentListAdapter();
    }
    }


    boolean getIsSelected() { return mIsSuccessfullySelected; }
    boolean getIsSelected() { return mIsSuccessfullySelected; }
@@ -77,7 +78,7 @@ public class ChooserWrapperActivity extends ChooserActivity {
    }
    }


    @Override
    @Override
    protected ResolverListController createListController() {
    protected ResolverListController createListController(UserHandle userHandle) {
        return sOverrides.resolverListController;
        return sOverrides.resolverListController;
    }
    }


+12 −9
Original line number Original line Diff line number Diff line
@@ -116,14 +116,14 @@ public class ResolverActivityTest {
        waitForIdle();
        waitForIdle();


        final ResolverWrapperActivity activity = mActivityRule.launchActivity(sendIntent);
        final ResolverWrapperActivity activity = mActivityRule.launchActivity(sendIntent);
        final View resolverList = activity.findViewById(R.id.resolver_list);
        final View viewPager = activity.findViewById(R.id.profile_pager);
        final int initialResolverHeight = resolverList.getHeight();
        final int initialResolverHeight = viewPager.getHeight();


        activity.runOnUiThread(() -> {
        activity.runOnUiThread(() -> {
            ResolverDrawerLayout layout = (ResolverDrawerLayout)
            ResolverDrawerLayout layout = (ResolverDrawerLayout)
                    activity.findViewById(
                    activity.findViewById(
                            R.id.contentPanel);
                            R.id.contentPanel);
            ((ResolverDrawerLayout.LayoutParams) resolverList.getLayoutParams()).maxHeight
            ((ResolverDrawerLayout.LayoutParams) viewPager.getLayoutParams()).maxHeight
                = initialResolverHeight - 1;
                = initialResolverHeight - 1;
            // Force a relayout
            // Force a relayout
            layout.invalidate();
            layout.invalidate();
@@ -131,13 +131,13 @@ public class ResolverActivityTest {
        });
        });
        waitForIdle();
        waitForIdle();
        assertThat("Drawer should be capped at maxHeight",
        assertThat("Drawer should be capped at maxHeight",
            resolverList.getHeight() == (initialResolverHeight - 1));
                viewPager.getHeight() == (initialResolverHeight - 1));


        activity.runOnUiThread(() -> {
        activity.runOnUiThread(() -> {
            ResolverDrawerLayout layout = (ResolverDrawerLayout)
            ResolverDrawerLayout layout = (ResolverDrawerLayout)
                    activity.findViewById(
                    activity.findViewById(
                            R.id.contentPanel);
                            R.id.contentPanel);
            ((ResolverDrawerLayout.LayoutParams) resolverList.getLayoutParams()).maxHeight
            ((ResolverDrawerLayout.LayoutParams) viewPager.getLayoutParams()).maxHeight
                = initialResolverHeight + 1;
                = initialResolverHeight + 1;
            // Force a relayout
            // Force a relayout
            layout.invalidate();
            layout.invalidate();
@@ -145,7 +145,7 @@ public class ResolverActivityTest {
        });
        });
        waitForIdle();
        waitForIdle();
        assertThat("Drawer should not change height if its height is less than maxHeight",
        assertThat("Drawer should not change height if its height is less than maxHeight",
            resolverList.getHeight() == initialResolverHeight);
                viewPager.getHeight() == initialResolverHeight);
    }
    }


    @Ignore // Failing - b/144929805
    @Ignore // Failing - b/144929805
@@ -160,11 +160,13 @@ public class ResolverActivityTest {
        waitForIdle();
        waitForIdle();


        final ResolverWrapperActivity activity = mActivityRule.launchActivity(sendIntent);
        final ResolverWrapperActivity activity = mActivityRule.launchActivity(sendIntent);
        final View resolverList = activity.findViewById(R.id.resolver_list);
        final View viewPager = activity.findViewById(R.id.profile_pager);
        final View divider = activity.findViewById(R.id.divider);
        final RelativeLayout profileView =
        final RelativeLayout profileView =
            (RelativeLayout) activity.findViewById(R.id.profile_button).getParent();
            (RelativeLayout) activity.findViewById(R.id.profile_button).getParent();
        assertThat("Drawer should show at bottom by default",
        assertThat("Drawer should show at bottom by default",
                profileView.getBottom() == resolverList.getTop() && profileView.getTop() > 0);
                profileView.getBottom() + divider.getHeight() == viewPager.getTop()
                        && profileView.getTop() > 0);


        activity.runOnUiThread(() -> {
        activity.runOnUiThread(() -> {
            ResolverDrawerLayout layout = (ResolverDrawerLayout)
            ResolverDrawerLayout layout = (ResolverDrawerLayout)
@@ -174,7 +176,8 @@ public class ResolverActivityTest {
        });
        });
        waitForIdle();
        waitForIdle();
        assertThat("Drawer should show at top with new attribute",
        assertThat("Drawer should show at top with new attribute",
            profileView.getBottom() == resolverList.getTop() && profileView.getTop() == 0);
            profileView.getBottom() + divider.getHeight() == viewPager.getTop()
                    && profileView.getTop() == 0);
    }
    }


    @Test
    @Test
+2 −2
Original line number Original line Diff line number Diff line
@@ -115,7 +115,7 @@ public class ResolverListControllerTest {
        mUsm = new UsageStatsManager(mMockContext, mMockService);
        mUsm = new UsageStatsManager(mMockContext, mMockService);
        when(mMockContext.getSystemService(Context.USAGE_STATS_SERVICE)).thenReturn(mUsm);
        when(mMockContext.getSystemService(Context.USAGE_STATS_SERVICE)).thenReturn(mUsm);
        mController = new ResolverListController(mMockContext, mMockPackageManager, sendIntent,
        mController = new ResolverListController(mMockContext, mMockPackageManager, sendIntent,
                refererPackage, UserHandle.USER_CURRENT);
                refererPackage, UserHandle.USER_CURRENT, /* userHandle */ UserHandle.SYSTEM);
        mController.sort(new ArrayList<ResolvedComponentInfo>());
        mController.sort(new ArrayList<ResolvedComponentInfo>());
        long beforeReport = getCount(mUsm, packageName, action, annotation);
        long beforeReport = getCount(mUsm, packageName, action, annotation);
        mController.updateChooserCounts(packageName, UserHandle.USER_CURRENT, action);
        mController.updateChooserCounts(packageName, UserHandle.USER_CURRENT, action);
@@ -132,7 +132,7 @@ public class ResolverListControllerTest {
        mUsm = new UsageStatsManager(mMockContext, mMockService);
        mUsm = new UsageStatsManager(mMockContext, mMockService);
        when(mMockContext.getSystemService(Context.USAGE_STATS_SERVICE)).thenReturn(mUsm);
        when(mMockContext.getSystemService(Context.USAGE_STATS_SERVICE)).thenReturn(mUsm);
        mController = new ResolverListController(mMockContext, mMockPackageManager, sendIntent,
        mController = new ResolverListController(mMockContext, mMockPackageManager, sendIntent,
                refererPackage, UserHandle.USER_CURRENT);
                refererPackage, UserHandle.USER_CURRENT, /* userHandle */ UserHandle.SYSTEM);
        List<ResolvedComponentInfo> topKList = new ArrayList<>(resolvedComponents);
        List<ResolvedComponentInfo> topKList = new ArrayList<>(resolvedComponents);
        mController.topK(topKList, 5);
        mController.topK(topKList, 5);
        List<ResolvedComponentInfo> sortList = new ArrayList<>(topKList);
        List<ResolvedComponentInfo> sortList = new ArrayList<>(topKList);
+7 −6
Original line number Original line Diff line number Diff line
@@ -23,6 +23,7 @@ import android.content.Context;
import android.content.Intent;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.content.pm.ResolveInfo;
import android.os.UserHandle;


import com.android.internal.app.chooser.TargetInfo;
import com.android.internal.app.chooser.TargetInfo;


@@ -37,15 +38,15 @@ public class ResolverWrapperActivity extends ResolverActivity {
    private UsageStatsManager mUsm;
    private UsageStatsManager mUsm;


    @Override
    @Override
    public ResolverListAdapter createAdapter(Context context, List<Intent> payloadIntents,
    public ResolverListAdapter createResolverListAdapter(Context context,
            Intent[] initialIntents, List<ResolveInfo> rList, boolean filterLastUsed,
            List<Intent> payloadIntents, Intent[] initialIntents, List<ResolveInfo> rList,
            boolean useLayoutForBrowsables) {
            boolean filterLastUsed, boolean useLayoutForBrowsables, UserHandle userHandle) {
        return new ResolverWrapperAdapter(context, payloadIntents, initialIntents, rList,
        return new ResolverWrapperAdapter(context, payloadIntents, initialIntents, rList,
                filterLastUsed, createListController(), useLayoutForBrowsables, this);
                filterLastUsed, createListController(userHandle), useLayoutForBrowsables, this);
    }
    }


    ResolverWrapperAdapter getAdapter() {
    ResolverWrapperAdapter getAdapter() {
        return (ResolverWrapperAdapter) mAdapter;
        return (ResolverWrapperAdapter) mMultiProfilePagerAdapter.getCurrentListAdapter();
    }
    }


    @Override
    @Override
@@ -66,7 +67,7 @@ public class ResolverWrapperActivity extends ResolverActivity {
    }
    }


    @Override
    @Override
    protected ResolverListController createListController() {
    protected ResolverListController createListController(UserHandle userHandle) {
        return sOverrides.resolverListController;
        return sOverrides.resolverListController;
    }
    }