diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:06:44 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:06:44 +0000 |
commit | ed5640d8b587fbcfed7dd7967f3de04b37a76f26 (patch) | |
tree | 7a5f7c6c9d02226d7471cb3cc8fbbf631b415303 /qadevOOo/tests/java/ifc/form/validation | |
parent | Initial commit. (diff) | |
download | libreoffice-upstream.tar.xz libreoffice-upstream.zip |
Adding upstream version 4:7.4.7.upstream/4%7.4.7upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'qadevOOo/tests/java/ifc/form/validation')
3 files changed, 386 insertions, 0 deletions
diff --git a/qadevOOo/tests/java/ifc/form/validation/_XValidatable.java b/qadevOOo/tests/java/ifc/form/validation/_XValidatable.java new file mode 100644 index 000000000..eec5315ed --- /dev/null +++ b/qadevOOo/tests/java/ifc/form/validation/_XValidatable.java @@ -0,0 +1,76 @@ +/* + * 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.form.validation; + +import com.sun.star.form.validation.XValidatable; +import com.sun.star.form.validation.XValidator; + +import lib.MultiMethodTest; + + +public class _XValidatable extends MultiMethodTest { + public XValidatable oObj; + + public void _getValidator() { + requiredMethod("setValidator()"); + + XValidator xValidator = oObj.getValidator(); + boolean res = xValidator.isValid(Boolean.FALSE); + tRes.tested("getValidator()", res); + } + + public void _setValidator() { + boolean res = false; + + try { + oObj.setValidator(new MyValidator()); + + XValidator xValidator = oObj.getValidator(); + String getting = xValidator.explainInvalid(null); + res = getting.equals("explainInvalid"); + + if (!res) { + log.println("\tExpected: explainInvalid"); + log.println("\tGetting: " + getting); + log.println("FAILED"); + } + } catch (com.sun.star.util.VetoException e) { + e.printStackTrace(); + } + + tRes.tested("setValidator()", res); + } + + public static class MyValidator implements XValidator { + public void addValidityConstraintListener(com.sun.star.form.validation.XValidityConstraintListener xValidityConstraintListener) + throws com.sun.star.lang.NullPointerException { + } + + public String explainInvalid(Object obj) { + return "explainInvalid"; + } + + public boolean isValid(Object obj) { + return true; + } + + public void removeValidityConstraintListener(com.sun.star.form.validation.XValidityConstraintListener xValidityConstraintListener) + throws com.sun.star.lang.NullPointerException { + } + } +}
\ No newline at end of file diff --git a/qadevOOo/tests/java/ifc/form/validation/_XValidatableFormComponent.java b/qadevOOo/tests/java/ifc/form/validation/_XValidatableFormComponent.java new file mode 100644 index 000000000..cb1dd831a --- /dev/null +++ b/qadevOOo/tests/java/ifc/form/validation/_XValidatableFormComponent.java @@ -0,0 +1,229 @@ +/* + * 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.form.validation; + +import com.sun.star.beans.Property; +import com.sun.star.beans.PropertyAttribute; +import com.sun.star.beans.XMultiPropertySet; +import com.sun.star.beans.XPropertySetInfo; +import com.sun.star.form.validation.XFormComponentValidityListener; +import com.sun.star.form.validation.XValidatableFormComponent; +import com.sun.star.uno.UnoRuntime; + +import lib.MultiMethodTest; + +import util.ValueChanger; + +import java.util.StringTokenizer; + + +public class _XValidatableFormComponent extends MultiMethodTest +{ + public XValidatableFormComponent oObj; + protected XFormComponentValidityListener listener = null; + public boolean listenerCalled = false; + private String[] testPropsNames = null; + private int testPropsAmount = 0; + + public void _addFormComponentValidityListener() + { + listener = new MyListener(); + + boolean res = true; + + try + { + oObj.addFormComponentValidityListener(listener); + } + catch (com.sun.star.lang.NullPointerException e) + { + res = false; + e.printStackTrace(); + } + + changeAllProperties(); + res &= listenerCalled; + tRes.tested("addFormComponentValidityListener()", res); + } + + public void _getCurrentValue() + { + oObj.getCurrentValue(); + tRes.tested("getCurrentValue()", true); + } + + public void _isValid() + { + boolean res = oObj.isValid(); + tRes.tested("isValid()", res); + } + + public void _removeFormComponentValidityListener() + { + requiredMethod("isValid()"); + + try + { + oObj.removeFormComponentValidityListener(listener); + } + catch (com.sun.star.lang.NullPointerException e) + { + e.printStackTrace(); + } + + listenerCalled = false; + changeAllProperties(); + tRes.tested("removeFormComponentValidityListener()", true); + } + + protected void changeAllProperties() + { + XMultiPropertySet mProps = + UnoRuntime.queryInterface( + XMultiPropertySet.class, tEnv.getTestObject() + ); + XPropertySetInfo propertySetInfo = mProps.getPropertySetInfo(); + Property[] properties = propertySetInfo.getProperties(); + getPropsToTest(properties); + log.println("Changing all properties"); + + Object[] gValues = mProps.getPropertyValues(testPropsNames); + + for (int i = 0; i < testPropsAmount; i++) + { + Object oldValue = gValues[i]; + + if ( + testPropsNames[i].equals("Value") + || testPropsNames[i].equals("EffectiveValue") + ) + { + oldValue = Integer.valueOf(10); + } + else if (testPropsNames[i].equals("Time")) + { + oldValue = new com.sun.star.util.Time( + 10, (short) 10, (short) 10, (short) 10, false); + } + + Object newValue = ValueChanger.changePValue(oldValue); + gValues[i] = newValue; + } + + try + { + mProps.setPropertyValues(testPropsNames, gValues); + } + catch (com.sun.star.beans.PropertyVetoException e) + { + log.println("Exception occurred while setting properties"); + e.printStackTrace(log); + } + catch (com.sun.star.lang.IllegalArgumentException e) + { + log.println("Exception occurred while setting properties"); + e.printStackTrace(log); + } + catch (com.sun.star.lang.WrappedTargetException e) + { + log.println("Exception occurred while setting properties"); + e.printStackTrace(log); + } + // end of try-catch + } + + //Get the properties being tested + private void getPropsToTest(Property[] properties) + { + StringBuilder sb = new StringBuilder(); + + for (int i = 0; i < properties.length; i++) + { + Property property = properties[i]; + String name = property.Name; + boolean isWritable = + ((property.Attributes & PropertyAttribute.READONLY) == 0); + boolean isNotNull = + ((property.Attributes & PropertyAttribute.MAYBEVOID) == 0); + //these have values that are interfaces we can't change + if ( + name.equals("TextUserDefinedAttributes") + || name.equals("ReferenceDevice") + || name.equals("ParaUserDefinedAttributes") + ) + { + isWritable = false; + } + + if ( + name.equals("Value") || name.equals("Time") + || name.equals("Date") + ) + { + sb = new StringBuilder(name + ";"); + } + + if ( + isWritable && isNotNull && (name.indexOf("Format") < 0) + && !name.equals("Enabled") + ) + { + sb.append(name + ";"); + } + } + + String bound = sb.toString(); + // endfor + + //get an array of bound properties + if (bound.equals("")) + { + bound = "none"; + } + + if (tEnv.getTestCase().getObjectName().indexOf("Formatted") > 0) + { + bound = "EffectiveValue;"; + } + + StringTokenizer ST = new StringTokenizer(bound, ";"); + int nr = ST.countTokens(); + testPropsNames = new String[nr]; + + for (int i = 0; i < nr; i++) + testPropsNames[i] = ST.nextToken(); + + testPropsAmount = nr; + } + + protected class MyListener implements XFormComponentValidityListener + { + public void componentValidityChanged( + com.sun.star.lang.EventObject eventObject + ) + { + System.out.println("componentValidityChanged called"); + listenerCalled = true; + } + + public void disposing(com.sun.star.lang.EventObject eventObject) + { + System.out.println("Listener Disposed"); + } + } +} diff --git a/qadevOOo/tests/java/ifc/form/validation/_XValidityConstraintListener.java b/qadevOOo/tests/java/ifc/form/validation/_XValidityConstraintListener.java new file mode 100644 index 000000000..3c4362758 --- /dev/null +++ b/qadevOOo/tests/java/ifc/form/validation/_XValidityConstraintListener.java @@ -0,0 +1,81 @@ +/* + * 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.form.validation; + +import com.sun.star.form.validation.XValidatable; +import com.sun.star.form.validation.XValidator; +import com.sun.star.form.validation.XValidityConstraintListener; +import com.sun.star.uno.UnoRuntime; + +import lib.MultiMethodTest; + + +public class _XValidityConstraintListener extends MultiMethodTest { + public XValidityConstraintListener oObj; + protected boolean ValidatorCalled = false; + + public void _validityConstraintChanged() { + boolean res = false; + try { + XValidatable xValidatable = UnoRuntime.queryInterface( + XValidatable.class, + tEnv.getTestObject()); + + log.println("adding Validator"); + XValidator xValidator = new MyValidator(); + xValidatable.setValidator(xValidator); + ValidatorCalled = false; + + log.println("calling validityConstraintChanged()"); + oObj.validityConstraintChanged( + new com.sun.star.lang.EventObject()); + res = ValidatorCalled; + } catch (com.sun.star.util.VetoException e) { + e.printStackTrace(); + } + tRes.tested("validityConstraintChanged()",res); + } + + /* + * The validator to add this Listener implementation + * + */ + public class MyValidator implements XValidator { + public void addValidityConstraintListener(com.sun.star.form.validation.XValidityConstraintListener xValidityConstraintListener) + throws com.sun.star.lang.NullPointerException { + log.println("\t Validator::addValidityConstraintListener called"); + } + + public String explainInvalid(Object obj) { + log.println("\t Validator::explainInvalid() called"); + + return "explainInvalid"; + } + + public boolean isValid(Object obj) { + log.println("\t Validator::isValid() called"); + ValidatorCalled = true; + return false; + } + + public void removeValidityConstraintListener(com.sun.star.form.validation.XValidityConstraintListener xValidityConstraintListener) + throws com.sun.star.lang.NullPointerException { + log.println("\t Validator::removeValidityConstraintListener called"); + } + } +}
\ No newline at end of file |