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_XTextSearch" 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' Be sure that all variables are dimensioned: 38option explicit 39 40 41 42Sub RunTest() 43 44'************************************************************************* 45' INTERFACE: 46' com.sun.star.util.XTextSearch 47'************************************************************************* 48On Error Goto ErrHndl 49 Dim bOK As Boolean 50 51 Dim _Locale As new com.sun.star.lang.Locale 52 _Locale.Country = "US" 53 _Locale.Language = "en" 54 55 Test.StartMethod("setOptions()") 56 bOK = true 57 Dim aSearchOptions As new com.sun.star.util.SearchOptions 58 aSearchOptions.algorithmType = com.sun.star.util.SearchAlgorithms.REGEXP 59 aSearchOptions.searchFlag = com.sun.star.util.SearchFlags.ALL_IGNORE_CASE 60 aSearchOptions.searchString = "h[ae](k|l|j)+o" 'Should work because of ALL_IGNORE_CASE! 61 aSearchOptions.Locale = _Locale 62 oObj.setOptions(aSearchOptions) 63 Test.MethodTested("setOptions()", bOK) 64 65 Test.StartMethod("searchForward()") 66 bOK = true 67 Dim _string As String 68 Dim _result As Variant 69 70 _string = "String with 'Hello' and 'Hallo'." 71 _result = oObj.searchForward(_string, 0, len(_string)) 72 if (ubound(_result.startOffset()) >= 0) then 73 bOK = bOK AND _result.startOffset(0) = 13 74 bOK = bOK AND _result.endOffset(0) = 18 75 _result = oObj.searchForward(_string, 18, len(_string)) 76 bOK = bOK AND _result.startOffset(0) = 25 77 bOK = bOK AND _result.endOffset(0) = 30 78 else 79 Out.Log("No matches were found!") 80 bOK = false 81 end if 82 Test.MethodTested("searchForward()", bOK) 83 84 Test.StartMethod("searchBackward()") 85 bOK = true 86 _result = oObj.searchBackward(_string, len(_string), 0) 87 if (ubound(_result.startOffset()) >= 0) then 88 bOK = bOK AND _result.startOffset(0) = 30 89 bOK = bOK AND _result.endOffset(0) = 25 90 _result = oObj.searchBackward(_string, _result.endOffset(0), 0) 91 bOK = bOK AND _result.startOffset(0) = 18 92 bOK = bOK AND _result.endOffset(0) = 13 93 else 94 Out.Log("No matches were found!") 95 bOK = false 96 end if 97 Test.MethodTested("searchBackward()", bOK) 98 99Exit Sub 100ErrHndl: 101 Test.Exception() 102 bOK = false 103 resume next 104End Sub 105</script:module> 106