You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by be...@apache.org on 2009/05/21 13:19:25 UTC
svn commit: r777068 - in /mina/sandbox/vysper/trunk/src:
main/java/org/apache/vysper/xmpp/stanza/dataforms/
test/java/org/apache/vysper/xmpp/stanza/dataforms/
Author: berndf
Date: Thu May 21 11:19:25 2009
New Revision: 777068
URL: http://svn.apache.org/viewvc?rev=777068&view=rev
Log:
[vysper] improve forms, add tests (VYSPER-61)
Added:
mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/stanza/dataforms/
mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/stanza/dataforms/DataFormEncoderTestCase.java
Modified:
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/stanza/dataforms/DataForm.java
mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/stanza/dataforms/DataFormEncoder.java
Modified: mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/stanza/dataforms/DataForm.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/stanza/dataforms/DataForm.java?rev=777068&r1=777067&r2=777068&view=diff
==============================================================================
--- mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/stanza/dataforms/DataForm.java (original)
+++ mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/stanza/dataforms/DataForm.java Thu May 21 11:19:25 2009
@@ -19,12 +19,17 @@
*/
package org.apache.vysper.xmpp.stanza.dataforms;
+import org.apache.vysper.compliance.SpecCompliant;
+import static org.apache.vysper.compliance.SpecCompliant.ComplianceCoverage;
+import static org.apache.vysper.compliance.SpecCompliant.ComplianceStatus;
+
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/**
*/
+@SpecCompliant(spec = "XEP-0004", status = ComplianceStatus.IN_PROGRESS, coverage = ComplianceCoverage.PARTIAL)
public class DataForm {
public static enum Type {
@@ -94,6 +99,7 @@
// as the spec requires (XEP-004#3.4, last sentence).
List<Field> fieldPrototype = items.get(0);
for (Field field : fieldPrototype) {
+ // copy the relevant reported information
reportedFields.add(new Field(field.getLabel(), field.getType(), field.getVar()));
}
Modified: mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/stanza/dataforms/DataFormEncoder.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/stanza/dataforms/DataFormEncoder.java?rev=777068&r1=777067&r2=777068&view=diff
==============================================================================
--- mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/stanza/dataforms/DataFormEncoder.java (original)
+++ mina/sandbox/vysper/trunk/src/main/java/org/apache/vysper/xmpp/stanza/dataforms/DataFormEncoder.java Thu May 21 11:19:25 2009
@@ -71,7 +71,9 @@
XMLElement itemElement = new XMLElement("item", null, (Attribute[])null, itemFields);
childElements.add(itemElement);
}
- } else {
+ }
+
+ if (dataForm.getType() != DataForm.Type.cancel) {
// all fields
Iterator<Field> fieldIterator = dataForm.getFieldIterator();
while (fieldIterator.hasNext()) {
Added: mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/stanza/dataforms/DataFormEncoderTestCase.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/stanza/dataforms/DataFormEncoderTestCase.java?rev=777068&view=auto
==============================================================================
--- mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/stanza/dataforms/DataFormEncoderTestCase.java (added)
+++ mina/sandbox/vysper/trunk/src/test/java/org/apache/vysper/xmpp/stanza/dataforms/DataFormEncoderTestCase.java Thu May 21 11:19:25 2009
@@ -0,0 +1,76 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.vysper.xmpp.stanza.dataforms;
+
+import junit.framework.TestCase;
+import static org.apache.vysper.xmpp.stanza.dataforms.DataForm.Type;
+import static org.apache.vysper.xmpp.stanza.dataforms.Field.Type.*;
+import org.apache.vysper.xmpp.xmlfragment.XMLElement;
+import org.apache.vysper.xmpp.xmlfragment.XMLElementVerifier;
+import org.apache.vysper.xmpp.xmlfragment.XMLSemanticError;
+
+/**
+ */
+public class DataFormEncoderTestCase extends TestCase {
+
+
+
+ public void testXDataForm() throws XMLSemanticError {
+ DataForm form = new DataForm();
+ form.setTitle("ftitle");
+ form.setType(Type.form);
+ form.addInstruction("instruction1");
+ Field field = new Field("label", HIDDEN, "var");
+ field.addValue("val1");
+ field.addOption(new Option("1.", "uno"));
+ field.addOption(new Option("2.", "due"));
+ form.addField(field);
+
+ XMLElement formElement = DataFormEncoder.getXML(form);
+ XMLElementVerifier formElementVerifier = formElement.getVerifier();
+ formElementVerifier.nameEquals("x");
+ formElementVerifier.attributeEquals("type", "form");
+ formElementVerifier.subElementsPresentExact(3);
+ formElementVerifier.subElementPresent("title");
+ formElementVerifier.subElementPresent("instructions");
+ formElementVerifier.subElementPresent("field");
+
+ XMLElement fieldElement = formElement.getSingleInnerElementsNamed("field");
+ XMLElementVerifier fieldElementVerifier = fieldElement.getVerifier();
+ fieldElementVerifier.subElementsPresentExact(3);
+ formElementVerifier.subElementPresent("value");
+ formElementVerifier.subElementPresent("option");
+
+
+ }
+
+ public void testXDataCancel() {
+ DataForm form = new DataForm();
+ form.setType(Type.cancel);
+ form.addField(new Field("label", HIDDEN, "var"));
+
+ XMLElement formElement = DataFormEncoder.getXML(form);
+ assertTrue(formElement.getInnerElements().isEmpty());
+
+
+ }
+
+ // TODO test 'item' subelements together with 'reported'
+}