blob: 4463374ec817d20bfbac3b0cf8a444f1b15560cf [file] [log] [blame]
/**************************************************************
*
* 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
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*************************************************************/
package ifc.linguistic2;
import lib.MultiMethodTest;
import com.sun.star.lang.EventObject;
import com.sun.star.lang.Locale;
import com.sun.star.linguistic2.DictionaryListEvent;
import com.sun.star.linguistic2.XDictionary;
import com.sun.star.linguistic2.XDictionaryList;
import com.sun.star.linguistic2.XDictionaryListEventListener;
/**
* Testing <code>com.sun.star.linguistic2.XDictionaryList</code>
* interface methods:
* <ul>
* <li><code>getCount()</code></li>
* <li><code>getDictionaries()</code></li>
* <li><code>getDictionaryByName()</code></li>
* <li><code>addDictionary()</code></li>
* <li><code>removeDictionary()</code></li>
* <li><code>addDictionaryListEventListener()</code></li>
* <li><code>removeDictionaryListEventListener()</code></li>
* <li><code>beginCollectEvents()</code></li>
* <li><code>endCollectEvents()</code></li>
* <li><code>flushEvents()</code></li>
* <li><code>createDictionary()</code></li>
* </ul> <p>
* @see com.sun.star.linguistic2.XDictionaryList
*/
public class _XDictionaryList extends MultiMethodTest {
public XDictionaryList oObj = null;
public XDictionary addedDic = null;
/**
* Flag for testing of listeners.
*/
public boolean listenerCalled = false;
/**
* Class implements interface <code>XDictionaryListEventListener</code>
* for test method <code>addDictionaryListEventListener</code>.
* @see com.sun.star.linguistic2.XDictionaryListEventListener
*/
public class MyDictionaryListEventListener implements
XDictionaryListEventListener {
public void disposing ( EventObject oEvent ) {
log.println("Listener has been disposed");
}
public void processDictionaryListEvent( DictionaryListEvent aDicEvent) {
listenerCalled = true;
}
}
XDictionaryListEventListener listener = new MyDictionaryListEventListener();
short count = 0;
/**
* Test calls the method and checks returned value. <p>
* Has <b> OK </b> status if returned value is greater than zero. <p>
*/
public void _getCount() {
count = oObj.getCount();
tRes.tested("getCount()",(count > 0) );
}
/**
* Test calls the method and checks number of obtained dictionaries
* with value that was returned by method <code>getCount</code>. <p>
* Has <b> OK </b> status if values are equal. <p>
* The following method tests are to be completed successfully before :
* <ul>
* <li> <code> getCount() </code> : to have number of dictionaries </li>
* </ul>
*/
public void _getDictionaries() {
requiredMethod("getCount()");
XDictionary[] dics = oObj.getDictionaries();
boolean res = (dics.length == count);
if (!res) {
log.println("Expected: " + oObj.getCount());
log.println("Gained: " + dics.length);
}
tRes.tested("getDictionaries()", res);
}
/**
* Test calls the method, makes some actions that leads to event
* <code>processDictionaryListEvent</code>, removes listener, checks flag
* <code>listenerCalled</code> and checks returned value. <p>
* Has <b> OK </b> status if returned value is true and value of flag
* <code>listenerCallled</code> is true. <p>
*/
public void _addDictionaryListEventListener() {
listenerCalled = false;
XDictionary xDic = oObj.createDictionary("ListenDic",
new Locale("en","US","WIN"),
com.sun.star.linguistic2.DictionaryType.POSITIVE,"");
boolean res = oObj.addDictionaryListEventListener(listener, false);
oObj.flushEvents();
oObj.addDictionary(xDic);
xDic.add("Positiv", false, "");
xDic.setActive(true);
oObj.flushEvents();
oObj.removeDictionary(xDic);
oObj.removeDictionaryListEventListener(listener);
tRes.tested("addDictionaryListEventListener()",listenerCalled && res);
}
/**
* Test calls the method, makes some actions that leads to event
* <code>processDictionaryListEvent</code>, checks flag
* <code>listenerCalled</code> and checks returned value. <p>
* Has <b> OK </b> status if returned value is false and value of flag
* <code>listenerCallled</code> is false. <p>
*/
public void _removeDictionaryListEventListener() {
listenerCalled = false;
XDictionary xDic = oObj.createDictionary("ListenDic",
new Locale("en","US","WIN"),
com.sun.star.linguistic2.DictionaryType.POSITIVE,"");
oObj.addDictionaryListEventListener(listener,false);
oObj.flushEvents();
oObj.addDictionary(xDic);
xDic.add("Positiv", false,"");
xDic.setActive(true);
listenerCalled = false;
boolean res = oObj.removeDictionaryListEventListener(listener);
oObj.flushEvents();
oObj.removeDictionary(xDic);
tRes.tested(
"removeDictionaryListEventListener()",
listenerCalled == false && res == true );
}
/**
* Test creates new dictionary, adds the dictionary to list and compares
* number of dictionaries after adding with number of dictionaries before.<p>
* Has <b> OK </b> status if number of dictionaries after method call is
* greater than number of dictionaries before method call. <p>
*/
public void _addDictionary() {
short previous = oObj.getCount();
addedDic = oObj.createDictionary("AddedDic",new Locale("en","US","WIN"),
com.sun.star.linguistic2.DictionaryType.POSITIVE,"");
addedDic.add("Positiv",false,"");
oObj.addDictionary(addedDic);
short after = oObj.getCount();
tRes.tested( "addDictionary()", (after > previous) );
}
/**
* Test calls the method and compares number of dictionaries
* before method call and after. <p>
* Has <b> OK </b> status if number of dictionaries before method call is
* less than number of dictionaries after method call. <p>
*/
public void _removeDictionary() {
short previous = oObj.getCount();
oObj.removeDictionary(addedDic);
short after = oObj.getCount();
tRes.tested("removeDictionary()",(after < previous) );
}
/**
* Test calls the method and checks returned value. <p>
* Has <b> OK </b> status if returned value isn't null. <p>
*/
public void _getDictionaryByName() {
XDictionary getting = oObj.getDictionaryByName("NegativDic");
tRes.tested("getDictionaryByName()", getting != null );
}
/**
* Test calls the method and checks returned value. <p>
* Has <b> OK </b> status if returned value isn't null. <p>
*/
public void _createDictionary() {
XDictionary tmpDic = oObj.createDictionary("AddedDic",
new Locale("en","US","WIN"),
com.sun.star.linguistic2.DictionaryType.POSITIVE,"");
tRes.tested("createDictionary()", tmpDic != null );
}
/**
* Test creates dictionary, adds dictionary list event listener,
* begins collect events, makes some actions that leads to event
* <code>processDictionaryListEvent</code>, ends collect events,
* removes the listener and checks the flag <code>listenerCalled</code> . <p>
* Has <b> OK </b> status if value of the flag is true. <p>
*/
public void _beginCollectEvents() {
listenerCalled = false;
XDictionary xDic = oObj.createDictionary("ListenDic",
new Locale("en","US","WIN"),
com.sun.star.linguistic2.DictionaryType.POSITIVE,"");
oObj.addDictionaryListEventListener(listener,false);
oObj.beginCollectEvents();
oObj.addDictionary(xDic);
xDic.add("Positiv",false,"");
xDic.setActive(true);
oObj.removeDictionary(xDic);
oObj.endCollectEvents();
oObj.removeDictionaryListEventListener(listener);
tRes.tested("beginCollectEvents()", listenerCalled );
}
/**
* Test does nothing. <p>
* Has <b> OK </b> status if method
* <code>addDictionaryListEventListener()</code> was completed
* successfully. <p>
* The following method tests are to be completed successfully before :
* <ul>
* <li> <code> addDictionaryListEventListener() </code> :
* if listener adding worked, flushEvents was already used and worked </li>
* </ul>
*/
public void _flushEvents() {
requiredMethod("addDictionaryListEventListener()");
// if listener adding worked, flushEvents was already used and worked
tRes.tested("flushEvents()",true);
}
/**
* Test does nothing. <p>
* Has <b> OK </b> status if method
* <code>beginCollectEvents()</code> was completed successfully. <p>
* The following method tests are to be completed successfully before :
* <ul>
* <li> <code> beginCollectEvents() </code> :
* if beginCollectEvents() worked then endCollectEvents was already
* used and worked </li>
* </ul>
*/
public void _endCollectEvents() {
requiredMethod("beginCollectEvents()");
// if beginCollectEvents() worked, endCollectEvents
// was already used and worked
tRes.tested("endCollectEvents()",true);
}
} // finish class _XDictionaryList