| Index: ui/file_manager/file_manager/background/js/import_history_unittest.js
|
| diff --git a/ui/file_manager/file_manager/background/js/import_history_unittest.js b/ui/file_manager/file_manager/background/js/import_history_unittest.js
|
| index f7e9b59435cc9f3fc6d0a8801a10e2c106ce3fef..a97a37c9d8df4dba4b370049c627a6583a26caf3 100644
|
| --- a/ui/file_manager/file_manager/background/js/import_history_unittest.js
|
| +++ b/ui/file_manager/file_manager/background/js/import_history_unittest.js
|
| @@ -35,7 +35,7 @@ var testLogger;
|
| /** @type {!importer.RecordStorage|undefined} */
|
| var storage;
|
|
|
| -/** @type {!Promise.<!importer.PersistentImportHistory>|undefined} */
|
| +/** @type {!Promise<!importer.PersistentImportHistory>|undefined} */
|
| var historyProvider;
|
|
|
| /** @type {Promise} */
|
| @@ -235,14 +235,15 @@ function testHistoryObserver_Unsubscribe(callback) {
|
| }
|
|
|
| function testRecordStorage_RemembersPreviouslyWrittenRecords(callback) {
|
| - testPromise = createRealStorage('recordStorageTest.data')
|
| + var recorder = new TestCallRecorder();
|
| + testPromise = createRealStorage(['recordStorageTest.data'])
|
| .then(
|
| function(storage) {
|
| return storage.write(['abc', '123']).then(
|
| function() {
|
| - return storage.readAll().then(
|
| - function(records) {
|
| - assertEquals(1, records.length);
|
| + return storage.readAll(recorder.callback).then(
|
| + function() {
|
| + recorder.assertCallCount(1);
|
| });
|
| });
|
| });
|
| @@ -250,17 +251,66 @@ function testRecordStorage_RemembersPreviouslyWrittenRecords(callback) {
|
| reportPromise(testPromise, callback);
|
| }
|
|
|
| +function testRecordStorage_LoadsRecordsFromMultipleHistoryFiles(callback) {
|
| + var recorder = new TestCallRecorder();
|
| +
|
| + var remoteData = createRealStorage(['multiStorage-1.data'])
|
| + .then(
|
| + function(storage) {
|
| + return storage.write(['remote-data', '98765432']);
|
| + });
|
| + var moreRemoteData = createRealStorage(['multiStorage-2.data'])
|
| + .then(
|
| + function(storage) {
|
| + return storage.write(['antarctica-data', '777777777777']);
|
| + });
|
| +
|
| + testPromise = Promise.all([remoteData, moreRemoteData]).then(
|
| + function() {
|
| + return createRealStorage([
|
| + 'multiStorage-0.data',
|
| + 'multiStorage-1.data',
|
| + 'multiStorage-2.data'])
|
| + .then(
|
| + function(storage) {
|
| + var writePromises = [
|
| + storage.write(['local-data', '111'])
|
| + ];
|
| + return Promise.all(writePromises)
|
| + .then(
|
| + function() {
|
| + return storage.readAll(recorder.callback).then(
|
| + function() {
|
| + recorder.assertCallCount(3);
|
| + assertEquals(
|
| + 'local-data',
|
| + recorder.getArguments(0)[0][0]);
|
| + assertEquals(
|
| + 'remote-data',
|
| + recorder.getArguments(1)[0][0]);
|
| + assertEquals(
|
| + 'antarctica-data',
|
| + recorder.getArguments(2)[0][0]);
|
| + });
|
| + });
|
| + });
|
| + });
|
| +
|
| + reportPromise(testPromise, callback);
|
| +}
|
| +
|
| function testRecordStorage_SerializingOperations(callback) {
|
| - testPromise = createRealStorage('recordStorageTestForSerializing.data')
|
| + var recorder = new TestCallRecorder();
|
| + testPromise = createRealStorage(['recordStorageTestForSerializing.data'])
|
| .then(
|
| function(storage) {
|
| var writePromises = [];
|
| var WRITES_COUNT = 20;
|
| for (var i = 0; i < WRITES_COUNT; i++)
|
| writePromises.push(storage.write(['abc', '123']));
|
| - var readAllPromise = storage.readAll().then(
|
| - function(records) {
|
| - assertEquals(WRITES_COUNT, records.length);
|
| + var readAllPromise = storage.readAll(recorder.callback).then(
|
| + function() {
|
| + recorder.assertCallCount(WRITES_COUNT);
|
| });
|
| // Write an extra record, which must be executed afte reading is
|
| // completed.
|
| @@ -282,9 +332,6 @@ function setupChromeApis() {
|
| addListener: function() {}
|
| };
|
| chrome.syncFileSystem = {};
|
| - chrome.syncFileSystem.onFileStatusChanged = {
|
| - addListener: function() {}
|
| - };
|
| }
|
|
|
| /**
|
| @@ -298,14 +345,15 @@ function installTestLogger() {
|
| }
|
|
|
| /**
|
| - * @param {string} fileName
|
| - * @return {!Promise.<!FileEntry>}
|
| + * @param {!Array<string>} fileNames
|
| + * @return {!Promise<!importer.RecordStorage>}
|
| */
|
| -function createRealStorage(fileName) {
|
| - return createFileEntry(fileName)
|
| +function createRealStorage(fileNames) {
|
| + var filePromises = fileNames.map(createFileEntry);
|
| + return Promise.all(filePromises)
|
| .then(
|
| - function(fileEntry) {
|
| - return new importer.FileEntryRecordStorage(fileEntry);
|
| + function(fileEntries) {
|
| + return new importer.FileBasedRecordStorage(fileEntries);
|
| });
|
| }
|
|
|
| @@ -313,7 +361,7 @@ function createRealStorage(fileName) {
|
| * Creates a *real* FileEntry in the DOM filesystem.
|
| *
|
| * @param {string} fileName
|
| - * @return {!Promise.<FileEntry>}
|
| + * @return {!Promise<!FileEntry>}
|
| */
|
| function createFileEntry(fileName) {
|
| return new Promise(
|
| @@ -349,7 +397,7 @@ var TestRecordStorage = function() {
|
| var timeStamp = importer.toSecondsFromEpoch(
|
| FILE_LAST_MODIFIED);
|
| // Pre-populate the store with some "previously written" data <wink>.
|
| - /** @private {!Array.<!Array.<string>>} */
|
| + /** @private {!Array<!Array<string>>} */
|
| this.records_ = [
|
| [1,
|
| timeStamp + '_' + FILE_SIZE, GOOGLE_DRIVE],
|
| @@ -365,7 +413,8 @@ var TestRecordStorage = function() {
|
| * @override
|
| * @this {TestRecordStorage}
|
| */
|
| - this.readAll = function() {
|
| + this.readAll = function(recordCallback) {
|
| + this.records_.forEach(recordCallback);
|
| return Promise.resolve(this.records_);
|
| };
|
|
|
|
|