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