summaryrefslogtreecommitdiffstats
path: root/qadevOOo/tests/java/ifc/ucb
diff options
context:
space:
mode:
Diffstat (limited to 'qadevOOo/tests/java/ifc/ucb')
-rw-r--r--qadevOOo/tests/java/ifc/ucb/_XCachedContentResultSetFactory.java106
-rw-r--r--qadevOOo/tests/java/ifc/ucb/_XCachedContentResultSetStubFactory.java104
-rw-r--r--qadevOOo/tests/java/ifc/ucb/_XCachedDynamicResultSetFactory.java114
-rw-r--r--qadevOOo/tests/java/ifc/ucb/_XCachedDynamicResultSetStubFactory.java174
-rw-r--r--qadevOOo/tests/java/ifc/ucb/_XCommandProcessor.java234
-rw-r--r--qadevOOo/tests/java/ifc/ucb/_XCommandProcessor2.java41
-rw-r--r--qadevOOo/tests/java/ifc/ucb/_XContentIdentifierFactory.java67
-rw-r--r--qadevOOo/tests/java/ifc/ucb/_XContentProvider.java130
-rw-r--r--qadevOOo/tests/java/ifc/ucb/_XContentProviderFactory.java51
-rw-r--r--qadevOOo/tests/java/ifc/ucb/_XContentProviderManager.java275
-rw-r--r--qadevOOo/tests/java/ifc/ucb/_XDataContainer.java126
-rw-r--r--qadevOOo/tests/java/ifc/ucb/_XFileIdentifierConverter.java90
-rw-r--r--qadevOOo/tests/java/ifc/ucb/_XParameterizedContentProvider.java84
-rw-r--r--qadevOOo/tests/java/ifc/ucb/_XPropertyMatcherFactory.java62
-rw-r--r--qadevOOo/tests/java/ifc/ucb/_XPropertySetRegistryFactory.java50
-rw-r--r--qadevOOo/tests/java/ifc/ucb/_XRemoteContentProviderAcceptor.java89
-rw-r--r--qadevOOo/tests/java/ifc/ucb/_XRemoteContentProviderActivator.java69
-rw-r--r--qadevOOo/tests/java/ifc/ucb/_XSimpleFileAccess.java539
-rw-r--r--qadevOOo/tests/java/ifc/ucb/_XSimpleFileAccess2.java70
-rw-r--r--qadevOOo/tests/java/ifc/ucb/_XSortedDynamicResultSetFactory.java150
20 files changed, 2625 insertions, 0 deletions
diff --git a/qadevOOo/tests/java/ifc/ucb/_XCachedContentResultSetFactory.java b/qadevOOo/tests/java/ifc/ucb/_XCachedContentResultSetFactory.java
new file mode 100644
index 000000000..d3174d926
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ucb/_XCachedContentResultSetFactory.java
@@ -0,0 +1,106 @@
+/*
+ * 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.ucb;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.sdbc.XResultSet;
+import com.sun.star.ucb.XCachedContentResultSetFactory;
+
+/**
+* Testing <code>com.sun.star.ucb.XCachedContentResultSetFactory</code>
+* interface methods :
+* <ul>
+* <li><code> createCachedContentResultSet()</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'CachedContentResultSetStub'</code> (of type
+* <code>com.sun.star.sdbc.XResultSet</code>):
+* this must be an implementation of <code>
+* com.sun.star.ucb.CachedContentResultSetStub</code> service.</li>
+* <ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.ucb.XCachedContentResultSetFactory
+*/
+public class _XCachedContentResultSetFactory extends MultiMethodTest {
+
+ /**
+ * Contains the tested object.
+ */
+ public XCachedContentResultSetFactory oObj;
+ private XResultSet resSetStub = null ;
+
+ /**
+ * Retrieves object relation.
+ * @throws StatusException If relation not found.
+ */
+ @Override
+ public void before() {
+ resSetStub = (XResultSet)
+ tEnv.getObjRelation("CachedContentResultSetStub") ;
+ if (resSetStub == null) {
+ log.println("!!! Relation not found !!!") ;
+ throw new StatusException
+ (Status.failed("!!! Relation not found !!!")) ;
+ }
+ }
+
+ /**
+ * Creates result set from result set stub. After that number
+ * of rows from result set created and its stub are retrieved
+ * using their static representations and comared. <p>
+ * Has <b>OK</b> status if numbers of rows are equal and they are
+ * greater than 0 (because JAR file contains at least one entry).
+ */
+ public void _createCachedContentResultSet() {
+ boolean result = true ;
+
+ XResultSet resSet = oObj.createCachedContentResultSet
+ (resSetStub, null) ;
+
+ if (resSet == null) {
+ log.println("!!! Method returned null !!!") ;
+ result = false ;
+ } else {
+ try {
+ resSetStub.last() ;
+ int stubRowNum = resSetStub.getRow() ;
+
+ resSet.last() ;
+ int setRowNum = resSet.getRow() ;
+
+ result = stubRowNum == setRowNum && setRowNum > 0 ;
+
+ log.println("Number of rows : stub=" + stubRowNum +
+ " set=" + setRowNum) ;
+ } catch (com.sun.star.sdbc.SQLException e) {
+ log.println("!!! Something wrong with result sets :") ;
+ e.printStackTrace(log) ;
+ result = false ;
+ }
+ }
+
+ tRes.tested("createCachedContentResultSet()", result) ;
+
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/ucb/_XCachedContentResultSetStubFactory.java b/qadevOOo/tests/java/ifc/ucb/_XCachedContentResultSetStubFactory.java
new file mode 100644
index 000000000..90f3d4688
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ucb/_XCachedContentResultSetStubFactory.java
@@ -0,0 +1,104 @@
+/*
+ * 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.ucb;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.sdbc.XResultSet;
+import com.sun.star.ucb.XCachedContentResultSetStubFactory;
+
+/**
+* Testing <code>com.sun.star.ucb.XCachedContentResultSetStubFactory</code>
+* interface methods :
+* <ul>
+* <li><code> createCachedContentResultSetStub()</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'ContentResultSet'</code> (of type
+* <code>com.sun.star.sdbc.XResultSet</code>):
+* this must be an implementation of <code>
+* com.sun.star.ucb.ContentResultSet</code> service.</li>
+* <ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.ucb.XCachedContentResultSetStubFactory
+*/
+public class _XCachedContentResultSetStubFactory extends MultiMethodTest {
+
+ /**
+ * Contains the tested object.
+ */
+ public XCachedContentResultSetStubFactory oObj;
+ private XResultSet resSet = null ;
+
+ /**
+ * Retrieves object relation.
+ * @throws StatusException If relation not found.
+ */
+ @Override
+ public void before() {
+ resSet = (XResultSet) tEnv.getObjRelation("ContentResultSet") ;
+ if (resSet == null) {
+ log.println("!!! Relation not found !!!") ;
+ throw new StatusException(Status.failed("!!! Relation not found !!!")) ;
+ }
+ }
+
+ /**
+ * Creates cached result set stub from static result set. After that number
+ * of rows in cached result set created and its source set are retrieved
+ * and comared. <p>
+ * Has <b>OK</b> status if numbers of rows are equal and they are
+ * greater than 0 (because JAR file contains at least one entry).
+ */
+ public void _createCachedContentResultSetStub() {
+ boolean result = true ;
+
+ XResultSet resSetStub = oObj.createCachedContentResultSetStub
+ (resSet) ;
+
+ if (resSetStub == null) {
+ log.println("!!! Method returned null !!!") ;
+ result = false ;
+ } else {
+ try {
+ resSetStub.last() ;
+ int stubRowNum = resSetStub.getRow() ;
+
+ resSet.last() ;
+ int setRowNum = resSet.getRow() ;
+
+ result = stubRowNum == setRowNum && setRowNum > 0 ;
+
+ log.println("Number of rows : set=" + setRowNum +
+ " stub=" + stubRowNum) ;
+ } catch (com.sun.star.sdbc.SQLException e) {
+ log.println("!!! Something wrong with result sets :") ;
+ e.printStackTrace(log) ;
+ result = false ;
+ }
+ }
+
+ tRes.tested("createCachedContentResultSetStub()", result) ;
+
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/ucb/_XCachedDynamicResultSetFactory.java b/qadevOOo/tests/java/ifc/ucb/_XCachedDynamicResultSetFactory.java
new file mode 100644
index 000000000..06dc4974f
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ucb/_XCachedDynamicResultSetFactory.java
@@ -0,0 +1,114 @@
+/*
+ * 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.ucb;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.sdbc.XResultSet;
+import com.sun.star.ucb.XCachedDynamicResultSetFactory;
+import com.sun.star.ucb.XDynamicResultSet;
+
+/**
+* Testing <code>com.sun.star.ucb.XCachedDynamicResultSetFactory</code>
+* interface methods :
+* <ul>
+* <li><code> createCachedDynamicResultSet()</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'CachedDynamicResultSetStub'</code> (of type
+* <code>com.sun.star.sdbc.XDynamicResultSet</code>):
+* this must be an implementation of <code>
+* com.sun.star.ucb.CachedDynamicResultSetStub</code> service.</li>
+* <ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.ucb.XCachedDynamicResultSetFactory
+*/
+public class _XCachedDynamicResultSetFactory extends MultiMethodTest {
+
+ /**
+ * Contains the tested object.
+ */
+ public XCachedDynamicResultSetFactory oObj;
+ private XDynamicResultSet resSetStub = null ;
+
+ /**
+ * Retrieves object relation.
+ * @throws StatusException If relation not found.
+ */
+ @Override
+ public void before() {
+ resSetStub = (XDynamicResultSet)
+ tEnv.getObjRelation("CachedDynamicResultSetStub") ;
+ if (resSetStub == null) {
+ log.println("!!! Relation not found !!!") ;
+ throw new StatusException
+ (Status.failed("!!! Relation not found !!!")) ;
+ }
+ }
+
+ /**
+ * Creates result set from result set stub. After that number
+ * of rows from result set created and its stub are retrieved
+ * using their static representations and comared. <p>
+ * Has <b>OK</b> status if numbers of rows are equal and they are
+ * greater than 0 (because JAR file contains at least one entry).
+ */
+ public void _createCachedDynamicResultSet() {
+ boolean result = true ;
+
+ XDynamicResultSet resSet = oObj.createCachedDynamicResultSet
+ (resSetStub, null) ;
+
+ if (resSet == null) {
+ log.println("!!! Method returned null !!!") ;
+ result = false ;
+ } else {
+ try {
+ XResultSet resSetS = resSet.getStaticResultSet() ;
+ XResultSet resSetStubS = resSetStub.getStaticResultSet() ;
+
+ resSetStubS.last() ;
+ int stubRowNum = resSetStubS.getRow() ;
+
+ resSetS.last() ;
+ int setRowNum = resSetS.getRow() ;
+
+ result = stubRowNum == setRowNum && setRowNum > 0 ;
+
+ log.println("Number of rows : stub=" + stubRowNum +
+ " set=" + setRowNum) ;
+ } catch (com.sun.star.sdbc.SQLException e) {
+ log.println("!!! Something wrong with result sets :") ;
+ e.printStackTrace(log) ;
+ result = false ;
+ } catch (com.sun.star.ucb.ListenerAlreadySetException e) {
+ log.println("!!! Can't get static result sets :") ;
+ e.printStackTrace(log) ;
+ result = false ;
+ }
+ }
+
+ tRes.tested("createCachedDynamicResultSet()", result) ;
+
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/ucb/_XCachedDynamicResultSetStubFactory.java b/qadevOOo/tests/java/ifc/ucb/_XCachedDynamicResultSetStubFactory.java
new file mode 100644
index 000000000..cb38aff5b
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ucb/_XCachedDynamicResultSetStubFactory.java
@@ -0,0 +1,174 @@
+/*
+ * 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.ucb;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.sdbc.XResultSet;
+import com.sun.star.ucb.XCachedDynamicResultSetFactory;
+import com.sun.star.ucb.XCachedDynamicResultSetStubFactory;
+import com.sun.star.ucb.XDynamicResultSet;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+* Testing <code>com.sun.star.ucb.XCachedDynamicResultSetStubFactory</code>
+* interface methods :
+* <ul>
+* <li><code> createCachedDynamicResultSetStub()</code></li>
+* <li><code> connectToCache()</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'DynamicResultSet'</code> (of type
+* <code>com.sun.star.sdbc.XDynamicResultSet</code>):
+* this must be an implementation of <code>
+* com.sun.star.ucb.DynamicResultSet</code> service.</li>
+* <ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.ucb.XCachedDynamicResultSetStubFactory
+*/
+public class _XCachedDynamicResultSetStubFactory extends MultiMethodTest {
+
+ /**
+ * Contains the tested object.
+ */
+ public XCachedDynamicResultSetStubFactory oObj;
+ private XDynamicResultSet resSet = null ;
+
+ /**
+ * Retrieves object relation.
+ * @throws StatusException If relation not found.
+ */
+ @Override
+ public void before() {
+ resSet = (XDynamicResultSet) tEnv.getObjRelation("DynamicResultSet") ;
+ if (resSet == null) {
+ log.println("!!! Relation not found !!!") ;
+ throw new StatusException(Status.failed("!!! Relation not found !!!")) ;
+ }
+ }
+
+ /**
+ * Creates result set stub from result set. After that number
+ * of rows from result set stub created and its source set are retrieved
+ * using their static representations and compared. <p>
+ * Has <b>OK</b> status if numbers of rows are equal and they are
+ * greater than 0 (because JAR file contains at least one entry).
+ */
+ public void _createCachedDynamicResultSetStub() {
+ boolean result = true ;
+
+ XDynamicResultSet resSetStub = oObj.createCachedDynamicResultSetStub(resSet) ;
+
+ if (resSetStub == null) {
+ log.println("!!! Method returned null !!!") ;
+ result = false ;
+ } else {
+ try {
+ XResultSet resSetS = resSet.getStaticResultSet() ;
+ XResultSet resSetStubS = resSetStub.getStaticResultSet() ;
+
+ resSetStubS.last() ;
+ int stubRowNum = resSetStubS.getRow() ;
+
+ resSetS.last() ;
+ int setRowNum = resSetS.getRow() ;
+
+ result = stubRowNum == setRowNum && setRowNum > 0 ;
+
+ log.println("Number of rows : stub=" + stubRowNum +
+ " set=" + setRowNum) ;
+ } catch (com.sun.star.sdbc.SQLException e) {
+ log.println("!!! Something wrong with result sets :") ;
+ e.printStackTrace(log) ;
+ result = false ;
+ } catch (com.sun.star.ucb.ListenerAlreadySetException e) {
+ log.println("!!! Can't get static result sets :") ;
+ e.printStackTrace(log) ;
+ result = false ;
+ }
+ }
+
+ tRes.tested("createCachedDynamicResultSetStub()", result) ;
+ }
+
+ /**
+ * Creates an instance of <code>CachedDynamicResultSet</code> service
+ * which is not connected to any stub. Then tries to connect it to
+ * <code>DynamicResultSet</code> created and passed as relation.
+ * Connection is checked by retrieving and comparing of row numbers
+ * of connected set and its source set. <p>
+ * Has <b>OK</b> status if row numbers are equal and they are
+ * greater than 0 (because JAR file contains at least one entry).
+ */
+ public void _connectToCache() throws Exception {
+ boolean result = true ;
+
+ Object fac = tParam.getMSF().createInstance
+ ("com.sun.star.ucb.CachedDynamicResultSetFactory") ;
+
+ XCachedDynamicResultSetFactory setFac = UnoRuntime.queryInterface
+ (XCachedDynamicResultSetFactory.class, fac) ;
+
+ XDynamicResultSet rmtSet = setFac.createCachedDynamicResultSet(null, null) ;
+
+ try {
+ oObj.connectToCache(resSet, rmtSet, null, null) ;
+ } catch (com.sun.star.ucb.ListenerAlreadySetException e) {
+ log.println("!!! Unexpected exception :" + e) ;
+ result = false ;
+ } catch (com.sun.star.ucb.AlreadyInitializedException e) {
+ log.println("!!! Unexpected exception :" + e) ;
+ result = false ;
+ }
+
+ if (result) {
+ // checking connection to the source
+ try {
+ XResultSet statRmtSet = rmtSet.getStaticResultSet() ;
+ XResultSet statResSet = resSet.getStaticResultSet() ;
+
+ statRmtSet.last() ;
+ int rmtRowNum = statRmtSet.getRow() ;
+
+ statResSet.last() ;
+ int resRowNum = statResSet.getRow() ;
+
+ result = rmtRowNum == resRowNum && resRowNum > 0 ;
+
+ log.println("Number of rows : destination=" + rmtRowNum +
+ " source=" + resRowNum) ;
+ } catch (com.sun.star.sdbc.SQLException e) {
+ log.println("!!! Something wrong with result sets :") ;
+ e.printStackTrace(log) ;
+ result = false ;
+ } catch (com.sun.star.ucb.ListenerAlreadySetException e) {
+ log.println("!!! Something wrong with result sets :") ;
+ e.printStackTrace(log) ;
+ result = false ;
+ }
+ }
+
+ tRes.tested("connectToCache()", result) ;
+ }
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/ucb/_XCommandProcessor.java b/qadevOOo/tests/java/ifc/ucb/_XCommandProcessor.java
new file mode 100644
index 000000000..bd1a0f9e5
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ucb/_XCommandProcessor.java
@@ -0,0 +1,234 @@
+/*
+ * 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.ucb;
+
+import com.sun.star.ucb.Command;
+import com.sun.star.ucb.CommandAbortedException;
+import com.sun.star.ucb.CommandInfo;
+import com.sun.star.ucb.GlobalTransferCommandArgument;
+import com.sun.star.ucb.NameClash;
+import com.sun.star.ucb.TransferCommandOperation;
+import com.sun.star.ucb.UnsupportedCommandException;
+import com.sun.star.ucb.XCommandInfo;
+import com.sun.star.ucb.XCommandProcessor;
+import com.sun.star.uno.Exception;
+import com.sun.star.uno.UnoRuntime;
+import lib.MultiMethodTest;
+import lib.StatusException;
+
+/**
+* Tests <code>XCommandProcessor</code>. The TestCase can pass (but doesn't have
+* to) "XCommandProcessor.AbortCommand" relation, to specify command to abort in
+* <code>abort()</code> test.
+*
+* Testing <code>com.sun.star.ucb.XCommandProcessor</code>
+* interface methods :
+* <ul>
+* <li><code> createCommandIdentifier()</code></li>
+* <li><code> execute()</code></li>
+* <li><code> abort()</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'XCommandProcessor.AbortCommand'</code> <b>optional</b>
+* (of type <code>com.sun.star.ucb.Command</code>):
+* specify command to abort in <code>abort()</code> test.
+* If the relation is not specified the 'GlobalTransfer'
+* command is used.</li>
+* <ul> <p>
+* The following predefined files needed to complete the test:
+* <ul>
+* <li> <code>poliball.gif</code> : this file is required in case
+* if the relation <code>'XCommandProcessor.AbortCommand'</code>
+* is not specified. This file is used by 'GlobalTransfer'
+* command as a source file for copying.</li>
+* <ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.ucb.XCommandProcessor
+*/
+public class _XCommandProcessor extends MultiMethodTest {
+
+ /**
+ * Contains the tested object.
+ */
+ public XCommandProcessor oObj;
+
+ /**
+ * Contains the command id returned by <code>createCommandIdentifier()
+ * </code>. It is used in <code>abort()</code> test.
+ */
+ int cmdId;
+
+ /**
+ * Tests <code>createCommandIdentifier()</code>. Calls it for two times
+ * and checks returned values. <p>
+ * Has <b>OK</b> status if values are unique correct idenifiers: not 0.
+ */
+ public void _createCommandIdentifier() {
+ log.println("creating a command line identifier");
+
+ int testCmdId = oObj.createCommandIdentifier();
+ cmdId = oObj.createCommandIdentifier();
+
+ if (cmdId == 0 || testCmdId == 0) {
+ log.println("createCommandLineIdentifier() returned 0 - FAILED");
+ }
+
+ if (cmdId == testCmdId) {
+ log.println("the command identifier is not unique");
+ }
+
+ tRes.tested("createCommandIdentifier()",
+ testCmdId != 0 && cmdId != 0 && cmdId != testCmdId);
+ }
+
+ /**
+ * First executes 'geCommandInfo' command and examines returned
+ * command info information. Second tries to execute improper
+ * command. <p>
+ * Has <b> OK </b> status if in the first case returned information
+ * contains info about 'getCommandInfo' command and in the second
+ * case an exception is thrown. <p>
+ */
+ public void _execute() {
+ String commandName = "getCommandInfo";
+ Command command = new Command(commandName, -1, null);
+
+ Object result;
+
+ log.println("executing command " + commandName);
+ try {
+ result = oObj.execute(command, 0, null);
+ } catch (CommandAbortedException e) {
+ log.println("The command aborted " + e.getMessage());
+ e.printStackTrace(log);
+ throw new StatusException("Unexpected exception", e);
+ } catch (Exception e) {
+ log.println("Unexpected exception " + e.getMessage());
+ e.printStackTrace(log);
+ throw new StatusException("Unexpected exception", e);
+ }
+
+ XCommandInfo xCmdInfo = UnoRuntime.queryInterface(
+ XCommandInfo.class, result);
+
+ CommandInfo[] cmdInfo = xCmdInfo.getCommands();
+
+ boolean found = false;
+
+ for (int i = 0; i < cmdInfo.length; i++) {
+ if (cmdInfo[i].Name.equals(commandName)) {
+ found = true;
+ break;
+ }
+ }
+
+ log.println("testing execute with wrong command");
+
+ Command badCommand = new Command("bad command", -1, null);
+
+ try {
+ oObj.execute(badCommand, 0, null);
+ } catch (CommandAbortedException e) {
+ log.println("CommandAbortedException thrown - OK");
+ } catch (UnsupportedCommandException e) {
+ log.println("UnsupportedCommandException thrown - OK");
+ } catch (Exception e) {
+ log.println("Wrong exception thrown " + e.getMessage());
+ e.printStackTrace(log);
+ throw new StatusException("Unexpected exception", e);
+ }
+
+ tRes.tested("execute()", found);
+ }
+
+ /**
+ * First a separate thread where <code>abort</code> method
+ * is called permanently. Then a "long" command (for example,
+ * "transfer") is started. I case if relation is not
+ * specified 'GlobalTransfer' command starts to
+ * copy a file to temporary directory (if the relation is present
+ * then the its command starts to work). <p>
+ * Has <b> OK </b> status if the command execution is aborted, i.e.
+ * <code>CommandAbortedException</code> is thrown. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> createCommandIdentifier() </code> : to have a unique
+ * identifier which is used to abort started command. </li>
+ * </ul>
+ */
+ public void _abort() {
+ executeMethod("createCommandIdentifier()");
+
+ Command command = (Command)tEnv.getObjRelation(
+ "XCommandProcessor.AbortCommand");
+
+ if (command == null) {
+ String commandName = "globalTransfer";
+
+ String srcURL = util.utils.getFullTestURL("SwXTextEmbeddedObject.sdw") ;
+ String tmpURL = util.utils.getOfficeTemp(tParam.getMSF()) ;
+ log.println("Copying '" + srcURL + "' to '" + tmpURL) ;
+
+ GlobalTransferCommandArgument arg = new
+ GlobalTransferCommandArgument(
+ TransferCommandOperation.COPY, srcURL,
+ tmpURL, "", NameClash.OVERWRITE);
+
+ command = new Command(commandName, -1, arg);
+ }
+
+ Thread aborter = new Thread() {
+ @Override
+ public void run() {
+ for (int i = 0; i < 10; i++) {
+ log.println("try to abort command");
+ oObj.abort(cmdId);
+ util.utils.pause(10);
+ }
+ }
+ };
+
+ aborter.start();
+
+ util.utils.pause(15);
+
+ log.println("executing command");
+ try {
+ oObj.execute(command, cmdId, null);
+ log.println("Command execution completed");
+ log.println("CommandAbortedException is not thrown");
+ log.println("This is OK since there is no command implemented "+
+ "that can be aborted");
+ tRes.tested("abort()", true);
+ } catch (CommandAbortedException e) {
+ tRes.tested("abort()", true);
+ } catch (Exception e) {
+ log.println("Unexpected exception " + e.getMessage());
+ e.printStackTrace(log);
+ throw new StatusException("Unexpected exception", e);
+ }
+
+ try {
+ aborter.join(5000);
+ aborter.interrupt();
+ } catch(InterruptedException e) {
+ }
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/ucb/_XCommandProcessor2.java b/qadevOOo/tests/java/ifc/ucb/_XCommandProcessor2.java
new file mode 100644
index 000000000..9c0223696
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ucb/_XCommandProcessor2.java
@@ -0,0 +1,41 @@
+/*
+ * 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.ucb;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.ucb.XCommandProcessor2;
+
+
+public class _XCommandProcessor2 extends MultiMethodTest {
+ /**
+ * Contains the tested object.
+ */
+ public XCommandProcessor2 oObj;
+
+ public void _releaseCommandIdentifier() {
+ int id = oObj.createCommandIdentifier();
+ oObj.releaseCommandIdentifier(id);
+ oObj.createCommandIdentifier();
+ System.out.println("id: "+id);
+ System.out.println("id2: "+id);
+ tRes.tested("releaseCommandIdentifier()", true);
+ }
+
+}
diff --git a/qadevOOo/tests/java/ifc/ucb/_XContentIdentifierFactory.java b/qadevOOo/tests/java/ifc/ucb/_XContentIdentifierFactory.java
new file mode 100644
index 000000000..6a66dae9e
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ucb/_XContentIdentifierFactory.java
@@ -0,0 +1,67 @@
+/*
+ * 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.ucb;
+
+import lib.MultiMethodTest;
+import util.utils;
+
+import com.sun.star.ucb.XContentIdentifier;
+import com.sun.star.ucb.XContentIdentifierFactory;
+
+/**
+* Testing <code>com.sun.star.ucb.XContentIdentifierFactory</code>
+* interface methods :
+* <ul>
+* <li><code> createContentIdentifier()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* After test completion object environment has to be recreated.
+* @see com.sun.star.ucb.XContentIdentifierFactory
+*/
+public class _XContentIdentifierFactory extends MultiMethodTest {
+ /**
+ * Contains the tested object.
+ */
+ public XContentIdentifierFactory oObj;
+
+ /**
+ * Calls the tested method with a file url and
+ * gets an identifier. <p>
+ * Has <b> OK </b> status if content identifier and provider scheme are
+ * proper. <p>
+ */
+ public void _createContentIdentifier() {
+ // creating a content identifier string - tmp url
+ String tmpDir = utils.getOfficeTemp(tParam.getMSF());
+
+ String contentId = utils.getFullURL(tmpDir);
+
+ // the scheme is file
+ String scheme = "file";
+
+ XContentIdentifier identifier = oObj.createContentIdentifier(contentId);
+
+ // verifying results
+ String resId = identifier.getContentIdentifier();
+ String resScheme = identifier.getContentProviderScheme();
+
+ tRes.tested("createContentIdentifier()", contentId.equals(resId)
+ && scheme.equals(resScheme));
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/ucb/_XContentProvider.java b/qadevOOo/tests/java/ifc/ucb/_XContentProvider.java
new file mode 100644
index 000000000..7f56233fb
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ucb/_XContentProvider.java
@@ -0,0 +1,130 @@
+/*
+ * 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.ucb;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.ucb.XContent;
+import com.sun.star.ucb.XContentIdentifier;
+import com.sun.star.ucb.XContentIdentifierFactory;
+import com.sun.star.ucb.XContentProvider;
+
+/**
+* Testing <code>com.sun.star.ucb.XContentProvider</code>
+* interface methods :
+* <ul>
+* <li><code> queryContent()</code></li>
+* <li><code> compareContentIds()</code></li>
+* </ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'FACTORY'</code> (of type
+* <code>com.sun.star.ucb.XContentIdentifierFactory</code>):
+* a suitable factory which can produce content identifiers </li>
+* <li> <code>'CONTENT1'</code> (<b>optional</b>) (of type <code>String</code>):
+* name of the suitable content for provider tested. If relation
+* is not specified the 'vnd.sun.star.help://' name will be used.</li>
+* <li> <code>'CONTENT2'</code> (<b>optional</b>) (of type <code>String</code>):
+* another name of the suitable content for provider tested. If relation
+* is not specified the 'vnd.sun.star.writer://' name will be used.</li>
+* <ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.ucb.XContentProvider
+*/
+public class _XContentProvider extends MultiMethodTest {
+
+ public static XContentProvider oObj = null;
+ protected XContentIdentifierFactory CIF = null ;
+ protected String content1 = "vnd.sun.star.help://" ;
+ protected String content2 = "vnd.sun.star.writer://" ;
+
+ /**
+ * Retrieves object relations.
+ * @throws StatusException If one of relations not found.
+ */
+ @Override
+ public void before() {
+ CIF = (XContentIdentifierFactory) tEnv.getObjRelation("FACTORY");
+ String tmp = (String) tEnv.getObjRelation("CONTENT1") ;
+ if (tmp != null) content1 = tmp ;
+ tmp = (String) tEnv.getObjRelation("CONTENT2") ;
+ if (tmp != null) content2 = tmp ;
+
+ if (CIF == null) throw new StatusException(
+ Status.failed("'FACTORY' relation is not found.")) ;
+ }
+
+ /**
+ * Tries to query for some content suitable for this provider. <p>
+ * Has <b>OK</b> status if not null value is returned.
+ */
+ public void _queryContent() {
+ try {
+ XContentIdentifierFactory CIF = (XContentIdentifierFactory)
+ tEnv.getObjRelation("FACTORY");
+ String aURL = content1;
+ log.println("Trying to query "+aURL);
+ XContentIdentifier CI = CIF.createContentIdentifier(aURL);
+ XContent aContent = oObj.queryContent(CI);
+ boolean res = true;
+ Object nc = tEnv.getObjRelation("NoCONTENT");
+ if (nc == null) {
+ res = aContent != null;
+ }
+ tRes.tested("queryContent()",res);
+ } catch (com.sun.star.ucb.IllegalIdentifierException e) {
+ log.println("Exception while checking 'queryContent'");
+ e.printStackTrace(log);
+ tRes.tested("queryContent()",false);
+ }
+ }
+
+ /**
+ * Creates two different content identifiers. First two different
+ * identifiers compared, then two same identifiers. <p>
+ * Has <b>OK</b> status if in the first case <code>false</code>
+ * returned, and in the second - <code>true</code>.
+ */
+ public void _compareContentIds() {
+ XContentIdentifierFactory CIF = (XContentIdentifierFactory)
+ tEnv.getObjRelation("FACTORY");
+ String aURL = content1 ;
+ XContentIdentifier CI = CIF.createContentIdentifier(aURL);
+ aURL = content2 ;
+ XContentIdentifier CI2 = CIF.createContentIdentifier(aURL);
+ int compare = oObj.compareContentIds(CI,CI2);
+ boolean res = (compare != 0);
+ if (!res) {
+ log.println("Didn't work with different IDs");
+ log.println(compare+" was returned");
+ }
+ compare = oObj.compareContentIds(CI,CI);
+ res &= (compare == 0);
+ if (!res) {
+ log.println("Didn't work with equal IDs");
+ log.println(compare+" was returned");
+ }
+ tRes.tested("compareContentIds()",res);
+ }
+
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/ucb/_XContentProviderFactory.java b/qadevOOo/tests/java/ifc/ucb/_XContentProviderFactory.java
new file mode 100644
index 000000000..688b2bd35
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ucb/_XContentProviderFactory.java
@@ -0,0 +1,51 @@
+/*
+ * 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.ucb;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.ucb.XContentProvider;
+import com.sun.star.ucb.XContentProviderFactory;
+
+
+/**
+* Testing <code>com.sun.star.ucb.XContentProviderFactory</code>
+* interface methods :
+* <ul>
+* <li><code> createContentProvider()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.ucb.XContentProviderFactory
+*/
+public class _XContentProviderFactory extends MultiMethodTest {
+
+ public static XContentProviderFactory oObj = null;
+
+ /**
+ * Creates a provider. <p>
+ * Has <b> OK </b> status if the returned value is not
+ * <code>null</code>. <p>
+ */
+ public void _createContentProvider() {
+ XContentProvider CP = oObj.createContentProvider
+ ("com.sun.star.ucb.ContentProviderFactory");
+ tRes.tested("createContentProvider()",CP != null);
+ }
+}
+
diff --git a/qadevOOo/tests/java/ifc/ucb/_XContentProviderManager.java b/qadevOOo/tests/java/ifc/ucb/_XContentProviderManager.java
new file mode 100644
index 000000000..957901775
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ucb/_XContentProviderManager.java
@@ -0,0 +1,275 @@
+/*
+ * 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.ucb;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.ucb.ContentProviderInfo;
+import com.sun.star.ucb.DuplicateProviderException;
+import com.sun.star.ucb.XContentProvider;
+import com.sun.star.ucb.XContentProviderManager;
+import com.sun.star.uno.Exception;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+* Tests XContentProviderManager. The test registers two ContentProviders, calls
+* queryXXX methods to verify results, and deregisters them.
+*
+* Testing <code>com.sun.star.ucb.XContentProviderManager</code>
+* interface methods :
+* <ul>
+* <li><code> registerContentProvider()</code></li>
+* <li><code> deregisterContentProvider()</code></li>
+* <li><code> queryContentProviders()</code></li>
+* <li><code> queryContentProvider()</code></li>
+* </ul> <p>
+* The test registers two ContentProviders, calls
+* queryXXX methods to verify results, and deregisters them. <p>
+*
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.ucb.XContentProviderManager
+*/
+public class _XContentProviderManager extends MultiMethodTest {
+ /**
+ * Contains the tested object.
+ */
+ public XContentProviderManager oObj;
+
+ /**
+ * The test scheme name.
+ */
+ static final String myScheme = "test-scheme";
+
+ /**
+ * Any preexisting content provider. If it exists it will be hidden by
+ * <code>firstContentProvider</code>, registered with the same
+ * <code>myScheme</code>. Typically there is no preexisting content
+ * provider, unless the catch-all providers GnomeVFSContentProvider or
+ * GIOContentProvider is installed
+ */
+ XContentProvider preexistingContentProvider;
+
+ /**
+ * First content provider. It will be hidden by <code>contentProvider
+ * </code>, registered with the same <code>myScheme</code> to test
+ * the "hiding" behaviour.
+ */
+ XContentProvider firstContentProvider;
+
+ /**
+ * The main content provider.
+ */
+ XContentProvider contentProvider;
+
+ /**
+ * <code>ContentProvider</code>s information which are in the manager
+ * before registering the testing providers.
+ */
+ ContentProviderInfo[] initialProvidersInfo;
+
+ /**
+ * Creates two testing providers.
+ *
+ * @see #firstContentProvider
+ * @see #contentProvider
+ */
+ @Override
+ public void before() {
+ XMultiServiceFactory xMSF = tParam.getMSF();
+
+ log.println("creating testing content providers");
+ try {
+ firstContentProvider = UnoRuntime.queryInterface(
+ XContentProvider.class, xMSF.createInstance(
+ "com.sun.star.ucb.FileContentProvider"));
+
+ contentProvider = UnoRuntime.queryInterface(
+ XContentProvider.class, xMSF.createInstance(
+ "com.sun.star.ucb.FileContentProvider"));
+ } catch (Exception e) {
+ log.println("Can't create content providers " + e.getMessage());
+ e.printStackTrace(log);
+ throw new StatusException("Unexpected exception", e);
+ }
+ }
+
+ /**
+ * At the beginning call <code>queryContentProviders</code> method
+ *
+ * to have info about providers existing before new adding.
+ * It adds two testing contents providers, both for the same scheme.
+ * The second one is added two times: first, in non-replacing mode, to test
+ * <code>DuplicateProviderException</code>, and second, in replacing mode,
+ * to hide the first provider. <p>
+ *
+ * The evaluation of results are performed later, in
+ * <code>queryContentProvider()</code>.
+ *
+ * Has <b> OK </b> status if in the first provider is registered
+ * without exceptions, the second throws
+ * <code>DuplicateProviderException</code> in non-replacing mode,
+ * and no exceptions in replacing mode. <p>
+ *
+ * @see #_queryContentProvider
+ */
+ public void _registerContentProvider() {
+ // querying providers info before inserting them, to verify results
+ initialProvidersInfo = oObj.queryContentProviders();
+
+ // GnomeVFSContentProvider or GIOContentProvider ?, typically null
+ preexistingContentProvider = oObj.queryContentProvider(myScheme);
+
+ log.println("registering the first provider");
+ try {
+ oObj.registerContentProvider(firstContentProvider, myScheme,false);
+ } catch (DuplicateProviderException e) {
+ log.println("Unexpected exception thrown " + e.getMessage());
+ e.printStackTrace(log);
+ throw new StatusException("Unexpected exception ", e);
+ }
+
+ log.println("registering the second provider in non-replacing mode");
+ try {
+ oObj.registerContentProvider(contentProvider, myScheme, false);
+ throw new StatusException(Status.failed("registerContentProvider(.., .., false)"));
+ } catch (DuplicateProviderException e) {
+ log.println("DuplicateProviderException thrown - OK");
+ }
+
+ XContentProvider result;
+
+ log.println("registering the second provider in the replace mode");
+ try {
+ result = oObj.registerContentProvider(contentProvider, myScheme, true);
+ } catch (DuplicateProviderException e) {
+ log.println("Unexpected exception thrown " + e.getMessage());
+ e.printStackTrace(log);
+ throw new StatusException("Unexpected exception ", e);
+ }
+
+ // check the result is the first provider
+ tRes.tested("registerContentProvider()",
+ result.equals(firstContentProvider));
+ }
+
+ /**
+ * It calls the method (after registering providers) and compares
+ * its result with the result before registering.
+ *
+ * Has <b> OK </b> status if the number of providers increases
+ * by one after registering custom provider.
+ *
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> registerContentProvider() </code> : to compare number
+ * of providers. </li>
+ * </ul>
+ * @see #_registerContentProvider
+ */
+ public void _queryContentProviders() {
+ executeMethod("registerContentProvider()");
+
+ ContentProviderInfo[] providersInfo = oObj.queryContentProviders();
+ // verifying that the number of providers increased by 1
+ tRes.tested("queryContentProviders()",
+ providersInfo.length == initialProvidersInfo.length + 1);
+ }
+
+ /**
+ * It queries for added custom provider using its scheme
+ * and verifies its result with
+ * <code>queryContentProviders()</code> result and with
+ * custom provider created in <code>registerContentProvider()</code>.
+ * Also verifies <code>registerContentProvider()</code>. <p>
+ *
+ * Has <b>OK</b> status if the provider returned is found within
+ * all providers and is equal to provider created before.
+ *
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> registerContentProvider() </code> </li>
+ * </ul>
+ */
+ public void _queryContentProvider() {
+ executeMethod("registerContentProvider()");
+
+ XContentProvider result = oObj.queryContentProvider
+ ("http://www.sun.com");
+
+ log.println("finding queryContentProvider() result");
+ boolean found = false;
+
+ ContentProviderInfo[] providersInfo = oObj.queryContentProviders();
+
+ for (int i = 0; i < providersInfo.length; i++) {
+ if (result.equals(providersInfo[i].ContentProvider)) {
+ found = true;
+ break;
+ }
+ }
+
+ tRes.tested("queryContentProvider()", found);
+ }
+
+ /**
+ * At first one provider is deregistered, after that provider
+ * is queried, the second provider must be returned for the
+ * specified scheme. Then the second provider is deregistered.
+ * Now <code>null</code> value must be returned by the method
+ * <code>queryContentProvider</code> on the specified scheme. <p>
+ *
+ * Has <b>OK</b> status if in the first case the second provider
+ * remains registered, and after its removing no providers remain
+ * registered for the scheme specified.
+ *
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> registerContentProvider() </code> : two providers
+ * must be registered. </li>
+ * </ul>
+ * The following method tests are to be executed before :
+ * <ul>
+ * <li> <code> queryContentProvider() </code> : to run this test
+ * finally. </li>
+ * <li> <code> queryContentProviders() </code> : to run this test
+ * finally. </li>
+ * </ul>
+ */
+ public void _deregisterContentProvider() {
+ executeMethod("queryContentProvider()");
+ executeMethod("queryContentProviders()");
+ requiredMethod("registerContentProvider()");
+
+ log.println("deregistering the second provider");
+ oObj.deregisterContentProvider(contentProvider, myScheme);
+
+ XContentProvider res = oObj.queryContentProvider(myScheme);
+
+ log.println("deregistering the first provider");
+ oObj.deregisterContentProvider(firstContentProvider, myScheme);
+
+ res = oObj.queryContentProvider(myScheme);
+
+ // verifying that the original provider (typically none) is returned.
+ tRes.tested("deregisterContentProvider()", res == preexistingContentProvider);
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/ucb/_XDataContainer.java b/qadevOOo/tests/java/ifc/ucb/_XDataContainer.java
new file mode 100644
index 000000000..d077d1be4
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ucb/_XDataContainer.java
@@ -0,0 +1,126 @@
+/*
+ * 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.ucb;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.ucb.XDataContainer;
+
+/**
+* Testing <code>com.sun.star.ucb.XDataContainer</code>
+* interface methods :
+* <ul>
+* <li><code> getContentType()</code></li>
+* <li><code> setContentType()</code></li>
+* <li><code> getData()</code></li>
+* <li><code> setData()</code></li>
+* <li><code> getDataURL()</code></li>
+* <li><code> setDataURL()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.ucb.XDataContainer
+*/
+public class _XDataContainer extends MultiMethodTest {
+
+ public static XDataContainer oObj = null; // oObj filled by MultiMethodTest
+ private final byte[] data = new byte[] {34, 35, 36} ;
+ private String dataURL = null;
+
+ /**
+ * Sets the content type to some value. <p>
+ * Has <b>OK</b> status if no runtime exceptions occurred.
+ */
+ public void _setContentType() {
+ oObj.setContentType("image/jpeg") ;
+ tRes.tested("setContentType()", true) ;
+ }
+
+ /**
+ * Check if values 'set' and 'get' are equal. <p>
+ * Has <b>OK</b> status if they are equal. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> setContentType() </code> </li>
+ * </ul>
+ */
+ public void _getContentType() {
+ requiredMethod("setContentType()") ;
+
+ String type = oObj.getContentType() ;
+ tRes.tested("getContentType()", "image/jpeg".equals(type)) ;
+ }
+
+ /**
+ * Sets the data to some byte array. <p>
+ * Has <b>OK</b> status if no runtime exceptions occurred.
+ */
+ public void _setData() {
+ oObj.setData(data) ;
+ tRes.tested("setData()", true) ;
+ }
+
+ /**
+ * Check if arrays 'set' and 'get' are equal. <p>
+ * Has <b>OK</b> status if they are equal. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> setData() </code> </li>
+ * </ul>
+ */
+ public void _getData() {
+ requiredMethod("setData()") ;
+
+ byte[] gData = oObj.getData() ;
+ boolean res = true ;
+ if (res = (gData != null && gData.length == data.length)) {
+ for (int i = 0; i < data.length; i++) {
+ res &= data[i] == gData[i] ;
+ }
+ }
+
+ tRes.tested("getData()", res) ;
+ }
+
+ /**
+ * Sets the data URL to some URL. <p>
+ * Has <b>OK</b> status if no runtime exceptions occurred.
+ */
+ public void _setDataURL() {
+ dataURL = util.utils.getOfficeTemp(tParam.getMSF()) ;
+ oObj.setDataURL(dataURL) ;
+ tRes.tested("setDataURL()", true) ;
+ }
+
+ /**
+ * Check if URLs 'set' and 'get' are equal. <p>
+ * Has <b>OK</b> status if they are equal. <p>
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> setDataURL() </code> </li>
+ * </ul>
+ */
+ public void _getDataURL() {
+ requiredMethod("setDataURL()") ;
+
+ String gURL = oObj.getDataURL() ;
+ tRes.tested("getDataURL()", dataURL.equals(gURL)) ;
+ }
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/ucb/_XFileIdentifierConverter.java b/qadevOOo/tests/java/ifc/ucb/_XFileIdentifierConverter.java
new file mode 100644
index 000000000..fb947ffb6
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ucb/_XFileIdentifierConverter.java
@@ -0,0 +1,90 @@
+/*
+ * 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.ucb;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.ucb.XFileIdentifierConverter;
+
+/**
+* Testing <code>com.sun.star.ucb.XFileIdentifierConverter</code>
+* interface methods :
+* <ul>
+* <li><code> getFileProviderLocality()</code></li>
+* <li><code> getFileURLFromSystemPath()</code></li>
+* <li><code> getSystemPathFromFileURL()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.ucb.XFileIdentifierConverter
+*/
+public class _XFileIdentifierConverter extends MultiMethodTest {
+
+ /**
+ * Contains the tested object.
+ */
+ public XFileIdentifierConverter oObj;
+
+ /**
+ * Gets the locality for SOffice temporary directory. <p>
+ * Has <b> OK </b> status if the method returns value greater
+ * than 0 (as office temp directory is supposed to be in the
+ * same location). <p>
+ */
+ public void _getFileProviderLocality() {
+ String baseURL = util.utils.getOfficeTemp(tParam.getMSF());
+ log.println("Using: "+baseURL);
+ int loc = oObj.getFileProviderLocality(baseURL);
+ log.println("Getting: "+loc);
+ tRes.tested("getFileProviderLocality()",loc > 0);
+ }
+
+ /**
+ * Tries to convert URL of SOffice temp directory to system
+ * dependent path. <p>
+ * Has <b> OK </b> status if the method returns system dependent
+ * representation of the URL passed. <p>
+ */
+ public void _getSystemPathFromFileURL() {
+ String baseURL = util.utils.getOfficeTemp(tParam.getMSF());
+ log.println("Using (Base): "+baseURL);
+ String sysURL = util.utils.getOfficeTempDirSys(tParam.getMSF());
+ log.println("Using (System): "+sysURL);
+ String get = oObj.getSystemPathFromFileURL(baseURL);
+ log.println("Getting: "+get);
+ //sysURL = sysURL.substring(0,sysURL.length()-1);
+ tRes.tested("getSystemPathFromFileURL()",get.equals(sysURL));
+ }
+
+ /**
+ * Tries to convert system dependent path of SOffice temp
+ * directory to URL representation. <p>
+ * Has <b> OK </b> status if the method returns URL representation
+ * of the system dependent path passed. <p>
+ */
+ public void _getFileURLFromSystemPath() {
+ String baseURL = util.utils.getOfficeTemp(tParam.getMSF());
+ log.println("Using (Base): "+baseURL);
+ String sysURL = util.utils.getOfficeTempDirSys(tParam.getMSF());
+ log.println("Using (System): "+sysURL);
+ String get = oObj.getFileURLFromSystemPath(sysURL,sysURL);
+ log.println("Getting: "+get);
+ tRes.tested("getFileURLFromSystemPath()",get.equals(baseURL));
+ }
+
+}
diff --git a/qadevOOo/tests/java/ifc/ucb/_XParameterizedContentProvider.java b/qadevOOo/tests/java/ifc/ucb/_XParameterizedContentProvider.java
new file mode 100644
index 000000000..f8dcd4d8a
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ucb/_XParameterizedContentProvider.java
@@ -0,0 +1,84 @@
+/*
+ * 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.ucb;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.ucb.XContentProvider;
+import com.sun.star.ucb.XParameterizedContentProvider;
+
+/**
+* Testing <code>com.sun.star.ucb.XParameterizedContentProvider</code>
+* interface methods :
+* <ul>
+* <li><code> registerInstance()</code></li>
+* <li><code> deregisterInstance()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.ucb.XParameterizedContentProvider
+*/
+public class _XParameterizedContentProvider extends MultiMethodTest {
+
+ public static XParameterizedContentProvider oObj = null;
+
+ /**
+ * Registers an instance with some arguments. <p>
+ * Has <b>OK</b> status if the method returns non <code>null</code>
+ * provider.
+ */
+ public void _registerInstance() {
+ try {
+ XContentProvider CP = oObj.registerInstance(
+ "\"vnd.sun.star.pkg://file\".*",
+ "uno:pipe,name=ucb_soffice;<PIPE>;urp;UCB.Factory",
+ true);
+ tRes.tested("registerInstance()",CP != null);
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Exception while checking 'registerInstance'");
+ e.printStackTrace(log);
+ tRes.tested("registerInstance()",false);
+ }
+ }
+
+ /**
+ * Deregisters the instance registered before. <p>
+ * Has <b>OK</b> status if the method returns non <code>null</code>
+ * provider. <p>
+ *
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> registerInstance() </code> : to deregister it here. </li>
+ * </ul>
+ */
+ public void _deregisterInstance() {
+ requiredMethod("registerInstance()");
+ try {
+ XContentProvider CP = oObj.deregisterInstance(
+ "\"vnd.sun.star.pkg://file\".*",
+ "uno:pipe,name=ucb_soffice;<PIPE>;urp;UCB.Factory");
+ tRes.tested("deregisterInstance()",CP != null);
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Exception while checking 'deregisterInstance'");
+ e.printStackTrace(log);
+ tRes.tested("deregisterInstance()",false);
+ }
+ }
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/ucb/_XPropertyMatcherFactory.java b/qadevOOo/tests/java/ifc/ucb/_XPropertyMatcherFactory.java
new file mode 100644
index 000000000..084ab5293
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ucb/_XPropertyMatcherFactory.java
@@ -0,0 +1,62 @@
+/*
+ * 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.ucb;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.ucb.RuleOperator;
+import com.sun.star.ucb.RuleTerm;
+import com.sun.star.ucb.SearchCriterium;
+import com.sun.star.ucb.XPropertyMatcher;
+import com.sun.star.ucb.XPropertyMatcherFactory;
+
+/**
+* Testing <code>com.sun.star.ucb.XPropertyMatcherFactory</code>
+* interface methods :
+* <ul>
+* <li><code> createPropertyMatcher()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.ucb.XPropertyMatcherFactory
+*/
+public class _XPropertyMatcherFactory extends MultiMethodTest {
+
+ public static XPropertyMatcherFactory oObj = null;
+
+ /**
+ * Tries to create <code>XPropertyMatcher</code> implementation. <p>
+ * Has <b>OK</b> status if not null value returned.
+ */
+ public void _createPropertyMatcher() {
+ RuleTerm term = new RuleTerm() ;
+
+ term.Property = "ContentType" ;
+ term.Operand = "vnd.sun.star.fsys" ;
+ term.Operator = RuleOperator.CONTAINS ;
+
+ SearchCriterium crit = new SearchCriterium(new RuleTerm[] {term}) ;
+
+ XPropertyMatcher matcher = oObj.createPropertyMatcher
+ (new SearchCriterium[] {crit}) ;
+
+ tRes.tested("createPropertyMatcher()", matcher != null) ;
+ }
+}
+
+
diff --git a/qadevOOo/tests/java/ifc/ucb/_XPropertySetRegistryFactory.java b/qadevOOo/tests/java/ifc/ucb/_XPropertySetRegistryFactory.java
new file mode 100644
index 000000000..e365b11bf
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ucb/_XPropertySetRegistryFactory.java
@@ -0,0 +1,50 @@
+/*
+ * 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.ucb;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.ucb.XPropertySetRegistry;
+import com.sun.star.ucb.XPropertySetRegistryFactory;
+
+/**
+* Testing <code>com.sun.star.ucb.XPropertySetRegistryFactory</code>
+* interface methods :
+* <ul>
+* <li><code> createPropertySetRegistry()</code></li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.ucb.XPropertySetRegistryFactory
+*/
+public class _XPropertySetRegistryFactory extends MultiMethodTest {
+
+ public static XPropertySetRegistryFactory oObj = null;
+
+ /**
+ * Test calls the method with empty string argument. <p>
+ * Has <b> OK </b> status if the method returns not
+ * <code>null</code> value.
+ */
+ public void _createPropertySetRegistry() {
+ XPropertySetRegistry PSR = oObj.createPropertySetRegistry("");
+ tRes.tested("createPropertySetRegistry()",PSR != null);
+ }
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/ucb/_XRemoteContentProviderAcceptor.java b/qadevOOo/tests/java/ifc/ucb/_XRemoteContentProviderAcceptor.java
new file mode 100644
index 000000000..63e41ab9d
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ucb/_XRemoteContentProviderAcceptor.java
@@ -0,0 +1,89 @@
+/*
+ * 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.ucb;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.ucb.XRemoteContentProviderAcceptor;
+import com.sun.star.ucb.XRemoteContentProviderDoneListener;
+
+/**
+ * Testing <code>com.sun.star.ucb.XRemoteContentProviderAcceptor</code>
+ * interface methods :
+ * <ul>
+ * <li><code> addRemoteContentProvider()</code></li>
+ * <li><code> removeRemoteContentProvider()</code></li>
+ * </ul> <p>
+ * Test is <b> NOT </b> multithread compliant. <p>
+ * @see com.sun.star.ucb.XRemoteContentProviderAcceptor
+ */
+public class _XRemoteContentProviderAcceptor extends MultiMethodTest {
+
+ public XRemoteContentProviderAcceptor oObj = null;
+
+ /**
+ * The simple <code>XRemoteContentProviderDoneListener</code>
+ * implementation.
+ */
+ public static class DoneListener implements XRemoteContentProviderDoneListener {
+
+ public void doneWithRemoteContentProviders
+ (XRemoteContentProviderAcceptor xRCPA) {
+ }
+
+ }
+
+ XRemoteContentProviderDoneListener aDoneListener = new DoneListener();
+
+ /**
+ * Adds a remote provider. <p>
+ * Has <b> OK </b> status if the method returns <code>true</code>.
+ */
+ public void _addRemoteContentProvider() {
+ boolean res = false;
+
+ String[] template = new String[]{"file"};
+ res = oObj.addRemoteContentProvider("ContentID",tParam.getMSF(),
+ template,aDoneListener);
+
+ tRes.tested("addRemoteContentProvider()",res);
+ }
+
+ /**
+ * Removes the remote provider added before. <p>
+ * Has <b> OK </b> status if the method returns <code>true</code>.
+ *
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> addRemoteContentProvider() </code> : provider must
+ * be added first </li>
+ * </ul>
+ */
+ public void _removeRemoteContentProvider() {
+ requiredMethod("addRemoteContentProvider()") ;
+
+ boolean res = false;
+
+ res = oObj.removeRemoteContentProvider("ContentID");
+ tRes.tested("removeRemoteContentProvider()",res);
+ }
+
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/ucb/_XRemoteContentProviderActivator.java b/qadevOOo/tests/java/ifc/ucb/_XRemoteContentProviderActivator.java
new file mode 100644
index 000000000..c97b8946e
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ucb/_XRemoteContentProviderActivator.java
@@ -0,0 +1,69 @@
+/*
+ * 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.ucb;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.ucb.XContentProviderManager;
+import com.sun.star.ucb.XRemoteContentProviderAcceptor;
+import com.sun.star.ucb.XRemoteContentProviderActivator;
+
+/**
+ * Testing <code>com.sun.star.ucb.XRemoteContentProviderActivator</code>
+ * interface methods :
+ * <ul>
+ * <li><code> activateRemoteContentProviders()</code></li>
+ * </ul> <p>
+ * This test needs the following object relations :
+ * <ul>
+ * <li> <code>'RCPA'</code>
+ * (of type <code>XRemoteContentProviderAcceptor</code>):
+ * this acceptor is used to add a provider first before
+ * its activation. </li>
+ * <ul> <p>
+ * Test is <b> NOT </b> multithread compliant. <p>
+ * @see com.sun.star.ucb.XRemoteContentProviderActivator
+ */
+public class _XRemoteContentProviderActivator extends MultiMethodTest {
+
+ public XRemoteContentProviderActivator oObj = null;
+
+ /**
+ * First the relation is retrieved and a remote provider is
+ * added to the acceptor. Then it is activated and
+ * removed. <p>
+ * Has <b> OK </b> status if <code>activateRemoteContentProviders</code>
+ * method returns not <code>null</code> value. <p>
+ */
+ public void _activateRemoteContentProviders() {
+ boolean res = false;
+
+ XRemoteContentProviderAcceptor xRCPA = (XRemoteContentProviderAcceptor)
+ tEnv.getObjRelation("RCPA");
+ String[] template = new String[]{"file"};
+ xRCPA.addRemoteContentProvider("ContentID",tParam.getMSF(),template,null);
+ XContentProviderManager CPM = oObj.activateRemoteContentProviders();
+ res = (CPM != null);
+ xRCPA.removeRemoteContentProvider("ContentID");
+
+ tRes.tested("activateRemoteContentProviders()",res);
+ }
+
+}
+
diff --git a/qadevOOo/tests/java/ifc/ucb/_XSimpleFileAccess.java b/qadevOOo/tests/java/ifc/ucb/_XSimpleFileAccess.java
new file mode 100644
index 000000000..2f633122e
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ucb/_XSimpleFileAccess.java
@@ -0,0 +1,539 @@
+/*
+ * 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.ucb;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.task.XInteractionHandler;
+import com.sun.star.ucb.XSimpleFileAccess;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.util.DateTime;
+
+import java.util.Calendar;
+import java.util.GregorianCalendar;
+
+/**
+* Testing <code>com.sun.star.ucb.XSimpleFileAccess</code>
+* interface methods. <p>
+* The following predefined files needed to complete the test:
+* <ul>
+* <li> <code>XSimpleFileAccess/XSimpleFileAccess.txt</code> :
+* text file of length 17 and 2000 year created .</li>
+* <li> <code>XSimpleFileAccess/XSimpleFileAccess2.txt</code> :
+* text file for <code>openFileReadWrite</code> method test.</li>
+* <ul> <p>
+* This test needs the following object relations :
+* <ul>
+* <li> <code>'InteractionHandler'</code>
+* (of type <code>XInteractionHandler</code>)
+* instance of <code>com.sun.star.sdb.InteractionHandler</code>
+* </li>
+* </ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.ucb.XSimpleFileAccess
+*/
+public class _XSimpleFileAccess extends MultiMethodTest {
+
+ public static XSimpleFileAccess oObj = null;
+
+ /**
+ * Copies <b>XSimpleFileAccess.txt</b> to a new file, checks
+ * if it was successfully copied and then deletes it. <p>
+ * Has <b> OK </b> status if after method call new copy of file
+ * exists and no exceptions were thrown. <p>
+ */
+ public void _copy() {
+ try {
+ String copiedFile = "";
+ String dirname = util.utils.getFullTestURL("XSimpleFileAccess");
+ String dirnameTo = util.utils.getOfficeTemp(tParam.getMSF()) ;
+ String filename = dirname+"XSimpleFileAccess.txt";
+ copiedFile = dirnameTo + "XSimpleFileAccess_copy.txt";
+
+ if (oObj.exists(copiedFile))
+ oObj.kill(copiedFile);
+
+ oObj.copy(filename,copiedFile);
+ tRes.tested("copy()",oObj.exists(copiedFile));
+ oObj.kill(copiedFile);
+ }
+ catch (com.sun.star.uno.Exception ex) {
+ log.println("Exception occurred while testing 'copy()'");
+ ex.printStackTrace(log);
+ tRes.tested("copy()",false);
+ }
+
+ } //EOF copy()
+
+ /**
+ * Copies <b>XSimpleFileAccess.txt</b> to a new file, tries to
+ * rename it, then checks
+ * if it was successfully renamed and then deletes it. <p>
+ * Has <b> OK </b> status if after method call new file
+ * exists and no exceptions were thrown. <p>
+ */
+ public void _move() {
+ try {
+ String copiedFile = "";
+ String dirname = util.utils.getFullTestURL("XSimpleFileAccess");
+ String dirnameTo = util.utils.getOfficeTemp(tParam.getMSF()) ;
+ String filename = dirname+"XSimpleFileAccess.txt";
+ copiedFile = dirnameTo + "XSimpleFileAccess_copy.txt";
+
+ if (oObj.exists(copiedFile))
+ oObj.kill(copiedFile);
+
+ oObj.copy(filename,copiedFile);
+ filename = copiedFile;
+ copiedFile = dirnameTo + "XSimpleFileAccess_move.txt";
+ oObj.move(filename,copiedFile);
+ tRes.tested("move()",oObj.exists(copiedFile));
+ oObj.kill(copiedFile);
+ }
+ catch (com.sun.star.uno.Exception ex) {
+ log.println("Exception occurred while testing 'move()'");
+ ex.printStackTrace(log);
+ tRes.tested("move()",false);
+ }
+
+ } //EOF move()
+
+ /**
+ * Copies <b>XSimpleFileAccess.txt</b> to a new file, deletes it
+ * and checks if it isn't exist. <p>
+ * Has <b> OK </b> status if after method call new copy of file
+ * doesn't exist and no exceptions were thrown. <p>
+ */
+ public void _kill() {
+ try {
+ String copiedFile = "";
+ String dirname = util.utils.getFullTestURL("XSimpleFileAccess");
+ String dirnameTo = util.utils.getOfficeTemp(tParam.getMSF()) ;
+ String filename = dirname+"XSimpleFileAccess.txt";
+ copiedFile = dirnameTo + "XSimpleFileAccess_copy.txt";
+
+ if (oObj.exists(copiedFile))
+ oObj.kill(copiedFile);
+
+ oObj.copy(filename,copiedFile);
+ oObj.kill(copiedFile);
+ tRes.tested("kill()",!oObj.exists(copiedFile));
+ }
+ catch (com.sun.star.uno.Exception ex) {
+ log.println("Exception occurred while testing 'kill()'");
+ ex.printStackTrace(log);
+ tRes.tested("kill()",false);
+ }
+
+ } //EOF kill()
+
+ /**
+ * Tries to check if <b>XSimpleFileAccess</b> is folder. <p>
+ * Has <b>OK</b> status if the method returns <code>true</code>
+ */
+ public void _isFolder() {
+ try {
+ String dirname = util.utils.getFullTestURL("XSimpleFileAccess");
+ tRes.tested("isFolder()",oObj.isFolder(dirname));
+ }
+ catch (com.sun.star.uno.Exception ex) {
+ log.println("Exception occurred while testing 'isFolder()'");
+ ex.printStackTrace(log);
+ tRes.tested("isFolder()",false);
+ }
+
+ } //EOF isFolder()
+
+ /**
+ * Copies <b>XSimpleFileAccess.txt</b> to a new file, sets
+ * 'READONLY' attribute and checks it. Second clears 'READONLY'
+ * attribute and checks it again. The copy of file is deleted
+ * finally.<p>
+ *
+ * Has <b> OK </b> status if in the first case method returns
+ * <code></code>, and in the second case - <code>false</code>
+ * and no exceptions were thrown. <p>
+ *
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> setReadOnly </code> </li>
+ * </ul>
+ */
+ public void _isReadOnly() {
+ requiredMethod("setReadOnly()");
+ try {
+ String dirname = util.utils.getFullTestURL("XSimpleFileAccess");
+ String filename = dirname+"XSimpleFileAccess.txt";
+ boolean result = true;
+
+ String dirnameTo = util.utils.getOfficeTemp(tParam.getMSF()) ;
+ String readonlyCopy = dirnameTo + "XSimpleFileAccess_copy.txt" ;
+
+ if (oObj.exists(readonlyCopy))
+ oObj.kill(readonlyCopy);
+
+ oObj.copy(filename, readonlyCopy);
+
+ oObj.setReadOnly(readonlyCopy, true);
+ result &= oObj.isReadOnly(readonlyCopy);
+ oObj.setReadOnly(readonlyCopy, false);
+ result &= !oObj.isReadOnly(readonlyCopy);
+
+ oObj.kill(readonlyCopy);
+ tRes.tested("isReadOnly()",result);
+ } catch (com.sun.star.uno.Exception ex) {
+ log.println("Exception occurred while testing 'isReadOnly()'");
+ ex.printStackTrace(log);
+ tRes.tested("isReadOnly()",false);
+ }
+
+ } //EOF isReadOnly()
+
+
+ /**
+ * Copies <b>XSimpleFileAccess.txt</b> to a new file, sets
+ * 'READONLY' attribute and checks it. Second clears 'READONLY'
+ * attribute and checks it again. The copy of file is deleted
+ * finally.<p>
+ *
+ * Has <b> OK </b> status if in the first case method returns
+ * <code></code>, and in the second case - <code>false</code>
+ * and no exceptions were thrown. <p>
+ *
+ * The following method tests are to be completed successfully before :
+ * <ul>
+ * <li> <code> setReadOnly </code> </li>
+ * </ul>
+ */
+ public void _setReadOnly() {
+ boolean result = true ;
+
+ try {
+ String dirname = util.utils.getFullTestURL("XSimpleFileAccess");
+ String filename = dirname+"XSimpleFileAccess.txt";
+
+ String dirnameTo = util.utils.getOfficeTemp(tParam.getMSF()) ;
+ String readonlyCopy = dirnameTo + "XSimpleFileAccess_copy.txt" ;
+
+ if (oObj.exists(readonlyCopy))
+ oObj.kill(readonlyCopy);
+
+ oObj.copy(filename, readonlyCopy);
+
+ oObj.setReadOnly(readonlyCopy, true);
+ result &= oObj.isReadOnly(readonlyCopy) ;
+ oObj.setReadOnly(readonlyCopy, false);
+ result &= !oObj.isReadOnly(readonlyCopy) ;
+ tRes.tested("setReadOnly()", result);
+
+ oObj.kill(readonlyCopy);
+ }
+ catch (Exception ex) {
+ log.println("Exception occurred while testing 'setReadOnly()'");
+ ex.printStackTrace(log);
+ tRes.tested("setReadOnly()",false);
+ }
+ } //EOF setReadOnly()
+
+ /**
+ * Creates folder and then checks if it was successfully created. <p>
+ * Has <b>OK</b> status if folder was created and no exceptions
+ * were thrown.
+ */
+ public void _createFolder() {
+ try {
+ String tmpdirname = util.utils.getOfficeTemp(tParam.getMSF()) ;
+ String newFolder = tmpdirname+"SimpleSubFolder";
+
+ if (oObj.exists(newFolder))
+ oObj.kill(newFolder);
+
+ oObj.createFolder(newFolder);
+ tRes.tested("createFolder()",oObj.isFolder(newFolder));
+ oObj.kill(newFolder);
+ }
+ catch (com.sun.star.uno.Exception ex) {
+ log.println("Exception occurred while testing 'createFolder()'");
+ ex.printStackTrace(log);
+ tRes.tested("createFolder()",false);
+ }
+
+ } //EOF createFolder()
+
+ /**
+ * Test calls the method and checks return value and that
+ * no exceptions were thrown. <b>XSimpleFileAccess.txt</b>
+ * file tested.<p>
+ * Has <b> OK </b> status if the method returns <code>17</code>
+ * and no exceptions were thrown. <p>
+ */
+ public void _getSize() {
+ try {
+ String dirname = util.utils.getFullTestURL("XSimpleFileAccess");
+ String filename = dirname+"XSimpleFileAccess.txt";
+ int fSize = oObj.getSize(filename);
+ tRes.tested("getSize()", fSize == 17 );
+ }
+ catch (com.sun.star.uno.Exception ex) {
+ log.println("Exception occurred while testing 'getSize()'");
+ ex.printStackTrace(log);
+ tRes.tested("getSize()",false);
+ }
+
+ } //EOF getSize()
+
+ /**
+ * Test calls the method and checks return value and that
+ * no exceptions were thrown. <b>XSimpleFileAccess.txt</b>
+ * file tested.<p>
+ * Has <b> OK </b> status if the method returns String
+ * <code>'application/vnd.sun.staroffice.fsys-file'</code>
+ * and no exceptions were thrown. <p>
+ */
+ public void _getContentType() {
+ try {
+ String dirname = util.utils.getFullTestURL("XSimpleFileAccess");
+ String filename = dirname+"XSimpleFileAccess.txt";
+ String fType = oObj.getContentType(filename);
+ tRes.tested("getContentType()",
+ "application/vnd.sun.staroffice.fsys-file".equals(fType) );
+ }
+ catch (com.sun.star.uno.Exception ex) {
+ log.println("Exception occurred while testing 'getContentType()'");
+ ex.printStackTrace(log);
+ tRes.tested("getContentType()",false);
+ }
+
+ } //EOF getContentType()
+
+ /**
+ * Test calls the method and checks return value and that
+ * no exceptions were thrown. <b>XSimpleFileAccess.txt</b>
+ * file tested.<p>
+ * Has <b> OK </b> status if the method returns date with
+ * 2001 year and no exceptions were thrown. <p>
+ */
+ public void _getDateTimeModified() {
+ try {
+ String dirname = util.utils.getFullTestURL("XSimpleFileAccess");
+ String filename = dirname+"XSimpleFileAccess.txt";
+ DateTime fTime = oObj.getDateTimeModified(filename);
+
+ java.io.File the_file = new java.io.File(filename);
+ long lastModified = the_file.lastModified();
+ java.util.Date lastMod = new java.util.Date(lastModified);
+ GregorianCalendar lastModCal = new GregorianCalendar();
+ lastModCal.setTime(lastMod);
+
+ //compare the dates gained by java with those gained by this method
+ boolean res = true;
+ boolean partResult = (fTime.Day == lastModCal.get(Calendar.DAY_OF_WEEK));
+ if (!partResult) {
+ log.println("Wrong Day");
+ log.println("Expected: "+lastModCal.get(Calendar.DAY_OF_WEEK));
+ log.println("Gained: "+fTime.Day);
+ log.println("------------------------------");
+ }
+ partResult = (fTime.Month == lastModCal.get(Calendar.MONTH));
+ if (!partResult) {
+ log.println("Wrong Month");
+ log.println("Expected: "+lastModCal.get(Calendar.MONTH));
+ log.println("Gained: "+fTime.Month);
+ log.println("------------------------------");
+ }
+
+ partResult = (fTime.Year == (lastModCal.get(Calendar.MONTH) - 1900));
+ if (!partResult) {
+ log.println("Wrong Year");
+ log.println("Expected: "+(lastModCal.get(Calendar.MONTH) - 1900));
+ log.println("Gained: "+fTime.Year);
+ log.println("------------------------------");
+ }
+
+ tRes.tested("getDateTimeModified()", res);
+ }
+ catch (com.sun.star.uno.Exception ex) {
+ log.println("Exception occurred while testing 'getDateTimeModified()'");
+ ex.printStackTrace(log);
+ tRes.tested("getDateTimeModified()",false);
+ }
+
+ } //EOF getDateTimeModified()
+
+ /**
+ * Test calls the method and checks return value and that
+ * no exceptions were thrown. <b>XSimpleFileAccess</b>
+ * directory used.<p>
+ * Has <b> OK </b> status if the method returns non zero length
+ * array and no exceptions were thrown. <p>
+ */
+ public void _getFolderContents() {
+ try {
+ String dirname = util.utils.getFullTestURL("XSimpleFileAccess");
+ String[] cont = oObj.getFolderContents(dirname,false);
+ tRes.tested("getFolderContents()", cont.length>0);
+ }
+ catch (com.sun.star.uno.Exception ex) {
+ log.println("Exception occurred while testing 'getFolderContents()'");
+ ex.printStackTrace(log);
+ tRes.tested("getFolderContents()",false);
+ }
+
+ } //EOF getFolderContents()
+
+ /**
+ * First it check file <b>XSimpleFileAccess.txt</b> for
+ * existence, second file <b>I_do_not_exists.txt</b> is checked
+ * for existence. <p>
+ * Has <b> OK </b> status if in the first case method returns
+ * <code>true</code> and in the second - <code>flase</code>
+ * and no exceptions were thrown. <p>
+ */
+ public void _exists() {
+ try {
+ String dirname = util.utils.getFullTestURL("XSimpleFileAccess");
+ String filename = dirname+"XSimpleFileAccess.txt";
+ String wrongname = dirname+"I_do_not_exists.txt";
+ tRes.tested("exists()",
+ oObj.exists(filename) && !oObj.exists(wrongname));
+ }
+ catch (com.sun.star.uno.Exception ex) {
+ log.println("Exception occurred while testing 'exists()'");
+ ex.printStackTrace(log);
+ tRes.tested("exists()",false);
+ }
+
+ } //EOF exists()
+
+ /**
+ * Test calls the method and checks return value and that
+ * no exceptions were thrown. <b>XSimpleFileAccess.txt</b>
+ * file used.<p>
+ * Has <b> OK </b> status if the method returns not
+ * <code>null</code> value and no exceptions were thrown. <p>
+ */
+ public void _openFileRead() {
+ try {
+ String dirname = util.utils.getFullTestURL("XSimpleFileAccess");
+ String filename = dirname+"XSimpleFileAccess.txt";
+ com.sun.star.io.XInputStream iStream = oObj.openFileRead(filename);
+ tRes.tested("openFileRead()", iStream != null);
+ }
+ catch (com.sun.star.uno.Exception ex) {
+ log.println("Exception occurred while testing 'openFileRead()'");
+ ex.printStackTrace(log);
+ tRes.tested("openFileRead()",false);
+ }
+
+ } //EOF openFileRead()
+
+ /**
+ * Test calls the method and checks return value and that
+ * no exceptions were thrown. <b>XSimpleFileAccess.txt</b>
+ * file used.<p>
+ * Has <b> OK </b> status if the method returns not
+ * <code>null</code> value and no exceptions were thrown. <p>
+ */
+ public void _openFileWrite() {
+ try {
+ String tmpdirname = util.utils.getOfficeTemp(tParam.getMSF()) ;
+
+ String copiedFile = tmpdirname+"XSimpleFileAccess_openWrite.txt";
+
+ if (oObj.exists(copiedFile))
+ oObj.kill(copiedFile);
+
+ com.sun.star.io.XOutputStream oStream =
+ oObj.openFileWrite(copiedFile);
+
+ oStream.closeOutput();
+ oObj.kill(copiedFile);
+
+ tRes.tested("openFileWrite()", true);
+ }
+ catch (com.sun.star.uno.Exception ex) {
+ log.println("Exception occurred while testing 'openFileWrite()'");
+ ex.printStackTrace(log);
+ tRes.tested("openFileWrite()", false);
+ }
+
+ } //EOF openFileWrite()
+
+ /**
+ * Test calls the method and checks return value and that
+ * no exceptions were thrown. <b>XSimpleFileAccess2.txt</b>
+ * file used.<p>
+ * Has <b> OK </b> status if the method returns not
+ * <code>null</code> value and no exceptions were thrown. <p>
+ */
+ public void _openFileReadWrite() {
+ try {
+ String dirnameTo = util.utils.getOfficeTemp(tParam.getMSF()) ;
+ String copiedFile = dirnameTo + "XSimpleFileAccess2.txt" ;
+
+ if (oObj.exists(copiedFile))
+ oObj.kill(copiedFile);
+
+ com.sun.star.io.XStream aStream =
+ oObj.openFileReadWrite(copiedFile);
+
+ aStream.getInputStream().closeInput();
+ aStream.getOutputStream().closeOutput();
+
+ oObj.kill(copiedFile);
+
+ tRes.tested("openFileReadWrite()", true);
+ }
+ catch (com.sun.star.uno.Exception ex) {
+ log.println("Exception occurred while testing 'openFileReadWrite()'");
+ ex.printStackTrace(log);
+ tRes.tested("openFileReadWrite()", false);
+ }
+
+ } //EOF openFileReadWrite()
+
+ /**
+ * Test calls the method and checks that no exceptions were thrown.
+ * Has <b> OK </b> status if no exceptions were thrown. <p>
+ */
+ public void _setInteractionHandler() {
+ XInteractionHandler handler = null;
+ Object oHandler = tEnv.getObjRelation("InteractionHandler");
+
+ if (oHandler == null)
+ throw new StatusException
+ (Status.failed("Relation InteractionHandler not found"));
+
+ try {
+ handler = UnoRuntime.queryInterface
+ (XInteractionHandler.class, oHandler);
+ oObj.setInteractionHandler(handler);
+ tRes.tested("setInteractionHandler()", true);
+ } catch (Exception ex) {
+ log.println("Exception occurred while testing 'setInteractionHandler()'");
+ ex.printStackTrace(log);
+ tRes.tested("setInteractionHandler()", false);
+ }
+
+ } //EOF setInteractionHandler()
+
+} // finish class _XSimpleFileAccess
+
diff --git a/qadevOOo/tests/java/ifc/ucb/_XSimpleFileAccess2.java b/qadevOOo/tests/java/ifc/ucb/_XSimpleFileAccess2.java
new file mode 100644
index 000000000..6e1acd537
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ucb/_XSimpleFileAccess2.java
@@ -0,0 +1,70 @@
+/*
+ * 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.ucb;
+
+import lib.MultiMethodTest;
+
+import com.sun.star.io.XInputStream;
+import com.sun.star.ucb.XSimpleFileAccess2;
+
+/**
+* Testing <code>com.sun.star.ucb.XSimpleFileAccess2</code>
+* interface methods. <p>
+* @see com.sun.star.ucb.XSimpleFileAccess2
+*/
+public class _XSimpleFileAccess2 extends MultiMethodTest {
+
+ public static XSimpleFileAccess2 oObj = null;
+
+ /**
+ * Writes <b>XSimpleFileAccess_new.txt</b> to disk, checks
+ * if it was successfully created and then deletes it. <p>
+ * Has <b> OK </b> status if after method call the file
+ * exists and no exceptions were thrown. <p>
+ */
+ public void _writeFile() {
+ boolean result = true;
+ try {
+ String dirnameTo = util.utils.getOfficeTemp(tParam.getMSF()) ;
+ String fileURL = dirnameTo + "XSimpleFileAccess_new.txt";
+ String dirname = util.utils.getFullTestURL("XSimpleFileAccess");
+ String filename = dirname+"XSimpleFileAccess.txt";
+ XInputStream iStream = oObj.openFileRead(filename);
+ oObj.writeFile(fileURL,iStream);
+ util.utils.pause(1000);
+ result = oObj.exists(fileURL);
+ oObj.kill(fileURL);
+ tRes.tested("writeFile()",result);
+ }
+ catch (com.sun.star.ucb.CommandAbortedException ex) {
+ log.println("CommandAbortedException occurred while testing "+
+ "'writeFile()'");
+ ex.printStackTrace(log);
+ tRes.tested("writeFile()",false);
+ }
+ catch (com.sun.star.uno.Exception ex) {
+ log.println("Exception occurred while testing 'writeFile()'");
+ ex.printStackTrace(log);
+ tRes.tested("writeFile()",false);
+ }
+
+ } //EOF writeFile()
+
+} // finish class _XSimpleFileAccess
+
diff --git a/qadevOOo/tests/java/ifc/ucb/_XSortedDynamicResultSetFactory.java b/qadevOOo/tests/java/ifc/ucb/_XSortedDynamicResultSetFactory.java
new file mode 100644
index 000000000..588a05129
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/ucb/_XSortedDynamicResultSetFactory.java
@@ -0,0 +1,150 @@
+/*
+ * 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.ucb;
+
+import com.sun.star.beans.Property;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.sdbc.XResultSet;
+import com.sun.star.ucb.Command;
+import com.sun.star.ucb.NumberedSortingInfo;
+import com.sun.star.ucb.OpenCommandArgument2;
+import com.sun.star.ucb.OpenMode;
+import com.sun.star.ucb.XCommandProcessor;
+import com.sun.star.ucb.XContent;
+import com.sun.star.ucb.XContentIdentifier;
+import com.sun.star.ucb.XContentIdentifierFactory;
+import com.sun.star.ucb.XContentProvider;
+import com.sun.star.ucb.XDynamicResultSet;
+import com.sun.star.ucb.XSortedDynamicResultSetFactory;
+import com.sun.star.uno.UnoRuntime;
+import lib.MultiMethodTest;
+
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+
+/**
+* Testing <code>com.sun.star.ucb.XSortedDynamicResultSetFactory</code>
+* interface methods :
+* <ul>
+* <li><code> createSortedDynamicResultSet()</code></li>
+* </ul> <p>
+* The following predefined files needed to complete the test:
+* <ul>
+* <li> <code>solibrary.jar</code> : is used to retrieve
+* content of its root directory.</li>
+* <ul> <p>
+* Test is <b> NOT </b> multithread compliant. <p>
+* @see com.sun.star.ucb.XSortedDynamicResultSetFactory
+*/
+public class _XSortedDynamicResultSetFactory extends MultiMethodTest {
+
+ /**
+ * Contains the tested object.
+ */
+ public XSortedDynamicResultSetFactory oObj;
+
+ /**
+ * Creates sorted dynamic result set from result set. For this
+ * a dynamic result set is to be created. It is created by
+ * retrieving content list from JAR archive.
+ * Has <b>OK</b> status if numbers of rows are equal and they are
+ * greater than 0 (because JAR file contains at least one entry).
+ */
+ public void _createSortedDynamicResultSet() {
+ boolean result = true ;
+
+ XMultiServiceFactory xMSF = tParam.getMSF();
+ XDynamicResultSet dynResSet = null ;
+ try {
+ Object oUCB = xMSF.createInstanceWithArguments
+ ("com.sun.star.ucb.UniversalContentBroker",
+ new Object[0]) ;
+
+ XContentIdentifierFactory ciFac = UnoRuntime.queryInterface
+ (XContentIdentifierFactory.class,oUCB) ;
+
+ String url = util.utils.getFullTestURL("SwXTextEmbeddedObject.sxw") ;
+ StringBuilder escUrl = new StringBuilder();
+
+ // In base URL of a JAR file in content URL all directory
+ // separators ('/') must be replaced with escape symbol '%2F'.
+ int idx = url.indexOf("/") ;
+ int lastIdx = -1 ;
+ while (idx >= 0) {
+ escUrl.append(url.substring(lastIdx + 1, idx)).append("%2F");
+ lastIdx = idx ;
+ idx = url.indexOf("/", idx + 1) ;
+ }
+ escUrl.append(url.substring(lastIdx + 1));
+ String cntUrl = "vnd.sun.star.pkg://" + escUrl.toString() + "/" ;
+
+ XContentIdentifier CI = ciFac.createContentIdentifier(cntUrl) ;
+
+ XContentProvider cntProv = UnoRuntime.queryInterface(XContentProvider.class, oUCB) ;
+
+ XContent cnt = cntProv.queryContent(CI) ;
+
+ XCommandProcessor cmdProc = UnoRuntime.queryInterface(XCommandProcessor.class, cnt) ;
+
+ Property prop = new Property() ;
+ prop.Name = "Title" ;
+
+ Command cmd = new Command("open", -1, new OpenCommandArgument2
+ (OpenMode.ALL, 10000, null, new Property[] {prop},
+ new NumberedSortingInfo[0])) ;
+
+ dynResSet = (XDynamicResultSet) AnyConverter.toObject(
+ new Type(XDynamicResultSet.class),cmdProc.execute(cmd, 0, null));
+ } catch (com.sun.star.uno.Exception e) {
+ e.printStackTrace(log);
+ }
+
+ XDynamicResultSet sortedSet = oObj.createSortedDynamicResultSet
+ (dynResSet, new NumberedSortingInfo[0], null) ;
+
+ int rowCount = -1 ;
+ if (sortedSet != null) {
+ XResultSet set = null ;
+ try {
+ set = sortedSet.getStaticResultSet() ;
+ } catch (com.sun.star.ucb.ListenerAlreadySetException e) {
+ e.printStackTrace(log);
+ }
+
+ try {
+ set.last() ;
+ rowCount = set.getRow();
+ log.println("Number of rows in result set: " + rowCount);
+ } catch (com.sun.star.sdbc.SQLException e) {
+ log.println("Exception occurred while accessing "+
+ "sorted result set :");
+ e.printStackTrace(log);
+ }
+ } else {
+ log.println("Null returned !!!");
+ result &= false ;
+ }
+
+ result &= rowCount > 1 ;
+
+ tRes.tested("createSortedDynamicResultSet()", result) ;
+ }
+
+
+}