summaryrefslogtreecommitdiffstats
path: root/qadevOOo/tests/java/ifc/script
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 16:51:28 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 16:51:28 +0000
commit940b4d1848e8c70ab7642901a68594e8016caffc (patch)
treeeb72f344ee6c3d9b80a7ecc079ea79e9fba8676d /qadevOOo/tests/java/ifc/script
parentInitial commit. (diff)
downloadlibreoffice-940b4d1848e8c70ab7642901a68594e8016caffc.tar.xz
libreoffice-940b4d1848e8c70ab7642901a68594e8016caffc.zip
Adding upstream version 1:7.0.4.upstream/1%7.0.4upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'qadevOOo/tests/java/ifc/script')
-rw-r--r--qadevOOo/tests/java/ifc/script/_XEventAttacherManager.java492
-rw-r--r--qadevOOo/tests/java/ifc/script/_XInvocationAdapterFactory.java103
-rw-r--r--qadevOOo/tests/java/ifc/script/_XInvocationAdapterFactory2.java105
-rw-r--r--qadevOOo/tests/java/ifc/script/_XTypeConverter.java122
4 files changed, 822 insertions, 0 deletions
diff --git a/qadevOOo/tests/java/ifc/script/_XEventAttacherManager.java b/qadevOOo/tests/java/ifc/script/_XEventAttacherManager.java
new file mode 100644
index 000000000..b0375c257
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/script/_XEventAttacherManager.java
@@ -0,0 +1,492 @@
+/*
+ * 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.script;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.lang.EventObject;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.script.ScriptEvent;
+import com.sun.star.script.ScriptEventDescriptor;
+import com.sun.star.script.XEventAttacherManager;
+import com.sun.star.script.XScriptListener;
+
+/**
+* Testing <code>com.sun.star.script.XEventAttacherManager</code>
+* interface methods :
+* <ul>
+* <li><code> registerScriptEvent()</code></li>
+* <li><code> registerScriptEvents()</code></li>
+* <li><code> revokeScriptEvent()</code></li>
+* <li><code> revokeScriptEvents()</code></li>
+* <li><code> insertEntry()</code></li>
+* <li><code> removeEntry()</code></li>
+* <li><code> getScriptEvents()</code></li>
+* <li><code> attach()</code></li>
+* <li><code> detach()</code></li>
+* <li><code> addScriptListener()</code></li>
+* <li><code> removeScriptListener()</code></li>
+* </ul> <p>
+* @see com.sun.star.script.XEventAttacherManager
+*/
+public class _XEventAttacherManager extends MultiMethodTest {
+
+ /**
+ * oObj filled by MultiMethodTest
+ */
+ public XEventAttacherManager oObj = null;
+
+ private static final int index = 0;
+
+ /**
+ * Test calls the method and stores index of new entry. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown. <p>
+ */
+ public void _insertEntry() {
+ try {
+ oObj.insertEntry(index);
+ tRes.tested("insertEntry()", true);
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("insertEntry(" + index
+ + ") throws unexpected exception "
+ + e.getMessage());
+ e.printStackTrace(log);
+ tRes.tested("insertEntry()", false);
+ }
+ }
+
+ ScriptEventDescriptor desc;
+
+ /**
+ * Test creates <code>ScriptEventDescriptor</code>, registers
+ * the script event and stores the descriptor. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> insertEntry() </code> : to have entry's index</li>
+ * </ul>
+ * @see com.sun.star.script.ScriptEventDescriptor
+ */
+ public void _registerScriptEvent() {
+ requiredMethod("insertEntry()");
+ desc = new ScriptEventDescriptor(
+ "XEventListener1",
+ "disposing", "", "Basic", "");
+
+ try {
+ oObj.registerScriptEvent(index, desc);
+ tRes.tested("registerScriptEvent()", true);
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("registerScriptEvent() throws unexpected exception "
+ + e.getMessage());
+ e.printStackTrace(log);
+ tRes.tested("registerScriptEvent()", false);
+ }
+ }
+
+ ScriptEventDescriptor descs[];
+
+ /**
+ * Test creates array of <code>ScriptEventDescriptor</code>, registers
+ * this script events and stores the descriptors. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> insertEntry() </code> : to have entry's index</li>
+ * </ul>
+ * @see com.sun.star.script.ScriptEventDescriptor
+ */
+ public void _registerScriptEvents() {
+ requiredMethod("insertEntry()");
+ descs = new ScriptEventDescriptor[] {
+ new ScriptEventDescriptor(
+ "XEventListener2",
+ "disposing", "", "Basic", ""),
+ new ScriptEventDescriptor(
+ "XEventListener3",
+ "disposing", "", "Basic", "")
+ };
+
+ try {
+ oObj.registerScriptEvents(index, descs);
+ tRes.tested("registerScriptEvents()", true);
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("registerScriptEvents() throws unexpected exception "
+ + e.getMessage());
+ e.printStackTrace(log);
+ tRes.tested("registerScriptEvents()", false);
+ }
+ }
+
+ /**
+ * Test calls the method and checks returned value. <p>
+ * Has <b> OK </b> status if returned array of descriptors contains
+ * array of descriptors registered by methods <code>registerScriptEvents</code>
+ * and <code>registerScriptEvent</code> and no exceptions were thrown. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> registerScriptEvent() </code> :
+ * to have registered descriptor </li>
+ * <li> <code> registerScriptEvents() </code> :
+ * to have registered descriptors </li>
+ * </ul>
+ */
+ public void _getScriptEvents() {
+ requiredMethod("registerScriptEvent()");
+ requiredMethod("registerScriptEvents()");
+
+ ScriptEventDescriptor[] res;
+
+ try {
+ res = oObj.getScriptEvents(index);
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("registerScriptEvents() throws unexpected exception "
+ + e.getMessage());
+ e.printStackTrace(log);
+ tRes.tested("registerScriptEvents()", false);
+ return;
+ }
+
+ // checking the desc and descs are in script events
+ tRes.tested("getScriptEvents()",
+ contains(res, desc) && containsArray(res, descs));
+
+ log.println("Script events :") ;
+ printEvents(res) ;
+ }
+
+ /**
+ * Method checks that array of descriptors contains the concrete descriptor.
+ * @param container the array of descriptors
+ * @param evt the descriptor which presence in the array is checked
+ * @return true if the descriptor presence in the array
+ */
+ boolean contains(ScriptEventDescriptor[] container,
+ ScriptEventDescriptor evt) {
+ for (int i = 0; i < container.length; i++) {
+ if (equal(container[i], evt)) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * Method checks that one array of descriptors contains
+ * another array of descriptors.
+ * @param container the array of descriptors
+ * @param events the array of descriptors which presence
+ * in array <code>container</code> is checked
+ * @return true if the array <code>events</code> contains in the array
+ * <code>container</code>
+ */
+ boolean containsArray(ScriptEventDescriptor[] container,
+ ScriptEventDescriptor[] events) {
+ for (int i = 0; i < events.length; i++) {
+ if (!contains(container, events[i])) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ /**
+ * Compares descriptor <code>evt1</code> to descriptor <code>evt2</code>.
+ * Two descriptors are considered equal if all their fields are equal.
+ * @return true if the argument is not <code>null</code> and
+ * the descriptors are equal; false otherwise
+ */
+ boolean equal(ScriptEventDescriptor evt1,
+ ScriptEventDescriptor evt2) {
+ return evt1.ListenerType.equals(evt2.ListenerType)
+ && evt1.EventMethod.equals(evt2.EventMethod)
+ && evt1.ScriptType.equals(evt2.ScriptType)
+ && evt1.ScriptCode.equals(evt2.ScriptCode)
+ && evt1.AddListenerParam.equals(evt2.AddListenerParam);
+ }
+
+ /**
+ * Prints fields of descriptor <code>evt</code> to log.
+ * @param evt the descriptor that needs to be printed to log
+ */
+ void printEvent(ScriptEventDescriptor evt) {
+ if (evt == null) {
+ log.println("null");
+ } else {
+ log.println("\"" + evt.ListenerType + "\",\""
+ + evt.EventMethod + "\",\""
+ + evt.ScriptType + "\",\""
+ + evt.ScriptCode + "\",\""
+ + evt.AddListenerParam + "\"");
+ }
+ }
+
+ /**
+ * Prints the descriptors to log.
+ * @param events the array of descriptors that need to be printed to log
+ */
+ void printEvents(ScriptEventDescriptor events[]) {
+ if (events == null) {
+ log.println("null");
+ } else {
+ for (int i = 0; i < events.length; i++) {
+ printEvent(events[i]);
+ }
+ }
+ }
+
+ Object attachedObject;
+
+ /**
+ * Test creates instance of <code>NamingService</code> (arbitrarily),
+ * stores it and attaches it to the entry with index stored in the method
+ * <code>insertEntry()</code>. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> insertEntry() </code> : to have entry's index for attach</li>
+ */
+ public void _attach() {
+ requiredMethod("insertEntry()");
+
+ try {
+ XMultiServiceFactory xMSF = tParam.getMSF();
+ attachedObject = xMSF.createInstance
+ ( "com.sun.star.uno.NamingService" );
+ } catch( com.sun.star.uno.Exception e ) {
+ log.println("com.sun.star.uno.NamingService not available" );
+ e.printStackTrace(log);
+ tRes.tested("attach()", false);
+ return;
+ }
+ if (attachedObject == null) {
+ log.println("com.sun.star.uno.NamingService not available" );
+ tRes.tested("attach()", false);
+ return;
+ }
+
+ try {
+ oObj.attach(index, attachedObject, "param");
+ tRes.tested("attach()", true);
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("attach() throws exception "
+ + e.getMessage());
+ e.printStackTrace(log);
+ tRes.tested("attach()", false);
+ } catch (com.sun.star.lang.ServiceNotRegisteredException e) {
+ log.println("attach() throws exception "
+ + e.getMessage());
+ e.printStackTrace(log);
+ tRes.tested("attach()", false);
+ }
+ }
+
+ /**
+ * Test calls the method for the object that was stored in the method
+ * <code>attach()</code>. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> attach() </code> : to have attached object </li>
+ * </ul>
+ */
+ public void _detach() {
+ requiredMethod("attach()");
+
+ try {
+ oObj.detach(index, attachedObject);
+ tRes.tested("detach()", true);
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("detach() throws unexpected exception "
+ + e.getMessage());
+ e.printStackTrace(log);
+ tRes.tested("detach()", false);
+ }
+ }
+
+ /**
+ * Test revokes script event that was registered by method
+ * <code>registerScriptEvent()</code> and checks that the description
+ * was removed. <p>
+ * Has <b> OK </b> status if description was successfully removed. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> registerScriptEvent() </code> :
+ * to have registered descriptor </li>
+ * </ul>
+ * The following method tests are to be executed before :
+ * <ul>
+ * <li> <code> getScriptEvents() </code> :
+ * this method must be executed first </li>
+ * </ul>
+ */
+ public void _revokeScriptEvent() {
+ requiredMethod("registerScriptEvent()");
+ executeMethod("getScriptEvents()") ;
+
+ try {
+ oObj.revokeScriptEvent(index, desc.ListenerType,
+ desc.EventMethod, "");
+
+ ScriptEventDescriptor[] res = oObj.getScriptEvents(index);
+ // checking that the desc has been removed
+ tRes.tested("revokeScriptEvent()", !contains(res, desc));
+ printEvents(res) ;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("revokeScriptEvent() throws unexpected exception "
+ + e.getMessage());
+ e.printStackTrace(log);
+ tRes.tested("revokeScriptEvent()", false);
+ }
+ }
+
+ /**
+ * Test revokes script events that was registered by method
+ * <code>registerScriptEvents()</code> and checks that the descriptions
+ * were removed. <p>
+ * Has <b> OK </b> status if descriptions were successfully removed. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> revokeScriptEvent() </code> :
+ * this method must be executed first </li>
+ * </ul>
+ * The following method tests are to be executed before :
+ * <ul>
+ * <li> <code> getScriptEvents() </code> :
+ * this method must be executed first </li>
+ * </ul>
+ */
+ public void _revokeScriptEvents() {
+ requiredMethod("revokeScriptEvent()");
+ executeMethod("getScriptEvents()") ;
+
+ try {
+ oObj.revokeScriptEvents(index);
+
+ ScriptEventDescriptor[] res = oObj.getScriptEvents(index);
+ // checking that all events have been removed
+ tRes.tested("revokeScriptEvents()",
+ res == null || res.length == 0);
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("revokeScriptEvents() throws unexpected exception "
+ + e.getMessage());
+ e.printStackTrace(log);
+ tRes.tested("revokeScriptEvents()", false);
+ }
+ }
+
+ /**
+ * Test calls the method with entry's index that was stored in method
+ * <code>insertEntry()</code>. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> insertEntry() </code> :
+ * to have entry's index </li>
+ */
+ public void _removeEntry() {
+ requiredMethod("insertEntry()");
+ try {
+ oObj.removeEntry(index);
+ tRes.tested("removeEntry()", true);
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("removeEntry(" + index
+ + ") throws unexpected exception "
+ + e.getMessage());
+ e.printStackTrace(log);
+ tRes.tested("removeEntry()", false);
+ }
+ }
+
+ XScriptListener listener;
+
+ /**
+ * Test creates object that supports interface <code>XScriptListener</code>,
+ * stores it and adds this scripts listener. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown. <p>
+ * @see com.sun.star.script.XScriptListener
+ */
+ public void _addScriptListener() {
+ listener = new MyScriptListener();
+
+ try {
+ oObj.addScriptListener(listener);
+ tRes.tested("addScriptListener()", true);
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("addScriptListener() throws unexpected exception "
+ + e.getMessage());
+ e.printStackTrace(log);
+ tRes.tested("addScriptListener()", false);
+ }
+ }
+
+ /**
+ * Test removes script listener that was stored in method
+ * <code>addScriptListener()</code>. <p>
+ * Has <b> OK </b> status if the method successfully returns
+ * and no exceptions were thrown. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> addScriptListener() </code> :
+ * to have script listener </li>
+ * </ul>
+ */
+ public void _removeScriptListener() {
+ requiredMethod("addScriptListener()");
+
+ try {
+ oObj.removeScriptListener(listener);
+ tRes.tested("removeScriptListener()", true);
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("removeScriptListener() throws unexpected exception "
+ + e.getMessage());
+ e.printStackTrace(log);
+ tRes.tested("removeScriptListener()", false);
+ }
+ }
+
+ /**
+ * Class implement interface <code>XScriptListener</code>
+ * for test of the method <code>addScriptListener()</code>.
+ * No functionality implemented.
+ * @see com.sun.star.script.XScriptListener
+ */
+ static class MyScriptListener implements XScriptListener {
+ public void firing(ScriptEvent evt) {
+ }
+
+ public Object approveFiring(ScriptEvent evt) {
+ return evt.Helper;
+ }
+
+ public void disposing(EventObject evt) {
+ }
+ }
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/script/_XInvocationAdapterFactory.java b/qadevOOo/tests/java/ifc/script/_XInvocationAdapterFactory.java
new file mode 100644
index 000000000..1475b7380
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/script/_XInvocationAdapterFactory.java
@@ -0,0 +1,103 @@
+/*
+ * 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.script;
+
+import lib.MultiMethodTest;
+import lib.StatusException;
+
+import com.sun.star.io.XInputStream;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.lang.XSingleServiceFactory;
+import com.sun.star.script.XInvocation;
+import com.sun.star.script.XInvocationAdapterFactory;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+* Testing <code>com.sun.star.script.XInvocationAdapterFactory</code>
+* interface methods :
+* <ul>
+* <li><code> createAdapter()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.script.XInvocationAdapterFactory
+*/
+public class _XInvocationAdapterFactory extends MultiMethodTest {
+
+ /**
+ * oObj filled by MultiMethodTest
+ */
+ public XInvocationAdapterFactory oObj = null;
+
+ /**
+ * First an invocation object of <code>com.sun.star.io.Pipe</code>
+ * instance is created using <code>com.sun.star.script.Invocation
+ * </code> service. Then trying to create an adapter of this
+ * invocation for <code>com.sun.star.io.XInputStream</code>
+ * interface. <p>
+ * Has <b>OK</b> status if the adapter returned is successfully
+ * queried for <code>com.sun.star.io.XInputStream</code>
+ * interface.
+ * @see com.sun.star.script.Invocation
+ * @see com.sun.star.script.XInvocation
+ * @see com.sun.star.io.Pipe
+ */
+ public void _createAdapter() {
+ XInvocation xInv = null ;
+ XMultiServiceFactory xMSF = null;
+ try {
+ xMSF = tParam.getMSF();
+ Object[] args = {xMSF.createInstance
+ ("com.sun.star.io.Pipe")};
+
+ Object oInvFac = xMSF.createInstance
+ ("com.sun.star.script.Invocation") ;
+
+ XSingleServiceFactory xInvFac = UnoRuntime.
+ queryInterface(XSingleServiceFactory.class, oInvFac) ;
+
+ Object oInv = xInvFac.createInstanceWithArguments(args) ;
+
+ xInv = UnoRuntime.queryInterface
+ (XInvocation.class, oInv) ;
+
+ } catch (com.sun.star.uno.Exception e) {
+ e.printStackTrace(log) ;
+ throw new StatusException("Can't create invocation for object", e) ;
+ }
+
+ XInterface xInStr = null ;
+
+ Object adp = oObj.createAdapter(xInv,
+ new Type(XInputStream.class)) ;
+
+ xInStr = UnoRuntime.queryInterface
+ (XInputStream.class, adp) ;
+
+
+ if (xInStr != null)
+ tRes.tested("createAdapter()", true) ;
+ else {
+ log.println("Adapter created doesn't implement required interface") ;
+ tRes.tested("createAdapter()", false) ;
+ }
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/script/_XInvocationAdapterFactory2.java b/qadevOOo/tests/java/ifc/script/_XInvocationAdapterFactory2.java
new file mode 100644
index 000000000..ba38e2e72
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/script/_XInvocationAdapterFactory2.java
@@ -0,0 +1,105 @@
+/*
+ * 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.script;
+
+import lib.MultiMethodTest;
+import lib.StatusException;
+
+import com.sun.star.io.XInputStream;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.lang.XSingleServiceFactory;
+import com.sun.star.script.XInvocation;
+import com.sun.star.script.XInvocationAdapterFactory2;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+
+/**
+* Testing <code>com.sun.star.script.XInvocationAdapterFactory</code>
+* interface methods :
+* <ul>
+* <li><code> createAdapter()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.script.XInvocationAdapterFactory
+*/
+public class _XInvocationAdapterFactory2 extends MultiMethodTest {
+
+ /**
+ * oObj filled by MultiMethodTest
+ */
+ public XInvocationAdapterFactory2 oObj = null;
+
+ /**
+ * First an invocation object of <code>com.sun.star.io.Pipe</code>
+ * instance is created using <code>com.sun.star.script.Invocation
+ * </code> service. Then trying to create an adapter of this
+ * invocation for <code>com.sun.star.io.XInputStream</code>
+ * interface. <p>
+ * Has <b>OK</b> status if the adapter returned is successfully
+ * queried for <code>com.sun.star.io.XInputStream</code>
+ * interface.
+ * @see com.sun.star.script.Invocation
+ * @see com.sun.star.script.XInvocation
+ * @see com.sun.star.io.Pipe
+ */
+ public void _createAdapter() {
+ XInvocation xInv = null ;
+ XMultiServiceFactory xMSF = null;
+ try {
+ xMSF = tParam.getMSF();
+ Object[] args = {xMSF.createInstance
+ ("com.sun.star.io.Pipe")};
+
+ Object oInvFac = xMSF.createInstance
+ ("com.sun.star.script.Invocation") ;
+
+ XSingleServiceFactory xInvFac = UnoRuntime.
+ queryInterface(XSingleServiceFactory.class, oInvFac) ;
+
+ Object oInv = xInvFac.createInstanceWithArguments(args) ;
+
+ xInv = UnoRuntime.queryInterface
+ (XInvocation.class, oInv) ;
+
+ } catch (com.sun.star.uno.Exception e) {
+ e.printStackTrace(log) ;
+ throw new StatusException("Can't create invocation for object", e) ;
+ }
+
+ XInterface xInStr = null ;
+
+ Type[] types = new Type[1];
+ types[0] = new Type(XInputStream.class);
+
+ Object adp = oObj.createAdapter(xInv,types);
+
+ xInStr = UnoRuntime.queryInterface
+ (XInputStream.class, adp) ;
+
+
+ if (xInStr != null)
+ tRes.tested("createAdapter()", true) ;
+ else {
+ log.println("Adapter created doesn't implement required interface") ;
+ tRes.tested("createAdapter()", false) ;
+ }
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/script/_XTypeConverter.java b/qadevOOo/tests/java/ifc/script/_XTypeConverter.java
new file mode 100644
index 000000000..3e42a16d9
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/script/_XTypeConverter.java
@@ -0,0 +1,122 @@
+/*
+ * 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.script;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.container.XSet;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.script.XTypeConverter;
+import com.sun.star.uno.Any;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.TypeClass;
+
+/**
+* Testing <code>com.sun.star.script.XTypeConverter</code>
+* interface methods :
+* <ul>
+* <li><code> convertTo()</code></li>
+* <li><code> convertToSimpleType()</code></li>
+* </ul> <p>
+* @see com.sun.star.script.XTypeConverter
+*/
+public class _XTypeConverter extends MultiMethodTest {
+
+ /**
+ * oObj filled by MultiMethodTest
+ */
+ public XTypeConverter oObj = null;
+
+ /**
+ * Test creates instance of <code>TypeDescriptionManager</code>,
+ * and converts it to <code>XSet</code>. <p>
+ * Has <b> OK </b> status if returned value is instance of <code>XSet</code>
+ * and no exceptions were thrown. <p>
+ * @see com.sun.star.comp.stoc.TypeDescriptionManager
+ * @see com.sun.star.container.XSet
+ */
+ public void _convertTo() {
+ XMultiServiceFactory xMSF = tParam.getMSF() ;
+ Object value = null ;
+
+ try {
+ value = xMSF.createInstance
+ ("com.sun.star.comp.stoc.TypeDescriptionManager") ;
+ } catch (com.sun.star.uno.Exception e) {
+ log.println("Can't create value to convert") ;
+ e.printStackTrace(log) ;
+ tRes.tested("convertTo()", false) ;
+ }
+
+ try {
+ Type destType = new Type(XSet.class) ;
+
+ Object o = oObj.convertTo(value, destType);
+
+ boolean result;
+ if (o instanceof Any) {
+ result = ((Any)o).getType().equals(destType);
+ }
+ else {
+ result = (o instanceof XSet);
+ }
+
+ tRes.tested("convertTo()", result) ;
+ } catch (com.sun.star.script.CannotConvertException e) {
+ log.println("Exception while converting value.") ;
+ e.printStackTrace(log) ;
+ tRes.tested("convertTo()", false) ;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Exception while converting value.") ;
+ e.printStackTrace(log) ;
+ tRes.tested("convertTo()", false) ;
+ }
+ }
+
+ /**
+ * Test creates instance of <code>Integer</code>,
+ * and converts it to <code>String</code>. <p>
+ * Has <b> OK </b> status if returned value is instance of <code>String</code>,
+ * if returned value is string representation of integer value that
+ * was passed to method and no exceptions were thrown. <p>
+ */
+ public void _convertToSimpleType() {
+ Object value = Integer.valueOf(123) ;
+ Object destValue = null ;
+
+ try {
+ destValue = oObj.convertToSimpleType(value, TypeClass.STRING) ;
+ } catch (com.sun.star.script.CannotConvertException e) {
+ log.println("Exception while converting value.") ;
+ e.printStackTrace(log) ;
+ tRes.tested("convertToSimpleType()", false) ;
+ return ;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Exception while converting value.") ;
+ e.printStackTrace(log) ;
+ tRes.tested("convertToSimpleType()", false) ;
+ return ;
+ }
+
+ tRes.tested("convertToSimpleType()", destValue != null &&
+ destValue instanceof String &&
+ ((String) destValue).equals("123")) ;
+ }
+}
+