[Libreoffice-commits] .: 2 commits - sw/JunitTest_sw_complex.mk sw/qa

Michael Stahl mst at kemper.freedesktop.org
Mon Mar 5 03:25:12 PST 2012


 sw/JunitTest_sw_complex.mk                      |    2 
 sw/qa/complex/writer/CheckFields.java           |  173 ++++++++++++++++++++++++
 sw/qa/complex/writer/testdocuments/fdo39694.ott |binary
 3 files changed, 175 insertions(+)

New commits:
commit 870e5a8e8251967b513b4255231ee9665b085431
Author: Michael Stahl <mstahl at redhat.com>
Date:   Mon Mar 5 12:20:48 2012 +0100

    fdo#39694, fdo#42073: add junit test for these

diff --git a/sw/JunitTest_sw_complex.mk b/sw/JunitTest_sw_complex.mk
index 28d3282..381417b 100644
--- a/sw/JunitTest_sw_complex.mk
+++ b/sw/JunitTest_sw_complex.mk
@@ -40,6 +40,7 @@ $(eval $(call gb_JunitTest_add_sourcefiles,sw_complex,\
     sw/qa/complex/writer/CheckBookmarks \
     sw/qa/complex/writer/CheckCrossReferences \
     sw/qa/complex/writer/CheckFlies \
+    sw/qa/complex/writer/CheckFields \
     sw/qa/complex/writer/CheckIndexedPropertyValues \
     sw/qa/complex/writer/CheckNamedPropertyValues \
     sw/qa/complex/writer/LoadSaveTest \
@@ -60,6 +61,7 @@ $(eval $(call gb_JunitTest_add_classes,sw_complex,\
     complex.writer.CheckBookmarks \
     complex.checkColor.CheckChangeColor \
     complex.writer.CheckCrossReferences \
+    complex.writer.CheckFields\
     complex.writer.CheckFlies \
     complex.writer.CheckIndexedPropertyValues \
     complex.writer.CheckNamedPropertyValues \
diff --git a/sw/qa/complex/writer/CheckFields.java b/sw/qa/complex/writer/CheckFields.java
new file mode 100644
index 0000000..f966e52
--- /dev/null
+++ b/sw/qa/complex/writer/CheckFields.java
@@ -0,0 +1,173 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * Version: MPL 1.1 / GPLv3+ / LGPLv3+
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License or as specified alternatively below. You may obtain a copy of
+ * the License at http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * Major Contributor(s):
+ * [ Copyright (C) 2012 Red Hat, Inc., Michael Stahl <mstahl at redhat.com> (initial developer) ]
+ *
+ * All Rights Reserved.
+ *
+ * For minor contributions see the git repository.
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 3 or later (the "GPLv3+"), or
+ * the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
+ * in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
+ * instead of those above.
+ */
+
+package complex.writer;
+
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XComponentContext;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XServiceInfo;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.container.XEnumeration;
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextContent;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.text.XTextField;
+import com.sun.star.text.XTextFieldsSupplier;
+import com.sun.star.text.XTextRange;
+import com.sun.star.text.XTextCursor;
+
+import org.openoffice.test.OfficeConnection;
+
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import static org.junit.Assert.*;
+
+import java.util.Set;
+import java.util.HashSet;
+
+
+public class CheckFields
+{
+    private static final OfficeConnection connection = new OfficeConnection();
+
+    @BeforeClass public static void setUpConnection() throws Exception {
+        connection.setUp();
+//Thread.sleep(5000);
+    }
+
+    @AfterClass public static void tearDownConnection()
+        throws InterruptedException, com.sun.star.uno.Exception
+    {
+        connection.tearDown();
+    }
+
+    private XMultiServiceFactory m_xMSF = null;
+    private XComponentContext m_xContext = null;
+    private XTextDocument m_xDoc = null;
+
+    @Before public void before() throws Exception
+    {
+        m_xMSF = UnoRuntime.queryInterface(
+            XMultiServiceFactory.class,
+            connection.getComponentContext().getServiceManager());
+        m_xContext = connection.getComponentContext();
+        assertNotNull("could not get component context.", m_xContext);
+        m_xDoc = util.WriterTools.createTextDoc(m_xMSF);
+    }
+
+    @After public void after()
+    {
+        util.DesktopTools.closeDoc(m_xDoc);
+    }
+
+    @Test
+    public void test_fdo39694_load() throws Exception
+    {
+        PropertyValue[] loadProps = new PropertyValue[2];
+        loadProps[0] = new PropertyValue();
+        loadProps[0].Name = "AsTemplate";
+        loadProps[0].Value = new Boolean(true);
+        loadProps[1] = new PropertyValue();
+        loadProps[1].Name = "Hidden";
+        loadProps[1].Value = new Boolean(true);
+
+        String file = TestDocument.getUrl("fdo39694.ott");
+        XComponent xComp = util.DesktopTools.loadDoc(m_xMSF, file, loadProps);
+        XTextDocument xTextDoc = (XTextDocument)
+            UnoRuntime.queryInterface(XTextDocument.class, xComp);
+
+        XTextFieldsSupplier xTFS = (XTextFieldsSupplier)
+            UnoRuntime.queryInterface(XTextFieldsSupplier.class, xComp);
+        XEnumeration xEnum = xTFS.getTextFields().createEnumeration();
+        Set<String> placeholders = new HashSet<String>();
+        placeholders.add("<Kadr1>");
+        placeholders.add("<Kadr2>");
+        placeholders.add("<Kadr3>");
+        placeholders.add("<Kadr4>");
+        placeholders.add("<Pnname>");
+        placeholders.add("<Pvname>");
+        placeholders.add("<Pgeboren>");
+
+        while (xEnum.hasMoreElements())
+        {
+            Object xField = xEnum.nextElement();
+            XServiceInfo xSI = (XServiceInfo)
+                UnoRuntime.queryInterface(XServiceInfo.class, xField);
+            if (xSI.supportsService("com.sun.star.text.TextField.JumpEdit"))
+            {
+                XTextContent xContent = (XTextContent)
+                    UnoRuntime.queryInterface(XTextContent.class, xField);
+                XTextRange xAnchor = xContent.getAnchor();
+                String readContent = xAnchor.getString();
+                if (!placeholders.remove(readContent))
+                {
+                    System.out.println("field not found: " + readContent);
+                    assertFalse(true);
+                }
+            }
+        }
+        assertTrue(placeholders.isEmpty());
+    }
+
+    @Test
+    public void test_fdo42073() throws Exception
+    {
+        XMultiServiceFactory xDocFactory = (XMultiServiceFactory)
+            UnoRuntime.queryInterface(XMultiServiceFactory.class, m_xDoc);
+        Object xField =
+            xDocFactory.createInstance("com.sun.star.text.TextField.Input");
+
+        XText xBodyText = m_xDoc.getText();
+        XTextCursor xCursor = xBodyText.createTextCursor();
+        XTextField xTextField = (XTextField)
+            UnoRuntime.queryInterface(XTextField.class, xField);
+        xBodyText.insertTextContent(xCursor, xTextField, true);
+
+        XPropertySet xPropSet = (XPropertySet)
+            UnoRuntime.queryInterface(XPropertySet.class, xField);
+        {
+            Object readContent = xPropSet.getPropertyValue("Content");
+            assertEquals("", readContent);
+        }
+
+        String content = "this is not surprising";
+        xPropSet.setPropertyValue("Content", content);
+        Object readContent = xPropSet.getPropertyValue("Content");
+        assertEquals(content, readContent);
+        readContent = xTextField.getPresentation(false);
+        assertEquals(content, readContent);
+    }
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
commit 0982257e5902a29c3faf90c0fa3dba809a2462e5
Author: Juergen Steinhilber <j.steinhilber at rta.de>
Date:   Mon Mar 5 12:08:41 2012 +0100

    fdo#39694: add test document

diff --git a/sw/qa/complex/writer/testdocuments/fdo39694.ott b/sw/qa/complex/writer/testdocuments/fdo39694.ott
new file mode 100644
index 0000000..959d2a6
Binary files /dev/null and b/sw/qa/complex/writer/testdocuments/fdo39694.ott differ


More information about the Libreoffice-commits mailing list