X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=wicket%2Fcomponents%2Fsrc%2Ftest%2Fjava%2Forg%2Fwamblee%2Fwicket%2Fjquery%2FAbstractJQueryBehaviorTest.java;h=2646ac08fda22739be55a809a47a3d6ac4ba6e52;hb=6c5dc665abfe021a7add911d1ca167113f4ccae8;hp=92fcf16e38e6da9563e8a242288613dcc8cc68d2;hpb=ce303cec9c05e88de46a00125a03a2e50ad42dca;p=utils diff --git a/wicket/components/src/test/java/org/wamblee/wicket/jquery/AbstractJQueryBehaviorTest.java b/wicket/components/src/test/java/org/wamblee/wicket/jquery/AbstractJQueryBehaviorTest.java index 92fcf16e..2646ac08 100644 --- a/wicket/components/src/test/java/org/wamblee/wicket/jquery/AbstractJQueryBehaviorTest.java +++ b/wicket/components/src/test/java/org/wamblee/wicket/jquery/AbstractJQueryBehaviorTest.java @@ -16,6 +16,7 @@ package org.wamblee.wicket.jquery; import org.apache.wicket.Component; +import org.apache.wicket.Page; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.form.Form; import org.apache.wicket.util.tester.TagTester; @@ -25,6 +26,8 @@ import org.junit.Before; import org.junit.Test; import org.wamblee.wicket.MyPage; +import flexjson.JSONSerializer; + import static junit.framework.TestCase.*; public class AbstractJQueryBehaviorTest { @@ -39,9 +42,9 @@ public class AbstractJQueryBehaviorTest { public void tearDown() { wicket.destroy(); } - + @Test - public void testVerifyBasicFunc() { + public void testVerifyBasicFunc() { MyPage page = new MyPage(); page.getLabel().add(new AbstractJQueryBehavior("initfunc")); wicket.startPage(page); @@ -52,19 +55,106 @@ public class AbstractJQueryBehaviorTest { assertTrue(doc.contains("jquery-noconflict")); assertTrue(doc.contains("initfunc")); } - + @Test - public void testCreateReadyJavascript() { + 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(expected = IllegalStateException.class) - public void testCreateReadyJavascriptNoMarkupId() { + public void testNotAllowedOnPagePageBehavior() { + Page component = new Page() { + }; + AbstractJQueryBehavior behavior = new AbstractJQueryBehavior("myfunc") { + @Override + protected boolean isPageAllowed() { + return false; + } + }; + behavior.bind(component); + } + + @Test + public void testCreateReadyJavascriptForPage() { + Page component = new Page() { + }; + AbstractJQueryBehavior behavior = new AbstractJQueryBehavior("myfunc") { + @Override + protected boolean isPageAllowed() { + return true; + } + }; + behavior.bind(component); + String readyHandler = behavior.createReadyFunction(); + assertEquals("jQuery(function(){myfunc(\"body\",null);});", readyHandler); + } + + + @Test + public void testCreateReadyJavaScriptWithCustomConfigJavascript() { Component component = new Label("label"); - String readyHandler = AbstractJQueryBehavior.createReadyFunction("myfunc", component); + 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 + public void testCreateReadyJavaScriptWithConfigWithCustomSerializer() { + Component component = new Label("label"); + 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); + } + + }