Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(361)

Unified Diff: ui/file_manager/file_manager/background/js/import_history_unittest.js

Issue 1013893002: Update ImportHistory with support for reading history from multiple files. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Respond to review comments. Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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_);
};

Powered by Google App Engine
This is Rietveld 408576698