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