gecko-dev/devtools/client/commandline/test/browser_gcli_union.js

174 строки
4.8 KiB
JavaScript

/*
* 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_union.js");
}
// var assert = require('../testharness/assert');
// var helpers = require('./helpers');
exports.testDefault = function (options) {
return helpers.audit(options, [
{
setup: "unionc1",
check: {
input: "unionc1",
markup: "VVVVVVV",
hints: " <first>",
status: "ERROR",
args: {
first: {
value: undefined,
arg: "",
status: "INCOMPLETE"
}
}
}
},
{
setup: "unionc1 three",
check: {
input: "unionc1 three",
markup: "VVVVVVVVVVVVV",
hints: "",
status: "VALID",
args: {
first: {
value: function (data) {
assert.is(Object.keys(data).length, 2, "union3 Object.keys");
assert.is(data.type, "string", "union3 val type");
assert.is(data.string, "three", "union3 val string");
},
arg: " three",
status: "VALID"
}
}
},
exec: {
output: [
/"type": ?"string"/,
/"string": ?"three"/
]
},
post: function (output, text) {
var data = output.data.first;
assert.is(Object.keys(data).length, 2, "union3 Object.keys");
assert.is(data.type, "string", "union3 val type");
assert.is(data.string, "three", "union3 val string");
}
},
{
setup: "unionc1 one",
check: {
input: "unionc1 one",
markup: "VVVVVVVVVVV",
hints: "",
status: "VALID",
args: {
first: {
value: function (data) {
assert.is(Object.keys(data).length, 2, "union1 Object.keys");
assert.is(data.type, "selection", "union1 val type");
assert.is(data.selection, 1, "union1 val selection");
},
arg: " one",
status: "VALID"
}
}
},
exec: {
output: [
/"type": ?"selection"/,
/"selection": ?1/
]
},
post: function (output, text) {
var data = output.data.first;
assert.is(Object.keys(data).length, 2, "union1 Object.keys");
assert.is(data.type, "selection", "union1 val type");
assert.is(data.selection, 1, "union1 val selection");
}
},
{
skipIf: options.isPhantomjs, // PhantomJS gets predictions wrong
setup: "unionc1 5",
check: {
input: "unionc1 5",
markup: "VVVVVVVVV",
hints: " -> two",
predictions: [ "two" ],
status: "VALID",
args: {
first: {
value: function (data) {
assert.is(Object.keys(data).length, 2, "union5 Object.keys");
assert.is(data.type, "number", "union5 val type");
assert.is(data.number, 5, "union5 val number");
},
arg: " 5",
status: "VALID"
}
}
},
exec: {
output: [
/"type": ?"number"/,
/"number": ?5/
]
},
post: function (output, text) {
var data = output.data.first;
assert.is(Object.keys(data).length, 2, "union5 Object.keys");
assert.is(data.type, "number", "union5 val type");
assert.is(data.number, 5, "union5 val number");
}
},
{
skipIf: options.isPhantomjs, // PhantomJS URL type is broken
setup: "unionc2 on",
check: {
input: "unionc2 on",
hints: "e",
markup: "VVVVVVVVII",
current: "first",
status: "ERROR",
predictionsContains: [
"one",
"http://on/",
"https://on/"
],
args: {
command: { name: "unionc2" },
first: {
value: undefined,
arg: " on",
status: "INCOMPLETE",
message: "Can\u2019t use \u2018on\u2019."
},
}
}
}
]);
};