summaryrefslogtreecommitdiffstats
path: root/devtools/client/commandline/test/browser_gcli_types.js
diff options
context:
space:
mode:
authorMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
committerMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
commit5f8de423f190bbb79a62f804151bc24824fa32d8 (patch)
tree10027f336435511475e392454359edea8e25895d /devtools/client/commandline/test/browser_gcli_types.js
parent49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff)
downloadUXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip
Add m-esr52 at 52.6.0
Diffstat (limited to 'devtools/client/commandline/test/browser_gcli_types.js')
-rw-r--r--devtools/client/commandline/test/browser_gcli_types.js118
1 files changed, 118 insertions, 0 deletions
diff --git a/devtools/client/commandline/test/browser_gcli_types.js b/devtools/client/commandline/test/browser_gcli_types.js
new file mode 100644
index 000000000..bbdd73c30
--- /dev/null
+++ b/devtools/client/commandline/test/browser_gcli_types.js
@@ -0,0 +1,118 @@
+/*
+ * Copyright 2012, Mozilla Foundation and contributors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+"use strict";
+
+// THIS FILE IS GENERATED FROM SOURCE IN THE GCLI PROJECT
+// PLEASE TALK TO SOMEONE IN DEVELOPER TOOLS BEFORE EDITING IT
+
+const exports = {};
+
+function test() {
+ helpers.runTestModule(exports, "browser_gcli_types.js");
+}
+
+// var assert = require('../testharness/assert');
+var util = require("gcli/util/util");
+
+function forEachType(options, templateTypeSpec, callback) {
+ var types = options.requisition.system.types;
+ return util.promiseEach(types.getTypeNames(), function (name) {
+ var typeSpec = {};
+ util.copyProperties(templateTypeSpec, typeSpec);
+ typeSpec.name = name;
+ typeSpec.requisition = options.requisition;
+
+ // Provide some basic defaults to help selection/delegate/array work
+ if (name === "selection") {
+ typeSpec.data = [ "a", "b" ];
+ }
+ else if (name === "delegate") {
+ typeSpec.delegateType = function () {
+ return "string";
+ };
+ }
+ else if (name === "array") {
+ typeSpec.subtype = "string";
+ }
+ else if (name === "remote") {
+ return;
+ }
+ else if (name === "union") {
+ typeSpec.alternatives = [{ name: "string" }];
+ }
+ else if (options.isRemote) {
+ if (name === "node" || name === "nodelist") {
+ return;
+ }
+ }
+
+ var type = types.createType(typeSpec);
+ var reply = callback(type);
+ return Promise.resolve(reply);
+ });
+}
+
+exports.testDefault = function (options) {
+ return forEachType(options, {}, function (type) {
+ var context = options.requisition.executionContext;
+ var blank = type.getBlank(context).value;
+
+ // boolean and array types are exempt from needing undefined blank values
+ if (type.name === "boolean") {
+ assert.is(blank, false, "blank boolean is false");
+ }
+ else if (type.name === "array") {
+ assert.ok(Array.isArray(blank), "blank array is array");
+ assert.is(blank.length, 0, "blank array is empty");
+ }
+ else if (type.name === "nodelist") {
+ assert.ok(typeof blank.item, "function", "blank.item is function");
+ assert.is(blank.length, 0, "blank nodelist is empty");
+ }
+ else {
+ assert.is(blank, undefined, "default defined for " + type.name);
+ }
+ });
+};
+
+exports.testNullDefault = function (options) {
+ var context = null; // Is this test still valid with a null context?
+
+ return forEachType(options, { defaultValue: null }, function (type) {
+ var reply = type.stringify(null, context);
+ return Promise.resolve(reply).then(function (str) {
+ assert.is(str, "", "stringify(null) for " + type.name);
+ });
+ });
+};
+
+exports.testGetSpec = function (options) {
+ return forEachType(options, {}, function (type) {
+ if (type.name === "param") {
+ return;
+ }
+
+ var spec = type.getSpec("cmd", "param");
+ assert.ok(spec != null, "non null spec for " + type.name);
+
+ var str = JSON.stringify(spec);
+ assert.ok(str != null, "serializable spec for " + type.name);
+
+ var example = options.requisition.system.types.createType(spec);
+ assert.ok(example != null, "creatable spec for " + type.name);
+ });
+};