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_XArrayFormulaRange" 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.sheet.XArrayFormulaRange
46'*************************************************************************
47On Error Goto ErrHndl
48    Dim bOK As Boolean
49    Dim bExpectedException As Boolean
50
51    Test.StartMethod("setArrayFormula()")
52    Test.StartMethod("getArrayFormula()")
53    bOK = true
54
55    if (cObjectName = "sc.ScTableSheetObj") then
56        bExpectedException = true
57        oObj.setArrayFormula("=1+2")
58        wait(1) ' additional operator should exists here to avoid
59                ' resuming on 'else' after exception handling
60    else
61        oObj.setArrayFormula("=1+2")
62        bOK = bOK AND (oObj.getArrayFormula() = "{=1+2}")
63        Out.Log("2")
64    end if
65
66    ' Setting of _empty_ formula should work for all objects.
67    bExpectedException = false
68    oObj.setArrayFormula("")
69    bOK = bOK AND (oObj.getArrayFormula() = "")
70
71    Test.MethodTested("getArrayFormula()", bOK)
72    Test.MethodTested("setArrayFormula()", bOK)
73
74Exit Sub
75ErrHndl:
76    if (bExpectedException) then
77        Out.Log("It doesn't make sense to set formula over whole page.")
78        Out.Log("Expected exception: " &amp; error)
79    else
80        Test.Exception()
81        bOK = false
82    end if
83    resume next
84End Sub
85</script:module>
86