blob: a6c672ef888b5269c8a63c33063520227d94d68d [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2000, 2020 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.swt.tests.junit;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertThrows;
import static org.junit.Assert.assertTrue;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CCombo;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Text;
import org.junit.Before;
import org.junit.Test;
/**
* Automated Test Suite for class org.eclipse.swt.custom.CCombo
*
* @see org.eclipse.swt.custom.CCombo
*/
public class Test_org_eclipse_swt_custom_CCombo extends Test_org_eclipse_swt_widgets_Composite {
@Override
@Before
public void setUp() {
super.setUp();
ccombo = new CCombo(shell, 0);
setWidget(ccombo);
}
@Override
@Test
public void test_ConstructorLorg_eclipse_swt_widgets_CompositeI() {
assertThrows("No exception thrown for parent == null", IllegalArgumentException.class, () -> ccombo = new CCombo(null, 0));
int cases[] = { SWT.FLAT, SWT.BORDER };
for (int i = 0; i < cases.length; i++) {
ccombo = new CCombo(shell, cases[i]);
assertEquals(":a:" + String.valueOf(i), cases[i], (ccombo.getStyle() & cases[i]));
}
ccombo = new CCombo(shell, SWT.BORDER | SWT.READ_ONLY);
// Test all the combo listeners
int comboListeners[] = { SWT.Dispose, SWT.FocusIn, SWT.Move, SWT.Resize };
for (int comboListener : comboListeners) {
assertTrue("Combo Listener events not implemented", ccombo.getListeners(comboListener).length > 0);
}
assertEquals("Pop up items are present.",0, ccombo.getItems().length);
// test that accessible features are added
assertNotNull(ccombo.getAccessible());
}
@Test
public void test_copy() {
if (SwtTestUtil.isCocoa) {
// TODO Fix Cocoa failure.
if (SwtTestUtil.verbose) {
System.out
.println("Excluded test_copy(org.eclipse.swt.tests.junit.Test_org_eclipse_swt_custom_CCombo).");
}
return;
}
ccombo.setText("123456");
ccombo.setSelection(new Point(1,3));
ccombo.copy();
ccombo.setSelection(new Point(0,0));
ccombo.paste();
assertTrue(":a:", ccombo.getText().equals("23123456"));
}
@Test
public void test_cut() {
if (SwtTestUtil.isCocoa) {
// TODO Fix Cocoa failure.
if (SwtTestUtil.verbose) {
System.out
.println("Excluded test_cut(org.eclipse.swt.tests.junit.Test_org_eclipse_swt_custom_CCombo).");
}
return;
}
ccombo.setText("123456");
ccombo.setSelection(new Point(1,3));
ccombo.cut();
assertTrue(":a:", ccombo.getText().equals("1456"));
}
@Override
@Test
public void test_computeSizeIIZ() {
}
@Override
@Test
public void test_getChildren() {
}
@Test
@Override
public void test_isFocusControl() throws InterruptedException {
if (SwtTestUtil.isGTK) {
// TODO forceFocus returns false, while isFocusControl returns true
assertFalse(control.isFocusControl());
} else {
super.test_isFocusControl();
}
}
@Test
public void test_paste() {
if (SwtTestUtil.isCocoa) {
// TODO Fix Cocoa failure.
if (SwtTestUtil.verbose) {
System.out
.println("Excluded test_paste(org.eclipse.swt.tests.junit.Test_org_eclipse_swt_custom_CCombo).");
}
return;
}
ccombo.setText("123456");
ccombo.setSelection(new Point(1,3));
ccombo.cut();
assertTrue(":a:", ccombo.getText().equals("1456"));
ccombo.paste();
assertTrue(":a:", ccombo.getText().equals("123456"));
}
@Override
@Test
public void test_redraw() {
}
@Override
@Test
public void test_redrawIIIIZ() {
}
@Override
@Test
public void test_setBackgroundLorg_eclipse_swt_graphics_Color() {
Color colors[] = {new Color(0, 0, 0), new Color(255, 255, 255), new Color(0, 45, 255)};
for(int i=0; i<3; i++) {
ccombo.setBackground(colors[i]);
assertEquals("i="+i, ccombo.getBackground(), colors[i]);
}
}
@Override
@Test
public void test_setEnabledZ() {
ccombo.setEnabled(true);
assertTrue("Set true error", ccombo.getEnabled());
ccombo.setEnabled(false);
assertFalse("Set false error", ccombo.getEnabled());
}
@Override
@Test
public void test_setFocus() {
assertFalse(ccombo.setFocus());
shell.open();
shell.setVisible(true);
boolean exceptionThrown = false;
try{
ccombo.setEnabled(false);
ccombo.setVisible(true);
assertFalse("Expect false wehn not enabled", ccombo.setFocus());
ccombo.setEnabled(true);
ccombo.setVisible(false);
assertFalse("Expect false wehn not visible", ccombo.setFocus());
ccombo.setEnabled(false);
ccombo.setVisible(false);
assertFalse("Expect false wehn not visible and not enabled", ccombo.setFocus());
ccombo.setEnabled(true);
ccombo.setVisible(true);
processEvents(0, null);
if(ccombo.isFocusControl())
assertTrue("Set focus error", ccombo.setFocus());
if (!SwtTestUtil.isCocoa) {
ccombo.setEnabled(true);
ccombo.setVisible(true);
ccombo.setFocus();
processEvents(0, null);
assertTrue(ccombo.isFocusControl());
Control focusControl = ccombo.getDisplay().getFocusControl();
assertTrue(focusControl instanceof Text);
assertEquals(ccombo, focusControl.getParent());
}
}
catch (Exception e) {
exceptionThrown = true;
}
assertFalse("Exception thrown", exceptionThrown);
}
@Override
@Test
public void test_setFocus_toChild_afterOpen() {
// The different platforms set focus to a different child
}
@Override
@Test
public void test_setFocus_toChild_beforeOpen() {
// The different platforms set focus to a different child
}
@Override
@Test
public void test_setFontLorg_eclipse_swt_graphics_Font() {
}
@Override
@Test
public void test_setForegroundLorg_eclipse_swt_graphics_Color() {
Color c1 = new Color(0, 0, 0);
Color c2 = new Color(255, 255, 255);
Color c3 = new Color(23, 45, 151);
ccombo.setForeground(c1);
ccombo.setForeground(c2);
ccombo.setForeground(c3);
}
@Override
@Test
public void test_setToolTipTextLjava_lang_String() {
ccombo.setToolTipText(null);
assertNull(ccombo.getToolTipText());
String[] cases = {"", "fang", "fang0"};
for (int i = 0; i < cases.length; i++) {
ccombo.setText(cases[i]);
assertTrue(":a:" + i, ccombo.getText().equals(cases[i]));
}
}
@Override
@Test
public void test_setVisibleZ() {
ccombo.getParent().setVisible(true);
ccombo.setVisible(true);
if(!ccombo.isDisposed()) {
assertTrue(ccombo.isVisible());
}
ccombo.setVisible(false);
if(!ccombo.isDisposed()) {
assertFalse(ccombo.isVisible());
}
}
/* Custom */
CCombo ccombo;
private void add() {
ccombo.add("this");
ccombo.add("is");
ccombo.add("SWT");
}
@Test
public void test_consistency_MouseSelection () {
add();
consistencyPrePackShell();
consistencyEvent(ccombo.getSize().x-10, 5, 30, ccombo.getItemHeight()*2,
ConsistencyUtility.SELECTION);
}
@Test
public void test_consistency_KeySelection () {
add();
consistencyEvent(0, SWT.ARROW_DOWN, 0, 0, ConsistencyUtility.KEY_PRESS);
}
@Test
public void test_consistency_EnterSelection () {
add();
consistencyEvent(10, 13, 0, 0, ConsistencyUtility.KEY_PRESS);
}
@Test
public void test_consistency_MenuDetect () {
add();
consistencyPrePackShell();
//on arrow
consistencyEvent(ccombo.getSize().x-10, 5, 3, 0, ConsistencyUtility.MOUSE_CLICK);
//on text
consistencyEvent(10, 5, 3, ConsistencyUtility.ESCAPE_MENU, ConsistencyUtility.MOUSE_CLICK);
}
@Test
public void test_consistency_DragDetect () {
add();
consistencyEvent(10, 5, 20, 10, ConsistencyUtility.MOUSE_DRAG);
}
@Test
public void test_addLjava_lang_String() {
ccombo = new CCombo(shell, 0);
assertThrows("Did not catch null argument",IllegalArgumentException.class, ()-> ccombo.add(null));
add();
assertTrue("Items not successfully added", ccombo.getItems().length > 0);
}
@Test
public void test_addLjava_lang_StringI() {
ccombo = new CCombo(shell, 0);
assertThrows("Did not catch null argument",IllegalArgumentException.class, ()-> ccombo.add(null, 0));
add();// add three items
assertTrue("Items not successfully added", ccombo.getItems().length > 0);
assertThrows("Did not catch range exception",IllegalArgumentException.class, ()-> ccombo.add("Hello", 7));
ccombo.add("Hello", 1);
String test = ccombo.getItem(1);
assertEquals("Hello", test);
}
@Test
public void test_addModifyListenerLorg_eclipse_swt_events_ModifyListener() {
ccombo = new CCombo(shell, 0);
ModifyListener listener = event -> listenerCalled = true;
assertThrows("Expected exception not thrown", IllegalArgumentException.class, () -> ccombo.addModifyListener(null));
// test whether all content modifying API methods send a Modify event
ccombo.addModifyListener(listener);
listenerCalled = false;
ccombo.setText("new text");
assertTrue("setText does not send event", listenerCalled);
listenerCalled = false;
ccombo.removeModifyListener(listener);
// cause to call the listener.
ccombo.setText("line");
assertFalse("Listener not removed", listenerCalled);
assertThrows("Expected exception not thrown", IllegalArgumentException.class, () -> ccombo.removeModifyListener(null));
}
@Test
public void test_addSelectionListenerLorg_eclipse_swt_events_SelectionListener() {
ccombo = new CCombo(shell, 0);
listenerCalled = false;
SelectionListener listener = new SelectionListener() {
@Override
public void widgetSelected(SelectionEvent event) {
listenerCalled = true;
}
@Override
public void widgetDefaultSelected(SelectionEvent event) {
}
};
assertThrows("Expected exception not thrown", IllegalArgumentException.class, () -> ccombo.addSelectionListener(null));
ccombo.addSelectionListener(listener);
ccombo.select(0);
assertFalse(":a:", listenerCalled);
ccombo.removeSelectionListener(listener);
assertThrows("Expected exception not thrown", IllegalArgumentException.class, () -> ccombo.removeSelectionListener(null));
}
@Test
public void test_clearSelection() {
ccombo = new CCombo(shell, 0);
int number = 5;
for (int i = 0; i < number; i++)
ccombo.add("fred" + i);
ccombo.clearSelection();
assertTrue(":a:", ccombo.getSelection().equals(new Point(0, 0)));
ccombo.setSelection(new Point(0, 5));
assertTrue(":b:", ccombo.getSelection().equals(new Point(0, 0))); //nothing is selected
ccombo.setText("some text");
ccombo.setSelection(new Point(0, 5));
assertTrue(":c:", ccombo.getSelection().equals(new Point(0, 5)));
ccombo.clearSelection();
assertEquals(":d:", ccombo.getSelection().x, ccombo.getSelection().y);
}
@Test
public void test_deselectAll() {
ccombo = new CCombo(shell, 0);
ccombo.add("123");
ccombo.add("456");
ccombo.add("789");
ccombo.select(0);
ccombo.select(2);
ccombo.deselectAll();
assertEquals(":a:", -1, ccombo.getSelectionIndex());
}
@Test
public void test_deselectI() {
// indices out of range are ignored by the method
ccombo = new CCombo(shell, 0);
String[] items = {"item0", "item1", "item2"};
ccombo.setItems(items);
ccombo.select(1);
ccombo.deselect(10);
assertEquals(1, ccombo.getSelectionIndex());
ccombo.removeAll();
ccombo.deselect(2);
int number = 10;
for (int i = 0; i < number; i++)
ccombo.add("fred" + i);
for (int i = 0; i < number; i++) {
ccombo.select(i);
assertEquals(":a:" + i, i, ccombo.getSelectionIndex());
ccombo.deselect(i);
assertEquals(":b:" + i,-1, ccombo.getSelectionIndex());
}
}
@Test
public void test_getEditable() {
ccombo = new CCombo(shell, 0);
assertTrue("a: Receiver is not editable", ccombo.getEditable());
ccombo = new CCombo(shell, SWT.BORDER);
assertTrue("a: Receiver is not editable", ccombo.getEditable());
}
@Test
public void test_getItemCount() {
int number = 10;
for (int i = 0; i < number; i++) {
assertEquals(":a:" + i, i, ccombo.getItemCount());
ccombo.add("fred" + i);
}
assertEquals(":aa:", number, ccombo.getItemCount());
for (int i = 0; i < number; i++) {
assertEquals(":b:" + i,number-i, ccombo.getItemCount());
ccombo.remove(0);
}
ccombo.removeAll();
assertEquals(":c:",0,ccombo.getItemCount());
}
@Test
public void test_getItemHeight() {
ccombo.getItemHeight();
}
@Test
public void test_getItemI() {
assertThrows("No exception thrown for illegal index argument", IllegalArgumentException.class, () -> ccombo.getItem(0));
int number = 10;
for (int i = 0; i < number; i++) {
ccombo.add("fred" + i);
}
for (int i = 0; i < number; i++)
assertTrue(ccombo.getItem(i).equals("fred" + i));
}
@Test
public void test_getItems() {
ccombo.removeAll();
ccombo.add("1");
ccombo.add("2");
ccombo.add("3");
String[] items = ccombo.getItems();
assertEquals(":a:",3, items.length);
assertTrue(":a:", items[0].equals("1"));
assertTrue(":a:", items[1].equals("2"));
assertTrue(":a:", items[2].equals("3"));
}
@Test
public void test_getSelection() {
ccombo.setText("123456");
ccombo.setSelection(new Point(1,3));
ccombo.getSelection();
assertTrue(":a:", ccombo.getSelection().equals(new Point(1,3)));
}
@Test
public void test_getSelectionIndex() {
int number = 5;
for (int i = 0; i < number; i++) {
ccombo.add("fred");
}
assertEquals(-1, ccombo.getSelectionIndex());
for (int i = 0; i < number; i++) {
ccombo.select(i);
assertEquals(i, ccombo.getSelectionIndex());
}
ccombo.removeAll();
for (int i = 01; i < number; i++) {
ccombo.add("fred");
}
assertEquals(-1, ccombo.getSelectionIndex());
for (int i = 0; i < number; i++) {
ccombo.select(i);
ccombo.deselect(i);
assertEquals(-1, ccombo.getSelectionIndex());
}
}
@Test
public void test_getStyle() {
int style = 0;
ccombo.setEditable(false);
style = ccombo.getStyle();
assertTrue((style & SWT.READ_ONLY) != 0);
}
@Test
public void test_getText() {
String[] cases = {"", "fred", "fredfred"};
for (int i = 0; i < cases.length; i++) {
ccombo.setText(cases[i]);
assertTrue(":a:" + String.valueOf(i), cases[i].equals(ccombo.getText()));
}
}
@Test
public void test_getTextHeight() {
ccombo.getTextHeight();
}
@Test
public void test_getTextLimit() {
ccombo.setTextLimit(3);
assertEquals(":a:", 3, ccombo.getTextLimit());
}
@Test
public void test_indexOfLjava_lang_String() {
ccombo.add("string1");
assertThrows("No exception thrown for string == null",IllegalArgumentException.class, ()-> ccombo.indexOf(null));
ccombo.removeAll();
int number = 5;
for (int i = 0; i < number; i++)
ccombo.add("fred" + i);
for (int i = 0; i < number; i++)
assertEquals(i, ccombo.indexOf("fred" + i));
for (int i = 0; i < number; i++)
ccombo.add("fred" + i);
ccombo.removeAll();
for (int i = 0; i < number; i++)
assertEquals(-1, ccombo.indexOf("fred" + i));
for (int i = 0; i < number; i++)
ccombo.add("fred" + i);
ccombo.remove("fred3");
for (int i = 0; i < 3; i++)
assertEquals(i, ccombo.indexOf("fred" + i));
assertEquals(-1, ccombo.indexOf("fred3"));
for (int i = 4; i < number; i++)
assertEquals(i - 1, ccombo.indexOf("fred" + i));
ccombo.removeAll();
for (int i = 0; i < number; i++)
ccombo.add("fred" + i);
ccombo.remove(2);
for (int i = 0; i < 2; i++)
assertEquals(i, ccombo.indexOf("fred" + i));
assertEquals(-1, ccombo.indexOf("fred2"));
for (int i = 3; i < number; i++)
assertEquals(i - 1, ccombo.indexOf("fred" + i));
}
@Test
public void test_indexOfLjava_lang_StringI() {
ccombo.add("string0");
assertThrows("No exception thrown for string == null",IllegalArgumentException.class, ()-> ccombo.indexOf(null));
assertEquals(0, ccombo.indexOf("string0", 0));
ccombo.removeAll();
int number = 5;
for (int i = 0; i < number; i++)
ccombo.add("fred" + i);
for (int i = 0; i < number; i++)
assertEquals(":a:" + i, i, ccombo.indexOf("fred" + i, 0));
for (int i = 0; i < number; i++)
assertEquals(":b:" + i,-1, ccombo.indexOf("fred" + i, i + 1));
for (int i = 0; i < number; i++)
ccombo.add("fred" + i);
for (int i = 0; i < 3; i++)
assertEquals(":a:" + i, i, ccombo.indexOf("fred" + i, 0));
for (int i = 3; i < number; i++)
assertEquals(":b:" + i, i, ccombo.indexOf("fred" + i, 3));
for (int i = 0; i < number; i++)
assertEquals(":b:" + i, i, ccombo.indexOf("fred" + i, i));
}
@Test
public void test_removeAll() {
ccombo = new CCombo(shell, 0);
add();
ccombo.removeAll();
assertEquals(":a:",0, ccombo.getItems().length);
}
@Test
public void test_removeII() {
ccombo = new CCombo(shell, 0);
int number = 5;
for (int i = 0; i < number; i++) {
ccombo.add("fred");
}
ccombo.remove(0, 4);
assertEquals(0, ccombo.getItemCount());
ccombo.removeAll();
for (int i = 0; i < number; i++) {
ccombo.add("fred");
}
ccombo.remove(0, 2);
assertEquals(2, ccombo.getItemCount());
ccombo.removeAll();
for (int i = 0; i < number; i++) {
ccombo.add("fred");
}
ccombo.remove(2, 4);
assertEquals(2, ccombo.getItemCount());
ccombo.removeAll();
for (int i = 0; i < number; i++) {
ccombo.add("fred");
}
ccombo.remove(3, 2);
assertEquals(number, ccombo.getItemCount());
ccombo.removeAll();
for (int i = 0; i < number; i++) {
ccombo.add("fred");
}
assertThrows("No exception thrown for illegal index argument", IllegalArgumentException.class, () -> ccombo.remove(2, 100));
assertThrows("No exception thrown for start index < 0", IllegalArgumentException.class, () ->ccombo.remove(-1, number-1));
}
@Test
public void test_removeLjava_lang_String() {
ccombo = new CCombo(shell, 0);
int number = 5;
for (int i = 0; i < number; i++)
ccombo.add("fred" + i);
for (int i = 0; i < number; i++) {
assertEquals(number - i, ccombo.getItemCount());
ccombo.remove("fred" + i);
}
for (int i = 0; i < number; i++)
ccombo.add("fred");
for (int i = 0; i < number; i++) {
assertEquals(number - i, ccombo.getItemCount());
ccombo.remove("fred");
}
for (int i = 0; i < number; i++)
ccombo.add("fred");
assertThrows("No exception thrown for item == null", IllegalArgumentException.class, () -> ccombo.remove(null));
ccombo.removeAll();
for (int i = 0; i < number; i++)
ccombo.add("fred" + i);
assertThrows("No exception thrown for item not found", IllegalArgumentException.class, () -> ccombo.remove("fred"));
assertEquals(number, ccombo.getItemCount());
}
@Test
public void test_removeModifyListenerLorg_eclipse_swt_events_ModifyListener() {
ModifyListener listener = event -> listenerCalled = true;
assertThrows("Expected exception not thrown", IllegalArgumentException.class, () -> ccombo.addModifyListener(null));
// test whether all content modifying API methods send a Modify event
ccombo.addModifyListener(listener);
listenerCalled = false;
ccombo.setText("new text");
assertTrue("setText does not send event", listenerCalled);
listenerCalled = false;
ccombo.removeModifyListener(listener);
// cause to call the listener.
ccombo.setText("line");
assertFalse("Listener not removed", listenerCalled);
assertThrows("Expected exception not thrown", IllegalArgumentException.class, () -> ccombo.removeModifyListener(null));
}
@Test
public void test_removeSelectionListenerLorg_eclipse_swt_events_SelectionListener() {
listenerCalled = false;
SelectionListener listener = new SelectionListener() {
@Override
public void widgetSelected(SelectionEvent event) {
listenerCalled = true;
}
@Override
public void widgetDefaultSelected(SelectionEvent event) {
}
};
assertThrows("Expected exception not thrown", IllegalArgumentException.class, () -> ccombo.addSelectionListener(null));
ccombo.addSelectionListener(listener);
ccombo.select(0);
assertFalse(":a:", listenerCalled);
ccombo.removeSelectionListener(listener);
assertThrows("Expected exception not thrown", IllegalArgumentException.class, () -> ccombo.removeSelectionListener(null));
}
@Test
public void test_selectI() {
ccombo.add("123");
ccombo.add("456");
ccombo.add("789");
ccombo.select(0);
ccombo.select(1);
assertEquals(":a:", 1, ccombo.getSelectionIndex());
// indices out of range are ignored
ccombo.select(10);
assertEquals(1, ccombo.getSelectionIndex());
}
@Test
public void test_setEditableZ() {
ccombo.setEditable(true);
assertTrue("Set true error", ccombo.getEditable());
ccombo.setEditable(false);
assertFalse("Set false error", ccombo.getEditable());
}
@Test
public void test_setItemILjava_lang_String() {
assertThrows("No exception thrown for item == null", IllegalArgumentException.class, () -> ccombo.setItem(0, null));
assertThrows("No exception thrown for illegal index argument", IllegalArgumentException.class, () ->ccombo.setItem(3, "fang"));
assertThrows("No exception thrown for illegal index argument", IllegalArgumentException.class, () ->ccombo.setItem(0, "fang"));
ccombo.add("string0");
assertThrows("No exception thrown for item == null", IllegalArgumentException.class, () -> ccombo.setItem(0, null));
assertThrows("No exception thrown for index < 0", IllegalArgumentException.class, () ->ccombo.setItem(-1, "new value"));
assertThrows("No exception thrown for illegal index argument", IllegalArgumentException.class, () -> ccombo.setItem(3, "fang"));
ccombo.add("joe");
ccombo.setItem(0, "fang");
assertTrue("fang", ccombo.getItem(0).equals("fang"));
assertThrows("No exception thrown for illegal index argument", IllegalArgumentException.class, () ->ccombo.setItem(4, "fang"));
ccombo.removeAll();
int number = 5;
for (int i = 0; i < number; i++)
ccombo.add("fang");
for (int i = 0; i < number; i++)
ccombo.setItem(i, "fang" + i);
assertArrayEquals(":a:", new String[]{"fang0", "fang1", "fang2", "fang3", "fang4"}, ccombo.getItems());
}
@Test
public void test_setItems$Ljava_lang_String() {
assertThrows("No exception thrown for items == null", IllegalArgumentException.class, () -> ccombo.setItems(null));
String nullItem[] = new String[1];
nullItem[0] = null;
assertThrows("No exception thrown for items[0] == null", IllegalArgumentException.class, () ->ccombo.setItems(nullItem));
String[][] items = {{}, {""}, {"", ""}, {"fang"}, {"fang0", "fang0"}, {"fang", "fang"}};
for (int i = 0 ; i< items.length; i++){
ccombo.setItems(items[i]);
assertArrayEquals(":a:" + i, items[i], ccombo.getItems());
}
}
@Test
public void test_setSelectionLorg_eclipse_swt_graphics_Point() {
assertThrows("No exception thrown for point == null", IllegalArgumentException.class, () -> ccombo.setSelection(null));
int number = 5;
for (int i = 0; i < number; i++)
ccombo.add("fang" + i);
ccombo.setSelection(new Point(0, 5));
assertTrue(":a:", ccombo.getSelection().equals(new Point(0, 0)));
ccombo.setText("some text");
ccombo.setSelection(new Point(0, 5));
assertTrue("Has not been implemented :b:", ccombo.getSelection().equals(new Point(0, 5)));
}
@Test
public void test_setTextLimitI() {
assertThrows("No exception thrown for limit == 0", IllegalArgumentException.class, () -> ccombo.setTextLimit(0));
ccombo.setTextLimit(3);
assertEquals(":a:", 3, ccombo.getTextLimit());
}
@Test
public void test_setTextLjava_lang_String() {
assertThrows("No exception thrown for text == null", IllegalArgumentException.class, () -> ccombo.setText(null));
String[] cases = {"", "fang", "fang0"};
for (int i = 0; i < cases.length; i++) {
ccombo.setText(cases[i]);
assertTrue(":a:" + i, ccombo.getText().equals(cases[i]));
}
for (int i = 0; i < 5; i++) {
ccombo.add("fang");
}
for (int i = 0; i < cases.length; i++) {
ccombo.setText(cases[i]);
assertTrue(":b:" + i, ccombo.getText().equals(cases[i]));
}
for (int i = 0; i < 5; i++) {
ccombo.add("fang" + i);
}
for (int i = 0; i < cases.length; i++) {
ccombo.setText(cases[i]);
assertTrue(":c:" + i, ccombo.getText().equals(cases[i]));
}
}
@Test
public void test_setAlignment() {
assertEquals(":a:", SWT.LEAD, ccombo.getAlignment());
ccombo.setText("Trail");
ccombo.setAlignment(SWT.TRAIL);
assertEquals(":b:", SWT.TRAIL, ccombo.getAlignment());
assertEquals(":b:", "Trail", ccombo.getText());
ccombo.add("Center");
ccombo.select(ccombo.getItemCount() - 1);
ccombo.setAlignment(SWT.CENTER);
assertEquals(":c:", SWT.CENTER, ccombo.getAlignment());
assertEquals(":c:", "Center", ccombo.getText());
ccombo.setAlignment(SWT.LEFT);
assertEquals(":d:", SWT.LEFT, ccombo.getAlignment());
assertEquals(":d:", "Center", ccombo.getText());
}
}