ZATS Richlet
From Documentation
ZATS Mimic also supports to test Richlet[1]. It just needs a few custom configuration for DefaultZatsEnvironment and the test code is no different with testing a ZUML file. The ZATS Mimic built-in web configuration doesn't support Richlet. We can specify the folder contained custom web configuration (web.xml and zk.xml) for the testing environment through the constructor of DefaultZatsEnvironment when testing Richlet
.
Following is a simple Richlet
example, we assume that the web.xml and zk.xml are placed in the src/main/webapp/WEB-INF folder:
web.xml
<servlet-mapping>
<servlet-name>zkLoader</servlet-name>
<url-pattern>/zk/*</url-pattern>
</servlet-mapping>
zk.xml
<richlet>
<richlet-name>MyRichlet</richlet-name>
<richlet-class>foo.MyRichlet</richlet-class>
</richlet>
<richlet-mapping>
<richlet-name>MyRichlet</richlet-name>
<url-pattern>/foo</url-pattern>
</richlet-mapping>
MyRichlet.java
public class MyRichlet extends GenericRichlet {
public void service(Page page) throws Exception {
final Label message = new Label("foo");
Button button = new Button("go");
button.addEventListener(Events.ON_CLICK, new EventListener() {
public void onEvent(Event event) throws Exception {
message.setValue("bar");
}
});
button.setId("btn");
message.setId("msg");
button.setPage(page);
message.setPage(page);
}
}
- Line 12, 14, 16: After clicking the button, the text of label will be changed.
Following is a typical example of testing Richlet
:
@Test
public void test() {
DefaultZatsEnvironment env = new DefaultZatsEnvironment("./src/main/webapp/WEB-INF");
try {
env.init("./src/main/webapp");
DesktopAgent desktop = env.newClient().connect("/zk/foo");
Label msg = desktop.query("#msg").as(Label.class);
Assert.assertEquals("foo", msg.getValue());
desktop.query("#btn").click();
Assert.assertEquals("bar", msg.getValue());
}
finally {
env.destroy();
}
}
- Line 12: Specify the folder contains web configuration for testing the
Richlet
. - Line 22: Release the
DefaultZatsEnvironment
manually when the test finish.
Notes
- ↑ for more detail, please refer to ZK_Developer's_Reference/UI_Composing/Richlet