blob: 8e1b65dc47ac5ff970c7356cac0c9031ac268c96 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
<script:module xmlns:script="http://openoffice.org/2000/script" script:name="beans_XPropertyState" script:language="StarBasic">
'*************************************************************************
'
' Licensed to the Apache Software Foundation (ASF) under one
' or more contributor license agreements. See the NOTICE file
' distributed with this work for additional information
' regarding copyright ownership. The ASF licenses this file
' to you under the Apache License, Version 2.0 (the
' "License"); you may not use this file except in compliance
' with the License. You may obtain a copy of the License at
'
' http://www.apache.org/licenses/LICENSE-2.0
'
' Unless required by applicable law or agreed to in writing,
' software distributed under the License is distributed on an
' "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
' KIND, either express or implied. See the License for the
' specific language governing permissions and limitations
' under the License.
'
'*************************************************************************
Const BOUND = 2
Const CONSTRAINED = 4
Const MAYBENULL = 8
Const READONLY = 16
Sub RunTest()
'*************************************************************************
' INTERFACE:
' com.sun.star.beans.XPropertyState
'*************************************************************************
On Error Goto ErrHndl
Dim bOK As Boolean
Dim oProperties As Variant
Dim nAllProps As Integer
Dim aValue As Variant
Dim n As Integer
Dim oCoreRefl As Object
Dim bTypesEq As Boolean
bOK = true
oCoreRefl = createUnoService("com.sun.star.reflection.CoreReflection")
oProperties = oObj.GetPropertySetInfo().Properties
nAllProps = uBound(oProperties)
Dim AllPropsNames(nAllProps) As String
Out.Log("Found " &amp; nAllProps &amp; " properties.")
for n = 0 to (nAllProps)
AllPropsNames(n) = oProperties(n).Name
next n
Test.StartMethod("getPropertyStates()")
Out.Log("getting states for all properties.")
bOK = true
Dim aStates As Variant
aStates() = oObj.getPropertyStates(AllPropsNames())
bOK = bOK AND isArray(aStates())
if (bOK) then Out.Log("Length of returned array is " &amp; ubound(aStates()))
bOK = bOK AND ubound(aStates()) = nAllProps
Dim nState As Integer
nState = aStates(nAllProps / 2)
bOK = bOK AND (nState = com.sun.star.beans.PropertyState.DIRECT_VALUE OR _
nState = com.sun.star.beans.PropertyState.DEFAULT_VALUE OR _
nState = com.sun.star.beans.PropertyState.AMBIGUOUS_VALUE)
Test.MethodTested("getPropertyStates()", bOK)
Test.StartMethod("getPropertyState()")
bOK = false
n = 0
' Here testing getPropertyState method. Method is OK when at least one
' property works correctly.
while (bOK = false AND n &lt; nAllProps)
bOK = true
nState = oObj.getPropertyState(AllPropsNames(n))
bOK = bOK AND (nState = com.sun.star.beans.PropertyState.DIRECT_VALUE OR _
nState = com.sun.star.beans.PropertyState.DEFAULT_VALUE OR _
nState = com.sun.star.beans.PropertyState.AMBIGUOUS_VALUE)
n = n + 1
wend
Test.MethodTested("getPropertyState()", bOK)
Test.StartMethod("getPropertyDefault()")
bOK = false
n = 0
' Here testing getPropertyDefault method. Method is OK when at least one
' property works correctly.
while (bOK = false AND n &lt; nAllProps)
bOK = true
aValue = oObj.getPropertyDefault(AllPropsNames(n))
bOK = bOK AND (oProperties(n).Type.Name = oCoreRefl.getType(aValue).Name)
n = n + 1
wend
Test.MethodTested("getPropertyDefault()", bOK)
Test.StartMethod("setPropertyToDefault()")
bOK = false
n = 0
' Here testing setPropertyToDefault method. Method is OK when at least one
' property works correctly.
while (bOK = false AND n &lt; nAllProps)
bOK = true
oObj.setPropertyToDefault(AllPropsNames(n))
n = n + 1
wend
Test.MethodTested("setPropertyToDefault()", bOK)
' Here testing getPropertyState for ALL properties. This will
' put all exceptions to .log file (if this method doesn't work with some properties)
' but without any affect to test status.
n = 0
while (n &lt; nAllProps)
bOK = true
nState = oObj.getPropertyState(AllPropsNames(n))
bOK = bOK AND (nState = com.sun.star.beans.PropertyState.DIRECT_VALUE OR _
nState = com.sun.star.beans.PropertyState.DEFAULT_VALUE OR _
nState = com.sun.star.beans.PropertyState.AMBIGUOUS_VALUE)
if (NOT bOK) then
Out.Log("Error while testing getPropertyState() for '" &amp; AllPropsNames(n) &amp; "' FAILED.")
else
Out.Log("getPropertyState() for property '" &amp; AllPropsNames(n) &amp; "' is OK")
end if
bOK = true
aValue = oObj.getPropertyDefault(AllPropsNames(n))
bTypesEq = false
if (bOK AND (TypeName(aValue) &lt;&gt; "Empty")) then
bTypesEq = (oProperties(n).Type.Name = oCoreRefl.getType(aValue).Name)
end if
if (NOT bOK) then ' exception was occured
Out.Log("Error while testing getPropertyDefault() for '" &amp; AllPropsNames(n) &amp; "' FAILED.")
elseif ((TypeName(aValue) &lt;&gt; "Empty") AND (NOT bTypesEq)) then
Out.Log("Types: '" &amp; oProperties(n).Type.Name &amp; "' and '" &amp; oCoreRefl.getType(aValue).Name &amp; "' are different.")
else
Out.Log("getPropertyDefault() for property '" &amp; AllPropsNames(n) &amp; "' is OK")
end if
n = n + 1
wend
Exit Sub
ErrHndl:
Test.Exception()
bOK = false
resume next
End Sub
</script:module>