Files
JIMRI/java/test/jmri/jmrit/operations/setup/gui/OptionFrameTest.java
T
2026-06-17 14:00:51 +02:00

130 lines
4.9 KiB
Java

package jmri.jmrit.operations.setup.gui;
import java.awt.GraphicsEnvironment;
import org.junit.Assert;
import org.junit.Assume;
import org.junit.jupiter.api.Test;
import jmri.jmrit.operations.OperationsTestCase;
import jmri.util.JUnitOperationsUtil;
import jmri.util.JUnitUtil;
import jmri.util.swing.JemmyUtil;
/**
* Tests for the OptionFrame class
*
* @author Dan Boudreau Copyright (C) 2009
* @author Paul Bender Copyright (C) 2017
*/
public class OptionFrameTest extends OperationsTestCase {
@Test
public void testCTor() {
Assume.assumeFalse(GraphicsEnvironment.isHeadless());
OptionFrame t = new OptionFrame();
Assert.assertNotNull("exists",t);
}
@Test
public void testOptionFrameWrite() {
Assume.assumeFalse(GraphicsEnvironment.isHeadless());
OptionFrame f = new OptionFrame();
f.setLocation(0, 0); // entire panel must be visible for tests to work properly
f.initComponents();
OptionPanel p = (OptionPanel) f.getContentPane();
// confirm defaults
Assert.assertTrue("build normal", p.buildNormal.isSelected());
Assert.assertFalse("build aggressive", p.buildAggressive.isSelected());
Assert.assertFalse("local", p.localSpurCheckBox.isSelected());
Assert.assertFalse("interchange", p.localInterchangeCheckBox.isSelected());
Assert.assertFalse("yard", p.localYardCheckBox.isSelected());
Assert.assertFalse("rfid", p.rfidCheckBox.isSelected());
Assert.assertFalse("car logger", p.carLoggerCheckBox.isSelected());
Assert.assertFalse("engine logger", p.engineLoggerCheckBox.isSelected());
Assert.assertTrue("router", p.routerCheckBox.isSelected());
JemmyUtil.enterClickAndLeave(p.buildAggressive);
Assert.assertFalse("build normal", p.buildNormal.isSelected());
Assert.assertTrue("build aggressive", p.buildAggressive.isSelected());
JemmyUtil.enterClickAndLeave(p.localSpurCheckBox);
Assert.assertTrue("local", p.localSpurCheckBox.isSelected());
JemmyUtil.enterClickAndLeave(p.localInterchangeCheckBox);
Assert.assertTrue("interchange", p.localInterchangeCheckBox.isSelected());
JemmyUtil.enterClickAndLeave(p.localYardCheckBox);
Assert.assertTrue("yard", p.localYardCheckBox.isSelected());
// JemmyUtil.enterClickAndLeave(p.rfidCheckBox);
// use doClick() in case the checkbox isn't visible due to scrollbars.
p.rfidCheckBox.doClick();
Assert.assertTrue("rfid", p.rfidCheckBox.isSelected());
JemmyUtil.enterClickAndLeave(p.carLoggerCheckBox);
Assert.assertTrue("car logger", p.carLoggerCheckBox.isSelected());
JemmyUtil.enterClickAndLeave(p.engineLoggerCheckBox);
Assert.assertTrue("engine logger", p.engineLoggerCheckBox.isSelected());
JemmyUtil.enterClickAndLeave(p.routerCheckBox);
Assert.assertFalse("router", p.routerCheckBox.isSelected());
JemmyUtil.enterClickAndLeave(p.saveButton);
// done
JUnitUtil.dispose(f);
f = new OptionFrame();
f.setLocation(0, 0); // entire panel must be visible for tests to work properly
f.initComponents();
p = (OptionPanel) f.getContentPane();
Assert.assertFalse("build normal", p.buildNormal.isSelected());
Assert.assertTrue("build aggressive", p.buildAggressive.isSelected());
Assert.assertTrue("local", p.localSpurCheckBox.isSelected());
Assert.assertTrue("interchange", p.localInterchangeCheckBox.isSelected());
Assert.assertTrue("yard", p.localYardCheckBox.isSelected());
Assert.assertTrue("rfid", p.rfidCheckBox.isSelected());
Assert.assertTrue("car logger", p.carLoggerCheckBox.isSelected());
Assert.assertTrue("engine logger", p.engineLoggerCheckBox.isSelected());
Assert.assertFalse("router", p.routerCheckBox.isSelected());
// done
JUnitUtil.dispose(f);
}
@Test
public void testIsDirty() {
Assume.assumeFalse(GraphicsEnvironment.isHeadless());
OptionFrame f = new OptionFrame();
f.initComponents();
OptionPanel p = (OptionPanel) f.getContentPane();
// confirm defaults
Assert.assertTrue("build normal", p.buildNormal.isSelected());
Assert.assertFalse("not dirty 1", p.isDirty());
JemmyUtil.enterClickAndLeave(p.buildAggressive);
Assert.assertTrue("now dirty 1", p.isDirty());
JemmyUtil.enterClickAndLeave(p.buildNormal);
Assert.assertFalse("not dirty 2", p.isDirty());
// done
JUnitUtil.dispose(f);
}
@Test
public void testCloseWindowOnSave() {
Assume.assumeFalse(GraphicsEnvironment.isHeadless());
OptionFrame f = new OptionFrame();
f.initComponents();
JUnitOperationsUtil.testCloseWindowOnSave(f.getTitle());
}
// private static final Logger log = LoggerFactory.getLogger(OptionFrameTest.class);
}