Index: test/subscriptionClasses.js |
=================================================================== |
--- a/test/subscriptionClasses.js |
+++ b/test/subscriptionClasses.js |
@@ -12,206 +12,202 @@ |
* 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} = require("./_common"); |
let f$ = null; |
let Subscription = null; |
let SpecialSubscription = null; |
let DownloadableSubscription = null; |
let RegularSubscription = null; |
let ExternalSubscription = null; |
let Filter = null; |
-exports.setUp = function(callback) |
-{ |
- let sandboxedRequire = createSandbox(); |
- ( |
- {Subscription, SpecialSubscription, |
- DownloadableSubscription, RegularSubscription, |
- ExternalSubscription} = sandboxedRequire("../lib/subscriptionClasses"), |
- {Filter} = sandboxedRequire("../lib/filterClasses") |
- ); |
- |
- f$ = Filter.fromText; |
- |
- callback(); |
-}; |
- |
-function compareSubscription(test, url, expected, postInit) |
+describe("Subscription Classes", () => |
{ |
- expected.push("[Subscription]"); |
- let subscription = Subscription.fromURL(url); |
- if (postInit) |
- postInit(subscription); |
- let result = [...subscription.serialize()]; |
- test.equal(result.sort().join("\n"), expected.sort().join("\n"), url); |
- |
- let map = Object.create(null); |
- for (let line of result.slice(1)) |
+ beforeEach(() => |
{ |
- if (/(.*?)=(.*)/.test(line)) |
- map[RegExp.$1] = RegExp.$2; |
- } |
- let subscription2 = Subscription.fromObject(map); |
- test.equal(subscription.toString(), subscription2.toString(), url + " deserialization"); |
-} |
+ let sandboxedRequire = createSandbox(); |
+ ( |
+ {Subscription, SpecialSubscription, |
+ DownloadableSubscription, RegularSubscription, |
+ ExternalSubscription} = sandboxedRequire("../lib/subscriptionClasses"), |
+ {Filter} = sandboxedRequire("../lib/filterClasses") |
+ ); |
-function compareSubscriptionFilters(test, subscription, expected) |
-{ |
- test.deepEqual([...subscription.filterText()], expected); |
- |
- test.equal(subscription.filterCount, expected.length); |
- |
- for (let i = 0; i < subscription.filterCount; i++) |
- test.equal(subscription.filterTextAt(i), expected[i]); |
+ f$ = Filter.fromText; |
+ }); |
- test.ok(!subscription.filterTextAt(subscription.filterCount)); |
- test.ok(!subscription.filterTextAt(-1)); |
-} |
+ function compareSubscription(url, expected, postInit) |
+ { |
+ expected.push("[Subscription]"); |
+ let subscription = Subscription.fromURL(url); |
+ if (postInit) |
+ postInit(subscription); |
+ let result = [...subscription.serialize()]; |
+ assert.equal(result.sort().join("\n"), expected.sort().join("\n"), url); |
-exports.testSubscriptionClassDefinitions = function(test) |
-{ |
- test.equal(typeof Subscription, "function", "typeof Subscription"); |
- test.equal(typeof SpecialSubscription, "function", "typeof SpecialSubscription"); |
- test.equal(typeof RegularSubscription, "function", "typeof RegularSubscription"); |
- test.equal(typeof ExternalSubscription, "function", "typeof ExternalSubscription"); |
- test.equal(typeof DownloadableSubscription, "function", "typeof DownloadableSubscription"); |
- |
- test.done(); |
-}; |
- |
-exports.testSubscriptionsWithState = function(test) |
-{ |
- compareSubscription(test, "~fl~", ["url=~fl~"]); |
- compareSubscription(test, "http://test/default", ["url=http://test/default", "title=http://test/default"]); |
- compareSubscription( |
- test, "http://test/default_titled", ["url=http://test/default_titled", "title=test"], |
- subscription => |
+ let map = Object.create(null); |
+ for (let line of result.slice(1)) |
{ |
- subscription.title = "test"; |
- } |
- ); |
- compareSubscription( |
- test, "http://test/non_default", |
- [ |
- "url=http://test/non_default", "type=ads", "title=test", "disabled=true", |
- "lastSuccess=8", "lastDownload=12", "lastCheck=16", "softExpiration=18", |
- "expires=20", "downloadStatus=foo", "errors=3", "version=24", |
- "requiredVersion=0.6" |
- ], |
- subscription => |
- { |
- subscription.type = "ads"; |
- subscription.title = "test"; |
- subscription.disabled = true; |
- subscription.lastSuccess = 8; |
- subscription.lastDownload = 12; |
- subscription.lastCheck = 16; |
- subscription.softExpiration = 18; |
- subscription.expires = 20; |
- subscription.downloadStatus = "foo"; |
- subscription.errors = 3; |
- subscription.version = 24; |
- subscription.requiredVersion = "0.6"; |
+ if (/(.*?)=(.*)/.test(line)) |
+ map[RegExp.$1] = RegExp.$2; |
} |
- ); |
- compareSubscription( |
- test, "~wl~", ["url=~wl~", "disabled=true", "title=Test group"], |
- subscription => |
- { |
- subscription.title = "Test group"; |
- subscription.disabled = true; |
- } |
- ); |
+ let subscription2 = Subscription.fromObject(map); |
+ assert.equal(subscription.toString(), subscription2.toString(), url + " deserialization"); |
+ } |
+ |
+ function compareSubscriptionFilters(subscription, expected) |
+ { |
+ assert.deepEqual([...subscription.filterText()], expected); |
+ |
+ assert.equal(subscription.filterCount, expected.length); |
+ |
+ for (let i = 0; i < subscription.filterCount; i++) |
+ assert.equal(subscription.filterTextAt(i), expected[i]); |
- test.done(); |
-}; |
+ assert.ok(!subscription.filterTextAt(subscription.filterCount)); |
+ assert.ok(!subscription.filterTextAt(-1)); |
+ } |
-exports.testFilterManagement = function(test) |
-{ |
- let subscription = Subscription.fromURL("https://example.com/"); |
- |
- compareSubscriptionFilters(test, subscription, []); |
- |
- subscription.addFilter(f$("##.foo")); |
- compareSubscriptionFilters(test, subscription, ["##.foo"]); |
- test.equal(subscription.searchFilter(f$("##.foo")), 0); |
+ it("Definitions", () => |
+ { |
+ assert.equal(typeof Subscription, "function", "typeof Subscription"); |
+ assert.equal(typeof SpecialSubscription, "function", "typeof SpecialSubscription"); |
+ assert.equal(typeof RegularSubscription, "function", "typeof RegularSubscription"); |
+ assert.equal(typeof ExternalSubscription, "function", "typeof ExternalSubscription"); |
+ assert.equal(typeof DownloadableSubscription, "function", "typeof DownloadableSubscription"); |
+ }); |
- subscription.addFilter(f$("##.bar")); |
- compareSubscriptionFilters(test, subscription, ["##.foo", "##.bar"]); |
- test.equal(subscription.searchFilter(f$("##.bar")), 1); |
- |
- // Repeat filter. |
- subscription.addFilter(f$("##.bar")); |
- compareSubscriptionFilters(test, subscription, ["##.foo", "##.bar", |
- "##.bar"]); |
- |
- // The first occurrence is found. |
- test.equal(subscription.searchFilter(f$("##.bar")), 1); |
+ it("Subscription with state", () => |
+ { |
+ compareSubscription("~fl~", ["url=~fl~"]); |
+ compareSubscription("http://test/default", ["url=http://test/default", "title=http://test/default"]); |
+ compareSubscription( |
+ "http://test/default_titled", ["url=http://test/default_titled", "title=test"], |
+ subscription => |
+ { |
+ subscription.title = "test"; |
+ } |
+ ); |
+ compareSubscription( |
+ "http://test/non_default", |
+ [ |
+ "url=http://test/non_default", "type=ads", "title=test", "disabled=true", |
+ "lastSuccess=8", "lastDownload=12", "lastCheck=16", "softExpiration=18", |
+ "expires=20", "downloadStatus=foo", "errors=3", "version=24", |
+ "requiredVersion=0.6" |
+ ], |
+ subscription => |
+ { |
+ subscription.type = "ads"; |
+ subscription.title = "test"; |
+ subscription.disabled = true; |
+ subscription.lastSuccess = 8; |
+ subscription.lastDownload = 12; |
+ subscription.lastCheck = 16; |
+ subscription.softExpiration = 18; |
+ subscription.expires = 20; |
+ subscription.downloadStatus = "foo"; |
+ subscription.errors = 3; |
+ subscription.version = 24; |
+ subscription.requiredVersion = "0.6"; |
+ } |
+ ); |
+ compareSubscription( |
+ "~wl~", ["url=~wl~", "disabled=true", "title=Test group"], |
+ subscription => |
+ { |
+ subscription.title = "Test group"; |
+ subscription.disabled = true; |
+ } |
+ ); |
+ }); |
- subscription.deleteFilterAt(0); |
- compareSubscriptionFilters(test, subscription, ["##.bar", "##.bar"]); |
- test.equal(subscription.searchFilter(f$("##.bar")), 0); |
- |
- subscription.insertFilterAt(f$("##.foo"), 0); |
- compareSubscriptionFilters(test, subscription, ["##.foo", "##.bar", |
- "##.bar"]); |
- test.equal(subscription.searchFilter(f$("##.bar")), 1); |
- |
- subscription.deleteFilterAt(1); |
- compareSubscriptionFilters(test, subscription, ["##.foo", "##.bar"]); |
- test.equal(subscription.searchFilter(f$("##.bar")), 1); |
+ it("Filter Management", () => |
+ { |
+ let subscription = Subscription.fromURL("https://example.com/"); |
- subscription.deleteFilterAt(1); |
- compareSubscriptionFilters(test, subscription, ["##.foo"]); |
- test.equal(subscription.searchFilter(f$("##.bar")), -1); |
+ compareSubscriptionFilters(subscription, []); |
+ |
+ subscription.addFilter(f$("##.foo")); |
+ compareSubscriptionFilters(subscription, ["##.foo"]); |
+ assert.equal(subscription.searchFilter(f$("##.foo")), 0); |
- subscription.addFilter(f$("##.bar")); |
- compareSubscriptionFilters(test, subscription, ["##.foo", "##.bar"]); |
- test.equal(subscription.searchFilter(f$("##.bar")), 1); |
+ subscription.addFilter(f$("##.bar")); |
+ compareSubscriptionFilters(subscription, ["##.foo", "##.bar"]); |
+ assert.equal(subscription.searchFilter(f$("##.bar")), 1); |
+ |
+ // Repeat filter. |
+ subscription.addFilter(f$("##.bar")); |
+ compareSubscriptionFilters(subscription, ["##.foo", "##.bar", |
+ "##.bar"]); |
+ |
+ // The first occurrence is found. |
+ assert.equal(subscription.searchFilter(f$("##.bar")), 1); |
- subscription.clearFilters(); |
- compareSubscriptionFilters(test, subscription, []); |
- test.equal(subscription.searchFilter(f$("##.foo")), -1); |
- test.equal(subscription.searchFilter(f$("##.bar")), -1); |
+ subscription.deleteFilterAt(0); |
+ compareSubscriptionFilters(subscription, ["##.bar", "##.bar"]); |
+ assert.equal(subscription.searchFilter(f$("##.bar")), 0); |
+ |
+ subscription.insertFilterAt(f$("##.foo"), 0); |
+ compareSubscriptionFilters(subscription, ["##.foo", "##.bar", |
+ "##.bar"]); |
+ assert.equal(subscription.searchFilter(f$("##.bar")), 1); |
- subscription.addFilter(f$("##.bar")); |
- compareSubscriptionFilters(test, subscription, ["##.bar"]); |
+ subscription.deleteFilterAt(1); |
+ compareSubscriptionFilters(subscription, ["##.foo", "##.bar"]); |
+ assert.equal(subscription.searchFilter(f$("##.bar")), 1); |
- subscription.addFilter(f$("##.foo")); |
- compareSubscriptionFilters(test, subscription, ["##.bar", "##.foo"]); |
- test.equal(subscription.searchFilter(f$("##.bar")), 0); |
- test.equal(subscription.searchFilter(f$("##.foo")), 1); |
+ subscription.deleteFilterAt(1); |
+ compareSubscriptionFilters(subscription, ["##.foo"]); |
+ assert.equal(subscription.searchFilter(f$("##.bar")), -1); |
+ |
+ subscription.addFilter(f$("##.bar")); |
+ compareSubscriptionFilters(subscription, ["##.foo", "##.bar"]); |
+ assert.equal(subscription.searchFilter(f$("##.bar")), 1); |
- // Insert outside of bounds. |
- subscription.insertFilterAt(f$("##.lambda"), 1000); |
- compareSubscriptionFilters(test, subscription, ["##.bar", "##.foo", |
- "##.lambda"]); |
- test.equal(subscription.searchFilter(f$("##.lambda")), 2); |
+ subscription.clearFilters(); |
+ compareSubscriptionFilters(subscription, []); |
+ assert.equal(subscription.searchFilter(f$("##.foo")), -1); |
+ assert.equal(subscription.searchFilter(f$("##.bar")), -1); |
+ |
+ subscription.addFilter(f$("##.bar")); |
+ compareSubscriptionFilters(subscription, ["##.bar"]); |
- // Delete outside of bounds. |
- subscription.deleteFilterAt(1000); |
- compareSubscriptionFilters(test, subscription, ["##.bar", "##.foo", |
- "##.lambda"]); |
- test.equal(subscription.searchFilter(f$("##.lambda")), 2); |
+ subscription.addFilter(f$("##.foo")); |
+ compareSubscriptionFilters(subscription, ["##.bar", "##.foo"]); |
+ assert.equal(subscription.searchFilter(f$("##.bar")), 0); |
+ assert.equal(subscription.searchFilter(f$("##.foo")), 1); |
+ |
+ // Insert outside of bounds. |
+ subscription.insertFilterAt(f$("##.lambda"), 1000); |
+ compareSubscriptionFilters(subscription, ["##.bar", "##.foo", |
+ "##.lambda"]); |
+ assert.equal(subscription.searchFilter(f$("##.lambda")), 2); |
- // Insert outside of bounds (negative). |
- subscription.insertFilterAt(f$("##.lambda"), -1000); |
- compareSubscriptionFilters(test, subscription, ["##.lambda", "##.bar", |
- "##.foo", "##.lambda"]); |
- test.equal(subscription.searchFilter(f$("##.lambda")), 0); |
+ // Delete outside of bounds. |
+ subscription.deleteFilterAt(1000); |
+ compareSubscriptionFilters(subscription, ["##.bar", "##.foo", |
+ "##.lambda"]); |
+ assert.equal(subscription.searchFilter(f$("##.lambda")), 2); |
- // Delete outside of bounds (negative). |
- subscription.deleteFilterAt(-1000); |
- compareSubscriptionFilters(test, subscription, ["##.lambda", "##.bar", |
- "##.foo", "##.lambda"]); |
- test.equal(subscription.searchFilter(f$("##.lambda")), 0); |
+ // Insert outside of bounds (negative). |
+ subscription.insertFilterAt(f$("##.lambda"), -1000); |
+ compareSubscriptionFilters(subscription, ["##.lambda", "##.bar", |
+ "##.foo", "##.lambda"]); |
+ assert.equal(subscription.searchFilter(f$("##.lambda")), 0); |
- test.done(); |
-}; |
+ // Delete outside of bounds (negative). |
+ subscription.deleteFilterAt(-1000); |
+ compareSubscriptionFilters(subscription, ["##.lambda", "##.bar", |
+ "##.foo", "##.lambda"]); |
+ assert.equal(subscription.searchFilter(f$("##.lambda")), 0); |
+ }); |
+}); |