diff options
Diffstat (limited to 'extensions/qa/ole/automationtest.vbs')
-rw-r--r-- | extensions/qa/ole/automationtest.vbs | 132 |
1 files changed, 132 insertions, 0 deletions
diff --git a/extensions/qa/ole/automationtest.vbs b/extensions/qa/ole/automationtest.vbs new file mode 100644 index 000000000..9b5dff05e --- /dev/null +++ b/extensions/qa/ole/automationtest.vbs @@ -0,0 +1,132 @@ +' -*- 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 |