Index: chrome/test/data/file_manager/unit_tests/importer_common_unittest.js |
diff --git a/chrome/test/data/file_manager/unit_tests/importer_common_unittest.js b/chrome/test/data/file_manager/unit_tests/importer_common_unittest.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..601df68fd12595e94edb6d5b66c4531064f6c81a |
--- /dev/null |
+++ b/chrome/test/data/file_manager/unit_tests/importer_common_unittest.js |
@@ -0,0 +1,111 @@ |
+// 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} */ |
mtomasz
2014/12/11 01:51:52
Some variables are !Foobar, and some !Foobar|undef
Steve McKay
2014/12/11 02:12:57
Nuked |undefined which was unnecessary. Plus we do
|
+var driveVolume; |
+ |
+/** @type {!MockFileEntry|undefined} */ |
+var cameraFileEntry; |
+ |
+/** @type {!MockFileEntry|undefined} */ |
+var sdFileEntry; |
+ |
+/** @type {!MockFileEntry|undefined} */ |
+var driveFileEntry; |
+ |
+/** @type {!MockDirectoryEntry|undefined} */ |
+var mediaDirectory; |
+ |
+/** @type {!MockDirectoryEntry|undefined} */ |
+var nonMediaDirectory; |
+ |
+// 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'); |
+ |
+ mediaDirectory = createDirectoryEntry(sdVolume, '/DCIM'); |
+ nonMediaDirectory = createDirectoryEntry(driveVolume, '/blabbity'); |
+} |
+ |
+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, '/DCIM'); |
+ // Ensure the file entry has a volumeID...necessary for lookups |
+ // via the VolumeManager. |
+ entry.volumeId = volume.volumeId; |
+ return entry; |
+} |
+ |
+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() { |
+ assertTrue(importer.isMediaDirectory(mediaDirectory, volumeManager)); |
mtomasz
2014/12/11 01:51:52
Can we add more edge cases: Eg. /DCIM vs. /DCIM/,
Steve McKay
2014/12/11 02:12:57
Done.
|
+ assertFalse(importer.isMediaDirectory(nonMediaDirectory, volumeManager)); |
+} |