[Pkg-mozext-commits] [adblock-plus] 18/87: Issue 3660 - Remove locale dependency from subscription classes
David Prévot
taffit at moszumanska.debian.org
Sat Apr 30 17:59:03 UTC 2016
This is an automated email from the git hooks/post-receive script.
taffit pushed a commit to branch master
in repository adblock-plus.
commit 57c1c7c83c1700c054a7eb6d2f2eee62b77abc43
Author: Wladimir Palant <trev at adblockplus.org>
Date: Tue Feb 16 13:16:36 2016 +0100
Issue 3660 - Remove locale dependency from subscription classes
---
lib/subscriptionClasses.js | 57 ++++-------------------------
test/subscriptionClasses.js | 87 +++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 93 insertions(+), 51 deletions(-)
diff --git a/lib/subscriptionClasses.js b/lib/subscriptionClasses.js
index a6c986d..f559cb3 100644
--- a/lib/subscriptionClasses.js
+++ b/lib/subscriptionClasses.js
@@ -19,8 +19,6 @@
* @fileOverview Definition of Subscription class and its subclasses.
*/
-Cu.import("resource://gre/modules/Services.jsm");
-
let {ActiveFilter, BlockingFilter, WhitelistFilter, ElemHideBase} = require("filterClasses");
let {FilterNotifier} = require("filterNotifier");
@@ -37,11 +35,6 @@ function Subscription(url, title)
this.filters = [];
if (title)
this._title = title;
- else
- {
- let {Utils} = require("utils");
- this._title = Utils.getString("newGroup_title");
- }
Subscription.knownSubscriptions[url] = this;
}
exports.Subscription = Subscription;
@@ -129,7 +122,8 @@ Subscription.prototype =
{
buffer.push("[Subscription]");
buffer.push("url=" + this.url);
- buffer.push("title=" + this._title);
+ if (this._title)
+ buffer.push("title=" + this._title);
if (this._fixedTitle)
buffer.push("fixedTitle=true");
if (this._disabled)
@@ -166,16 +160,10 @@ Subscription.fromURL = function(url)
if (url in Subscription.knownSubscriptions)
return Subscription.knownSubscriptions[url];
- try
- {
- // Test URL for validity
- url = Services.io.newURI(url, null, null).spec;
+ if (url[0] != "~")
return new DownloadableSubscription(url, null);
- }
- catch (e)
- {
+ else
return new SpecialSubscription(url);
- }
};
/**
@@ -187,10 +175,8 @@ Subscription.fromURL = function(url)
Subscription.fromObject = function(obj)
{
let result;
- try
+ if (obj.url[0] != "~")
{
- obj.url = Services.io.newURI(obj.url, null, null).spec;
-
// URL is valid - this is a downloadable subscription
result = new DownloadableSubscription(obj.url, obj.title);
if ("downloadStatus" in obj)
@@ -208,12 +194,7 @@ Subscription.fromObject = function(obj)
if ("version" in obj)
result.version = parseInt(obj.version, 10) || 0;
if ("requiredVersion" in obj)
- {
- let {addonVersion} = require("info");
result.requiredVersion = obj.requiredVersion;
- if (Services.vc.compare(result.requiredVersion, addonVersion) > 0)
- result.upgradeRequired = true;
- }
if ("homepage" in obj)
result._homepage = obj.homepage;
if ("lastDownload" in obj)
@@ -221,25 +202,8 @@ Subscription.fromObject = function(obj)
if ("downloadCount" in obj)
result.downloadCount = parseInt(obj.downloadCount, 10) || 0;
}
- catch (e)
+ else
{
- // Invalid URL - custom filter group
- if (!("title" in obj))
- {
- // Backwards compatibility - titles and filter types were originally
- // determined by group identifier.
- if (obj.url == "~wl~")
- obj.defaults = "whitelist";
- else if (obj.url == "~fl~")
- obj.defaults = "blocking";
- else if (obj.url == "~eh~")
- obj.defaults = "elemhide";
- if ("defaults" in obj)
- {
- let {Utils} = require("utils");
- obj.title = Utils.getString(obj.defaults + "Group_title");
- }
- }
result = new SpecialSubscription(obj.url, obj.title);
if ("defaults" in obj)
result.defaults = obj.defaults.split(" ");
@@ -347,9 +311,6 @@ SpecialSubscription.createForFilter = function(/**Filter*/ filter) /**SpecialSub
}
if (!subscription.defaults)
subscription.defaults = ["blocking"];
-
- let {Utils} = require("utils");
- subscription.title = Utils.getString(subscription.defaults[0] + "Group_title");
return subscription;
};
@@ -558,12 +519,6 @@ DownloadableSubscription.prototype =
requiredVersion: null,
/**
- * Should be true if requiredVersion is higher than current Adblock Plus version
- * @type Boolean
- */
- upgradeRequired: false,
-
- /**
* Number indicating how often the object was downloaded.
* @type Number
*/
diff --git a/test/subscriptionClasses.js b/test/subscriptionClasses.js
new file mode 100644
index 0000000..9ac3bf5
--- /dev/null
+++ b/test/subscriptionClasses.js
@@ -0,0 +1,87 @@
+/*
+ * This file is part of Adblock Plus <https://adblockplus.org/>,
+ * Copyright (C) 2006-2016 Eyeo GmbH
+ *
+ * Adblock Plus is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 3 as
+ * published by the Free Software Foundation.
+ *
+ * Adblock Plus is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * 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";
+
+let {
+ Subscription, SpecialSubscription, DownloadableSubscription,
+ RegularSubscription, ExternalSubscription
+} = require("../lib/subscriptionClasses");
+
+function compareSubscription(test, url, expected, postInit)
+{
+ expected.push("[Subscription]")
+ let subscription = Subscription.fromURL(url);
+ if (postInit)
+ postInit(subscription)
+ let result = [];
+ subscription.serialize(result);
+ test.equal(result.sort().join("\n"), expected.sort().join("\n"), url);
+
+ let map = {__proto__: null};
+ for (let line of result.slice(1))
+ {
+ if (/(.*?)=(.*)/.test(line))
+ map[RegExp.$1] = RegExp.$2;
+ }
+ let subscription2 = Subscription.fromObject(map);
+ test.equal(subscription.toString(), subscription2.toString(), url + " deserialization");
+}
+
+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"], function(subscription)
+ {
+ subscription.title = "test";
+ });
+ compareSubscription(test, "http://test/non_default", ["url=http://test/non_default", "title=test",
+ "disabled=true", "lastSuccess=8", "lastDownload=12", "lastCheck=16", "softExpiration=18", "expires=20", "downloadStatus=foo",
+ "errors=3", "version=24", "requiredVersion=0.6"], function(subscription)
+ {
+ 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(test, "~wl~", ["url=~wl~", "disabled=true", "title=Test group"], function(subscription)
+ {
+ subscription.title = "Test group";
+ subscription.disabled = true;
+ });
+
+ test.done();
+};
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-mozext/adblock-plus.git
More information about the Pkg-mozext-commits
mailing list