Commit baa8389b authored by Rafael Monnerat's avatar Rafael Monnerat

Update parameter editor to use newer JSON Editor

See merge request !580
parents 06c91260 17066fa5
.subfield span:not(.slapos-parameter) {
font-weight: normal;
font-style: italic;
padding-left: 7px;
color: rgb(94, 127, 141)
}
.subfield select { margin-bottom: 10px;}
.subfield textarea {width: 250px; height: 60px;}
.subfield .error {
color: #E82525;
font-weight: 700;
}
.input button {margin-left: 10px;}
.bt_close, .subfield .slapos-parameter-dict-key span.bt_close{
padding: 0 6px;
display: block;
float: right;
text-overflow:clip;
white-space:nowrap;
overflow: hidden;
font-size: 1.5em;
border-radius: 2px;
}
.bt_close:hover {
background: #c9c9c9;
color: #fff;
}
.display-none {
display: none;
}
.non-editable > div.input {border: 1px solid rgb(201, 201, 201); padding: 5px; background: white; font-weight: normal;
margin: 5px 0 10px; max-height: 250px; width: 80%;}
textarea.slapos-parameter {
width: 400px;
height: 100px;
}
label.slapos-parameter-dict-key::before {
content: "\25BC Parameter Entry: ";
}
label.slapos-parameter-dict-key-colapse::before {
content: "\25BA Parameter Entry: ";
}
div.slapos-parameter-dict-key {
margin-top: 10px;
margin-left: 6px;
background: rgb(245, 245, 245);
border: 1px solid rgb(230, 230, 230);
padding: 5px;
}
/* cleanup */
fieldset > .subfield > label:not(.slapos-parameter-dict-key) {
color: rgb(112, 125, 136);
}
fieldset > div.subfield {
padding-left: 15px;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.field input ~ span,
.subfield input ~ span {
position: relative;
top: -27px;
pointer-events: none;
cursor: text;
}
.field input:not(:placeholder-shown) ~ span:not(.error),
.subfield input:not(:placeholder-shown) ~ span:not(.error),
.field select:not(:placeholder-shown) ~ span:not(.error),
.subfield select:not(:placeholder-shown) ~ span:not(.error) {
visibility: hidden;
}
.field input ~ span:not(.error),
.subfield input ~ span:not(.error),
.field select ~ span:not(.error),
.subfield select ~ span:not(.error) {
opacity: .7;
}
.field input:focus ~ span,
.subfield input:focus ~ span,
.field select:focus ~ span,
.subfield select:focus ~ span {
visibility: hidden;
}
.subfield .input {
margin-bottom: -15px;
}
.subfield .error {
float: right;
margin-right: 30px;
}
.subfield .input textarea {
margin-bottom: 16px;
}
.slapos-parameter-dict-key {
cursor: pointer;
font-style: italic;
color: #000;
}
label.slapos-parameter-dict-key {
text-transform: capitalize;
}
label.slapos-parameter-dict-key ~ div.input label {
color: rgb(112, 125, 136);
}
.slapos-parameter-dict-key label {
color: rgb(112, 125, 136);
}
/* add button */
.slapos-parameter-dict-key ~ .subfield .input {
position: relative;
margin-bottom: 0;
}
.input .add-sub-form {
position: absolute;
right: 10px;
top: 0;
bottom: 0;
text-decoration: none;
cursor: pointer;
color: #000;
margin: 0;
}
.add-sub-form:before {
background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='50px' height='50px'><path fill='#000' d='m6,17.16589l12.55862,0l0,-15.274l12.88276,0l0,15.274l12.55862,0l0,15.66822l-12.55862,0l0,15.274l-12.88276,0l0,-15.274l-12.55862,0l0,-15.66822z' fill-opacity='0.5'/></svg>");
background-size: contain;
content: "";
width: 16px;
height: 16px;
position: absolute;
background-repeat: no-repeat;
top: 8px;
left: 4px;
}
.subfield {
padding-top: 3px;
min-height: 5em;
}
.subfield select {
margin-bottom: 0;
}
.subfield .input select + span {
position: relative;
top: -1.9em;
opacity: .7;
}
select.readonly {
background: #EEE;
pointer-events: none;
touch-action: none;
}
div.slap_json_form {
display: block;
margin-inline-start: 2px;
margin-inline-end: 2px;
padding-block-start: 0.35em;
padding-inline-start: 0.75em;
padding-inline-end: 0.75em;
padding-block-end: 0.625em;
min-inline-size: min-content;
border-width: 2px;
border-style: groove;
border-color: threedface;
border-image: initial;
}
\ No newline at end of file
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>gadget_erp5_page_slap_json_form.css</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/css</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<!DOCTYPE html>
<html manifest="gadget_erp5.appcache">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>ERP5</title>
<link rel="shortcut icon" href="favicon.ico">
<script src="rsvp.js" type="text/javascript"></script>
<script src="renderjs.js" type="text/javascript"></script>
<script src="domsugar.js" type="text/javascript"></script>
<script src="gadget_erp5_page_slap_json_form.js" type="text/javascript"></script>
<link href="gadget_erp5_page_slap_json_form.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div class="json_form"></div>
<div class="json_form_load_schema"
data-gadget-url="gadget_erp5_page_slap_load_schema.html"
data-gadget-scope="json_form_load_schema" >
</div>
</body>
</html>
\ No newline at end of file
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>gadget_erp5_page_slap_json_form.html</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/html</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
/*jslint nomen: true, maxlen: 200, indent: 2, unparam: true*/
/*global window, rJS, domsugar, Boolean, btoa, atob, Number */
(function (window, rJS, domsugar, Boolean, btoa, atob, Number) {
"use strict";
function render_selection(json_field, default_value, is_required, editable) {
var input,
option_list = [domsugar('option', {
value: "",
selected: (default_value === undefined)
})],
option_index,
selected,
is_selected = (default_value === undefined),
data_format = "string",
property_dict = {
size: 1,
"placeholder": " ",
"class": "slapos-parameter"
};
if (json_field.type === "integer" || json_field.type === "number") {
data_format = "number";
} else if (json_field.type === "boolean") {
data_format = "boolean";
}
if (default_value === undefined) {
default_value = "";
}
for (option_index in json_field['enum']) {
if (json_field['enum'].hasOwnProperty(option_index)) {
selected = (json_field['enum'][option_index].toString() === default_value.toString());
is_selected = (is_selected || selected);
option_list.push(domsugar('option', {
value: json_field['enum'][option_index],
text: json_field['enum'][option_index],
"data-format": data_format,
selected: selected
}));
}
}
if (!is_selected) {
// The default value should be included even if it is
// outside the enum.
option_list.push(domsugar('option', {
value: default_value,
text: default_value,
"data-format": data_format,
selected: true
}));
}
property_dict["data-format"] = data_format;
if (is_required) {
property_dict.required = true;
}
input = domsugar('select', property_dict, option_list);
if (!editable) {
input.classList.add("readonly");
input["aria-disabled"] = "true";
input["tab-index"] = "-1";
}
return input;
}
function render_selection_oneof(json_field, default_value, is_required, editable) {
var input,
option_list = [domsugar('option', {
value: "",
selected: (default_value === undefined)
})],
property_dict = {
size: 1,
"placeholder": " ",
"class": "slapos-parameter"
};
json_field.oneOf.forEach(function (element) {
if ((element['const'] !== undefined) && (element.title !== undefined)) {
var value;
if ((json_field.type === 'array') || (json_field.type === 'object')) {
// Support for unusual types
value = JSON.stringify(element['const']);
} else {
value = element['const'];
}
option_list.push(domsugar('option', {
value: value,
text: element.title,
selected: (value === default_value)
}));
}
});
if (is_required) {
property_dict.required = true;
}
input = domsugar('select', property_dict, option_list);
if (!editable) {
input.classList.add("readonly");
input["aria-disabled"] = "true";
input["tab-index"] = "-1";
}
return input;
}
function render_textarea(json_field, default_value, data_format, is_required, editable) {
var input, property_dict = {
"data-format": data_format,
"placeholder": " ",
"class": "slapos-parameter"
};
if (default_value !== undefined) {
if (default_value instanceof Array) {
property_dict.value = default_value.join("\n");
} else {
property_dict.value = default_value;
}
}
if (is_required) {
property_dict.required = true;
}
input = domsugar('textarea', property_dict);
if (!editable) {
input.setAttribute('readonly', true);
}
return input;
}
function testInteger(value) {
var parsed_value;
if (value === undefined || value === "") {
// Value is empty so it is ok to render the field
return true;
}
parsed_value = parseFloat(value);
if (!isNaN(parsed_value) && (Number.isInteger(parsed_value))) {
return true;
}
return false;
}
function testNumber(value) {
var parsed_value;
if (value === undefined || value === "") {
// Value is empty so it is ok to render the field
return true;
}
parsed_value = parseFloat(value);
if (!isNaN(parsed_value)) {
return true;
}
return false;
}
function render_field(json_field, default_value, is_required, editable) {
var input,
data_format,
domsugar_input_dict = {"placeholder": " ", "class": "slapos-parameter"};
if (json_field['enum'] !== undefined) {
return render_selection(json_field, default_value, is_required, editable);
}
if (json_field.oneOf !== undefined) {
return render_selection_oneof(json_field, default_value, is_required, editable);
}
if (json_field.type === "boolean") {
json_field['enum'] = [true, false];
if (default_value === "true") {
default_value = true;
}
if (default_value === "false") {
default_value = false;
}
return render_selection(json_field, default_value, is_required, editable);
}
if (json_field.type === "array") {
data_format = json_field.type;
if (json_field.items !== undefined) {
if (json_field.items.type === "number" || json_field.items.type === "integer") {
data_format = "array-number";
}
}
return render_textarea(json_field, default_value, data_format, is_required, editable);
}
if (json_field.type === "string" && json_field.textarea === true) {
return render_textarea(json_field, default_value, "string", is_required, editable);
}
if (default_value !== undefined) {
domsugar_input_dict.value = default_value;
}
if (json_field.type === "integer" && testInteger(default_value)) {
domsugar_input_dict.type = "number";
} else if (json_field.type === "number" && testNumber(default_value)) {
domsugar_input_dict.type = "number";
domsugar_input_dict.step = "any";
} else if (json_field.type === "hidden") {
domsugar_input_dict.type = "hidden";
} else {
domsugar_input_dict.type = "text";
}
if (is_required) {
domsugar_input_dict.required = true;
}
input = domsugar('input', domsugar_input_dict);
if (!editable) {
input.setAttribute('readonly', true);
}
return input;
}
function render_subform(json_field, default_dict, root, path, editable) {
var div_input,
key,
div,
label,
input,
default_value,
default_used_list = [],
is_required;
if (default_dict === undefined) {
default_dict = {};
}
if (path === undefined) {
path = "/";
}
if (json_field.patternProperties !== undefined) {
if (json_field.patternProperties['.*'] !== undefined) {
div = domsugar("div", {
"class": "subfield",
title: json_field.description
});
if (editable) {
div_input = domsugar("div", {
"class": "input"
}, [
domsugar('input', {
type: "text",
// Name is only meaningfull to automate tests
name: "ADD" + path
}),
domsugar('button', {
value: btoa(JSON.stringify(json_field.patternProperties['.*'])),
"class": "add-sub-form",
type: "button",
name: path,
text: "+"
})
]);
div.appendChild(div_input);
}
for (default_value in default_dict) {
if (default_dict.hasOwnProperty(default_value)) {
if (editable) {
label = domsugar('label', {
text: default_value,
'class': "slapos-parameter-dict-key slapos-parameter-dict-key-colapse"
}, [
domsugar('span', {
text: "×",
"class": "bt_close CLOSE" + path + "/" + default_value,
title: "Remove this parameter section."
})
]);
} else {
label = domsugar('label', {
text: default_value,
'class': "slapos-parameter-dict-key slapos-parameter-dict-key-colapse"
});
}
div.appendChild(render_subform(
json_field.patternProperties['.*'],
default_dict[default_value],
domsugar("div", {
"class": "slapos-parameter-dict-key"
}, [label]),
path + "/" + default_value,
editable
));
}
}
root.appendChild(div);
return div;
}
}
// Expand by force the allOf recomposing the properties and required.
for (key in json_field.allOf) {
if (json_field.allOf.hasOwnProperty(key)) {
if (json_field.properties === undefined) {
json_field.properties = json_field.allOf[key].properties;
} else if (json_field.allOf[key].properties !== undefined) {
json_field.properties = Object.assign({},
json_field.properties,
json_field.allOf[key].properties
);
}
if (json_field.required === undefined) {
json_field.required = json_field.allOf[key].required;
} else if (json_field.allOf[key].required !== undefined) {
json_field.required.push.apply(
json_field.required,
json_field.allOf[key].required
);
}
}
}
for (key in json_field.properties) {
if (json_field.properties.hasOwnProperty(key)) {
if (editable || default_dict[key] !== undefined) {
if (json_field.properties[key].title !== undefined) {
label = domsugar("label", {
'text': json_field.properties[key].title
});
} else {
label = domsugar("label", {'text': key });
}
is_required = false;
if ((Array.isArray(json_field.required)) && (json_field.required.includes(key))) {
is_required = true;
}
if (json_field.properties[key].type === 'object') {
label.setAttribute("class", "slapos-parameter-dict-key slapos-parameter-dict-key-collapse");
div_input = render_subform(json_field.properties[key],
default_dict[key],
domsugar("div", {"class": "input"}),
path + "/" + key,
editable);
} else {
input = render_field(
json_field.properties[key],
default_dict[key],
is_required,
editable
);
input.name = path + "/" + key;
div_input = domsugar("div", {"class": "input"}, [input]);
}
default_used_list.push(key);
if (json_field.properties[key]['default'] !== undefined) {
div_input.appendChild(
domsugar("span",
{'text': '(default = ' + json_field.properties[key]['default'] + ')'})
);
}
div_input.appendChild(domsugar("span", {'class': 'error'}));
root.appendChild(
domsugar("div", {
"class": "subfield",
title: json_field.properties[key].description
}, [label, div_input])
);
}
}
}
for (key in default_dict) {
if (default_dict.hasOwnProperty(key)) {
if (default_used_list.indexOf(key) < 0) {
if (typeof default_dict[key] === 'object') {
div = domsugar("div", {title: key}, [
domsugar("label", {
text: key,
"class": "slapos-parameter-dict-key slapos-parameter-dict-key-colapse"
}),
render_subform({},
default_dict[key],
domsugar("div", {"class": "input"}),
path + "/" + key,
editable)
]);
} else {
input = render_field({"type": "string", "textarea": true}, default_dict[key], false, editable);
input.name = path + "/" + key;
div = domsugar("div", {
title: key,
"class": "subfield"
}, [
domsugar("label", {text: key}),
domsugar("div", {"class": "input"}, [
input,
domsugar("span", {text: '(Not part of the schema)'}),
domsugar("span", {'class': 'error'})
])
]);
}
default_used_list.push(key);
root.appendChild(div);
}
}
}
return root;
}
function getFormValuesAsJSONDict(element) {
var json_dict = {},
entry,
entry_list,
multi_level_dict = {};
element.querySelectorAll(".slapos-parameter").forEach(function (input, index) {
var index_e, data_format = input.getAttribute("data-format");
if (input.value !== "") {
if (input.type === 'number') {
json_dict[input.name] = parseFloat(input.value);
} else if (input.tagName === "TEXTAREA") {
if (data_format === "string") {
json_dict[input.name] = input.value;
} else if (data_format === "array") {
json_dict[input.name] = input.value.split('\n');
} else if (data_format === "array-number") {
json_dict[input.name] = [];
entry_list = input.value.split("\n");
for (index_e in entry_list) {
if (entry_list.hasOwnProperty(index_e)) {
if (isNaN(parseFloat(entry_list[index_e]))) {
json_dict[input.name].push(entry_list[index_e]);
} else {
json_dict[input.name].push(parseFloat(entry_list[index_e]));
}
}
}
} else {
json_dict[input.name] = input.value.split('\n');
}
} else if (input.tagName === "SELECT") {
if (data_format === "number" || data_format === "integer") {
// Integer must use parseFloat, otherwise the value is rounded
// loosing user's input.
if (isNaN(parseFloat(input.value))) {
json_dict[input.name] = input.value;
} else {
json_dict[input.name] = parseFloat(input.value);
}
} else if (input.getAttribute("data-format") === "boolean") {
if (input.value === "true") {
json_dict[input.name] = Boolean(input.value);
} else if (input.value === "false") {
json_dict[input.name] = false;
} else {
json_dict[input.name] = input.value;
}
} else {
json_dict[input.name] = input.value;
}
} else {
json_dict[input.name] = input.value;
}
}
});
function convertOnMultiLevel(key, value, d) {
var i,
kk,
key_list = key.split("/");
for (i = 2; i < key_list.length; i += 1) {
kk = key_list[i];
if (i === key_list.length - 1) {
d[kk] = value;
} else {
if (!d.hasOwnProperty(kk)) {
d[kk] = {};
}
d = d[kk];
}
}
}
for (entry in json_dict) {
if (json_dict.hasOwnProperty(entry)) {
convertOnMultiLevel(entry, json_dict[entry], multi_level_dict);
}
}
return multi_level_dict;
}
function collapseParameter(element) {
element.parentNode.querySelectorAll("div.subfield").forEach(function (div, i) {
div.classList.toggle("display-none");
});
element.classList.toggle("slapos-parameter-dict-key-colapse");
return element;
}
function removeSubParameter(element) {
element.parentNode.parentNode.remove();
return false;
}
function addSubForm(gadget, element) {
var subform_json = JSON.parse(atob(element.value)),
input_text = element.parentNode.querySelector("input[type='text']"),
div;
if (input_text.value === "") {
return false;
}
div = domsugar('div', {
'class': "slapos-parameter-dict-key"
}, [domsugar('label', {
'class': "slapos-parameter-dict-key",
text: input_text.value
})]);
div = render_subform(subform_json, {}, div, element.name + "/" + input_text.value, gadget.state.editable);
element.parentNode.parentNode.insertBefore(div, element.parentNode.parentNode.children[1]);
return div;
}
/////////////////////////////////////////////////////
// Gadget methods
/////////////////////////////////////////////////////
rJS(window)
.declareMethod("validateJSON", function (schema_url, generated_json) {
return this.getDeclaredGadget('json_form_load_schema')
.push(function (gadget) {
if (schema_url === undefined) {
// Skip validation if no schema is provided.
return {errors: []};
}
return gadget.validateJSON(undefined, schema_url, generated_json);
});
})
.declareMethod('render', function (options) {
return this.changeState({
schema_url: options.schema_url,
json_field: options.json_field,
default_dict: options.default_dict,
editable: options.editable,
// Force refresh in any case
render_timestamp: new Date().getTime()
});
})
.onStateChange(function () {
var gadget = this,
i,
div = render_subform(
gadget.state.json_field,
gadget.state.default_dict,
domsugar('div'),
undefined,
gadget.state.editable
),
div_list = div.querySelectorAll('.slapos-parameter-dict-key > div');
for (i = 0; i < div_list.length; i = i + 1) {
// This should be replaced by a proper class hidden-div
div_list[i].classList.add('display-none');
}
if (div.hasChildNodes()) {
div.classList.add("slap_json_form");
}
return domsugar(gadget.element, {}, [div]);
})
.onEvent("change", function (evt) {
var gadget = this;
// @ts-ignore
if (evt.target.className.indexOf("slapos-parameter") !== -1) {
// getContent is protected by a mutex which prevent
// onchangestate to be called in parallel
return gadget.getContent();
}
}, false, false)
.onEvent("click", function (evt) {
// Only handle click on BUTTON element
var gadget = this,
queue,
// @ts-ignore
tag_name = evt.target.tagName;
if ((tag_name === 'LABEL') &&
// @ts-ignore
(evt.target.className.indexOf("slapos-parameter-dict-key") !== -1)) {
return collapseParameter(evt.target);
}
if ((tag_name === 'SPAN') &&
// @ts-ignore
(evt.target.className.indexOf("bt_close") !== -1)) {
return removeSubParameter(evt.target);
}
if (tag_name === 'BUTTON') {
// Disable any button. It must be managed by this gadget
evt.preventDefault();
}
// Always get content to ensure the possible displayed form
// is checked and content propagated to the gadget state value
queue = gadget.getContent();
if ((tag_name === 'BUTTON') &&
// @ts-ignore
(evt.target.className.indexOf("add-sub-form") !== -1)) {
return queue
.push(function () {
return addSubForm(gadget, evt.target);
});
}
}, false, false)
.declareMethod('getContent', function () {
var gadget = this,
json_dict = getFormValuesAsJSONDict(gadget.element);
return gadget.validateJSON(gadget.state.schema_url, json_dict)
.push(function (validation) {
var error_index,
field_name,
div,
input_field,
error_dict;
gadget.element.querySelectorAll("span.error").forEach(function (span, i) {
span.textContent = "";
});
gadget.element.querySelectorAll("div.error-input").forEach(function (div, i) {
div.setAttribute("class", "");
});
// Update fields if errors exist
for (error_index in validation.errors) {
if (validation.errors.hasOwnProperty(error_index)) {
error_dict = validation.errors[error_index];
// error_dict = { error : "", instanceLocation: "#", keyword: "", keywordLocation: "" }
field_name = error_dict.instanceLocation.slice(1);
if (field_name !== "") {
input_field = gadget.element.querySelector(".slapos-parameter[name='/" + field_name + "']");
if (input_field === null) {
field_name = field_name.split("/").slice(0, -1).join("/");
input_field = gadget.element.querySelector(".slapos-parameter[name='/" + field_name + "']");
}
if (input_field !== null) {
div = input_field.parentNode;
div.setAttribute("class", "slapos-parameter error-input");
div.querySelector("span.error").textContent = validation.errors[error_index].error;
}
} else if (error_dict.keyword === "required") {
// Specific use case for required
field_name = "/" + error_dict.key;
input_field = gadget.element.querySelector(".slapos-parameter[name='/" + field_name + "']");
if (input_field === null) {
field_name = field_name.split("/").slice(0, -1).join("/");
input_field = gadget.element.querySelector(".slapos-parameter[name='/" + field_name + "']");
}
if (input_field !== null) {
div = input_field.parentNode;
div.setAttribute("class", "slapos-parameter error-input");
div.querySelector("span.error").textContent = error_dict.error;
}
}
}
}
return json_dict;
});
}, {mutex: 'statechange'});
}(window, rJS, domsugar, Boolean, btoa, atob, Number));
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>gadget_erp5_page_slap_json_form.js</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/javascript</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -37,7 +37,7 @@
</fieldset>
<fieldset id="parameter-main">
<div class="parameter_json_form"
data-gadget-url="gadget_erp5_page_slap_json_form.html"
data-gadget-url="json-editor.gadget.html"
data-gadget-scope="json_form"> </div>
<div class="failover-textarea"> </div>
</fieldset>
......
......@@ -7,7 +7,8 @@
"use strict";
var DISPLAY_JSON_FORM = 'display_json_form',
DISPLAY_RAW_XML = 'display_raw_xml';
DISPLAY_RAW_XML = 'display_raw_xml',
PARAMETER_KEY = 'parameter_key';
//////////////////////////////////////////
// ParserError
......@@ -130,6 +131,12 @@
.push(function (gadget) {
return gadget.getContent();
})
.push(function (json_dict) {
if (json_dict && (json_dict[PARAMETER_KEY] !== undefined)) {
return JSON.parse(json_dict[PARAMETER_KEY]);
}
return {};
})
.push(function (json_dict) {
var parameter_hash_input = g.element.querySelectorAll('.parameter_hash_output')[0],
serialisation_type = getSerialisationTypeFromForm(g.element),
......@@ -442,13 +449,14 @@
prefix = json_url.split(json_url_uri.path())[0] + prefix.join("/");
parameter_json_schema_url = prefix + "/" + parameter_json_schema_url;
}
// loadJSONSchema is there to ensure that the JSON from a proper serialisation
//
return gadget.loadJSONSchema(parameter_json_schema_url, serialisation)
.push(function (json) {
.push(function () {
// Reset failover text area
domsugar(gadget.element.querySelector('div.failover-textarea'));
return gadget.renderSubForm(
parameter_json_schema_url,
json,
parameter_dict,
editable
);
......@@ -489,13 +497,14 @@
});
})
.declareMethod("renderSubForm", function (parameter_json_schema_url, json_field, default_dict, editable) {
.declareMethod("renderSubForm", function (parameter_json_schema_url, default_dict, editable) {
return this.getDeclaredGadget('json_form')
.push(function (gadget) {
return gadget.render({
schema_url: parameter_json_schema_url,
json_field: json_field,
default_dict: default_dict,
key: PARAMETER_KEY,
// value is always string
value: JSON.stringify(default_dict),
editable: editable
});
});
......
This source diff could not be displayed because it is too large. You can view the blob instead.
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>ref-parser.min.js</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/javascript</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
erp5_json_editor
erp5_item
erp5_computer_immobilisation
erp5_software_pdm
......
......@@ -96,9 +96,6 @@ url_list = [
"gadget_erp5_page_slap_parameter_form.css",
"gadget_erp5_page_slap_parameter_form.html",
"gadget_erp5_page_slap_parameter_form.js",
"gadget_erp5_page_slap_json_form.css",
"gadget_erp5_page_slap_json_form.html",
"gadget_erp5_page_slap_json_form.js",
"gadget_erp5_page_slap_payment_result.html",
"gadget_erp5_page_slap_person_get_token.html",
"gadget_erp5_page_slap_person_get_token.js",
......
......@@ -86,7 +86,9 @@ erp5_gadget
erp5_glossary
erp5_graph_editor"""
common_folder_list = """erp5_json_type
common_folder_list = """erp5_jquery_sheet_editor
erp5_json_editor
erp5_json_type
erp5_monaco_editor
erp5_multimedia
erp5_notebook
......@@ -196,7 +198,6 @@ erp5_immobilisation
erp5_ingestion
erp5_integration
erp5_invoicing
erp5_jquery_sheet_editor
%(common_folder_list)s
erp5_xhtml_style
external_method
......@@ -249,7 +250,6 @@ erp5_immobilisation
erp5_ingestion
erp5_integration
erp5_invoicing
erp5_jquery_sheet_editor
%(common_folder_list)s
external_method
slapos_disaster_recovery
......@@ -288,7 +288,6 @@ erp5_immobilisation
erp5_ingestion
erp5_integration
erp5_invoicing
erp5_jquery_sheet_editor
%(common_folder_list)s
external_method
slapos_disaster_recovery
......@@ -328,7 +327,6 @@ erp5_ingestion
erp5_integration
erp5_invoicing
erp5_jquery
erp5_jquery_sheet_editor
%(common_folder_list)s
erp5_xhtml_style
external_method
......@@ -368,13 +366,14 @@ erp5_integration
erp5_invoicing
erp5_jquery
erp5_jquery_sheet_editor
erp5_json_editor
erp5_json_type
erp5_km_widget_library
%(common_folder_list)s
erp5_xhtml_style
external_method
slapos_disaster_recovery
""" % {'common_folder_list' : '\n'.join(common_folder_list.split('\n')[1:]),
""" % {'common_folder_list' : '\n'.join(common_folder_list.split('\n')[3:]),
'common2_folder_list' : common2_folder_list,
'common3_folder_list' : common3_folder_list,
'slapos_folder_list': slapos_folder_list
......@@ -407,7 +406,6 @@ erp5_immobilisation
erp5_ingestion
erp5_integration
erp5_invoicing
erp5_jquery_sheet_editor
%(common_folder_list)s
external_method
slapos_disaster_recovery
......@@ -444,7 +442,6 @@ erp5_immobilisation
erp5_ingestion
erp5_integration
erp5_invoicing
erp5_jquery_sheet_editor
%(common_folder_list)s
erp5_xhtml_style
external_method
......@@ -482,7 +479,6 @@ erp5_immobilisation
erp5_ingestion
erp5_integration
erp5_invoicing
erp5_jquery_sheet_editor
%(common_folder_list)s
external_method
slapos_disaster_recovery
......@@ -519,7 +515,6 @@ erp5_immobilisation
erp5_ingestion
erp5_integration
erp5_invoicing
erp5_jquery_sheet_editor
%(common_folder_list)s
external_method
slapos_disaster_recovery
......@@ -557,7 +552,6 @@ erp5_immobilisation
erp5_ingestion
erp5_integration
erp5_invoicing
erp5_jquery_sheet_editor
%(common_folder_list)s
external_method
slapos_disaster_recovery
......@@ -595,7 +589,6 @@ erp5_immobilisation
erp5_ingestion
erp5_integration
erp5_invoicing
erp5_jquery_sheet_editor
%(common_folder_list)s
erp5_xhtml_style
external_method
......@@ -634,7 +627,6 @@ erp5_immobilisation
erp5_ingestion
erp5_integration
erp5_invoicing
erp5_jquery_sheet_editor
%(common_folder_list)s
erp5_xhtml_style
external_method
......@@ -674,7 +666,6 @@ erp5_immobilisation
erp5_ingestion
erp5_integration
erp5_invoicing
erp5_jquery_sheet_editor
%(common_folder_list)s
external_method
slapos_disaster_recovery
......@@ -713,7 +704,6 @@ erp5_immobilisation
erp5_ingestion
erp5_integration
erp5_invoicing
erp5_jquery_sheet_editor
%(common_folder_list)s
erp5_xhtml_style
external_method
......@@ -751,7 +741,6 @@ erp5_immobilisation
erp5_ingestion
erp5_integration
erp5_invoicing
erp5_jquery_sheet_editor
%(common_folder_list)s
erp5_xhtml_style
external_method
......@@ -787,7 +776,6 @@ erp5_immobilisation
erp5_ingestion
erp5_integration
erp5_invoicing
erp5_jquery_sheet_editor
%(common_folder_list)s
erp5_xhtml_style
external_method
......@@ -823,7 +811,6 @@ erp5_immobilisation
erp5_ingestion
erp5_integration
erp5_invoicing
erp5_jquery_sheet_editor
%(common_folder_list)s
erp5_xhtml_style
external_method
......@@ -859,7 +846,6 @@ erp5_immobilisation
erp5_ingestion
erp5_integration
erp5_invoicing
erp5_jquery_sheet_editor
%(common_folder_list)s
erp5_xhtml_style
external_method
......@@ -912,7 +898,6 @@ erp5_immobilisation
erp5_ingestion
erp5_integration
erp5_invoicing
erp5_jquery_sheet_editor
%(common_folder_list)s
erp5_xhtml_style
external_method
......@@ -948,7 +933,6 @@ erp5_immobilisation
erp5_ingestion
erp5_integration
erp5_invoicing
erp5_jquery_sheet_editor
%(common_folder_list)s
erp5_xhtml_style
external_method
......@@ -984,7 +968,6 @@ erp5_immobilisation
erp5_ingestion
erp5_integration
erp5_invoicing
erp5_jquery_sheet_editor
%(common_folder_list)s
erp5_xhtml_style
external_method
......@@ -1020,7 +1003,6 @@ erp5_immobilisation
erp5_ingestion
erp5_integration
erp5_invoicing
erp5_jquery_sheet_editor
%(common_folder_list)s
erp5_xhtml_style
external_method
......@@ -1056,7 +1038,6 @@ erp5_immobilisation
erp5_ingestion
erp5_integration
erp5_invoicing
erp5_jquery_sheet_editor
%(common_folder_list)s
erp5_xhtml_style
external_method
......@@ -1095,7 +1076,6 @@ erp5_immobilisation
erp5_ingestion
erp5_integration
erp5_invoicing
erp5_jquery_sheet_editor
%(common_folder_list)s
erp5_xhtml_style
external_method
......
......@@ -59,3 +59,6 @@ class TestSlapOSMonacoEditorPrecacheManifestList(
TestSlapOSHostingJSPrecacheManifestList):
manifest_script_id = 'WebSection_getMonacoEditorPrecacheManifestList'
class TestSlapOSJsonEditorPrecacheManifestList(
TestSlapOSHostingJSPrecacheManifestList):
manifest_script_id = 'WebSection_getJsonEditorPrecacheManifestList'
\ No newline at end of file
......@@ -448,7 +448,8 @@
</item>
<item>
<key> <string>configuration_precache_manifest_script_list</string> </key>
<value> <string>WebSection_getHostingJSPrecacheManifestList</string> </value>
<value> <string>WebSection_getHostingJSPrecacheManifestList\n
WebSection_getJsonEditorPrecacheManifestList</string> </value>
</item>
<item>
<key> <string>configuration_service_worker_url</string> </key>
......@@ -707,7 +708,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>1001.26171.19762.42854</string> </value>
<value> <string>1010.52641.3080.21452</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -727,7 +728,7 @@
</tuple>
<state>
<tuple>
<float>1659036783.36</float>
<float>1700245844.87</float>
<string>UTC</string>
</tuple>
</state>
......
......@@ -142,6 +142,54 @@
}
}
},
"simple-object-with-additionalProperties-string": {
"title": "Sample Object with additionalProperties as string",
"description": "Sample Object with additionalProperties as string",
"default": {},
"additionalProperties": {
"description": "Sample String",
"type": "string"
},
"type": "object"
},
"simple-object-string": {
"title": "Example of multi strings as a Dict",
"description": "Example of multi strings as a Dict",
"patternProperties": {
".*": {
"description": "Sample String",
"type": "string"
}
},
"type": "object"
},
"simple-object-with-additionalProperties-array-string": {
"title": "Sample Object with additionalProperties as array of string",
"description": "Sample Object with additionalProperties as array of string",
"default": {},
"additionalProperties": {
"description": "Sample array of String",
"items": {
"type": "string"
},
"type": "array"
},
"type": "object"
},
"simple-object-array-string": {
"title": "Example of multi arrays of strings as a Dict",
"description": "Example of multi strings as a Dict",
"patternProperties": {
".*": {
"description": "Sample array of strings",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"simple-object-dict": {
"title": "Example of multi objects as a Dict",
"description": "Example of multi objects as a Dict",
......
......@@ -33,8 +33,8 @@
"default": "simple string A"
},
"simple-boolean": {
"title": "Example of Simple String",
"description": "Example of Simple String",
"title": "Example of Boolean",
"description": "Example of Boolean",
"type": "boolean",
"default": true
},
......@@ -74,7 +74,7 @@
"default": 1.0
},
"simple-numeric-integer-enum": {
"title": "Example of Simple Numeric as integer",
"title": "Example of Simple Numeric as integer with enum",
"description": "Example of Simple Numeric as Interger",
"type": "number",
"default": 1.0,
......@@ -96,7 +96,7 @@
"default": 1.5
},
"simple-numeric-float-enum": {
"title": "Example of Simple Numeric as float",
"title": "Example of Simple Numeric as float with enum",
"description": "Example of Simple Numeric as float",
"type": "number",
"default": 1.5,
......
......@@ -94,6 +94,23 @@
1.25,
1.5
]
},
"simple-numeric-float-oneOf": {
"title": "Example of Simple Numeric as float (oneOf)",
"description": "Example of Simple Numeric as float (oneOf)",
"type": "number",
"oneOf": [
{
"type": number,
"const": 6,
"title": "Six"
},
{
"type": number,
"const": 15,
"title": "Fifteen"
}
]
}
}
}
......
......@@ -83,6 +83,54 @@
}
}
},
"simple-object-with-additionalProperties-string": {
"title": "Sample Object with additionalProperties as string",
"description": "Sample Object with additionalProperties as string",
"default": {},
"additionalProperties": {
"description": "Sample String",
"type": "string"
},
"type": "object"
},
"simple-object-string": {
"title": "Example of multi strings as a Dict",
"description": "Example of multi strings as a Dict",
"patternProperties": {
".*": {
"description": "Sample String",
"type": "string"
}
},
"type": "object"
},
"simple-object-with-additionalProperties-array-string": {
"title": "Sample Object with additionalProperties as array of string",
"description": "Sample Object with additionalProperties as array of string",
"default": {},
"additionalProperties": {
"description": "Sample array of String",
"items": {
"type": "string"
},
"type": "array"
},
"type": "object"
},
"simple-object-array-string": {
"title": "Example of multi arrays of strings as a Dict",
"description": "Example of multi strings as a Dict",
"patternProperties": {
".*": {
"description": "Sample array of strings",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"simple-object-dict": {
"title": "Example of multi objects as a Dict",
"description": "Example of multi objects as a Dict",
......
......@@ -115,6 +115,23 @@
1.25,
1.5
]
},
"simple-numeric-float-oneOf": {
"title": "Example of Simple Numeric as float (oneOf)",
"description": "Example of Simple Numeric as float (oneOf)",
"type": "number",
"oneOf": [
{
"type": number,
"const": 6,
"title": "Six"
},
{
"type": number,
"const": 15,
"title": "Fifteen"
}
]
}
}
}
......
......@@ -103,22 +103,9 @@
'gadget_erp5_page_slap_parameter_form.html')]//select[@name="software_type"]</td>
<td>Custom Personal</td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//domain"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//domain"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="//domain"]</td>
<td>www.erp5.com</td>
</tr>
<tal:block tal:define="name python:'root[domain]'; value python: 'www.erp5.com'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_SlapOSCommonTemplate/macros/click_proceed" />
......@@ -218,20 +205,13 @@
'gadget_erp5_page_slap_parameter_form.html')]//select[@name="software_type"]</td>
<td>custom-personal</td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//domain"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//domain"]</td>
<td></td>
</tr>
<tal:block tal:define="name python:'root[domain]'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_for_input_text" />
</tal:block>
<tr>
<td>assertValue</td>
<td>//input[@name="//domain"]</td>
<td>//input[@name="root[domain]"]</td>
<td>www.erp5.com</td>
</tr>
......
......@@ -104,22 +104,9 @@
'gadget_erp5_page_slap_parameter_form.html')]//select[@name="software_type"]</td>
<td>Custom Personal</td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//domain"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//domain"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="//domain"]</td>
<td>www.erp5.com</td>
</tr>
<tal:block tal:define="name python:'root[domain]'; value python: 'www.erp5.com'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_SlapOSCommonTemplate/macros/click_proceed" />
......@@ -227,22 +214,9 @@
'gadget_erp5_page_slap_parameter_form.html')]//select[@name="software_type"]</td>
<td>Custom Personal</td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//domain"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//domain"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="//domain"]</td>
<td>www.erp5.com</td>
</tr>
<tal:block tal:define="name python:'root[domain]'; value python: 'www.erp5.com'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_SlapOSCommonTemplate/macros/click_proceed" />
......
......@@ -103,22 +103,9 @@
'gadget_erp5_page_slap_parameter_form.html')]//select[@name="software_type"]</td>
<td>Custom Personal</td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//domain"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//domain"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="//domain"]</td>
<td>www.erp5.com</td>
</tr>
<tal:block tal:define="name python:'root[domain]'; value python: 'www.erp5.com'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_SlapOSCommonTemplate/macros/click_proceed" />
......@@ -209,20 +196,13 @@
'gadget_erp5_page_slap_parameter_form.html')]//select[@name="software_type"]</td>
<td>custom-personal</td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//domain"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//domain"]</td>
<td></td>
</tr>
<tal:block tal:define="name python:'root[domain]'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_for_input_text" />
</tal:block>
<tr>
<td>assertValue</td>
<td>//input[@name="//domain"]</td>
<td>//input[@name="root[domain]"]</td>
<td>www.erp5.com</td>
</tr>
......@@ -280,22 +260,9 @@
</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//url"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//url"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="//url"]</td>
<td>http://www.erp5.com/shared/instance</td>
</tr>
<tal:block tal:define="name python:'root[url]'; value python: 'http://www.erp5.com/shared/instance'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_SlapOSCommonTemplate/macros/click_proceed" />
......
......@@ -102,107 +102,23 @@
<td>Cluster</td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="ADD//kvm-partition-dict"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="ADD//kvm-partition-dict"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="ADD//kvm-partition-dict"]</td>
<td>KVM-CLUSTER-INSTANCE-0</td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//button[@name="//kvm-partition-dict"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//button[@name="//kvm-partition-dict"]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//button[@name="//kvm-partition-dict"]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//kvm-partition-dict/KVM-CLUSTER-INSTANCE-0/disk-size"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//kvm-partition-dict/KVM-CLUSTER-INSTANCE-0/disk-size"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="//kvm-partition-dict/KVM-CLUSTER-INSTANCE-0/disk-size"]</td>
<td>10</td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="ADD//kvm-partition-dict"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="ADD//kvm-partition-dict"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="ADD//kvm-partition-dict"]</td>
<td>KVM-CLUSTER-INSTANCE-1</td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//button[@name="//kvm-partition-dict"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//button[@name="//kvm-partition-dict"]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//button[@name="//kvm-partition-dict"]</td>
<td></td>
</tr>
<tal:block tal:define="name python:'root.kvm-partition-dict'; value python: 'KVM-CLUSTER-INSTANCE-0'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/json_add_property" />
</tal:block>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//kvm-partition-dict/KVM-CLUSTER-INSTANCE-1/disk-size"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//kvm-partition-dict/KVM-CLUSTER-INSTANCE-1/disk-size"]</td>
<td></td>
</tr>
<tal:block tal:define="name python:'root[kvm-partition-dict][KVM-CLUSTER-INSTANCE-0][disk-size]';
value python: '10'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tr>
<td>type</td>
<td>//input[@name="//kvm-partition-dict/KVM-CLUSTER-INSTANCE-1/disk-size"]</td>
<td>20</td>
</tr>
<tal:block tal:define="name python:'root.kvm-partition-dict'; value python: 'KVM-CLUSTER-INSTANCE-1'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/json_add_property" />
</tal:block>
<tal:block tal:define="name python:'root[kvm-partition-dict][KVM-CLUSTER-INSTANCE-1][disk-size]';
value python: '20'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_SlapOSCommonTemplate/macros/click_proceed" />
......@@ -248,59 +164,22 @@
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//kvm-partition-dict/KVM-CLUSTER-INSTANCE-1/disk-size"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//kvm-partition-dict/KVM-CLUSTER-INSTANCE-1/disk-size"]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//kvm-partition-dict/KVM-CLUSTER-INSTANCE-0/disk-size"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//kvm-partition-dict/KVM-CLUSTER-INSTANCE-0/disk-size"]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//select[@name="//kvm-partition-dict/KVM-CLUSTER-INSTANCE-0/boot-image-url-select"]</td>
<td></td>
</tr>
<tal:block tal:define="name python:'root[kvm-partition-dict][KVM-CLUSTER-INSTANCE-0][disk-size]'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_for_input_text" />
</tal:block>
<tr>
<td>assertElementPresent</td>
<td>//select[@name="//kvm-partition-dict/KVM-CLUSTER-INSTANCE-0/boot-image-url-select"]</td>
<td></td>
</tr>
<tal:block tal:define="name python:'root[kvm-partition-dict][KVM-CLUSTER-INSTANCE-1][disk-size]'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_for_input_text" />
</tal:block>
<tr>
<td>waitForElementPresent</td>
<td>//span[@class="bt_close CLOSE//kvm-partition-dict/KVM-CLUSTER-INSTANCE-1"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//span[@class="bt_close CLOSE//kvm-partition-dict/KVM-CLUSTER-INSTANCE-1"]</td>
<td></td>
</tr>
<tal:block tal:define="name python:'root[kvm-partition-dict][KVM-CLUSTER-INSTANCE-0][disable-ansible-promise]'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_for_input_select" />
</tal:block>
<tr>
<td>click</td>
<td>//span[@class="bt_close CLOSE//kvm-partition-dict/KVM-CLUSTER-INSTANCE-1"]</td>
<td></td>
</tr>
<tal:block tal:define="name python:'root.kvm-partition-dict'; value python: 'KVM-CLUSTER-INSTANCE-1'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/json_del_property" />
</tal:block>
<tr>
<td>pause</td>
......@@ -352,33 +231,17 @@
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//kvm-partition-dict/KVM-CLUSTER-INSTANCE-0/disk-size"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//kvm-partition-dict/KVM-CLUSTER-INSTANCE-0/disk-size"]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//select[@name="//kvm-partition-dict/KVM-CLUSTER-INSTANCE-0/boot-image-url-select"]</td>
<td></td>
</tr>
<tal:block tal:define="name python:'root[kvm-partition-dict][KVM-CLUSTER-INSTANCE-0][disk-size]'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_for_input_text" />
</tal:block>
<tr>
<td>assertElementPresent</td>
<td>//select[@name="//kvm-partition-dict/KVM-CLUSTER-INSTANCE-0/boot-image-url-select"]</td>
<td></td>
</tr>
<tal:block tal:define="name python:'root[kvm-partition-dict][KVM-CLUSTER-INSTANCE-0][disable-ansible-promise]'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_for_input_select" />
</tal:block>
<tr>
<td>assertElementNotPresent</td>
<td>//input[@name="//kvm-partition-dict/KVM-CLUSTER-INSTANCE-1/disk-size"]</td>
<td>//input[@name="root[kvm-partition-dict][KVM-CLUSTER-INSTANCE-1][disk-size]"]</td>
<td></td>
</tr>
......
......@@ -166,22 +166,10 @@
'gadget_erp5_page_slap_parameter_form.html')]//select[@name="software_type"]</td>
<td>Custom Personal</td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//domain"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//domain"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="//domain"]</td>
<td>www.erp5.com</td>
</tr>
<tal:block tal:define="name python:'root[domain]'; value python: 'www.erp5.com'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_SlapOSCommonTemplate/macros/click_proceed" />
......
......@@ -166,22 +166,10 @@
'gadget_erp5_page_slap_parameter_form.html')]//select[@name="software_type"]</td>
<td>Custom Personal</td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//domain"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//domain"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="//domain"]</td>
<td>www.erp5.com</td>
</tr>
<tal:block tal:define="name python:'root[domain]'; value python: 'www.erp5.com'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_SlapOSCommonTemplate/macros/click_proceed" />
......
......@@ -97,22 +97,9 @@
</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//url"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//url"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="//url"]</td>
<td>http://www.erp5.com</td>
</tr>
<tal:block tal:define="name python:'root[url]'; value python: 'http://www.erp5.com'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_SlapOSCommonTemplate/macros/click_proceed" />
......
......@@ -103,22 +103,9 @@
'gadget_erp5_page_slap_parameter_form.html')]//select[@name="software_type"]</td>
<td>Custom Personal</td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//domain"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//domain"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="//domain"]</td>
<td>www.erp5.com</td>
</tr>
<tal:block tal:define="name python:'root[domain]'; value python: 'www.erp5.com'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_SlapOSCommonTemplate/macros/click_proceed" />
......
......@@ -103,22 +103,9 @@
'gadget_erp5_page_slap_parameter_form.html')]//select[@name="software_type"]</td>
<td>Custom Personal</td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//domain"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//domain"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="//domain"]</td>
<td>www.erp5.com</td>
</tr>
<tal:block tal:define="name python:'root[domain]'; value python: 'www.erp5.com'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_SlapOSCommonTemplate/macros/click_proceed" />
......
......@@ -102,22 +102,9 @@
'gadget_erp5_page_slap_parameter_form.html')]//select[@name="software_type"]</td>
<td>Custom Personal</td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//domain"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//domain"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="//domain"]</td>
<td>www.erp5.com</td>
</tr>
<tal:block tal:define="name python:'root[domain]'; value python: 'www.erp5.com'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_SlapOSCommonTemplate/macros/click_proceed" />
......
......@@ -30,332 +30,86 @@
<tr>
<td>waitForElementPresent</td>
<td>//button[@name="//simple-object-dict"]</td>
<td>//div[@class="alert alert-danger" and text() = "Object is missing the required property 'simple-object-is-required'"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//button[@name="//simple-object-dict"]</td>
<td>//div[@class="alert alert-danger" and text() = "Object is missing the required property 'simple-object-is-required'"]</td>
<td></td>
</tr>
<tr>
<td colspan="3"><b> Fill the simple string</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-string" and @type="text"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-string" and @type="text"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="//simple-string" and @type="text"]</td>
<td>this is a simple string</td>
</tr>
<tal:block tal:define="name python:'root[simple-string]'; value python: 'this is a simple string'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the string + enum</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//select[@name="//simple-string-with-enum"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//select[@name="//simple-string-with-enum"]</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>//select[@name="//simple-string-with-enum"]</td>
<td>simple string B</td>
</tr>
<tal:block tal:define="name python:'root[simple-string-with-enum]'; value python: 'simple string B'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_select" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the boolean</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//select[@name="//simple-boolean"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//select[@name="//simple-boolean"]</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>//select[@name="//simple-boolean"]</td>
<td>true</td>
</tr>
<tal:block tal:define="name python:'root[simple-boolean]'; value python: 'true'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_select" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the String on Text area</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//textarea[@name="//simple-string-with-text-area"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//textarea[@name="//simple-string-with-text-area"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//textarea[@name="//simple-string-with-text-area"]</td>
<td>this is a simple string on a text area</td>
</tr>
<tal:block tal:define="name python:'root[simple-integer]'; value python: 1">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the simple integer</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-integer" and @type="number"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-integer" and @type="number"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="//simple-integer" and @type="number"]</td>
<td>1</td>
</tr>
<tr>
<td colspan="3"><b> Fill the integer + enum</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//select[@name="//simple-integer-with-enum"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//select[@name="//simple-integer-with-enum"]</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>//select[@name="//simple-integer-with-enum"]</td>
<td>7</td>
</tr>
<tr>
<td colspan="3"><b> Fill the simple numeric (integer)</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-numeric-integer" and @type="number"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-numeric-integer" and @type="number"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="//simple-numeric-integer" and @type="number"]</td>
<td>2</td>
</tr>
<tal:block tal:define="name python:'root[simple-integer-with-enum]'; value python: 7">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_select" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the numeric integer + enum</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//select[@name="//simple-numeric-integer-enum"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//select[@name="//simple-numeric-integer-enum"]</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>//select[@name="//simple-numeric-integer-enum"]</td>
<td>13</td>
</tr>
<tal:block tal:define="name python:'root[simple-numeric-integer]'; value python: 2">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the simple numeric (float)</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-numeric-float" and @type="number" and @step="any"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-numeric-float" and @type="number"and @step="any"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="//simple-numeric-float" and @type="number"and @step="any"]</td>
<td>2</td>
</tr>
<tal:block tal:define="name python:'root[simple-numeric-integer-enum]'; value python: 13">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_select" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the numeric float + enum</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//select[@name="//simple-numeric-float-enum"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//select[@name="//simple-numeric-float-enum"]</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>//select[@name="//simple-numeric-float-enum"]</td>
<td>1.25</td>
</tr>
<tal:block tal:define="name python:'root[simple-numeric-float]'; value python: 2">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the simple string on an object</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-object/sample-object-string" and @type="text"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-object/sample-object-string" and @type="text"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="//simple-object/sample-object-string" and @type="text"]</td>
<td>this is a simple string on an object</td>
</tr>
<tal:block tal:define="name python:'root[simple-numeric-float-enum]'; value python: '1.25'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_select" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the simple numeric (integer) on an object</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-object/simple-object-with-integer" and @type="number"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-object/simple-object-with-integer" and @type="number"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="//simple-object/simple-object-with-integer" and @type="number"]</td>
<td>99</td>
</tr>
<tr>
<td colspan="3"><b> Fill the numeric integer + enum</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//select[@name="//simple-object/simple-object-with-integer-with-enum"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//select[@name="//simple-object/simple-object-with-integer-with-enum"]</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>//select[@name="//simple-object/simple-object-with-integer-with-enum"]</td>
<td>2</td>
</tr>
<tal:block tal:define="name python:'root[simple-string-with-text-area]'; value python: 'this is a simple string on a text area'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_textarea" />
</tal:block>
<tr>
<td colspan="3"><b> Add one object </b></td>
</tr>
<tal:block tal:define="name python:'root[simple-object][sample-object-string]'; value python: 'this is a simple string on an object'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="ADD//simple-object-dict"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="ADD//simple-object-dict"]</td>
<td></td>
</tr>
<tal:block tal:define="name python:'root[simple-object][simple-object-with-integer]'; value python: '99'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tr>
<td>type</td>
<td>//input[@name="ADD//simple-object-dict"]</td>
<td>Example of Simple object</td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//button[@name="//simple-object-dict"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//button[@name="//simple-object-dict"]</td>
<td></td>
</tr>
<tal:block tal:define="name python:'root[simple-object][simple-object-with-integer-with-enum]'; value python: '2'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_select" />
</tal:block>
<tr>
<td>click</td>
<td>//button[@name="//simple-object-dict"]</td>
<td></td>
<td colspan="3"><b> Add one object </b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-object-dict/Example of Simple object/simple-object-dict-string-example"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-object-dict/Example of Simple object/simple-object-dict-string-example"]</td>
<td></td>
</tr>
<tal:block tal:define="name python:'root.simple-object-dict'; value python: 'Example of Simple object'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/json_add_property" />
</tal:block>
<tr>
<td>type</td>
<td>//input[@name="//simple-object-dict/Example of Simple object/simple-object-dict-string-example"]</td>
<td>This an example of a string on an object</td>
</tr>
<tal:block tal:define="name python:'root[simple-object-dict][Example of Simple object][simple-object-dict-string-example]';
value python: 'This an example of a string on an object'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tr>
<td>waitForElementPresent</td>
<td>//select[@name="//simple-object-dict/Example of Simple object/simple-object-dict-string-with-enum"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//select[@name="//simple-object-dict/Example of Simple object/simple-object-dict-string-with-enum"]</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>//select[@name="//simple-object-dict/Example of Simple object/simple-object-dict-string-with-enum"]</td>
<td>String Sample A</td>
</tr>
<tal:block tal:define="name python:'root[simple-object-dict][Example of Simple object][simple-object-dict-string-with-enum]';
value python: 'String Sample A'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_select" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/click_proceed_and_wait_for_hash" />
......
......@@ -50,289 +50,70 @@
</td>
<td></td>
</tr>
<tr>
<td colspan="3"><b> Fill the simple string</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-string" and @type="text" and @readonly="true"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-string" and @type="text" and @readonly="true"]</td>
<td></td>
</tr>
<tr>
<td>assertValue</td>
<td>//input[@name="//simple-string" and @type="text" and @readonly="true"]</td>
<td>this is a simple string</td>
</tr>
<tal:block tal:define="name python:'root[simple-string]'; value python: 'this is a simple string'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_text" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the string + enum</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//select[@name="//simple-string-with-enum"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//select[@name="//simple-string-with-enum"]</td>
<td></td>
</tr>
<tr>
<td>assertValue</td>
<td>//select[@name="//simple-string-with-enum"]</td>
<td>simple string B</td>
</tr>
<tal:block tal:define="name python:'root[simple-string-with-enum]'; value python: 'simple string B'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_select" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the boolean</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//select[@name="//simple-boolean"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//select[@name="//simple-boolean"]</td>
<td></td>
</tr>
<tr>
<td>assertValue</td>
<td>//select[@name="//simple-boolean"]</td>
<td>true</td>
</tr>
<tal:block tal:define="name python:'root[simple-boolean]'; value python: 'true'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_select" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the String on Text area</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//textarea[@name="//simple-string-with-text-area"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//textarea[@name="//simple-string-with-text-area"]</td>
<td></td>
</tr>
<tr>
<td>assertValue</td>
<td>//textarea[@name="//simple-string-with-text-area"]</td>
<td>this is a simple string on a text area</td>
</tr>
<tal:block tal:define="name python:'root[simple-integer]'; value python: 1">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_text" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the simple integer</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-integer" and @type="number" and @readonly="true"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-integer" and @type="number" and @readonly="true"]</td>
<td></td>
</tr>
<tr>
<td>assertValue</td>
<td>//input[@name="//simple-integer" and @type="number" and @readonly="true"]</td>
<td>1</td>
</tr>
<tal:block tal:define="name python:'root[simple-integer-with-enum]'; value python: 7">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_select" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the integer + enum</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//select[@name="//simple-integer-with-enum" and contains(@class, "readonly")]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//select[@name="//simple-integer-with-enum" and contains(@class, "readonly")]</td>
<td></td>
</tr>
<tr>
<td>assertValue</td>
<td>//select[@name="//simple-integer-with-enum" and contains(@class, "readonly")]</td>
<td>7</td>
</tr>
<tal:block tal:define="name python:'root[simple-numeric-integer]'; value python: 2">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_text" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the simple numeric (integer)</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-numeric-integer" and @type="number" and @readonly="true"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-numeric-integer" and @type="number" and @readonly="true"]</td>
<td></td>
</tr>
<tr>
<td>assertValue</td>
<td>//input[@name="//simple-numeric-integer" and @type="number" and @readonly="true"]</td>
<td>2</td>
</tr>
<tal:block tal:define="name python:'root[simple-numeric-integer-enum]'; value python: 13">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_select" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the numeric integer + enum</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//select[@name="//simple-numeric-integer-enum" and contains(@class, "readonly")]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//select[@name="//simple-numeric-integer-enum" and contains(@class, "readonly")]</td>
<td></td>
</tr>
<tr>
<td>assertValue</td>
<td>//select[@name="//simple-numeric-integer-enum" and contains(@class, "readonly")]</td>
<td>13</td>
</tr>
<tal:block tal:define="name python:'root[simple-numeric-float]'; value python: 2">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_text" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the simple numeric (float)</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-numeric-float" and @type="number" and @readonly="true" and @step="any"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-numeric-float" and @type="number" and @readonly="true"and @step="any"]</td>
<td></td>
</tr>
<tr>
<td>assertValue</td>
<td>//input[@name="//simple-numeric-float" and @type="number" and @readonly="true"and @step="any"]</td>
<td>2</td>
</tr>
<tal:block tal:define="name python:'root[simple-numeric-float-enum]'; value python: '1.25'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_select" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the numeric float + enum</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//select[@name="//simple-numeric-float-enum" and contains(@class, "readonly")]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//select[@name="//simple-numeric-float-enum" and contains(@class, "readonly")]</td>
<td></td>
</tr>
<tr>
<td>assertValue</td>
<td>//select[@name="//simple-numeric-float-enum" and contains(@class, "readonly")]</td>
<td>1.25</td>
</tr>
<tal:block tal:define="name python:'root[simple-string-with-text-area]'; value python: 'this is a simple string on a text area'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_textarea" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the simple string on an object</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-object/sample-object-string" and @type="text" and @readonly="true"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-object/sample-object-string" and @type="text" and @readonly="true"]</td>
<td></td>
</tr>
<tr>
<td>assertValue</td>
<td>//input[@name="//simple-object/sample-object-string" and @type="text" and @readonly="true"]</td>
<td>this is a simple string on an object</td>
</tr>
<tal:block tal:define="name python:'root[simple-object][sample-object-string]'; value python: 'this is a simple string on an object'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_text" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the simple numeric (integer) on an object</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-object/simple-object-with-integer" and @type="number" and @readonly="true"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-object/simple-object-with-integer" and @type="number" and @readonly="true"]</td>
<td></td>
</tr>
<tr>
<td>assertValue</td>
<td>//input[@name="//simple-object/simple-object-with-integer" and @type="number" and @readonly="true"]</td>
<td>99</td>
</tr>
<tal:block tal:define="name python:'root[simple-object][simple-object-with-integer]'; value python: 99">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_text" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the numeric integer + enum</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//select[@name="//simple-object/simple-object-with-integer-with-enum" and contains(@class, "readonly")]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//select[@name="//simple-object/simple-object-with-integer-with-enum" and contains(@class, "readonly")]</td>
<td></td>
</tr>
<tr>
<td>assertValue</td>
<td>//select[@name="//simple-object/simple-object-with-integer-with-enum" and contains(@class, "readonly")]</td>
<td>2</td>
</tr>
<tr>
<td colspan="3"><b> Add one object </b></td>
</tr>
<tal:block tal:define="name python:'root[simple-object][simple-object-with-integer-with-enum]'; value python: 2">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_select" />
</tal:block>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-object-dict/Example of Simple object/simple-object-dict-string-example"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-object-dict/Example of Simple object/simple-object-dict-string-example"]</td>
<td></td>
<td colspan="3"><b> Assert one object </b></td>
</tr>
<tr>
<td>assertValue</td>
<td>//input[@name="//simple-object-dict/Example of Simple object/simple-object-dict-string-example"]</td>
<td>This an example of a string on an object</td>
</tr>
<tal:block tal:define="name python:'root[simple-object-dict][Example of Simple object][simple-object-dict-string-example]'; value python: 'This an example of a string on an object'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_text" />
</tal:block>
<tr>
<td>waitForElementPresent</td>
<td>//select[@name="//simple-object-dict/Example of Simple object/simple-object-dict-string-with-enum" and contains(@class, "readonly")]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//select[@name="//simple-object-dict/Example of Simple object/simple-object-dict-string-with-enum" and contains(@class, "readonly")]</td>
<td></td>
</tr>
<tr>
<td>assertValue</td>
<td>//select[@name="//simple-object-dict/Example of Simple object/simple-object-dict-string-with-enum" and contains(@class, "readonly")]</td>
<td>String Sample A</td>
</tr>
<tal:block tal:define="name python:'root[simple-object-dict][Example of Simple object][simple-object-dict-string-with-enum]'; value python: 'String Sample A'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_select" />
</tal:block>
</tbody>
</table>
</body>
......
......@@ -26,33 +26,20 @@
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_software_type_selection_default" />
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-string" and @type="text"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-string" and @type="text"]</td>
<td></td>
</tr>
<tal:block tal:define="name python:'root[simple-string]'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_for_input_text" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/select_software_type_json_in_xml" />
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-string-in-json" and @type="text"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-string-in-json" and @type="text"]</td>
<td></td>
</tr>
<tal:block tal:define="name python:'root[simple-string-in-json]'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_for_input_text" />
</tal:block>
<tr>
<td>assertElementNotPresent</td>
<td>//input[@name="//simple-string" and @type="text"]</td>
<td>//input[@name="root[simple-string]" and @type="text"]</td>
<td></td>
</tr>
......@@ -69,43 +56,13 @@
<td>Default</td>
</tr>
<tr>
<td colspan="3"><b> Fill the simple string</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-string" and @type="text"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-string" and @type="text"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="//simple-string" and @type="text"]</td>
<td>this is a simple string</td>
</tr>
<tal:block tal:define="name python:'root[simple-string]'; value python: 'this is a simple string'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the simple integer</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-integer" and @type="number"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-integer" and @type="number"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="//simple-integer" and @type="number"]</td>
<td>1</td>
</tr>
<tal:block tal:define="name python:'root[simple-integer]'; value python: 1">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tr>
<td>select</td>
......@@ -156,43 +113,13 @@
<td></td>
</tr>
<tr>
<td colspan="3"><b> Fill the simple string</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-string-in-json" and @type="text"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-string-in-json" and @type="text"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="//simple-string-in-json" and @type="text"]</td>
<td>this is a simple string</td>
</tr>
<tal:block tal:define="name python:'root[simple-string-in-json]'; value python: 'this is a simple string'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the simple integer</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-integer-in-json" and @type="number"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-integer-in-json" and @type="number"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="//simple-integer-in-json" and @type="number"]</td>
<td>1</td>
</tr>
<tal:block tal:define="name python:'root[simple-integer-in-json]'; value python: 1">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tr>
<td>select</td>
......@@ -241,45 +168,14 @@
<td>//button[contains(@class,"slapos-show-form")]</td>
<td></td>
</tr>
<tal:block tal:define="name python:'root[simple-string]'; value python: 'this is a simple string'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tal:block tal:define="name python:'root[simple-integer]'; value python: 1">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the simple string</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-string" and @type="text"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-string" and @type="text"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="//simple-string" and @type="text"]</td>
<td>this is a simple string</td>
</tr>
<tr>
<td colspan="3"><b> Fill the simple integer</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-integer" and @type="number"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-integer" and @type="number"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="//simple-integer" and @type="number"]</td>
<td>1</td>
</tr>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/click_proceed_and_wait_for_hash" />
<tr>
......
......@@ -86,61 +86,24 @@
<td>jsondefault</td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-string-in-json" and @type="text"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-string-in-json" and @type="text"]</td>
<td></td>
</tr>
<tal:block tal:define="name python:'root[simple-string-in-json]'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_for_input_text" />
</tal:block>
<tr>
<td>assertElementNotPresent</td>
<td>//input[@name="//simple-string" and @type="text"]</td>
<td>//input[@name="root[simple-string]" and @type="text"]</td>
<td></td>
</tr>
<tal:block tal:define="name python:'root[simple-string-in-json]'; value python: 'this is a simple string'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the simple string</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-string-in-json" and @type="text"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-string-in-json" and @type="text"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="//simple-string-in-json" and @type="text"]</td>
<td>this is a simple string</td>
</tr>
<tal:block tal:define="name python:'root[simple-integer-in-json]'; value python: 1">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the simple integer</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-integer-in-json" and @type="number"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-integer-in-json" and @type="number"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="//simple-integer-in-json" and @type="number"]</td>
<td>1</td>
</tr>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/click_proceed_and_wait_for_hash" />
<tr>
<td>waitForTextPresent</td>
......
......@@ -88,43 +88,13 @@
<td>default</td>
</tr>
<tr>
<td colspan="3"><b> Fill the simple string</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-string" and @type="text"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-string" and @type="text"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="//simple-string" and @type="text"]</td>
<td>this is a simple string</td>
</tr>
<tal:block tal:define="name python:'root[simple-string]'; value python: 'this is a simple string'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the simple integer</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-integer" and @type="number"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-integer" and @type="number"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="//simple-integer" and @type="number"]</td>
<td>1</td>
</tr>
<tal:block tal:define="name python:'root[simple-integer]'; value python: 1">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/click_proceed_and_wait_for_hash" />
......
......@@ -26,16 +26,10 @@
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_software_type_selection_default" />
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-numeric-integer" and @type="number"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-numeric-integer" and @type="number"]</td>
<td></td>
</tr>
<tal:block tal:define="name python:'root[simple-numeric-integer]'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_for_input_text" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/show_raw_parameter" />
......@@ -58,37 +52,27 @@
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/show_form_parameter" />
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-numeric-integer" and @type="text"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-numeric-integer" and @type="text"]</td>
<td></td>
</tr>
<tal:block tal:define="name python:'root[simple-numeric-integer]'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_for_input_text" />
</tal:block>
<tr>
<td>assertValue</td>
<td>//input[@name="//simple-numeric-integer" and @type="text"]</td>
<td>//input[@name="root[simple-numeric-integer]" and @type="text"]</td>
<td>b</td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-numeric-float" and @type="text"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-numeric-float" and @type="text"]</td>
<td></td>
</tr>
<tal:block tal:define="name python:'root[simple-numeric-float]'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_for_input_text" />
</tal:block>
<tr>
<td>assertValue</td>
<td>//input[@name="//simple-numeric-float" and @type="text"]</td>
<td>//input[@name="root[simple-numeric-float]" and @type="text"]</td>
<td>z</td>
</tr>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/click_proceed_and_wait_for_hash" />
<tr>
......
......@@ -27,16 +27,9 @@
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_software_type_selection" />
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/select_software_type_json_in_xml" />
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-numeric-integer" and @type="number"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-numeric-integer" and @type="number"]</td>
<td></td>
</tr>
<tal:block tal:define="name python:'root[simple-numeric-integer]'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_for_input_text" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/show_raw_parameter" />
......@@ -59,37 +52,26 @@
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/show_form_parameter" />
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-numeric-integer" and @type="text"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-numeric-integer" and @type="text"]</td>
<td></td>
</tr>
<tal:block tal:define="name python:'root[simple-numeric-integer]'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_for_input_text" />
</tal:block>
<tr>
<td>assertValue</td>
<td>//input[@name="//simple-numeric-integer" and @type="text"]</td>
<td>//input[@name="root[simple-numeric-integer]" and @type="text"]</td>
<td>b</td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-numeric-float" and @type="text"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-numeric-float" and @type="text"]</td>
<td></td>
</tr>
<tal:block tal:define="name python:'root[simple-numeric-float]'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_for_input_text" />
</tal:block>
<tr>
<td>assertValue</td>
<td>//input[@name="//simple-numeric-float" and @type="text"]</td>
<td>//input[@name="root[simple-numeric-float]" and @type="text"]</td>
<td>z</td>
</tr>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/click_proceed_and_wait_for_hash" />
<tr>
......
......@@ -26,16 +26,9 @@
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_software_type_selection_default" />
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-string" and @type="text"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-string" and @type="text"]</td>
<td></td>
</tr>
<tal:block tal:define="name python:'root[simple-string]'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_for_input_text" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/show_raw_parameter" />
......@@ -58,20 +51,13 @@
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/show_form_parameter" />
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-string" and @type="text"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-string" and @type="text"]</td>
<td></td>
</tr>
<tal:block tal:define="name python:'root[simple-string]'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_for_input_text" />
</tal:block>
<tr>
<td>assertValue</td>
<td>//input[@name="//simple-string" and @type="text"]</td>
<td>//input[@name="root[simple-string]" and @type="text"]</td>
<td>1024</td>
</tr>
......@@ -195,20 +181,13 @@
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/show_form_parameter" />
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-string-in-json" and @type="text"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-string-in-json" and @type="text"]</td>
<td></td>
</tr>
<tal:block tal:define="name python:'root[simple-string-in-json]'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_for_input_text" />
</tal:block>
<tr>
<td>assertValue</td>
<td>//input[@name="//simple-string-in-json" and @type="text"]</td>
<td>//input[@name="root[simple-string-in-json]" and @type="text"]</td>
<td>1024</td>
</tr>
......
......@@ -26,323 +26,81 @@
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_software_type_selection_default" />
<tr>
<td colspan="3"><b> Fill the simple string</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-string" and @type="text"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-string" and @type="text"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="//simple-string" and @type="text"]</td>
<td>this is a simple string</td>
</tr>
<tal:block tal:define="name python:'root[simple-string]'; value python: 'this is a simple string'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the string + enum</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//select[@name="//simple-string-with-enum"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//select[@name="//simple-string-with-enum"]</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>//select[@name="//simple-string-with-enum"]</td>
<td>simple string B</td>
</tr>
<tal:block tal:define="name python:'root[simple-string-with-enum]'; value python: 'simple string B'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_select" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the boolean</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//select[@name="//simple-boolean"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//select[@name="//simple-boolean"]</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>//select[@name="//simple-boolean"]</td>
<td>true</td>
</tr>
<tal:block tal:define="name python:'root[simple-boolean]'; value python: 'true'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_select" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the String on Text area</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//textarea[@name="//simple-string-with-text-area"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//textarea[@name="//simple-string-with-text-area"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//textarea[@name="//simple-string-with-text-area"]</td>
<td>this is a simple string on a text area</td>
</tr>
<tal:block tal:define="name python:'root[simple-string-with-text-area]'; value python: 'this is a simple string on a text area'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_textarea" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the simple integer</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-integer" and @type="number"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-integer" and @type="number"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="//simple-integer" and @type="number"]</td>
<td>1</td>
</tr>
<tal:block tal:define="name python:'root[simple-integer]'; value python: 1">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the integer + enum</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//select[@name="//simple-integer-with-enum"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//select[@name="//simple-integer-with-enum"]</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>//select[@name="//simple-integer-with-enum"]</td>
<td>7</td>
</tr>
<tal:block tal:define="name python:'root[simple-integer-with-enum]'; value python: 7">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_select" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the simple numeric (integer)</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-numeric-integer" and @type="number"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-numeric-integer" and @type="number"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="//simple-numeric-integer" and @type="number"]</td>
<td>2</td>
</tr>
<tal:block tal:define="name python:'root[simple-numeric-integer]'; value python: 2">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the numeric integer + enum</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//select[@name="//simple-numeric-integer-enum"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//select[@name="//simple-numeric-integer-enum"]</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>//select[@name="//simple-numeric-integer-enum"]</td>
<td>13</td>
</tr>
<tal:block tal:define="name python:'root[simple-numeric-integer-enum]'; value python: 13">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_select" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the simple numeric (float)</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-numeric-float" and @type="number" and @step="any"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-numeric-float" and @type="number"and @step="any"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="//simple-numeric-float" and @type="number"and @step="any"]</td>
<td>2</td>
</tr>
<tal:block tal:define="name python:'root[simple-numeric-float]'; value python: 2">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the numeric float + enum</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//select[@name="//simple-numeric-float-enum"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//select[@name="//simple-numeric-float-enum"]</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>//select[@name="//simple-numeric-float-enum"]</td>
<td>1.25</td>
</tr>
<tal:block tal:define="name python:'root[simple-numeric-float-enum]'; value python: '1.25'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_select" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the simple string on an object</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-object/sample-object-string" and @type="text"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-object/sample-object-string" and @type="text"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="//simple-object/sample-object-string" and @type="text"]</td>
<td>this is a simple string on an object</td>
<td colspan="3"><b> Fill the object form</b></td>
</tr>
<tr>
<td colspan="3"><b> Fill the simple numeric (integer) on an object</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-object/simple-object-with-integer" and @type="number"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-object/simple-object-with-integer" and @type="number"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="//simple-object/simple-object-with-integer" and @type="number"]</td>
<td>99</td>
</tr>
<tr>
<td colspan="3"><b> Fill the numeric integer + enum</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//select[@name="//simple-object/simple-object-with-integer-with-enum"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//select[@name="//simple-object/simple-object-with-integer-with-enum"]</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>//select[@name="//simple-object/simple-object-with-integer-with-enum"]</td>
<td>2</td>
</tr>
<tal:block tal:define="name python:'root[simple-object][sample-object-string]'; value python: 'this is a simple string on an object'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tr>
<td colspan="3"><b> Add one object </b></td>
</tr>
<tal:block tal:define="name python:'root[simple-object][simple-object-with-integer]'; value python: '99'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="ADD//simple-object-dict"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="ADD//simple-object-dict"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="ADD//simple-object-dict"]</td>
<td>Example of Simple object</td>
</tr>
<tal:block tal:define="name python:'root[simple-object][simple-object-with-integer-with-enum]'; value python: '2'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_select" />
</tal:block>
<tr>
<td>waitForElementPresent</td>
<td>//button[@name="//simple-object-dict"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//button[@name="//simple-object-dict"]</td>
<td></td>
<td colspan="3"><b> Add one object </b></td>
</tr>
<tr>
<td>click</td>
<td>//button[@name="//simple-object-dict"]</td>
<td></td>
</tr>
<tal:block tal:define="name python:'root.simple-object-dict'; value python: 'Example of Simple object'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/json_add_property" />
</tal:block>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-object-dict/Example of Simple object/simple-object-dict-string-example"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-object-dict/Example of Simple object/simple-object-dict-string-example"]</td>
<td></td>
</tr>
<tal:block tal:define="name python:'root[simple-object-dict][Example of Simple object][simple-object-dict-string-example]';
value python: 'This an example of a string on an object'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tr>
<td>type</td>
<td>//input[@name="//simple-object-dict/Example of Simple object/simple-object-dict-string-example"]</td>
<td>This an example of a string on an object</td>
</tr>
<tal:block tal:define="name python:'root[simple-object-dict][Example of Simple object][simple-object-dict-string-with-enum]';
value python: 'String Sample A'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_select" />
</tal:block>
<tr>
<td>waitForElementPresent</td>
<td>//select[@name="//simple-object-dict/Example of Simple object/simple-object-dict-string-with-enum"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//select[@name="//simple-object-dict/Example of Simple object/simple-object-dict-string-with-enum"]</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>//select[@name="//simple-object-dict/Example of Simple object/simple-object-dict-string-with-enum"]</td>
<td>String Sample A</td>
</tr>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/click_proceed_and_wait_for_hash" />
<tr>
<td>waitForTextPresent</td>
......
......@@ -31,289 +31,67 @@
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_software_type_selection_default" />
<tr>
<td colspan="3"><b> Fill the simple string</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-string" and @type="text" and @readonly="true"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-string" and @type="text" and @readonly="true"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="//simple-string" and @type="text" and @readonly="true"]</td>
<td>this is a simple string</td>
</tr>
<tal:block tal:define="name python:'root[simple-string]'; value python: 'this is a simple string'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_text" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the string + enum</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//select[@name="//simple-string-with-enum" and contains(@class, "readonly")]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//select[@name="//simple-string-with-enum" and contains(@class, "readonly")]</td>
<td></td>
</tr>
<tr>
<td>assertValue</td>
<td>//select[@name="//simple-string-with-enum" and contains(@class, "readonly")]</td>
<td>simple string B</td>
</tr>
<tal:block tal:define="name python:'root[simple-string-with-enum]'; value python: 'simple string B'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_select" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the boolean</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//select[@name="//simple-boolean" and contains(@class, "readonly")]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//select[@name="//simple-boolean" and contains(@class, "readonly")]</td>
<td></td>
</tr>
<tr>
<td>assertValue</td>
<td>//select[@name="//simple-boolean" and contains(@class, "readonly")]</td>
<td>true</td>
</tr>
<tal:block tal:define="name python:'root[simple-boolean]'; value python: 'true'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_select" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the String on Text area</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//textarea[@name="//simple-string-with-text-area" and @readonly="true"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//textarea[@name="//simple-string-with-text-area" and @readonly="true"]</td>
<td></td>
</tr>
<tr>
<td>assertValue</td>
<td>//textarea[@name="//simple-string-with-text-area" and @readonly="true"]</td>
<td>this is a simple string on a text area</td>
</tr>
<tal:block tal:define="name python:'root[simple-string-with-text-area]'; value python: 'this is a simple string on a text area'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_textarea" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the simple integer</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-integer" and @type="number" and @readonly="true"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-integer" and @type="number" and @readonly="true"]</td>
<td></td>
</tr>
<tr>
<td>assertValue</td>
<td>//input[@name="//simple-integer" and @type="number" and @readonly="true"]</td>
<td>1</td>
</tr>
<tal:block tal:define="name python:'root[simple-integer]'; value python: 1">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_text" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the integer + enum</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//select[@name="//simple-integer-with-enum" and contains(@class, "readonly")]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//select[@name="//simple-integer-with-enum" and contains(@class, "readonly")]</td>
<td></td>
</tr>
<tr>
<td>assertValue</td>
<td>//select[@name="//simple-integer-with-enum" and contains(@class, "readonly")]</td>
<td>7</td>
</tr>
<tal:block tal:define="name python:'root[simple-integer-with-enum]'; value python: 7">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_select" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the simple numeric (integer)</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-numeric-integer" and @type="number" and @readonly="true"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-numeric-integer" and @type="number" and @readonly="true"]</td>
<td></td>
</tr>
<tr>
<td>assertValue</td>
<td>//input[@name="//simple-numeric-integer" and @type="number" and @readonly="true"]</td>
<td>2</td>
</tr>
<tal:block tal:define="name python:'root[simple-numeric-integer]'; value python: 2">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_text" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the numeric integer + enum</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//select[@name="//simple-numeric-integer-enum" and contains(@class, "readonly")]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//select[@name="//simple-numeric-integer-enum" and contains(@class, "readonly")]</td>
<td></td>
</tr>
<tr>
<td>assertValue</td>
<td>//select[@name="//simple-numeric-integer-enum" and contains(@class, "readonly")]</td>
<td>13</td>
</tr>
<tal:block tal:define="name python:'root[simple-numeric-integer-enum]'; value python: 13">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_select" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the simple numeric (float)</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-numeric-float" and @type="number" and @step="any" and @readonly="true"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-numeric-float" and @type="number"and @step="any" and @readonly="true"]</td>
<td></td>
</tr>
<tr>
<td>assertValue</td>
<td>//input[@name="//simple-numeric-float" and @type="number"and @step="any" and @readonly="true"]</td>
<td>2</td>
</tr>
<tal:block tal:define="name python:'root[simple-numeric-float]'; value python: 2">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_text" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the numeric float + enum</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//select[@name="//simple-numeric-float-enum" and contains(@class, "readonly")]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//select[@name="//simple-numeric-float-enum" and contains(@class, "readonly")]</td>
<td></td>
</tr>
<tr>
<td>assertValue</td>
<td>//select[@name="//simple-numeric-float-enum" and contains(@class, "readonly")]</td>
<td>1.25</td>
</tr>
<tal:block tal:define="name python:'root[simple-numeric-float-enum]'; value python: '1.25'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_select" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the simple string on an object</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-object/sample-object-string" and @type="text" and @readonly="true"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-object/sample-object-string" and @type="text" and @readonly="true"]</td>
<td></td>
</tr>
<tr>
<td>assertValue</td>
<td>//input[@name="//simple-object/sample-object-string" and @type="text" and @readonly="true"]</td>
<td>this is a simple string on an object</td>
</tr>
<tal:block tal:define="name python:'root[simple-numeric-float]'; value python: 2">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_text" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the simple numeric (integer) on an object</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-object/simple-object-with-integer" and @type="number" and @readonly="true"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-object/simple-object-with-integer" and @type="number" and @readonly="true"]</td>
<td></td>
</tr>
<tr>
<td>assertValue</td>
<td>//input[@name="//simple-object/simple-object-with-integer" and @type="number" and @readonly="true"]</td>
<td>99</td>
</tr>
<tal:block tal:define="name python:'root[simple-numeric-float-enum]'; value python: '1.25'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_select" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the numeric integer + enum</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//select[@name="//simple-object/simple-object-with-integer-with-enum" and contains(@class, "readonly")]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//select[@name="//simple-object/simple-object-with-integer-with-enum" and contains(@class, "readonly")]</td>
<td></td>
</tr>
<tr>
<td>assertValue</td>
<td>//select[@name="//simple-object/simple-object-with-integer-with-enum" and contains(@class, "readonly")]</td>
<td>2</td>
<td colspan="3"><b> Assert property </b></td>
</tr>
<tr>
<td colspan="3"><b> Add one object </b></td>
</tr>
<tal:block tal:define="name python:'root[simple-object-dict][Example of Simple object][simple-object-dict-string-example]';
value python: 'This an example of a string on an object'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-object-dict/Example of Simple object/simple-object-dict-string-example" and @readonly="true"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-object-dict/Example of Simple object/simple-object-dict-string-example" and @readonly="true"]</td>
<td></td>
</tr>
<tr>
<td>assertValue</td>
<td>//input[@name="//simple-object-dict/Example of Simple object/simple-object-dict-string-example" and @readonly="true"]</td>
<td>This an example of a string on an object</td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//select[@name="//simple-object-dict/Example of Simple object/simple-object-dict-string-with-enum" and contains(@class, "readonly")]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//select[@name="//simple-object-dict/Example of Simple object/simple-object-dict-string-with-enum" and contains(@class, "readonly")]</td>
<td></td>
</tr>
<tr>
<td>assertValue</td>
<td>//select[@name="//simple-object-dict/Example of Simple object/simple-object-dict-string-with-enum" and contains(@class, "readonly")]</td>
<td>String Sample A</td>
</tr>
<tal:block tal:define="name python:'root[simple-object-dict][Example of Simple object][simple-object-dict-string-with-enum]';
value python: 'String Sample A'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_select" />
</tal:block>
</tbody>
</table>
</body>
......
......@@ -21,106 +21,52 @@
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_software_type_selection_default" />
<tr>
<td colspan="3"><b> Fill the ram size</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//ram-size" and @type="number"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//ram-size" and @type="number"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="//ram-size" and @type="number"]</td>
<td>4097</td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//span[@class="error" and text() = '4097 is not a multiple of 512.']</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//span[@class="error" and text() = '4097 is not a multiple of 512.']</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="//ram-size" and @type="number"]</td>
<td>4096</td>
</tr>
<tal:block tal:define="name python:'root[ram-size]'; value python: 4097">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tr>
<td>fireEvent</td>
<td>//input[@name="//ram-size" and @type="number"]</td>
<td>//input[@name="root[ram-size]" and @type="text"]</td>
<td>change</td>
</tr>
<tr>
<td>waitForElementNotPresent</td>
<td>//span[@class="error" and text() = '4096 is not a multiple of 512.']</td>
<td></td>
</tr>
<tr>
<td>waitForElementNotPresent</td>
<td>//span[@class="error" and text() = '4096 is not a multiple of 512.']</td>
<td></td>
</tr>
<tal:block tal:define="name python:'root.ram-size'; value python: 'Value must be a multiple of 512.'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_invalid_feedback" />
</tal:block>
<tal:block tal:define="name python:'root[ram-size]'; value python: 4096">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tr>
<td colspan="3"><b> Fill ram size</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//cpu-count" and @type="number"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//cpu-count" and @type="number"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="//cpu-count" and @type="number"]</td>
<td>-1</td>
<td>fireEvent</td>
<td>//input[@name="root[ram-size]" and @type="text"]</td>
<td>change</td>
</tr>
<tal:block tal:define="name python:'root.ram-size'; value python: 'Value must be a multiple of 512.'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_not_invalid_feedback" />
</tal:block>
<tal:block tal:define="name python:'root[cpu-count]'; value python: -1">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tal:block tal:define="name python:'root.cpu-count'; value python: 'Value must be at least 1.'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_invalid_feedback" />
</tal:block>
<tal:block tal:define="name python:'root[cpu-count]'; value python: 3">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tr>
<td>waitForElementPresent</td>
<td>//span[@class="error" and text() = '-1 is less than 1.']</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//span[@class="error" and text() = '-1 is less than 1.']</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="//cpu-count" and @type="number"]</td>
<td>3</td>
</tr>
<tr>
<td>fireEvent</td>
<td>//input[@name="//cpu-count" and @type="number"]</td>
<td>//input[@name="root[cpu-count]" and @type="text"]</td>
<td>change</td>
</tr>
<tr>
<td>waitForElementNotPresent</td>
<td>//span[@class="error" and text() = '-1 is less than 1.']</td>
<td></td>
</tr>
<tr>
<td>waitForElementNotPresent</td>
<td>//span[@class="error" and text() = '-1 is less than 1.']</td>
<td></td>
</tr>
<tal:block tal:define="name python:'root.cpu-count'; value python: 'Value must be at least 1.'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_not_invalid_feedback" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/click_proceed_and_wait_for_hash" />
......
......@@ -26,44 +26,12 @@
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_software_type_selection_default" />
<tr>
<td colspan="3"><b> Check ram size</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//ram-size" and @type="number" and @readonly="true"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//ram-size" and @type="number" and @readonly="true"]</td>
<td></td>
</tr>
<tr>
<td>assertValue</td>
<td>//input[@name="//ram-size" and @type="number" and @readonly="true"]</td>
<td>4096</td>
</tr>
<tr>
<td colspan="3"><b> Check CPU count</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//cpu-count" and @type="number" and @readonly="true"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//cpu-count" and @type="number" and @readonly="true"]</td>
<td></td>
</tr>
<tr>
<td>assertValue</td>
<td>//input[@name="//cpu-count" and @type="number" and @readonly="true"]</td>
<td>3</td>
</tr>
<tal:block tal:define="name python:'root[ram-size]'; value python: 4096">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_text" />
</tal:block>
<tal:block tal:define="name python:'root[cpu-count]'; value python: 3">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_text" />
</tal:block>
</tbody>
</table>
</body>
......
......@@ -26,16 +26,9 @@
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_software_type_selection_default" />
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-string" and @type="text"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-string" and @type="text"]</td>
<td></td>
</tr>
<tal:block tal:define="name python:'root[simple-string]'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_for_input_text" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/show_raw_parameter" />
......
......@@ -26,16 +26,9 @@
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_software_type_selection_default" />
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-string" and @type="text"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-string" and @type="text"]</td>
<td></td>
</tr>
<tal:block tal:define="name python:'root[simple-string]'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_for_input_text" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/show_raw_parameter" />
......
......@@ -21,24 +21,9 @@
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_software_type_selection_default" />
<tr>
<td colspan="3"><b> Set autorun</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//select[@name="//autorun"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//select[@name="//autorun"]</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>//select[@name="//autorun"]</td>
<td>running</td>
</tr>
<tal:block tal:define="name python:'root[autorun]'; value python: 'running'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_select" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/click_proceed_and_wait_for_hash" />
......
......@@ -25,24 +25,10 @@
<tal:block metal:use-macro="here/Zuite_SlapOSCommonTemplate/macros/click_proceed" />
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_software_type_selection_default" />
<tr>
<td colspan="3"><b>Assert parameter was loaded</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//select[@name="//autorun" and contains(@class, "readonly")]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//select[@name="//autorun" and contains(@class, "readonly")]</td>
<td></td>
</tr>
<tr>
<td>assertValue</td>
<td>//select[@name="//autorun" and contains(@class, "readonly")]</td>
<td>running</td>
</tr>
<tal:block tal:define="name python:'root[autorun]'; value python: 'running'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_select" />
</tal:block>
</tbody>
</table>
</body>
......
......@@ -27,195 +27,47 @@
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_software_type_selection_default" />
<tr>
<td colspan="3"><b> Fill the simple string</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-string" and @type="text"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-string" and @type="text"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="//simple-string" and @type="text"]</td>
<td>this is a simple string</td>
</tr>
<tal:block tal:define="name python:'root[simple-string]'; value python: 'this is a simple string'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the string + enum</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//select[@name="//simple-string-with-enum"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//select[@name="//simple-string-with-enum"]</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>//select[@name="//simple-string-with-enum"]</td>
<td>simple string B</td>
</tr>
<tal:block tal:define="name python:'root[simple-string-with-enum]'; value python: 'simple string B'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_select" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the boolean</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//select[@name="//simple-boolean"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//select[@name="//simple-boolean"]</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>//select[@name="//simple-boolean"]</td>
<td>true</td>
</tr>
<tal:block tal:define="name python:'root[simple-boolean]'; value python: 'true'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_select" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the String on Text area</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//textarea[@name="//simple-string-with-text-area"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//textarea[@name="//simple-string-with-text-area"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//textarea[@name="//simple-string-with-text-area"]</td>
<td>this is a simple string on a text area</td>
</tr>
<tal:block tal:define="name python:'root[simple-integer]'; value python: 1">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the simple integer</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-integer" and @type="number"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-integer" and @type="number"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="//simple-integer" and @type="number"]</td>
<td>1</td>
</tr>
<tal:block tal:define="name python:'root[simple-integer-with-enum]'; value python: 7">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_select" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the integer + enum</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//select[@name="//simple-integer-with-enum"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//select[@name="//simple-integer-with-enum"]</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>//select[@name="//simple-integer-with-enum"]</td>
<td>7</td>
</tr>
<tal:block tal:define="name python:'root[simple-numeric-integer]'; value python: 2">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the simple numeric (integer)</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-numeric-integer" and @type="number"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-numeric-integer" and @type="number"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="//simple-numeric-integer" and @type="number"]</td>
<td>2</td>
</tr>
<tal:block tal:define="name python:'root[simple-numeric-integer-enum]'; value python: 13">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_select" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the numeric integer + enum</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//select[@name="//simple-numeric-integer-enum"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//select[@name="//simple-numeric-integer-enum"]</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>//select[@name="//simple-numeric-integer-enum"]</td>
<td>13</td>
</tr>
<tal:block tal:define="name python:'root[simple-numeric-float]'; value python: 2">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the simple numeric (float)</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-numeric-float" and @type="number" and @step="any"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-numeric-float" and @type="number"and @step="any"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="//simple-numeric-float" and @type="number"and @step="any"]</td>
<td>2</td>
</tr>
<tal:block tal:define="name python:'root[simple-numeric-float-enum]'; value python: '1.25'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_select" />
</tal:block>
<tal:block tal:define="name python:'root[simple-string-with-text-area]'; value python: 'this is a simple string on a text area'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_textarea" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the numeric float + enum</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//select[@name="//simple-numeric-float-enum"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//select[@name="//simple-numeric-float-enum"]</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>//select[@name="//simple-numeric-float-enum"]</td>
<td>1.25</td>
</tr>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/click_proceed_and_wait_for_hash" />
<tr>
......
......@@ -31,204 +31,56 @@
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_software_type_selection_default" />
<tr>
<td colspan="3"><b> Assert the simple string</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//textarea[@name="//simple-stringxxx" and @readonly="true"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//textarea[@name="//simple-stringxxx" and @readonly="true"]</td>
<td></td>
</tr>
<tr>
<td>assertValue</td>
<td>//textarea[@name="//simple-stringxxx" and @readonly="true"]</td>
<td>this is a simple stringxx</td>
</tr>
<tal:block tal:define="name python:'root[simple-stringxxx]'; value python: 'this is a simple stringxx'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_text" />
</tal:block>
<tr>
<td colspan="3"><b> Assert the simple string not Present</b></td>
</tr>
<tr>
<td>assertElementNotPresent</td>
<td>//input[@name="//simple-string" and @readonly="true"]</td>
<td></td>
</tr>
<tal:block tal:define="name python:'root[simple-string-with-enum]'; value python: 'simple string B'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_select" />
</tal:block>
<tr>
<td colspan="3"><b> Assert the string + enum</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//select[@name="//simple-string-with-enum" and contains(@class, "readonly")]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//select[@name="//simple-string-with-enum" and contains(@class, "readonly")]</td>
<td></td>
</tr>
<tr>
<td>assertValue</td>
<td>//select[@name="//simple-string-with-enum" and contains(@class, "readonly")]</td>
<td>simple string B</td>
</tr>
<tr>
<td colspan="3"><b> Assert the boolean</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//select[@name="//simple-boolean" and contains(@class, "readonly")]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//select[@name="//simple-boolean" and contains(@class, "readonly")]</td>
<td></td>
</tr>
<tr>
<td>assertValue</td>
<td>//select[@name="//simple-boolean" and contains(@class, "readonly")]</td>
<td>true</td>
</tr>
<tal:block tal:define="name python:'root[simple-boolean]'; value python: 'true'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_select" />
</tal:block>
<tr>
<td colspan="3"><b> Assert the String on Text area</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//textarea[@name="//simple-string-with-text-area" and @readonly="true"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//textarea[@name="//simple-string-with-text-area" and @readonly="true"]</td>
<td></td>
</tr>
<tr>
<td>assertValue</td>
<td>//textarea[@name="//simple-string-with-text-area" and @readonly="true"]</td>
<td>this is a simple string on a text area</td>
</tr>
<tal:block tal:define="name python:'root[simple-integer]'; value python: 1">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_text" />
</tal:block>
<tr>
<td colspan="3"><b> Assert the simple integer</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-integer" and @type="number" and @readonly="true"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-integer" and @type="number" and @readonly="true"]</td>
<td></td>
</tr>
<tr>
<td>assertValue</td>
<td>//input[@name="//simple-integer" and @type="number" and @readonly="true"]</td>
<td>1</td>
</tr>
<tal:block tal:define="name python:'root[simple-integer-with-enum]'; value python: 7">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_select" />
</tal:block>
<tr>
<td colspan="3"><b> Assert the integer + enum</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//select[@name="//simple-integer-with-enum" and contains(@class, "readonly")]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//select[@name="//simple-integer-with-enum" and contains(@class, "readonly")]</td>
<td></td>
</tr>
<tr>
<td>assertValue</td>
<td>//select[@name="//simple-integer-with-enum" and contains(@class, "readonly")]</td>
<td>7</td>
</tr>
<tal:block tal:define="name python:'root[simple-numeric-integer]'; value python: 2">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_text" />
</tal:block>
<tr>
<td colspan="3"><b> Assert the simple numeric (integer)</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-numeric-integer" and @type="number" and @readonly="true"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-numeric-integer" and @type="number" and @readonly="true"]</td>
<td></td>
</tr>
<tr>
<td>assertValue</td>
<td>//input[@name="//simple-numeric-integer" and @type="number" and @readonly="true"]</td>
<td>2</td>
</tr>
<tal:block tal:define="name python:'root[simple-numeric-integer-enum]'; value python: 13">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_select" />
</tal:block>
<tr>
<td colspan="3"><b> Assert the numeric integer + enum</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//select[@name="//simple-numeric-integer-enum" and contains(@class, "readonly")]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//select[@name="//simple-numeric-integer-enum" and contains(@class, "readonly")]</td>
<td></td>
</tr>
<tr>
<td>assertValue</td>
<td>//select[@name="//simple-numeric-integer-enum" and contains(@class, "readonly")]</td>
<td>13</td>
</tr>
<tal:block tal:define="name python:'root[simple-numeric-float]'; value python: 2">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_text" />
</tal:block>
<tr>
<td colspan="3"><b> Assert the simple numeric (float)</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-numeric-float" and @type="number" and @step="any" and @readonly="true"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-numeric-float" and @type="number"and @step="any" and @readonly="true"]</td>
<td></td>
</tr>
<tr>
<td>assertValue</td>
<td>//input[@name="//simple-numeric-float" and @type="number"and @step="any" and @readonly="true"]</td>
<td>2</td>
</tr>
<tal:block tal:define="name python:'root[simple-numeric-float-enum]'; value python: '1.25'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_select" />
</tal:block>
<tal:block tal:define="name python:'root[simple-string-with-text-area]'; value python: 'this is a simple string on a text area'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_textarea" />
</tal:block>
<tr>
<td colspan="3"><b> Assert the numeric float + enum</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//select[@name="//simple-numeric-float-enum" and contains(@class, "readonly")]</td>
<td></td>
<td colspan="3"><b> Assert the simple string NOT Present</b></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//select[@name="//simple-numeric-float-enum" and contains(@class, "readonly")]</td>
<td>assertElementNotPresent</td>
<td>//input[@name="root[simple-string]"]</td>
<td></td>
</tr>
<tr>
<td>assertValue</td>
<td>//select[@name="//simple-numeric-float-enum" and contains(@class, "readonly")]</td>
<td>1.25</td>
</tr>
</tbody>
</table>
</body>
......
......@@ -31,195 +31,48 @@
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_software_type_selection_default" />
<tr>
<td colspan="3"><b> Fill the simple string</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-string" and @type="text" and @readonly="true"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-string" and @type="text" and @readonly="true"]</td>
<td></td>
</tr>
<tr>
<td>assertValue</td>
<td>//input[@name="//simple-string" and @type="text" and @readonly="true"]</td>
<td>this is a simple string</td>
</tr>
<tr>
<td colspan="3"><b> Fill the string + enum</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//select[@name="//simple-string-with-enum" and contains(@class, "readonly")]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//select[@name="//simple-string-with-enum" and contains(@class, "readonly")]</td>
<td></td>
</tr>
<tr>
<td>assertValue</td>
<td>//select[@name="//simple-string-with-enum" and contains(@class, "readonly")]</td>
<td>simple string B</td>
</tr>
<tal:block tal:define="name python:'root[simple-string]'; value python: 'this is a simple string'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_text" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the boolean</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//select[@name="//simple-boolean" and contains(@class, "readonly")]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//select[@name="//simple-boolean" and contains(@class, "readonly")]</td>
<td></td>
</tr>
<tr>
<td>assertValue</td>
<td>//select[@name="//simple-boolean" and contains(@class, "readonly")]</td>
<td>true</td>
</tr>
<tal:block tal:define="name python:'root[simple-string-with-enum]'; value python: 'simple string B'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_select" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the String on Text area</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//textarea[@name="//simple-string-with-text-area" and @readonly="true"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//textarea[@name="//simple-string-with-text-area" and @readonly="true"]</td>
<td></td>
</tr>
<tr>
<td>assertValue</td>
<td>//textarea[@name="//simple-string-with-text-area" and @readonly="true"]</td>
<td>this is a simple string on a text area</td>
</tr>
<tal:block tal:define="name python:'root[simple-boolean]'; value python: 'true'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_select" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the simple integer</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-integer" and @type="number" and @readonly="true"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-integer" and @type="number" and @readonly="true"]</td>
<td></td>
</tr>
<tr>
<td>assertValue</td>
<td>//input[@name="//simple-integer" and @type="number" and @readonly="true"]</td>
<td>1</td>
</tr>
<tal:block tal:define="name python:'root[simple-integer]'; value python: 1">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_text" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the integer + enum</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//select[@name="//simple-integer-with-enum" and contains(@class, "readonly")]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//select[@name="//simple-integer-with-enum" and contains(@class, "readonly")]</td>
<td></td>
</tr>
<tr>
<td>assertValue</td>
<td>//select[@name="//simple-integer-with-enum" and contains(@class, "readonly")]</td>
<td>7</td>
</tr>
<tal:block tal:define="name python:'root[simple-integer-with-enum]'; value python: 7">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_select" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the simple numeric (integer)</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-numeric-integer" and @type="number" and @readonly="true"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-numeric-integer" and @type="number" and @readonly="true"]</td>
<td></td>
</tr>
<tr>
<td>assertValue</td>
<td>//input[@name="//simple-numeric-integer" and @type="number" and @readonly="true"]</td>
<td>2</td>
</tr>
<tal:block tal:define="name python:'root[simple-numeric-integer]'; value python: 2">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_text" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the numeric integer + enum</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//select[@name="//simple-numeric-integer-enum" and contains(@class, "readonly")]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//select[@name="//simple-numeric-integer-enum" and contains(@class, "readonly")]</td>
<td></td>
</tr>
<tr>
<td>assertValue</td>
<td>//select[@name="//simple-numeric-integer-enum" and contains(@class, "readonly")]</td>
<td>13</td>
</tr>
<tal:block tal:define="name python:'root[simple-numeric-integer-enum]'; value python: 13">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_select" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the simple numeric (float)</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-numeric-float" and @type="number" and @step="any" and @readonly="true"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-numeric-float" and @type="number"and @step="any" and @readonly="true"]</td>
<td></td>
</tr>
<tr>
<td>assertValue</td>
<td>//input[@name="//simple-numeric-float" and @type="number"and @step="any" and @readonly="true"]</td>
<td>2</td>
</tr>
<tal:block tal:define="name python:'root[simple-numeric-float]'; value python: 2">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_text" />
</tal:block>
<tal:block tal:define="name python:'root[simple-numeric-float-enum]'; value python: '1.25'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_select" />
</tal:block>
<tal:block tal:define="name python:'root[simple-string-with-text-area]'; value python: 'this is a simple string on a text area'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_textarea" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the numeric float + enum</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//select[@name="//simple-numeric-float-enum" and contains(@class, "readonly")]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//select[@name="//simple-numeric-float-enum" and contains(@class, "readonly")]</td>
<td></td>
</tr>
<tr>
<td>assertValue</td>
<td>//select[@name="//simple-numeric-float-enum" and contains(@class, "readonly")]</td>
<td>1.25</td>
</tr>
</tbody>
</table>
</body>
......
......@@ -58,364 +58,158 @@
'gadget_erp5_page_slap_parameter_form.html')]//button[contains(@class, "ui-icon-spinner")]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-string" and @type="text"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-string" and @type="text"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="//simple-string" and @type="text"]</td>
<td>x</td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//select[@name="//simple-string-with-enum"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//select[@name="//simple-string-with-enum"]</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>//select[@name="//simple-string-with-enum"]</td>
<td>simple string B</td>
</tr>
<tr>
<td>fireEvent</td>
<td>//input[@name="//simple-string" and @type="text"]</td>
<td>change</td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="//simple-string" and @type="text"]</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>//select[@name="//simple-string-with-enum"]</td>
<td></td>
</tr>
<tr>
<td>fireEvent</td>
<td>//input[@name="//simple-string" and @type="text"]</td>
<td>change</td>
</tr>
<tr>
<td>fireEvent</td>
<td>//input[@name="//simple-string" and @type="text"]</td>
<td>click</td>
</tr>
<tr>
<td colspan="3"><b> Assert Error Messages</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//span[@class="error" and text() = 'Instance does not have required property "simple-string".']</td>
<td>//div[@class="alert alert-danger" and text() = "Object is missing the required property 'Example of Simple String'"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//span[@class="error" and text() = 'Instance does not have required property "simple-string".']</td>
<td>//div[@class="alert alert-danger" and text() = "Object is missing the required property 'Example of Simple String'"]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//span[@class="error" and text() = 'Instance does not have required property "simple-string-with-enum".']</td>
<td>//div[@class="alert alert-danger" and text() = "Object is missing the required property 'Example of Simple String with enum'"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//span[@class="error" and text() = 'Instance does not have required property "simple-string-with-enum".']</td>
<td>//div[@class="alert alert-danger" and text() = "Object is missing the required property 'Example of Simple String with enum'"]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//span[@class="error" and text() = 'Instance does not have required property "simple-boolean".']</td>
<td>//div[@class="alert alert-danger" and text() = "Object is missing the required property 'Example of Boolean'"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//span[@class="error" and text() = 'Instance does not have required property "simple-boolean".']</td>
<td>//div[@class="alert alert-danger" and text() = "Object is missing the required property 'Example of Boolean'"]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//span[@class="error" and text() = 'Instance does not have required property "simple-string-with-text-area".']</td>
<td>//div[@class="alert alert-danger" and text() = "Object is missing the required property 'Example of Simple String with textarea'"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//span[@class="error" and text() = 'Instance does not have required property "simple-string-with-text-area".']</td>
<td>//div[@class="alert alert-danger" and text() = "Object is missing the required property 'Example of Simple String with textarea'"]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//span[@class="error" and text() = 'Instance does not have required property "simple-integer".']</td>
<td>//div[@class="alert alert-danger" and text() = "Object is missing the required property 'Example of Simple Integer'"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//span[@class="error" and text() = 'Instance does not have required property "simple-integer".']</td>
<td>//div[@class="alert alert-danger" and text() = "Object is missing the required property 'Example of Simple Integer'"]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//span[@class="error" and text() = 'Instance does not have required property "simple-integer-with-enum".']</td>
<td>//div[@class="alert alert-danger" and text() = "Object is missing the required property 'Example of Simple Integer with enum'"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//span[@class="error" and text() = 'Instance does not have required property "simple-integer-with-enum".']</td>
<td>//div[@class="alert alert-danger" and text() = "Object is missing the required property 'Example of Simple Integer with enum'"]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//span[@class="error" and text() = 'Instance does not have required property "simple-numeric-integer".']</td>
<td>//div[@class="alert alert-danger" and text() = "Object is missing the required property 'Example of Simple Numeric as integer'"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//span[@class="error" and text() = 'Instance does not have required property "simple-numeric-integer".']</td>
<td>//div[@class="alert alert-danger" and text() = "Object is missing the required property 'Example of Simple Numeric as integer'"]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//span[@class="error" and text() = 'Instance does not have required property "simple-numeric-integer-enum".']</td>
<td>//div[@class="alert alert-danger" and text() = "Object is missing the required property 'Example of Simple Numeric as integer with enum'"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//span[@class="error" and text() = 'Instance does not have required property "simple-numeric-integer-enum".']</td>
<td>//div[@class="alert alert-danger" and text() = "Object is missing the required property 'Example of Simple Numeric as integer with enum'"]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//span[@class="error" and text() = 'Instance does not have required property "simple-numeric-float".']</td>
<td>//div[@class="alert alert-danger" and text() = "Object is missing the required property 'Example of Simple Numeric as float'"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//span[@class="error" and text() = 'Instance does not have required property "simple-numeric-float".']</td>
<td>//div[@class="alert alert-danger" and text() = "Object is missing the required property 'Example of Simple Numeric as float'"]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//span[@class="error" and text() = 'Instance does not have required property "simple-numeric-float-enum".']</td>
<td>//div[@class="alert alert-danger" and text() = "Object is missing the required property 'Example of Simple Numeric as float with enum'"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//span[@class="error" and text() = 'Instance does not have required property "simple-numeric-float-enum".']</td>
<td>//div[@class="alert alert-danger" and text() = "Object is missing the required property 'Example of Simple Numeric as float with enum'"]</td>
<td></td>
</tr>
<tr>
<td colspan="3"><b> Fill the simple string</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-string" and @type="text"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-string" and @type="text"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="//simple-string" and @type="text"]</td>
<td>this is a simple string</td>
</tr>
<tal:block tal:define="name python:'root[simple-string]'; value python: 'this is a simple string'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the string + enum</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//select[@name="//simple-string-with-enum"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//select[@name="//simple-string-with-enum"]</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>//select[@name="//simple-string-with-enum"]</td>
<td>simple string B</td>
</tr>
<tal:block tal:define="name python:'root[simple-string-with-enum]'; value python: 'simple string B'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_select" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the boolean</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//select[@name="//simple-boolean"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//select[@name="//simple-boolean"]</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>//select[@name="//simple-boolean"]</td>
<td>true</td>
</tr>
<tal:block tal:define="name python:'root[simple-boolean]'; value python: 'true'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_select" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the String on Text area</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//textarea[@name="//simple-string-with-text-area"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//textarea[@name="//simple-string-with-text-area"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//textarea[@name="//simple-string-with-text-area"]</td>
<td>this is a simple string on a text area</td>
</tr>
<tal:block tal:define="name python:'root[simple-string-with-text-area]'; value python: 'this is a simple string on a text area'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_textarea" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the simple integer</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-integer" and @type="number"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-integer" and @type="number"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="//simple-integer" and @type="number"]</td>
<td>1</td>
</tr>
<tal:block tal:define="name python:'root[simple-integer]'; value python: 1">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the integer + enum</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//select[@name="//simple-integer-with-enum"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//select[@name="//simple-integer-with-enum"]</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>//select[@name="//simple-integer-with-enum"]</td>
<td>7</td>
</tr>
<tal:block tal:define="name python:'root[simple-integer-with-enum]'; value python: 7">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_select" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the simple numeric (integer)</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-numeric-integer" and @type="number"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-numeric-integer" and @type="number"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="//simple-numeric-integer" and @type="number"]</td>
<td>2</td>
</tr>
<tal:block tal:define="name python:'root[simple-numeric-integer]'; value python: 2">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the numeric integer + enum</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//select[@name="//simple-numeric-integer-enum"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//select[@name="//simple-numeric-integer-enum"]</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>//select[@name="//simple-numeric-integer-enum"]</td>
<td>13</td>
</tr>
<tal:block tal:define="name python:'root[simple-numeric-integer-enum]'; value python: 13">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_select" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the simple numeric (float)</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//simple-numeric-float" and @type="number" and @step="any"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//simple-numeric-float" and @type="number"and @step="any"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="//simple-numeric-float" and @type="number"and @step="any"]</td>
<td>2</td>
</tr>
<tal:block tal:define="name python:'root[simple-numeric-float]'; value python: 2">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tal:block tal:define="name python:'root[simple-numeric-float-enum]'; value python: '1.25'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_select" />
</tal:block>
<tr>
<td colspan="3"><b> Fill the numeric float + enum</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//select[@name="//simple-numeric-float-enum"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//select[@name="//simple-numeric-float-enum"]</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>//select[@name="//simple-numeric-float-enum"]</td>
<td>1.25</td>
</tr>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/click_proceed_and_wait_for_hash" />
<tr>
......
......@@ -28,12 +28,12 @@
<tr>
<td colspan="3"><b> Fill RX/TX </b></td>
</tr>
<tal:block tal:define="name python: '//tx_gain'; value python: '78.0'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_number" />
<tal:block tal:define="name python: 'root[tx_gain]'; value python: '78.0'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tal:block tal:define="name python: '//rx_gain'; value python: '78.0'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_number" />
<tal:block tal:define="name python: 'root[rx_gain]'; value python: '78.0'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/click_proceed_and_wait_for_hash" />
<tr>
......@@ -71,124 +71,79 @@
</td>
<td>Core Network Sim Card</td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//sim_algo" and @type="text"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//sim_algo" and @type="text"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="//sim_algo" and @type="text"]</td>
<td>x</td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@name="//imsi" and @type="text"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//input[@name="//imsi" and @type="text"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="//imsi" and @type="text"]</td>
<td>x</td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="//sim_algo" and @type="text"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@name="//imsi" and @type="text"]</td>
<td></td>
</tr>
<tr>
<td>fireEvent</td>
<td>//input[@name="//imsi" and @type="text"]</td>
<td>change</td>
</tr>
<tr>
<td colspan="3"><b> Assert Error Messages</b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//span[@class="error" and text() = 'Instance does not have required property "sim_algo".']</td>
<td>//div[@class="alert alert-danger" and text() = "Object is missing the required property 'Sim Algorithm'"]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//span[@class="error" and text() = 'Instance does not have required property "imsi".']</td>
<td>//div[@class="alert alert-danger" and text() = "Object is missing the required property 'IMSI'"]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//span[@class="error" and text() = 'Instance does not have required property "opc".']</td>
<td>//div[@class="alert alert-danger" and text() = "Object is missing the required property 'OPC'"]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//span[@class="error" and text() = 'Instance does not have required property "amf".']</td>
<td>//div[@class="alert alert-danger" and text() = "Object is missing the required property 'AMF'"]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//span[@class="error" and text() = 'Instance does not have required property "sqn".']</td>
<td>//div[@class="alert alert-danger" and text() = "Object is missing the required property 'SQN'"]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//span[@class="error" and text() = 'Instance does not have required property "k".']</td>
<td>//div[@class="alert alert-danger" and text() = "Object is missing the required property 'K'"]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//span[@class="error" and text() = 'Instance does not have required property "impu".']</td>
<td>//div[@class="alert alert-danger" and text() = "Object is missing the required property 'IMPU'"]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//span[@class="error" and text() = 'Instance does not have required property "impi".']</td>
<td>//div[@class="alert alert-danger" and text() = "Object is missing the required property 'IMPI'"]</td>
<td></td>
</tr>
<tal:block tal:define="name python: '//sim_algo'; value python: 'some value'">
<tal:block tal:define="name python:'root[sim_algo]'; value python: 'some value'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tal:block tal:define="name python:'//imsi'; value python: 'some value'">
<tal:block tal:define="name python:'root[imsi]'; value python: 'some value'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tal:block tal:define="name python:'//opc'; value python: 'some value'">
<tal:block tal:define="name python:'root[opc]'; value python: 'some value'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tal:block tal:define="name python:'//amf'; value python: 'some value'">
<tal:block tal:define="name python:'root[amf]'; value python: 'some value'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tal:block tal:define="name python:'//sqn'; value python: 'some value'">
<tal:block tal:define="name python:'root[sqn]'; value python: 'some value'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tal:block tal:define="name python:'//k'; value python: 'some value'">
<tal:block tal:define="name python:'root[k]'; value python: 'some value'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tal:block tal:define="name python:'//impu'; value python: 'some value'">
<tal:block tal:define="name python:'root[impu]'; value python: 'some value'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tal:block tal:define="name python:'//impi'; value python: 'some value'">
<tal:block tal:define="name python:'root[impi]'; value python: 'some value'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
......@@ -246,12 +201,12 @@
<td colspan="3"><b> Fill RX/TX </b></td>
</tr>
<tal:block tal:define="name python: '//tx_gain'; value python: '78'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_number" />
<tal:block tal:define="name python: 'root[tx_gain]'; value python: '78'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_text" />
</tal:block>
<tal:block tal:define="name python: '//rx_gain'; value python: '78'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_number" />
<tal:block tal:define="name python: 'root[rx_gain]'; value python: '78'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_text" />
</tal:block>
</tal:block>
......@@ -297,35 +252,35 @@
<td>core-network</td>
</tr>
<tal:block tal:define="name python: '//sim_algo'; value python: 'some value'">
<tal:block tal:define="name python:'root[sim_algo]'; value python: 'some value'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_text" />
</tal:block>
<tal:block tal:define="name python:'//imsi'; value python: 'some value'">
<tal:block tal:define="name python:'root[imsi]'; value python: 'some value'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_text" />
</tal:block>
<tal:block tal:define="name python:'//opc'; value python: 'some value'">
<tal:block tal:define="name python:'root[opc]'; value python: 'some value'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_text" />
</tal:block>
<tal:block tal:define="name python:'//amf'; value python: 'some value'">
<tal:block tal:define="name python:'root[amf]'; value python: 'some value'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_text" />
</tal:block>
<tal:block tal:define="name python:'//sqn'; value python: 'some value'">
<tal:block tal:define="name python:'root[sqn]'; value python: 'some value'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_text" />
</tal:block>
<tal:block tal:define="name python:'//k'; value python: 'some value'">
<tal:block tal:define="name python:'root[k]'; value python: 'some value'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_text" />
</tal:block>
<tal:block tal:define="name python:'//impu'; value python: 'some value'">
<tal:block tal:define="name python:'root[impu]'; value python: 'some value'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_text" />
</tal:block>
<tal:block tal:define="name python:'//impi'; value python: 'some value'">
<tal:block tal:define="name python:'root[impi]'; value python: 'some value'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_text" />
</tal:block>
</tal:block>
......@@ -365,56 +320,23 @@
</td>
<td>Core Network</td>
</tr>
<tal:block tal:define="name python: '//core_network_plmn'; value python: 'some value'">
<tal:block tal:define="name python:'root[core_network_plmn]'; value python: 'some value'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
<tr>
<td>waitForElementPresent</td>
<td>//select[@name="//external_enb_gnb" and @data-format="boolean"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//select[@name="//external_enb_gnb" and @data-format="boolean"]</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>//select[@name="//external_enb_gnb" and @data-format="boolean"]</td>
<td>true</td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//select[@name="//iperf3" and @data-format="boolean"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//select[@name="//iperf3" and @data-format="boolean"]</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>//select[@name="//iperf3" and @data-format="boolean"]</td>
<td>false</td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//select[@name="//use_ipv4" and @data-format="boolean"]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//select[@name="//use_ipv4" and @data-format="boolean"]</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>//select[@name="//use_ipv4" and @data-format="boolean"]</td>
<td>false</td>
</tr>
<tal:block tal:define="name python:'//local_domain'; value python: 'some value'">
<tal:block tal:define="name python:'root[external_enb_gnb]'; value python: 'true'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_select" />
</tal:block>
<tal:block tal:define="name python:'root[iperf3]'; value python: 'false'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_select" />
</tal:block>
<tal:block tal:define="name python:'root[use_ipv4]'; value python: 'false'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_select" />
</tal:block>
<tal:block tal:define="name python:'root[local_domain]'; value python: 'some value'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/input_text" />
</tal:block>
......@@ -470,59 +392,25 @@
<td>core-network</td>
</tr>
<tal:block tal:define="name python: '//core_network_plmn'; value python: 'some value'">
<tal:block tal:define="name python:'root[core_network_plmn]'; value python: 'some value'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_text" />
</tal:block>
<tal:block tal:define="name python:'//local_domain'; value python: 'some value'">
<tal:block tal:define="name python:'root[local_domain]'; value python: 'some value'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_text" />
</tal:block>
<tr>
<td>waitForElementPresent</td>
<td>//select[@name="//external_enb_gnb" and @data-format="boolean" and contains(@class, "readonly")]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//select[@name="//external_enb_gnb" and @data-format="boolean" and contains(@class, "readonly")]</td>
<td></td>
</tr>
<tr>
<td>assertValue</td>
<td>//select[@name="//external_enb_gnb" and @data-format="boolean" and contains(@class, "readonly")]</td>
<td>true</td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//select[@name="//iperf3" and @data-format="boolean" and contains(@class, "readonly")]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//select[@name="//iperf3" and @data-format="boolean" and contains(@class, "readonly")]</td>
<td></td>
</tr>
<tr>
<td>assertValue</td>
<td>//select[@name="//iperf3" and @data-format="boolean" and contains(@class, "readonly")]</td>
<td>false</td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//select[@name="//use_ipv4" and @data-format="boolean" and contains(@class, "readonly")]</td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td>//select[@name="//use_ipv4" and @data-format="boolean" and contains(@class, "readonly")]</td>
<td></td>
</tr>
<tr>
<td>assertValue</td>
<td>//select[@name="//use_ipv4" and @data-format="boolean" and contains(@class, "readonly")]</td>
<td>false</td>
</tr>
<tal:block tal:define="name python:'root[external_enb_gnb]'; value python: 'true'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_select" />
</tal:block>
<tal:block tal:define="name python:'root[iperf3]'; value python: 'false'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_select" />
</tal:block>
<tal:block tal:define="name python:'root[use_ipv4]'; value python: 'false'">
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/assert_readonly_input_select" />
</tal:block>
</tal:block>
......
......@@ -211,7 +211,34 @@
</tr>
</tal:block>
<tal:block metal:define-macro="input_text">
<tal:block metal:define-macro="assert_invalid_feedback">
<tr>
<td>waitForElementPresent</td>
<td tal:content="python: '//div[@data-schemapath=\'%s\']//p[@class=\'invalid-feedback\' and text() = \'%s\']' % (name, value)" ></td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td tal:content="python: '//div[@data-schemapath=\'%s\']//p[@class=\'invalid-feedback\' and text() = \'%s\']' % (name, value)"></td>
<td></td>
</tr>
</tal:block>
<tal:block metal:define-macro="assert_not_invalid_feedback">
<tr>
<td>waitForElementPresent</td>
<td tal:content="python: '//div[@data-schemapath=\'%s\']//p[@class=\'invalid-feedback\' and text() = \'%s\' and @style=\'display: none;\']' % (name, value)" ></td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td tal:content="python: '//div[@data-schemapath=\'%s\']//p[@class=\'invalid-feedback\' and text() = \'%s\' and @style=\'display: none;\']' % (name, value)"></td>
<td></td>
</tr>
</tal:block>
<tal:block metal:define-macro="wait_for_input_text">
<tr>
<td>waitForElementPresent</td>
<td tal:content="python: '//input[@name=\'%s\' and @type=\'text\']' % name"></td>
......@@ -222,6 +249,13 @@
<td tal:content="python: '//input[@name=\'%s\' and @type=\'text\']' % name"></td>
<td></td>
</tr>
</tal:block>
<tal:block metal:define-macro="input_text">
<tr>
<td colspan="3"><b tal:content="python: 'Fill %s' % name"></b></td>
</tr>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_for_input_text" />
<tr>
<td>type</td>
<td tal:content="python: '//input[@name=\'%s\' and @type=\'text\']' % name"></td>
......@@ -229,61 +263,237 @@
</tr>
</tal:block>
<tal:block metal:define-macro="input_textarea">
<tr>
<td colspan="3"><b tal:content="python: 'Fill %s (textarea)' % name"></b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td tal:content="python: '//textarea[@name=\'%s\']' % name"></td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td tal:content="python: '//textarea[@name=\'%s\']' % name"></td>
<td></td>
</tr>
<tr>
<td>type</td>
<td tal:content="python: '//textarea[@name=\'%s\']' % name"></td>
<td tal:content="python: value"></td>
</tr>
</tal:block>
<tal:block metal:define-macro="assert_readonly_input_text">
<tr>
<td colspan="3"><b tal:content="python: 'Asssert readonly on %s' % name"></b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td tal:content="python: '//input[@name=\'%s\' and @type=\'text\' and @readonly=\'true\']' % name"></td>
<td tal:content="python: '//input[@name=\'%s\' and @type=\'text\' and @readonly=\'true\'][@disabled]' % name"></td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td tal:content="python: '//input[@name=\'%s\' and @type=\'text\' and @readonly=\'true\']' % name"></td>
<td tal:content="python: '//input[@name=\'%s\' and @type=\'text\' and @readonly=\'true\'][@disabled]' % name"></td>
<td></td>
</tr>
<tr>
<td>assertValue</td>
<td tal:content="python: '//input[@name=\'%s\' and @type=\'text\' and @readonly=\'true\']' % name"></td>
<td tal:content="python: '//input[@name=\'%s\' and @type=\'text\' and @readonly=\'true\'][@disabled]' % name"></td>
<td tal:content="python: value"></td>
</tr>
</tal:block>
<tal:block metal:define-macro="input_number">
<tal:block metal:define-macro="assert_readonly_input_textarea">
<tr>
<td colspan="3"><b tal:content="python: 'Asssert readonly on %s' % name"></b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td tal:content="python: '//input[@name=\'%s\' and @type=\'number\']' % name"></td>
<td tal:content="python: '//textarea[@name=\'%s\' and @readonly=\'true\'][@disabled]' % name"></td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td tal:content="python: '//input[@name=\'%s\' and @type=\'number\']' % name"></td>
<td tal:content="python: '//textarea[@name=\'%s\' and @readonly=\'true\'][@disabled]' % name"></td>
<td></td>
</tr>
<tr>
<td>type</td>
<td tal:content="python: '//input[@name=\'%s\' and @type=\'number\']' % name"></td>
<td>assertValue</td>
<td tal:content="python: '//textarea[@name=\'%s\' and @readonly=\'true\'][@disabled]' % name"></td>
<td tal:content="python: value"></td>
</tr>
</tal:block>
<tal:block metal:define-macro="assert_readonly_input_number">
<tal:block metal:define-macro="wait_for_input_select">
<tr>
<td>waitForElementPresent</td>
<td tal:content="python: '//input[@name=\'%s\' and @type=\'number\' and @readonly=\'true\']' % name"></td>
<td tal:content="python: '//select[@name=\'%s\']' % name"></td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td tal:content="python: '//input[@name=\'%s\' and @type=\'number\' and @readonly=\'true\']' % name"></td>
<td tal:content="python: '//select[@name=\'%s\']' % name"></td>
<td></td>
</tr>
</tal:block>
<tal:block metal:define-macro="input_select">
<tr>
<td>assertValue</td>
<td tal:content="python: '//input[@name=\'%s\' and @type=\'number\' and @readonly=\'true\']' % name"></td>
<td colspan="3"><b tal:content="python: 'Select on %s' % name"></b></td>
</tr>
<tal:block metal:use-macro="here/Zuite_SlapOSParameterCommonTemplate/macros/wait_for_input_select" />
<tr>
<td>select</td>
<td tal:content="python: '//select[@name=\'%s\']' % name"></td>
<td tal:content="python: value"></td>
</tr>
</tal:block>
<tal:block metal:define-macro="assert_readonly_input_select">
<tr>
<td colspan="3"><b tal:content="python: 'Assert read only on select for %s' % name"></b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td tal:content="python: '//select[@name=\'%s\'][@disabled]' % name"></td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td tal:content="python: '//select[@name=\'%s\'][@disabled]' % name"></td>
<td></td>
</tr>
<tr>
<td>select</td>
<td tal:content="python: '//select[@name=\'%s\'][@disabled]' % name"></td>
<td tal:content="python: value"></td>
</tr>
</tal:block>
<tal:block metal:define-macro="json_del_property">
<tr>
<td colspan="3"><b tal:content="python: 'Remove one extra property/object on %s' % name"></b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td tal:content="python: '//div[@data-schemapath=\'%s\']/span/button[contains(@class, \'json-editor-btn-edit_properties\')]' % name"></td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td tal:content="python: '//div[@data-schemapath=\'%s\']/span/button[contains(@class, \'json-editor-btn-edit_properties\')]' % name"></td>
<td></td>
</tr>
<tr>
<td>click</td>
<td tal:content="python: '//div[@data-schemapath=\'%s\']/span/button[contains(@class, \'json-editor-btn-edit_properties\')]' % name"></td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td tal:content="python: '//div[@data-schemapath=\'%s\']//label[contains(text(), \'%s\')]/..//input[@type=\'checkbox\' and @class=\'form-check-input\']' % (name, value)"></td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td tal:content="python: '//div[@data-schemapath=\'%s\']//label[contains(text(), \'%s\')]/..//input[@type=\'checkbox\' and @class=\'form-check-input\']' % (name, value)"></td>
<td></td>
</tr>
<tr>
<td>click</td>
<td tal:content="python: '//div[@data-schemapath=\'%s\']//label[contains(text(), \'%s\')]/..//input[@type=\'checkbox\' and @class=\'form-check-input\']' % (name, value)"></td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td tal:content="python: '//div[@data-schemapath=\'%s\']/span/button[contains(@class, \'json-editor-btn-edit_properties\')]' % name"></td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td tal:content="python: '//div[@data-schemapath=\'%s\']/span/button[contains(@class, \'json-editor-btn-edit_properties\')]' % name"></td>
<td></td>
</tr>
<tr>
<td>click</td>
<td tal:content="python: '//div[@data-schemapath=\'%s\']/span/button[contains(@class, \'json-editor-btn-edit_properties\')]' % name"></td>
<td></td>
</tr>
</tal:block>
<tal:block metal:define-macro="json_add_property">
<tr>
<td colspan="3"><b tal:content="python: 'Add one extra property/object on %s' % name"></b></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td tal:content="python: '//div[@data-schemapath=\'%s\']/span/button[contains(@class, \'json-editor-btn-edit_properties\')]' % name"></td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td tal:content="python: '//div[@data-schemapath=\'%s\']/span/button[contains(@class, \'json-editor-btn-edit_properties\')]' % name"></td>
<td></td>
</tr>
<tr>
<td>click</td>
<td tal:content="python: '//div[@data-schemapath=\'%s\']/span/button[contains(@class, \'json-editor-btn-edit_properties\')]' % name"></td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td tal:content="python: '//div[@data-schemapath=\'%s\']//input[@type = \'text\' and contains(@class, \'property-selector-input\')]' % name"></td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td tal:content="python: '//div[@data-schemapath=\'%s\']//input[@type = \'text\' and contains(@class, \'property-selector-input\')]' % name"></td>
<td></td>
</tr>
<tr>
<td>type</td>
<td tal:content="python: '//div[@data-schemapath=\'%s\']//input[@type = \'text\' and contains(@class, \'property-selector-input\')]' % name"></td>
<td tal:content="python: value"></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td tal:content="python: '//div[@data-schemapath=\'%s\']//button[contains(@class, \'json-editor-btn-add\')]' % name"></td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td tal:content="python: '//div[@data-schemapath=\'%s\']//button[contains(@class, \'json-editor-btn-add\')]' % name"></td>
<td></td>
</tr>
<tr>
<td>click</td>
<td tal:content="python: '//div[@data-schemapath=\'%s\']//button[contains(@class, \'json-editor-btn-add\')]' % name"></td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td tal:content="python: '//div[@data-schemapath=\'%s\']/span/button[contains(@class, \'json-editor-btn-edit_properties\')]' % name"></td>
<td></td>
</tr>
<tr>
<td>assertElementPresent</td>
<td tal:content="python: '//div[@data-schemapath=\'%s\']/span/button[contains(@class, \'json-editor-btn-edit_properties\')]' % name"></td>
<td></td>
</tr>
<tr>
<td>click</td>
<td tal:content="python: '//div[@data-schemapath=\'%s\']/span/button[contains(@class, \'json-editor-btn-edit_properties\')]' % name"></td>
<td></td>
</tr>
</tal:block>
<tal:block metal:define-macro="set_software_for_parameter_test">
<tr>
......
......@@ -262,6 +262,7 @@ class testSlapOSMixin(ERP5TypeTestCase):
'erp5_l10n_ja',
'erp5_l10n_zh',
'erp5_monaco_editor',
'erp5_json_editor',
'erp5_movement_table_catalog',
'erp5_oauth',
'erp5_bearer_token',
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment