1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
3<script:module xmlns:script="http://openoffice.org/2000/script" script:name="util_XSearchable" script:language="StarBasic">
4
5
6'*************************************************************************
7'
8' DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
9'
10' Copyright 2000, 2010 Oracle and/or its affiliates.
11'
12' OpenOffice.org - a multi-platform office productivity suite
13'
14' This file is part of OpenOffice.org.
15'
16' OpenOffice.org is free software: you can redistribute it and/or modify
17' it under the terms of the GNU Lesser General Public License version 3
18' only, as published by the Free Software Foundation.
19'
20' OpenOffice.org is distributed in the hope that it will be useful,
21' but WITHOUT ANY WARRANTY; without even the implied warranty of
22' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
23' GNU Lesser General Public License version 3 for more details
24' (a copy is included in the LICENSE file that accompanied this code).
25'
26' You should have received a copy of the GNU Lesser General Public License
27' version 3 along with OpenOffice.org.  If not, see
28' <http://www.openoffice.org/license.html>
29' for a copy of the LGPLv3 License.
30'
31'*************************************************************************
32*****
33'*************************************************************************
34
35
36
37'*************************************************************************
38' This Interface/Service test depends on the following GLOBAL variables,
39' which must be specified in the object creation:
40
41'     - Global cStringToSearch As String
42'	 should appears more than once
43'     - Global nSearchedEntriesAmount As Integer
44
45'*************************************************************************
46
47
48
49
50
51Sub RunTest()
52
53'*************************************************************************
54' INTERFACE:
55' com.sun.star.util.XSearchable
56'*************************************************************************
57On Error Goto ErrHndl
58    Dim bOK As Boolean
59
60    Dim oMatch As Object
61    Dim oAllMatch As Object
62    Dim oSearchDescriptor As Object
63    Dim nCount As Long
64
65    Test.StartMethod("createSearchDescriptor()")
66    bOK = true
67    oSearchDescriptor = oObj.createSearchDescriptor()
68    bOK = bOK AND NOT isNULL(oSearchDescriptor)
69    bOK = bOK AND hasUnoInterfaces(oSearchDescriptor, "com.sun.star.util.XSearchDescriptor")
70    Test.MethodTested("createSearchDescriptor()", bOK)
71
72    Out.Log("Setting values to search descriptor")
73    oSearchDescriptor.SearchString = cStringToSearch
74    oSearchDescriptor.SearchWords = false
75    oSearchDescriptor.SearchCaseSensitive = true
76
77    Test.StartMethod("findAll()")
78    bOK = true
79    oAllMatch = oObj.findAll(oSearchDescriptor)
80    bOK = bOK AND hasUnoInterfaces(oAllMatch, "com.sun.star.container.XIndexAccess")
81    for i = 0 to oAllMatch.count - 1
82        bOK = bOK AND oAllMatch.getByIndex(i).String = cStringToSearch
83    next i
84    bOK = bOK AND oAllMatch.count = nSearchedEntriesAmount
85    Test.MethodTested("findAll()", bOK)
86
87    Test.StartMethod("findFirst()")
88    bOK = true
89    oMatch = oObj.findFirst(oSearchDescriptor)
90    bOK = bOK AND oMatch.String = cStringToSearch
91    Test.MethodTested("findFirst()", bOK)
92
93    Test.StartMethod("findNext()")
94    bOK = true
95    nCount = 0
96
97    While NOT isNULL(oMatch)
98        nCount = nCount + 1
99        bOK = bOK AND oMatch.String = cStringToSearch
100        oMatch = oObj.findNext(oMatch.end, oSearchDescriptor)
101    wend
102
103    bOK = bOK AND nSearchedEntriesAmount = nCount
104    Test.MethodTested("findNext()", bOK)
105
106Exit Sub
107ErrHndl:
108    Test.Exception()
109    bOK = false
110    resume next
111End Sub
112</script:module>
113