'************************************************************************* ' ' 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 " & nAllProps & " 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 " & 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 < 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 < 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 < 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 < 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 '" & AllPropsNames(n) & "' FAILED.") else Out.Log("getPropertyState() for property '" & AllPropsNames(n) & "' is OK") end if bOK = true aValue = oObj.getPropertyDefault(AllPropsNames(n)) bTypesEq = false if (bOK AND (TypeName(aValue) <> "Empty")) then bTypesEq = (oProperties(n).Type.Name = oCoreRefl.getType(aValue).Name) end if if (NOT bOK) then ' exception has occurred Out.Log("Error while testing getPropertyDefault() for '" & AllPropsNames(n) & "' FAILED.") elseif ((TypeName(aValue) <> "Empty") AND (NOT bTypesEq)) then Out.Log("Types: '" & oProperties(n).Type.Name & "' and '" & oCoreRefl.getType(aValue).Name & "' are different.") else Out.Log("getPropertyDefault() for property '" & AllPropsNames(n) & "' is OK") end if n = n + 1 wend Exit Sub ErrHndl: Test.Exception() bOK = false resume next End Sub