summaryrefslogtreecommitdiffstats
path: root/addon-sdk/source/test/addons/packaging
diff options
context:
space:
mode:
Diffstat (limited to 'addon-sdk/source/test/addons/packaging')
-rw-r--r--addon-sdk/source/test/addons/packaging/main.js57
-rw-r--r--addon-sdk/source/test/addons/packaging/package.json6
2 files changed, 63 insertions, 0 deletions
diff --git a/addon-sdk/source/test/addons/packaging/main.js b/addon-sdk/source/test/addons/packaging/main.js
new file mode 100644
index 000000000..87b2a0347
--- /dev/null
+++ b/addon-sdk/source/test/addons/packaging/main.js
@@ -0,0 +1,57 @@
+/* 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 options = require("@loader/options");
+var metadata = {};
+if (options.isNative) {
+ metadata = require("./package.json");
+ metadata.permissions = {};
+ Object.freeze(metadata);
+}
+else {
+ metadata = options.metadata;
+}
+
+exports.testPackaging = function(assert) {
+ assert.equal(metadata.description,
+ "Add-on development made easy.",
+ "packaging metadata should be available");
+ try {
+ metadata.description = 'new description';
+ assert.fail('should not have been able to set options.metadata property');
+ }
+ catch (e) {}
+
+ assert.equal(metadata.description,
+ "Add-on development made easy.",
+ "packaging metadata should be frozen");
+
+ assert.equal(metadata.permissions['private-browsing'], undefined,
+ "private browsing metadata should be undefined");
+
+ assert.equal(metadata['private-browsing'], undefined,
+ "private browsing metadata should be be frozen");
+
+ assert.equal(options['private-browsing'], undefined,
+ "private browsing metadata should be be frozen");
+
+ try {
+ metadata['private-browsing'] = true;
+ assert.fail('should not have been able to set options.metadata property');
+ }
+ catch(e) {}
+ assert.equal(metadata['private-browsing'], undefined,
+ "private browsing metadata should be be frozen");
+
+ try {
+ options.permissions['private-browsing'] = true;
+ assert.fail('should not have been able to set options.metadata.permissions property');
+ }
+ catch (e) {}
+ assert.equal(metadata.permissions['private-browsing'], undefined,
+ "private browsing metadata should be be frozen");
+};
+
+require("sdk/test/runner").runTestsFromModule(module);
diff --git a/addon-sdk/source/test/addons/packaging/package.json b/addon-sdk/source/test/addons/packaging/package.json
new file mode 100644
index 000000000..1514f387e
--- /dev/null
+++ b/addon-sdk/source/test/addons/packaging/package.json
@@ -0,0 +1,6 @@
+{
+ "id": "test-packaging@jetpack",
+ "description": "Add-on development made easy.",
+ "main": "./main.js",
+ "version": "0.0.1"
+}