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=807effdd67ce9c9af658654129389d067b18a935;hpb=16b9ac4c6a3a79bcb7cac1b4195af7fc8e549622;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 807effdd..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,12 +16,17 @@ 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; 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.*; @@ -37,19 +42,119 @@ public class AbstractJQueryBehaviorTest { public void tearDown() { wicket.destroy(); } - + + @Test + 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() { + 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"); + 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"); - 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); } + }