blob: 885ee90ac17d129303b21d0542cdfcc40ea63dd6 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2000, 2016 Red Hat, Inc. 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
* Ian Pun <ipun@redhat.com> - addition of Spinner test class
*******************************************************************************/
package org.eclipse.swt.tests.junit;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Spinner;
import org.junit.Before;
import org.junit.Test;
public class Test_org_eclipse_swt_widgets_Spinner extends Test_org_eclipse_swt_widgets_Composite {
Spinner spinner;
@Override
@Before
public void setUp() {
super.setUp();
spinner = new Spinner(shell, 0);
setWidget(spinner);
}
@Override
@Test
public void test_ConstructorLorg_eclipse_swt_widgets_CompositeI() {
try {
spinner = new Spinner(null, 0);
fail("No exception thrown for parent == null");
}
catch (IllegalArgumentException e) {
}
int[] cases = {0, SWT.READ_ONLY, SWT.WRAP};
for (int i = 0; i < cases.length; i++)
spinner = new Spinner(shell, cases[i]);
}
@Override
@Test
public void test_computeSizeIIZ() {
// super class test is sufficient
}
@Test
public void test_getIncrement() {
int [] cases = {5,100,1000,1};
for (int i=0;i<cases.length;i++){
spinner.setIncrement(cases[i]);
assertEquals(spinner.getIncrement(), cases[i]);
}
spinner.setIncrement(-1);
assertEquals(spinner.getIncrement(), cases[cases.length-1]);
}
@Test
public void test_getDigits() {
int [] cases = {1,10,0};
for (int i=0;i<cases.length;i++){
spinner.setDigits(cases[i]);
assertEquals(spinner.getDigits(), cases[i]);
}
try{
spinner.setDigits(-1);
fail("setDigits should have failed with illegal Argument");
}
catch(IllegalArgumentException e){
assertEquals(spinner.getDigits(), cases[cases.length-1]);
}
}
@Test
public void test_getMaximum() {
spinner.setMaximum(1000);
assertEquals(spinner.getMaximum(), 1000);
spinner.setMinimum(100);
spinner.setMaximum(99);
assertEquals(spinner.getMaximum(), 1000);
}
@Test
public void test_getMinimum() {
spinner.setMinimum(2);
assertEquals(spinner.getMinimum(), 2);
spinner.setMaximum(99);
spinner.setMinimum(100);
assertEquals(spinner.getMinimum(), 2);
}
@Test
public void test_getPageIncrement() {
int [] cases = {5,1000,20,1};
for (int i=0;i<cases.length;i++){
spinner.setPageIncrement(cases[i]);
assertEquals(spinner.getPageIncrement(), cases[i]);
}
spinner.setPageIncrement(-1);
assertEquals(spinner.getPageIncrement(), cases[cases.length-1]);
}
@Test
public void test_getSelection() {
int [] cases = {5,1000,25,1};
for (int i=0;i<cases.length;i++){
if(cases[i]>=spinner.getMaximum())
cases[i] = spinner.getMaximum()-1;
spinner.setSelection(cases[i]);
assertEquals(spinner.getSelection(), cases[i]);
}
spinner.setSelection(spinner.getMaximum()+1);
assertEquals(spinner.getSelection(), spinner.getMaximum());
spinner.setSelection(spinner.getMinimum()-1);
assertEquals(spinner.getSelection(), spinner.getMinimum());
}
@Test
public void test_getTextLimit() {
int [] cases = {5,1000,1};
for (int i=0;i<cases.length;i++){
spinner.setTextLimit(cases[i]);
assertEquals(spinner.getTextLimit(), cases[i]);
}
try {
spinner.setTextLimit(0);
fail("setTextLimit should have caused an expection with value 0");
} catch (Exception e) {
}
}
@Test
public void test_setValues() {
int cases = 4;
int [] selection = {5,10,15,20};
int [] minimum = {1,5,15,0};
int [] maximum = {20,30,15,50};
int [] digits = {0,1,2,3};
int [] increment = {10,5,6,100};
int [] pageIncrement = {50,5,6,100};
for (int i=0;i<cases;i++){
spinner.setValues(selection[i], minimum[i], maximum[i], digits[i], increment[i], pageIncrement[i]);
assertEquals(spinner.getSelection(), selection[i]);
assertEquals(spinner.getMinimum(), minimum[i]);
assertEquals(spinner.getMaximum(), maximum[i]);
assertEquals(spinner.getDigits(), digits[i]);
assertEquals(spinner.getIncrement(), increment[i]);
assertEquals(spinner.getPageIncrement(), pageIncrement[i]);
}
spinner.setValues(5, 10, 3, -1, 0, -1);
assertEquals(spinner.getSelection(), selection[cases-1]);
assertEquals(spinner.getMinimum(), minimum[cases-1]);
assertEquals(spinner.getMaximum(), maximum[cases-1]);
assertEquals(spinner.getDigits(), digits[cases-1]);
assertEquals(spinner.getIncrement(), increment[cases-1]);
assertEquals(spinner.getPageIncrement(), pageIncrement[cases-1]);
spinner = new Spinner(shell,0);
}
@Test
public void test_getText(){
spinner.setSelection(5);
assertEquals(spinner.getText(), "5");
spinner.setSelection(-5);
assertEquals(spinner.getText(), "0");
spinner.setSelection(spinner.getMaximum()+1);
assertEquals(spinner.getText(), String.valueOf(spinner.getMaximum()));
}
}