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