summaryrefslogtreecommitdiff
path: root/filter/qa/complex/filter/misc/TypeDetection6FileFormat.java
blob: 6fda574ae8f5ec5c9c3ebc051d2e841fea653772 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
/*
 * TypeDetection6FileFormat.java
 *
 * Created on 26. April 2004, 10:37
 */
package complex.filter.misc;

import com.sun.star.container.XNameAccess;
import com.sun.star.lang.XMultiServiceFactory;
import com.sun.star.uno.UnoRuntime;
import com.sun.star.uno.XInterface;

import util.utils;

// ---------- junit imports -----------------
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.openoffice.test.OfficeConnection;
import static org.junit.Assert.*;
// ------------------------------------------

/**
 *
 * @author  cn93815
 */
public class TypeDetection6FileFormat
{

    static XMultiServiceFactory xMSF;

    /**
     * A function to tell the framework, which test functions are available.
     * @return All test methods.
     */
//    public String[] getTestMethodNames() {
//        return new String[]{"checkFilterFactory",
//                            "checkTypeDetection"};
//    }
    /** Create the environment for following tests.
     * Use either a component loader from desktop or
     * from frame
     * @throws Exception Exception
     */
    @Before public void before() throws Exception
    {

        xMSF = getMSF();
        assertNotNull("Could not get XMultiServiceFactory", xMSF);

    }

    /**
     * call the function <CODE>checkFileFormatSupport</CODE> to test <CODE>com.sun.star.document.FilterFactory</CODE>
     * @see com.sun.star.document.FilterFactory
     */
    @Test public void checkFilterFactory()
    {
        checkFileFormatSupport("com.sun.star.document.FilterFactory");
    }

    /**
     * call the function <CODE>checkFileFormatSupport</CODE> to test <CODE>com.sun.star.document.TypeDetection</CODE>
     * @see com.sun.star.document.TypeDetection
     */
    @Test public void checkTypeDetection()
    {
        checkFileFormatSupport("com.sun.star.document.TypeDetection");

    }

    /**
     * test the given service <CODE>serviceName</CODE>.
     * The serve was created and the filter 'TypeDetection6FileFormat' was searched
     * @param serviceName the name of the service to test
     */
    private void checkFileFormatSupport(String serviceName)
    {
        System.out.println("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++");
        System.out.println("testing service '" + serviceName + "'");

        XInterface oObj = null;
        try
        {
            oObj = getTestObject(serviceName);
            System.out.println("ImplName: " + utils.getImplName(oObj));
        }
        catch (java.lang.Exception e)
        {
            fail("could not get test object");
        }
        XNameAccess xNA = UnoRuntime.queryInterface(XNameAccess.class, oObj);
        String msg = "Could not find filter 'TypeDetection6FileFormat'!";
        msg += "\nMaybe 'TypeDetection6FileFormat.xcu' is not registered.";
        assertTrue(msg, xNA.hasByName("TypeDetection6FileFormat"));


    }

    /**
     * Creates an instance for the given <CODE>serviceName</CODE>
     * @param serviceName the name of the service which should be created
     * @throws Exception was thrown if creataion failes
     * @return <CODE>XInterface</CODE> of service
     */
    public XInterface getTestObject(String serviceName) throws Exception
    {

        Object oInterface = xMSF.createInstance(serviceName);

        if (oInterface == null)
        {
            fail("Service wasn't created");
            throw new Exception("could not create service '" + serviceName + "'");
        }
        return (XInterface) oInterface;
    }

        private XMultiServiceFactory getMSF()
    {
        final XMultiServiceFactory xMSF1 = UnoRuntime.queryInterface(XMultiServiceFactory.class, connection.getComponentContext().getServiceManager());
        return xMSF1;
    }

    // setup and close connections
    @BeforeClass public static void setUpConnection() throws Exception {
        System.out.println("setUpConnection()");
        connection.setUp();
    }

    @AfterClass public static void tearDownConnection()
        throws InterruptedException, com.sun.star.uno.Exception
    {
        System.out.println("tearDownConnection()");
        connection.tearDown();
    }

    private static final OfficeConnection connection = new OfficeConnection();

}