diff options
author | Alexander Kurtakov | 2019-02-27 07:43:10 +0000 |
---|---|---|
committer | Alexander Kurtakov | 2019-03-11 09:34:20 +0000 |
commit | 38233cc8b4b9945e7affab239ee2d77242e77c5f (patch) | |
tree | 155c4f51335d2423b6887cc9c1d4a52ed25775c5 /tests | |
parent | c53ca03618ab793cf704ce3ffa45b3663a6cf32e (diff) | |
download | eclipse.platform.swt-38233cc8b4b9945e7affab239ee2d77242e77c5f.tar.gz eclipse.platform.swt-38233cc8b4b9945e7affab239ee2d77242e77c5f.tar.xz eclipse.platform.swt-38233cc8b4b9945e7affab239ee2d77242e77c5f.zip |
Bug 225878 - New JUnit tests for CCombo
Resurrect the patch from bugzilla
Change-Id: I7cc2cb46bf55d9f697fc795af4a0b70785e30119
Signed-off-by: Alexander Kurtakov <akurtako@redhat.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_CCombo.java | 813 |
1 files changed, 812 insertions, 1 deletions
diff --git a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_CCombo.java b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_CCombo.java index 53ed0b96df..6f74ff0994 100644 --- a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_CCombo.java +++ b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_CCombo.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2015 IBM Corporation and others. + * Copyright (c) 2000, 2019 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -14,10 +14,21 @@ 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.assertTrue; +import static org.junit.Assert.fail; 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.Device; import org.eclipse.swt.graphics.Point; import org.junit.Before; import org.junit.Test; @@ -40,6 +51,25 @@ public void setUp() { @Override @Test public void test_ConstructorLorg_eclipse_swt_widgets_CompositeI() { + try { + ccombo = new CCombo(null, 0); + fail("No exception thrown for parent == null"); + } catch (IllegalArgumentException e) { + } + int cases[] = { SWT.FLAT, SWT.BORDER }; + for (int i = 0; i < cases.length; i++) { + ccombo = new CCombo(shell, cases[i]); + assertTrue(":a:" + String.valueOf(i), (ccombo.getStyle() & cases[i]) == 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 i = 0; i < comboListeners.length; i++) { + assertTrue("Combo Listener events not implemented", ccombo.getListeners(comboListeners[i]).length > 0); + } + assertTrue("Pop up items are present.", ccombo.getItems().length == 0); + // test that accessible features are added + assertNotNull(ccombo.getAccessible()); } @Test @@ -123,17 +153,62 @@ public void test_redrawIIIIZ() { @Override @Test public void test_setBackgroundLorg_eclipse_swt_graphics_Color() { + boolean exceptionThrown = false; + Device d = null; + Color colors[] = {new Color(d, 0, 0, 0), new Color(d, 255, 255, 255), new Color(d, 0, 45, 255)}; + try { + for(int i=0; i<3; i++) { + ccombo.setBackground(colors[i]); + assertEquals("i="+i, ccombo.getBackground(), colors[i]); + } + } + catch (Exception e) { + exceptionThrown = true; + } + assertFalse("Expected exception thrown", exceptionThrown); + exceptionThrown = false; } @Override @Test public void test_setEnabledZ() { + boolean exceptionThrown = false; + try{ + ccombo.setEnabled(true); + assertTrue("Set true error", ccombo.getEnabled()); + ccombo.setEnabled(false); + assertFalse("Set false error", ccombo.getEnabled()); + } + catch (Exception e) { + exceptionThrown = true; + } + assertFalse("Exception thrown", exceptionThrown); } @Override @Test public void test_setFocus() { assertTrue(!ccombo.setFocus()); + 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); + if(ccombo.isFocusControl()) + assertTrue("Set focus error", ccombo.setFocus()); + } + catch (Exception e) { + exceptionThrown = true; + } + assertFalse("Exception thrown", exceptionThrown); } @Override @@ -144,16 +219,53 @@ public void test_setFontLorg_eclipse_swt_graphics_Font() { @Override @Test public void test_setForegroundLorg_eclipse_swt_graphics_Color() { + boolean exceptionThrown = false; + Device d = null; + Color c1 = new Color(d, 0, 0, 0); + Color c2 = new Color(d, 255, 255, 255); + Color c3 = new Color(d, 23, 45, 151); + try { + ccombo.setForeground(c1); + ccombo.setForeground(c2); + ccombo.setForeground(c3); + } + catch (Exception e) { + exceptionThrown = true; + } + assertFalse("Expected exception thrown", exceptionThrown); } @Override @Test public void test_setToolTipTextLjava_lang_String() { + boolean exceptionThrown = false; + try { + 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])); + } + } + catch (Exception e) { + exceptionThrown = true; + } + assertFalse("Unexpected exception thrown", exceptionThrown); } @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 */ @@ -201,4 +313,703 @@ public void test_consistency_DragDetect () { consistencyEvent(10, 5, 20, 10, ConsistencyUtility.MOUSE_DRAG); } +@Test +public void test_addLjava_lang_String() { + ccombo = new CCombo(shell, 0); + try { + ccombo.add(null); + fail("Did not catch null argument"); + } catch (IllegalArgumentException e) { + } + add(); + assertTrue("Items not successfully added", ccombo.getItems().length > 0); + +} + +@Test +public void test_addLjava_lang_StringI() { + ccombo = new CCombo(shell, 0); + try { + ccombo.add(null, 0); + fail("Did not catch null argument"); + } catch (IllegalArgumentException e) { + } + + add();// add three items + assertTrue("Items not successfully added", ccombo.getItems().length > 0); + try { + ccombo.add("Hello", 7); + fail("Did not catch invalid range exception"); + } catch (IllegalArgumentException e) { + } + + 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); + boolean exceptionThrown = false; + ModifyListener listener = event -> listenerCalled = true; + try { + ccombo.addModifyListener(null); + } + catch (IllegalArgumentException e) { + exceptionThrown = true; + } + assertTrue("Expected exception not thrown", exceptionThrown); + exceptionThrown = false; + + // 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"); + assertTrue("Listener not removed", listenerCalled == false); + try { + ccombo.removeModifyListener(null); + } + catch (IllegalArgumentException e) { + exceptionThrown = true; + } + assertTrue("Expected exception not thrown", exceptionThrown); +} + +@Test +public void test_addSelectionListenerLorg_eclipse_swt_events_SelectionListener() { + ccombo = new CCombo(shell, 0); + listenerCalled = false; + boolean exceptionThrown = false; + SelectionListener listener = new SelectionListener() { + @Override + public void widgetSelected(SelectionEvent event) { + listenerCalled = true; + } + @Override + public void widgetDefaultSelected(SelectionEvent event) { + } + }; + try { + ccombo.addSelectionListener(null); + } + catch (IllegalArgumentException e) { + exceptionThrown = true; + } + assertTrue("Expected exception not thrown", exceptionThrown); + exceptionThrown = false; + ccombo.addSelectionListener(listener); + ccombo.select(0); + assertTrue(":a:", listenerCalled == false); + ccombo.removeSelectionListener(listener); + try { + ccombo.removeSelectionListener(null); + } + catch (IllegalArgumentException e) { + exceptionThrown = true; + } + assertTrue("Expected exception not thrown", exceptionThrown); +} + +@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(); + assertTrue(":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(); + assertTrue(":a:", ccombo.getSelectionIndex()== -1); +} + +@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); + assertTrue(":a:" + i, ccombo.getSelectionIndex()==i); + ccombo.deselect(i); + assertTrue(":b:" + i, ccombo.getSelectionIndex()==-1); + } + } + +@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++) { + assertTrue(":a:" + i, ccombo.getItemCount() == i); + ccombo.add("fred" + i); + } + assertTrue(":aa:", ccombo.getItemCount() == number); + + for (int i = 0; i < number; i++) { + assertTrue(":b:" + i, ccombo.getItemCount() == number-i); + ccombo.remove(0); + } + ccombo.removeAll(); + assertTrue(":c:", ccombo.getItemCount() == 0); +} + +@Test +public void test_getItemHeight() { + ccombo.getItemHeight(); +} + +@Test +public void test_getItemI() { + try { + ccombo.getItem(0); + fail("No exception thrown for illegal index argument"); + } catch (IllegalArgumentException e) { + } + + 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(); + assertTrue(":a:", items.length==3); + 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); + try { + style = ccombo.getStyle(); + } + catch(Exception e) { + fail("Unexpected exception thrown for 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); + assertTrue(":a:", ccombo.getTextLimit()==3); +} + +@Test +public void test_indexOfLjava_lang_String() { + ccombo.add("string1"); + try { + ccombo.indexOf(null); + fail("No exception thrown for string == null"); + } + catch (IllegalArgumentException e) { + } + 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"); + try { + ccombo.indexOf(null); + fail("No exception thrown for string == null"); + } + catch (IllegalArgumentException e) { + } + 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++) + assertTrue(":a:" + i, ccombo.indexOf("fred" + i, 0) == i); + for (int i = 0; i < number; i++) + assertTrue(":b:" + i, ccombo.indexOf("fred" + i, i + 1) == -1); + + for (int i = 0; i < number; i++) + ccombo.add("fred" + i); + for (int i = 0; i < 3; i++) + assertTrue(":a:" + i, ccombo.indexOf("fred" + i, 0) == i); + for (int i = 3; i < number; i++) + assertTrue(":b:" + i, ccombo.indexOf("fred" + i, 3) == i); + for (int i = 0; i < number; i++) + assertTrue(":b:" + i, ccombo.indexOf("fred" + i, i) == i); +} + +@Test +public void test_removeAll() { + ccombo = new CCombo(shell, 0); + add(); + ccombo.removeAll(); + assertTrue(":a:", ccombo.getItems().length==0); +} + + +@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"); + } + + try { + ccombo.remove(2, 100); + fail("No exception thrown for illegal index argument"); + } + catch (IllegalArgumentException e) { + } + + try { + ccombo.remove(-1, number-1); + fail("No exception thrown for start index < 0"); + } + catch (IllegalArgumentException e) { + } +} + +@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"); + try { + ccombo.remove(null); + fail("No exception thrown for item == null"); + } + catch (IllegalArgumentException e) { + } + + ccombo.removeAll(); + for (int i = 0; i < number; i++) + ccombo.add("fred" + i); + try { + ccombo.remove("fred"); + fail("No exception thrown for item not found"); + } + catch (IllegalArgumentException e) { + } + + assertEquals(number, ccombo.getItemCount()); +} + +@Test +public void test_removeModifyListenerLorg_eclipse_swt_events_ModifyListener() { + boolean exceptionThrown = false; + ModifyListener listener = event -> listenerCalled = true; + try { + ccombo.addModifyListener(null); + } + catch (IllegalArgumentException e) { + exceptionThrown = true; + } + assertTrue("Expected exception not thrown", exceptionThrown); + exceptionThrown = false; + + // 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"); + assertTrue("Listener not removed", listenerCalled == false); + try { + ccombo.removeModifyListener(null); + } + catch (IllegalArgumentException e) { + exceptionThrown = true; + } + assertTrue("Expected exception not thrown", exceptionThrown); +} + +@Test +public void test_removeSelectionListenerLorg_eclipse_swt_events_SelectionListener() { + listenerCalled = false; + boolean exceptionThrown = false; + SelectionListener listener = new SelectionListener() { + @Override + public void widgetSelected(SelectionEvent event) { + listenerCalled = true; + } + + @Override + public void widgetDefaultSelected(SelectionEvent event) { + } + }; + try { + ccombo.addSelectionListener(null); + } catch (IllegalArgumentException e) { + exceptionThrown = true; + } + assertTrue("Expected exception not thrown", exceptionThrown); + exceptionThrown = false; + ccombo.addSelectionListener(listener); + ccombo.select(0); + assertTrue(":a:", listenerCalled == false); + ccombo.removeSelectionListener(listener); + try { + ccombo.removeSelectionListener(null); + } catch (IllegalArgumentException e) { + exceptionThrown = true; + } + assertTrue("Expected exception not thrown", exceptionThrown); +} + +@Test +public void test_selectI() { + ccombo.add("123"); + ccombo.add("456"); + ccombo.add("789"); + ccombo.select(0); + ccombo.select(1); + assertTrue(":a:", ccombo.getSelectionIndex()== 1); + + // indices out of range are ignored + ccombo.select(10); + assertEquals(1, ccombo.getSelectionIndex()); +} + +@Test +public void test_setEditableZ() { + boolean exceptionThrown = false; + try{ + ccombo.setEditable(true); + assertTrue("Set true error", ccombo.getEditable()); + ccombo.setEditable(false); + assertFalse("Set false error", ccombo.getEditable()); + } + catch (Exception e) { + exceptionThrown = true; + } + assertFalse("Exception thrown", exceptionThrown); +} + +@Test +public void test_setItemILjava_lang_String() { + try { + ccombo.setItem(0, null); + fail("No exception thrown for item == null"); + } + catch (IllegalArgumentException e) { + } + + try { + ccombo.setItem(3, "fang"); + fail("No exception thrown for illegal index argument"); + } + catch (IllegalArgumentException e) { + } + + try { + ccombo.setItem(0, "fang"); + fail("No exception thrown for illegal index argument"); + } + catch (IllegalArgumentException e) { + } + + ccombo.add("string0"); + try { + ccombo.setItem(0, null); + fail("No exception thrown for item == null"); + } + catch (IllegalArgumentException e) { + } + + try { + ccombo.setItem(-1, "new value"); + fail("No exception thrown for index < 0"); + } + catch (IllegalArgumentException e) { + } + try { + ccombo.setItem(3, "fang"); + fail("No exception thrown for illegal index argument"); + } + catch (IllegalArgumentException e) { + } + + ccombo.add("joe"); + ccombo.setItem(0, "fang"); + assertTrue("fang", ccombo.getItem(0).equals("fang")); + + try { + ccombo.setItem(4, "fang"); + fail("No exception thrown for illegal index argument"); + } + catch (IllegalArgumentException e) { + } + + 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() { + try { + ccombo.setItems(null); + fail("No exception thrown for items == null"); + } + catch (IllegalArgumentException e) { + } + String nullItem[] = new String[1]; + nullItem[0] = null; + try { + ccombo.setItems(nullItem); + fail("No exception thrown for items[0] == null"); + } + catch (IllegalArgumentException e) { + } + + 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() { + try { + ccombo.setSelection(null); + fail("No exception thrown for point == null"); + } + catch (IllegalArgumentException e) { + } + + 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() { + try { + ccombo.setTextLimit(0); + fail("No exception thrown for limit == 0"); + } + catch (IllegalArgumentException e) { + } + + ccombo.setTextLimit(3); + assertTrue(":a:", ccombo.getTextLimit()==3); +} + +@Test +public void test_setTextLjava_lang_String() { + try { + ccombo.setText(null); + fail("No exception thrown for text == null"); + } + catch (IllegalArgumentException e) { + } + + 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])); + } +} } |