Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Unified Diff: test/filterStorage_readwrite.js

Issue 30025555: Issue 6820 - Move tests to mocha (Closed) Base URL: https://hg.adblockplus.org/adblockpluscore/
Patch Set: Rebased Created April 10, 2019, 6:33 p.m.
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « test/filterStorage.js ('k') | test/matcher.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: test/filterStorage_readwrite.js
===================================================================
--- a/test/filterStorage_readwrite.js
+++ b/test/filterStorage_readwrite.js
@@ -12,291 +12,290 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>.
*/
"use strict";
+const assert = require("assert");
const {createSandbox, unexpectedError} = require("./_common");
let Filter = null;
let filterStorage = null;
let IO = null;
let Prefs = null;
let ExternalSubscription = null;
let SpecialSubscription = null;
-exports.setUp = function(callback)
+describe("Filter Storage Read/Write", () =>
{
- let sandboxedRequire = createSandbox();
- (
- {Filter} = sandboxedRequire("../lib/filterClasses"),
- {filterStorage} = sandboxedRequire("../lib/filterStorage"),
- {IO} = sandboxedRequire("./stub-modules/io"),
- {Prefs} = sandboxedRequire("./stub-modules/prefs"),
- {ExternalSubscription, SpecialSubscription} = sandboxedRequire("../lib/subscriptionClasses")
- );
+ beforeEach(() =>
+ {
+ let sandboxedRequire = createSandbox();
+ (
+ {Filter} = sandboxedRequire("../lib/filterClasses"),
+ {filterStorage} = sandboxedRequire("../lib/filterStorage"),
+ {IO} = sandboxedRequire("./stub-modules/io"),
+ {Prefs} = sandboxedRequire("./stub-modules/prefs"),
+ {ExternalSubscription, SpecialSubscription} = sandboxedRequire("../lib/subscriptionClasses")
+ );
- filterStorage.addFilter(Filter.fromText("foobar"));
- callback();
-};
+ filterStorage.addFilter(Filter.fromText("foobar"));
+ });
-let testData = new Promise((resolve, reject) =>
-{
- const fs = require("fs");
- const path = require("path");
- let datapath = path.resolve(__dirname, "data", "patterns.ini");
+ let testData = new Promise((resolve, reject) =>
+ {
+ const fs = require("fs");
+ const path = require("path");
+ let datapath = path.resolve(__dirname, "data", "patterns.ini");
- fs.readFile(datapath, "utf-8", (error, data) =>
- {
- if (error)
- reject(error);
- else
- resolve(data.split(/[\r\n]+/));
+ fs.readFile(datapath, "utf-8", (error, data) =>
+ {
+ if (error)
+ reject(error);
+ else
+ resolve(data.split(/[\r\n]+/));
+ });
});
-});
-function canonize(data)
-{
- let curSection = null;
- let sections = [];
- for (let line of data)
+ function canonize(data)
{
- if (/^\[.*\]$/.test(line))
+ let curSection = null;
+ let sections = [];
+ for (let line of data)
{
- if (curSection)
- sections.push(curSection);
+ if (/^\[.*\]$/.test(line))
+ {
+ if (curSection)
+ sections.push(curSection);
- curSection = {header: line, data: []};
+ curSection = {header: line, data: []};
+ }
+ else if (curSection && /\S/.test(line))
+ curSection.data.push(line);
}
- else if (curSection && /\S/.test(line))
- curSection.data.push(line);
- }
- if (curSection)
- sections.push(curSection);
+ if (curSection)
+ sections.push(curSection);
- for (let section of sections)
- {
- section.key = section.header + " " + section.data[0];
- section.data.sort();
+ for (let section of sections)
+ {
+ section.key = section.header + " " + section.data[0];
+ section.data.sort();
+ }
+ sections.sort((a, b) =>
+ {
+ if (a.key < b.key)
+ return -1;
+ else if (a.key > b.key)
+ return 1;
+ return 0;
+ });
+ return sections;
}
- sections.sort((a, b) =>
+
+ async function testReadWrite(withExternal, withEmptySpecial)
{
- if (a.key < b.key)
- return -1;
- else if (a.key > b.key)
- return 1;
- return 0;
- });
- return sections;
-}
+ assert.ok(!filterStorage.initialized, "Uninitialized before the first load");
-async function testReadWrite(test, withExternal, withEmptySpecial)
-{
- test.ok(!filterStorage.initialized, "Uninitialized before the first load");
+ try
+ {
+ let data = await testData;
- try
- {
- let data = await testData;
+ IO._setFileContents(filterStorage.sourceFile, data);
+ await filterStorage.loadFromDisk();
- IO._setFileContents(filterStorage.sourceFile, data);
- await filterStorage.loadFromDisk();
+ assert.ok(filterStorage.initialized, "Initialize after the first load");
+ assert.equal(filterStorage.fileProperties.version, filterStorage.formatVersion, "File format version");
- 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"));
+ subscription.addFilter(Filter.fromText("bar"));
+ filterStorage.addSubscription(subscription);
+ }
- if (withExternal)
- {
- {
- let subscription = new ExternalSubscription("~external~external subscription ID", "External subscription");
- subscription.addFilter(Filter.fromText("foo"));
- subscription.addFilter(Filter.fromText("bar"));
- filterStorage.addSubscription(subscription);
+ let externalSubscriptions = [...filterStorage.subscriptions()].filter(subscription => subscription instanceof ExternalSubscription);
+ assert.equal(externalSubscriptions.length, 1, "Number of external subscriptions after updateExternalSubscription");
+
+ assert.equal(externalSubscriptions[0].url, "~external~external subscription ID", "ID of external subscription");
+ assert.equal(externalSubscriptions[0].filterCount, 2, "Number of filters in external subscription");
}
- let externalSubscriptions = [...filterStorage.subscriptions()].filter(subscription => subscription instanceof ExternalSubscription);
- test.equal(externalSubscriptions.length, 1, "Number of external subscriptions after updateExternalSubscription");
-
- test.equal(externalSubscriptions[0].url, "~external~external subscription ID", "ID of external subscription");
- test.equal(externalSubscriptions[0].filterCount, 2, "Number of filters in external subscription");
- }
+ if (withEmptySpecial)
+ {
+ let specialSubscription =
+ SpecialSubscription.createForFilter(Filter.fromText("!foo"));
+ filterStorage.addSubscription(specialSubscription);
- if (withEmptySpecial)
- {
- let specialSubscription =
- SpecialSubscription.createForFilter(Filter.fromText("!foo"));
- filterStorage.addSubscription(specialSubscription);
-
- filterStorage.removeFilter(Filter.fromText("!foo"), specialSubscription);
+ 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");
- }
+ assert.equal(specialSubscription.filterCount, 0,
+ "No filters in special subscription");
+ assert.ok(new Set(filterStorage.subscriptions()).has(specialSubscription),
+ "Empty special subscription still in storage");
+ }
- await filterStorage.saveToDisk();
+ await filterStorage.saveToDisk();
- let expected = await testData;
+ let expected = await testData;
- test.deepEqual(canonize(IO._getFileContents(filterStorage.sourceFile)),
- canonize(expected), "Read/write result");
- }
- catch (error)
- {
- unexpectedError.call(test, error);
+ assert.deepEqual(canonize(IO._getFileContents(filterStorage.sourceFile)),
+ canonize(expected), "Read/write result");
+ }
+ catch (error)
+ {
+ unexpectedError.call(assert, error);
+ }
}
- test.done();
-}
+ describe("Read and Save", () =>
+ {
+ it("to File", () =>
+ {
+ testReadWrite(false);
+ });
-exports.testReadAndSaveToFile = function(test)
-{
- testReadWrite(test, false);
-};
-
-exports.testReadAndSaveToFileWithExternalSubscription = function(test)
-{
- testReadWrite(test, true);
-};
+ it("to file With External Subscription", () =>
+ {
+ testReadWrite(true);
+ });
-exports.testReadAndSaveToFileWithEmptySpecial = function(test)
-{
- testReadWrite(test, false, true);
-};
+ it("to file With Empty Special", () =>
+ {
+ testReadWrite(false, true);
+ });
+ });
-exports.testImportExport = async function(test)
-{
- try
+ it("Import / Export", async() =>
{
- let lines = await testData;
+ try
+ {
+ let lines = await testData;
- if (lines.length && lines[lines.length - 1] == "")
- lines.pop();
+ if (lines.length && lines[lines.length - 1] == "")
+ lines.pop();
- let importer = filterStorage.importData();
- for (let line of lines)
- importer(line);
- importer(null);
+ let importer = filterStorage.importData();
+ for (let line of lines)
+ importer(line);
+ importer(null);
- test.equal(filterStorage.fileProperties.version, filterStorage.formatVersion, "File format version");
+ assert.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 (error)
- {
- unexpectedError.call(test, error);
- }
+ let exported = Array.from(filterStorage.exportData());
+ assert.deepEqual(canonize(exported), canonize(lines), "Import/export result");
+ }
+ catch (error)
+ {
+ unexpectedError.call(assert, error);
+ }
+ });
- test.done();
-};
-
-exports.testSavingWithoutBackups = async function(test)
-{
- Prefs.patternsbackups = 0;
- Prefs.patternsbackupinterval = 24;
-
- try
+ describe("Backups", () =>
{
- await filterStorage.saveToDisk();
- await filterStorage.saveToDisk();
+ it("Saving Without", async() =>
+ {
+ Prefs.patternsbackups = 0;
+ Prefs.patternsbackupinterval = 24;
- test.ok(!IO._getFileContents(filterStorage.getBackupName(1)),
- "Backup shouldn't be created");
- }
- catch (error)
- {
- unexpectedError.call(test, error);
- }
-
- test.done();
-};
+ try
+ {
+ await filterStorage.saveToDisk();
+ await filterStorage.saveToDisk();
-exports.testSavingWithBackups = async function(test)
-{
- Prefs.patternsbackups = 2;
- Prefs.patternsbackupinterval = 24;
+ assert.ok(!IO._getFileContents(filterStorage.getBackupName(1)),
+ "Backup shouldn't be created");
+ }
+ catch (error)
+ {
+ unexpectedError.call(assert, error);
+ }
+ });
- let backupFile = filterStorage.getBackupName(1);
- let backupFile2 = filterStorage.getBackupName(2);
- let backupFile3 = filterStorage.getBackupName(3);
+ it("Saving With", async() =>
+ {
+ Prefs.patternsbackups = 2;
+ Prefs.patternsbackupinterval = 24;
- let oldModifiedTime;
+ let backupFile = filterStorage.getBackupName(1);
+ let backupFile2 = filterStorage.getBackupName(2);
+ let backupFile3 = filterStorage.getBackupName(3);
+
+ let oldModifiedTime;
- try
- {
- await filterStorage.saveToDisk();
+ try
+ {
+ await filterStorage.saveToDisk();
- // Save again immediately
- await filterStorage.saveToDisk();
+ // Save again immediately
+ await filterStorage.saveToDisk();
- test.ok(IO._getFileContents(backupFile), "First backup created");
+ assert.ok(IO._getFileContents(backupFile), "First backup created");
- oldModifiedTime = IO._getModifiedTime(backupFile) - 10000;
- IO._setModifiedTime(backupFile, oldModifiedTime);
- await filterStorage.saveToDisk();
+ oldModifiedTime = IO._getModifiedTime(backupFile) - 10000;
+ IO._setModifiedTime(backupFile, oldModifiedTime);
+ await filterStorage.saveToDisk();
- test.equal(IO._getModifiedTime(backupFile), oldModifiedTime, "Backup not overwritten if it is only 10 seconds old");
+ assert.equal(IO._getModifiedTime(backupFile), oldModifiedTime, "Backup not overwritten if it is only 10 seconds old");
- oldModifiedTime -= 40 * 60 * 60 * 1000;
- IO._setModifiedTime(backupFile, oldModifiedTime);
- await filterStorage.saveToDisk();
+ oldModifiedTime -= 40 * 60 * 60 * 1000;
+ IO._setModifiedTime(backupFile, oldModifiedTime);
+ await filterStorage.saveToDisk();
- test.notEqual(IO._getModifiedTime(backupFile), oldModifiedTime, "Backup overwritten if it is 40 hours old");
+ assert.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");
+ assert.ok(IO._getFileContents(backupFile2), "Second backup created when first backup is overwritten");
- IO._setModifiedTime(backupFile, IO._getModifiedTime(backupFile) - 20000);
- oldModifiedTime = IO._getModifiedTime(backupFile2);
- await filterStorage.saveToDisk();
+ IO._setModifiedTime(backupFile, IO._getModifiedTime(backupFile) - 20000);
+ oldModifiedTime = IO._getModifiedTime(backupFile2);
+ await filterStorage.saveToDisk();
- test.equal(IO._getModifiedTime(backupFile2), oldModifiedTime, "Second backup not overwritten if first one is only 20 seconds old");
+ assert.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);
- await filterStorage.saveToDisk();
+ IO._setModifiedTime(backupFile, IO._getModifiedTime(backupFile) - 25 * 60 * 60 * 1000);
+ oldModifiedTime = IO._getModifiedTime(backupFile2);
+ await filterStorage.saveToDisk();
- test.notEqual(IO._getModifiedTime(backupFile2), oldModifiedTime, "Second backup overwritten if first one is 25 hours old");
+ assert.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 (error)
- {
- unexpectedError.call(test, error);
- }
+ assert.ok(!IO._getFileContents(backupFile3), "Third backup not created with patternsbackups = 2");
+ }
+ catch (error)
+ {
+ unexpectedError.call(assert, error);
+ }
+ });
- test.done();
-};
+ it("Restoring", async() =>
+ {
+ Prefs.patternsbackups = 2;
+ Prefs.patternsbackupinterval = 24;
-exports.testRestoringBackup = async function(test)
-{
- Prefs.patternsbackups = 2;
- Prefs.patternsbackupinterval = 24;
-
- try
- {
- await filterStorage.saveToDisk();
+ 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");
- await filterStorage.saveToDisk();
+ assert.equal([...filterStorage.subscriptions()][0].filterCount, 1, "Initial filter count");
+ filterStorage.addFilter(Filter.fromText("barfoo"));
+ assert.equal([...filterStorage.subscriptions()][0].filterCount, 2, "Filter count after adding a filter");
+ await filterStorage.saveToDisk();
- await filterStorage.loadFromDisk();
+ await filterStorage.loadFromDisk();
- test.equal([...filterStorage.subscriptions()][0].filterCount, 2, "Filter count after adding filter and reloading");
- await filterStorage.restoreBackup(1);
+ assert.equal([...filterStorage.subscriptions()][0].filterCount, 2, "Filter count after adding filter and reloading");
+ await filterStorage.restoreBackup(1);
- test.equal([...filterStorage.subscriptions()][0].filterCount, 1, "Filter count after restoring backup");
- await filterStorage.loadFromDisk();
+ assert.equal([...filterStorage.subscriptions()][0].filterCount, 1, "Filter count after restoring backup");
+ await filterStorage.loadFromDisk();
- test.equal([...filterStorage.subscriptions()][0].filterCount, 1, "Filter count after reloading");
- }
- catch (error)
- {
- unexpectedError.call(test, error);
- }
-
- test.done();
-};
+ assert.equal([...filterStorage.subscriptions()][0].filterCount, 1, "Filter count after reloading");
+ }
+ catch (error)
+ {
+ unexpectedError.call(assert, error);
+ }
+ });
+ });
+});
« no previous file with comments | « test/filterStorage.js ('k') | test/matcher.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld