1 /*
2  * This file is part of the LibreOffice project.
3  *
4  * This Source Code Form is subject to the terms of the Mozilla Public
5  * License, v. 2.0. If a copy of the MPL was not distributed with this
6  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
7  *
8  * This file incorporates work covered by the following license notice:
9  *
10  *   Licensed to the Apache Software Foundation (ASF) under one or more
11  *   contributor license agreements. See the NOTICE file distributed
12  *   with this work for additional information regarding copyright
13  *   ownership. The ASF licenses this file to you under the Apache
14  *   License, Version 2.0 (the "License"); you may not use this file
15  *   except in compliance with the License. You may obtain a copy of
16  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
17  */
18 
19 package mod._cnt;
20 
21 import java.io.PrintWriter;
22 
23 import lib.TestCase;
24 import lib.TestEnvironment;
25 import lib.TestParameters;
26 
27 import com.sun.star.lang.XMultiServiceFactory;
28 import com.sun.star.ucb.XContentIdentifierFactory;
29 import com.sun.star.uno.UnoRuntime;
30 import com.sun.star.uno.XInterface;
31 
32 /**
33 * Test for object which is represented by service
34 * <code>com.sun.star.cnt.ChaosContentProvider</code>. <p>
35 * Object implements the following interfaces :
36 * <ul>
37 *  <li> <code>com::sun::star::ucb::XContentProvider</code></li>
38 * </ul>
39 * This object test <b> is NOT </b> designed to be run in several
40 * threads concurrently.
41 * @see com.sun.star.ucb.XContentProvider
42 * @see com.sun.star.ucb.ChaosContentProvider
43 * @see ifc.ucb._XContentProvider
44 */
45 public class ChaosContentProvider extends TestCase {
46 
47     /**
48     * Creating a TestEnvironment for the interfaces to be tested.
49     * Creates an instance of the service
50     * <code>com.sun.star.cnt.ChaosContentProvider</code>. <p>
51     *     Object relations created :
52     * <ul>
53     *  <li> <code>'FACTORY'</code> for
54     *      {@link ifc.ucb._XContentProvider} factory for
55     *   content identifiers. Here it is
56     *   <code>UniversalContentBroker</code> service.</li>
57     *  <li> <code>'CONTENT1'</code> for
58     *     {@link ifc.ucb._XContentProvider}: suitable
59     *   content URL for this provider </li>
60     *  <li> <code>'CONTENT2'</code> for
61     *     {@link ifc.ucb._XContentProvider}: another suitable
62     *   content URL for this provider </li>
63     * </ul>
64     */
65     @Override
createTestEnvironment( TestParameters Param, PrintWriter log )66     public TestEnvironment createTestEnvironment( TestParameters Param,
67                                                   PrintWriter log )
68                                                     throws Exception {
69         XMultiServiceFactory xMSF = Param.getMSF();
70         Object oInterface = xMSF.createInstance
71                 ( "com.sun.star.ucb.ChaosContentProvider" );
72         Object cntFactory = xMSF.createInstance
73                 ( "com.sun.star.comp.ucb.UniversalContentBroker" );
74         XInterface oObj = (XInterface) oInterface;
75 
76         TestEnvironment tEnv = new TestEnvironment( oObj );
77 
78         // adding relation for XContentProvider
79         XContentIdentifierFactory CIF = UnoRuntime.queryInterface(XContentIdentifierFactory.class, cntFactory);
80 
81         tEnv.addObjRelation("FACTORY", CIF) ;
82         tEnv.addObjRelation("CONTENT1", "ftp://localhost") ;
83         tEnv.addObjRelation("CONTENT2", "ftp://sva.dorms.spbu.ru") ;
84 
85         return tEnv;
86     } // finish method getTestEnvironment
87 
88 }
89 
90