summaryrefslogtreecommitdiffstats
path: root/qadevOOo/tests/java/ifc/beans/_XMultiPropertyStates.java
diff options
context:
space:
mode:
Diffstat (limited to 'qadevOOo/tests/java/ifc/beans/_XMultiPropertyStates.java')
-rw-r--r--qadevOOo/tests/java/ifc/beans/_XMultiPropertyStates.java227
1 files changed, 227 insertions, 0 deletions
diff --git a/qadevOOo/tests/java/ifc/beans/_XMultiPropertyStates.java b/qadevOOo/tests/java/ifc/beans/_XMultiPropertyStates.java
new file mode 100644
index 000000000..884fb27af
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/beans/_XMultiPropertyStates.java
@@ -0,0 +1,227 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+
+package ifc.beans;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.beans.Property;
+import com.sun.star.beans.PropertyAttribute;
+import com.sun.star.beans.PropertyState;
+import com.sun.star.beans.XMultiPropertyStates;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.beans.XPropertySetInfo;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+* Testing <code>com.sun.star.beans.XMultiPropertyStates</code>
+* interface methods :
+* <ul>
+* <li><code> getPropertyStates()</code></li>
+* <li><code> setAllPropertiesToDefault()</code></li>
+* <li><code> getPropertyValues()</code></li>
+* <li><code> setPropertiesToDefault()</code></li>
+* <li><code> getPropertyDefaults()</code></li>
+* </ul>
+* @see com.sun.star.beans.XMultiPropertyStates
+*/
+public class _XMultiPropertyStates extends MultiMethodTest {
+
+ public XMultiPropertyStates oObj = null;
+
+ private PropertyState[] states = null;
+ private String[] names = null;
+
+ @Override
+ public void before() {
+ names = (String[]) tEnv.getObjRelation("PropertyNames");
+ if (names == null) {
+ throw new StatusException(Status.failed("No PropertyNames given"));
+ }
+
+ log.println("Totally " + names.length + " properties encountered:");
+ log.print("{");
+ for (int i = 0; i < names.length; i++)
+ log.print(names[i] + " ");
+ log.print("}");
+ log.println("");
+ }
+
+
+ /**
+ * Test calls the method and checks return value.
+ * <code>PropertyDefaults</code> are stored<p>
+ * Has <b> OK </b> status if the method returns not null value
+ * and no exceptions were thrown. <p>
+ */
+ public void _getPropertyDefaults() {
+ boolean result = false;
+ try {
+ Object[] defaults = oObj.getPropertyDefaults(names);
+ log.println("Number of default values: " + defaults.length);
+ result = defaults.length == names.length;
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ log.println("some properties seem to be unknown: " + e.toString());
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("Wrapped target Exception was thrown: " + e.toString());
+ }
+ tRes.tested("getPropertyDefaults()", result) ;
+ }
+
+ /**
+ * Test calls the method and checks return value.
+ * Has <b> OK </b> status if the method returns not null value
+ * and no exceptions were thrown. <p>
+ */
+ public void _getPropertyStates() {
+ boolean result = false;
+ try {
+ states = oObj.getPropertyStates(names);
+ result = (states != null) && (states.length == names.length);
+ if (states != null) {
+ log.println("Number of states: " + states.length);
+ }
+ else {
+ log.println("Number of states: <null>");
+ }
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ log.println("some properties seem to be unknown: " + e.toString());
+ }
+ tRes.tested("getPropertyStates()", result) ;
+ }
+
+ /**
+ * Test calls the method and checks return value.
+ * Has <b> OK </b> status if the Property
+ * has default state afterwards. <p>
+ */
+ public void _setPropertiesToDefault() {
+ requiredMethod("getPropertyStates()");
+ // 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
+
+ String ro = (String) tEnv.getObjRelation("allReadOnly");
+ if (ro != null) {
+ log.println(ro);
+ tRes.tested("setPropertiesToDefault()",Status.skipped(true));
+ return;
+ }
+
+ boolean mayBeDef = false;
+ String propName = names[0];
+
+ for(int i = 0; i < names.length; i++) {
+ if (!mayBeDef && states[i] != PropertyState.DEFAULT_VALUE ) {
+ propName = names[i];
+ XPropertySet xPropSet = UnoRuntime.queryInterface(XPropertySet.class, oObj);
+ XPropertySetInfo xPropSetInfo = xPropSet.getPropertySetInfo();
+ Property prop = null;
+ try {
+ prop = xPropSetInfo.getPropertyByName(names[i]);
+ }
+ catch(com.sun.star.beans.UnknownPropertyException e) {
+ throw new StatusException(e, Status.failed("couldn't get property info"));
+ }
+ if ( (prop.Attributes & PropertyAttribute.MAYBEDEFAULT) != 0){
+ log.println("Property " + names[i] +
+ " 'may be default' and doesn't have default value");
+ mayBeDef = true;
+ }
+ }
+ }
+ log.println("The property " + propName + " selected");
+
+ boolean result = false;
+ try {
+ String[] the_first = new String[1];
+ the_first[0] = propName;
+ log.println("Setting " + propName + " to default");
+ oObj.setPropertiesToDefault(the_first);
+ result = oObj.getPropertyStates(the_first)[0].equals(PropertyState.DEFAULT_VALUE);
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ log.println("some properties seem to be unknown: " + e.toString());
+ }
+
+ if (!result) {
+ log.println("The property didn't change its state to default ...");
+ if (mayBeDef) {
+ log.println(" ... and it may be default - FAILED");
+ } else {
+ log.println(" ... but it may not be default - OK");
+ result = true;
+ }
+ }
+
+ tRes.tested("setPropertiesToDefault()", result) ;
+ }
+
+ /**
+ * Test calls the method and checks return value.
+ * Has <b> OK </b> status if the all Properties
+ * have default state afterwards. <p>
+ */
+ public void _setAllPropertiesToDefault() {
+ requiredMethod("setPropertiesToDefault()");
+ boolean result = true;
+
+ try {
+ oObj.setAllPropertiesToDefault();
+ } catch(RuntimeException e) {
+ log.println("Ignore Runtime Exception: " + e.getMessage());
+ }
+ log.println("Checking that all properties are now in DEFAULT state" +
+ " excepting may be those which 'can't be default'");
+
+ try {
+ states = oObj.getPropertyStates(names);
+ for (int i = 0; i < states.length; i++) {
+ boolean part_result = states[i].equals
+ (PropertyState.DEFAULT_VALUE);
+ if (!part_result) {
+ log.println("Property '" + names[i] +
+ "' wasn't set to default");
+ XPropertySet xPropSet = UnoRuntime.queryInterface(XPropertySet.class, oObj);
+ XPropertySetInfo xPropSetInfo =
+ xPropSet.getPropertySetInfo();
+ Property prop = xPropSetInfo.getPropertyByName(names[i]);
+ if ( (prop.Attributes &
+ PropertyAttribute.MAYBEDEFAULT) != 0 ) {
+ log.println(" ... and it has MAYBEDEFAULT "+
+ "attribute - FAILED");
+ } else {
+ log.println(" ... but it has no MAYBEDEFAULT "+
+ "attribute - OK");
+ part_result = true;
+ }
+ }
+
+ result &= part_result;
+ }
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ log.println("some properties seem to be unknown: " + e.toString());
+ result=false;
+ }
+
+ tRes.tested("setAllPropertiesToDefault()", result) ;
+ }
+
+}
+