You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by mp...@apache.org on 2005/09/05 11:21:59 UTC
svn commit: r278702 - in
/cocoon/gsoc/mpfingsthorn/forms/test/org/apache/cocoon/forms/formmodel:
FieldTestCase.java FieldTestCase.model.xml FieldTestCase.xtest
GroupTestCase.java GroupTestCase.model.xml GroupTestCase.xtest
Author: mpfingsthorn
Date: Mon Sep 5 02:21:46 2005
New Revision: 278702
URL: http://svn.apache.org/viewcvs?rev=278702&view=rev
Log:
New tests for the inheritance features
Added:
cocoon/gsoc/mpfingsthorn/forms/test/org/apache/cocoon/forms/formmodel/GroupTestCase.java
cocoon/gsoc/mpfingsthorn/forms/test/org/apache/cocoon/forms/formmodel/GroupTestCase.model.xml (with props)
cocoon/gsoc/mpfingsthorn/forms/test/org/apache/cocoon/forms/formmodel/GroupTestCase.xtest
Modified:
cocoon/gsoc/mpfingsthorn/forms/test/org/apache/cocoon/forms/formmodel/FieldTestCase.java
cocoon/gsoc/mpfingsthorn/forms/test/org/apache/cocoon/forms/formmodel/FieldTestCase.model.xml
cocoon/gsoc/mpfingsthorn/forms/test/org/apache/cocoon/forms/formmodel/FieldTestCase.xtest
Modified: cocoon/gsoc/mpfingsthorn/forms/test/org/apache/cocoon/forms/formmodel/FieldTestCase.java
URL: http://svn.apache.org/viewcvs/cocoon/gsoc/mpfingsthorn/forms/test/org/apache/cocoon/forms/formmodel/FieldTestCase.java?rev=278702&r1=278701&r2=278702&view=diff
==============================================================================
--- cocoon/gsoc/mpfingsthorn/forms/test/org/apache/cocoon/forms/formmodel/FieldTestCase.java (original)
+++ cocoon/gsoc/mpfingsthorn/forms/test/org/apache/cocoon/forms/formmodel/FieldTestCase.java Mon Sep 5 02:21:46 2005
@@ -16,11 +16,16 @@
package org.apache.cocoon.forms.formmodel;
+import junit.framework.Assert;
+
import org.apache.cocoon.core.container.ContainerTestCase;
import org.apache.cocoon.environment.mock.MockRequest;
import org.apache.cocoon.forms.FormContext;
+import org.apache.cocoon.forms.datatype.typeimpl.FloatType;
import org.apache.cocoon.forms.event.ValueChangedEvent;
import org.apache.cocoon.forms.event.ValueChangedListener;
+import org.apache.commons.jxpath.JXPathContext;
+import org.apache.commons.jxpath.Pointer;
import org.w3c.dom.Document;
/**
@@ -32,6 +37,7 @@
public class FieldTestCase extends ContainerTestCase {
public static final String VALUE_PATH = "fi:fragment/fi:field/fi:value";
+ public static final String LABEL_PATH = "fi:fragment/fi:field/fi:label";
public static final String VALIDATION_PATH = "fi:fragment/fi:field/fi:validation-message";
@@ -223,5 +229,40 @@
// Should have changed now
assertEquals("bar", field.getValue());
+ }
+
+ /**
+ * checks for correct inheritance
+ */
+ public void testInheritance() throws Exception {
+ Form form = WidgetTestHelper.loadForm(getManager(), this, "FieldTestCase.model.xml");
+ Field field = (Field)form.getChild("floatfield2");
+ MockRequest request;
+
+ Assert.assertTrue("Datatype set correctly", (field.getDatatype() != null && field.getDatatype() instanceof FloatType) );
+
+ request = new MockRequest();
+ request.addParameter("floatfield2", "9.2");
+ form.process(new FormContext(request));
+
+ // No parsing nor validation where performed
+ Document doc = WidgetTestHelper.getWidgetFragment(field, null);
+ WidgetTestHelper.assertXPathEquals("Displayed value", "9.2", VALUE_PATH, doc);
+
+ // check that the label is right
+ WidgetTestHelper.assertXPathEquals("Displayed label", "FloatField2", LABEL_PATH, doc);
+
+ // Now do some parsing. Will return null although syntactically correct as it's invalid
+ assertNull("Field value", field.getValue());
+
+ // Now validate
+ assertFalse("Field validation", field.validate());
+ doc = WidgetTestHelper.getWidgetFragment(field, null);
+ WidgetTestHelper.assertXPathExists("Validation error after validation", VALIDATION_PATH, doc);
+ assertNotNull("getValidationError() not null after validation", field.getValidationError());
+
+ request = new MockRequest();
+ request.addParameter("doublefield2", "123awd");
+ form.process(new FormContext(request));
}
}
Modified: cocoon/gsoc/mpfingsthorn/forms/test/org/apache/cocoon/forms/formmodel/FieldTestCase.model.xml
URL: http://svn.apache.org/viewcvs/cocoon/gsoc/mpfingsthorn/forms/test/org/apache/cocoon/forms/formmodel/FieldTestCase.model.xml?rev=278702&r1=278701&r2=278702&view=diff
==============================================================================
--- cocoon/gsoc/mpfingsthorn/forms/test/org/apache/cocoon/forms/formmodel/FieldTestCase.model.xml (original)
+++ cocoon/gsoc/mpfingsthorn/forms/test/org/apache/cocoon/forms/formmodel/FieldTestCase.model.xml Mon Sep 5 02:21:46 2005
@@ -32,5 +32,18 @@
<fd:action id="action" action-command="blah"/>
+ <fd:field id="floatfield">
+ <fd:datatype base="float">
+ <fd:convertor type="plain"/>
+ </fd:datatype>
+ <fd:validation>
+ <fd:range min="10"/>
+ </fd:validation>
+ </fd:field>
+
+ <fd:field id="floatfield2" extends="floatfield">
+ <fd:label>FloatField2</fd:label>
+ </fd:field>
+
</fd:widgets>
</fd:form>
Modified: cocoon/gsoc/mpfingsthorn/forms/test/org/apache/cocoon/forms/formmodel/FieldTestCase.xtest
URL: http://svn.apache.org/viewcvs/cocoon/gsoc/mpfingsthorn/forms/test/org/apache/cocoon/forms/formmodel/FieldTestCase.xtest?rev=278702&r1=278701&r2=278702&view=diff
==============================================================================
--- cocoon/gsoc/mpfingsthorn/forms/test/org/apache/cocoon/forms/formmodel/FieldTestCase.xtest (original)
+++ cocoon/gsoc/mpfingsthorn/forms/test/org/apache/cocoon/forms/formmodel/FieldTestCase.xtest Mon Sep 5 02:21:46 2005
@@ -35,11 +35,11 @@
<role name="org.apache.cocoon.forms.validation.WidgetValidatorBuilderSelector"
shorthand="forms-validators"
- default-class="org.apache.cocoon.components.ExtendedComponentSelector"/>
+ default-class="org.apache.cocoon.core.container.DefaultServiceSelector"/>
<role name="org.apache.cocoon.forms.event.WidgetListenerBuilderSelector"
shorthand="forms-widgetlisteners"
- default-class="org.apache.cocoon.components.ExtendedComponentSelector"/>
+ default-class="org.apache.cocoon.core.container.DefaultServiceSelector"/>
</roles>
<components>
@@ -55,7 +55,12 @@
<convertor name="plain" src="org.apache.cocoon.forms.datatype.convertor.PlainIntegerConvertorBuilder"/>
<convertor name="formatting" src="org.apache.cocoon.forms.datatype.convertor.FormattingIntegerConvertorBuilder"/>
</convertors>
- </datatype>
+ </datatype>
+ <datatype name="float" src="org.apache.cocoon.forms.datatype.typeimpl.FloatTypeBuilder">
+ <convertors default="formatting" plain="plain">
+ <convertor name="plain" src="org.apache.cocoon.forms.datatype.convertor.PlainFloatConvertorBuilder"/>
+ </convertors>
+ </datatype>
</datatypes>
<!--validation-rules>
<validation-rule name="range" src="org.apache.cocoon.forms.datatype.validationruleimpl.RangeValidationRuleBuilder"/>
@@ -75,6 +80,10 @@
</forms-formmanager>
<forms-expression logger="forms.expression"/>
+
+ <forms-cachemanager logger="forms.cache"/>
+
+ <forms-widgetlisteners logger="forms.listeners"/>
</components>
Added: cocoon/gsoc/mpfingsthorn/forms/test/org/apache/cocoon/forms/formmodel/GroupTestCase.java
URL: http://svn.apache.org/viewcvs/cocoon/gsoc/mpfingsthorn/forms/test/org/apache/cocoon/forms/formmodel/GroupTestCase.java?rev=278702&view=auto
==============================================================================
--- cocoon/gsoc/mpfingsthorn/forms/test/org/apache/cocoon/forms/formmodel/GroupTestCase.java (added)
+++ cocoon/gsoc/mpfingsthorn/forms/test/org/apache/cocoon/forms/formmodel/GroupTestCase.java Mon Sep 5 02:21:46 2005
@@ -0,0 +1,52 @@
+/*
+ * Copyright 1999-2004 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.cocoon.forms.formmodel;
+
+import junit.framework.Assert;
+
+import org.apache.cocoon.core.container.ContainerTestCase;
+import org.apache.cocoon.forms.datatype.typeimpl.IntegerType;
+
+/**
+ * Test case for CForm's Field widget
+ *
+ * @version $Id: FieldTestCase.java 106132 2004-11-21 22:29:26Z sylvain $
+ */
+
+public class GroupTestCase extends ContainerTestCase {
+
+
+
+
+ /**
+ * checks for correct inheritance
+ */
+ public void testInheritance() throws Exception {
+ Form form = WidgetTestHelper.loadForm(getManager(), this, "GroupTestCase.model.xml");
+ Field field1 = (Field)((Group)form.getChild("group2")).getChild("field1");
+ Field field2 = (Field)((Group)form.getChild("group2")).getChild("field2");
+ Field field3 = (Field)((Group)form.getChild("group2")).getChild("field3");
+ Group group2 = (Group)form.getChild("group2");
+
+ Assert.assertNotNull("Inherited field present", field1 );
+ Assert.assertNotNull("Added field present", field2 );
+ Assert.assertNotNull("Internally inherited field present", field3 );
+
+ // check datatype
+ Assert.assertTrue("Datatype of internally inherited field", field3.getDatatype() instanceof IntegerType);
+ }
+}
Added: cocoon/gsoc/mpfingsthorn/forms/test/org/apache/cocoon/forms/formmodel/GroupTestCase.model.xml
URL: http://svn.apache.org/viewcvs/cocoon/gsoc/mpfingsthorn/forms/test/org/apache/cocoon/forms/formmodel/GroupTestCase.model.xml?rev=278702&view=auto
==============================================================================
--- cocoon/gsoc/mpfingsthorn/forms/test/org/apache/cocoon/forms/formmodel/GroupTestCase.model.xml (added)
+++ cocoon/gsoc/mpfingsthorn/forms/test/org/apache/cocoon/forms/formmodel/GroupTestCase.model.xml Mon Sep 5 02:21:46 2005
@@ -0,0 +1,41 @@
+<?xml version="1.0"?>
+<!--
+ Copyright 2005 The Apache Software Foundation or its licensors,
+ as applicable.
+
+ 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.
+-->
+<fd:form xmlns:fd="http://apache.org/cocoon/forms/1.0#definition">
+ <fd:widgets>
+
+ <fd:group id="group1">
+ <fd:widgets>
+ <fd:field id="field1">
+ <fd:label>Field1</fd:label>
+ <fd:datatype base="integer"/>
+ </fd:field>
+ </fd:widgets>
+ </fd:group>
+
+ <fd:group id="group2" extends="group1">
+ <fd:widgets>
+ <fd:field id="field2">
+ <fd:label>Field2</fd:label>
+ <fd:datatype base="string"/>
+ </fd:field>
+ <fd:field id="field3" extends="field1"/>
+ </fd:widgets>
+ </fd:group>
+
+ </fd:widgets>
+</fd:form>
Propchange: cocoon/gsoc/mpfingsthorn/forms/test/org/apache/cocoon/forms/formmodel/GroupTestCase.model.xml
------------------------------------------------------------------------------
svn:eol-style = native
Added: cocoon/gsoc/mpfingsthorn/forms/test/org/apache/cocoon/forms/formmodel/GroupTestCase.xtest
URL: http://svn.apache.org/viewcvs/cocoon/gsoc/mpfingsthorn/forms/test/org/apache/cocoon/forms/formmodel/GroupTestCase.xtest?rev=278702&view=auto
==============================================================================
--- cocoon/gsoc/mpfingsthorn/forms/test/org/apache/cocoon/forms/formmodel/GroupTestCase.xtest (added)
+++ cocoon/gsoc/mpfingsthorn/forms/test/org/apache/cocoon/forms/formmodel/GroupTestCase.xtest Mon Sep 5 02:21:46 2005
@@ -0,0 +1,91 @@
+<?xml version="1.0" ?>
+<!--
+ Copyright 1999-2004 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.
+-->
+<testcase>
+ <roles>
+
+ <role name="org.apache.cocoon.forms.datatype.DatatypeManager"
+ shorthand="forms-datatype"
+ default-class="org.apache.cocoon.forms.datatype.DefaultDatatypeManager"/>
+
+ <role name="org.apache.cocoon.forms.expression.ExpressionManager"
+ shorthand="forms-expression"
+ default-class="org.apache.cocoon.forms.expression.DefaultExpressionManager"/>
+
+ <role name="org.apache.cocoon.forms.FormManager"
+ shorthand="forms-formmanager"
+ default-class="org.apache.cocoon.forms.DefaultFormManager"/>
+
+ <role name="org.apache.cocoon.forms.CacheManager"
+ shorthand="forms-cachemanager"
+ default-class="org.apache.cocoon.forms.DefaultCacheManager"/>
+
+ <role name="org.apache.cocoon.forms.validation.WidgetValidatorBuilderSelector"
+ shorthand="forms-validators"
+ default-class="org.apache.cocoon.core.container.DefaultServiceSelector"/>
+
+ <role name="org.apache.cocoon.forms.event.WidgetListenerBuilderSelector"
+ shorthand="forms-widgetlisteners"
+ default-class="org.apache.cocoon.core.container.DefaultServiceSelector"/>
+</roles>
+
+ <components>
+ <forms-datatype logger="forms">
+ <datatypes>
+ <datatype name="string" src="org.apache.cocoon.forms.datatype.typeimpl.StringTypeBuilder">
+ <convertors default="dummy" plain="dummy">
+ <convertor name="dummy" src="org.apache.cocoon.forms.datatype.convertor.DummyStringConvertorBuilder"/>
+ </convertors>
+ </datatype>
+ <datatype name="integer" src="org.apache.cocoon.forms.datatype.typeimpl.IntegerTypeBuilder">
+ <convertors default="formatting" plain="plain">
+ <convertor name="plain" src="org.apache.cocoon.forms.datatype.convertor.PlainIntegerConvertorBuilder"/>
+ <convertor name="formatting" src="org.apache.cocoon.forms.datatype.convertor.FormattingIntegerConvertorBuilder"/>
+ </convertors>
+ </datatype>
+ <datatype name="float" src="org.apache.cocoon.forms.datatype.typeimpl.FloatTypeBuilder">
+ <convertors default="formatting" plain="plain">
+ <convertor name="plain" src="org.apache.cocoon.forms.datatype.convertor.PlainFloatConvertorBuilder"/>
+ </convertors>
+ </datatype>
+ </datatypes>
+ <!--validation-rules>
+ <validation-rule name="range" src="org.apache.cocoon.forms.datatype.validationruleimpl.RangeValidationRuleBuilder"/>
+ </validation-rules-->
+ </forms-datatype>
+
+ <forms-validators>
+ <validator name="range" class="org.apache.cocoon.forms.validation.impl.RangeValidatorBuilder"/>
+ </forms-validators>
+
+ <forms-formmanager>
+ <widgets>
+ <widget name="form" src="org.apache.cocoon.forms.formmodel.FormDefinitionBuilder"/>
+ <widget name="group" src="org.apache.cocoon.forms.formmodel.GroupDefinitionBuilder"/>
+ <widget name="field" src="org.apache.cocoon.forms.formmodel.FieldDefinitionBuilder"/>
+ <widget name="action" src="org.apache.cocoon.forms.formmodel.ActionDefinitionBuilder"/>
+ </widgets>
+ </forms-formmanager>
+
+ <forms-expression logger="forms.expression"/>
+
+ <forms-cachemanager logger="forms.cache"/>
+
+ <forms-widgetlisteners logger="forms.listeners"/>
+
+ </components>
+
+</testcase>