Add a unit test for the Automation client services
Written in VBScript, yay. Change-Id: Ibbdba804939c2646aef8f8a2bb3781eaf1a6d208
This commit is contained in:
parent
0cae8eeaae
commit
f9365c47c2
3 changed files with 155 additions and 0 deletions
24
extensions/CustomTarget_automationtest.mk
Normal file
24
extensions/CustomTarget_automationtest.mk
Normal file
|
@ -0,0 +1,24 @@
|
|||
# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
|
||||
#
|
||||
# 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/.
|
||||
#
|
||||
|
||||
$(eval $(call gb_CustomTarget_CustomTarget,extensions/automationtest))
|
||||
|
||||
extensions_AUTOMATIONTESTDIR := $(call gb_CustomTarget_get_workdir,extensions/automationtest)
|
||||
|
||||
extensions_AUTOMATIONTESTLOG := $(extensions_AUTOMATIONTESTDIR)/automationtest.log
|
||||
|
||||
$(call gb_CustomTarget_get_target,extensions/automationtest) : \
|
||||
$(SRCDIR)/extensions/qa/ole/automationtest.vbs \
|
||||
| $(extensions_AUTOMATIONTESTDIR)/.dir
|
||||
$(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),VBS,1) \
|
||||
$(call gb_Helper_abbreviate_dirs, \
|
||||
cscript -nologo $(SRCDIR)/extensions/qa/ole/automationtest.vbs $(SRCDIR)) >$(extensions_AUTOMATIONTESTLOG) || \
|
||||
(cat $(extensions_AUTOMATIONTESTLOG) && exit 1)
|
||||
|
||||
# vim:set shiftwidth=4 tabstop=4 noexpandtab:
|
|
@ -74,6 +74,10 @@ $(eval $(call gb_Module_add_targets,extensions,\
|
|||
Library_oleautobridge \
|
||||
))
|
||||
|
||||
$(eval $(call gb_Module_add_subsequentcheck_targets,extensions,\
|
||||
CustomTarget_automationtest \
|
||||
))
|
||||
|
||||
endif # WNT
|
||||
|
||||
ifeq ($(OS),MACOSX)
|
||||
|
|
127
extensions/qa/ole/automationtest.vbs
Normal file
127
extensions/qa/ole/automationtest.vbs
Normal file
|
@ -0,0 +1,127 @@
|
|||
' -*- 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
|
||||
|
||||
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
|
Loading…
Reference in a new issue