Index: ui/file_manager/file_manager/common/js/importer_common_unittest.js |
diff --git a/ui/file_manager/file_manager/common/js/importer_common_unittest.js b/ui/file_manager/file_manager/common/js/importer_common_unittest.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..27079a2bc2c353f0921c95ca37e582ba3168ed39 |
--- /dev/null |
+++ b/ui/file_manager/file_manager/common/js/importer_common_unittest.js |
@@ -0,0 +1,110 @@ |
+// Copyright 2014 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+/** @type {!MockVolumeManager} */ |
+var volumeManager; |
+ |
+/** @type {!VolumeInfo} */ |
+var cameraVolume; |
+ |
+/** @type {!VolumeInfo} */ |
+var sdVolume; |
+ |
+/** @type {!VolumeInfo} */ |
+var driveVolume; |
+ |
+/** @type {!MockFileEntry} */ |
+var cameraFileEntry; |
+ |
+/** @type {!MockFileEntry} */ |
+var sdFileEntry; |
+ |
+/** @type {!MockFileEntry} */ |
+var driveFileEntry; |
+ |
+// Set up the test components. |
+function setUp() { |
+ // Sadly, boilerplate setup necessary to include test support classes. |
+ loadTimeData.data = { |
+ DRIVE_DIRECTORY_LABEL: 'My Drive', |
+ DOWNLOADS_DIRECTORY_LABEL: 'Downloads' |
+ }; |
+ var cameraFileSystem = new MockFileSystem( |
+ 'camera-fs', 'filesystem:camera-123'); |
+ var sdFileSystem = new MockFileSystem( |
+ 'sd-fs', 'filesystem:sd-123'); |
+ cameraVolume = MockVolumeManager.createMockVolumeInfo( |
+ VolumeManagerCommon.VolumeType.MTP, |
+ 'camera-fs', |
+ 'Some Camera'); |
+ sdVolume = MockVolumeManager.createMockVolumeInfo( |
+ VolumeManagerCommon.VolumeType.REMOVABLE, |
+ 'sd-fs', |
+ 'Some SD Card'); |
+ volumeManager = new MockVolumeManager(); |
+ volumeManager.volumeInfoList.push(cameraVolume); |
+ volumeManager.volumeInfoList.push(sdVolume); |
+ driveVolume = volumeManager.getCurrentProfileVolumeInfo( |
+ VolumeManagerCommon.VolumeType.DRIVE); |
+ cameraFileEntry = createFileEntry(cameraVolume, '/DCIM/poodles.jpg'); |
+ sdFileEntry = createFileEntry(sdVolume, '/dcim/a-z/IMG1234.jpg'); |
+ driveFileEntry = createFileEntry(driveVolume, '/someotherfile.jpg'); |
+} |
+ |
+function testIsMediaEntry() { |
+ assertTrue(importer.isMediaEntry(cameraFileEntry)); |
+ assertFalse(importer.isMediaEntry(driveFileEntry)); |
+} |
+ |
+function testIsEligibleVolume() { |
+ assertTrue(importer.isEligibleVolume(cameraVolume)); |
+ assertTrue(importer.isEligibleVolume(sdVolume)); |
+ assertFalse(importer.isEligibleVolume(driveVolume)); |
+} |
+ |
+function testIsEligibleEntry() { |
+ assertTrue(importer.isEligibleEntry(volumeManager, cameraFileEntry)); |
+ assertTrue(importer.isEligibleEntry(volumeManager, sdFileEntry)); |
+ assertFalse(importer.isEligibleEntry(volumeManager, driveFileEntry)); |
+} |
+ |
+function testIsMediaDirectory() { |
+ ['/DCIM', '/DCIM/', '/dcim', '/dcim/' ].forEach( |
+ assertIsMediaDir); |
+ ['/blabbity/DCIM', '/blabbity/dcim', '/blabbity-blab'].forEach( |
+ assertIsNotMediaDir); |
+} |
+ |
+/** @param {string} path */ |
+function assertIsMediaDir(path) { |
+ var dir = createDirectoryEntry(sdVolume, path); |
+ assertTrue(importer.isMediaDirectory(dir, volumeManager)); |
+} |
+ |
+/** @param {string} path */ |
+function assertIsNotMediaDir(path) { |
+ var dir = createDirectoryEntry(sdVolume, path); |
+ assertFalse(importer.isMediaDirectory(dir, volumeManager)); |
+} |
+ |
+function createFileEntry(volume, path) { |
+ var entry = new MockFileEntry( |
+ volume.fileSystem, |
+ path, { |
+ size: 1234, |
+ modificationTime: new Date().toString() |
+ }); |
+ // Ensure the file entry has a volumeID...necessary for lookups |
+ // via the VolumeManager. |
+ entry.volumeId = volume.volumeId; |
+ return entry; |
+} |
+ |
+function createDirectoryEntry(volume, path) { |
+ var entry = new MockDirectoryEntry(volume.fileSystem, path); |
+ // Ensure the file entry has a volumeID...necessary for lookups |
+ // via the VolumeManager. |
+ entry.volumeId = volume.volumeId; |
+ return entry; |
+} |