xref: /trunk/test/testuno/source/api/i18n/XIndexEntrySupplierTest.java (revision 3309286857f19787ae62bd793a98b5af4edd2ad3)
1de76a5adSDamjan Jovanovic /**************************************************************
2de76a5adSDamjan Jovanovic  *
3de76a5adSDamjan Jovanovic  * Licensed to the Apache Software Foundation (ASF) under one
4de76a5adSDamjan Jovanovic  * or more contributor license agreements.  See the NOTICE file
5de76a5adSDamjan Jovanovic  * distributed with this work for additional information
6de76a5adSDamjan Jovanovic  * regarding copyright ownership.  The ASF licenses this file
7de76a5adSDamjan Jovanovic  * to you under the Apache License, Version 2.0 (the
8de76a5adSDamjan Jovanovic  * "License"); you may not use this file except in compliance
9de76a5adSDamjan Jovanovic  * with the License.  You may obtain a copy of the License at
10de76a5adSDamjan Jovanovic  *
11de76a5adSDamjan Jovanovic  *   http://www.apache.org/licenses/LICENSE-2.0
12de76a5adSDamjan Jovanovic  *
13de76a5adSDamjan Jovanovic  * Unless required by applicable law or agreed to in writing,
14de76a5adSDamjan Jovanovic  * software distributed under the License is distributed on an
15de76a5adSDamjan Jovanovic  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16de76a5adSDamjan Jovanovic  * KIND, either express or implied.  See the License for the
17de76a5adSDamjan Jovanovic  * specific language governing permissions and limitations
18de76a5adSDamjan Jovanovic  * under the License.
19de76a5adSDamjan Jovanovic  *
20de76a5adSDamjan Jovanovic  *************************************************************/
21de76a5adSDamjan Jovanovic 
22de76a5adSDamjan Jovanovic 
23de76a5adSDamjan Jovanovic 
24*2f709283SDamjan Jovanovic package api.i18n;
25de76a5adSDamjan Jovanovic 
26de76a5adSDamjan Jovanovic import com.sun.star.i18n.XIndexEntrySupplier;
27de76a5adSDamjan Jovanovic import com.sun.star.lang.Locale;
28*2f709283SDamjan Jovanovic import com.sun.star.uno.UnoRuntime;
29*2f709283SDamjan Jovanovic import com.sun.star.uno.XComponentContext;
30*2f709283SDamjan Jovanovic import org.junit.After;
31*2f709283SDamjan Jovanovic import org.junit.AfterClass;
32*2f709283SDamjan Jovanovic import org.junit.Before;
33*2f709283SDamjan Jovanovic import org.junit.BeforeClass;
34*2f709283SDamjan Jovanovic import org.junit.Assert;
35*2f709283SDamjan Jovanovic import org.junit.Test;
36*2f709283SDamjan Jovanovic import org.openoffice.test.uno.UnoApp;
37de76a5adSDamjan Jovanovic 
38de76a5adSDamjan Jovanovic /**
39de76a5adSDamjan Jovanovic * Testing <code>com.sun.star.i18n.XIndexEntrySupplier</code>
40de76a5adSDamjan Jovanovic * interface methods:
41de76a5adSDamjan Jovanovic * <ul>
42de76a5adSDamjan Jovanovic *  <li><code> getIndexCharacter() </code></li>
43de76a5adSDamjan Jovanovic *  <li><code> getIndexFollowPageWord() </code></li>
44de76a5adSDamjan Jovanovic * </ul><p>
45de76a5adSDamjan Jovanovic * Test is <b> NOT </b> multithread compliant. <p>
46de76a5adSDamjan Jovanovic * @see com.sun.star.i18n.XIndexEntrySupplier
47de76a5adSDamjan Jovanovic */
48*2f709283SDamjan Jovanovic public class XIndexEntrySupplierTest {
49*2f709283SDamjan Jovanovic     private static final UnoApp app = new UnoApp();
50*2f709283SDamjan Jovanovic 
51*2f709283SDamjan Jovanovic     private XComponentContext xContext = null;
52de76a5adSDamjan Jovanovic     public XIndexEntrySupplier oObj = null;
53de76a5adSDamjan Jovanovic     public String[] languages = new String[]{"de","en","es","fr","ja","ko","zh"};
54de76a5adSDamjan Jovanovic     public String[] countries = new String[]{"DE","US","ES","FR","JP","KR","CN"};
55de76a5adSDamjan Jovanovic     public String[] onePage = new String[]{"f.","p."," s."," sv","p.","",""};
56de76a5adSDamjan Jovanovic     public String[] morePages = new String[]{"ff.","pp."," ss."," sv","pp.","",""};
57de76a5adSDamjan Jovanovic 
58*2f709283SDamjan Jovanovic     // setup and close connections
59*2f709283SDamjan Jovanovic     @BeforeClass
setUpConnection()60*2f709283SDamjan Jovanovic     public static void setUpConnection() throws Exception
61*2f709283SDamjan Jovanovic     {
62*2f709283SDamjan Jovanovic         app.start();
63*2f709283SDamjan Jovanovic     }
64*2f709283SDamjan Jovanovic 
65*2f709283SDamjan Jovanovic     @AfterClass
tearDownConnection()66*2f709283SDamjan Jovanovic     public static void tearDownConnection() throws InterruptedException, com.sun.star.uno.Exception
67*2f709283SDamjan Jovanovic     {
68*2f709283SDamjan Jovanovic         app.close();
69*2f709283SDamjan Jovanovic     }
70*2f709283SDamjan Jovanovic 
71*2f709283SDamjan Jovanovic     @Before
before()72*2f709283SDamjan Jovanovic     public void before() throws Exception {
73*2f709283SDamjan Jovanovic         xContext = app.getComponentContext();
74*2f709283SDamjan Jovanovic         oObj = UnoRuntime.queryInterface(
75*2f709283SDamjan Jovanovic             XIndexEntrySupplier.class,
76*2f709283SDamjan Jovanovic             xContext.getServiceManager().createInstanceWithContext("com.sun.star.i18n.IndexEntrySupplier", xContext)
77*2f709283SDamjan Jovanovic         );
78*2f709283SDamjan Jovanovic     }
79*2f709283SDamjan Jovanovic 
80de76a5adSDamjan Jovanovic     /**
81de76a5adSDamjan Jovanovic     * Test calls the method, then result is checked. <p>
82de76a5adSDamjan Jovanovic     * Has <b> OK </b> status if the method returns right index for several
83de76a5adSDamjan Jovanovic     * locales and word.
84de76a5adSDamjan Jovanovic     */
85*2f709283SDamjan Jovanovic     @Test
_getIndexCharacter()86de76a5adSDamjan Jovanovic     public void _getIndexCharacter() {
87de76a5adSDamjan Jovanovic         boolean res = true;
88*2f709283SDamjan Jovanovic         System.out.println("getIndexCharacter('chapter', getLocale(i), '')");
89de76a5adSDamjan Jovanovic         for (int i=0; i<7; i++) {
90*2f709283SDamjan Jovanovic             System.out.print("getIndexCharacter('chapter', " + countries[i] + ") :");
91de76a5adSDamjan Jovanovic             String get = oObj.getIndexCharacter("chapter", getLocale(i), "");
92*2f709283SDamjan Jovanovic             System.out.println(get);
93de76a5adSDamjan Jovanovic             res &= get.equals("C");
94de76a5adSDamjan Jovanovic         }
95*2f709283SDamjan Jovanovic         Assert.assertTrue("getIndexCharacter()", res);
96de76a5adSDamjan Jovanovic     }
97de76a5adSDamjan Jovanovic 
98de76a5adSDamjan Jovanovic     /**
99de76a5adSDamjan Jovanovic     * Test calls the method with two different parameters: for one page and
100de76a5adSDamjan Jovanovic     * for several pages, after every call result is checked. <p>
101de76a5adSDamjan Jovanovic     * Has <b> OK </b> status if method returns right index for several locales.
102de76a5adSDamjan Jovanovic     */
103*2f709283SDamjan Jovanovic     @Test
_getIndexFollowPageWord()104de76a5adSDamjan Jovanovic     public void _getIndexFollowPageWord() {
105de76a5adSDamjan Jovanovic         boolean res = true;
106de76a5adSDamjan Jovanovic 
107de76a5adSDamjan Jovanovic         for (int i=0; i<7; i++) {
108de76a5adSDamjan Jovanovic             String get = oObj.getIndexFollowPageWord(true, getLocale(i));
109de76a5adSDamjan Jovanovic             if (! get.equals(morePages[i]) ) {
110*2f709283SDamjan Jovanovic                 System.out.println("Language: " + languages[i]);
111*2f709283SDamjan Jovanovic                 System.out.println("Getting: #" + get + "#");
112*2f709283SDamjan Jovanovic                 System.out.println("Expected: #" + morePages[i] + "#");
113de76a5adSDamjan Jovanovic             }
114de76a5adSDamjan Jovanovic             res &= get.equals(morePages[i]);
115de76a5adSDamjan Jovanovic             get = oObj.getIndexFollowPageWord(false,getLocale(i));
116de76a5adSDamjan Jovanovic             if (! get.equals(onePage[i]) ) {
117*2f709283SDamjan Jovanovic                 System.out.println("Language: " + languages[i]);
118*2f709283SDamjan Jovanovic                 System.out.println("Getting: #" + get + "#");
119*2f709283SDamjan Jovanovic                 System.out.println("Expected: #" + onePage[i] + "#");
120de76a5adSDamjan Jovanovic             }
121de76a5adSDamjan Jovanovic             res &= get.equals(onePage[i]);
122de76a5adSDamjan Jovanovic         }
123*2f709283SDamjan Jovanovic         Assert.assertTrue("getIndexFollowPageWord()", res);
124de76a5adSDamjan Jovanovic     }
125de76a5adSDamjan Jovanovic 
126de76a5adSDamjan Jovanovic     /**
127de76a5adSDamjan Jovanovic     * Method returns locale for a given language and country.
128de76a5adSDamjan Jovanovic     * @param k index of needed locale.
129de76a5adSDamjan Jovanovic     * @return Locale by the index from arrays defined above
130de76a5adSDamjan Jovanovic     */
getLocale(int k)131de76a5adSDamjan Jovanovic     public Locale getLocale(int k) {
132de76a5adSDamjan Jovanovic         return new Locale(languages[k], countries[k], "");
133de76a5adSDamjan Jovanovic     }
134de76a5adSDamjan Jovanovic 
135de76a5adSDamjan Jovanovic 
136de76a5adSDamjan Jovanovic } // end XIndexEntrySupplier
137