diff options
Diffstat (limited to 'qadevOOo/tests/basic/ifc/beans/XMultiPropertyStates/beans_XMultiPropertyStates.xba')
-rw-r--r-- | qadevOOo/tests/basic/ifc/beans/XMultiPropertyStates/beans_XMultiPropertyStates.xba | 183 |
1 files changed, 183 insertions, 0 deletions
diff --git a/qadevOOo/tests/basic/ifc/beans/XMultiPropertyStates/beans_XMultiPropertyStates.xba b/qadevOOo/tests/basic/ifc/beans/XMultiPropertyStates/beans_XMultiPropertyStates.xba new file mode 100644 index 000000000000..6858ab51a28f --- /dev/null +++ b/qadevOOo/tests/basic/ifc/beans/XMultiPropertyStates/beans_XMultiPropertyStates.xba @@ -0,0 +1,183 @@ +<?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_XMultiPropertyStates" script:language="StarBasic"> + + +'************************************************************************* +' +' DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +' +' Copyright 2000, 2010 Oracle and/or its affiliates. +' +' OpenOffice.org - a multi-platform office productivity suite +' +' This file is part of OpenOffice.org. +' +' OpenOffice.org is free software: you can redistribute it and/or modify +' it under the terms of the GNU Lesser General Public License version 3 +' only, as published by the Free Software Foundation. +' +' OpenOffice.org is distributed in the hope that it will be useful, +' but WITHOUT ANY WARRANTY; without even the implied warranty of +' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +' GNU Lesser General Public License version 3 for more details +' (a copy is included in the LICENSE file that accompanied this code). +' +' You should have received a copy of the GNU Lesser General Public License +' version 3 along with OpenOffice.org. If not, see +' <http://www.openoffice.org/license.html> +' for a copy of the LGPLv3 License. +' +'************************************************************************* +'************************************************************************* + + + +' Be sure that all variables are dimensioned: +option explicit + + +Function getPropNames(xPropSet As Object) As Variant + Dim props As Variant + Dim propNames As Variant + Dim i As Integer, propCount As Integer + + props = xPropSet.getPropertySetInfo().getProperties() + propCount = 0 + for i = 0 to ubound (props) + if (props(i).Attributes AND com.sun.star.beans.PropertyAttribute.READONLY) = 0 _ + then propCount = propCount + 1 + next i + + propNames = DimArray(propCount - 1) + aProps = DimArray(propCount - 1) + + propCount = 0 + for i = 0 to ubound(props) + if (props(i).Attributes AND com.sun.star.beans.PropertyAttribute.READONLY) = 0 then + propNames(propCount) = props(i).Name + aProps(propCount) = props(i) + propCount = propCount + 1 + endif + next i + + getPropNames = propNames +End Function + +Dim aProps As Variant + + +Sub RunTest() + +'************************************************************************* +' INTERFACE: +' com.sun.star.beans.XMultiPropertyStates +'************************************************************************* +On Error Goto ErrHndl + Dim bOK As Boolean + + Dim aPropNames As Variant + Dim aDefaults As Variant + Dim aStates As Variant + + if NOT hasUnoInterfaces(oObj, "com.sun.star.beans.XPropertySet") then + Out.Log("The compoent doesn't support XPropertySet this test must be reviewed !!!") + exit sub + end if + + bOK = true + aPropNames = getPropNames(oObj) + + if NOT utils.isSorted(aPropNames) then + Out.Log("Property names are not sorted : sorting ...") + utils.bubbleSort(aPropNames, false, aProps) + end if + + Out.Log("Totally " + (ubound(aPropNames) + 1) + " properties encountered.") + + Test.StartMethod("getPropertyDefaults()") + + aDefaults = oObj.getPropertyDefaults(aPropNames) + Out.Log("Number of default values: " + (ubound(aDefaults) + 1)) + bOK = ubound(aDefaults) = ubound(aPropNames) + + Test.MethodTested("getPropertyDefaults()", bOK) + + + Test.StartMethod("getPropertyStates()") + bOK = true + + aStates = oObj.getPropertyStates(aPropNames) + Out.Log("Number of states: " + (ubound(aStates) + 1)) + bOK = ubound(aStates) = ubound(aPropNames) + + Test.MethodTested("getPropertyStates()", bOK) + + Test.StartMethod("setPropertiesToDefault()") + bOK = true + + Dim propName As String + Dim propIdx As Integer + Dim mayBeDef As Boolean + Dim i As Integer + propName = aPropNames(0) + propIdx = 0 + mayBeDef = false + + ' searching for property which currently don't have default value and preferable has MAYBEDEFAULT attr + ' if no such properties are found then the first one is selected + for i = 0 to ubound(aPropNames) + if NOT mayBeDef AND aStates(i) <> com.sun.star.beans.PropertyState.DEFAULT_VALUE then + propName = aPropNames(i) + propIdx = i + if (aProps(i).Attributes AND com.sun.star.beans.PropertyAttribute.MAYBEDEFAULT) > 0 then + Out.Log("Property " + propName + " 'may be default' and doesn't have default value") + mayBeDef = true + end if + end if + next i + Out.Log("The property " + propName + " selected") + + oObj.setPropertiesToDefault(Array(propName)) + + aStates = oObj.getPropertyStates(aPropNames) + if aStates(propIdx) <> com.sun.star.beans.PropertyState.DEFAULT_VALUE then + Out.Log("The property didn't change its state to default ...") + if mayBeDef then + Out.Log(" ... and it may be default - FAILED") + bOK = false + else + Out.Log(" ... but it may not be default - OK") + end if + end if + + Test.MethodTested("setPropertiesToDefault()", bOK) + + Test.StartMethod("setAllPropertiesToDefault()") + bOK = true + + oObj.setAllPropertiesToDefault() + + Out.Log("Checking that all properties are now in DEFAULT state excepting may be those which 'cann't be default'") + aStates = oObj.getPropertyStates(aPropNames) + for i = 0 to ubound(aStates) + if aStates(i) <> com.sun.star.beans.PropertyState.DEFAULT_VALUE then + Out.Log("The property " + aPropNames(i) + " didn't change its state to default ...") + if (aProps(i).Attributes AND com.sun.star.beans.PropertyAttribute.MAYBEDEFAULT) > 0 then + Out.Log(" ... and it has MAYBEDEFAULT attribute - FAILED") + bOK = false + else + Out.Log(" ... but it has no MAYBEDEFAULT attribute - OK") + end if + end if + next i + + Test.MethodTested("setAllPropertiesToDefault()", bOK) + +Exit Sub +ErrHndl: + Test.Exception() + bOK = false + resume next +End Sub +</script:module> |