Test Richlet"
From Documentation
m (correct highlight (via JWB)) |
|||
(4 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | |||
{{ZATSEssentialsPageHeader}} | {{ZATSEssentialsPageHeader}} | ||
− | ZATS Mimic also supports | + | ZATS Mimic also supports the testing of <javadoc>org.zkoss.zk.ui.Richlet</javadoc>.<ref>For more details, please refer to [[ZK_Developer%27s_Reference/UI_Composing/Richlet]]</ref> Simply customize a few configurations for [http://www.zkoss.org/javadoc/latest/zats/org/zkoss/zats/mimic/DefaultZatsEnvironment.html DefaultZatsEnvironment] and the test code would be no different to testing a ZUML file. ZATS Mimic's built-in web configuration does not support Richlet, however, we can specify the folder containing custom web configuration ('''web.xml''' and '''zk.xml''') for the testing environment through the constructor of [http://www.zkoss.org/javadoc/latest/zats/org/zkoss/zats/mimic/DefaultZatsEnvironment.html#DefaultZatsEnvironment(java.lang.String) DefaultZatsEnvironment] when testing <code>Richlet</code>. |
− | Following is a simple < | + | Following is a simple <code>Richlet</code> example, we assume that the '''web.xml''' and '''zk.xml''' are placed in the '''src/main/webapp/WEB-INF''' folder: |
'''web.xml''' | '''web.xml''' | ||
− | <source lang="xml" start="10" | + | <source lang="xml" start="10" highlight="11,12"> |
<servlet-mapping> | <servlet-mapping> | ||
<servlet-name>zkLoader</servlet-name> | <servlet-name>zkLoader</servlet-name> | ||
Line 15: | Line 14: | ||
'''zk.xml''' | '''zk.xml''' | ||
− | <source lang="xml" start="10" | + | <source lang="xml" start="10" highlight="12,16"> |
<richlet> | <richlet> | ||
<richlet-name>MyRichlet</richlet-name> | <richlet-name>MyRichlet</richlet-name> | ||
Line 27: | Line 26: | ||
'''MyRichlet.java''' | '''MyRichlet.java''' | ||
− | <source lang="java" start="10" | + | <source lang="java" start="10" highlight="12,14,16,19,20"> |
public class MyRichlet extends GenericRichlet { | public class MyRichlet extends GenericRichlet { | ||
public void service(Page page) throws Exception { | public void service(Page page) throws Exception { | ||
Line 44: | Line 43: | ||
} | } | ||
</source> | </source> | ||
− | * '''Line 12, 14, 16''': After clicking the button, | + | * '''Line 12, 14, 16''': After clicking the button, text of the label will be changed. |
+ | |||
---- | ---- | ||
− | Following is a typical example of testing < | + | Following is a typical example of testing <code>Richlet</code>: |
− | <source lang="java" start="10" | + | <source lang="java" start="10" highlight="12, 15, 22"> |
@Test | @Test | ||
public void test() { | public void test() { | ||
Line 68: | Line 68: | ||
} | } | ||
</source> | </source> | ||
− | * '''Line 12''': Specify the folder | + | * '''Line 12''': Specify the folder containing web configuration for testing <code>Richlet</code>. |
− | * '''Line 22''': Release | + | * '''Line 22''': Release <code>DefaultZatsEnvironment</code> manually when the testing is done. |
+ | |||
− | |||
'''Notes''' | '''Notes''' | ||
<references/> | <references/> |
Latest revision as of 02:54, 18 January 2022
ZATS Mimic also supports the testing of Richlet.[1] Simply customize a few configurations for DefaultZatsEnvironment and the test code would be no different to testing a ZUML file. ZATS Mimic's built-in web configuration does not support Richlet, however, we can specify the folder containing 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, text of the 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 containing web configuration for testing
Richlet
. - Line 22: Release
DefaultZatsEnvironment
manually when the testing is done.
Notes
- ↑ For more details, please refer to ZK_Developer's_Reference/UI_Composing/Richlet