Test Richlet"

From Documentation
(Created page with "{{Template:UnderConstruction}} {{ZATSEssentialsPageHeader}} ZATS Mimic also supports to test <javadoc>org.zkoss.zk.ui.Richlet</javadoc><ref>for more detail, please refer to [[ZK...")
 
Line 75: Line 75:
 
<references/>
 
<references/>
  
 +
 +
 +
{{ZATSEssentialsPageHeader}}
 
{{ZATSEssentialsPageFooter}}
 
{{ZATSEssentialsPageFooter}}

Revision as of 08:20, 21 June 2012

WarningTriangle-32x32.png This page is under construction, so we cannot guarantee the accuracy of the content!


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

  1. for more detail, please refer to ZK_Developer's_Reference/UI_Composing/Richlet





Last Update : 2012/06/21

Copyright © Potix Corporation. This article is licensed under GNU Free Documentation License.