this merges the master head of https://github.com/helma-org/apps-modules-mirror into helma
319 lines
9.5 KiB
JavaScript
319 lines
9.5 KiB
JavaScript
var tests = [
|
|
"testCommentMacro",
|
|
"testDeepResolve",
|
|
"testDeepUnhandled",
|
|
"testDeep",
|
|
"testDeepFail",
|
|
"testDeepFailSilent",
|
|
"testJavaProp",
|
|
"testJavaMissing",
|
|
"testJavaMissingSilent",
|
|
"testJavaMissingVerbose",
|
|
"testUndefinedHandler",
|
|
"testJSProp",
|
|
"testJSMacro",
|
|
"testJSFunction",
|
|
"testJSMissing",
|
|
"testJSMissingSilent",
|
|
"testJSMissingVerbose",
|
|
"testDateFilter",
|
|
"testNestedRootMacro",
|
|
"testNestedParamMacro",
|
|
"testNestedResponseMacro",
|
|
"testNestedPrefixSuffix",
|
|
"testResponseProp",
|
|
"testResponseMacro",
|
|
"testResponseFunction",
|
|
"testResponseMissing",
|
|
"testResponseMissingSilent",
|
|
"testResponseMissingVerbose",
|
|
"testRootProp",
|
|
"testRootMacro",
|
|
"testRootMissing",
|
|
"testRootMissingSilent",
|
|
"testRootMissingVerbose",
|
|
"testSessionProp",
|
|
"testSessionMacro",
|
|
"testSessionFunction",
|
|
"testSessionMissing",
|
|
"testSessionMissingDefault",
|
|
"testSessionMissingSilent",
|
|
"testSessionMissingVerbose",
|
|
"testSessionDeepMissing",
|
|
"testSubskins"
|
|
];
|
|
|
|
var setup = function() {
|
|
res.handlers.color = new java.awt.Color["(int,int,int)"](0, 255, 0);
|
|
res.handlers.file = new java.io.File["(java.lang.String,java.lang.String)"](null, "file");
|
|
res.handlers.jsobject = {
|
|
banana: "yellow",
|
|
kiwi_macro: function() { return this.kiwiColor },
|
|
apple: function() {},
|
|
kiwiColor: "green"
|
|
};
|
|
res.data.date = new Date();
|
|
res.data.banana = "yellow";
|
|
res.data.kiwi_macro = function() { return "green" };
|
|
res.data.apple = function() {};
|
|
session.data.banana = "yellow";
|
|
session.data.kiwi_macro = function() { return "green" };
|
|
session.data.apple = function() {};
|
|
};
|
|
|
|
var testCommentMacro = function() {
|
|
var skin = createSkin("<% // this.foo bar=<% this.foobar %> FIXME %>ok");
|
|
var result = renderSkinAsString(skin);
|
|
assertEqual(result, "ok");
|
|
}
|
|
|
|
var testDeepResolve = function() {
|
|
res.handlers.deep = {
|
|
getMacroHandler: function(name) {
|
|
if (name != "foo") return null;
|
|
return {
|
|
bar_macro: function() {
|
|
return "ok";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
var result = renderSkinAsString(createSkin("<% deep.foo.bar %>"));
|
|
assertEqual(result, "ok");
|
|
};
|
|
|
|
var testDeepUnhandled = function() {
|
|
res.handlers.deep = {
|
|
getMacroHandler: function(name) {
|
|
if (name != "foo") return null;
|
|
return {
|
|
onUnhandledMacro: function(name) {
|
|
if (name == "bar") return "ok";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
var result = renderSkinAsString(createSkin("<% deep.foo.bar %>"));
|
|
assertEqual(result, "ok");
|
|
};
|
|
|
|
var testDeep = function() {
|
|
res.handlers.deep = {
|
|
foo: {
|
|
bar: "ok"
|
|
}
|
|
}
|
|
var result = renderSkinAsString(createSkin("<% deep.foo.bar %>"));
|
|
assertEqual(result, "ok");
|
|
};
|
|
|
|
var testDeepFail = function() {
|
|
var result = renderSkinAsString(createSkin("<% root.foo.bar %>"));
|
|
assertStringContains(result, "Unhandled");
|
|
var result = renderSkinAsString(createSkin("<% root.foo.bar failmode=silent %>"));
|
|
assertEqual(result, "");
|
|
};
|
|
|
|
var testDeepFailSilent = function() {
|
|
res.handlers.deep = {
|
|
foo: {}
|
|
};
|
|
var result = renderSkinAsString(createSkin("<% deep.foo.bar %>"));
|
|
assertEqual(result, "");
|
|
var result = renderSkinAsString(createSkin("<% deep.foo.bar failmode=verbose %>"));
|
|
assertStringContains(result, "Unhandled");
|
|
};
|
|
|
|
|
|
var testJavaProp = function() {
|
|
var result = renderSkinAsString(createSkin("<% color.green %>"));
|
|
assertEqual(result, "255");
|
|
result = renderSkinAsString(createSkin("<% color.red %>"));
|
|
assertEqual(result, "0");
|
|
};
|
|
|
|
var testJavaMissing = function() {
|
|
var result = renderSkinAsString(createSkin("<% colo.foo %>"));
|
|
assertStringContains(result, "Unhandled");
|
|
};
|
|
|
|
var testJavaMissingSilent = function() {
|
|
var result = renderSkinAsString(createSkin("<% color.foo failmode=silent default=ok %>"));
|
|
assertEqual(result, "ok");
|
|
};
|
|
|
|
var testJavaMissingVerbose = function() {
|
|
var result = renderSkinAsString(createSkin("<% color.foo failmode=verbose %>"));
|
|
assertStringContains(result, "Unhandled");
|
|
}
|
|
|
|
var testUndefinedHandler = function() {
|
|
var result = renderSkinAsString(createSkin("<% file.parentFile %>"));
|
|
assertEqual(result, "");
|
|
};
|
|
|
|
var testJSProp = function() {
|
|
var result = renderSkinAsString(createSkin("<% jsobject.banana %>"));
|
|
assertEqual(result, "yellow");
|
|
};
|
|
|
|
var testJSMacro = function() {
|
|
var result = renderSkinAsString(createSkin("<% jsobject.kiwi %>"));
|
|
assertEqual(result, "green");
|
|
};
|
|
|
|
var testJSFunction = function() {
|
|
var result = renderSkinAsString(createSkin("<% jsobject.apple failmode=silent %>"));
|
|
assertEqual(result, "");
|
|
};
|
|
|
|
var testJSMissing = function() {
|
|
var result = renderSkinAsString(createSkin("<% jsobject.papaya %>"));
|
|
assertEqual(result, "");
|
|
};
|
|
|
|
var testJSMissingSilent = function() {
|
|
var result = renderSkinAsString(createSkin("<% jsobject.papaya failmode=silent %>"));
|
|
assertEqual(result, "");
|
|
};
|
|
|
|
var testJSMissingVerbose = function() {
|
|
var result = renderSkinAsString(createSkin("<% jsobject.papaya failmode=verbose %>"));
|
|
assertStringContains(result, "Unhandled");
|
|
};
|
|
|
|
var testDateFilter = function() {
|
|
var result = renderSkinAsString(createSkin("<% root.date | isDate %>"));
|
|
assertEqual(result, "true");
|
|
};
|
|
|
|
var testNestedRootMacro = function() {
|
|
var skin = "<% echo <% root.date %> | isRootDate %>";
|
|
var result = renderSkinAsString(createSkin(skin));
|
|
assertEqual(result, "true");
|
|
}
|
|
|
|
var testNestedParamMacro = function() {
|
|
var skin = "<% echo <% param.date %> | isDate %>";
|
|
var result = renderSkinAsString(createSkin(skin), { date: new Date() });
|
|
assertEqual(result, "true");
|
|
}
|
|
|
|
|
|
var testNestedResponseMacro = function() {
|
|
var skin = "<% echo what=<% response.date %> | isResponseDate %>";
|
|
var result = renderSkinAsString(createSkin(skin));
|
|
assertEqual(result, "true");
|
|
};
|
|
|
|
var testNestedPrefixSuffix = function() {
|
|
var skin = "<% root.macro prefix=<% root.string %> suffix=<% root.macro %> %>";
|
|
var result = renderSkinAsString(createSkin(skin));
|
|
// root.macro changes suffix to "."
|
|
assertEqual(result, "rootroot.");
|
|
}
|
|
|
|
var testResponseProp = function() {
|
|
var result = renderSkinAsString(createSkin("<% response.banana %>"));
|
|
assertEqual(result, "yellow");
|
|
};
|
|
|
|
var testResponseMacro = function() {
|
|
var result = renderSkinAsString(createSkin("<% response.kiwi %>"));
|
|
assertEqual(result, "green");
|
|
};
|
|
|
|
var testResponseFunction = function() {
|
|
var result = renderSkinAsString(createSkin("<% response.apple failmode=silent %>"));
|
|
assertEqual(result, "");
|
|
};
|
|
|
|
var testResponseMissing = function() {
|
|
var result = renderSkinAsString(createSkin("<% response.papaya %>"));
|
|
assertEqual(result, "");
|
|
};
|
|
|
|
var testResponseMissingSilent = function() {
|
|
var result = renderSkinAsString(createSkin("<% response.papaya failmode=silent %>"));
|
|
assertEqual(result, "");
|
|
};
|
|
|
|
var testResponseMissingVerbose = function() {
|
|
var result = renderSkinAsString(createSkin("<% response.papaya failmode=verbose %>"));
|
|
assertStringContains(result, "Unhandled");
|
|
};
|
|
|
|
var testRootProp = function() {
|
|
var result = renderSkinAsString(createSkin("<% root.string %>"));
|
|
assertEqual(result, "root");
|
|
};
|
|
|
|
var testRootMacro = function() {
|
|
var result = renderSkinAsString(createSkin("<% root.macro %>"));
|
|
assertEqual(result, "root");
|
|
};
|
|
|
|
var testRootMissing = function() {
|
|
var result = renderSkinAsString(createSkin("<% root.undefinedmacro %>"));
|
|
assertStringContains(result, "Unhandled");
|
|
};
|
|
|
|
var testRootMissingSilent = function() {
|
|
var result = renderSkinAsString(createSkin("<% root.undefinedmacro failmode=silent %>"));
|
|
assertEqual(result, "");
|
|
};
|
|
|
|
var testRootMissingVerbose = function() {
|
|
var result = renderSkinAsString(createSkin("<% root.undefinedmacro failmode=verbose %>"));
|
|
assertStringContains(result, "Unhandled");
|
|
};
|
|
|
|
var testSessionProp = function() {
|
|
var result = renderSkinAsString(createSkin("<% session.banana %>"));
|
|
assertEqual(result, "yellow");
|
|
};
|
|
|
|
var testSessionMacro = function() {
|
|
var result = renderSkinAsString(createSkin("<% session.kiwi %>"));
|
|
assertEqual(result, "green");
|
|
};
|
|
|
|
var testSessionFunction = function() {
|
|
var result = renderSkinAsString(createSkin("<% session.apple failmode=silent %>"));
|
|
assertEqual(result, "");
|
|
};
|
|
|
|
var testSessionMissingDefault = function() {
|
|
var result = renderSkinAsString(createSkin("<% session.papaya default=nope %>"));
|
|
assertEqual(result, "nope");
|
|
};
|
|
|
|
var testSessionMissing = function() {
|
|
var result = renderSkinAsString(createSkin("<% session.papaya %>"));
|
|
assertEqual(result, "");
|
|
};
|
|
|
|
var testSessionMissingSilent = function() {
|
|
var result = renderSkinAsString(createSkin("<% session.papaya failmode=silent %>"));
|
|
assertEqual(result, "");
|
|
};
|
|
|
|
var testSessionMissingVerbose = function() {
|
|
var result = renderSkinAsString(createSkin("<% session.papaya failmode=verbose %>"));
|
|
assertStringContains(result, "Unhandled");
|
|
};
|
|
|
|
var testSessionDeepMissing = function() {
|
|
var result = renderSkinAsString(createSkin("<% session.user.name %>"));
|
|
assertStringContains(result, "Unhandled");
|
|
// assertEqual(result, "");
|
|
};
|
|
|
|
var testSubskins = function() {
|
|
var result = renderSkinAsString("subskins");
|
|
assertEqual(result, "mainskin");
|
|
result = renderSkinAsString("subskins#subskin1");
|
|
assertEqual(result, "subskin1");
|
|
result = renderSkinAsString("subskins#subskin2");
|
|
assertEqual(result, "subskin2");
|
|
};
|