Registering User-Defined Functions as Test Object Methods
The two functions below illustrate how you can enhance your Test Object Model by either replacing existing test object methods with new ones or by adding new methods to existing test objects. The following example can be found in the UserDefineFunction.vbs file located in the <Installdir>\CodeSamplesPlus folder.
Function SelectRegExp(Obj, patrn, Button, Offset)
dim NumOfItems, i, CurrentValue, regEx, ItemToSelect, oldFilter
' Initialize the regular expression object with the pattern
Set regEx = New RegExp
regEx.Pattern = patrn
regEx.IgnoreCase = False
oldFilter = Reporter.Filter ' save the default setting
Reporter.Filter = 2 ' Send only errors
ItemToSelect = -1
' Retrieve the number of items in the list
NumOfItems = obj.GetROProperty("items count")
For i=0 to NumOfItems-1
CurrentValue = obj.GetItem(i)
If regEx.Test(CurrentValue) Then
If (ItemToSelect <> -1) Then
SelectRegExp = -1 ' item not unique
Reporter.Filter = oldFilter
Exit Function
End If
ItemToSelect = i
End If
Next
Reporter.Filter = oldFilter ' Restore the default setting
' The actual selection
If (ItemToSelect >= 0) Then
SelectRegExp = obj.Select(ItemToSelect, Button, Offset)
Else
SelectRegExp = -1
End If
End Function
SelectItems(Obj, items)
Dim idx, item
If (StrComp(obj.GetROProperty("type"), "select-multiple", 1) = 0) Then
For Each item In items
obj.Select(item)
Next
Else
obj.Select(items(0))
End If
End Function
' Override the Select function of the WinList object
RegisterUserFunc "WinList", "Select", "SelectRegExp"
' Or add the SelectRegExp function to the WinList object
RegisterUserFunc "WinList", "SelectRegExp", "SelectRegExp"
RegisterUserFunc "WinList", "SelectItems", "SelectItems"
' Example of usage:
WinList("mylist").Select "2002.*"
WinList("mylist").SelectItems Array("item1", "item3", "item6")