| Index: ui/file_manager/file_manager/foreground/js/import_controller_unittest.js
|
| diff --git a/ui/file_manager/file_manager/foreground/js/import_controller_unittest.js b/ui/file_manager/file_manager/foreground/js/import_controller_unittest.js
|
| index 2fbf059317dd31265886be2ef25881524270d762..6a41ea4b4cb3c80133bece09485c01ee09effb57 100644
|
| --- a/ui/file_manager/file_manager/foreground/js/import_controller_unittest.js
|
| +++ b/ui/file_manager/file_manager/foreground/js/import_controller_unittest.js
|
| @@ -20,8 +20,8 @@ var sourceVolume;
|
| /** @type {!VolumeInfo} */
|
| var destinationVolume;
|
|
|
| -/** @type {!TestCallRecorder} */
|
| -var commandUpdateRecorder;
|
| +/** @type {!importer.TestCommandWidget} */
|
| +var widget;
|
|
|
| // Set up string assets.
|
| loadTimeData.data = {
|
| @@ -39,7 +39,7 @@ function setUp() {
|
| recordEnum: function() {}
|
| };
|
|
|
| - commandUpdateRecorder = new TestCallRecorder();
|
| + widget = new importer.TestCommandWidget();
|
|
|
| volumeManager = new MockVolumeManager();
|
| MockVolumeManager.installMockSingleton(volumeManager);
|
| @@ -113,7 +113,7 @@ function testGetCommandUpdate_InitiatesScan() {
|
| mediaScanner.assertScanCount(1);
|
| }
|
|
|
| -function testDirectoryChange_InitiatesUpdate() {
|
| +function testDirectoryChange_PushesUpdate() {
|
| var controller = createController(
|
| VolumeManagerCommon.VolumeType.MTP,
|
| 'mtp-volume',
|
| @@ -121,15 +121,11 @@ function testDirectoryChange_InitiatesUpdate() {
|
| '/DCIM/',
|
| '/DCIM/photos0/',
|
| '/DCIM/photos0/IMG00001.jpg',
|
| - '/DCIM/photos0/IMG00002.jpg',
|
| - '/DCIM/photos1/',
|
| - '/DCIM/photos1/IMG00001.jpg',
|
| - '/DCIM/photos1/IMG00003.jpg'
|
| ],
|
| '/DCIM');
|
|
|
| environment.directoryChangedListener_();
|
| - commandUpdateRecorder.assertCallCount(1);
|
| + widget.updates.assertCallCount(1);
|
| }
|
|
|
| function testUnmountInvalidatesScans() {
|
| @@ -157,6 +153,23 @@ function testUnmountInvalidatesScans() {
|
| mediaScanner.assertScanCount(2);
|
| }
|
|
|
| +function testVolumeUnmount_PushesUpdate() {
|
| + var controller = createController(
|
| + VolumeManagerCommon.VolumeType.MTP,
|
| + 'mtp-volume',
|
| + [
|
| + '/DCIM/',
|
| + '/DCIM/photos0/',
|
| + '/DCIM/photos0/IMG00001.jpg',
|
| + ],
|
| + '/DCIM');
|
| +
|
| + // Faux unmount the volume, then request an update again.
|
| + // A fresh new scan should be started.
|
| + environment.simulateUnmount();
|
| + widget.updates.assertCallCount(1);
|
| +}
|
| +
|
| function testGetCommandUpdate_CanExecuteAfterScanIsFinalized() {
|
| var controller = createController(
|
| VolumeManagerCommon.VolumeType.MTP,
|
| @@ -183,6 +196,26 @@ function testGetCommandUpdate_CanExecuteAfterScanIsFinalized() {
|
| assertTrue(response.executable);
|
| }
|
|
|
| +function testFinalizeScans_PushesUpdate() {
|
| + var controller = createController(
|
| + VolumeManagerCommon.VolumeType.MTP,
|
| + 'mtp-volume',
|
| + [
|
| + '/DCIM/',
|
| + '/DCIM/photos0/',
|
| + '/DCIM/photos0/IMG00001.jpg',
|
| + ],
|
| + '/DCIM');
|
| +
|
| + var fileSystem = new MockFileSystem('testFs');
|
| + mediaScanner.fileEntries.push(
|
| + new MockFileEntry(fileSystem, '/DCIM/photos0/IMG00001.jpg', {size: 0}));
|
| + controller.getCommandUpdate();
|
| + mediaScanner.finalizeScans();
|
| +
|
| + widget.updates.assertCallCount(1);
|
| +}
|
| +
|
| function testGetCommandUpdate_CannotExecuteEmptyScanResult() {
|
| var controller = createController(
|
| VolumeManagerCommon.VolumeType.MTP,
|
| @@ -206,7 +239,7 @@ function testGetCommandUpdate_CannotExecuteEmptyScanResult() {
|
| assertFalse(response.executable);
|
| }
|
|
|
| -function testExecute_StartsImport() {
|
| +function testClick_StartsImport() {
|
| var controller = createController(
|
| VolumeManagerCommon.VolumeType.MTP,
|
| 'mtp-volume',
|
| @@ -215,16 +248,12 @@ function testExecute_StartsImport() {
|
| '/DCIM/photos0/',
|
| '/DCIM/photos0/IMG00001.jpg',
|
| '/DCIM/photos0/IMG00002.jpg',
|
| - '/DCIM/photos1/',
|
| - '/DCIM/photos1/IMG00001.jpg',
|
| - '/DCIM/photos1/IMG00003.jpg'
|
| ],
|
| '/DCIM');
|
|
|
| - controller.getCommandUpdate();
|
| - mediaScanner.finalizeScans();
|
| - controller.getCommandUpdate();
|
| - controller.execute();
|
| + // First we need to force the controller into a scanning state.
|
| + environment.directoryChangedListener_();
|
| + widget.executeListener();
|
| mediaImporter.assertImportsStarted(1);
|
| }
|
|
|
| @@ -373,6 +402,32 @@ TestControllerEnvironment.prototype.whenCurrentDirectoryIsSet = function() {
|
| };
|
|
|
| /**
|
| + * Test implementation of importer.CommandWidget.
|
| + *
|
| + * @constructor
|
| + * @implements {importer.CommandWidget}
|
| + * @struct
|
| + */
|
| +importer.TestCommandWidget = function() {
|
| +
|
| + /** @public {function()} */
|
| + this.executeListener;
|
| +
|
| + /** @public {!TestCallRecorder} */
|
| + this.updates = new TestCallRecorder();
|
| +};
|
| +
|
| +/** @override */
|
| +importer.TestCommandWidget.prototype.addExecuteListener = function(listener) {
|
| + this.executeListener = listener;
|
| +};
|
| +
|
| +/** @override */
|
| +importer.TestCommandWidget.prototype.update = function(update) {
|
| + this.updates.callback(update);
|
| +};
|
| +
|
| +/**
|
| * @param {!VolumeManagerCommon.VolumeType} volumeType
|
| * @param {string} volumeId
|
| * @param {!Array.<string>} fileNames
|
| @@ -393,7 +448,7 @@ function createController(volumeType, volumeId, fileNames, currentDirectory) {
|
| environment,
|
| mediaScanner,
|
| mediaImporter,
|
| - commandUpdateRecorder.callback);
|
| + widget);
|
| }
|
|
|
| /**
|
|
|