You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by jk...@apache.org on 2006/10/06 04:56:04 UTC
svn commit: r453472 - in /tapestry/tapestry4/trunk/tapestry-framework/src:
java/org/apache/tapestry/form/ java/org/apache/tapestry/link/
test/org/apache/tapestry/form/ test/org/apache/tapestry/link/
Author: jkuhnert
Date: Thu Oct 5 19:56:03 2006
New Revision: 453472
URL: http://svn.apache.org/viewvc?view=rev&rev=453472
Log:
Added new tests to cover fixes made for TAPESTRY-1110 - where dojo.event connections were being made for DirectLink's when
the links were disabled. The same fixes have been applied to submit type buttons as well.
Added:
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/link/DirectLinkWorkerTest.java
Modified:
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/AbstractSubmit.java
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/ImageSubmit.java
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/link/AbstractLinkComponent.java
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/link/DirectLinkWorker.java
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/TestSubmit.java
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/AbstractSubmit.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/AbstractSubmit.java?view=diff&rev=453472&r1=453471&r2=453472
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/AbstractSubmit.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/AbstractSubmit.java Thu Oct 5 19:56:03 2006
@@ -114,6 +114,9 @@
*/
protected void renderSubmitBindings(IMarkupWriter writer, IRequestCycle cycle)
{
+ if (isDisabled())
+ return;
+
String type = getSubmitType();
Defense.notNull(type, "submitType");
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/ImageSubmit.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/ImageSubmit.java?view=diff&rev=453472&r1=453471&r2=453472
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/ImageSubmit.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/ImageSubmit.java Thu Oct 5 19:56:03 2006
@@ -69,9 +69,9 @@
// NN4 places a border unless you tell it otherwise.
// IE ignores the border attribute and never shows a border.
-
+
writer.attribute("border", 0);
-
+
writer.attribute("src", imageURL);
renderIdAttribute(writer, cycle);
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/link/AbstractLinkComponent.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/link/AbstractLinkComponent.java?view=diff&rev=453472&r1=453471&r2=453472
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/link/AbstractLinkComponent.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/link/AbstractLinkComponent.java Thu Oct 5 19:56:03 2006
@@ -107,11 +107,11 @@
if (_eventHandlers == null)
return;
-
+
PageRenderSupport pageRenderSupport = TapestryUtils.getPageRenderSupport(cycle, this);
-
+
Iterator i = _eventHandlers.entrySet().iterator();
-
+
while (i.hasNext())
{
Map.Entry entry = (Map.Entry) i.next();
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/link/DirectLinkWorker.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/link/DirectLinkWorker.java?view=diff&rev=453472&r1=453471&r2=453472
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/link/DirectLinkWorker.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/link/DirectLinkWorker.java Thu Oct 5 19:56:03 2006
@@ -70,7 +70,8 @@
// must implement both interfaces
if (!ILinkComponent.class.isInstance(component)
- || !IDirect.class.isInstance(component))
+ || !IDirect.class.isInstance(component)
+ || ( ((ILinkComponent)component).isDisabled()))
return;
IDirect direct = (IDirect)component;
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/TestSubmit.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/TestSubmit.java?view=diff&rev=453472&r1=453471&r2=453472
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/TestSubmit.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/TestSubmit.java Thu Oct 5 19:56:03 2006
@@ -94,7 +94,7 @@
trainIsRewinding(form, false);
trainIsRewinding(cycle, false);
-
+
form.setFormFieldUpdating(true);
writer.beginEmpty("input");
@@ -240,6 +240,47 @@
replay();
+ submit.renderComponent(writer, cycle);
+
+ verify();
+ }
+
+ public void test_SubmitType_OnClick_Disabled()
+ {
+ Submit submit = newInstance(Submit.class, new Object[] {
+ "disabled", Boolean.TRUE
+ });
+
+ IValidationDelegate delegate = newDelegate();
+ IForm form = newForm();
+ IRequestCycle cycle = newCycle();
+ IMarkupWriter writer = newWriter();
+
+ trainGetForm(cycle, form);
+
+ trainWasPrerendered(form, writer, submit, false);
+
+ trainGetDelegate(form, delegate);
+
+ delegate.setFormComponent(submit);
+
+ trainGetElementId(form, submit, "fred");
+
+ trainIsRewinding(form, false);
+
+ trainIsRewinding(cycle, false);
+
+ form.setFormFieldUpdating(true);
+
+ writer.beginEmpty("input");
+ writer.attribute("type", "submit");
+ writer.attribute("name", "fred");
+ writer.attribute("disabled", "disabled");
+
+ writer.closeTag();
+
+ replay();
+
submit.renderComponent(writer, cycle);
verify();
Added: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/link/DirectLinkWorkerTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/link/DirectLinkWorkerTest.java?view=auto&rev=453472
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/link/DirectLinkWorkerTest.java (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/link/DirectLinkWorkerTest.java Thu Oct 5 19:56:03 2006
@@ -0,0 +1,97 @@
+// Copyright Oct 5, 2006 The Apache Software Foundation
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+package org.apache.tapestry.link;
+
+import static org.easymock.EasyMock.eq;
+import static org.easymock.EasyMock.expect;
+import static org.easymock.EasyMock.isA;
+
+import java.util.Map;
+
+import org.apache.hivemind.Resource;
+import org.apache.hivemind.impl.DefaultClassResolver;
+import org.apache.tapestry.BaseComponentTestCase;
+import org.apache.tapestry.IRequestCycle;
+import org.apache.tapestry.IScript;
+import org.apache.tapestry.PageRenderSupport;
+import org.apache.tapestry.engine.IScriptSource;
+import org.testng.annotations.Test;
+
+
+/**
+ * Tests functionality of {@link DirectLinkWorker}.
+ *
+ * @author jkuhnert
+ */
+@Test
+public class DirectLinkWorkerTest extends BaseComponentTestCase
+{
+
+ public void test_Render()
+ {
+ DirectLink link = newInstance(DirectLink.class, new Object[] {
+ "disabled", Boolean.FALSE,
+ "async", Boolean.TRUE,
+ "json", Boolean.FALSE
+ });
+
+ IScriptSource scriptSource = newMock(IScriptSource.class);
+ IRequestCycle cycle = newCycle(false);
+
+ PageRenderSupport prs = newPageRenderSupport();
+ trainGetPageRenderSupport(cycle, prs);
+
+ IScript script = newMock(IScript.class);
+
+ expect(scriptSource.getScript(isA(Resource.class))).andReturn(script);
+
+ script.execute(eq(link), eq(cycle), eq(prs), isA(Map.class));
+
+ DirectLinkWorker w = new DirectLinkWorker();
+ w.setScript("/org/apache/tapestry/link/DirectLinkWorker.script");
+ w.setScriptSource(scriptSource);
+ w.setClassResolver(new DefaultClassResolver());
+ w.initialize();
+
+ replay();
+
+ w.renderComponent(cycle, link);
+
+ verify();
+ }
+
+ public void test_Render_Disabled()
+ {
+ DirectLink link = newInstance(DirectLink.class, new Object[] {
+ "disabled", Boolean.TRUE,
+ "async", Boolean.TRUE,
+ "json", Boolean.FALSE
+ });
+
+ IScriptSource scriptSource = newMock(IScriptSource.class);
+ IRequestCycle cycle = newCycle(false);
+
+ DirectLinkWorker w = new DirectLinkWorker();
+ w.setScript("/org/apache/tapestry/link/DirectLinkWorker.script");
+ w.setScriptSource(scriptSource);
+ w.setClassResolver(new DefaultClassResolver());
+ w.initialize();
+
+ replay();
+
+ w.renderComponent(cycle, link);
+
+ verify();
+ }
+}