[Libreoffice-commits] core.git: qadevOOo/qa

Noel Grandin noel at peralex.com
Fri Dec 12 00:57:03 PST 2014


 qadevOOo/qa/complex/junitskeleton/Skeleton.java             |  181 ++++++++++++
 qadevOOo/qa/complex/junitskeleton/TestDocument.java         |   32 ++
 qadevOOo/qa/complex/junitskeleton/justatest.java            |   43 ++
 qadevOOo/qa/complex/junitskeleton/makefile.mk               |   54 +++
 qadevOOo/qa/complex/junitskeleton/test_documents/README.txt |    1 
 qadevOOo/qa/unoapi/Test.java                                |   44 ++
 qadevOOo/qa/unoapi/knownissues.xcl                          |    1 
 qadevOOo/qa/unoapi/qadevOOo.sce                             |   18 +
 8 files changed, 374 insertions(+)

New commits:
commit 4d58121e6da309ac083fd45f4d816c05d697dfc0
Author: Noel Grandin <noel at peralex.com>
Date:   Fri Dec 12 10:54:27 2014 +0200

    Revert "java: remove the unit test skeleton code"
    
    This reverts commit 2d724f086f0ac9ee9a340610e0fa2c4fff110565.
    
    Apparently other bits of code are referencing the default .sce
    file

diff --git a/qadevOOo/qa/complex/junitskeleton/Skeleton.java b/qadevOOo/qa/complex/junitskeleton/Skeleton.java
new file mode 100644
index 0000000..e15a29c
--- /dev/null
+++ b/qadevOOo/qa/complex/junitskeleton/Skeleton.java
@@ -0,0 +1,181 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ *   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 .
+ */
+package complex.junitskeleton;
+
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.util.XCloseable;
+import java.io.File;
+import java.io.RandomAccessFile;
+
+import lib.TestParameters;
+
+import util.SOfficeFactory;
+
+// ---------- junit imports -----------------
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.openoffice.test.OfficeConnection;
+import static org.junit.Assert.*;
+
+
+public class Skeleton
+{
+    /**
+     * The test parameters
+     */
+    private static TestParameters param = null;
+
+    @Test public void check() {
+        assertTrue("Couldn't open document", open());
+        System.out.println("check");
+        assertTrue("Couldn't close document", close());
+        String tempDirURL = util.utils.getOfficeTemp/*Dir*/(getMSF());
+        System.out.println("temp dir URL is: " + tempDirURL);
+        String tempDir = graphical.FileHelper.getSystemPathFromFileURL(tempDirURL);
+        assertTrue("Temp directory doesn't exist.", new File(tempDir).exists());
+    }
+
+    private boolean open()
+        {
+            System.out.println("open()");
+            // get multiservicefactory -----------------------------------------
+            final XMultiServiceFactory xMsf = getMSF();
+
+            SOfficeFactory.getFactory(xMsf);
+
+            // some Tests need the qadevOOo TestParameters, it is like a Hashmap for Properties.
+            param = new TestParameters();
+            param.put("ServiceFactory", xMsf); // some qadevOOo functions need the ServiceFactory
+
+            return true;
+        }
+
+    private boolean close()
+        {
+            System.out.println("close()");
+            return true;
+        }
+
+    // marked as test
+    @Test public void checkDocument()
+        {
+            System.out.println("checkDocument()");
+            final String sREADME = TestDocument.getUrl("README.txt");
+            System.out.println("README is in:" + sREADME);
+            File aFile = new File(sREADME);
+            if (! aFile.exists())
+            {
+                // It is a little bit stupid that office urls not compatible to java file urls
+                System.out.println("java.io.File can't access Office file urls.");
+                String sREADMESystemPath = graphical.FileHelper.getSystemPathFromFileURL(sREADME);
+                aFile = new File(sREADMESystemPath);
+                assertTrue("File '" + sREADMESystemPath + "' doesn't exists.", aFile.exists());
+            }
+
+            try
+            {
+                RandomAccessFile aAccess = new RandomAccessFile(aFile, "r");
+                long nLength = aAccess.length();
+                System.out.println("File length: " + nLength);
+                assertTrue("File length wrong", nLength > 0);
+                String sLine = aAccess.readLine();
+                assertTrue("Line must not be empty", sLine.length() > 0);
+                System.out.println("       Line: '" + sLine + "'");
+                System.out.println("     length: " + sLine.length());
+                assertTrue("File length not near equal to string length", sLine.length() + 2 >= nLength);
+                aAccess.close();
+            }
+            catch (java.io.FileNotFoundException e)
+            {
+                fail("Can't find file: " + sREADME + " - " + e.getMessage());
+            }
+            catch (java.io.IOException e)
+            {
+                fail("IO Exception: " + e.getMessage());
+            }
+
+        }
+
+    @Test public void checkOpenDocumentWithOffice()
+    {
+        SOfficeFactory SOF = SOfficeFactory.getFactory(getMSF());
+        final String sREADME = TestDocument.getUrl("README.txt");
+        try
+        {
+            XComponent aDocument = SOF.loadDocument(sREADME);
+            complex.junitskeleton.justatest.shortWait();
+            XCloseable xClose = UnoRuntime.queryInterface(XCloseable.class, aDocument);
+            xClose.close(true);
+        }
+        catch (com.sun.star.lang.IllegalArgumentException ex)
+        {
+            fail("Illegal argument exception caught: " + ex.getMessage());
+        }
+        catch (com.sun.star.io.IOException ex)
+        {
+            fail("IOException caught: " + ex.getMessage());
+        }
+        catch (com.sun.star.uno.Exception ex)
+        {
+            fail("Exception caught: " + ex.getMessage());
+        }
+    }
+
+    // marked as prepare for test, will call before every test
+    @Before public void before()
+        {
+            System.out.println("before()");
+            System.setProperty("THIS IS A TEST", "Hallo");
+        }
+
+
+    // marked as post for test, will call after every test
+    @After public void after()
+        {
+            System.out.println("after()");
+            String sValue = System.getProperty("THIS IS A TEST");
+            assertEquals(sValue, "Hallo");
+    }
+
+
+    private XMultiServiceFactory getMSF()
+    {
+        return UnoRuntime.queryInterface(XMultiServiceFactory.class, connection.getComponentContext().getServiceManager());
+    }
+
+    // setup and close connections
+    @BeforeClass public static void setUpConnection() throws Exception {
+        System.out.println("setUpConnection()");
+        connection.setUp();
+    }
+
+    @AfterClass public static void tearDownConnection()
+        throws InterruptedException, com.sun.star.uno.Exception
+    {
+        System.out.println("tearDownConnection()");
+        connection.tearDown();
+    }
+
+    private static final OfficeConnection connection = new OfficeConnection();
+
+}
diff --git a/qadevOOo/qa/complex/junitskeleton/TestDocument.java b/qadevOOo/qa/complex/junitskeleton/TestDocument.java
new file mode 100644
index 0000000..4b68138
--- /dev/null
+++ b/qadevOOo/qa/complex/junitskeleton/TestDocument.java
@@ -0,0 +1,32 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ *   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 .
+ */
+
+package complex.junitskeleton;
+
+import java.io.File;
+import org.openoffice.test.OfficeFileUrl;
+
+final class TestDocument
+{
+    public static String getUrl(String name)
+        {
+            return OfficeFileUrl.getAbsolute(new File("test_documents", name));
+        }
+
+    private TestDocument() {}
+}
diff --git a/qadevOOo/qa/complex/junitskeleton/justatest.java b/qadevOOo/qa/complex/junitskeleton/justatest.java
new file mode 100644
index 0000000..ccd3278
--- /dev/null
+++ b/qadevOOo/qa/complex/junitskeleton/justatest.java
@@ -0,0 +1,43 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ *   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 .
+ */
+
+package complex.junitskeleton;
+
+public class justatest {
+
+    public justatest() {
+        System.out.println("justatest CTor.");
+    }
+
+    public void testfkt() {
+        System.out.println("Test called.");
+    }
+
+    /**
+     * Sleeps for 0.5 sec. to allow StarOffice to react on <code>
+     * reset</code> call.
+     */
+    public static void shortWait() {
+        try {
+            Thread.sleep(500);
+        } catch (InterruptedException e) {
+            System.out.println("While waiting :" + e);
+        }
+    }
+
+}
diff --git a/qadevOOo/qa/complex/junitskeleton/makefile.mk b/qadevOOo/qa/complex/junitskeleton/makefile.mk
new file mode 100644
index 0000000..ff513ed
--- /dev/null
+++ b/qadevOOo/qa/complex/junitskeleton/makefile.mk
@@ -0,0 +1,54 @@
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+# This file incorporates work covered by the following license notice:
+#
+#   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 .
+#
+
+.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
+nothing .PHONY:
+    @echo "OOO_SUBSEQUENT_TESTS not set, do nothing."
+.ELSE
+
+PRJ = ../../..
+PRJNAME = sc
+TARGET = qa_complex_junitskeleton
+
+.IF "$(OOO_JUNIT_JAR)" != ""
+PACKAGE = complex/junitskeleton
+
+# here store only Files which contain a @Test
+JAVATESTFILES = \
+    Skeleton.java
+
+# put here all other files
+JAVAFILES = $(JAVATESTFILES) \
+    justatest.java \
+    TestDocument.java
+
+JARFILES = OOoRunner.jar ridl.jar test.jar unoil.jar
+EXTRAJARFILES = $(OOO_JUNIT_JAR)
+
+# Sample how to debug
+# JAVAIFLAGS=-Xdebug  -Xrunjdwp:transport=dt_socket,server=y,address=9003,suspend=y
+
+.END
+
+.INCLUDE: settings.mk
+.INCLUDE: target.mk
+.INCLUDE: installationtest.mk
+
+ALLTAR : javatest
+
+.END
diff --git a/qadevOOo/qa/complex/junitskeleton/test_documents/README.txt b/qadevOOo/qa/complex/junitskeleton/test_documents/README.txt
new file mode 100644
index 0000000..775f01c
--- /dev/null
+++ b/qadevOOo/qa/complex/junitskeleton/test_documents/README.txt
@@ -0,0 +1 @@
+Here you can store documents.
diff --git a/qadevOOo/qa/unoapi/Test.java b/qadevOOo/qa/unoapi/Test.java
new file mode 100644
index 0000000..cecd71c
--- /dev/null
+++ b/qadevOOo/qa/unoapi/Test.java
@@ -0,0 +1,44 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ *   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 .
+ */
+
+package unoapi;
+
+import org.openoffice.Runner;
+import org.openoffice.test.OfficeConnection;
+import static org.junit.Assert.*;
+
+public final class Test {
+    @org.junit.Before public void setUp() throws Exception {
+        connection.setUp();
+    }
+
+    @org.junit.After public void tearDown()
+        throws InterruptedException, com.sun.star.uno.Exception
+    {
+        connection.tearDown();
+    }
+
+    @org.junit.Test public void test() {
+        assertTrue(
+            Runner.run(
+                "-sce", "qadevOOo.sce", "-xcl", "knownissues.xcl", "-cs",
+                connection.getDescription()));
+    }
+
+    private final OfficeConnection connection = new OfficeConnection();
+}
diff --git a/qadevOOo/qa/unoapi/knownissues.xcl b/qadevOOo/qa/unoapi/knownissues.xcl
new file mode 100644
index 0000000..02c5090
--- /dev/null
+++ b/qadevOOo/qa/unoapi/knownissues.xcl
@@ -0,0 +1 @@
+# This file contains all Errors
diff --git a/qadevOOo/qa/unoapi/qadevOOo.sce b/qadevOOo/qa/unoapi/qadevOOo.sce
new file mode 100644
index 0000000..34958d2
--- /dev/null
+++ b/qadevOOo/qa/unoapi/qadevOOo.sce
@@ -0,0 +1,18 @@
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+# This file incorporates work covered by the following license notice:
+#
+#   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 .
+#
+-o qadevOOo.SelfTest


More information about the Libreoffice-commits mailing list