application messages
entity User{
name :: String
}
var u0 : User := User{ name := "bob" };
var u1 : User := User{ name := "alice" };
define page root(){
for(u:User) {
output(u.name)
}
navigate(somepage()){"link"}
form {
input(u0.name)
action("save",save())
}
action save() {
u0.save();
message("1: username: "+u0.name);
message("2: username: "+u0.name);
return somepage();
}
}
define page somepage(){
"somepagefragment"
messages()
}
define override templateSuccess(messages : List<String>){
a(messages)
}
define a(m : List<String>){
b{
for(v: String in m){
output(v)
} separated-by {", "}
}
}
define b(){
elements()
}
test {
var d : WebDriver := getHtmlUnitDriver();
d.get(navigate(root()));
var elist : List<WebElement> := d.findElements(SelectBy.tagName("input"));
assert(elist.length == 2, "expected 2 <input> element");
elist[1].sendKeys("blabla");
d.getSubmit().click();
//check that messages are produced below "somepage fragment"
var pagesource := d.getPageSource();
var list := /somepagefragment/.split(pagesource);
assert(list.length == 2, "expected one occurence of \"somepagefragment\"");
assert(list[1].contains("1: username: bobblabla"), "cannot find first message");
assert(list[1].contains("2: username: bobblabla"), "cannot find second message");
}