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) &lt;= 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 = " &amp; Max)
102    bOK = bOK AND Max &gt; 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