summaryrefslogtreecommitdiffstats
path: root/smoketest/data/Basic/Standard/Test_10er.xml
diff options
context:
space:
mode:
Diffstat (limited to 'smoketest/data/Basic/Standard/Test_10er.xml')
-rw-r--r--smoketest/data/Basic/Standard/Test_10er.xml671
1 files changed, 671 insertions, 0 deletions
diff --git a/smoketest/data/Basic/Standard/Test_10er.xml b/smoketest/data/Basic/Standard/Test_10er.xml
new file mode 100644
index 000000000..67e5e40c1
--- /dev/null
+++ b/smoketest/data/Basic/Standard/Test_10er.xml
@@ -0,0 +1,671 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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 .
+ -->
+<!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 = &quot;swlog.dat&quot;, sSCLogFileName = &quot;sclog.dat&quot;
+const sSDLogFileName = &quot;sdlog.dat&quot;, sSMathLogFileName = &quot;smalog.dat&quot;
+const sSChartLogFileName = &quot;schlog.dat&quot;
+const sSHptLogFileName = &quot;shptlog.dat&quot;
+const sSDrawLogFileName = &quot;sdrwlog.dat&quot;, sJavaLogFileName = &quot;javalog.dat&quot;
+const sSDBLogFileName = &quot;dblog.dat&quot;, sExtLogFileName = &quot;extlog.dat&quot;
+const sTestGlueLogFileName = &quot;testclosure.log&quot;
+const sLogFileName = &quot;smoketest.log&quot;
+const cTempFileName = &quot;smoketest_file&quot;
+
+const cMessageSaveOpen8Doc = &quot;Save/Open open Documents (8.0)&quot;
+const cMessageNewDoc = &quot;New Document&quot;
+const cMessageCloseDoc = &quot;Close Document&quot;
+const cMessageRunMacros = &quot;Run Macros&quot;
+
+Global sWorkPath$
+Global sWorkPathURL$
+Global LocalTestLog%
+Global GlobalTestLog%
+
+Sub Main
+ call TestAllDocs()
+end Sub
+
+Sub DeleteAllSavedFiles()
+ Dim sFileName as String
+ sFileName = sWorkPath+cTempFileName+&quot;.&quot;+GetDocEndings(frmWriter)
+ If FileExists (sFileName) then
+ Kill (sFileName)
+ End If
+ sFileName = sWorkPath+cTempFileName+&quot;.&quot;+GetDocEndings(frmCalc)
+ If FileExists (sFileName) then
+ Kill (sFileName)
+ End If
+ sFileName = sWorkPath+cTempFileName+&quot;.&quot;+GetDocEndings(frmImpress)
+ If FileExists (sFileName) then
+ Kill (sFileName)
+ End If
+ sFileName = sWorkPath+cTempFileName+&quot;.&quot;+GetDocEndings(frmDraw)
+ If FileExists (sFileName) then
+ Kill (sFileName)
+ End If
+ sFileName = sWorkPath+cTempFileName+&quot;.&quot;+GetDocEndings(frmHyperText)
+ 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( &quot;com.sun.star.config.SpecialConfigManager&quot; )
+
+ sWorkPath = configManager.SubstituteVariables( &quot;$(userpath)/temp/&quot; )
+ sWorkPathURL = configManager.SubstituteVariables( &quot;$(userurl)/temp/&quot; )
+End Sub
+
+Function GetSystem (sTmpWorkPath as string) as string
+ GetSystem = &quot;&quot;
+ if InStr (sTmpWorkPath, &quot;:&quot;) then
+ GetSystem = &quot;windows&quot;
+ else
+ GetSystem = &quot;unix&quot;
+ End If
+end Function
+
+Function ConvertPathToWin (sTmpWorkPath as string) as string
+ for i%=1 to Len(sTmpWorkPath)
+ sTemp = Mid (sTmpWorkPath, i%, 1)
+ if sTemp = &quot;/&quot; then
+ sTmpWorkPath = Left (sTmpWorkPath, i%-1) + &quot;\&quot; + Right (sTmpWorkPath, Len(sTmpWorkPath)-i%)
+ else
+ if sTemp = &quot;|&quot; then
+ sTmpWorkPath = Left (sTmpWorkPath, i%-1) + &quot;:&quot; + 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
+
+ &apos;search ExtensionURL
+ sDocURL = gOutputDoc.URL
+ CompatibilityMode(true)
+ nStrPos = InStrRev (sDocURL, &quot;/&quot; )
+ CompatibilityMode(false)
+ sExtensionURL = Left (sDocURL, nStrPos) + &quot;../Extension/&quot; + cExtensionFileName
+
+ GlobalTestLog = OpenLogDat (sLogFileName)
+ call WriteTestSequence
+
+ &apos; Do extension test first to avoid OOM with ASAN
+ if bMakeExtensionTest then
+ gCurrentDocTest = frmExtension
+ call Test_Ext.TestExtensions
+ end if
+
+ 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
+
+ Close #GlobalTestLog
+ GlobalTestLog = 0
+end Sub
+
+Sub WriteTestSequence
+ Print #GlobalTestLog, &quot;Sequence of testing&quot;
+
+ if bMakeExtensionTest then
+ WriteExtensionTests (&quot;Extension : &quot;, GlobalTestLog)
+ if bMakeWriterTest then
+ WriteTests (&quot;writer : &quot;, true, GlobalTestLog)
+ end if
+ if bMakeCalcTest then
+ WriteTests (&quot;calc : &quot;, true, GlobalTestLog)
+ end if
+ if bMakeImpressTest then
+ WriteTests (&quot;impress : &quot;, true, GlobalTestLog)
+ end if
+ if bMakeDrawTest then
+ WriteTests (&quot;draw : &quot;, true, GlobalTestLog)
+ end if
+ if bMakeHTMLTest then
+ WriteTests (&quot;HTML : &quot;, true, GlobalTestLog)
+ end if
+ if bMakeChartTest then
+ WriteTests (&quot;chart : &quot;, false, GlobalTestLog)
+ end if
+ if bMakeMathTest then
+ WriteTests (&quot;math : &quot;, false, GlobalTestLog)
+ end if
+ if bMakeJavaTest then
+ WriteTests (&quot;Java : &quot;, false, GlobalTestLog)
+ end if
+ if bMakeDBTest then
+ WriteDBTests (&quot;Database : &quot;, GlobalTestLog)
+ end if
+ end if
+
+ Print #GlobalTestLog, &quot;testclosure : setup, write_status&quot;
+
+ Print #GlobalTestLog
+ end Sub
+
+ Sub WriteTests (sText as string, bTestAll as boolean)
+ Dim sWriteStr as string
+
+ sWriteStr = sText
+ sWriteStr = sWriteStr + &quot;new&quot;
+ if bTestAll then
+ if bMakeSaveOpen8Test then
+ sWriteStr = sWriteStr + &quot;, save 8.0&quot;
+ end if
+ if bMakeSaveOpen8Test then
+ sWriteStr = sWriteStr + &quot;, open 8.0&quot;
+ end if
+ if bMakeMacrosTest then
+ sWriteStr = sWriteStr + &quot;, run macros&quot;
+ end if
+ end if
+
+ sWriteStr = sWriteStr + &quot;, close&quot;
+
+ Print #GlobalTestLog, sWriteStr
+end Sub
+
+Sub WriteDBTests (sText as string, nFileChannel as integer)
+ Dim sWriteStr as string
+
+ sWriteStr = sText
+ sWriteStr = sWriteStr + &quot;open / services&quot;
+ sWriteStr = sWriteStr + &quot;, insert&quot;
+ sWriteStr = sWriteStr + &quot;, delete&quot;
+ sWriteStr = sWriteStr + &quot;, seek&quot;
+ sWriteStr = sWriteStr + &quot;, close&quot;
+
+ Print #nFileChannel, sWriteStr
+end Sub
+
+Sub WriteExtensionTests (sText as string, nFileChannel as integer)
+ Dim sWriteStr as string
+
+ sWriteStr = sText
+ sWriteStr = sWriteStr + &quot;services&quot;
+ sWriteStr = sWriteStr + &quot;, install&quot;
+ sWriteStr = sWriteStr + &quot;, uninstall&quot;
+
+ Print #nFileChannel, sWriteStr
+end Sub
+
+Sub MakeDocTest
+ Dim oDoc as Object
+ Dim sFileNameXML$, sFileName8$
+ Dim bSuccess as Boolean
+
+ On Local Error GoTo DOCTESTERROR
+ gCurrentTestCase = cLogfileFailed
+ LocalTestLog% = OpenLogDat (GetLogFileName(gCurrentDocTest))
+ gCurrentTestCase = cDocNew
+ oDoc = LoadDoc (&quot;private:factory/&quot; + GetDocFilter(gCurrentDocTest or cFltNewDoc))
+ LogTestResult( GetDocFilter(gCurrentDocTest or cFltNewDoc)+&quot; &quot;+ cMessageNewDoc, not IsNull (oDoc) )
+ if not IsNull (oDoc) then
+ gCurrentTestCase = cDocSaveOpen8
+ if bMakeSaveOpen8Test and IsFilterAvailable (gCurrentDocTest or cFlt8) then
+ sFileName8 = sWorkPathURL+cTempFileName+&quot;.&quot;+GetDocEndings(gCurrentDocTest or cFlt8)
+ SaveDoc (sFileName8, oDoc, GetDocFilter(gCurrentDocTest or cFlt8))
+ end if
+ gCurrentTestCase = cDocClose
+ bSuccess = CloseDoc( oDoc )
+ LogTestResult( GetDocFilter(gCurrentDocTest)+&quot; &quot;+ cMessageCloseDoc, bSuccess )
+ gCurrentTestCase = cDocSaveOpen8
+ if bMakeSaveOpen8Test and IsFilterAvailable (gCurrentDocTest or cFlt8) then
+ oDoc = LoadDoc (sFileName8)
+
+&apos; oDoc = Documents.open(sFileName)
+ LogTestResult( GetDocFilter(gCurrentDocTest or cFltNewDoc)+&quot; &quot;+ cMessageSaveOpen8Doc, not IsNull (oDoc) )
+
+ if not IsNull (oDoc) then
+ gCurrentTestCase = cDocClose
+ oDoc.close (true)
+ end If
+ end if
+
+ gCurrentTestCase = cDocMacros
+ &apos; Just one calc macro test for now
+ &apos; To-Do split this into its own per-module/test .xml and add more
+ if bMakeMacrosTest and gCurrentDocTest = frmCalc then
+ oDoc = LoadDoc (&quot;private:factory/&quot; + GetDocFilter(gCurrentDocTest or cFltNewDoc))
+ oDocCtrl = oDoc.getCurrentController()
+ oDocFrame = oDocCtrl.getFrame()
+ oDispatcher = createUnoService(&quot;com.sun.star.frame.DispatchHelper&quot;)
+
+ dim args(0) as new com.sun.star.beans.PropertyValue
+
+ args(0).Name = &quot;ToPoint&quot;
+ args(0).Value = &quot;$A$1&quot;
+ oDispatcher.executeDispatch(oDocFrame, &quot;.uno:GoToCell&quot;, &quot;&quot;, 0, args())
+ args(0).Name = &quot;By&quot;
+ args(0).Value = 5
+ oDispatcher.executeDispatch(oDocFrame, &quot;.uno:GoRightSel&quot;, &quot;&quot;, 0, args())
+ args(0).Name = &quot;By&quot;
+ args(0).Value = 5
+ oDispatcher.executeDispatch(oDocFrame, &quot;.uno:GoDownSel&quot;, &quot;&quot;, 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)+&quot; &quot;+ cMessageRunMacros, bResult )
+
+ if not IsNull (oDoc) then
+ gCurrentTestCase = cDocClose
+ oDoc.close (true)
+ end If
+ end if
+
+ end If
+ Print #LocalTestLog, &quot;---&quot;
+ Close #LocalTestLog%
+ LocalTestLog = 0
+ Exit Sub &apos; Without error
+
+ DOCTESTERROR:
+ If ( gCurrentTestCase = cLogfileFailed ) then
+ LogTestResult( &quot; &quot;, False )
+ Exit Sub
+ else
+ LogTestResult( GetDocFilter(gCurrentDocTest or cFltNewDoc)+&quot; &quot;+ GetErrorMessage(gCurrentTestCase), False )
+ Close #LocalTestLog%
+ LocalTestLog = 0
+ End If
+ Exit Sub &apos; 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
+&apos; oDoc = Documents.Add(GetDocFilter(gCurrentDocTest))
+ oDoc = LoadDoc (&quot;private:factory/&quot; + GetDocFilter(gCurrentDocTest or cFltNewDoc))
+ LogTestResult( GetDocFilter(gCurrentDocTest or cFltNewDoc)+&quot; &quot;+ cMessageNewDoc, not IsNull (oDoc) )
+ if not IsNull (oDoc) then
+ gCurrentTestCase = cDocClose
+ bSuccess = CloseDoc( oDoc )
+ LogTestResult( GetDocFilter(gCurrentDocTest)+&quot; &quot;+ cMessageCloseDoc, bSuccess )
+ end If
+ Print #LocalTestLog, &quot;---&quot;
+ Close #LocalTestLog%
+ LocalTestLog = 0
+ Exit Sub &apos; Without error
+
+ DOCTESTERROR2:
+ If ( gCurrentTestCase = cLogfileFailed ) then
+ LogTestResult( &quot; &quot;, False )
+ Exit Sub
+ else
+ LogTestResult( GetDocFilter(gCurrentDocTest or cFltNewDoc)+&quot; &quot;+ GetErrorMessage(gCurrentTestCase), False )
+ Close #LocalTestLog%
+ LocalTestLog = 0
+ End If
+ Exit Sub &apos; 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=&quot;TestChart&quot;
+ Dim bSuccess as Boolean
+ On Local Error GoTo CHARTTESTERROR
+ gCurrentTestCase = cLogfileFailed
+ LocalTestLog% = OpenLogDat (GetLogFileName(gCurrentDocTest))
+ gCurrentTestCase = cDocNew
+ oDoc = LoadDoc (&quot;private:factory/&quot; + 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)+&quot; &quot;+ cMessageNewDoc, bSuccess )
+ gCurrentTestCase = cDocClose
+ oDoc.close (true)
+ else
+ LogTestResult( GetDocFilter(frmCalc or cFltNewDoc)+&quot; &quot;+ cMessageNewDoc, FALSE )
+ End if
+ Print #LocalTestLog, &quot;---&quot;
+ Close #LocalTestLog%
+ LocalTestLog = 0
+ Exit Sub &apos; Without error
+
+ CHARTTESTERROR:
+ If ( gCurrentTestCase = cLogfileFailed ) then
+ LogTestResult( &quot; &quot;, False )
+ Exit Sub
+ else
+ LogTestResult( GetDocFilter(gCurrentDocTest or cFltNewDoc)+&quot; &quot;+ GetErrorMessage(gCurrentTestCase), FALSE )
+ Close #LocalTestLog%
+ LocalTestLog = 0
+ End If
+ Exit Sub &apos; With error
+End Sub
+
+Sub LogState (bState as Boolean, sText as String, nLocaleFileChannel as integer)
+ if bState then
+ Print #nLocaleFileChannel, sText+&quot; -&gt; ok&quot;
+ else
+ Print #nLocaleFileChannel, sText+&quot; -&gt; error&quot;
+ end If
+end Sub
+
+Function GetDocEndings (DocType as Integer) as String
+ Select Case ( DocType )
+ case frmWriter or cFlt8
+ GetDocEndings = &quot;odt&quot; &apos; Textdokument
+ case frmCalc or cFlt8
+ GetDocEndings = &quot;ods&quot; &apos;Tabellendokument
+ case frmImpress or cFlt8
+ GetDocEndings = &quot;odp&quot; &apos;PrÕsentation
+ case frmDraw or cFlt8
+ GetDocEndings = &quot;odg&quot; &apos;Zeichen
+ case frmHyperText, frmHyperText or cFltXML
+ GetDocEndings = &quot;html&quot; &apos;Hypertext-Dokument
+ case frmWriter or cFltXML
+ GetDocEndings = &quot;sxw&quot; &apos; Textdokument
+ case frmCalc or cFltXML
+ GetDocEndings = &quot;sxc&quot; &apos;Tabellendokument
+ case frmImpress or cFltXML
+ GetDocEndings = &quot;sxi&quot; &apos;PrÕsentation
+ case frmDraw or cFltXML
+ GetDocEndings = &quot;sxd&quot; &apos;Zeichen
+ case else
+ GetDocEndings = &quot;&quot;
+ end Select
+end Function
+
+Function GetDocFilter (DocType as Integer) as String
+ Select Case ( DocType )
+ case frmWriter or cFlt8
+ GetDocFilter = &quot;writer8&quot; &apos; text document
+ case frmCalc or cFlt8
+ GetDocFilter = &quot;calc8&quot; &apos; spreadsheet document
+ case frmImpress or cFlt8
+ GetDocFilter = &quot;impress8&quot; &apos; presentation
+ case frmDraw or cFlt8
+ GetDocFilter = &quot;draw8&quot; &apos; drawing
+ case frmMath or cFlt8
+ GetDocFilter = &quot;math8&quot; &apos; formula
+
+ case frmWriter or cFltXML
+ GetDocFilter = &quot;StarOffice XML (Writer)&quot; &apos; text document
+ case frmCalc or cFltXML
+ GetDocFilter = &quot;StarOffice XML (Calc)&quot; &apos; spreadsheet document
+ case frmImpress or cFltXML
+ GetDocFilter = &quot;StarOffice XML (Impress)&quot; &apos; presentation
+ case frmDraw or cFltXML
+ GetDocFilter = &quot;StarOffice XML (Draw)&quot; &apos; drawing
+ case frmMath or cFltXML
+ GetDocFilter = &quot;StarOffice XML (Math)&quot; &apos; formula
+
+ case frmHyperText, frmHyperText or cFltXML
+ GetDocFilter = &quot;HTML&quot; &apos; HTML document
+
+ case frmWriter or cFltNewDoc
+ GetDocFilter = &quot;swriter&quot; &apos; text document
+ case frmCalc or cFltNewDoc
+ GetDocFilter = &quot;scalc&quot; &apos; spreadsheet document
+ case frmImpress or cFltNewDoc
+ GetDocFilter = &quot;simpress&quot; &apos; presentation
+ case frmDraw or cFltNewDoc
+ GetDocFilter = &quot;sdraw&quot; &apos; drawing
+ case frmMath or cFltNewDoc
+ GetDocFilter = &quot;smath&quot; &apos; formula
+ case frmHyperText or cFltNewDoc
+ GetDocFilter = &quot;swriter/web&quot; &apos; HTML document
+ case frmChart or cFltNewDoc
+ GetDocFilter = &quot;schart&quot; &apos; chart
+ case else
+ GetDocFilter = &quot;&quot;
+ end Select
+end Function
+
+Function GetLogFileName (DocType as Integer) as String
+ Select Case ( DocType )
+ case frmWriter
+ GetLogFileName = sSWLogFileName &apos; text document
+ case frmCalc
+ GetLogFileName = sSCLogFileName &apos; spreadsheet document
+ case frmImpress
+ GetLogFileName = sSDLogFileName &apos; presentation
+ case frmDraw
+ GetLogFileName = sSDrawLogFileName &apos; drawing
+ case frmMath
+ GetLogFileName = sSMathLogFileName &apos; formula
+ case frmHyperText
+ GetLogFileName = sSHptLogFileName &apos; HTML document
+ case frmChart
+ GetLogFileName = sSChartLogFileName &apos; chart
+ case frmJava
+ GetLogFileName = sJavaLogFileName &apos;Java
+ case frmTestClosure
+ GetLogFileName = sTestGlueLogFileName &apos; test framework
+ case frmDataBase
+ GetLogFileName = sSDBLogFileName &apos;Database
+ case frmExtension
+ GetLogFileName = sExtLogFileName &apos;Extension
+ case else
+ GetLogFileName = &quot;&quot;
+ end Select
+end Function
+
+Function GetErrorMessageOnAction (nAction as Integer) as String
+ Select Case ( nAction )
+ case cDocNew
+ GetErrorMessageOnAction = cMessageNewDoc
+ case cDocSaveOpen8
+ GetErrorMessageOnAction = cMessageSaveOpen8Doc
+ case cDocMacros
+ GetErrorMessageOnAction = cMessageRunMacros
+ case cDocClose
+ GetErrorMessageOnAction = cMessageCloseDoc
+ case else
+ GetErrorMessageOnAction = &quot;&quot;
+ end Select
+end Function
+
+Function IsFilterAvailable (FilterType as Integer) as boolean
+ IsFilterAvailable = true
+ if (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( &quot;Java &quot;+ cMessageNewDoc, not IsNull (oObj) )
+
+ Print #LocalTestLog, &quot;---&quot;
+ 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 = &quot;LibraryName&quot;
+ arg.Value = LibName
+ args(0) = arg
+
+ dim url as new com.sun.star.util.URL
+ dim trans as object
+ trans = createUnoService(&quot;com.sun.star.util.URLTransformer&quot; )
+ url.Complete = &quot;slot:6517&quot;
+ trans.parsestrict( url )
+
+ dim disp as object
+ disp = StarDesktop.currentFrame.queryDispatch( url, &quot;&quot;, 0 )
+ disp.dispatch( url, args() )
+
+End Sub
+
+Sub LoadDoc (DocName as String) as Object
+ dim trans as object
+ trans = createUnoService(&quot;com.sun.star.util.URLTransformer&quot; )
+ url = createUnoStruct(&quot;com.sun.star.util.URL&quot; )
+ url.Complete = DocName
+ if Left(DocName, 5 ) &lt;&gt; &quot;file:&quot; then
+ trans.parsestrict( url )
+ endif
+
+ Dim aPropArray(0) as Object
+ aPropArray(0) = CreateUnoStruct(&quot;com.sun.star.beans.PropertyValue&quot;)
+ aPropArray(0).Name = &quot;OpenFlags&quot;
+ aPropArray(0).Value = &quot;S&quot;
+
+ dim doc as object
+ dim noargs()
+ doc = StarDesktop.loadComponentFromURL( url.Complete, &quot;_blank&quot;, 0, aPropArray() ) &apos; XModel
+ LoadDoc = doc
+End Sub
+
+Sub SaveDoc (DocName as String, oDoc as Object, sFilterName as string )
+ dim trans as object
+ trans = createUnoService(&quot;com.sun.star.util.URLTransformer&quot; )
+ url = createUnoStruct(&quot;com.sun.star.util.URL&quot; )
+ url.Complete = DocName
+ if Left(DocName, 5 ) &lt;&gt; &quot;file:&quot; then
+ trans.parsestrict( url )
+ endif
+
+ if not (sFilterName = &quot;&quot;) then
+ Dim aPropArray(0) as Object
+ aPropArray(0) = CreateUnoStruct(&quot;com.sun.star.beans.PropertyValue&quot;)
+ aPropArray(0).Name = &quot;FilterName&quot;
+ aPropArray(0).Value = sFilterName
+
+ oDoc.storeAsURL( url.Complete, aPropArray() )
+ else
+ MessageBox &quot;Filtername is unknown!&quot;
+ 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
+ &apos; do this only if closing was not successful - otherwise, we'd get a DisposedException
+ oDoc.removeCloseListener( oListener )
+ End If
+End Function
+</script:module>