summaryrefslogtreecommitdiffstats
path: root/addon-sdk/source/test/test-xul-app.js
diff options
context:
space:
mode:
Diffstat (limited to 'addon-sdk/source/test/test-xul-app.js')
-rw-r--r--addon-sdk/source/test/test-xul-app.js145
1 files changed, 145 insertions, 0 deletions
diff --git a/addon-sdk/source/test/test-xul-app.js b/addon-sdk/source/test/test-xul-app.js
new file mode 100644
index 000000000..a57d425d2
--- /dev/null
+++ b/addon-sdk/source/test/test-xul-app.js
@@ -0,0 +1,145 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+ "use strict";
+
+var xulApp = require("sdk/system/xul-app");
+
+exports["test xulapp"] = function (assert) {
+ assert.equal(typeof(xulApp.ID), "string",
+ "ID is a string");
+ assert.equal(typeof(xulApp.name), "string",
+ "name is a string");
+ assert.equal(typeof(xulApp.version), "string",
+ "version is a string");
+ assert.equal(typeof(xulApp.platformVersion), "string",
+ "platformVersion is a string");
+
+ assert.throws(() => xulApp.is("blargy"),
+ /Unkown Mozilla Application: blargy/,
+ "is() throws error on bad app name");
+
+ assert.throws(() => xulApp.isOneOf(["blargy"]),
+ /Unkown Mozilla Application: blargy/,
+ "isOneOf() throws error on bad app name");
+
+ function testSupport(name) {
+ var item = xulApp.is(name);
+ assert.ok(item === true || item === false,
+ "is('" + name + "') is true or false.");
+ }
+
+ var apps = ["Firefox", "Mozilla", "SeaMonkey", "Fennec", "Thunderbird"];
+
+ apps.forEach(testSupport);
+
+ assert.ok(xulApp.isOneOf(apps) == true || xulApp.isOneOf(apps) == false,
+ "isOneOf() returns true or false.");
+
+ assert.equal(xulApp.versionInRange(xulApp.platformVersion, "1.9", "*"),
+ true, "platformVersion in range [1.9, *)");
+ assert.equal(xulApp.versionInRange("3.6.4", "3.6.4", "3.6.*"),
+ true, "3.6.4 in [3.6.4, 3.6.*)");
+ assert.equal(xulApp.versionInRange("1.9.3", "1.9.2", "1.9.3"),
+ false, "1.9.3 not in [1.9.2, 1.9.3)");
+};
+
+exports["test satisfies version range"] = function (assert) {
+ [ ["1.0.0 - 2.0.0", "1.2.3"],
+ ["1.0.0", "1.0.0"],
+ [">=*", "0.2.4"],
+ ["", "1.0.0"],
+ ["*", "1.2.3"],
+ [">=1.0.0", "1.0.0"],
+ [">=1.0.0", "1.0.1"],
+ [">=1.0.0", "1.1.0"],
+ [">1.0.0", "1.0.1"],
+ [">1.0.0", "1.1.0"],
+ ["<=2.0.0", "2.0.0"],
+ ["<=2.0.0", "1.9999.9999"],
+ ["<=2.0.0", "0.2.9"],
+ ["<2.0.0", "1.9999.9999"],
+ ["<2.0.0", "0.2.9"],
+ [">= 1.0.0", "1.0.0"],
+ [">= 1.0.0", "1.0.1"],
+ [">= 1.0.0", "1.1.0"],
+ ["> 1.0.0", "1.0.1"],
+ ["> 1.0.0", "1.1.0"],
+ ["<1", "1.0.0beta"],
+ ["< 1", "1.0.0beta"],
+ ["<= 2.0.0", "2.0.0"],
+ ["<= 2.0.0", "1.9999.9999"],
+ ["<= 2.0.0", "0.2.9"],
+ ["< 2.0.0", "1.9999.9999"],
+ ["<\t2.0.0", "0.2.9"],
+ [">=0.1.97", "0.1.97"],
+ ["0.1.20 || 1.2.4", "1.2.4"],
+ [">=0.2.3 || <0.0.1", "0.0.0"],
+ [">=0.2.3 || <0.0.1", "0.2.3"],
+ [">=0.2.3 || <0.0.1", "0.2.4"],
+ ["||", "1.3.4"],
+ ["2.x.x", "2.1.3"],
+ ["1.2.x", "1.2.3"],
+ ["1.2.x || 2.x", "2.1.3"],
+ ["1.2.x || 2.x", "1.2.3"],
+ ["x", "1.2.3"],
+ ["2.*.*", "2.1.3"],
+ ["1.2.*", "1.2.3"],
+ ["1.2.* || 2.*", "2.1.3"],
+ ["1.2.* || 2.*", "1.2.3"],
+ ["*", "1.2.3"],
+ ["2.*", "2.1.2"],
+ [">=1", "1.0.0"],
+ [">= 1", "1.0.0"],
+ ["<1.2", "1.1.1"],
+ ["< 1.2", "1.1.1"],
+ ["=0.7.x", "0.7.2"],
+ [">=0.7.x", "0.7.2"],
+ ["<=0.7.x", "0.6.2"],
+ ["<=0.7.x", "0.7.2"]
+ ].forEach(function (v) {
+ assert.ok(xulApp.satisfiesVersion(v[1], v[0]), v[0] + " satisfied by " + v[1]);
+ });
+}
+exports["test not satisfies version range"] = function (assert) {
+ [ ["1.0.0 - 2.0.0", "2.2.3"],
+ ["1.0.0", "1.0.1"],
+ [">=1.0.0", "0.0.0"],
+ [">=1.0.0", "0.0.1"],
+ [">=1.0.0", "0.1.0"],
+ [">1.0.0", "0.0.1"],
+ [">1.0.0", "0.1.0"],
+ ["<=2.0.0", "3.0.0"],
+ ["<=2.0.0", "2.9999.9999"],
+ ["<=2.0.0", "2.2.9"],
+ ["<2.0.0", "2.9999.9999"],
+ ["<2.0.0", "2.2.9"],
+ [">=0.1.97", "v0.1.93"],
+ [">=0.1.97", "0.1.93"],
+ ["0.1.20 || 1.2.4", "1.2.3"],
+ [">=0.2.3 || <0.0.1", "0.0.3"],
+ [">=0.2.3 || <0.0.1", "0.2.2"],
+ ["2.x.x", "1.1.3"],
+ ["2.x.x", "3.1.3"],
+ ["1.2.x", "1.3.3"],
+ ["1.2.x || 2.x", "3.1.3"],
+ ["1.2.x || 2.x", "1.1.3"],
+ ["2.*.*", "1.1.3"],
+ ["2.*.*", "3.1.3"],
+ ["1.2.*", "1.3.3"],
+ ["1.2.* || 2.*", "3.1.3"],
+ ["1.2.* || 2.*", "1.1.3"],
+ ["2", "1.1.2"],
+ ["2.3", "2.3.1"],
+ ["2.3", "2.4.1"],
+ ["<1", "1.0.0"],
+ [">=1.2", "1.1.1"],
+ ["1", "2.0.0beta"],
+ ["=0.7.x", "0.8.2"],
+ [">=0.7.x", "0.6.2"],
+ ].forEach(function (v) {
+ assert.ok(!xulApp.satisfiesVersion(v[1], v[0]), v[0] + " not satisfied by " + v[1]);
+ });
+}
+
+require("sdk/test").run(exports);