summaryrefslogtreecommitdiff
path: root/qadevOOo/tests/basic/ifc/beans/XMultiPropertyStates/beans_XMultiPropertyStates.xba
diff options
context:
space:
mode:
Diffstat (limited to 'qadevOOo/tests/basic/ifc/beans/XMultiPropertyStates/beans_XMultiPropertyStates.xba')
-rw-r--r--qadevOOo/tests/basic/ifc/beans/XMultiPropertyStates/beans_XMultiPropertyStates.xba183
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) &lt;&gt; 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) &lt;&gt; 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) &lt;&gt; 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>