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