import org.apache.wicket.Component;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.util.tester.TagTester;
import org.apache.wicket.util.tester.WicketTester;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
+import org.wamblee.wicket.MyPage;
+
+import flexjson.JSONSerializer;
import static junit.framework.TestCase.*;
public void tearDown() {
wicket.destroy();
}
-
+
@Test
- public void testCreateReadyJavascript() {
+ public void testVerifyBasicFunc() {
+ MyPage page = new MyPage();
+ page.getLabel().add(new AbstractJQueryBehavior("initfunc"));
+ wicket.startPage(page);
+ wicket.assertRenderedPage(MyPage.class);
+ TagTester tag = wicket.getTagByWicketId("label");
+ assertNotNull(tag.getAttribute("id"));
+ String doc = wicket.getServletResponse().getDocument();
+ assertTrue(doc.contains("jquery-noconflict"));
+ assertTrue(doc.contains("initfunc"));
+ }
+
+ @Test
+ public void testCreateReadyJavascript() {
Component component = new Label("label");
component.setOutputMarkupId(true);
- String readyHandler = AbstractJQueryBehavior.createReadyFunction("myfunc", component);
- assertEquals("jQuery(function(){org.wamblee.myfunc(\"#" + component.getMarkupId() + "\");});", readyHandler);
+ AbstractJQueryBehavior behavior = new AbstractJQueryBehavior("myfunc");
+ behavior.bind(component);
+ String readyHandler = behavior.createReadyFunction();
+ assertEquals("jQuery(function(){myfunc(\"#" + component.getMarkupId() +
+ "\",null);});", readyHandler);
+ }
+
+ @Test
+ public void testCreateReadyJavaScriptWithCustomConfigJavascript() {
+ Component component = new Label("label");
+ component.setOutputMarkupId(false);
+ AbstractJQueryBehavior behavior = new AbstractJQueryBehavior("myfunc") {
+ @Override
+ protected String getConfigurationJavascript() {
+ return "bla";
+ }
+ };
+ behavior.bind(component);
+ String readyHandler = behavior.createReadyFunction();
+ assertEquals("jQuery(function(){myfunc(\"#" + component.getMarkupId() +
+ "\",bla);});", readyHandler);
+ }
+
+ public static final class X {
+ private int x = 10;
+ public int getX() {
+ return x;
+ }
+ }
+
+ @Test
+ public void testCreateReadyJavaScriptWithConfig() {
+ Component component = new Label("label");
+ component.setOutputMarkupId(false);
+ AbstractJQueryBehavior behavior = new AbstractJQueryBehavior("myfunc") {
+ @Override
+ protected Object getConfigurationObject() {
+ return new X();
+ }
+ };
+ behavior.bind(component);
+ String readyHandler = behavior.createReadyFunction();
+ String config = new JSONSerializer().serialize(new X());
+ assertEquals("jQuery(function(){myfunc(\"#" + component.getMarkupId() +
+ "\"," + config + ");});", readyHandler);
}
- @Test(expected = IllegalStateException.class)
- public void testCreateReadyJavascriptNoMarkupId() {
+ @Test
+ public void testCreateReadyJavaScriptWithConfigWithCustomSerializer() {
Component component = new Label("label");
- String readyHandler = AbstractJQueryBehavior.createReadyFunction("myfunc", component);
+ component.setOutputMarkupId(false);
+ AbstractJQueryBehavior behavior = new AbstractJQueryBehavior("myfunc") {
+ @Override
+ protected Object getConfigurationObject() {
+ return new X();
+ }
+ @Override
+ protected JSONSerializer getCustomSerializer() {
+ return new JSONSerializer().exclude("x");
+ }
+ };
+ behavior.bind(component);
+ String readyHandler = behavior.createReadyFunction();
+ String config = new JSONSerializer().exclude("x").serialize(new X());
+ assertEquals("jQuery(function(){myfunc(\"#" + component.getMarkupId() +
+ "\"," + config + ");});", readyHandler);
}
+
}