Index: test/filterStorage_readwrite.js |
=================================================================== |
--- a/test/filterStorage_readwrite.js |
+++ b/test/filterStorage_readwrite.js |
@@ -86,26 +86,27 @@ |
return -1; |
else if (a.key > b.key) |
return 1; |
return 0; |
}); |
return sections; |
} |
-function testReadWrite(test, withExternal, withEmptySpecial) |
+async function testReadWrite(test, withExternal, withEmptySpecial) |
{ |
test.ok(!filterStorage.initialized, "Uninitialized before the first load"); |
- return testData.then(data => |
+ try |
{ |
+ let data = await testData; |
+ |
IO._setFileContents(filterStorage.sourceFile, data); |
- return filterStorage.loadFromDisk(); |
- }).then(() => |
- { |
+ await filterStorage.loadFromDisk(); |
+ |
test.ok(filterStorage.initialized, "Initialize after the first load"); |
test.equal(filterStorage.fileProperties.version, filterStorage.formatVersion, "File format version"); |
if (withExternal) |
{ |
{ |
let subscription = new ExternalSubscription("~external~external subscription ID", "External subscription"); |
subscription.addFilter(Filter.fromText("foo")); |
@@ -129,22 +130,29 @@ |
filterStorage.removeFilter(Filter.fromText("!foo"), specialSubscription); |
test.equal(specialSubscription.filterCount, 0, |
"No filters in special subscription"); |
test.ok(new Set(filterStorage.subscriptions()).has(specialSubscription), |
"Empty special subscription still in storage"); |
} |
- return filterStorage.saveToDisk(); |
- }).then(() => testData).then(expected => |
+ await filterStorage.saveToDisk(); |
+ |
+ let expected = await testData; |
+ |
+ test.deepEqual(canonize(IO._getFileContents(filterStorage.sourceFile)), |
+ canonize(expected), "Read/write result"); |
+ } |
+ catch (error) |
{ |
- test.deepEqual(canonize(IO._getFileContents(filterStorage.sourceFile)), |
- canonize(expected), "Read/write result"); |
- }).catch(unexpectedError.bind(test)).then(() => test.done()); |
+ unexpectedError.call(test, error); |
+ } |
+ |
+ test.done(); |
} |
exports.testReadAndSaveToFile = function(test) |
{ |
testReadWrite(test, false); |
}; |
exports.testReadAndSaveToFileWithExternalSubscription = function(test) |
@@ -152,122 +160,143 @@ |
testReadWrite(test, true); |
}; |
exports.testReadAndSaveToFileWithEmptySpecial = function(test) |
{ |
testReadWrite(test, false, true); |
}; |
-exports.testImportExport = function(test) |
+exports.testImportExport = async function(test) |
{ |
- testData.then(lines => |
+ try |
{ |
+ let lines = await testData; |
+ |
if (lines.length && lines[lines.length - 1] == "") |
lines.pop(); |
let importer = filterStorage.importData(); |
for (let line of lines) |
importer(line); |
importer(null); |
test.equal(filterStorage.fileProperties.version, filterStorage.formatVersion, "File format version"); |
let exported = Array.from(filterStorage.exportData()); |
test.deepEqual(canonize(exported), canonize(lines), "Import/export result"); |
- }).catch(unexpectedError.bind(test)).then(() => test.done()); |
+ } |
+ catch (error) |
+ { |
+ unexpectedError.call(test, error); |
+ } |
+ |
+ test.done(); |
}; |
-exports.testSavingWithoutBackups = function(test) |
+exports.testSavingWithoutBackups = async function(test) |
{ |
Prefs.patternsbackups = 0; |
Prefs.patternsbackupinterval = 24; |
- filterStorage.saveToDisk().then(() => |
+ try |
{ |
- return filterStorage.saveToDisk(); |
- }).then(() => |
- { |
+ await filterStorage.saveToDisk(); |
+ await filterStorage.saveToDisk(); |
+ |
test.ok(!IO._getFileContents(filterStorage.getBackupName(1)), |
"Backup shouldn't be created"); |
- }).catch(unexpectedError.bind(test)).then(() => test.done()); |
+ } |
+ catch (error) |
+ { |
+ unexpectedError.call(test, error); |
+ } |
+ |
+ test.done(); |
}; |
-exports.testSavingWithBackups = function(test) |
+exports.testSavingWithBackups = async function(test) |
{ |
Prefs.patternsbackups = 2; |
Prefs.patternsbackupinterval = 24; |
let backupFile = filterStorage.getBackupName(1); |
let backupFile2 = filterStorage.getBackupName(2); |
let backupFile3 = filterStorage.getBackupName(3); |
let oldModifiedTime; |
- filterStorage.saveToDisk().then(() => |
+ try |
{ |
+ await filterStorage.saveToDisk(); |
+ |
// Save again immediately |
- return filterStorage.saveToDisk(); |
- }).then(() => |
- { |
+ await filterStorage.saveToDisk(); |
+ |
test.ok(IO._getFileContents(backupFile), "First backup created"); |
oldModifiedTime = IO._getModifiedTime(backupFile) - 10000; |
IO._setModifiedTime(backupFile, oldModifiedTime); |
- return filterStorage.saveToDisk(); |
- }).then(() => |
- { |
+ await filterStorage.saveToDisk(); |
+ |
test.equal(IO._getModifiedTime(backupFile), oldModifiedTime, "Backup not overwritten if it is only 10 seconds old"); |
oldModifiedTime -= 40 * 60 * 60 * 1000; |
IO._setModifiedTime(backupFile, oldModifiedTime); |
- return filterStorage.saveToDisk(); |
- }).then(() => |
- { |
+ await filterStorage.saveToDisk(); |
+ |
test.notEqual(IO._getModifiedTime(backupFile), oldModifiedTime, "Backup overwritten if it is 40 hours old"); |
test.ok(IO._getFileContents(backupFile2), "Second backup created when first backup is overwritten"); |
IO._setModifiedTime(backupFile, IO._getModifiedTime(backupFile) - 20000); |
oldModifiedTime = IO._getModifiedTime(backupFile2); |
- return filterStorage.saveToDisk(); |
- }).then(() => |
- { |
+ await filterStorage.saveToDisk(); |
+ |
test.equal(IO._getModifiedTime(backupFile2), oldModifiedTime, "Second backup not overwritten if first one is only 20 seconds old"); |
IO._setModifiedTime(backupFile, IO._getModifiedTime(backupFile) - 25 * 60 * 60 * 1000); |
oldModifiedTime = IO._getModifiedTime(backupFile2); |
- return filterStorage.saveToDisk(); |
- }).then(() => |
- { |
+ await filterStorage.saveToDisk(); |
+ |
test.notEqual(IO._getModifiedTime(backupFile2), oldModifiedTime, "Second backup overwritten if first one is 25 hours old"); |
test.ok(!IO._getFileContents(backupFile3), "Third backup not created with patternsbackups = 2"); |
- }).catch(unexpectedError.bind(test)).then(() => test.done()); |
+ } |
+ catch (error) |
+ { |
+ unexpectedError.call(test, error); |
+ } |
+ |
+ test.done(); |
}; |
-exports.testRestoringBackup = function(test) |
+exports.testRestoringBackup = async function(test) |
{ |
Prefs.patternsbackups = 2; |
Prefs.patternsbackupinterval = 24; |
- filterStorage.saveToDisk().then(() => |
+ try |
{ |
+ await filterStorage.saveToDisk(); |
+ |
test.equal([...filterStorage.subscriptions()][0].filterCount, 1, "Initial filter count"); |
filterStorage.addFilter(Filter.fromText("barfoo")); |
test.equal([...filterStorage.subscriptions()][0].filterCount, 2, "Filter count after adding a filter"); |
- return filterStorage.saveToDisk(); |
- }).then(() => |
- { |
- return filterStorage.loadFromDisk(); |
- }).then(() => |
- { |
+ await filterStorage.saveToDisk(); |
+ |
+ await filterStorage.loadFromDisk(); |
+ |
test.equal([...filterStorage.subscriptions()][0].filterCount, 2, "Filter count after adding filter and reloading"); |
- return filterStorage.restoreBackup(1); |
- }).then(() => |
- { |
+ await filterStorage.restoreBackup(1); |
+ |
test.equal([...filterStorage.subscriptions()][0].filterCount, 1, "Filter count after restoring backup"); |
- return filterStorage.loadFromDisk(); |
- }).then(() => |
+ await filterStorage.loadFromDisk(); |
+ |
+ test.equal([...filterStorage.subscriptions()][0].filterCount, 1, "Filter count after reloading"); |
+ } |
+ catch (error) |
{ |
- test.equal([...filterStorage.subscriptions()][0].filterCount, 1, "Filter count after reloading"); |
- }).catch(unexpectedError.bind(test)).then(() => test.done()); |
+ unexpectedError.call(test, error); |
+ } |
+ |
+ test.done(); |
}; |