Index: ui/file_manager/file_manager/foreground/js/ui/directory_tree_unittest.js |
diff --git a/ui/file_manager/file_manager/foreground/js/ui/directory_tree_unittest.js b/ui/file_manager/file_manager/foreground/js/ui/directory_tree_unittest.js |
index 024c9db221e27bb2dc41ebb1a34e28fa80ed37a3..097e7cacc55003b95c1b4dc64d191674da012f4f 100644 |
--- a/ui/file_manager/file_manager/foreground/js/ui/directory_tree_unittest.js |
+++ b/ui/file_manager/file_manager/foreground/js/ui/directory_tree_unittest.js |
@@ -3,6 +3,7 @@ |
// found in the LICENSE file. |
var chrome; |
+var mockCommandLinePrivate; |
/** |
* Set string data. |
@@ -12,6 +13,7 @@ loadTimeData.data = { |
DOWNLOADS_DIRECTORY_LABEL: 'Downloads', |
DRIVE_DIRECTORY_LABEL: 'Google Drive', |
DRIVE_MY_DRIVE_LABEL: 'My Drive', |
+ DRIVE_TEAM_DRIVES_LABEL: 'Team Drives', |
DRIVE_OFFLINE_COLLECTION_LABEL: 'Offline', |
DRIVE_SHARED_WITH_ME_COLLECTION_LABEL: 'Shared with me', |
DRIVE_RECENT_COLLECTION_LABEL: 'Recent', |
@@ -27,6 +29,7 @@ function setUp() { |
} |
} |
}; |
+ mockCommandLinePrivate = new MockCommandLinePrivate(); |
window.webkitResolveLocalFileSystemURLEntries = {}; |
window.webkitResolveLocalFileSystemURL = function(url, callback) { |
@@ -110,6 +113,80 @@ function testCreateDirectoryTree(callback) { |
} |
/** |
+ * Test case for creating tree with Team Drives. |
+ * This test expect that the following tree is built. |
+ * |
+ * Google Drive |
+ * - My Drive |
+ * - Team Drives |
+ * - Shared with me |
+ * - Recent |
+ * - Offline |
+ * Downloads |
+ * |
+ * @param {!function(boolean)} callback A callback function which is called with |
+ * test result. |
+ */ |
+function testCreateDirectoryTreeWithTeamDrive(callback) { |
+ mockCommandLinePrivate.addSwitch('team-drives'); |
+ |
+ // Create elements. |
+ var parentElement = document.createElement('div'); |
+ var directoryTree = document.createElement('div'); |
+ directoryTree.metadataModel = { |
+ notifyEntriesChanged: function() {}, |
+ get: function(entries, labels) { |
+ // Mock a non-shared directory |
+ return Promise.resolve([{shared: false}]); |
+ } |
+ }; |
+ parentElement.appendChild(directoryTree); |
+ |
+ // Create mocks. |
+ var directoryModel = new MockDirectoryModel(); |
+ var volumeManager = new MockVolumeManagerWrapper(); |
+ var fileOperationManager = {addEventListener: function(name, callback) {}}; |
+ |
+ // Set entry which is returned by |
+ // window.webkitResolveLocalFileSystemURLResults. |
+ var driveFileSystem = volumeManager.volumeInfoList.item(0).fileSystem; |
+ window.webkitResolveLocalFileSystemURLEntries['filesystem:drive/root'] = |
+ new MockDirectoryEntry(driveFileSystem, '/root'); |
+ window |
+ .webkitResolveLocalFileSystemURLEntries['filesystem:drive/team_drives'] = |
+ new MockDirectoryEntry(driveFileSystem, '/team_drives'); |
+ |
+ DirectoryTree.decorate( |
+ directoryTree, directoryModel, volumeManager, null, fileOperationManager, |
+ true); |
+ directoryTree.dataModel = new MockNavigationListModel(volumeManager); |
+ directoryTree.redraw(true); |
+ |
+ // At top level, Drive and downloads should be listed. |
+ assertEquals(2, directoryTree.items.length); |
+ assertEquals(str('DRIVE_DIRECTORY_LABEL'), directoryTree.items[0].label); |
+ assertEquals(str('DOWNLOADS_DIRECTORY_LABEL'), directoryTree.items[1].label); |
+ |
+ var driveItem = directoryTree.items[0]; |
+ |
+ reportPromise(waitUntil(function() { |
+ // Under the drive item, there exist 5 entries. |
+ return driveItem.items.length == 5; |
+ }).then(function() { |
+ // There exist 1 my drive entry and 3 fake entries under the drive item. |
+ assertEquals(str('DRIVE_MY_DRIVE_LABEL'), driveItem.items[0].label); |
+ assertEquals(str('DRIVE_TEAM_DRIVES_LABEL'), driveItem.items[1].label); |
+ assertEquals(str('DRIVE_SHARED_WITH_ME_COLLECTION_LABEL'), |
+ driveItem.items[2].label); |
+ assertEquals(str('DRIVE_RECENT_COLLECTION_LABEL'), |
+ driveItem.items[3].label); |
+ assertEquals(str('DRIVE_OFFLINE_COLLECTION_LABEL'), |
+ driveItem.items[4].label); |
+ }), |
+ callback); |
+} |
+ |
+/** |
* Test case for updateSubElementsFromList. |
* |
* Mounts/unmounts removable and archive volumes, and checks these volumes come |