blob: eeb3d98def50a2ab345857e9b9ffb8af19e9252b [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2000, 2006 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* 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.assertTrue;
import static org.junit.Assert.fail;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ExpandEvent;
import org.eclipse.swt.events.ExpandListener;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.ExpandBar;
import org.eclipse.swt.widgets.ExpandItem;
import org.junit.Before;
import org.junit.Test;
/**
* Automated Test Suite for class org.eclipse.swt.widgets.ExpandBar
*
* @see org.eclipse.swt.widgets.ExpandBar
*/
public class Test_org_eclipse_swt_widgets_ExpandBar extends Test_org_eclipse_swt_widgets_Composite {
@Override
@Before
public void setUp() {
super.setUp();
expandBar = new ExpandBar(shell, 0);
setWidget(expandBar);
}
@Test
public void test_addExpandListenerLorg_eclipse_swt_events_ExpandListener() {
final boolean[] listenerCalled = new boolean[] {false};
ExpandListener expandListener = new ExpandListener() {
@Override
public void itemCollapsed(ExpandEvent e) {
listenerCalled[0] = true;
}
@Override
public void itemExpanded(ExpandEvent e) {
listenerCalled[0] = true;
}
};
try {
expandBar.addExpandListener(null);
fail("No exception thrown for addExpandListener with null argument");
} catch (IllegalArgumentException e) {
}
expandBar.addExpandListener(expandListener);
expandBar.notifyListeners(SWT.Expand, new Event());
assertTrue(":a:", listenerCalled[0]);
listenerCalled[0] = false;
expandBar.notifyListeners(SWT.Collapse, new Event());
assertTrue(":b:", listenerCalled[0]);
try {
expandBar.removeExpandListener(null);
fail("No exception thrown for removeExpandListener with null argument");
} catch (IllegalArgumentException e) {
}
listenerCalled[0] = false;
expandBar.removeExpandListener(expandListener);
expandBar.notifyListeners(SWT.Expand, new Event());
assertFalse(listenerCalled[0]);
}
@Override
@Test
public void test_ConstructorLorg_eclipse_swt_widgets_CompositeI() {
try {
new ExpandBar(null, 0);
fail("No exception thrown for parent == null");
}
catch (IllegalArgumentException e) {
}
}
@Test
public void test_getItemCount() {
int number = 10;
for (int i = 0; i < number; i++) {
assertTrue(":a:" + i, expandBar.getItemCount() == i);
new ExpandItem(expandBar, 0);
}
}
@Test
public void test_getItemI() {
int number = 5;
ExpandItem[] items = new ExpandItem[number];
for (int i = 0; i<number ; i++){
items[i] = new ExpandItem(expandBar, 0);
}
for (int i = 0; i<number ; i++){
assertTrue(":a:", expandBar.getItem(i)==items[i]);
}
expandBar = new ExpandBar(shell, 0);
number = 5;
items = new ExpandItem[number];
for (int i = 0; i<number ; i++){
items[i] = new ExpandItem(expandBar, 0);
}
try {
expandBar.getItem(number);
fail("No exception thrown for illegal index argument");
}
catch (IllegalArgumentException e) {
}
}
@Test
public void test_getItems() {
int number = 5;
ExpandItem[] items = new ExpandItem[number];
for (int i = 0; i<number ; i++) {
items[i] = new ExpandItem(expandBar, 0);
}
assertArrayEquals(items, expandBar.getItems());
expandBar.getItems()[0].dispose();
assertArrayEquals(new ExpandItem[] {items[1], items[2], items[3], items[4]}, expandBar.getItems());
expandBar.getItems()[3].dispose();
assertArrayEquals(new ExpandItem[] {items[1], items[2], items[3]}, expandBar.getItems());
expandBar.getItems()[1].dispose();
assertArrayEquals(new ExpandItem[] {items[1], items[3]}, expandBar.getItems());
}
@Test
public void test_indexOfLorg_eclipse_swt_widgets_ExpandItem() {
int number = 10;
ExpandItem[] items = new ExpandItem[number];
for (int i = 0; i < number; i++) {
items[i] = new ExpandItem(expandBar, 0);
}
for (int i = 0; i < number; i++) {
assertTrue(":a:" + i, expandBar.indexOf(items[i] ) == i);
}
items = new ExpandItem[number];
for (int i = 0; i < number; i++) {
items[i] = new ExpandItem(expandBar, 0);
}
for (int i = 0; i < number; i++) {
try {
expandBar.indexOf(null);
fail("No exception thrown for expandItem == null");
}
catch (IllegalArgumentException e) {
}
}
}
@Test
public void test_setSpacingI() {
expandBar.setSpacing(0);
assertEquals(expandBar.getSpacing(), 0);
expandBar.setSpacing(3);
assertEquals(expandBar.getSpacing(), 3);
expandBar.setSpacing(-4);
assertEquals(expandBar.getSpacing(), 3);
}
private void createExpandBar(List<String> events) {
expandBar = new ExpandBar(shell, SWT.V_SCROLL);
for (int i = 0; i < 3; i++) {
ExpandItem item = new ExpandItem(expandBar, SWT.NONE);
item.setText("ExpandBar" + i);
hookExpectedEvents(item, getTestName(), events);
}
setWidget(expandBar);
}
@Test
public void test_consistency_MouseSelection() {
List<String> events = new ArrayList<>();
createExpandBar(events);
consistencyEvent(30, 10, 1, 0, ConsistencyUtility.MOUSE_CLICK, events);
}
@Test
public void test_consistency_EnterSelection() {
List<String> events = new ArrayList<>();
createExpandBar(events);
consistencyEvent(13, 10, 0, 0, ConsistencyUtility.KEY_PRESS, events);
}
@Test
public void test_consistency_SpaceSelection () {
List<String> events = new ArrayList<>();
createExpandBar(events);
consistencyEvent(' ', 32, 0, 0, ConsistencyUtility.KEY_PRESS, events);
}
@Test
public void test_consistency_MenuDetect () {
List<String> events = new ArrayList<>();
createExpandBar(events);
consistencyEvent(50, 15, 3, 0, ConsistencyUtility.MOUSE_CLICK, events);
}
@Test
public void test_consistency_DragDetect () {
List<String> events = new ArrayList<>();
createExpandBar(events);
consistencyEvent(30, 20, 50, 20, ConsistencyUtility.MOUSE_DRAG, events);
}
/* custom */
protected ExpandBar expandBar;
}