From ed5640d8b587fbcfed7dd7967f3de04b37a76f26 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 11:06:44 +0200 Subject: Adding upstream version 4:7.4.7. Signed-off-by: Daniel Baumann --- .../ifc/datatransfer/_XDataFormatTranslator.java | 68 +++++++++ .../ifc/datatransfer/_XMimeContentTypeFactory.java | 88 +++++++++++ .../ifc/datatransfer/clipboard/_XClipboard.java | 131 +++++++++++++++++ .../ifc/datatransfer/clipboard/_XClipboardEx.java | 46 ++++++ .../clipboard/_XClipboardNotifier.java | 162 +++++++++++++++++++++ .../clipboard/_XFlushableClipboard.java | 47 ++++++ 6 files changed, 542 insertions(+) create mode 100644 qadevOOo/tests/java/ifc/datatransfer/_XDataFormatTranslator.java create mode 100644 qadevOOo/tests/java/ifc/datatransfer/_XMimeContentTypeFactory.java create mode 100644 qadevOOo/tests/java/ifc/datatransfer/clipboard/_XClipboard.java create mode 100644 qadevOOo/tests/java/ifc/datatransfer/clipboard/_XClipboardEx.java create mode 100644 qadevOOo/tests/java/ifc/datatransfer/clipboard/_XClipboardNotifier.java create mode 100644 qadevOOo/tests/java/ifc/datatransfer/clipboard/_XFlushableClipboard.java (limited to 'qadevOOo/tests/java/ifc/datatransfer') diff --git a/qadevOOo/tests/java/ifc/datatransfer/_XDataFormatTranslator.java b/qadevOOo/tests/java/ifc/datatransfer/_XDataFormatTranslator.java new file mode 100644 index 000000000..93213a0d8 --- /dev/null +++ b/qadevOOo/tests/java/ifc/datatransfer/_XDataFormatTranslator.java @@ -0,0 +1,68 @@ +/* + * 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.datatransfer; + +import lib.MultiMethodTest; + +import com.sun.star.datatransfer.DataFlavor; +import com.sun.star.datatransfer.XDataFormatTranslator; +import com.sun.star.uno.Type; + +/** +* Testing com.sun.star.datatransfer.XDataFormatTranslator +* interface methods : +*

+* Test is NOT multithread compliant.

+* @see com.sun.star.datatransfer.XDataFormatTranslator +*/ +public class _XDataFormatTranslator extends MultiMethodTest { + + public XDataFormatTranslator oObj = null; + + /** + * Get a system data type for 'text/html' MIME type.

+ * Has OK status if not null value returned. + */ + public void _getSystemDataTypeFromDataFlavor() { + DataFlavor df = new DataFlavor + ("text/html","HTML-Documents", new Type()); + Object res = oObj.getSystemDataTypeFromDataFlavor(df); + tRes.tested("getSystemDataTypeFromDataFlavor()",res != null); + } + + /** + * Gets data flavor from system data type, which was gotten + * from 'text/html' MIME type.

+ * Has OK status if DataFlavour returned has 'text/html' MIME + * type. + */ + public void _getDataFlavorFromSystemDataType() { + DataFlavor in = new DataFlavor + ("text/html","HTML-Documents", new Type()); + Object res = oObj.getSystemDataTypeFromDataFlavor(in); + DataFlavor out = oObj.getDataFlavorFromSystemDataType(res); + tRes.tested("getDataFlavorFromSystemDataType()", + out.MimeType.equals("text/html")); + } + +} + diff --git a/qadevOOo/tests/java/ifc/datatransfer/_XMimeContentTypeFactory.java b/qadevOOo/tests/java/ifc/datatransfer/_XMimeContentTypeFactory.java new file mode 100644 index 000000000..18b6e9102 --- /dev/null +++ b/qadevOOo/tests/java/ifc/datatransfer/_XMimeContentTypeFactory.java @@ -0,0 +1,88 @@ +/* + * 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.datatransfer; + +import lib.MultiMethodTest; + +import com.sun.star.datatransfer.XMimeContentType; +import com.sun.star.datatransfer.XMimeContentTypeFactory; + +/** +* Testing com.sun.star.datatransfer.XMimeContentTypeFactory +* interface methods : +*

+* Test is multithread compliant.

+* @see com.sun.star.datatransfer.XMimeContentTypeFactory +*/ +public class _XMimeContentTypeFactory extends MultiMethodTest { + + public XMimeContentTypeFactory oObj = null; + + /** + * First tries to create 'image/jpeg' MIME type and checks that + * valid XMimeContentType object was created. + * Second tries to create type with wrong argument and exception + * throwing is checked.

+ * Has OK status if in the first case valid object is + * returned and in the second case IllegalArgumentException + * was thrown. + */ + public void _createMimeContentType() { + boolean result = true ; + XMimeContentType type = null; + + try { + type = oObj.createMimeContentType("image/jpeg") ; + + if (type != null) { + String typeS = type.getFullMediaType() ; + + log.println("MediaType = '" + type.getMediaType() + "'") ; + log.println("MediaSubType = '" + type.getMediaSubtype() + "'") ; + log.println("FullMediaType = '" + typeS + "'") ; + + result = "image/jpeg".equals(typeS) ; + } else { + log.println("!!! Null was returned !!!") ; + result = false ; + } + } catch (com.sun.star.lang.IllegalArgumentException e) { + log.println("Exception occurred : " ) ; + e.printStackTrace(log) ; + result = false ; + } + + if (result == true) { + try { + oObj.createMimeContentType("nosuchtype") ; + + log.println("!!! No exception was thrown on wrong MIME type !!!") ; + result = false ; + } catch (com.sun.star.lang.IllegalArgumentException e) { + log.println("Right exception was thrown." ) ; + } + } + + tRes.tested("createMimeContentType()", result) ; + } +} + + diff --git a/qadevOOo/tests/java/ifc/datatransfer/clipboard/_XClipboard.java b/qadevOOo/tests/java/ifc/datatransfer/clipboard/_XClipboard.java new file mode 100644 index 000000000..95606a684 --- /dev/null +++ b/qadevOOo/tests/java/ifc/datatransfer/clipboard/_XClipboard.java @@ -0,0 +1,131 @@ +/* + * 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.datatransfer.clipboard; + +import lib.MultiMethodTest; +import lib.StatusException; + +import com.sun.star.datatransfer.DataFlavor; +import com.sun.star.datatransfer.XTransferable; +import com.sun.star.datatransfer.clipboard.XClipboard; +import com.sun.star.datatransfer.clipboard.XClipboardOwner; + +/** +* Testing com.sun.star.datatransfer.clipboard.XClipboard +* interface methods : +*

+* Test is NOT multithread compliant.

+* @see com.sun.star.datatransfer.clipboard.XClipboard +*/ +public class _XClipboard extends MultiMethodTest { + + public XClipboard oObj; + + MyTransferable myTransferable1; + MyTransferable myTransferable2; + + /** + * XClipboardOwner interface implementation which + * stores parameters passed to lostOwnership method. + */ + static class MyOwner implements XClipboardOwner { + + public void lostOwnership(XClipboard board, XTransferable contents) { + } + + } + + /** + * Simplest XTransferable interface implementation. + */ + static class MyTransferable implements XTransferable { + public Object getTransferData(DataFlavor dataFlavor) { + return ""; + } + + public com.sun.star.datatransfer.DataFlavor[] getTransferDataFlavors() { + return new DataFlavor[0]; + } + + public boolean isDataFlavorSupported(DataFlavor dataFlavor) { + return false; + } + + } + + /** + * Initially sets the content of the clipboard. + */ + @Override + public void before() { + oObj.setContents(myTransferable1 = new MyTransferable(), new MyOwner()); + } + + /** + * Gets the name of the clipboard.

+ * Has OK status if not null value returned. + */ + public void _getName() { + String name = oObj.getName(); + tRes.tested("getName()", name != null); + } + + /** + * Gets the contents of the clipboard.

+ * Has OK status if the content obtained is equal to content + * set in before method. + */ + public void _getContents() { + tRes.tested("getContents()", oObj.getContents() == myTransferable1); + } + + /** + * Sets new contents for the clipboard. Then checks if it was set, + * and if lostOwnership() notification of the previous + * contents was called with appropriate parameters.

+ * Has OK status if getContents returns the same + * object which is set, and notification was received. + * The following method tests are to be completed successfully before : + *

+ */ + public void _setContents() { + requiredMethod("getContents()"); + myTransferable2 = new MyTransferable(); + + oObj.setContents(myTransferable2, new MyOwner()); + + log.println("sleeping for 1 second"); + + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + log.println("interrupted"); + e.printStackTrace(log); + throw new StatusException("Operation interrupted", e); + } + + tRes.tested("setContents()", oObj.getContents() == myTransferable2); + } +} diff --git a/qadevOOo/tests/java/ifc/datatransfer/clipboard/_XClipboardEx.java b/qadevOOo/tests/java/ifc/datatransfer/clipboard/_XClipboardEx.java new file mode 100644 index 000000000..ecd39fe1b --- /dev/null +++ b/qadevOOo/tests/java/ifc/datatransfer/clipboard/_XClipboardEx.java @@ -0,0 +1,46 @@ +/* + * 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.datatransfer.clipboard; + +import lib.MultiMethodTest; + +import com.sun.star.datatransfer.clipboard.XClipboardEx; + +/** +* Testing com.sun.star.datatransfer.clipboard.XClipboardEx +* interface methods : +*

+* Test is multithread compliant.

+* @see com.sun.star.datatransfer.clipboard.XClipboardEx +*/ +public class _XClipboardEx extends MultiMethodTest { + + public XClipboardEx oObj; + + /** + * Just calls the method.

+ * Has OK status if no runtime exceptions occurred. + */ + public void _getRenderingCapabilities() { + oObj.getRenderingCapabilities(); + tRes.tested("getRenderingCapabilities()", true); + } +} diff --git a/qadevOOo/tests/java/ifc/datatransfer/clipboard/_XClipboardNotifier.java b/qadevOOo/tests/java/ifc/datatransfer/clipboard/_XClipboardNotifier.java new file mode 100644 index 000000000..b26e89333 --- /dev/null +++ b/qadevOOo/tests/java/ifc/datatransfer/clipboard/_XClipboardNotifier.java @@ -0,0 +1,162 @@ +/* + * 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.datatransfer.clipboard; + +import lib.MultiMethodTest; +import lib.StatusException; + +import com.sun.star.datatransfer.DataFlavor; +import com.sun.star.datatransfer.XTransferable; +import com.sun.star.datatransfer.clipboard.ClipboardEvent; +import com.sun.star.datatransfer.clipboard.XClipboard; +import com.sun.star.datatransfer.clipboard.XClipboardListener; +import com.sun.star.datatransfer.clipboard.XClipboardNotifier; +import com.sun.star.datatransfer.clipboard.XClipboardOwner; +import com.sun.star.lang.EventObject; +import com.sun.star.uno.Type; +import com.sun.star.uno.UnoRuntime; + +/** +* Testing com.sun.star.datatransfer.clipboard.XClipboardNotifier +* interface methods : +*

+* The object must also implement XClipboard +* interface.

+* Test is NOT multithread compliant.

+* @see com.sun.star.datatransfer.clipboard.XClipboardNotifier +* @see com.sun.star.datatransfer.clipboard.XClipboard +*/ +public class _XClipboardNotifier extends MultiMethodTest { + + public XClipboardNotifier oObj; + + /** + * XClipboardOwner interface implementation which + * stores parameters passed to lostOwnership method. + */ + static class MyOwner implements XClipboardOwner { + + public void lostOwnership(XClipboard board, XTransferable contents) { + } + } + + /** + * Simplest XTransferable interface implementation + * which supports "text/html" data type. + */ + static class MyTransferable implements XTransferable { + DataFlavor[] supportedFlavors; + + public MyTransferable() { + supportedFlavors = new DataFlavor[] { + new DataFlavor("text/plain", "Plain text", new Type(String.class)) + }; + } + + public Object getTransferData(DataFlavor dataFlavor) { + return ""; + } + + public DataFlavor[] getTransferDataFlavors() { + return supportedFlavors; + } + + public boolean isDataFlavorSupported(DataFlavor dataFlavor) { + return supportedFlavors[0].MimeType.equals(dataFlavor.MimeType); + } + } + + /** + * Implementation of listener which registers its method calls. + */ + class MyClipboardListener implements XClipboardListener { + boolean called = false; + + public void changedContents(ClipboardEvent evt) { + called = true; + } + + public void disposing(EventObject wvt) { + log.println(""); + } + } + + MyClipboardListener myListener; + + /** + * Adds a listener and put a new contents into clipboard.

+ * Has OK status if the listener was called on contents changing. + */ + public void _addClipboardListener() { + oObj.addClipboardListener(myListener = new MyClipboardListener()); + + XClipboard board = UnoRuntime.queryInterface( + XClipboard.class, tEnv.getTestObject()); + + board.setContents(new MyTransferable(), new MyOwner()); + + log.println("sleeping for 1 second"); + + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + log.println("interrupted"); + e.printStackTrace(log); + throw new StatusException("Operation interrupted", e); + } + + tRes.tested("addClipboardListener()", myListener.called); + } + + /** + * Removes the listener and put a new contents into clipboard.

+ * Has OK status if the listener was not called on contents + * changing. + * The following method tests are to be completed successfully before : + *

+ */ + public void _removeClipboardListener() { + try { + requiredMethod("addClipboardListener()"); + myListener.called = false; + } finally { + oObj.removeClipboardListener(myListener); + } + + XClipboard board = UnoRuntime.queryInterface( + XClipboard.class, oObj); + + board.setContents(new MyTransferable(), new MyOwner()); + + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + log.println("interrupted"); + e.printStackTrace(log); + throw new StatusException("Operation interrupted", e); + } + + tRes.tested("removeClipboardListener()", !myListener.called); + } +} diff --git a/qadevOOo/tests/java/ifc/datatransfer/clipboard/_XFlushableClipboard.java b/qadevOOo/tests/java/ifc/datatransfer/clipboard/_XFlushableClipboard.java new file mode 100644 index 000000000..2af4554c7 --- /dev/null +++ b/qadevOOo/tests/java/ifc/datatransfer/clipboard/_XFlushableClipboard.java @@ -0,0 +1,47 @@ +/* + * 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.datatransfer.clipboard; + +import lib.MultiMethodTest; + +import com.sun.star.datatransfer.clipboard.XFlushableClipboard; + +/** +* Testing com.sun.star.datatransfer.clipboard.XFlushableClipboard +* interface methods : +*

+* Test is multithread compliant.

+* @see com.sun.star.datatransfer.clipboard.XFlushableClipboard +*/ +public class _XFlushableClipboard extends MultiMethodTest { + + public XFlushableClipboard oObj; + + /** + * Just calls the method.

+ * Has OK status if no runtime exceptions occurred. + */ + public void _flushClipboard() { + oObj.flushClipboard(); + tRes.tested("flushClipboard()",true); + } + +} -- cgit v1.2.3