summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/com/android/documentsui/MenuManager.java2
-rw-r--r--tests/common/com/android/documentsui/testing/TestDirectoryDetails.java7
-rw-r--r--tests/unit/com/android/documentsui/files/MenuManagerTest.java65
-rw-r--r--tests/unit/com/android/documentsui/picker/MenuManagerTest.java67
4 files changed, 140 insertions, 1 deletions
diff --git a/src/com/android/documentsui/MenuManager.java b/src/com/android/documentsui/MenuManager.java
index c6e95142f..05e7f1703 100644
--- a/src/com/android/documentsui/MenuManager.java
+++ b/src/com/android/documentsui/MenuManager.java
@@ -174,9 +174,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);
}
/**
diff --git a/tests/common/com/android/documentsui/testing/TestDirectoryDetails.java b/tests/common/com/android/documentsui/testing/TestDirectoryDetails.java
index 81bbbefc5..82bd047d7 100644
--- a/tests/common/com/android/documentsui/testing/TestDirectoryDetails.java
+++ b/tests/common/com/android/documentsui/testing/TestDirectoryDetails.java
@@ -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);
@@ -55,6 +55,11 @@ public class TestDirectoryDetails extends DirectoryDetails {
}
@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 fd1f6cf05..5d1fb7de2 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 @@ 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
diff --git a/tests/unit/com/android/documentsui/picker/MenuManagerTest.java b/tests/unit/com/android/documentsui/picker/MenuManagerTest.java
index bf9f5cf0f..f282bd76e 100644
--- a/tests/unit/com/android/documentsui/picker/MenuManagerTest.java
+++ b/tests/unit/com/android/documentsui/picker/MenuManagerTest.java
@@ -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