Commit a5a10bb8 authored by Boris Kocherov's avatar Boris Kocherov

tests: test viewer display validation and changed status

parent 0d4890f6
...@@ -38,6 +38,38 @@ ...@@ -38,6 +38,38 @@
}); });
} }
function updateTextContent(g) {
return g.getDeclaredGadget("form_view")
.push(function (form_view) {
return form_view.getContent();
})
.push(function (ret) {
var valid = g.state.valid,
changed = g.state.changed;
if (ret === undefined) {
ret = {};
}
if (typeof valid === "boolean") {
if (valid) {
valid = "form filed valid";
} else {
valid = "form filed invalid";
}
} else {
valid = "valid status unknown";
}
if (changed) {
changed = 'changed\n';
} else {
changed = '';
}
document.getElementById("json_document_content").textContent =
valid + '\n' +
changed +
JSON.stringify(ret, null, 2);
});
}
rJS(window) rJS(window)
.ready(function (g) { .ready(function (g) {
var url_list = []; var url_list = [];
...@@ -97,11 +129,19 @@ ...@@ -97,11 +129,19 @@
]); ]);
}); });
}) })
.allowPublicAcquisition("notifyValid", function () { .allowPublicAcquisition("notifyValid", function (arr, scope) {
return; if (scope === "form_view") {
this.changeState({
valid: true
});
}
}) })
.allowPublicAcquisition("notifyInvalid", function () { .allowPublicAcquisition("notifyInvalid", function (arr, scope) {
return; if (scope === "form_view") {
this.changeState({
valid: false
});
}
}) })
.allowPublicAcquisition("notifyChange", function (arr, scope) { .allowPublicAcquisition("notifyChange", function (arr, scope) {
var gadget = this; var gadget = this;
...@@ -125,12 +165,14 @@ ...@@ -125,12 +165,14 @@
return g.getContent(); return g.getContent();
}) })
.push(function (ret) { .push(function (ret) {
gadget.props.valid = null;
if (ret !== gadget.props.documents[0]) { if (ret !== gadget.props.documents[0]) {
var test = gadget.props.schema + ': ' + ret; var test = gadget.props.schema + ': ' + ret;
test = gadget.props.test_data[test]; test = gadget.props.test_data[test];
console.log(test.schema); console.log(test.schema);
console.log(test.data); console.log(test.data);
return gadget.changeState({ return gadget.changeState({
changed: false,
schema: test.schema, schema: test.schema,
json_document: test.data json_document: test.data
}); });
...@@ -138,40 +180,45 @@ ...@@ -138,40 +180,45 @@
}); });
} }
if (scope === "form_view") { if (scope === "form_view") {
return this.getDeclaredGadget("form_view") return gadget.changeState({
.push(function (g) { changed: true
return g.getContent();
}) })
.push(function (ret) { .push(function () {
if (ret === undefined) { return updateTextContent(gadget);
ret = {};
}
document.getElementById("json_document_content").textContent =
JSON.stringify(ret, null, " ");
}); });
} }
}) })
.onStateChange(function () { .onStateChange(function (modification) {
var g = this; var g = this,
return g.getDeclaredGadget("form_view") queue = RSVP.Queue();
if (modification.hasOwnProperty('json_document') ||
modification.hasOwnProperty('schema') ||
modification.hasOwnProperty('schema_url')) {
queue
.push(function () {
return g.getDeclaredGadget("form_view");
})
.push(function (form_view) { .push(function (form_view) {
return form_view.render({ return form_view.render({
value: g.state.json_document, value: g.state.json_document,
schema: g.state.schema, schema: g.state.schema,
schema_url: g.state.schema_url schema_url: g.state.schema_url
});
}) })
.push(function () { .push(undefined, function (error) {
return form_view.getContent(); console.log(error);
}) })
.push(function (ret) { .push(function () {
if (ret === undefined) { return updateTextContent(g);
ret = {};
}
g.state.json_document = ret;
document.getElementById("json_document_content").textContent =
JSON.stringify(ret, null, 2);
}); });
}
if (modification.hasOwnProperty('valid')) {
queue
.push(function () {
return updateTextContent(g);
}); });
}
return queue;
}); });
}(window, rJS, jIO)); }(window, rJS, jIO));
\ No newline at end of file
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