Merge "Disable "New Folder" context menu item in search." into nyc-andromeda-dev
diff --git a/src/com/android/documentsui/MenuManager.java b/src/com/android/documentsui/MenuManager.java
index c6e9514..05e7f17 100644
--- a/src/com/android/documentsui/MenuManager.java
+++ b/src/com/android/documentsui/MenuManager.java
@@ -174,9 +174,11 @@
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);
}
/**
diff --git a/tests/common/com/android/documentsui/testing/TestDirectoryDetails.java b/tests/common/com/android/documentsui/testing/TestDirectoryDetails.java
index 81bbbef..82bd047 100644
--- a/tests/common/com/android/documentsui/testing/TestDirectoryDetails.java
+++ b/tests/common/com/android/documentsui/testing/TestDirectoryDetails.java
@@ -27,8 +27,8 @@
public boolean isInRecents;
public boolean hasRootSettings;
public boolean hasItemsToPaste;
+ public boolean canCreateDoc;
public boolean canCreateDirectory;
- public boolean getDisplayFileSize;
public TestDirectoryDetails() {
super(null);
@@ -55,6 +55,11 @@
}
@Override
+ public boolean canCreateDoc() {
+ return canCreateDoc;
+ }
+
+ @Override
public boolean canCreateDirectory() {
return canCreateDirectory;
}
diff --git a/tests/unit/com/android/documentsui/files/MenuManagerTest.java b/tests/unit/com/android/documentsui/files/MenuManagerTest.java
index fd1f6cf..5d1fb7d 100644
--- a/tests/unit/com/android/documentsui/files/MenuManagerTest.java
+++ b/tests/unit/com/android/documentsui/files/MenuManagerTest.java
@@ -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 @@
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 @@
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
diff --git a/tests/unit/com/android/documentsui/picker/MenuManagerTest.java b/tests/unit/com/android/documentsui/picker/MenuManagerTest.java
index bf9f5cf..f282bd7 100644
--- a/tests/unit/com/android/documentsui/picker/MenuManagerTest.java
+++ b/tests/unit/com/android/documentsui/picker/MenuManagerTest.java
@@ -182,10 +182,77 @@
@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