package jmri.jmrit.display.palette; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; import javax.swing.JScrollPane; import jmri.Turnout; import jmri.jmrit.display.DisplayFrame; import jmri.jmrit.display.controlPanelEditor.ControlPanelEditor; import jmri.jmrit.picker.PickListModel; import jmri.util.JUnitUtil; import jmri.util.junit.annotations.DisabledIfHeadless; import org.junit.jupiter.api.*; import org.netbeans.jemmy.operators.*; /** * * @author Paul Bender Copyright (C) 2017 */ @DisabledIfHeadless public class TableItemPanelTest { @Test public void testCTor() { PickListModel tableModel = PickListModel.turnoutPickModelInstance(); DisplayFrame df = new DisplayFrame("Table Item Panel Test"); // NOI18N TableItemPanel t = new TableItemPanel<>(df,"IS01","",tableModel); assertNotNull( t, "exists"); JUnitUtil.dispose(df); } @Test public void testShowTurnoutIcons() { ControlPanelEditor editor = new ControlPanelEditor("EdItemPalette"); assertNotNull( editor, "exists"); JFrameOperator fo = new JFrameOperator(ItemPalette.getDefault("ItemPalette", editor)); ItemPalette._tabPane.setSelectedIndex(0); JScrollPane sp = (JScrollPane)ItemPalette._tabPane.getComponentAt(0); ItemPanel panel = (ItemPanel)sp.getViewport().getView(); assertNotNull( panel, "ItemPanel exists"); assertEquals( "Turnout", panel._itemType, "ItemPanel._itemType"); new JButtonOperator(fo, Bundle.getMessage("ShowIcons")).doClick(); new JButtonOperator(fo, Bundle.getMessage("HideIcons")).doClick(); new JButtonOperator(fo, Bundle.getMessage("ButtonEditIcons")).doClick(); fo.requestClose(); fo.waitClosed(); JUnitUtil.dispose(editor); } @Test public void testShowIndicatorTurnoutIcons() { ControlPanelEditor editor = new ControlPanelEditor("EdItemPalette"); assertNotNull( editor, "exists"); JFrameOperator fo = new JFrameOperator(ItemPalette.getDefault("ItemPalette", editor)); ItemPalette._tabPane.setSelectedIndex(14); JScrollPane sp = (JScrollPane)ItemPalette._tabPane.getComponentAt(15); ItemPanel panel = (ItemPanel)sp.getViewport().getView(); assertNotNull( panel, "ItemPanel exists"); assertEquals( "IndicatorTO", panel._itemType, "ItemPanel._itemType"); new JButtonOperator(fo, Bundle.getMessage("ShowIcons")).doClick(); new JButtonOperator(fo, Bundle.getMessage("HideIcons")).doClick(); new JButtonOperator(fo, Bundle.getMessage("ButtonEditIcons")).doClick(); fo.requestClose(); fo.waitClosed(); JUnitUtil.dispose(editor); } @Test public void testNewSensorFamily() { ControlPanelEditor editor = new ControlPanelEditor("EdItemPalette"); assertNotNull( editor, "exists"); JFrameOperator fo = new JFrameOperator(ItemPalette.getDefault("ItemPalette", editor)); ItemPalette._tabPane.setSelectedIndex(1); JScrollPane sp = (JScrollPane)ItemPalette._tabPane.getComponentAt(1); ItemPanel panel = (ItemPanel)sp.getViewport().getView(); assertNotNull( panel, "ItemPanel exists"); assertEquals( "Sensor", panel._itemType, "ItemPanel._itemType"); JButtonOperator bo = new JButtonOperator(fo, Bundle.getMessage("ShowIcons")); bo.doClick(); Thread t = new Thread(() -> { // constructor for jdo will wait until the dialog is visible JDialogOperator jdo = new JDialogOperator(fo, Bundle.getMessage("createNewFamily")); new JTextFieldOperator(jdo, 0).enterText("My Family Name"); new JButtonOperator(jdo, Bundle.getMessage("ButtonOK")).doClick(); }); t.setName("Close New Family Name Dialog Thread"); t.start(); String labelNewFamily = Bundle.getMessage("createNewFamily"); bo = new JButtonOperator(fo, labelNewFamily); bo.doClick(); JUnitUtil.waitFor(() -> !t.isAlive(), "New Family Name Dialog Thread Complete"); JFrameOperator myFamilyFrameOp = new JFrameOperator("Edit Icons for My Family Name"); myFamilyFrameOp.requestClose(); myFamilyFrameOp.waitClosed(); fo.requestClose(); fo.waitClosed(); JUnitUtil.dispose(editor); } @BeforeEach public void setUp() { JUnitUtil.setUp(); JUnitUtil.resetProfileManager(); } @AfterEach public void tearDown() { JUnitUtil.deregisterBlockManagerShutdownTask(); JUnitUtil.tearDown(); } }