1
0
Fork 0
libreoffice/extensions/qa/ole/automationtest.vbs
Daniel Baumann 8e63e14cf6
Adding upstream version 4:25.2.3.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-22 16:20:04 +02:00

132 lines
3.3 KiB
Text

' -*- tab-width: 4; indent-tabs-mode: nil -*-
If WScript.Arguments.Count <> 1 Then
WScript.Echo "Pass $(SRCDIR) as parameter"
WScript.Quit(1)
End If
srcdir = WScript.Arguments.Item(0)
exitStatus = 0
testCounter = 0
okCounter = 0
Sub ExitWithReport
If okCounter <> testCounter Then
exitStatus = 1
End If
WScript.Echo "OK (" + CStr(okCounter) + ")"
WScript.Quit(exitstatus)
End Sub
Sub CheckFatal(expr)
testCounter = testCounter + 1
If Not Eval(expr) Then
WScript.Echo "FAIL: " & expr
ExitWithReport
Else
WScript.Echo "PASS: " & expr
okCounter = okCounter + 1
End If
End Sub
Sub Check(expr)
testCounter = testCounter + 1
If Not Eval(expr) Then
WScript.Echo "FAIL: " & expr
Else
WScript.Echo "PASS: " & expr
okCounter = okCounter + 1
End If
End Sub
Sub CheckIfExpected(expr, expected)
testCounter = testCounter + 1
actual = Eval(expr)
If actual <> expected Then
WScript.Echo "FAIL: Value of '" & expr & "' was expected to be '" & CStr(expected) & "', but was " & CStr(actual)
Else
WScript.Echo "PASS: " & expr & " == " & CStr(expected)
okCounter = okCounter + 1
End If
End Sub
Sub CheckErrorFatal(test)
testCounter = testCounter + 1
Execute(test)
If Err.Number <> 0 Then
WScript.Echo "FAIL: " & test
WScript.Echo "ERROR: " & Err.Description
ExitWithReport
Else
WScript.Echo "PASS: " & test
okCounter = okCounter + 1
End If
End Sub
Sub CheckError(test)
testCounter = testCounter + 1
Execute(test)
If Err.Number <> 0 Then
WScript.Echo "FAIL: " & test
WScript.Echo "ERROR: " & Err.Description
Else
WScript.Echo "PASS: " & test
okCounter = okCounter + 1
End If
End Sub
WScript.Echo "Running Automation client tests"
On Error Resume Next
' FIXME: How can we ever make this work specifically with the
' LibreOffice in instdir, when WScript.CreateObject() wants the
' symbolic name that it then looks up from the Registry to find the
' CLSID of the class?
CheckErrorFatal "Set writer = WScript.CreateObject(""Writer.Application"")"
CheckErrorFatal "writer.Visible = True"
CheckErrorFatal "writer.Caption = ""=== This is Writer ==="""
CheckErrorFatal "writer.ShowMe"
CheckErrorFatal "Set documents = writer.Documents"
' Open two randomly chosen documents
CheckErrorFatal "Set d1 = documents.Open(""" & srcdir & "/sw/qa/extras/ww8export/data/n325936.doc"")"
CheckErrorFatal "Set d2 = documents.Open(""" & srcdir & "/sw/qa/extras/ww8export/data/bnc636128.doc"")"
CheckErrorFatal "n1 = d1.FullName"
CheckErrorFatal "n2 = d2.FullName"
CheckIfExpected "n1", "n325936.doc"
CheckIfExpected "n2", "bnc636128.doc"
CheckErrorFatal "Set c1 = d1.Content"
CheckErrorFatal "Set c2 = d2.Content"
' The range of characters in these documents
CheckIfExpected "c1.Start", 0
CheckIfExpected "c1.End", 4
CheckIfExpected "c2.Start", 0
CheckIfExpected "c2.End", 42
' Check number of paragraphs in each document
CheckErrorFatal "Set p1 = d1.Paragraphs"
nparas = 0
For Each i in p1
nparas = nparas + 1
Next
CheckIfExpected "nparas", 1
CheckErrorFatal "Set p2 = d2.Paragraphs"
nparas = 0
For Each i in p2
nparas = nparas + 1
Next
CheckIfExpected "nparas", 1
CheckErrorFatal "writer.Quit"
ExitWithReport