blob: 1a6a3e74ce1923ebc89d403b3f6f36a68e25a278 [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.awt;
import lib.MultiMethodTest;
import lib.Status;
import com.sun.star.awt.XListBox;
/**
* Testing <code>com.sun.star.awt.XListBox</code>
* interface methods :
* <ul>
* <li><code> addItemListener()</code></li>
* <li><code> removeItemListener()</code></li>
* <li><code> addActionListener()</code></li>
* <li><code> removeActionListener()</code></li>
* <li><code> addItem()</code></li>
* <li><code> addItems()</code></li>
* <li><code> removeItems()</code></li>
* <li><code> getItemCount()</code></li>
* <li><code> getItem()</code></li>
* <li><code> getItems()</code></li>
* <li><code> getSelectedItemPos()</code></li>
* <li><code> getSelectedItemsPos()</code></li>
* <li><code> getSelectedItem()</code></li>
* <li><code> getSelectedItems()</code></li>
* <li><code> selectItemPos()</code></li>
* <li><code> selectItemsPos()</code></li>
* <li><code> selectItem()</code></li>
* <li><code> isMutipleMode()</code></li>
* <li><code> setMultipleMode()</code></li>
* <li><code> getDropDownLineCount()</code></li>
* <li><code> setDropDownLineCount()</code></li>
* <li><code> makeVisible()</code></li>
* </ul> <p>
* Test is <b> NOT </b> multithread compilant. <p>
* @see com.sun.star.awt.XListBox
*/
public class _XListBox extends MultiMethodTest {
public XListBox oObj = null;
/**
* Listener implementation which sets flags on appropriate method calls
*/
protected class TestActionListener implements com.sun.star.awt.XActionListener {
public boolean disposingCalled = false ;
public boolean actionPerformedCalled = false ;
public void disposing(com.sun.star.lang.EventObject e) {
disposingCalled = true ;
}
public void actionPerformed(com.sun.star.awt.ActionEvent e) {
actionPerformedCalled = true ;
}
}
TestActionListener actionListener = new TestActionListener() ;
/**
* Listener implementation which sets flags on appropriate method calls
*/
protected class TestItemListener implements com.sun.star.awt.XItemListener {
public boolean disposingCalled = false ;
public boolean itemStateChangedCalled = false ;
public void disposing(com.sun.star.lang.EventObject e) {
disposingCalled = true ;
}
public void itemStateChanged(com.sun.star.awt.ItemEvent e) {
itemStateChangedCalled = true ;
}
}
TestItemListener itemListener = new TestItemListener() ;
short lineCount = 0 ;
short itemCount = 0 ;
/**
* Retrieves object relations.
* @throws StatusException If one of relations not found.
*/
public void before() {
itemCount = oObj.getItemCount();
}
/**
* !!! Can be checked only interactively !!!
*/
public void _addItemListener() {
oObj.addItemListener(itemListener) ;
tRes.tested("addItemListener()", Status.skipped(true)) ;
}
/**
* !!! Can be checked only interactively !!!
*/
public void _removeItemListener() {
requiredMethod("addItemListener()") ;
oObj.removeItemListener(itemListener) ;
tRes.tested("removeItemListener()", Status.skipped(true)) ;
}
/**
* !!! Can be checked only interactively !!!
*/
public void _addActionListener() {
oObj.addActionListener(actionListener) ;
tRes.tested("addActionListener()", Status.skipped(true)) ;
}
/**
* !!! Can be checked only interactively !!!
*/
public void _removeActionListener() {
requiredMethod("addActionListener()") ;
oObj.removeActionListener(actionListener) ;
tRes.tested("removeActionListener()", Status.skipped(true)) ;
}
/**
* Adds one item to the last position and check the number of
* items after addition. <p>
* Has <b>OK</b> status if the number of items increased by 1.<p>
* The following method tests are to be completed successfully before :
* <ul>
* <li> <code> getItemCount </code> </li>
* </ul>
*/
public void _addItem() {
requiredMethod("getItemCount()") ;
boolean result = true ;
oObj.addItem("Item1", itemCount) ;
result = oObj.getItemCount() == itemCount + 1 ;
tRes.tested("addItem()", result) ;
}
/**
* Adds one two items to the last position and check the number of
* items after addition. <p>
* Has <b>OK</b> status if the number of items increased by 2.<p>
* The following method tests are to be executed before :
* <ul>
* <li> <code> addItem </code> </li>
* </ul>
*/
public void _addItems() {
executeMethod("addItem()") ;
boolean result = true ;
short oldCnt = oObj.getItemCount() ;
oObj.addItems(new String[] {"Item2", "Item3"}, oldCnt) ;
result = oObj.getItemCount() == oldCnt + 2 ;
tRes.tested("addItems()", result) ;
}
/**
* Gets the current number of items and tries to remove them all
* then checks number of items. <p>
* Has <b>OK</b> status if no items remains. <p>
* The following method tests are to be executed before :
* <ul>
* <li> <code> getItems </code> </li>
* <li> <code> getItem </code> </li>
* </ul>
*/
public void _removeItems() {
executeMethod("getItems()") ;
executeMethod("getItem()") ;
executeMethod("getSelectedItemPos()") ;
executeMethod("getSelectedItemsPos()") ;
executeMethod("getSelectedItem()") ;
executeMethod("getSelectedItems()") ;
boolean result = true ;
short oldCnt = oObj.getItemCount() ;
oObj.removeItems((short)0, oldCnt) ;
result = oObj.getItemCount() == 0 ;
tRes.tested("removeItems()", result) ;
}
/**
* Just retrieves current number of items and stores it. <p>
* Has <b>OK</b> status if the count is not less than 0.
*/
public void _getItemCount() {
itemCount = oObj.getItemCount() ;
tRes.tested("getItemCount()", itemCount >= 0) ;
}
/**
* After <code>addItem</code> and <code>addItems</code> methods
* test the following items must exist {..., "Item1", "Item2", "Item3"}
* Retrieves the item from the position which was ititially the last.<p>
* Has <b>OK</b> status if the "Item1" was retrieved. <p>
* The following method tests are to be executed before :
* <ul>
* <li> <code> addItems </code> </li>
* </ul>
*/
public void _getItem() {
requiredMethod("addItems()") ;
boolean result = true ;
String item = oObj.getItem(itemCount) ;
result = "Item1".equals(item) ;
tRes.tested("getItem()", result) ;
}
/**
* After <code>addItem</code> and <code>addItems</code> methods
* test the following items must exist {..., "Item1", "Item2", "Item3"}
* Retrieves all items. <p>
* Has <b>OK</b> status if the last three items retrieved are
* "Item1", "Item2" and "Item3". <p>
* The following method tests are to be executed before :
* <ul>
* <li> <code> addItems </code> </li>
* </ul>
*/
public void _getItems() {
requiredMethod("addItems()") ;
boolean result = true ;
String[] items = oObj.getItems() ;
for (int i = itemCount; i < (itemCount + 3); i++) {
result &= ("Item" + (i+1 - itemCount)).equals(items[i]) ;
}
tRes.tested("getItems()", result) ;
}
/**
* Gets line count and stores it. <p>
* Has <b>OK</b> status if no runtime exceptions occured.
*/
public void _getDropDownLineCount() {
boolean result = true ;
lineCount = oObj.getDropDownLineCount() ;
tRes.tested("getDropDownLineCount()", result) ;
}
/**
* Sets a new value and then checks get value. <p>
* Has <b>OK</b> status if set and get values are equal. <p>
* The following method tests are to be completed successfully before :
* <ul>
* <li> <code> getDropDownLineCount </code> </li>
* </ul>
*/
public void _setDropDownLineCount() {
requiredMethod("getDropDownLineCount()") ;
boolean result = true ;
oObj.setDropDownLineCount((short)(lineCount + 1)) ;
result = oObj.getDropDownLineCount() == lineCount + 1 ;
tRes.tested("setDropDownLineCount()", result) ;
}
/**
* Selects some item and gets selected item position. <p>
* Has <b> OK </b> status if position is equal to position set. <p>
* The following method tests are to be completed successfully before :
* <ul>
* <li> <code> addItems </code> : to have some items </li>
* </ul>
*/
public void _getSelectedItemPos() {
requiredMethod("addItems()") ;
boolean result = true ;
oObj.selectItemPos((short)1, true) ;
short pos = oObj.getSelectedItemPos() ;
result = pos == 1 ;
tRes.tested("getSelectedItemPos()", result) ;
}
/**
* Clears all selections, then selects some items and gets selected
* item positions. <p>
* Has <b> OK </b> status if positions get are the same as were set.<p>
* The following method tests are to be completed successfully before :
* <ul>
* <li> <code> selectItemsPos </code> </li>
* </ul>
*/
public void _getSelectedItemsPos() {
requiredMethod("selectItemsPos()") ;
boolean result = true ;
short cnt = oObj.getItemCount() ;
for (short i = 0; i < cnt; i++) {
oObj.selectItemPos(i, false) ;
}
oObj.selectItemsPos(new short[] {0, 2}, true) ;
short[] items = oObj.getSelectedItemsPos() ;
result = items != null && items.length == 2 &&
items[0] == 0 && items[1] == 2 ;
tRes.tested("getSelectedItemsPos()", result) ;
}
/**
* Unselects all items, selects some item and then gets selected item. <p>
* Has <b> OK </b> status if items selected and get are equal.
* The following method tests are to be completed successfully before :
* <ul>
* <li> <code> addItems </code> : to have some items </li>
* </ul>
*/
public void _getSelectedItem() {
requiredMethod("addItems()") ;
boolean result = true ;
short cnt = oObj.getItemCount() ;
for (short i = 0; i < cnt; i++) {
oObj.selectItemPos(i, false) ;
}
oObj.selectItem("Item3", true) ;
String item = oObj.getSelectedItem() ;
result = "Item3".equals(item) ;
tRes.tested("getSelectedItem()", result) ;
}
/**
* Clears all selections, then selects some items positions and gets
* selected items. <p>
* Has <b> OK </b> status if items get are the same as items on
* positions which were set.<p>
* The following method tests are to be completed successfully before :
* <ul>
* <li> <code> selectItemsPos </code> </li>
* <li> <code> getItem </code>: this method is used here for checking.
* </li>
* </ul>
*/
public void _getSelectedItems() {
requiredMethod("selectItemsPos()") ;
requiredMethod("getItem()") ;
boolean result = true ;
short cnt = oObj.getItemCount() ;
for (short i = 0; i < cnt; i++) {
oObj.selectItemPos(i, false) ;
}
oObj.selectItemsPos(new short[] {0, 2}, true) ;
String[] items = oObj.getSelectedItems() ;
result = items != null && items.length == 2 &&
oObj.getItem((short)0).equals(items[0]) &&
oObj.getItem((short)2).equals(items[1]) ;
tRes.tested("getSelectedItems()", result) ;
}
/**
* Unselects all items, then selects a single item. <p>
* Has <b> OK </b> status if no runtime exceptions occured
* The following method tests are to be completed successfully before :
* <ul>
* <li> <code> addItems </code> : to have some items </li>
* </ul>
*/
public void _selectItemPos() {
requiredMethod("addItems()") ;
boolean result = true ;
short cnt = oObj.getItemCount() ;
for (short i = 0; i < cnt; i++) {
oObj.selectItemPos(i, false) ;
}
oObj.selectItemPos((short)1, true) ;
tRes.tested("selectItemPos()", result) ;
}
/**
* Just selects some items. <p>
* Has <b> OK </b> status if no runtime exceptions occured
* The following method tests are to be completed successfully before :
* <ul>
* <li> <code> addItems </code> : to have some items </li>
* </ul>
*/
public void _selectItemsPos() {
requiredMethod("addItems()") ;
requiredMethod("setMultipleMode()") ;
boolean result = true ;
oObj.selectItemsPos(new short[] {0, 2}, true) ;
tRes.tested("selectItemsPos()", result) ;
}
/**
* Just selects an item. <p>
* Has <b> OK </b> status if no runtime exceptions occured
* The following method tests are to be completed successfully before :
* <ul>
* <li> <code> addItems </code> : to have some items </li>
* </ul>
*/
public void _selectItem() {
requiredMethod("addItems()") ;
boolean result = true ;
oObj.selectItem("Item3", true) ;
tRes.tested("selectItem()", result) ;
}
/**
* Checks if multiple mode is set. <p>
* Has <b> OK </b> status if multiple mode is set. <p>
* The following method tests are to be completed successfully before :
* <ul>
* <li> <code> setMultipleMode </code> </li>
* </ul>
*/
public void _isMutipleMode() {
requiredMethod("setMultipleMode()") ;
boolean result = true ;
result = oObj.isMutipleMode() ;
tRes.tested("isMutipleMode()", result) ;
}
/**
* Sets multiple mode. <p>
* Has <b> OK </b> status if no runtime exceptions occured
*/
public void _setMultipleMode() {
boolean result = true ;
oObj.setMultipleMode(true) ;
tRes.tested("setMultipleMode()", result) ;
}
/**
* Just calls the method to make visible third item. <p>
* Has <b> OK </b> status if no runtime exceptions occured.<p>
* The following method tests are to be completed successfully before :
* <ul>
* <li> <code> addItems </code> </li>
* </ul>
*/
public void _makeVisible() {
requiredMethod("addItems()") ;
boolean result = true ;
oObj.makeVisible((short)2) ;
tRes.tested("makeVisible()", result) ;
}
}