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="sheet_XRecentFunctions" 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' This Interface/Service test depends on the following GLOBAL variables, 41' which must be specified in the object creation: 42 43' - Global AllFunctions As Variant 44 45'************************************************************************* 46 47 48 49 50 51 52Sub RunTest() 53 54'************************************************************************* 55' INTERFACE: 56' com.sun.star.sheet.XRecentFunctions 57'************************************************************************* 58On Error Goto ErrHndl 59 Dim bOK As Boolean 60 Dim recentFunctions As Variant 61 Dim i, j As Integer 62 Dim props As Variant 63 64 65 Test.StartMethod("getRecentFunctionIds()") 66 bOK = true 67 recentFunctions = oObj.getRecentFunctionIds() 68 bOK = bOK AND NOT isNULL(recentFunctions) 69 bOK = bOK AND ubound(recentFunctions) <= oObj.getMaxRecentFunctions 70 for i = 0 to ubound(recentFunctions) - 1 71 for j = i + 1 to ubound(recentFunctions) 72 if recentFunctions(i) = recentFunctions(j) then bOK = false 73 next j 74 next i 75 Test.MethodTested("getRecentFunctionIds()", bOK) 76 77 Test.StartMethod("setRecentFunctionIds()") 78 bOK = true 79 Dim Max As Integer 80 Max = oObj.getMaxRecentFunctions 81 Dim newList(Max) As Integer 82 83 for i = 0 to ubound(newList()) 84 props = AllFunctions.getByIndex(i) 85 for j = 0 to ubound(props()) 86 if props(j).Name = "Id" then 87 newList(i) = props(j).Value 88 exit for 89 end if 90 next j 91 next i 92 93 oObj.setRecentFunctionIds(newList()) 94 bOK = bOK AND (Max = oObj.getMaxRecentFunctions) 95 Test.MethodTested("setRecentFunctionIds()", bOK) 96 97 Test.StartMethod("getMaxRecentFunctions()") 98 bOK = true 99 Max = oObj.getMaxRecentFunctions 100 Out.Log("MaxRecentFunctions = " & Max) 101 bOK = bOK AND Max > 0 102 Test.MethodTested("getMaxRecentFunctions()", bOK) 103 104Exit Sub 105ErrHndl: 106 Test.Exception() 107 bOK = false 108 resume next 109End Sub 110</script:module> 111