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

Commit d330727a authored by Garfield Tan's avatar Garfield Tan
Browse files

Disable "New Folder" context menu item in search.

Add unit tests to cover more cases in context menus.

Bug: 31996780
Change-Id: I73443e09e81f0c747dd057dbc72ea6441cdd447e
parent 5b0a2c18
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -175,9 +175,11 @@ public abstract class MenuManager {
    public void updateContextMenuForContainer(Menu menu) {
        MenuItem paste = menu.findItem(R.id.menu_paste_from_clipboard);
        MenuItem selectAll = menu.findItem(R.id.menu_select_all);
        MenuItem createDir = menu.findItem(R.id.menu_create_dir);

        paste.setEnabled(mDirDetails.hasItemsToPaste() && mDirDetails.canCreateDoc());
        updateSelectAll(selectAll);
        updateCreateDir(createDir);
    }

    /**
+6 −1
Original line number Diff line number Diff line
@@ -27,8 +27,8 @@ public class TestDirectoryDetails extends DirectoryDetails {
    public boolean isInRecents;
    public boolean hasRootSettings;
    public boolean hasItemsToPaste;
    public boolean canCreateDoc;
    public boolean canCreateDirectory;
    public boolean getDisplayFileSize;

    public TestDirectoryDetails() {
        super(null);
@@ -54,6 +54,11 @@ public class TestDirectoryDetails extends DirectoryDetails {
        return isInRecents;
    }

    @Override
    public boolean canCreateDoc() {
        return canCreateDoc;
    }

    @Override
    public boolean canCreateDirectory() {
        return canCreateDirectory;
+65 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.documentsui.files;

import static junit.framework.Assert.assertEquals;

import static org.junit.Assert.assertTrue;

import android.provider.DocumentsContract.Document;
@@ -62,6 +63,8 @@ public final class MenuManagerTest {
    private TestMenuItem pasteInto;
    private TestMenuItem advanced;
    private TestMenuItem eject;

    private TestActivity testActivity;
    private TestSelectionDetails selectionDetails;
    private TestDirectoryDetails dirDetails;
    private TestSearchViewManager testSearchManager;
@@ -239,8 +242,70 @@ public final class MenuManagerTest {
        mgr.updateContextMenuForContainer(testMenu);

        selectAll.assertVisible();
        selectAll.assertEnabled();
        paste.assertVisible();
        paste.assertDisabled();
        createDir.assertVisible();
        createDir.assertDisabled();
    }

    @Test
    public void testContextMenu_EmptyArea_NoItemToPaste() {
        dirDetails.hasItemsToPaste = false;
        dirDetails.canCreateDoc = true;

        mgr.updateContextMenuForContainer(testMenu);

        selectAll.assertVisible();
        selectAll.assertEnabled();
        paste.assertVisible();
        paste.assertDisabled();
        createDir.assertVisible();
        createDir.assertDisabled();
    }

    @Test
    public void testContextMenu_EmptyArea_CantCreateDoc() {
        dirDetails.hasItemsToPaste = true;
        dirDetails.canCreateDoc = false;

        mgr.updateContextMenuForContainer(testMenu);

        selectAll.assertVisible();
        selectAll.assertEnabled();
        paste.assertVisible();
        paste.assertDisabled();
        createDir.assertVisible();
        createDir.assertDisabled();
    }

    @Test
    public void testContextMenu_EmptyArea_CanPaste() {
        dirDetails.hasItemsToPaste = true;
        dirDetails.canCreateDoc = true;

        mgr.updateContextMenuForContainer(testMenu);

        selectAll.assertVisible();
        selectAll.assertEnabled();
        paste.assertVisible();
        paste.assertEnabled();
        createDir.assertVisible();
        createDir.assertDisabled();
    }

    @Test
    public void testContextMenu_EmptyArea_CanCreateDirectory() {
        dirDetails.canCreateDirectory = true;

        mgr.updateContextMenuForContainer(testMenu);

        selectAll.assertVisible();
        selectAll.assertEnabled();
        paste.assertVisible();
        paste.assertDisabled();
        createDir.assertVisible();
        createDir.assertEnabled();
    }

    @Test
+67 −0
Original line number Diff line number Diff line
@@ -182,10 +182,77 @@ public final class MenuManagerTest {

    @Test
    public void testContextMenu_EmptyArea() {
        dirDetails.hasItemsToPaste = false;
        dirDetails.canCreateDoc = false;
        dirDetails.canCreateDirectory = false;

        mgr.updateContextMenuForContainer(testMenu);

        selectAll.assertVisible();
        selectAll.assertEnabled();
        paste.assertVisible();
        paste.assertDisabled();
        createDir.assertVisible();
        createDir.assertDisabled();
    }

    @Test
    public void testContextMenu_EmptyArea_NoItemToPaste() {
        dirDetails.hasItemsToPaste = false;
        dirDetails.canCreateDoc = true;

        mgr.updateContextMenuForContainer(testMenu);

        selectAll.assertVisible();
        selectAll.assertEnabled();
        paste.assertVisible();
        paste.assertDisabled();
        createDir.assertVisible();
        createDir.assertDisabled();
    }

    @Test
    public void testContextMenu_EmptyArea_CantCreateDoc() {
        dirDetails.hasItemsToPaste = true;
        dirDetails.canCreateDoc = false;

        mgr.updateContextMenuForContainer(testMenu);

        selectAll.assertVisible();
        selectAll.assertEnabled();
        paste.assertVisible();
        paste.assertDisabled();
        createDir.assertVisible();
        createDir.assertDisabled();
    }

    @Test
    public void testContextMenu_EmptyArea_canPaste() {
        dirDetails.hasItemsToPaste = true;
        dirDetails.canCreateDoc = true;

        mgr.updateContextMenuForContainer(testMenu);

        selectAll.assertVisible();
        selectAll.assertEnabled();
        paste.assertVisible();
        paste.assertEnabled();
        createDir.assertVisible();
        createDir.assertDisabled();
    }

    @Test
    public void testContextMenu_EmptyArea_CanCreateDirectory() {
        dirDetails.canCreateDirectory = true;

        mgr.updateContextMenuForContainer(testMenu);

        selectAll.assertVisible();
        selectAll.assertEnabled();
        paste.assertVisible();
        paste.assertDisabled();
        createDir.assertVisible();
        createDir.assertEnabled();
    }

    @Test