[Libreoffice-commits] .: postprocess/prj smoketest/com smoketest/data smoketest/losmoketest smoketest/losmoketest.py smoketest/losmoketest.readme smoketest/makefile.mk smoketestoo_native/com smoketestoo_native/data smoketestoo_native/losmoketest smoketestoo_native/losmoketest.py smoketestoo_native/losmoketest.readme smoketestoo_native/makefile.mk smoketestoo_native/prj smoketestoo_native/smoketest.cxx smoketest/prj smoketest/smoketest.cxx solenv/gbuild
Petr Mladek
pmladek at kemper.freedesktop.org
Fri Dec 2 09:36:23 PST 2011
postprocess/prj/build.lst | 2
smoketest/com/sun/star/comp/smoketest/MANIFEST.MF | 2
smoketest/com/sun/star/comp/smoketest/TestExtension.idl | 40
smoketest/com/sun/star/comp/smoketest/TestExtension.java | 166 +
smoketest/com/sun/star/comp/smoketest/delzip | 1
smoketest/com/sun/star/comp/smoketest/makefile.mk | 90 +
smoketest/com/sun/star/comp/smoketest/manifest.xml | 5
smoketest/data/Events.xml | 66
smoketest/data/Global.xml | 865 ++++++++++
smoketest/data/OptionsDlg.xml | 65
smoketest/data/Test_10er.xml | 775 ++++++++
smoketest/data/Test_DB.xml | 147 +
smoketest/data/Test_Ext.xml | 116 +
smoketest/data/content.xml | 114 +
smoketest/data/dialog-lb.xml | 31
smoketest/data/dialog-lc.xml | 31
smoketest/data/makefile.mk | 70
smoketest/data/manifest.xml | 49
smoketest/data/meta.xml | 28
smoketest/data/script-lb.xml | 35
smoketest/data/script-lc.xml | 31
smoketest/data/settings.xml | 28
smoketest/data/styles.xml | 28
smoketest/losmoketest | 61
smoketest/losmoketest.py | 645 +++++++
smoketest/losmoketest.readme | 186 ++
smoketest/makefile.mk | 49
smoketest/prj/build.lst | 4
smoketest/prj/d.lst | 4
smoketest/smoketest.cxx | 221 ++
smoketestoo_native/com/sun/star/comp/smoketest/MANIFEST.MF | 2
smoketestoo_native/com/sun/star/comp/smoketest/TestExtension.idl | 40
smoketestoo_native/com/sun/star/comp/smoketest/TestExtension.java | 166 -
smoketestoo_native/com/sun/star/comp/smoketest/delzip | 1
smoketestoo_native/com/sun/star/comp/smoketest/makefile.mk | 90 -
smoketestoo_native/com/sun/star/comp/smoketest/manifest.xml | 5
smoketestoo_native/data/Events.xml | 66
smoketestoo_native/data/Global.xml | 865 ----------
smoketestoo_native/data/OptionsDlg.xml | 65
smoketestoo_native/data/Test_10er.xml | 775 --------
smoketestoo_native/data/Test_DB.xml | 147 -
smoketestoo_native/data/Test_Ext.xml | 116 -
smoketestoo_native/data/content.xml | 114 -
smoketestoo_native/data/dialog-lb.xml | 31
smoketestoo_native/data/dialog-lc.xml | 31
smoketestoo_native/data/makefile.mk | 70
smoketestoo_native/data/manifest.xml | 49
smoketestoo_native/data/meta.xml | 28
smoketestoo_native/data/script-lb.xml | 35
smoketestoo_native/data/script-lc.xml | 31
smoketestoo_native/data/settings.xml | 28
smoketestoo_native/data/styles.xml | 28
smoketestoo_native/losmoketest | 61
smoketestoo_native/losmoketest.py | 645 -------
smoketestoo_native/losmoketest.readme | 186 --
smoketestoo_native/makefile.mk | 27
smoketestoo_native/prj/build.lst | 6
smoketestoo_native/prj/d.lst | 3
smoketestoo_native/smoketest.cxx | 221 --
solenv/gbuild/extensions/post_BuildplTargets.mk | 3
60 files changed, 3960 insertions(+), 3930 deletions(-)
New commits:
commit 57578c1828755850d1dfdb391d571d7bf1b7cada
Author: Petr Mladek <pmladek at suse.cz>
Date: Fri Dec 2 18:33:11 2011 +0100
split smoketest module to fix build
+ move the library and other build stuff to a new "smoketest" module
+ keep "smoketestoo_native" only for installing and running the tests
+ restore the targets in top level make
diff --git a/postprocess/prj/build.lst b/postprocess/prj/build.lst
index b24eb7b..820675c 100644
--- a/postprocess/prj/build.lst
+++ b/postprocess/prj/build.lst
@@ -1,4 +1,4 @@
-po postprocess :: accessibility BINFILTER:binfilter configmgr CRASHREP:crashrep CT2N:ct2n dtrans embeddedobj embedserv EPM:epm DESKTOP:extensions extras DESKTOP:fpicker HELP:helpcontent2 io LIBRSVG:librsvg lingucomponent ODK:odk officecfg psprint_config remotebridges scaddins scp2 DESKTOP:setup_native sysui testtools ucb UnoControls ure wizards MORE_FONTS:more_fonts DICTIONARIES:dictionaries PYUNO:pyuno readlicense_oo DESKTOP:unodevtools JFREEREPORT:jfreereport REPORTBUILDER:reportbuilder LANGUAGETOOL:languagetool SDEXT:sdext MYSQLC:mysqlc NLPSOLVER:nlpsolver STLPORT:stlport LIBXSLT:libxslt smoketestoo_native tail_build NULL
+po postprocess :: accessibility BINFILTER:binfilter configmgr CRASHREP:crashrep CT2N:ct2n dtrans embeddedobj embedserv EPM:epm DESKTOP:extensions extras DESKTOP:fpicker HELP:helpcontent2 io LIBRSVG:librsvg lingucomponent ODK:odk officecfg psprint_config remotebridges scaddins scp2 DESKTOP:setup_native sysui testtools ucb UnoControls ure wizards MORE_FONTS:more_fonts DICTIONARIES:dictionaries PYUNO:pyuno readlicense_oo DESKTOP:unodevtools JFREEREPORT:jfreereport REPORTBUILDER:reportbuilder LANGUAGETOOL:languagetool SDEXT:sdext MYSQLC:mysqlc NLPSOLVER:nlpsolver STLPORT:stlport LIBXSLT:libxslt smoketest tail_build NULL
po postprocess usr1 - all po_mkout NULL
po postprocess\checkxml nmake - all po_checkxml NULL
po postprocess\packconfig nmake - all po_packconfig po_checkxml NULL
diff --git a/smoketest/com/sun/star/comp/smoketest/MANIFEST.MF b/smoketest/com/sun/star/comp/smoketest/MANIFEST.MF
new file mode 100755
index 0000000..09e2f42
--- /dev/null
+++ b/smoketest/com/sun/star/comp/smoketest/MANIFEST.MF
@@ -0,0 +1,2 @@
+RegistrationClassName: com.sun.star.comp.smoketest.TestExtension
+
diff --git a/smoketest/com/sun/star/comp/smoketest/TestExtension.idl b/smoketest/com/sun/star/comp/smoketest/TestExtension.idl
new file mode 100644
index 0000000..83c370e
--- /dev/null
+++ b/smoketest/com/sun/star/comp/smoketest/TestExtension.idl
@@ -0,0 +1,40 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef _com_sun_star_comp_smoketest_TestExtension_idl_
+#define _com_sun_star_comp_smoketest_TestExtension_idl_
+
+#include <com/sun/star/lang/XServiceInfo.idl>
+
+
+module com { module sun { module star { module comp { module smoketest {
+ // example service, XServiceInfo is implemented here for demonstration
+ // issues. XServiceInfo must be implemented by all components.
+ service TestExtension: ::com::sun::star::lang::XServiceInfo;
+};};};};};
+
+#endif
diff --git a/smoketest/com/sun/star/comp/smoketest/TestExtension.java b/smoketest/com/sun/star/comp/smoketest/TestExtension.java
new file mode 100755
index 0000000..c08c719
--- /dev/null
+++ b/smoketest/com/sun/star/comp/smoketest/TestExtension.java
@@ -0,0 +1,166 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package com.sun.star.comp.smoketest;
+
+import com.sun.star.lib.uno.helper.Factory;
+import com.sun.star.lang.XMultiComponentFactory;
+import com.sun.star.lang.XSingleComponentFactory;
+import com.sun.star.lib.uno.helper.WeakBase;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XComponentContext;
+import com.sun.star.registry.XRegistryKey;
+import com.sun.star.lang.XInitialization;
+import com.sun.star.lang.XTypeProvider;
+import com.sun.star.lang.XServiceInfo;
+import com.sun.star.uno.Type;
+
+/** This class capsulates the class, that implements the minimal component, a
+ * factory for creating the service (<CODE>__getComponentFactory</CODE>) and a
+ * method, that writes the information into the given registry key
+ * (<CODE>__writeRegistryServiceInfo</CODE>).
+ */
+public class TestExtension {
+ /** This class implements the component. At least the interfaces XServiceInfo,
+ * XTypeProvider, and XInitialization should be provided by the service.
+ */
+ public static class _TestExtension extends WeakBase
+ implements XServiceInfo {
+ /** The service name, that must be used to get an instance of this service.
+ */
+ static private final String __serviceName =
+ "com.sun.star.comp.smoketest.TestExtension";
+
+ /** The initial component contextr, that gives access to
+ * the service manager, supported singletons, ...
+ * It's often later used
+ */
+ private XComponentContext m_cmpCtx;
+
+ /** The service manager, that gives access to all registered services.
+ * It's often later used
+ */
+ private XMultiComponentFactory m_xMCF;
+
+ /** The constructor of the inner class has a XMultiServiceFactory parameter.
+ * @param xmultiservicefactoryInitialization A special service factory
+ * could be introduced while initializing.
+ */
+ public _TestExtension(XComponentContext xCompContext) {
+ try {
+ m_cmpCtx = xCompContext;
+ m_xMCF = m_cmpCtx.getServiceManager();
+ }
+ catch( Exception e ) {
+ e.printStackTrace();
+ }
+ }
+
+ /** This method returns an array of all supported service names.
+ * @return Array of supported service names.
+ */
+ public String[] getSupportedServiceNames() {
+ return getServiceNames();
+ }
+
+ /** This method is a simple helper function to used in the
+ * static component initialisation functions as well as in
+ * getSupportedServiceNames.
+ */
+ public static String[] getServiceNames() {
+ String[] sSupportedServiceNames = { __serviceName };
+ return sSupportedServiceNames;
+ }
+
+ /** This method returns true, if the given service will be
+ * supported by the component.
+ * @param sServiceName Service name.
+ * @return True, if the given service name will be supported.
+ */
+ public boolean supportsService( String sServiceName ) {
+ return sServiceName.equals( __serviceName );
+ }
+
+ /** Return the class name of the component.
+ * @return Class name of the component.
+ */
+ public String getImplementationName() {
+ return _TestExtension.class.getName();
+ }
+ }
+
+
+ /**
+ * Gives a factory for creating the service.
+ * This method is called by the <code>JavaLoader</code>
+ * <p>
+ * @return returns a <code>XSingleComponentFactory</code> for creating
+ * the component
+ * @param sImplName the name of the implementation for which a
+ * service is desired
+ * @see com.sun.star.comp.loader.JavaLoader
+ */
+ public static XSingleComponentFactory __getComponentFactory(String sImplName)
+ {
+ XSingleComponentFactory xFactory = null;
+
+ if ( sImplName.equals( _TestExtension.class.getName() ) )
+ xFactory = Factory.createComponentFactory(_TestExtension.class,
+ _TestExtension.getServiceNames());
+
+ return xFactory;
+ }
+
+ /**
+ * Writes the service information into the given registry key.
+ * This method is called by the <code>JavaLoader</code>
+ * <p>
+ * @return returns true if the operation succeeded
+ * @param regKey the registryKey
+ * @see com.sun.star.comp.loader.JavaLoader
+ */
+ public static boolean __writeRegistryServiceInfo(XRegistryKey regKey) {
+ return Factory.writeRegistryServiceInfo(_TestExtension.class.getName(),
+ _TestExtension.getServiceNames(),
+ regKey);
+ }
+ /** This method is a member of the interface for initializing an object
+ * directly after its creation.
+ * @param object This array of arbitrary objects will be passed to the
+ * component after its creation.
+ * @throws Exception Every exception will not be handled, but will be
+ * passed to the caller.
+ */
+ public void initialize( Object[] object )
+ throws com.sun.star.uno.Exception {
+ /* The component describes what arguments its expected and in which
+ * order!At this point you can read the objects and can intialize
+ * your component using these objects.
+ */
+ }
+
+}
diff --git a/smoketest/com/sun/star/comp/smoketest/delzip b/smoketest/com/sun/star/comp/smoketest/delzip
new file mode 100755
index 0000000..636fda9
--- /dev/null
+++ b/smoketest/com/sun/star/comp/smoketest/delzip
@@ -0,0 +1 @@
+ECHO is OFF
diff --git a/smoketest/com/sun/star/comp/smoketest/makefile.mk b/smoketest/com/sun/star/comp/smoketest/makefile.mk
new file mode 100755
index 0000000..937f377
--- /dev/null
+++ b/smoketest/com/sun/star/comp/smoketest/makefile.mk
@@ -0,0 +1,90 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ = ../../../../..
+PRJNAME = smoketestdoc
+PACKAGE = com/sun/star/comp/smoketest
+TARGET = com_sun_star_comp_smoketest
+
+no_common_build_zip:=TRUE
+
+# --- Settings -----------------------------------------------------
+
+.IF "$(SOLAR_JAVA)" != ""
+
+.INCLUDE : settings.mk
+
+JARFILES = ridl.jar jurt.jar unoil.jar juh.jar
+
+JARTARGET = TestExtension.jar
+JARCOMPRESS = TRUE
+CUSTOMMANIFESTFILE = MANIFEST.MF
+
+ZIP1TARGET=TestExtension
+ZIP1LIST=*
+ZIPFLAGS=-r
+ZIP1DIR=$(MISC)/$(TARGET)
+ZIP1EXT=.oxt
+
+# --- Files --------------------------------------------------------
+
+JAVAFILES = TestExtension.java
+
+# --- Targets ------------------------------------------------------
+
+ZIP1DEPS=$(MISC)/$(TARGET)/$(JARTARGET)\
+ $(MISC)/$(TARGET)/TestExtension.rdb\
+ $(MISC)/$(TARGET)/META-INF/manifest.xml
+
+.INCLUDE : target.mk
+
+.IF "$(depend)" == ""
+$(MISC)/$(TARGET)/META-INF:
+ @-$(MKDIRHIER) $(@)
+
+$(MISC)/TestExtension.urd: TestExtension.idl
+ $(COMMAND_ECHO)$(IDLC) -O$(MISC) -I$(SOLARIDLDIR) -cid -we $<
+
+$(MISC)/$(TARGET)/META-INF/manifest.xml $(MISC)/$(TARGET)/TestExtension.rdb : $(MISC)/$(TARGET)/META-INF
+
+$(MISC)/$(TARGET)/META-INF/manifest.xml: manifest.xml
+ $(COMMAND_ECHO)$(COPY) $< $@
+
+$(MISC)/$(TARGET)/TestExtension.rdb: $(MISC)/TestExtension.urd
+ $(COMMAND_ECHO)$(REGMERGE) $@ /UCR $<
+
+$(JAVACLASSFILES) .UPDATEALL: $(MISC)/$(TARGET)/TestExtension.rdb
+ $(COMMAND_ECHO)$(JAVAMAKER) -O$(CLASSDIR) -BUCR -nD -X$(SOLARBINDIR)/types.rdb $<
+
+$(MISC)/$(TARGET)/$(JARTARGET) : $(JARTARGETN)
+ $(COMMAND_ECHO)$(COPY) $< $@
+.END
+
+.ELSE
+ at all:
+ @echo "Java disabled. Nothing to do."
+.ENDIF
diff --git a/smoketest/com/sun/star/comp/smoketest/manifest.xml b/smoketest/com/sun/star/comp/smoketest/manifest.xml
new file mode 100755
index 0000000..fcedabf
--- /dev/null
+++ b/smoketest/com/sun/star/comp/smoketest/manifest.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<manifest:manifest xmlns:manifest="http://openoffice.org/2001/manifest">
+ <manifest:file-entry manifest:full-path="TestExtension.jar" manifest:media-type="application/vnd.sun.star.uno-component;type=Java"/>
+ <manifest:file-entry manifest:full-path="TestExtension.rdb" manifest:media-type="application/vnd.sun.star.uno-typelibrary;type=RDB"/>
+</manifest:manifest>
diff --git a/smoketest/data/Events.xml b/smoketest/data/Events.xml
new file mode 100644
index 0000000..414f2c4
--- /dev/null
+++ b/smoketest/data/Events.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--**********************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+*
+**********************************************************************-->
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Events" script:language="StarBasic">REM ***** BASIC *****
+
+Global s_CloseListenerCalled As Boolean
+
+Sub PressCancel
+ gDlgState = cDlgCancel
+end Sub
+
+Sub PressOk
+ gDlgState = cDlgOk
+end Sub
+
+Sub PressTest
+ gOptionsDialog.EndExecute()
+ gDlgState = cDlgStartTest
+end Sub
+
+Sub closeListener_queryClosing
+ ' not interested in
+ closeListener_queryClosing = TRUE
+End Sub
+
+Sub closeListener_notifyClosing
+ s_CloseListenerCalled = TRUE
+End Sub
+
+Sub closeListener_disposing
+ ' not interested in
+End Sub
+
+Sub ResetCloseListenerFlag
+ s_CloseListenerCalled = FALSE
+End Sub
+
+Function HasCloseListenerBeenCalled As Boolean
+ HasCloseListenerBeenCalled = s_CloseListenerCalled
+End Function
+</script:module>
diff --git a/smoketest/data/Global.xml b/smoketest/data/Global.xml
new file mode 100644
index 0000000..8c549f8
--- /dev/null
+++ b/smoketest/data/Global.xml
@@ -0,0 +1,865 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--**********************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+*
+**********************************************************************-->
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Global" script:language="StarBasic">REM ***** BASIC *****
+
+const cMaxErrorStates = 14
+
+const cCoGreen = 4057917, cCoRed = 16711680, cCoGrey = 12632256
+const cParagraphBreak = 0
+
+global const cExtensionFileName = "TestExtension.oxt"
+
+global const cDocNew = 0, cDocSaveOpen8 = 1, cDocSaveOpenXML = 2, cDocOpen50 = 3, cDocClose = 4, cDocMacros = 5
+global const cDBService = 0, cDBOpen = 1, cDBInsert = 2, cDBDelete = 3, cDBSeek = 4, cDBClose = 5
+global const cEXTService = 0, cEXTInstall = 1, cEXTUninstall = 2
+global const cTestClosureSetupDoc = 0, cTestClosureWriteStatus = 1
+global const cLogfileFailed = 255
+
+global const cStWriter = 0, cStCalc = 1, cStPraesentation = 2, cStZeichnen = 3
+global const cStHTML = 6, cStChart = 4, cStJava = 7
+global const cStMath = 5, cStDataBase = 9
+global const cStExtension = 11
+global const cStTestGlue = 12
+global const cStNone = -1
+
+global const cFlt8 = 0, cFlt50 = 32, cFltNewDoc = 64, cFltXML = 128
+
+global const frmWriter = 1, frmCalc = 2, frmImpress = 4
+global const frmMath = 5, frmChart = 7, frmHyperText = 8, frmDraw = 9
+global const frmDataBase = 10, frmJava = 13
+global const frmExtension = 14
+global const frmTestClosure = 15
+
+Global gCurrentDocTest As Integer
+Global gCurrentTestCase As Integer
+
+global const cLogUnknown = 0, cLogFalse = 1, cLogTrue = 2
+
+'UserFieldKennungen
+Global const cYes = "y", cNo = "n"
+Global const cStateNo = 0, cStateYes = 1
+
+'Feldtypen
+Global const cFtExtUser = 21, cFtPageNum = 5, cFtStatistic = 8, cFtDateTime = 27, cFtDatabase = 31
+
+'UnoStrings
+Global const cUnoSeparator = "."
+Global const cUnoPrefix = "com.sun.star."
+Global const cUnoUserField = cUnoPrefix + "text.FieldMaster.User"
+Global const cUnoExtUserField = cUnoPrefix + "text.TextField.ExtendedUser"
+Global const cUnoMasterDataBase = cUnoPrefix + "text.FieldMaster.Database"
+Global const cUnoDataBase = cUnoPrefix + "text.TextField.Database"
+Global const cUnoDateTime = cUnoPrefix + "text.TextField.DateTime"
+Global const cUnoTextGraphi2 = cUnoPrefix + "text.Graphic"
+Global const cUnoJavaLoader = cUnoPrefix + "loader.Java"
+Global const cUnoDatabaseContext = cUnoPrefix + "sdb.DatabaseContext"
+Global const cUnoRowSet = cUnoPrefix + "sdb.RowSet"
+Global const cUnoSmoketestTestExtension = cUnoPrefix + "comp.smoketest.TestExtension"
+Global const cUnoSmoketestCommandEnvironment = cUnoPrefix + "deployment.test.SmoketestCommandEnvironment"
+Global const cExtensionManager = cUnoPrefix + "deployment.ExtensionManager"
+
+'UserFieldNames
+Global const cUserFieldTestWriter = "Writer", cUserFieldTestCalc = "Calc", cUserFieldTestImpress = "Impress"
+Global const cUserFieldTestDraw = "Draw", cUserFieldTestMath = "Math", cUserFieldTestChart = "Chart"
+Global const cUserFieldTestHTML = "HTML", cUserFieldTestJava = "Java", cUserFieldTestDatabase = "Database"
+Global const cUserFieldTestExtension = "Extension"
+Global const cUserFieldTestOpenSaveXML = "SaveOpenXML"
+Global const cUserFieldTestOpen50 = "Open50"
+Global const cUserFieldTestTerminateAfterTest = "Terminate", cUserFieldTestOpenSave8 = "SaveOpen8", cUserFieldTestMacros = "Macros"
+
+Global const cOptionsDialogName = "OptionsDlg", cTest10Modul = "Standard"
+
+Global const cDlgCancel = 1, cDlgOk = 0, cDlgStartTest = 2
+
+global gErrorState (cMaxErrorStates, 5) as integer
+Global gTestCaseAnnotations( cMaxErrorStates, 5 ) As String
+
+global gOutputDoc as Object
+global gOutputDocNotUno as Object
+global gOptionsDialog as Object
+
+Global bMakeWriterTest as boolean, bMakeCalcTest as boolean, bMakeImpressTest as boolean
+Global bMakeDrawTest as Boolean, bMakeMathTest as boolean, bMakeChartTest as boolean
+Global bMakeHTMLTest as boolean, bMakeJavaTest as boolean, bMakeDBTest as boolean
+Global bMakeExtensionTest as boolean
+Global bMakeSaveOpenXMLTest as boolean, bMakeOpen50Test as boolean
+Global bMakeTerminateAfterTest as boolean, bShowTable as boolean
+Global bMakeSaveOpen8Test as boolean, bMakeMacrosTest as boolean
+
+global sExtensionURL as string
+
+global oBinFilterComp as Object
+
+Dim gDlgState as Integer
+
+Sub SetGlobalDoc
+ gOutputDoc = ThisComponent
+ REM need to have the binfilter component, and SOLARSRC set to find sample docs
+ if Environ("SOLARSRC") <> "" then
+ oBinFilterComp = createUnoService( "com.sun.star.comp.office.BF_MigrateFilter" )
+ End If
+end Sub
+
+Sub ClearStatus
+ for j% = 0 to cMaxErrorStates
+ for i% = 0 to 5
+ gErrorState (j%, i%) = cLogUnknown
+ gTestCaseAnnotations( J%, i% ) = ""
+ next i%
+ next j%
+end Sub
+
+Sub ClearAllText
+ call SetGlobalDoc
+ call ClearDoc (gOutputDoc)
+ call ClearStatus
+end Sub
+
+Sub AssertionHandler( sMessage as String )
+ LogTestResult( "assertion caught: " + sMessage, FALSE )
+End Sub
+
+Sub Main
+ On Local Error Goto MainError
+
+ gCurrentDocTest = frmTestClosure
+ gCurrentTestCase = cLogfileFailed
+
+ DeleteAllSavedFiles()
+ DeleteAllLogFiles()
+ SetupWorkPath()
+
+ if GetSystem (sWorkPath) = "windows" then
+ sWorkPath = ConvertPathToWin (sWorkPath)
+ end if
+
+ LocalTestLog% = OpenLogDat( GetLogFileName( gCurrentDocTest ) )
+
+ gCurrentTestCase = cTestClosureSetupDoc
+ CaptureAssertions( "AssertionHandler" )
+
+ call SetGlobalDoc
+
+ Dim bWasModified as Boolean
+ bWasModified = gOutputDoc.isModified()
+
+ if bShowTable then
+ call ClearDoc (gOutputDoc)
+ end If
+
+ call ClearStatus
+
+ LogTestResult( GetTestGlueDescription( gCurrentTestCase ), TRUE )
+
+ Dim nPreserveFileHandle%
+ nPreserveFileHandle% = LocalTestLog%
+ Call Test_10er.Main
+ LocalTestLog% = nPreserveFileHandle%
+
+ gCurrentDocTest = frmTestClosure
+ gCurrentTestCase = cTestClosureWriteStatus
+ if bShowTable then
+ call CreateStatusTable2
+ call CreateStatusTable
+ call CreateDocState
+ LogTestResult( GetTestGlueDescription( gCurrentTestCase ), TRUE )
+ ' do this LogTestResult call before CreateSecondState, since the latter accesses (and displays) the result
+ call CreateSecondState
+ gOutputDoc.CurrentController.ViewCursor.JumpToFirstPage
+ Else
+ LogTestResult( GetTestGlueDescription( gCurrentTestCase ), TRUE )
+ End If
+
+ ' print the 'test complete' marker
+ Print #LocalTestLog%, "---"
+ LocalTestLog% = 0
+
+ gOutputDoc.setModified( bWasModified )
+
+ CaptureAssertions( "" )
+ Exit Sub
+
+MainError:
+ If ( gCurrentTestCase = cLogfileFailed ) then
+ LogTestResult( "", False )
+ Exit Sub
+ else
+ LogTestResult( "testclosure " + GetTestGlueDescription( gCurrentTestCase ), FALSE )
+ Close #LocalTestLog%
+ LocalTestLog = 0
+ End If
+End Sub
+
+Function GetTestGlueDescription( nTestCase as Integer )
+ Select Case ( nTestCase )
+ case cTestClosureSetupDoc
+ GetTestGlueDescription = "setup"
+ case cTestClosureWriteStatus
+ GetTestGlueDescription = "write_status"
+ case Else
+ GetTestGlueDescription = ""
+ End Select
+End Function
+
+Sub CreateStatusTable
+ dim tableHeaders(7) as string
+ tableHeaders(cStWriter) = "Writer"
+ tableHeaders(cStCalc) = "Calc"
+ tableHeaders(cStPraesentation) = "Präsen- tation"
+ tableHeaders(cStZeichnen) = "Zeichn."
+ tableHeaders(cStChart) = "Diagr."
+ tableHeaders(cStMath) = "Math"
+ tableHeaders(cStHTML) = "HTML"
+ tableHeaders(cStJava) = "Java"
+
+ dim tableRows(5) as string
+ tableRows(cDocNew) = "new"
+ tableRows(cDocSaveOpen8) = "V8.0"
+ tableRows(cDocSaveOpenXML) = "XML"
+ tableRows(cDocOpen50) = "V5.0"
+ tableRows(cDocClose) = "close"
+ tableRows(cDocMacros) = "macros"
+
+ aDoc = gOutputDoc
+
+ xText = aDoc.Text
+ xCursor = xText.createTextCursor()
+
+ xCursor.gotoStart(FALSE)
+ xCursor.GoRight (4, False)
+ SetParagraphBreak (xCursor)
+ xCursor.GoRight (1, False)
+ SetParagraphBreak (xCursor)
+ xCursor.GoRight (1, False)
+
+ table = aDoc.createInstance("com.sun.star.text.TextTable")
+ table.initialize(7,9)
+ table.Name = "StTab1"
+ table.BackColor = cCoGrey
+ xText.insertTextContent(xCursor, table, FALSE)
+
+ for i% = 0 to 7
+ tableCell = table.getCellByPosition( i% + 1, 0 )
+ tableCell.String = tableHeaders( i% )
+ next i%
+
+ for i% = LBound( tableRows ) to UBound( tableRows )
+ tableCell = table.getCellByPosition( 0, i% + 1 )
+ tableCell.String=tableRows(i%)
+ next i%
+end Sub
+
+Sub CreateStatusTable2
+ dim tableHeaders(4) as string
+ tableHeaders(0) = "Database"
+ tableHeaders(1) = ""
+ tableHeaders(2) = "Extension"
+ tableHeaders(3) = ""
+ tableHeaders(4) = "Other"
+
+ dim tableRows(5) as string
+ tableRows(cDBService ) = "services"
+ tableRows(cDBOpen ) = "open"
+ tableRows(cDBInsert ) = "insert"
+ tableRows(cDBDelete ) = "delete"
+ tableRows(cDBSeek ) = "seek"
+ tableRows(cDBClose ) = "close"
+
+ dim tableRows2(2) as string
+ tableRows2(cEXTService ) = "services"
+ tableRows2(cEXTInstall ) = "install"
+ tableRows2(cEXTUninstall ) = "uninstall"
+
+ dim tableRows3(1) as string
+ tableRows3(cTestClosureSetupDoc ) = "setup test"
+ tableRows3(cTestClosureWriteStatus ) = "write test result"
+
+ aDoc = gOutputDoc
+
+ xText = aDoc.Text
+ xCursor = xText.createTextCursor()
+
+ xCursor.gotoStart(FALSE)
+ xCursor.GoRight (4, False)
+ SetParagraphBreak (xCursor)
+ SetParagraphBreak (xCursor)
+ xCursor.gotoEnd(FALSE)
+
+ table = aDoc.createInstance("com.sun.star.text.TextTable")
+ table.initialize(7,6)
+ table.Name = "StTab2"
+ table.BackColor = cCoGrey
+
+ xText.insertTextContent(xCursor, table, FALSE)
+
+ for i% = LBound( tableHeaders ) to UBound( tableHeaders )
+ tableCell = table.getCellByPosition( i% + 1, 0 )
+ tableCell.String = tableHeaders(i%)
+ next i%
+
+ for i% = LBound( tableRows ) to UBound( tableRows )
+ tableCell = table.getCellByPosition( 0, i% + 1 )
+ tableCell.String=tableRows(i%)
+ next i%
+
+ for i% = LBound( tableRows2 ) to UBound( tableRows2 )
+ tableCell = table.getCellByPosition( 2, i% + 1 )
+ tableCell.String=tableRows2(i%)
+ next i%
+
+ for i% = LBound( tableRows3 ) to UBound( tableRows3 )
+ tableCell = table.getCellByPosition( 4, i% + 1 )
+ tableCell.String=tableRows3(i%)
+ next i%
+end Sub
+
+
+Sub CreateDocState
+ aDoc = gOutputDoc
+ table = aDoc.TextTables.GetByIndex (1)
+
+ for j% = 0 to 7
+ for i% = 0 to 5
+ sRangeName = GetRangeName(j%, i%+1)
+
+ tableCursor = table.createCursorByCellName(sRangeName)
+
+ cName = tableCursor.getRangeName()
+ xCell = table.getCellByName(cName)
+
+ xCell.BackTransparent = False
+
+ If gErrorState (j%, i%) = cLogTrue Then
+ xCell.BackColor = cCoGreen
+ else
+ If gErrorState (j%, i%) = cLogFalse Then
+ xCell.BackColor = cCoRed
+ If ( gTestCaseAnnotations( j%, i% ) <> "" ) Then
+ Dim annotation as Object
+ annotation = aDoc.createInstance( "com.sun.star.text.TextField.Annotation" )
+ annotation.Author = "smoketest"
+ annotation.Content = gTestCaseAnnotations( j%, i% )
+ xCell.insertTextContent( xCell, annotation, false )
+ End If
+ else
+ xCell.BackColor = cCoGrey
+ end If
+ end If
+ next i%
+ next j%
+end Sub
+
+Sub CreateSecondState
+ aDoc = gOutputDoc
+ table = aDoc.TextTables.GetByIndex (0)
+
+ Dim stateIndex(2) as Integer
+ stateIndex(0) = cStDataBase
+ stateIndex(1) = cStExtension
+ stateIndex(2) = cStTestGlue
+
+ Dim j as Integer
+ For j = LBound( stateIndex ) To UBound( stateIndex )
+ for i% = 1 to 6
+ tableCell = table.getCellByPosition( 2 * j + 1, i% )
+ tableCell.BackTransparent = False
+
+ if gErrorState( stateIndex(j), i% - 1 ) = cLogTrue then
+ tableCell.BackColor = cCoGreen
+ else
+ if gErrorState ( stateIndex(j), i% - 1 ) = cLogFalse then
+ tableCell.BackColor = cCoRed
+ If ( gTestCaseAnnotations( stateIndex(j), i% - 1 ) <> "" ) Then
+ Dim annotation as Object
+ annotation = aDoc.createInstance( "com.sun.star.text.TextField.Annotation" )
+ annotation.Author = "smoketest"
+ annotation.Content = gTestCaseAnnotations( stateIndex(j), i% - 1 )
+ tableCell.insertTextContent( tableCell, annotation, false )
+ End If
+ else
+ tableCell.BackColor = cCoGrey
+ end If
+ end If
+ next i%
+ next j%
+end Sub
+
+Function GetRangeName (nColumn as integer, nRow as integer) as string
+ GetRangeName = chr (nColumn+66) + Trim(Str(nRow+1))
+end Function
+
+Sub LogTestResult( sTestCaseDescription as String, bSuccess as Boolean )
+ If ( gCurrentTestCase = cLogfileFailed ) Then
+ Dim sAnnotation as String
+ sAnnotation = "creating logfile '" + GetLogFileName( gCurrentDocTest ) + "' failed"
+ LogState( FALSE, sAnnotation, GlobalTestLog )
+ RecordTestCaseStatus( 0, FALSE, sAnnotation )
+ Else
+ bSuccess = RecordTestCaseStatus( gCurrentTestCase, bSuccess, sTestCaseDescription )
+ If ( LocalTestLog <> 0 ) Then
+ LogState( bSuccess, sTestCaseDescription, LocalTestLog )
+ EndIf
+ if ( GlobalTestLog <> 0 ) Then
+ LogState( bSuccess, sTestCaseDescription, GlobalTestLog )
+ EndIf
+ End If
+End Sub
+
+Function RecordTestCaseStatus( nAction as Integer, bState as Boolean, sFailureAnnotation as String ) as Boolean
+ Dim nStatusType as Integer
+ Dim nState as integer
+ nStatusType = GetStatusType( gCurrentDocTest )
+ If nStatusType = cStNone then Exit Function
+
+ If ( gErrorState( nStatusType, nAction ) = cLogFalse ) Then
+ ' don't overwrite a previous "failed" state for this test
+ bState = FALSE
+ End If
+
+ if bState then
+ nState = cLogTrue
+ else
+ nState = cLogFalse
+ end If
+
+ gErrorState (nStatusType, nAction) = nState
+
+ If ( nState = cLogFalse ) And ( sFailureAnnotation <> "" ) Then
+ if gTestCaseAnnotations(nStatusType, nAction) <> "" then
+ gTestCaseAnnotations(nStatusType, nAction) = _
+ gTestCaseAnnotations(nStatusType, nAction) & "; "
+ end if
+ gTestCaseAnnotations( nStatusType, nAction ) = gTestCaseAnnotations( nStatusType, nAction ) + sFailureAnnotation
+ End If
+
+ RecordTestCaseStatus = bState
+End Function
+
+Function GetStatusType (nDocType as Integer) as Integer
+ Select Case ( nDocType )
+ case frmWriter
+ GetStatusType = cStWriter ' text document
+ case frmCalc
+ GetStatusType = cStCalc ' spreadsheet document
+ case frmImpress
+ GetStatusType = cStPraesentation ' presentation
+ case frmDraw
+ GetStatusType = cStZeichnen ' drawing
+ case frmMath
+ GetStatusType = cStMath ' formula
+ case frmHyperText
+ GetStatusType = cStHTML ' HTML document
+ case frmChart
+ GetStatusType = cStChart ' chart
+ case frmJava
+ GetStatusType = cStJava 'Java
+ case frmTestClosure
+ GetStatusType = cStTestGlue ' test framework
+ case frmDataBase
+ GetStatusType = cStDataBase 'DataBase
+ case frmExtension
+ GetStatusType = cStExtension 'Extension
+ case else
+ GetStatusType = cStNone
+ end Select
+end Function
+
+Sub SetParagraphBreak (aCursor as Object)
+ aCursor.Text.InsertControlCharacter (aCursor, cParagraphBreak, True)
+end Sub
+
+Sub ClearDoc (aDoc as Object)
+ Dim aText as Object
+ Dim i%
+ for i%=1 to aDoc.TextTables.count
+ aDoc.TextTables.GetByIndex(0).dispose
+ next
+
+ aText = aDoc.Text.CreateTextCursor
+ aText.GotoStart (False)
+ aText.GoRight (3, False)
+ SetParagraphBreak (aText)
+ aText.GotoEnd (True)
+ aText.String=""
+end Sub
+
+Sub ClearDocFull (aDoc as Object)
+ Dim aText as Object
+ Dim i%
+ for i%=1 to aDoc.TextTables.count
+ aDoc.TextTables.GetByIndex(0).dispose
+ next
+
+ aText = aDoc.Text.CreateTextCursor
+ aText.GotoStart (False)
+ aText.GotoEnd (True)
+ aText.String=""
+end Sub
+
+Sub SetGlobalOptionsDialog ()
+
+ Dim oLibContainer As Object, oLib As Object
+ Dim oInputStreamProvider As Object
+ Dim oDialog As Object
+
+ Const sLibName = cTest10Modul
+ Const sDialogName = cOptionsDialogName
+
+ REM get library and input stream provider
+ oLibContainer = DialogLibraries
+
+ REM load the library
+ oLibContainer.loadLibrary( sLibName )
+
+ oLib = oLibContainer.getByName( sLibName )
+ oInputStreamProvider = oLib.getByName( sDialogName )
+
+ REM create dialog control
+ gOptionsDialog = CreateUnoDialog( oInputStreamProvider )
+
+ if isNull(oBinFilterComp) then
+ oControl = gOptionsDialog.getControl("cbOpen50Test")
+ oControl.Model.setPropertyValue("Enabled", FALSE)
+ end If
+
+end Sub
+
+Sub ShowOptionsDlg
+
+ call SetGlobalDoc
+ call SetGlobalOptionsDialog
+ call GetOptions
+
+ REM show the dialog
+ gOptionsDialog.execute()
+
+ ' jetzt läuft der Dialog, bis ein Button gedrückt wird
+
+ Select Case (gDlgState)
+ case cDlgOk
+ call SetOptions ()
+ case cDlgStartTest
+ call SetOptions ()
+ call StartTestByOptions ()
+ end Select
+
+ gOptionsDialog.dispose()
+
+end Sub
+
+Sub SetOptions
+ call SetGlobalDoc
+ SetUserFieldState (cUserFieldTestWriter, -(gOptionsDialog.getControl("cbWriterTest").getState), gOutputDoc)
+ SetUserFieldState (cUserFieldTestCalc, -(gOptionsDialog.getControl("cbCalcTest").getState), gOutputDoc)
+ SetUserFieldState (cUserFieldTestImpress, -(gOptionsDialog.getControl("cbImpressTest").getState), gOutputDoc)
+ SetUserFieldState (cUserFieldTestDraw, -(gOptionsDialog.getControl("cbDrawTest").getState), gOutputDoc)
+ SetUserFieldState (cUserFieldTestHTML, -(gOptionsDialog.getControl("cbHTMLTest").getState), gOutputDoc)
+ SetUserFieldState (cUserFieldTestMath, -(gOptionsDialog.getControl("cbMathTest").getState), gOutputDoc)
+ SetUserFieldState (cUserFieldTestChart, -(gOptionsDialog.getControl("cbChartTest").getState), gOutputDoc)
+ SetUserFieldState (cUserFieldTestJava, -(gOptionsDialog.getControl("cbJavaTest").getState), gOutputDoc)
+ SetUserFieldState (cUserFieldTestDatabase, -(gOptionsDialog.getControl("cbDatabaseTest").getState), gOutputDoc)
+ SetUserFieldState (cUserFieldTestExtension, -(gOptionsDialog.getControl("cbExtensionTest").getState), gOutputDoc)
+ SetUserFieldState (cUserFieldTestOpenSaveXML, -(gOptionsDialog.getControl("cbSaveOpenXMLTest").getState), gOutputDoc)
+ SetUserFieldState (cUserFieldTestOpen50, -(gOptionsDialog.getControl("cbOpen50Test").getState), gOutPutDoc)
+ SetUserFieldState (cUserFieldTestOpenSave8, -(gOptionsDialog.getControl("cbSaveOpen8Test").getState), gOutputDoc)
+ SetUserFieldState (cUserFieldTestMacros, -(gOptionsDialog.getControl("cbMacrosTest").getState), gOutputDoc)
+ SetUserFieldState (cUserFieldTestTerminateAfterTest, -(gOptionsDialog.getControl("cbTerminateAfterTest").getState), gOutputDoc)
+end Sub
+
+Sub GetOptions
+ call SetGlobalDoc
+ gOptionsDialog.getControl("cbWriterTest").setState( -( GetUserFieldState (cUserFieldTestWriter, gOutputDoc)))
+ gOptionsDialog.getControl("cbCalcTest").setState ( -( GetUserFieldState (cUserFieldTestCalc, gOutputDoc)))
+ gOptionsDialog.getControl("cbImpressTest").setState( -( GetUserFieldState (cUserFieldTestImpress, gOutputDoc)))
+ gOptionsDialog.getControl("cbDrawTest").setState( -( GetUserFieldState (cUserFieldTestDraw, gOutputDoc)))
+ gOptionsDialog.getControl("cbHTMLTest").setState( -( GetUserFieldState (cUserFieldTestHTML, gOutputDoc)))
+ gOptionsDialog.getControl("cbMathTest").setState( -( GetUserFieldState (cUserFieldTestMath, gOutputDoc)))
+ gOptionsDialog.getControl("cbChartTest").setState( -( GetUserFieldState (cUserFieldTestChart, gOutputDoc)))
+ gOptionsDialog.getControl("cbJavaTest").setState( -( GetUserFieldState (cUserFieldTestJava, gOutputDoc)))
+ gOptionsDialog.getControl("cbDatabaseTest").setState( -( GetUserFieldState (cUserFieldTestDatabase, gOutputDoc)))
+ gOptionsDialog.getControl("cbExtensionTest").setState( -( GetUserFieldState (cUserFieldTestExtension, gOutputDoc)))
+ gOptionsDialog.getControl("cbSaveOpenXMLTest").setState( -( GetUserFieldState (cUserFieldTestOpenSaveXML, gOutputDoc)))
+ if not isNull(oBinFilterComp) then
+ gOptionsDialog.getControl("cbOpen50Test").setState( -( GetUserFieldState (cUserFieldTestOpen50, gOutPutDoc)))
+ else
+ gOptionsDialog.getControl("cbOpen50Test").setState(0)
+ end If
+ gOptionsDialog.getControl("cbSaveOpen8Test").setState( -( GetUserFieldState (cUserFieldTestOpenSave8, gOutputDoc)))
+ gOptionsDialog.getControl("cbMacrosTest").setState( -( GetUserFieldState (cUserFieldTestMacros, gOutputDoc)))
+ gOptionsDialog.getControl("cbTerminateAfterTest").setState( -( GetUserFieldState (cUserFieldTestTerminateAfterTest, gOutputDoc)))
+End Sub
+
+Sub ReadOptions
+ call SetGlobalDoc
+ bMakeWriterTest = GetUserFieldState (cUserFieldTestWriter, gOutputDoc)
+ bMakeCalcTest = GetUserFieldState (cUserFieldTestCalc, gOutputDoc)
+ bMakeImpressTest = GetUserFieldState (cUserFieldTestImpress, gOutputDoc)
+ bMakeDrawTest = GetUserFieldState (cUserFieldTestDraw, gOutputDoc)
+ bMakeHTMLTest = GetUserFieldState (cUserFieldTestHTML, gOutputDoc)
+ bMakeMathTest = GetUserFieldState (cUserFieldTestMath, gOutputDoc)
+ bMakeChartTest = GetUserFieldState (cUserFieldTestChart, gOutputDoc)
+ bMakeJavaTest = GetUserFieldState (cUserFieldTestJava, gOutputDoc)
+ bMakeDBTest = GetUserFieldState (cUserFieldTestDatabase, gOutputDoc)
+ bMakeExtensionTest = GetUserFieldState (cUserFieldTestExtension, gOutputDoc)
+ bMakeSaveOpenXMLTest = GetUserFieldState (cUserFieldTestOpenSaveXML, gOutputDoc)
+ if not isNull(oBinFilterComp) then
+ bMakeOpen50Test = GetUserFieldState (cUserFieldTestOpen50, gOutPutDoc)
+ else
+ bMakeOpen50Test = false
+ End If
+ bMakeSaveOpen8Test = GetUserFieldState (cUserFieldTestOpenSave8, gOutputDoc)
+ bMakeMacrosTest = GetUserFieldState (cUserFieldTestMacros, gOutputDoc)
+ bMakeTerminateAfterTest = GetUserFieldState (cUserFieldTestTerminateAfterTest, gOutputDoc)
+end Sub
+
+Sub SetDefaultOptions
+ bMakeWriterTest = true
+ bMakeCalcTest = true
+ bMakeImpressTest = true
+ bMakeDrawTest = true
+ bMakeHTMLTest = true
+ bMakeMathTest = true
+ bMakeChartTest = true
+ if Environ("SOLAR_JAVA") = "" then
+ bMakeJavaTest = false
+ bMakeDBTest = false
+ bMakeExtensionTest = false
+ else
+ bMakeJavaTest = true
+ bMakeDBTest = true
+ bMakeExtensionTest = true
+ End If
+ bMakeSaveOpenXMLTest = true
+ REM Disable StarOffice 5.0 tests in case binfilter has not been included
+ if not isNull(oBinFilterComp) then
+ bMakeOpen50Test = true
+ else
+ bMakeOpen50Test = false
+ End If
+ bMakeSaveOpen8Test = true
+ bMakeMacrosTest = true
+ bMakeTerminateAfterTest = false
+end Sub
+
+Sub StartTestByOptions
+ bShowTable = true
+ call ReadOptions
+ call Main
+ if bMakeTerminateAfterTest then
+ ClearDocFull (gOutputDoc)
+ gOutputDoc.dispose
+ 'StarDesktop.Terminate
+
+ 'EnableReschedule( false )
+ 'DispatchSlot( 5300 )
+ stop
+ End If
+end Sub
+
+Function StartTestWithDefaultOptions
+ bShowTable = false
+ call SetDefaultOptions
+ call Main
+ dim component(cMaxErrorStates) as string
+ component(cStWriter) = "Writer"
+ component(cStCalc) = "Calc"
+ component(cStPraesentation) = "Impress"
+ component(cStZeichnen) = "Draw"
+ component(cStChart) = "Chart"
+ component(cStMath) = "Math"
+ component(cStHTML) = "HTML"
+ component(cStJava) = "Java"
+ component(cStDataBase) = "Base"
+ component(cStExtension) = "Extensions"
+ dim action(5) as string
+ action(cDocNew) = "new"
+ action(cDocSaveOpen8) = "V8.0"
+ action(cDocSaveOpenXML) = "XML"
+ action(cDocOpen50) = "V5.0"
+ action(cDocClose) = "close"
+ action(cDocMacros) = "macros"
+ dim baseAction(5) as string
+ baseAction(cDBService) = "services"
+ baseAction(cDBOpen) = "open"
+ baseAction(cDBInsert) = "insert"
+ baseAction(cDBDelete) = "delete"
+ baseAction(cDBSeek) = "seek"
+ baseAction(cDBClose) = "close"
+ dim extAction(2) as string
+ extAction(cEXTService) = "services"
+ extAction(cEXTInstall) = "install"
+ extAction(cEXTUninstall) = "uninstall"
+ dim result as string
+ for i = 0 to cMaxErrorStates
+ for j = 0 to 5
+ if gErrorState(i, j) = cLogFalse then
+ result = result & " " & component(i) & ":"
+ if i = cStDataBase then
+ result = result & baseAction(j)
+ else if i = cStExtension then
+ result = result & extAction(j)
+ else
+ result = result & action(j)
+ end if
+ end if
+ if gTestCaseAnnotations(i, j) <> "" then
+ result = result & "(" & _
+ gTestCaseAnnotations(i, j) & ")"
+ end if
+ end if
+ next j
+ next i
+ StartTestWithDefaultOptions = result
+end Function
+
+Sub DispatchSlot(SlotID as Integer)
+ Dim oArg() as new com.sun.star.beans.PropertyValue
+ Dim oUrl as new com.sun.star.util.URL
+ Dim oTrans as Object
+ Dim oDisp as Object
+
+ oTrans = createUNOService("com.sun.star.util.URLTransformer")
+ oUrl.Complete = "slot:" & CStr(SlotID)
+ oTrans.parsestrict(oUrl)
+
+ oDisp = StarDesktop.queryDispatch(oUrl, "_self", 0)
+ oDisp.dispatch(oUrl, oArg())
+End Sub
+
+Sub LoadLibrary( LibName As String )
+
+ dim args(1)
+ dim arg as new com.sun.star.beans.PropertyValue
+ arg.Name = "LibraryName"
+ arg.Value = LibName
+ args(0) = arg
+
+ dim url as new com.sun.star.util.URL
+ dim trans as object
+ trans = createUnoService("com.sun.star.util.URLTransformer" )
+ url.Complete = "slot:6517"
+ trans.parsestrict( url )
+
+ dim disp as object
+ disp = StarDesktop.currentFrame.queryDispatch( url, "", 0 )
+ disp.dispatch( url, args() )
+
+End Sub
+
+Sub ExecuteSlot( SlotNr As String, oDoc as Object )
+ dim args()
+ dim url as new com.sun.star.util.URL
+ dim trans as object
+ dim disp as object
+
+ trans = createUnoService("com.sun.star.util.URLTransformer" )
+ url.Complete = "slot:" + SlotNr
+ trans.parsestrict( url )
+
+ disp = oDoc.CurrentController.Frame.queryDispatch( url, "", 0 )
+ disp.dispatch( url, args() )
+
+End Sub
+
+Sub DelAllUserFields (aDoc as Object)
+ Dim aFieldType as Object
+ Dim aElements as Variant
+ Dim i%
+ Dim aFieldMasters, aFieldMaster as Object
+ Dim sElement$
+ aFieldMasters = aDoc.TextFieldMasters
+ aElements = aFieldMasters.ElementNames
+ for i = 0 to UBound(aElements)
+ sElement$ = aElements(i)
+ if 0 <> instr(sElement$, cUnoUserField ) then
+ aFieldMaster = aFieldMasters.GetByName(sElement$)
+ aFieldMaster.Dispose
+ endif
+ next
+end Sub
+
+Function GetUserFieldState (sName as String, aDoc as Object) as boolean
+ Dim sFieldText as String
+ Dim bState as boolean
+ sFieldText = ReadUserField (sName, aDoc)
+
+ if LCase(sFieldText) = cYes then
+ bState = true
+ else
+ bState = false
+ end IF
+
+ GetUserFieldState = bState
+end Function
+
+Sub SetUserFieldState (sName as String, nState as boolean, aDoc as Object)
+ Dim sFieldText as String
+
+ sFieldText = cNo 'default
+
+ Select case nState
+ case true
+ sFieldText = cYes
+ case false
+ sFieldText = cNo
+ end Select
+
+ WriteUserField (sFieldText, sName, aDoc)
+end Sub
+
+Function ReadUserField(sFieldName as String, aDoc as Object) as String
+ Dim aMasters as Object
+ aMasters = aDoc.TextFieldMasters
+ if aMasters.HasByName (cUnoUserField+cUnoSeparator+sFieldName) then
+ ReadUserField = aMasters.GetByName (cUnoUserField+cUnoSeparator+sFieldName).Content
+ else
+ ReadUserField = ""
+ end If
+End Function
+
+Sub WriteUserField(sValue as String, sFieldName as String, aDoc as Object, optional aCursor as Object)
+ Dim aMasters, aUserField, aTxtCursor as Object
+ aMasters = aDoc.TextFieldMasters
+ if aMasters.HasByName (cUnoUserField+cUnoSeparator+sFieldName) then
+ aUserField = aMasters.GetByName (cUnoUserField+cUnoSeparator+sFieldName)
+ else
+ aUserField = aDoc.CreateInstance (cUnoUserField)
+ aUserField.Name = sFieldName
+ end if
+ aUserField.Content = sValue
+End Sub
+
+Sub WriteExtUserField(nIndex as Integer, aCursor as Object, aDoc as Object)
+ Dim aUserField as Object
+ aUserField = aDoc.CreateInstance (cUnoExtUserField)
+ aUserField.UserDataType = nIndex
+ aCursor.Text.InsertTextContent (aCursor, aUserField, True)
+ aUserField.Fix = True
+End Sub
+</script:module>
diff --git a/smoketest/data/OptionsDlg.xml b/smoketest/data/OptionsDlg.xml
new file mode 100644
index 0000000..5da9355
--- /dev/null
+++ b/smoketest/data/OptionsDlg.xml
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--**********************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+*
+**********************************************************************-->
+<!DOCTYPE dlg:window PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "dialog.dtd">
+<dlg:window xmlns:dlg="http://openoffice.org/2000/dialog" xmlns:script="http://openoffice.org/2000/script" dlg:id="OptionsDlg" dlg:left="173" dlg:top="100" dlg:width="223" dlg:height="214" dlg:closeable="true" dlg:moveable="true" dlg:title="Options for smoketest">
+ <dlg:bulletinboard>
+ <dlg:titledbox dlg:id="fmTests" dlg:tab-index="0" dlg:left="114" dlg:top="7" dlg:width="100" dlg:height="157">
+ <dlg:title dlg:value="Tests"/>
+ </dlg:titledbox>
+ <dlg:checkbox dlg:id="cbWriterTest" dlg:tab-index="1" dlg:left="19" dlg:top="21" dlg:width="80" dlg:height="8" dlg:value="Writer" dlg:checked="false"/>
+ <dlg:checkbox dlg:id="cbCalcTest" dlg:tab-index="2" dlg:left="19" dlg:top="35" dlg:width="80" dlg:height="8" dlg:value="Calc" dlg:checked="false"/>
+ <dlg:checkbox dlg:id="cbImpressTest" dlg:tab-index="3" dlg:left="19" dlg:top="49" dlg:width="80" dlg:height="8" dlg:value="Impress" dlg:checked="false"/>
+ <dlg:checkbox dlg:id="cbDrawTest" dlg:tab-index="4" dlg:left="19" dlg:top="63" dlg:width="80" dlg:height="8" dlg:value="Draw" dlg:checked="false"/>
+ <dlg:checkbox dlg:id="cbHTMLTest" dlg:tab-index="5" dlg:left="19" dlg:top="77" dlg:width="80" dlg:height="8" dlg:value="HTML" dlg:checked="false"/>
+ <dlg:checkbox dlg:id="cbMathTest" dlg:tab-index="6" dlg:left="19" dlg:top="91" dlg:width="80" dlg:height="8" dlg:value="Math" dlg:checked="false"/>
+ <dlg:checkbox dlg:id="cbChartTest" dlg:tab-index="7" dlg:left="19" dlg:top="105" dlg:width="80" dlg:height="8" dlg:value="Chart" dlg:checked="false"/>
+ <dlg:checkbox dlg:id="cbJavaTest" dlg:tab-index="8" dlg:left="19" dlg:top="119" dlg:width="80" dlg:height="8" dlg:value="Java" dlg:checked="false"/>
+ <dlg:checkbox dlg:id="cbDatabaseTest" dlg:tab-index="9" dlg:left="19" dlg:top="133" dlg:width="80" dlg:height="8" dlg:value="Database" dlg:checked="false"/>
+ <dlg:checkbox dlg:id="cbExtensionTest" dlg:tab-index="10" dlg:left="19" dlg:top="147" dlg:width="80" dlg:height="8" dlg:value="Extension" dlg:checked="false"/>
+
+ <dlg:titledbox dlg:id="fmInstalls" dlg:tab-index="11" dlg:left="7" dlg:top="7" dlg:width="100" dlg:height="157">
+ <dlg:title dlg:value="Functions"/>
+ </dlg:titledbox>
+ <dlg:checkbox dlg:id="cbSaveOpen8Test" dlg:tab-index="12" dlg:left="126" dlg:top="21" dlg:width="80" dlg:height="8" dlg:value="Save / Open V8.0" dlg:checked="false"/>
+ <dlg:checkbox dlg:id="cbSaveOpenXMLTest" dlg:tab-index="13" dlg:left="126" dlg:top="35" dlg:width="80" dlg:height="8" dlg:value="Save / Open XML" dlg:checked="false"/>
+ <dlg:checkbox dlg:id="cbOpen50Test" dlg:tab-index="14" dlg:left="126" dlg:top="49" dlg:width="80" dlg:height="8" dlg:value="Open V5.0" dlg:checked="false"/>
+ <dlg:checkbox dlg:id="cbMacrosTest" dlg:tab-index="15" dlg:left="126" dlg:top="63" dlg:width="80" dlg:height="8" dlg:value="Macros" dlg:checked="false"/>
+ <dlg:titledbox dlg:id="fmBroker" dlg:tab-index="16" dlg:left="7" dlg:top="169" dlg:width="208" dlg:height="17"/>
+ <dlg:checkbox dlg:id="cbTerminateAfterTest" dlg:tab-index="17" dlg:disabled="true" dlg:left="19" dlg:top="174" dlg:width="190" dlg:height="8" dlg:value="Terminate Office after test" dlg:checked="false"/>
+
+ <dlg:button dlg:id="btOk" dlg:tab-index="18" dlg:left="7" dlg:top="193" dlg:width="65" dlg:height="15" dlg:value="Ok" dlg:button-type="ok" dlg:default="true">
+ <script:event script:event-name="on-performaction" script:location="document" script:macro-name="Standard.Events.PressOk" script:language="StarBasic"/>
+ </dlg:button>
+ <dlg:button dlg:id="btCancel" dlg:tab-index="19" dlg:left="80" dlg:top="193" dlg:width="65" dlg:height="15" dlg:value="Cancel" dlg:button-type="ok">
+ <script:event script:event-name="on-performaction" script:location="document" script:macro-name="Standard.Events.PressCancel" script:language="StarBasic"/>
+ </dlg:button>
+ <dlg:button dlg:id="btStart" dlg:tab-index="20" dlg:left="152" dlg:top="193" dlg:width="65" dlg:height="15" dlg:value="Smoketest">
+ <script:event script:event-name="on-performaction" script:location="vnd.sun.star.script" script:macro-name="Standard.Events.PressTest?language=Basic&location=document" script:language="Script"/>
+ </dlg:button>
+ </dlg:bulletinboard>
+</dlg:window>
diff --git a/smoketest/data/Test_10er.xml b/smoketest/data/Test_10er.xml
new file mode 100644
index 0000000..54ee076
--- /dev/null
+++ b/smoketest/data/Test_10er.xml
@@ -0,0 +1,775 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--**********************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+*
+**********************************************************************-->
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Test_10er" script:language="StarBasic">REM 10er Test
+
+const sSWLogFileName = "swlog.dat", sSCLogFileName = "sclog.dat"
+const sSDLogFileName = "sdlog.dat", sSMathLogFileName = "smalog.dat"
+const sSChartLogFileName = "schlog.dat"
+const sSHptLogFileName = "shptlog.dat"
+const sSDrawLogFileName = "sdrwlog.dat", sJavaLogFileName = "javalog.dat"
+const sSDBLogFileName = "dblog.dat", sExtLogFileName = "extlog.dat"
+const sTestGlueLogFileName = "testclosure.log"
+const sLogFileName = "smoketest.log"
+const cTempFileName = "smoketest_file"
+
+const cMessageSaveOpen8Doc = "Save/Open open Documents (8.0)"
+const cMessageSaveOpenXMLDoc = "Save/Open Document XML (6/7)"
+const cMessageOpen50Doc = "Open Document 5.0"
+const cMessageNewDoc = "New Document"
+const cMessageCloseDoc = "Close Document"
+const cMessageRunMacros = "Run Macros"
+
+Global sWorkPath$
+Global sWorkPathURL$
+Global LocalTestLog%
+Global GlobalTestLog%
+
+Sub Main
+ call TestAllDocs()
+end Sub
+
+Sub DeleteAllSavedFiles()
+ Dim sFileName as String
+ sFileName = sWorkPath+cTempFileName+"."+GetDocEndings(frmWriter)
+ If FileExists (sFileName) then
+ Kill (sFileName)
+ End If
+ sFileName = sWorkPath+cTempFileName+"."+GetDocEndings(frmCalc)
+ If FileExists (sFileName) then
+ Kill (sFileName)
+ End If
+ sFileName = sWorkPath+cTempFileName+"."+GetDocEndings(frmImpress)
+ If FileExists (sFileName) then
+ Kill (sFileName)
+ End If
+ sFileName = sWorkPath+cTempFileName+"."+GetDocEndings(frmDraw)
+ If FileExists (sFileName) then
+ Kill (sFileName)
+ End If
+ sFileName = sWorkPath+cTempFileName+"."+GetDocEndings(frmHyperText)
+ If FileExists (sFileName) then
+ Kill (sFileName)
+ End If
+ sFileName = sWorkPath+cTempFileName+"."+GetDocEndings(frmWriter or cFltXML)
+ If FileExists (sFileName) then
+ Kill (sFileName)
+ End If
+ sFileName = sWorkPath+cTempFileName+"."+GetDocEndings(frmCalc or cFltXML)
+ If FileExists (sFileName) then
+ Kill (sFileName)
+ End If
+ sFileName = sWorkPath+cTempFileName+"."+GetDocEndings(frmImpress or cFltXML)
+ If FileExists (sFileName) then
+ Kill (sFileName)
+ End If
+ sFileName = sWorkPath+cTempFileName+"."+GetDocEndings(frmDraw or cFltXML)
+ If FileExists (sFileName) then
+ Kill (sFileName)
+ End If
+ sFileName = sWorkPath+cTempFileName+"."+GetDocEndings(frmWriter or cFlt50)
+ If FileExists (sFileName) then
+ Kill (sFileName)
+ End If
+ sFileName = sWorkPath+cTempFileName+"."+GetDocEndings(frmCalc or cFlt50)
+ If FileExists (sFileName) then
+ Kill (sFileName)
+ End If
+ sFileName = sWorkPath+cTempFileName+"."+GetDocEndings(frmImpress or cFlt50)
+ If FileExists (sFileName) then
+ Kill (sFileName)
+ End If
+ sFileName = sWorkPath+cTempFileName+"."+GetDocEndings(frmDraw or cFlt50)
+ If FileExists (sFileName) then
+ Kill (sFileName)
+ End If
+End Sub
+
+Sub DeleteAllLogFiles()
+ If FileExists (sWorkPath+sLogFileName) then
+ Kill (sWorkPath+sLogFileName)
+ End If
+ If FileExists (sWorkPath+sSWLogFileName) then
+ Kill (sWorkPath+sSWLogFileName)
+ End If
+ If FileExists (sWorkPath+sSCLogFileName) then
+ Kill (sWorkPath+sSCLogFileName)
+ End If
+ If FileExists (sWorkPath+sSDLogFileName) then
+ Kill (sWorkPath+sSDLogFileName)
+ End If
+ If FileExists (sWorkPath+sSMathLogFileName) then
+ Kill (sWorkPath+sSMathLogFileName)
+ End If
+ If FileExists (sWorkPath+sSChartLogFileName) then
+ Kill (sWorkPath+sSChartLogFileName)
+ End If
+ If FileExists (sWorkPath+sSHptLogFileName) then
+ Kill (sWorkPath+sSHptLogFileName)
+ End If
+ If FileExists (sWorkPath+sSDrawLogFileName) then
+ Kill (sWorkPath+sSDrawLogFileName)
+ End If
+ If FileExists (sWorkPath+sJavaLogFileName) then
+ Kill (sWorkPath+sJavaLogFileName)
+ End If
+ If FileExists (sWorkPath+sTestGlueLogFileName) then
+ Kill (sWorkPath+sTestGlueLogFileName)
+ End If
+ If FileExists (sWorkPath+sSDBLogFileName) then
+ Kill (sWorkPath+sSDBLogFileName)
+ End If
+ If FileExists (sWorkPath+sExtLogFileName) then
+ Kill (sWorkPath+sExtLogFileName)
+ End If
+end Sub
+
+Function OpenLogDat (sFileName as String) as Integer
+ Dim LocaleFileChannel%
+ If FileExists (sWorkPath+sFileName) then
+ Kill (sWorkPath+sFileName)
+ End If
+ LocaleFileChannel% = Freefile
+ Open sWorkPath+sFileName For Output As LocaleFileChannel%
+ OpenLogDat = LocaleFileChannel%
+end Function
+
+Sub SetupWorkPath
+ Dim configManager as Object
+ configManager = CreateUnoService( "com.sun.star.config.SpecialConfigManager" )
+
+ sWorkPath = configManager.SubstituteVariables( "$(userpath)/temp/" )
+ sWorkPathURL = configManager.SubstituteVariables( "$(userurl)/temp/" )
+End Sub
+
+Function GetSystem (sTmpWorkPath as string) as string
+ GetSystem = ""
+ if InStr (sTmpWorkPath, ":") then
+ GetSystem = "windows"
+ else
+ GetSystem = "unix"
+ End If
+end Function
+
+Function ConvertPathToWin (sTmpWorkPath as string) as string
+ for i%=1 to Len(sTmpWorkPath)
+ sTemp = Mid (sTmpWorkPath, i%, 1)
+ if sTemp = "/" then
+ sTmpWorkPath = Left (sTmpWorkPath, i%-1) + "\" + Right (sTmpWorkPath, Len(sTmpWorkPath)-i%)
+ else
+ if sTemp = "|" then
+ sTmpWorkPath = Left (sTmpWorkPath, i%-1) + ":" + Right (sTmpWorkPath, Len(sTmpWorkPath)-i%)
+ end If
+ end If
+ next i%
+ ConvertPathToWin = sTmpWorkPath
+end Function
+
+Sub TestAllDocs()
+DIM sDocURL as String, sDocPath as String
+DIM nStrPos as Long
+
+ 'search ExtensionURL
+ sDocURL = gOutputDoc.URL
+ CompatibilityMode(true)
+ nStrPos = InStrRev (sDocURL, "/" )
+ CompatibilityMode(false)
+ sExtensionURL = Left (sDocURL, nStrPos)
+
+ GlobalTestLog = OpenLogDat (sLogFileName)
+ call WriteTestSequence
+ if bMakeWriterTest then
+ gCurrentDocTest = frmWriter
+ call MakeDocTest
+ end if
+ if bMakeCalcTest then
+ gCurrentDocTest = frmCalc
+ call MakeDocTest
+ end if
+ if bMakeImpressTest then
+ gCurrentDocTest = frmImpress
+ call MakeDocTest
+ end if
+ if bMakeDrawTest then
+ gCurrentDocTest = frmDraw
+ call MakeDocTest
+ end if
+ if bMakeHTMLTest then
+ gCurrentDocTest = frmHyperText
+ call MakeDocTest
+ end if
+ if bMakeChartTest then
+ gCurrentDocTest = frmChart
+ call MakeChartTest
+ end if
+ if bMakeMathTest then
+ gCurrentDocTest = frmMath
+ call MakeNewDoc
+ end if
+ if bMakeJavaTest then
+ gCurrentDocTest = frmJava
+ call TestJava
+ end if
+ if bMakeDBTest then
+ gCurrentDocTest = frmDataBase
+ call Test_DB.TestDB
+ end if
+ if bMakeExtensionTest then
+ gCurrentDocTest = frmExtension
+ call Test_Ext.TestExtensions
+ end if
+
+ Close #GlobalTestLog
+ GlobalTestLog = 0
+end Sub
+
+Sub WriteTestSequence
+ Print #GlobalTestLog, "Sequence of testing"
+
+ if bMakeWriterTest then
+ WriteTests ("writer : ", true, GlobalTestLog)
+ end if
+ if bMakeCalcTest then
+ WriteTests ("calc : ", true, GlobalTestLog)
+ end if
+ if bMakeImpressTest then
+ WriteTests ("impress : ", true, GlobalTestLog)
+ end if
+ if bMakeDrawTest then
+ WriteTests ("draw : ", true, GlobalTestLog)
+ end if
+ if bMakeHTMLTest then
+ WriteTests ("HTML : ", true, GlobalTestLog)
+ end if
+ if bMakeChartTest then
+ WriteTests ("chart : ", false, GlobalTestLog)
+ end if
+ if bMakeMathTest then
+ WriteTests ("math : ", false, GlobalTestLog)
+ end if
+ if bMakeJavaTest then
+ WriteTests ("Java : ", false, GlobalTestLog)
+ end if
+ if bMakeDBTest then
+ WriteDBTests ("Database : ", GlobalTestLog)
+ end if
+ if bMakeExtensionTest then
+ WriteExtensionTests ("Extension : ", GlobalTestLog)
+ end if
+
+ Print #GlobalTestLog, "testclosure : setup, write_status"
+
+ Print #GlobalTestLog
+ end Sub
+
+ Sub WriteTests (sText as string, bTestAll as boolean)
+ Dim sWriteStr as string
+
+ sWriteStr = sText
+ sWriteStr = sWriteStr + "new"
+ if bTestAll then
+ if bMakeSaveOpen8Test then
+ sWriteStr = sWriteStr + ", save 8.0"
+ end if
+ if bMakeSaveOpenXMLTest then
+ sWriteStr = sWriteStr + ", save XML"
+ end if
+ if bMakeSaveOpen8Test then
+ sWriteStr = sWriteStr + ", open 8.0"
+ end if
+ if bMakeSaveOpenXMLTest then
+ sWriteStr = sWriteStr + ", open XML"
+ end if
+ if bMakeOpen50Test then
+ sWriteStr = sWriteStr + ", open 5.0"
+ end if
+ if bMakeMacrosTest then
+ sWriteStr = sWriteStr + ", run macros"
+ end if
+ end if
+
+ sWriteStr = sWriteStr + ", close"
+
+ Print #GlobalTestLog, sWriteStr
+end Sub
+
+Sub WriteDBTests (sText as string, nFileChannel as integer)
+ Dim sWriteStr as string
+
+ sWriteStr = sText
+ sWriteStr = sWriteStr + "open / services"
+ sWriteStr = sWriteStr + ", insert"
+ sWriteStr = sWriteStr + ", delete"
+ sWriteStr = sWriteStr + ", seek"
+ sWriteStr = sWriteStr + ", close"
+
+ Print #nFileChannel, sWriteStr
+end Sub
+
+Sub WriteExtensionTests (sText as string, nFileChannel as integer)
+ Dim sWriteStr as string
+
+ sWriteStr = sText
+ sWriteStr = sWriteStr + "services"
+ sWriteStr = sWriteStr + ", install"
+ sWriteStr = sWriteStr + ", uninstall"
+
+ Print #nFileChannel, sWriteStr
+end Sub
+
+Sub MakeDocTest
+ Dim oDoc as Object
+ Dim sFileNameXML$, sFileName50$, sFileName8$
+ Dim bSuccess as Boolean
+
+ On Local Error GoTo DOCTESTERROR
+ gCurrentTestCase = cLogfileFailed
+ LocalTestLog% = OpenLogDat (GetLogFileName(gCurrentDocTest))
+ gCurrentTestCase = cDocNew
+ oDoc = LoadDoc ("private:factory/" + GetDocFilter(gCurrentDocTest or cFltNewDoc))
+ LogTestResult( GetDocFilter(gCurrentDocTest or cFltNewDoc)+" "+ cMessageNewDoc, not IsNull (oDoc) )
+ if not IsNull (oDoc) then
+ gCurrentTestCase = cDocSaveOpen8
+ if bMakeSaveOpen8Test and IsFilterAvailable (gCurrentDocTest or cFlt8) then
+ sFileName8 = sWorkPathURL+cTempFileName+"."+GetDocEndings(gCurrentDocTest or cFlt8)
+ SaveDoc (sFileName8, oDoc, GetDocFilter(gCurrentDocTest or cFlt8))
+ end if
+ gCurrentTestCase = cDocSaveOpenXML
+ if bMakeSaveOpenXMLTest and IsFilterAvailable (gCurrentDocTest or cFltXML) then
+ sFileNameXML = sWorkPathURL+cTempFileName+"."+GetDocEndings(gCurrentDocTest or cFltXML)
+ SaveDoc (sFileNameXML, oDoc, GetDocFilter(gCurrentDocTest or cFltXML))
+ end if
+ gCurrentTestCase = cDocClose
+ bSuccess = CloseDoc( oDoc )
+ LogTestResult( GetDocFilter(gCurrentDocTest)+" "+ cMessageCloseDoc, bSuccess )
+ gCurrentTestCase = cDocSaveOpen8
+ if bMakeSaveOpen8Test and IsFilterAvailable (gCurrentDocTest or cFlt8) then
+ oDoc = LoadDoc (sFileName8)
+
+' oDoc = Documents.open(sFileName)
+ LogTestResult( GetDocFilter(gCurrentDocTest or cFltNewDoc)+" "+ cMessageSaveOpen8Doc, not IsNull (oDoc) )
+
+ if not IsNull (oDoc) then
+ gCurrentTestCase = cDocClose
+ oDoc.close (true)
+ end If
+ end if
+
+ gCurrentTestCase = cDocSaveOpenXML
+ if bMakeSaveOpenXMLTest and IsFilterAvailable (gCurrentDocTest or cFltXML) then
+ oDoc = LoadDoc (sFileNameXML)
+
+' oDoc = Documents.open(sFileName)
+ LogTestResult( GetDocFilter(gCurrentDocTest or cFltNewDoc)+" "+ cMessageSaveOpenXMLDoc, not IsNull (oDoc) )
+
+ if not IsNull (oDoc) then
+ gCurrentTestCase = cDocClose
+ oDoc.close (true)
+ end If
+ end if
+
+ gCurrentTestCase = cDocOpen50
+ if bMakeOpen50Test and IsFilterAvailable (gCurrentDocTest or cFlt50) then
+ SOLARSRC = ConvertToURL(Environ("SOLARSRC"))
+ sFileName50 = SOLARSRC+"/qadevOOo/testdocs/ttt."+GetDocEndings(gCurrentDocTest or cFlt50)
+ oDoc = LoadDoc (sFileName50)
+
+' oDoc = Documents.open(sFileName)
+ LogTestResult( GetDocFilter(gCurrentDocTest or cFltNewDoc)+" "+ cMessageOpen50Doc, not IsNull (oDoc) )
+
+ if not IsNull (oDoc) then
+ gCurrentTestCase = cDocClose
+ oDoc.close (true)
+ end If
+ end if
+
+ gCurrentTestCase = cDocMacros
+ ' Just one calc macro test for now
+ ' To-Do split this into its own per-module/test .xml and add more
+ if bMakeMacrosTest and gCurrentDocTest = frmCalc then
+ oDoc = LoadDoc ("private:factory/" + GetDocFilter(gCurrentDocTest or cFltNewDoc))
+ oDocCtrl = oDoc.getCurrentController()
+ oDocFrame = oDocCtrl.getFrame()
+ oDispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
+
+ dim args(0) as new com.sun.star.beans.PropertyValue
+
+ args(0).Name = "ToPoint"
+ args(0).Value = "$A$1"
+ oDispatcher.executeDispatch(oDocFrame, ".uno:GoToCell", "", 0, args())
+ args(0).Name = "By"
+ args(0).Value = 5
+ oDispatcher.executeDispatch(oDocFrame, ".uno:GoRightSel", "", 0, args())
+ args(0).Name = "By"
+ args(0).Value = 5
+ oDispatcher.executeDispatch(oDocFrame, ".uno:GoDownSel", "", 0, args())
+
+ oRangeAddr = oDoc.getCurrentSelection().getRangeAddress()
+
+ bResult = oRangeAddr.StartColumn = 0 and oRangeAddr.EndColumn = 5 and oRangeAddr.StartRow = 0 and oRangeAddr.EndRow = 5
+
+ LogTestResult( GetDocFilter(gCurrentDocTest or cFltNewDoc)+" "+ cMessageRunMacros, bResult )
+
+ if not IsNull (oDoc) then
+ gCurrentTestCase = cDocClose
+ oDoc.close (true)
+ end If
+ end if
+
+ end If
+ Print #LocalTestLog, "---"
+ Close #LocalTestLog%
+ LocalTestLog = 0
+ Exit Sub ' Without error
+
+ DOCTESTERROR:
+ If ( gCurrentTestCase = cLogfileFailed ) then
+ LogTestResult( " ", False )
+ Exit Sub
+ else
+ LogTestResult( GetDocFilter(gCurrentDocTest or cFltNewDoc)+" "+ GetErrorMessage(gCurrentTestCase), False )
+ Close #LocalTestLog%
+ LocalTestLog = 0
+ End If
+ Exit Sub ' With error
+End Sub
+
+Sub MakeNewDoc
+ DIM oDoc as Object
+ Dim bSuccess as Boolean
+ On Local Error GoTo DOCTESTERROR2
+ gCurrentTestCase = cLogfileFailed
+ LocalTestLog% = OpenLogDat (GetLogFileName(gCurrentDocTest))
+ gCurrentTestCase = cDocNew
+' oDoc = Documents.Add(GetDocFilter(gCurrentDocTest))
+ oDoc = LoadDoc ("private:factory/" + GetDocFilter(gCurrentDocTest or cFltNewDoc))
+ LogTestResult( GetDocFilter(gCurrentDocTest or cFltNewDoc)+" "+ cMessageNewDoc, not IsNull (oDoc) )
+ if not IsNull (oDoc) then
+ gCurrentTestCase = cDocClose
+ bSuccess = CloseDoc( oDoc )
+ LogTestResult( GetDocFilter(gCurrentDocTest)+" "+ cMessageCloseDoc, bSuccess )
+ end If
+ Print #LocalTestLog, "---"
+ Close #LocalTestLog%
+ LocalTestLog = 0
+ Exit Sub ' Without error
+
+ DOCTESTERROR2:
+ If ( gCurrentTestCase = cLogfileFailed ) then
+ LogTestResult( " ", False )
+ Exit Sub
+ else
+ LogTestResult( GetDocFilter(gCurrentDocTest or cFltNewDoc)+" "+ GetErrorMessage(gCurrentTestCase), False )
+ Close #LocalTestLog%
+ LocalTestLog = 0
+ End If
+ Exit Sub ' With error
+End Sub
+
+Sub MakeChartTest
+ Dim oCharts as Object
+ Dim oDoc as Object
+ Dim oRange(0) as New com.sun.star.table.CellRangeAddress
+ Dim oRect as New com.sun.star.awt.Rectangle
+ const cChartName="TestChart"
+ Dim bSuccess as Boolean
+ On Local Error GoTo CHARTTESTERROR
+ gCurrentTestCase = cLogfileFailed
+ LocalTestLog% = OpenLogDat (GetLogFileName(gCurrentDocTest))
+ gCurrentTestCase = cDocNew
+ oDoc = LoadDoc ("private:factory/" + GetDocFilter(frmCalc or cFltNewDoc))
+ if not IsNull (oDoc) then
+ oCharts = oDoc.sheets(0).Charts
+ oCharts.AddNewByName (cChartName, oRect, oRange(), true, true)
+ bSuccess=oCharts.HasByName(cChartName)
+ LogTestResult( GetDocFilter(gCurrentDocTest or cFltNewDoc)+" "+ cMessageNewDoc, bSuccess )
+ gCurrentTestCase = cDocClose
+ oDoc.close (true)
+ else
+ LogTestResult( GetDocFilter(frmCalc or cFltNewDoc)+" "+ cMessageNewDoc, FALSE )
+ End if
+ Print #LocalTestLog, "---"
+ Close #LocalTestLog%
+ LocalTestLog = 0
+ Exit Sub ' Without error
+
+ CHARTTESTERROR:
+ If ( gCurrentTestCase = cLogfileFailed ) then
+ LogTestResult( " ", False )
+ Exit Sub
+ else
+ LogTestResult( GetDocFilter(gCurrentDocTest or cFltNewDoc)+" "+ GetErrorMessage(gCurrentTestCase), FALSE )
+ Close #LocalTestLog%
+ LocalTestLog = 0
+ End If
+ Exit Sub ' With error
+End Sub
+
+Sub LogState (bState as Boolean, sText as String, nLocaleFileChannel as integer)
+ if bState then
+ Print #nLocaleFileChannel, sText+" -> ok"
+ else
+ Print #nLocaleFileChannel, sText+" -> error"
+ end If
+end Sub
+
+Function GetDocEndings (DocType as Integer) as String
+ Select Case ( DocType )
+ case frmWriter or cFlt8
+ GetDocEndings = "odt" ' Textdokument
+ case frmCalc or cFlt8
+ GetDocEndings = "ods" 'Tabellendokument
+ case frmImpress or cFlt8
+ GetDocEndings = "odp" 'PrÃsentation
+ case frmDraw or cFlt8
+ GetDocEndings = "odg" 'Zeichen
+ case frmHyperText, frmHyperText or cFlt50, frmHyperText or cFltXML
+ GetDocEndings = "html" 'Hypertext-Dokument
+ case frmWriter or cFlt50
+ GetDocEndings = "sdw" ' Textdokument 5.0
+ case frmCalc or cFlt50
+ GetDocEndings = "sdc" 'Tabellendokument 5.0
+ case frmImpress or cFlt50
+ GetDocEndings = "sdd" 'PrÃsentation 5.0
+ case frmDraw or cFlt50
+ GetDocEndings = "sda" 'Zeichen 5.0
+ case frmWriter or cFltXML
+ GetDocEndings = "sxw" ' Textdokument
+ case frmCalc or cFltXML
+ GetDocEndings = "sxc" 'Tabellendokument
+ case frmImpress or cFltXML
+ GetDocEndings = "sxi" 'PrÃsentation
+ case frmDraw or cFltXML
+ GetDocEndings = "sxd" 'Zeichen
+ case else
+ GetDocEndings = ""
+ end Select
+end Function
+
+Function GetDocFilter (DocType as Integer) as String
+ Select Case ( DocType )
+ case frmWriter or cFlt8
+ GetDocFilter = "writer8" ' text document
+ case frmCalc or cFlt8
+ GetDocFilter = "calc8" ' spreadsheet document
+ case frmImpress or cFlt8
+ GetDocFilter = "impress8" ' presentation
+ case frmDraw or cFlt8
+ GetDocFilter = "draw8" ' drawing
+ case frmMath or cFlt8
+ GetDocFilter = "math8" ' formula
+
+ case frmWriter or cFltXML
+ GetDocFilter = "StarOffice XML (Writer)" ' text document
+ case frmCalc or cFltXML
+ GetDocFilter = "StarOffice XML (Calc)" ' spreadsheet document
+ case frmImpress or cFltXML
+ GetDocFilter = "StarOffice XML (Impress)" ' presentation
+ case frmDraw or cFltXML
+ GetDocFilter = "StarOffice XML (Draw)" ' drawing
+ case frmMath or cFltXML
+ GetDocFilter = "StarOffice XML (Math)" ' formula
+
+ case frmHyperText, frmHyperText or cFlt50, frmHyperText or cFltXML
+ GetDocFilter = "HTML" ' HTML document
+ case frmWriter or cFlt50
+ GetDocFilter = "StarWriter 5.0" ' Textdokument 5.0
+ case frmCalc or cFlt50
+ GetDocFilter = "StarCalc 5.0" 'Tabellendokument 5.0
+ case frmImpress or cFlt50
+ GetDocFilter = "StarImpress 5.0" 'Präsentation 5.0
+ case frmDraw or cFlt50
+ GetDocFilter = "StarDraw 5.0" 'Zeichen 5.0
+ case frmMath or cFlt50
+ GetDocFilter = "StarMath 5.0" 'Formel 5.0
+
+ case frmWriter or cFltNewDoc
+ GetDocFilter = "swriter" ' text document
+ case frmCalc or cFltNewDoc
+ GetDocFilter = "scalc" ' spreadsheet document
+ case frmImpress or cFltNewDoc
+ GetDocFilter = "simpress" ' presentation
+ case frmDraw or cFltNewDoc
+ GetDocFilter = "sdraw" ' drawing
+ case frmMath or cFltNewDoc
+ GetDocFilter = "smath" ' formula
+ case frmHyperText or cFltNewDoc
+ GetDocFilter = "swriter/web" ' HTML document
+ case frmChart or cFltNewDoc
+ GetDocFilter = "schart" ' chart
+ case else
+ GetDocFilter = ""
+ end Select
+end Function
+
+Function GetLogFileName (DocType as Integer) as String
+ Select Case ( DocType )
+ case frmWriter
+ GetLogFileName = sSWLogFileName ' text document
+ case frmCalc
+ GetLogFileName = sSCLogFileName ' spreadsheet document
+ case frmImpress
+ GetLogFileName = sSDLogFileName ' presentation
+ case frmDraw
+ GetLogFileName = sSDrawLogFileName ' drawing
+ case frmMath
+ GetLogFileName = sSMathLogFileName ' formula
+ case frmHyperText
+ GetLogFileName = sSHptLogFileName ' HTML document
+ case frmChart
+ GetLogFileName = sSChartLogFileName ' chart
+ case frmJava
+ GetLogFileName = sJavaLogFileName 'Java
+ case frmTestClosure
+ GetLogFileName = sTestGlueLogFileName ' test framework
+ case frmDataBase
+ GetLogFileName = sSDBLogFileName 'Database
+ case frmExtension
+ GetLogFileName = sExtLogFileName 'Extension
+ case else
+ GetLogFileName = ""
+ end Select
+end Function
+
+Function GetErrorMessageOnAction (nAction as Integer) as String
+ Select Case ( nAction )
+ case cDocNew
+ GetErrorMessageOnAction = cMessageNewDoc
+ case cDocSaveOpen8
+ GetErrorMessageOnAction = cMessageSaveOpen8Doc
+ case cDocSaveOpenXML
+ GetErrorMessageOnAction = cMessageSaveOpenXMLDoc
+ case cDocOpen50
+ GetErrorMessageOnAction = cMessageOpen50Doc
+ case cDocMacros
+ GetErrorMessageOnAction = cMessageRunMacros
+ case cDocClose
+ GetErrorMessageOnAction = cMessageCloseDoc
+ case else
+ GetErrorMessageOnAction = ""
+ end Select
+end Function
+
+Function IsFilterAvailable (FilterType as Integer) as boolean
+ IsFilterAvailable = true
+ if ((FilterType = (frmHyperText or cFlt50)) or (FilterType = (frmHyperText or cFltXML))) then
+ IsFilterAvailable = false
+ end if
+End Function
+
+Function TestJava
+ Dim oObj as Object
+ gCurrentTestCase = cLogfileFailed
+ LocalTestLog% = OpenLogDat (GetLogFileName(gCurrentDocTest))
+ gCurrentTestCase = cDocNew
+ oObj = createUnoService( cUnoJavaLoader )
+ LogTestResult( "Java "+ cMessageNewDoc, not IsNull (oObj) )
+
+ Print #LocalTestLog, "---"
+ Close #LocalTestLog%
+ LocalTestLog = 0
+
+ TestJava = not IsNull (oObj)
+End Function
+
+Sub LoadLibrary( LibName as String )
+
+ dim args(1)
+ dim arg as new com.sun.star.beans.PropertyValue
+ arg.Name = "LibraryName"
+ arg.Value = LibName
+ args(0) = arg
+
+ dim url as new com.sun.star.util.URL
+ dim trans as object
+ trans = createUnoService("com.sun.star.util.URLTransformer" )
+ url.Complete = "slot:6517"
+ trans.parsestrict( url )
+
+ dim disp as object
+ disp = StarDesktop.currentFrame.queryDispatch( url, "", 0 )
+ disp.dispatch( url, args() )
+
+End Sub
+
+Sub LoadDoc (DocName as String) as Object
+ dim trans as object
+ trans = createUnoService("com.sun.star.util.URLTransformer" )
+ url = createUnoStruct("com.sun.star.util.URL" )
+ url.Complete = DocName
+ if Left(DocName, 5 ) <> "file:" then
+ trans.parsestrict( url )
+ endif
+
+ Dim aPropArray(0) as Object
+ aPropArray(0) = CreateUnoStruct("com.sun.star.beans.PropertyValue")
+ aPropArray(0).Name = "OpenFlags"
+ aPropArray(0).Value = "S"
+
+ dim doc as object
+ dim noargs()
+ doc = StarDesktop.loadComponentFromURL( url.Complete, "_blank", 0, aPropArray() ) ' XModel
+ LoadDoc = doc
+End Sub
+
+Sub SaveDoc (DocName as String, oDoc as Object, sFilterName as string )
+ dim trans as object
+ trans = createUnoService("com.sun.star.util.URLTransformer" )
+ url = createUnoStruct("com.sun.star.util.URL" )
+ url.Complete = DocName
+ if Left(DocName, 5 ) <> "file:" then
+ trans.parsestrict( url )
+ endif
+
+ if not (sFilterName = "") then
+ Dim aPropArray(0) as Object
+ aPropArray(0) = CreateUnoStruct("com.sun.star.beans.PropertyValue")
+ aPropArray(0).Name = "FilterName"
+ aPropArray(0).Value = sFilterName
+
+ oDoc.storeAsURL( url.Complete, aPropArray() )
+ else
+ MessageBox "Filtername is unknown!"
+ end if
+end Sub
+
+Function CloseDoc( oDoc as Object )
+ Dim oListener as Object
+ oListener = CreateUnoListener( "Events.closeListener_", "com.sun.star.util.XCloseListener" )
+ oDoc.addCloseListener( oListener )
+
+ Events.ResetCloseListenerFlag()
+ oDoc.close( true )
+ closeDoc = Events.HasCloseListenerBeenCalled()
+
+ if ( Not Events.HasCloseListenerBeenCalled() ) Then
+ ' do this only if closing was not successful - otherwise, we'd get a DisposedException
+ oDoc.removeCloseListener( oListener )
+ End If
+End Function
+</script:module>
diff --git a/smoketest/data/Test_DB.xml b/smoketest/data/Test_DB.xml
new file mode 100644
index 0000000..52ea5d9
--- /dev/null
+++ b/smoketest/data/Test_DB.xml
@@ -0,0 +1,147 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--**********************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+*
+**********************************************************************-->
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Test_DB" script:language="StarBasic">REM ***** Database Test *****
+
+const cMessageDatabaseService = "Database Service"
+const cMessageDatabaseOpen = "Open Database"
+const cMessageDatabaseInsert = "Insert record into Database"
+const cMessageDatabaseDelete = "Delete record from Database"
+const cMessageDatabaseSeek = "Read other record from Database"
+const cMessageDatabaseClose = "Close Database"
+
+Sub TestDB
+
+ Dim oDBConnection as Object, oDataSource as Object, oDBContext as Object
+ Dim sDBName as String, sTable as String, sCurrentMessage as String
+ Dim nRowCount as Integer
+ Dim bResult as Boolean
+ Const sTestString = "Automatical Test"
+
+ On Local Error GoTo DBERROR
+
+ gCurrentTestCase = cLogfileFailed
+ LocalTestLog% = OpenLogDat (GetLogFileName(gCurrentDocTest))
+
+ gCurrentTestCase = cDBService
+ sCurrentMessage = cMessageDatabaseService + " " + cUnoDatabaseContext
+
+ oDBContext = CreateUnoService(cUnoDatabaseContext)
+ sDBName="Bibliography" 'Names of Databases
+
+ gCurrentTestCase = cDBOpen
+ sCurrentMessage = cMessageDatabaseOpen
+
+ oDataSource = oDBContext.GetByName(sDBName)
+ sTable=oDataSource.Tables.ElementNames(0)
+ oDBConnection = oDBContext.GetByName(sDBName).GetConnection("","")
+
+ LogTestResult( "Database "+ cMessageDatabaseOpen, not IsNull (oDBConnection) )
+ if (IsNull(oDBConnection)) then
+ Close #LocalTestLog%
+ LocalTestLog = 0
+ Exit Sub
+ End If
+
+ ' Database is open now
+
+ gCurrentTestCase = cDBService
+ sCurrentMessage = cMessageDatabaseService + " " + cUnoRowSet
+ oRowSet = createUnoService(cUnoRowSet)
+
+ if (IsNull(oRowSet)) then
+ LogTestResult( "Database "+ cMessageDatabaseService + " " + cUnoRowSet, not IsNull (oRowSet) )
+ Exit Sub
+ else
+ LogTestResult( "Database "+ cMessageDatabaseService, TRUE )
+ End If
+
+ gCurrentTestCase = cDBInsert
+ sCurrentMessage = cMessageDatabaseInsert
+
+ oRowSet.ActiveConnection = oDBConnection
+
+ oRowSet.CommandType = com.sun.star.sdb.CommandType.COMMAND
+ oRowSet.Command = "SELECT * FROM " + sTable
+ oRowSet.execute()
+
+ oRowSet.moveToInsertRow
+ oRowSet.updateString(5, sTestString)
+
+ oRowSet.insertRow()
+ nRowCount=oRowSet.RowCount
+
+ oRowSet.moveToCurrentRow()
+
+ bResult = (oRowSet.getString(5) = sTestString)
+ LogTestResult( "Database "+ cMessageDatabaseInsert, bResult )
+
+ 'delete only if insert passed
+
+ if (bResult) Then
+ gCurrentTestCase = cDBDelete
+ sCurrentMessage = cMessageDatabaseDelete
+ oRowSet.deleteRow()
+ bResult = (nRowCount - oRowSet.RowCount = 0)
+ if ( bResult ) Then
+ oRowSet.next()
+ bResult = (nRowCount - oRowSet.RowCount = 1)
+ End If
+ LogTestResult( "Database "+ cMessageDatabaseDelete, bResult )
+ End If
+
+ ' read other record
+
+ gCurrentTestCase = cDBSeek
+ sCurrentMessage = cMessageDatabaseSeek
+ oRowSet.first()
+ bResult = not (oRowSet.getString(5) = sTestString)
+ LogTestResult( "Database "+ cMessageDatabaseSeek, bResult )
+
+ gCurrentTestCase = cDBClose
+ sCurrentMessage = cMessageDatabaseClose
+ oDBConnection.Dispose()
+ LogTestResult( "Database "+ cMessageDatabaseClose, True )
+
+ Print #LocalTestLog, "---"
+ Close #LocalTestLog%
+ LocalTestLog = 0
+ Exit Sub ' Without error
+
+ DBERROR:
+ If ( gCurrentTestCase = cLogfileFailed ) then
+ LogTestResult( " ", False )
+ Exit Sub
+ else
+ LogTestResult( "Database "+ sCurrentMessage, FALSE )
+ Close #LocalTestLog%
+ LocalTestLog = 0
+ End If
+ Exit Sub ' With error
+End Sub
+</script:module>
diff --git a/smoketest/data/Test_Ext.xml b/smoketest/data/Test_Ext.xml
new file mode 100644
index 0000000..ac39f48
--- /dev/null
+++ b/smoketest/data/Test_Ext.xml
@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--**********************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+*
+**********************************************************************-->
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Test_Ext" script:language="StarBasic">REM ***** BASIC *****
+
+const cMessageExtensionService = "Extension Service"
+const cMessageExtensionInstall = "Install Extension"
+const cMessageExtensionUninstall = "Uninstall Extension"
+
+Sub TestExtensions
+ Dim oTestExtension as Object, obj_null as Object
+ Dim sCurrentMessage as String
+ Dim bResult as Boolean
+ Dim sImplementationNameString as String
+ sImplementationNameString = cUnoSmoketestTestExtension + "$_TestExtension"
+
+ On Local Error GoTo EXTERROR
+
+ gCurrentTestCase = cLogfileFailed
+ LocalTestLog% = OpenLogDat (GetLogFileName(gCurrentDocTest))
+
+ sCurrentMessage = cMessageExtensionService
+ gCurrentTestCase = cEXTService
+
+ 'Create an implementation of com.sun.star.ucb.XCommandEnvironment which is needed for
+ 'adding the extension. The implementation is in
+ 'javaunohelper/com/sun/star/comp/juhtest/SmoketestCommandEnvironment.java and the code is in juh.jar
+ cmdEnv = createUnoService(cUnoSmoketestCommandEnvironment)
+
+ 'Create the component context and then get the singleton ExtensionManager
+ 'A singleton cannot be created with createUnoService
+ ctx = getDefaultContext
+ ext_mgr = ctx.getValueByName("/singletons/" + cExtensionManager)
+
+ LogTestResult( "Extension "+ cMessageExtensionService, not IsNull (ext_mgr) )
+ if (IsNull(ext_mgr)) then
+ Close #LocalTestLog%
+ LocalTestLog = 0
+ Exit Sub
+ End If
+
+ sCurrentMessage = cMessageExtensionInstall
+ gCurrentTestCase = cEXTInstall
+
+ 'Add the extension. We must provide a file URL here.
+ 'By passing "user" we determine that the actions we perform on
+ 'XExtensionManager only affect the user installation. To modify the share installation one would pass "share".
+
+ Dim props() as Object
+ ext_mgr.addExtension(sExtensionURL + cExtensionFileName, props, "user", obj_null, cmdEnv)
+
+ 'Check if the extension has been added by creating a service which is contained in the extension.
+ oTestExtension = createUnoService(cUnoSmoketestTestExtension)
+ bResult = (oTestExtension.getImplementationName = sImplementationNameString)
+ LogTestResult( "Extension "+ cMessageExtensionInstall, bResult )
+ if (not bResult) then
+ Close #LocalTestLog%
+ LocalTestLog = 0
+ Exit Sub
+ End If
+
+ sCurrentMessage = cMessageExtensionUninstall
+ gCurrentTestCase = cEXTUninstall
+
+ 'Remove the package
+ ext_mgr.removeExtension("org.openoffice.legacy." + cExtensionFileName, cExtensionFileName, "user",obj_null, cmdEnv)
+
+ 'Try to create the service which is contained in the now removed extension.
+ oTestExtension = createUnoService(cUnoSmoketestTestExtension)
+
+ 'The service must not be available anymore. Therefor isNull must return true.
+ LogTestResult( "Extension "+ cMessageExtensionUninstall, IsNull (oTestExtension) )
+
+ Print #LocalTestLog, "---"
+ Close #LocalTestLog%
+ LocalTestLog = 0
+ Exit Sub ' Without error
+
+ EXTERROR:
+ If ( gCurrentTestCase = cLogfileFailed ) then
+ LogTestResult( " ", False )
+ Exit Sub
+ else
+ LogTestResult( "Extension "+ sCurrentMessage, False )
+ Close #LocalTestLog%
+ LocalTestLog = 0
+ End If
+ Exit Sub ' With error
+
+End Sub
+</script:module>
diff --git a/smoketest/data/content.xml b/smoketest/data/content.xml
new file mode 100644
index 0000000..60559af
--- /dev/null
+++ b/smoketest/data/content.xml
@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--**********************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+*
+**********************************************************************-->
+<office:document-content xmlns:office="http://openoffice.org/2000/office" xmlns:style="http://openoffice.org/2000/style" xmlns:text="http://openoffice.org/2000/text" xmlns:table="http://openoffice.org/2000/table" xmlns:draw="http://openoffice.org/2000/drawing" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="http://openoffice.org/2000/meta" xmlns:number="http://openoffice.org/2000/datastyle" xmlns:svg="http://www.w3.org/2000/svg" xmlns:chart="http://openoffice.org/2000/chart" xmlns:dr3d="http://openoffice.org/2000/dr3d" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="http://openoffice.org/2000/form" xmlns:script="http://openoffice.org/2000/script" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xform
s" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rpt="http://openoffice.org/2005/report" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" office:version="1.2" grddl:transformation="http://docs.oasis-open.org/office/1.2/xslt/odf2rdf.xsl" office:class="text">
+ <office:script/>
+ <office:font-decls>
... etc. - the rest is truncated
More information about the Libreoffice-commits
mailing list