bump product version to 7.6.3.2-android
[LibreOffice.git] / smoketest / data / Basic / Standard / Test_10er.xml
blob67e5e40c16d798ad0fe797deef400f0c7b70918b
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!--
3  * This file is part of the LibreOffice project.
4  *
5  * This Source Code Form is subject to the terms of the Mozilla Public
6  * License, v. 2.0. If a copy of the MPL was not distributed with this
7  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8  *
9  * This file incorporates work covered by the following license notice:
10  *
11  *   Licensed to the Apache Software Foundation (ASF) under one or more
12  *   contributor license agreements. See the NOTICE file distributed
13  *   with this work for additional information regarding copyright
14  *   ownership. The ASF licenses this file to you under the Apache
15  *   License, Version 2.0 (the "License"); you may not use this file
16  *   except in compliance with the License. You may obtain a copy of
17  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
18  -->
19 <!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
20 <script:module xmlns:script="http://openoffice.org/2000/script" script:name="Test_10er" script:language="StarBasic">REM  10er Test
22 const sSWLogFileName = &quot;swlog.dat&quot;, sSCLogFileName = &quot;sclog.dat&quot;
23 const sSDLogFileName = &quot;sdlog.dat&quot;, sSMathLogFileName = &quot;smalog.dat&quot;
24 const sSChartLogFileName = &quot;schlog.dat&quot;
25 const sSHptLogFileName = &quot;shptlog.dat&quot;
26 const sSDrawLogFileName = &quot;sdrwlog.dat&quot;, sJavaLogFileName = &quot;javalog.dat&quot;
27 const sSDBLogFileName = &quot;dblog.dat&quot;, sExtLogFileName = &quot;extlog.dat&quot;
28 const sTestGlueLogFileName = &quot;testclosure.log&quot;
29 const sLogFileName = &quot;smoketest.log&quot;
30 const cTempFileName = &quot;smoketest_file&quot;
32 const cMessageSaveOpen8Doc = &quot;Save/Open open Documents (8.0)&quot;
33 const cMessageNewDoc = &quot;New Document&quot;
34 const cMessageCloseDoc = &quot;Close Document&quot;
35 const cMessageRunMacros = &quot;Run Macros&quot;
37 Global sWorkPath$
38 Global sWorkPathURL$
39 Global LocalTestLog%
40 Global GlobalTestLog%
42 Sub Main
43     call TestAllDocs()
44 end Sub
46 Sub DeleteAllSavedFiles()
47     Dim sFileName as String
48     sFileName = sWorkPath+cTempFileName+&quot;.&quot;+GetDocEndings(frmWriter)
49     If FileExists (sFileName) then
50         Kill (sFileName)
51     End If
52     sFileName = sWorkPath+cTempFileName+&quot;.&quot;+GetDocEndings(frmCalc)
53     If FileExists (sFileName) then
54         Kill (sFileName)
55     End If
56     sFileName = sWorkPath+cTempFileName+&quot;.&quot;+GetDocEndings(frmImpress)
57     If FileExists (sFileName) then
58         Kill (sFileName)
59     End If
60     sFileName = sWorkPath+cTempFileName+&quot;.&quot;+GetDocEndings(frmDraw)
61     If FileExists (sFileName) then
62         Kill (sFileName)
63     End If
64     sFileName = sWorkPath+cTempFileName+&quot;.&quot;+GetDocEndings(frmHyperText)
65     If FileExists (sFileName) then
66         Kill (sFileName)
67     End If
68 End Sub
70 Sub DeleteAllLogFiles()
71     If FileExists (sWorkPath+sLogFileName) then
72         Kill (sWorkPath+sLogFileName)
73     End If
74     If FileExists (sWorkPath+sSWLogFileName) then
75         Kill (sWorkPath+sSWLogFileName)
76     End If
77     If FileExists (sWorkPath+sSCLogFileName) then
78         Kill (sWorkPath+sSCLogFileName)
79     End If
80     If FileExists (sWorkPath+sSDLogFileName) then
81         Kill (sWorkPath+sSDLogFileName)
82     End If
83     If FileExists (sWorkPath+sSMathLogFileName) then
84         Kill (sWorkPath+sSMathLogFileName)
85     End If
86     If FileExists (sWorkPath+sSChartLogFileName) then
87         Kill (sWorkPath+sSChartLogFileName)
88     End If
89     If FileExists (sWorkPath+sSHptLogFileName) then
90         Kill (sWorkPath+sSHptLogFileName)
91     End If
92     If FileExists (sWorkPath+sSDrawLogFileName) then
93         Kill (sWorkPath+sSDrawLogFileName)
94     End If
95     If FileExists (sWorkPath+sJavaLogFileName) then
96         Kill (sWorkPath+sJavaLogFileName)
97     End If
98     If FileExists (sWorkPath+sTestGlueLogFileName) then
99         Kill (sWorkPath+sTestGlueLogFileName)
100     End If
101     If FileExists (sWorkPath+sSDBLogFileName) then
102         Kill (sWorkPath+sSDBLogFileName)
103     End If
104     If FileExists (sWorkPath+sExtLogFileName) then
105         Kill (sWorkPath+sExtLogFileName)
106     End If
107 end Sub
109 Function OpenLogDat (sFileName as String) as Integer
110     Dim LocaleFileChannel%
111     If FileExists (sWorkPath+sFileName) then
112         Kill (sWorkPath+sFileName)
113     End If
114     LocaleFileChannel% = Freefile
115     Open sWorkPath+sFileName For Output As LocaleFileChannel%
116     OpenLogDat = LocaleFileChannel%
117 end Function
119 Sub SetupWorkPath
120     Dim configManager as Object
121     configManager = CreateUnoService( &quot;com.sun.star.config.SpecialConfigManager&quot; )
123     sWorkPath = configManager.SubstituteVariables( &quot;$(userpath)/temp/&quot; )
124     sWorkPathURL = configManager.SubstituteVariables( &quot;$(userurl)/temp/&quot; )
125 End Sub
127 Function GetSystem (sTmpWorkPath as string) as string
128     GetSystem = &quot;&quot;
129     if InStr (sTmpWorkPath, &quot;:&quot;) then
130         GetSystem = &quot;windows&quot;
131     else
132         GetSystem = &quot;unix&quot;
133     End If
134 end Function
136 Function ConvertPathToWin (sTmpWorkPath as string) as string
137     for i%=1 to Len(sTmpWorkPath)
138         sTemp = Mid (sTmpWorkPath, i%, 1)
139         if sTemp = &quot;/&quot; then
140             sTmpWorkPath = Left (sTmpWorkPath, i%-1) + &quot;\&quot; + Right (sTmpWorkPath, Len(sTmpWorkPath)-i%)
141         else
142             if sTemp = &quot;|&quot; then
143                 sTmpWorkPath = Left (sTmpWorkPath, i%-1) + &quot;:&quot; + Right (sTmpWorkPath, Len(sTmpWorkPath)-i%)
144             end If
145         end If
146     next i%
147     ConvertPathToWin = sTmpWorkPath
148 end Function
150 Sub TestAllDocs()
151 DIM sDocURL as String, sDocPath as String
152 DIM nStrPos as Long
154     &apos;search ExtensionURL
155     sDocURL = gOutputDoc.URL
156     CompatibilityMode(true)
157     nStrPos = InStrRev (sDocURL, &quot;/&quot; )
158     CompatibilityMode(false)
159     sExtensionURL = Left (sDocURL, nStrPos) + &quot;../Extension/&quot; + cExtensionFileName
161     GlobalTestLog = OpenLogDat (sLogFileName)
162     call WriteTestSequence
164     &apos; Do extension test first to avoid OOM with ASAN
165     if bMakeExtensionTest then
166     gCurrentDocTest = frmExtension
167         call Test_Ext.TestExtensions
168     end if
170     if bMakeWriterTest then
171     gCurrentDocTest = frmWriter
172         call MakeDocTest
173     end if
174     if bMakeCalcTest then
175     gCurrentDocTest = frmCalc
176         call MakeDocTest
177     end if
178     if bMakeImpressTest then
179     gCurrentDocTest = frmImpress
180         call MakeDocTest
181     end if
182     if bMakeDrawTest then
183     gCurrentDocTest = frmDraw
184         call MakeDocTest
185     end if
186     if bMakeHTMLTest then
187     gCurrentDocTest = frmHyperText
188         call MakeDocTest
189     end if
190     if bMakeChartTest then
191     gCurrentDocTest = frmChart
192         call MakeChartTest
193     end if
194     if bMakeMathTest then
195     gCurrentDocTest = frmMath
196         call MakeNewDoc
197     end if
198     if bMakeJavaTest then
199     gCurrentDocTest = frmJava
200         call TestJava
201     end if
202     if bMakeDBTest then
203     gCurrentDocTest = frmDataBase
204         call Test_DB.TestDB
205     end if
207     Close #GlobalTestLog
208     GlobalTestLog = 0
209 end Sub
211 Sub WriteTestSequence
212     Print #GlobalTestLog, &quot;Sequence of testing&quot;
214     if bMakeExtensionTest then
215         WriteExtensionTests (&quot;Extension   : &quot;, GlobalTestLog)
216     if bMakeWriterTest then
217         WriteTests (&quot;writer  : &quot;, true, GlobalTestLog)
218     end if
219     if bMakeCalcTest then
220         WriteTests (&quot;calc    : &quot;, true, GlobalTestLog)
221     end if
222     if bMakeImpressTest then
223         WriteTests (&quot;impress : &quot;, true, GlobalTestLog)
224     end if
225     if bMakeDrawTest then
226         WriteTests (&quot;draw    : &quot;, true, GlobalTestLog)
227     end if
228     if bMakeHTMLTest then
229         WriteTests (&quot;HTML    : &quot;, true, GlobalTestLog)
230     end if
231     if bMakeChartTest then
232         WriteTests (&quot;chart   : &quot;, false, GlobalTestLog)
233     end if
234     if bMakeMathTest then
235         WriteTests (&quot;math    : &quot;, false, GlobalTestLog)
236     end if
237     if bMakeJavaTest then
238         WriteTests (&quot;Java    : &quot;, false, GlobalTestLog)
239     end if
240     if bMakeDBTest then
241         WriteDBTests (&quot;Database    : &quot;, GlobalTestLog)
242     end if
243   end if
245   Print #GlobalTestLog, &quot;testclosure : setup, write_status&quot;
247   Print #GlobalTestLog
248   end Sub
250   Sub WriteTests (sText as string, bTestAll as boolean)
251   Dim sWriteStr as string
253   sWriteStr = sText
254   sWriteStr = sWriteStr + &quot;new&quot;
255     if bTestAll then
256     if bMakeSaveOpen8Test then
257         sWriteStr = sWriteStr + &quot;, save 8.0&quot;
258     end if
259     if bMakeSaveOpen8Test then
260         sWriteStr = sWriteStr + &quot;, open 8.0&quot;
261     end if
262     if bMakeMacrosTest then
263         sWriteStr = sWriteStr + &quot;, run macros&quot;
264     end if
265     end if
267     sWriteStr = sWriteStr + &quot;, close&quot;
269     Print #GlobalTestLog, sWriteStr
270 end Sub
272 Sub WriteDBTests (sText as string, nFileChannel as integer)
273     Dim sWriteStr as string
275     sWriteStr = sText
276     sWriteStr = sWriteStr + &quot;open / services&quot;
277     sWriteStr = sWriteStr + &quot;, insert&quot;
278     sWriteStr = sWriteStr + &quot;, delete&quot;
279     sWriteStr = sWriteStr + &quot;, seek&quot;
280     sWriteStr = sWriteStr + &quot;, close&quot;
282     Print #nFileChannel, sWriteStr
283 end Sub
285 Sub WriteExtensionTests (sText as string, nFileChannel as integer)
286     Dim sWriteStr as string
288     sWriteStr = sText
289     sWriteStr = sWriteStr + &quot;services&quot;
290     sWriteStr = sWriteStr + &quot;, install&quot;
291     sWriteStr = sWriteStr + &quot;, uninstall&quot;
293     Print #nFileChannel, sWriteStr
294 end Sub
296 Sub MakeDocTest
297     Dim oDoc as Object
298     Dim sFileNameXML$, sFileName8$
299     Dim bSuccess as Boolean
301     On Local Error GoTo DOCTESTERROR
302     gCurrentTestCase = cLogfileFailed
303     LocalTestLog% = OpenLogDat (GetLogFileName(gCurrentDocTest))
304     gCurrentTestCase = cDocNew
305     oDoc = LoadDoc (&quot;private:factory/&quot; + GetDocFilter(gCurrentDocTest or cFltNewDoc))
306     LogTestResult( GetDocFilter(gCurrentDocTest or cFltNewDoc)+&quot; &quot;+ cMessageNewDoc, not IsNull (oDoc) )
307     if not IsNull (oDoc) then
308         gCurrentTestCase = cDocSaveOpen8
309         if bMakeSaveOpen8Test and IsFilterAvailable (gCurrentDocTest or cFlt8) then
310             sFileName8 = sWorkPathURL+cTempFileName+&quot;.&quot;+GetDocEndings(gCurrentDocTest or cFlt8)
311             SaveDoc (sFileName8, oDoc, GetDocFilter(gCurrentDocTest or cFlt8))
312         end if
313         gCurrentTestCase = cDocClose
314         bSuccess = CloseDoc( oDoc )
315         LogTestResult( GetDocFilter(gCurrentDocTest)+&quot; &quot;+ cMessageCloseDoc, bSuccess )
316         gCurrentTestCase = cDocSaveOpen8
317         if bMakeSaveOpen8Test and IsFilterAvailable (gCurrentDocTest or cFlt8) then
318             oDoc = LoadDoc (sFileName8)
320 &apos;          oDoc = Documents.open(sFileName)
321             LogTestResult( GetDocFilter(gCurrentDocTest or cFltNewDoc)+&quot; &quot;+ cMessageSaveOpen8Doc, not IsNull (oDoc) )
323             if not IsNull (oDoc) then
324                 gCurrentTestCase = cDocClose
325                 oDoc.close (true)
326             end If
327         end if
329         gCurrentTestCase = cDocMacros
330         &apos; Just one calc macro test for now
331         &apos; To-Do split this into its own per-module/test .xml and add more
332         if bMakeMacrosTest and gCurrentDocTest = frmCalc then
333             oDoc = LoadDoc (&quot;private:factory/&quot; + GetDocFilter(gCurrentDocTest or cFltNewDoc))
334             oDocCtrl = oDoc.getCurrentController()
335             oDocFrame = oDocCtrl.getFrame()
336             oDispatcher = createUnoService(&quot;com.sun.star.frame.DispatchHelper&quot;)
338             dim args(0) as new com.sun.star.beans.PropertyValue
340             args(0).Name = &quot;ToPoint&quot;
341             args(0).Value = &quot;$A$1&quot;
342             oDispatcher.executeDispatch(oDocFrame, &quot;.uno:GoToCell&quot;, &quot;&quot;, 0, args())
343             args(0).Name = &quot;By&quot;
344             args(0).Value = 5
345             oDispatcher.executeDispatch(oDocFrame, &quot;.uno:GoRightSel&quot;, &quot;&quot;, 0, args())
346             args(0).Name = &quot;By&quot;
347             args(0).Value = 5
348             oDispatcher.executeDispatch(oDocFrame, &quot;.uno:GoDownSel&quot;, &quot;&quot;, 0, args())
350             oRangeAddr = oDoc.getCurrentSelection().getRangeAddress()
352             bResult = oRangeAddr.StartColumn = 0 and oRangeAddr.EndColumn = 5 and oRangeAddr.StartRow = 0 and oRangeAddr.EndRow = 5
354             LogTestResult( GetDocFilter(gCurrentDocTest or cFltNewDoc)+&quot; &quot;+ cMessageRunMacros, bResult )
356             if not IsNull (oDoc) then
357                 gCurrentTestCase = cDocClose
358                 oDoc.close (true)
359             end If
360         end if
362     end If
363     Print #LocalTestLog, &quot;---&quot;
364     Close #LocalTestLog%
365     LocalTestLog = 0
366     Exit Sub &apos; Without error
368     DOCTESTERROR:
369     If ( gCurrentTestCase = cLogfileFailed ) then
370         LogTestResult( &quot; &quot;, False )
371         Exit Sub
372     else
373         LogTestResult( GetDocFilter(gCurrentDocTest or cFltNewDoc)+&quot; &quot;+ GetErrorMessage(gCurrentTestCase), False )
374         Close #LocalTestLog%
375         LocalTestLog = 0
376     End If
377     Exit Sub &apos; With error
378 End Sub
380 Sub MakeNewDoc
381     DIM oDoc as Object
382     Dim bSuccess as Boolean
383     On Local Error GoTo DOCTESTERROR2
384     gCurrentTestCase = cLogfileFailed
385     LocalTestLog% = OpenLogDat (GetLogFileName(gCurrentDocTest))
386     gCurrentTestCase = cDocNew
387 &apos;  oDoc = Documents.Add(GetDocFilter(gCurrentDocTest))
388     oDoc = LoadDoc (&quot;private:factory/&quot; + GetDocFilter(gCurrentDocTest or cFltNewDoc))
389     LogTestResult( GetDocFilter(gCurrentDocTest or cFltNewDoc)+&quot; &quot;+ cMessageNewDoc, not IsNull (oDoc) )
390     if not IsNull (oDoc) then
391         gCurrentTestCase = cDocClose
392         bSuccess = CloseDoc( oDoc )
393         LogTestResult( GetDocFilter(gCurrentDocTest)+&quot; &quot;+ cMessageCloseDoc, bSuccess )
394     end If
395     Print #LocalTestLog, &quot;---&quot;
396     Close #LocalTestLog%
397     LocalTestLog = 0
398     Exit Sub &apos; Without error
400     DOCTESTERROR2:
401     If ( gCurrentTestCase = cLogfileFailed ) then
402         LogTestResult( &quot; &quot;, False )
403         Exit Sub
404     else
405         LogTestResult( GetDocFilter(gCurrentDocTest or cFltNewDoc)+&quot; &quot;+ GetErrorMessage(gCurrentTestCase), False )
406         Close #LocalTestLog%
407         LocalTestLog = 0
408     End If
409     Exit Sub &apos; With error
410 End Sub
412 Sub MakeChartTest
413     Dim oCharts as Object
414     Dim oDoc as Object
415     Dim oRange(0) as New com.sun.star.table.CellRangeAddress
416     Dim oRect as New com.sun.star.awt.Rectangle
417     const cChartName=&quot;TestChart&quot;
418   Dim bSuccess as Boolean
419   On Local Error GoTo CHARTTESTERROR
420   gCurrentTestCase = cLogfileFailed
421   LocalTestLog% = OpenLogDat (GetLogFileName(gCurrentDocTest))
422   gCurrentTestCase = cDocNew
423   oDoc = LoadDoc (&quot;private:factory/&quot; + GetDocFilter(frmCalc or cFltNewDoc))
424     if not IsNull (oDoc) then
425         oCharts = oDoc.sheets(0).Charts
426         oCharts.AddNewByName (cChartName, oRect, oRange(), true, true)
427         bSuccess=oCharts.HasByName(cChartName)
428         LogTestResult( GetDocFilter(gCurrentDocTest or cFltNewDoc)+&quot; &quot;+ cMessageNewDoc, bSuccess )
429         gCurrentTestCase = cDocClose
430         oDoc.close (true)
431     else
432         LogTestResult( GetDocFilter(frmCalc or cFltNewDoc)+&quot; &quot;+ cMessageNewDoc, FALSE )
433     End if
434     Print #LocalTestLog, &quot;---&quot;
435     Close #LocalTestLog%
436     LocalTestLog = 0
437     Exit Sub &apos; Without error
439     CHARTTESTERROR:
440     If ( gCurrentTestCase = cLogfileFailed ) then
441         LogTestResult( &quot; &quot;, False )
442         Exit Sub
443     else
444         LogTestResult( GetDocFilter(gCurrentDocTest or cFltNewDoc)+&quot; &quot;+ GetErrorMessage(gCurrentTestCase), FALSE )
445         Close #LocalTestLog%
446         LocalTestLog = 0
447     End If
448     Exit Sub &apos; With error
449 End Sub
451 Sub LogState (bState as Boolean, sText as String, nLocaleFileChannel as integer)
452     if bState then
453         Print #nLocaleFileChannel, sText+&quot; -&gt; ok&quot;
454     else
455         Print #nLocaleFileChannel, sText+&quot; -&gt; error&quot;
456     end If
457 end Sub
459 Function GetDocEndings (DocType as Integer) as String
460     Select Case ( DocType )
461         case frmWriter or cFlt8
462             GetDocEndings = &quot;odt&quot; &apos; Textdokument
463         case frmCalc or cFlt8
464             GetDocEndings = &quot;ods&quot; &apos;Tabellendokument
465         case frmImpress or cFlt8
466             GetDocEndings = &quot;odp&quot; &apos;PrĂ•sentation
467         case frmDraw or cFlt8
468             GetDocEndings = &quot;odg&quot; &apos;Zeichen
469         case frmHyperText, frmHyperText or cFltXML
470             GetDocEndings = &quot;html&quot; &apos;Hypertext-Dokument
471         case frmWriter or cFltXML
472             GetDocEndings = &quot;sxw&quot; &apos; Textdokument
473         case frmCalc or cFltXML
474             GetDocEndings = &quot;sxc&quot; &apos;Tabellendokument
475         case frmImpress or cFltXML
476             GetDocEndings = &quot;sxi&quot; &apos;PrĂ•sentation
477         case frmDraw or cFltXML
478             GetDocEndings = &quot;sxd&quot; &apos;Zeichen
479         case else
480             GetDocEndings = &quot;&quot;
481     end Select
482 end Function
484 Function GetDocFilter (DocType as Integer) as String
485     Select Case ( DocType )
486         case frmWriter or cFlt8
487             GetDocFilter = &quot;writer8&quot; &apos; text document
488         case frmCalc or cFlt8
489             GetDocFilter = &quot;calc8&quot; &apos; spreadsheet document
490         case frmImpress or cFlt8
491             GetDocFilter = &quot;impress8&quot; &apos; presentation
492         case frmDraw or cFlt8
493             GetDocFilter = &quot;draw8&quot; &apos; drawing
494         case frmMath or cFlt8
495             GetDocFilter = &quot;math8&quot; &apos; formula
497         case frmWriter or cFltXML
498             GetDocFilter = &quot;StarOffice XML (Writer)&quot; &apos; text document
499         case frmCalc or cFltXML
500             GetDocFilter = &quot;StarOffice XML (Calc)&quot; &apos; spreadsheet document
501         case frmImpress or cFltXML
502             GetDocFilter = &quot;StarOffice XML (Impress)&quot; &apos; presentation
503         case frmDraw or cFltXML
504             GetDocFilter = &quot;StarOffice XML (Draw)&quot; &apos; drawing
505         case frmMath or cFltXML
506             GetDocFilter = &quot;StarOffice XML (Math)&quot; &apos; formula
508         case frmHyperText, frmHyperText or cFltXML
509             GetDocFilter = &quot;HTML&quot; &apos; HTML document
511         case frmWriter or cFltNewDoc
512             GetDocFilter = &quot;swriter&quot; &apos; text document
513         case frmCalc or cFltNewDoc
514             GetDocFilter = &quot;scalc&quot; &apos; spreadsheet document
515         case frmImpress or cFltNewDoc
516             GetDocFilter = &quot;simpress&quot; &apos; presentation
517         case frmDraw or cFltNewDoc
518             GetDocFilter = &quot;sdraw&quot; &apos; drawing
519         case frmMath or cFltNewDoc
520             GetDocFilter = &quot;smath&quot; &apos; formula
521         case frmHyperText or cFltNewDoc
522             GetDocFilter = &quot;swriter/web&quot; &apos; HTML document
523         case frmChart or cFltNewDoc
524             GetDocFilter = &quot;schart&quot; &apos; chart
525         case else
526             GetDocFilter = &quot;&quot;
527     end Select
528 end Function
530 Function GetLogFileName (DocType as Integer) as String
531     Select Case ( DocType )
532         case frmWriter
533             GetLogFileName = sSWLogFileName &apos; text document
534         case frmCalc
535             GetLogFileName = sSCLogFileName &apos; spreadsheet document
536         case frmImpress
537             GetLogFileName = sSDLogFileName &apos; presentation
538         case frmDraw
539             GetLogFileName = sSDrawLogFileName &apos; drawing
540         case frmMath
541             GetLogFileName = sSMathLogFileName &apos; formula
542         case frmHyperText
543             GetLogFileName = sSHptLogFileName &apos; HTML document
544         case frmChart
545             GetLogFileName = sSChartLogFileName &apos; chart
546         case frmJava
547             GetLogFileName = sJavaLogFileName &apos;Java
548         case frmTestClosure
549             GetLogFileName = sTestGlueLogFileName &apos; test framework
550         case frmDataBase
551             GetLogFileName = sSDBLogFileName &apos;Database
552         case frmExtension
553             GetLogFileName = sExtLogFileName &apos;Extension
554         case else
555             GetLogFileName = &quot;&quot;
556     end Select
557 end Function
559 Function GetErrorMessageOnAction (nAction as Integer) as String
560     Select Case ( nAction )
561         case cDocNew
562             GetErrorMessageOnAction = cMessageNewDoc
563         case cDocSaveOpen8
564             GetErrorMessageOnAction = cMessageSaveOpen8Doc
565         case cDocMacros
566             GetErrorMessageOnAction = cMessageRunMacros
567         case cDocClose
568             GetErrorMessageOnAction = cMessageCloseDoc
569         case else
570             GetErrorMessageOnAction = &quot;&quot;
571     end Select
572 end Function
574 Function IsFilterAvailable (FilterType as Integer) as boolean
575     IsFilterAvailable = true
576     if (FilterType = (frmHyperText or cFltXML)) then
577         IsFilterAvailable = false
578     end if
579 End Function
581 Function TestJava
582     Dim oObj as Object
583     gCurrentTestCase = cLogfileFailed
584     LocalTestLog% = OpenLogDat (GetLogFileName(gCurrentDocTest))
585     gCurrentTestCase = cDocNew
586     oObj = createUnoService( cUnoJavaLoader )
587     LogTestResult( &quot;Java &quot;+ cMessageNewDoc, not IsNull (oObj) )
589     Print #LocalTestLog, &quot;---&quot;
590     Close #LocalTestLog%
591     LocalTestLog = 0
593     TestJava = not IsNull (oObj)
594 End Function
596 Sub LoadLibrary( LibName as String )
598     dim args(1)
599     dim arg as new com.sun.star.beans.PropertyValue
600     arg.Name = &quot;LibraryName&quot;
601     arg.Value = LibName
602     args(0) = arg
604     dim url as new com.sun.star.util.URL
605     dim trans as object
606     trans = createUnoService(&quot;com.sun.star.util.URLTransformer&quot; )
607     url.Complete = &quot;slot:6517&quot;
608     trans.parsestrict( url )
610     dim disp as object
611     disp = StarDesktop.currentFrame.queryDispatch( url, &quot;&quot;, 0 )
612     disp.dispatch( url, args() )
614 End Sub
616 Sub LoadDoc (DocName as String) as Object
617     dim trans as object
618     trans = createUnoService(&quot;com.sun.star.util.URLTransformer&quot; )
619     url = createUnoStruct(&quot;com.sun.star.util.URL&quot; )
620     url.Complete = DocName
621     if Left(DocName, 5 ) &lt;&gt; &quot;file:&quot; then
622     trans.parsestrict( url )
623     endif
625     Dim aPropArray(0) as Object
626     aPropArray(0) = CreateUnoStruct(&quot;com.sun.star.beans.PropertyValue&quot;)
627     aPropArray(0).Name = &quot;OpenFlags&quot;
628     aPropArray(0).Value = &quot;S&quot;
630     dim doc as object
631     dim noargs()
632     doc = StarDesktop.loadComponentFromURL( url.Complete, &quot;_blank&quot;, 0, aPropArray() ) &apos; XModel
633     LoadDoc = doc
634 End Sub
636 Sub SaveDoc (DocName as String, oDoc as Object, sFilterName as string )
637     dim trans as object
638     trans = createUnoService(&quot;com.sun.star.util.URLTransformer&quot; )
639     url = createUnoStruct(&quot;com.sun.star.util.URL&quot; )
640     url.Complete = DocName
641     if Left(DocName, 5 ) &lt;&gt; &quot;file:&quot; then
642     trans.parsestrict( url )
643     endif
645     if not (sFilterName = &quot;&quot;) then
646         Dim aPropArray(0) as Object
647         aPropArray(0) = CreateUnoStruct(&quot;com.sun.star.beans.PropertyValue&quot;)
648         aPropArray(0).Name = &quot;FilterName&quot;
649         aPropArray(0).Value = sFilterName
651         oDoc.storeAsURL( url.Complete, aPropArray() )
652     else
653         MessageBox &quot;Filtername is unknown!&quot;
654     end if
655 end Sub
657 Function CloseDoc( oDoc as Object )
658   Dim oListener as Object
659   oListener = CreateUnoListener( "Events.closeListener_", "com.sun.star.util.XCloseListener" )
660   oDoc.addCloseListener( oListener )
662   Events.ResetCloseListenerFlag()
663   oDoc.close( true )
664   closeDoc = Events.HasCloseListenerBeenCalled()
666   if ( Not Events.HasCloseListenerBeenCalled() ) Then
667     &apos; do this only if closing was not successful - otherwise, we'd get a DisposedException
668     oDoc.removeCloseListener( oListener )
669   End If
670 End Function
671 </script:module>