java.lang.IllegalStateException on testing a JInternalFrame

60 views
Skip to first unread message

Robson Alécio Somera

unread,
Jul 24, 2013, 6:11:10 PM7/24/13
to easyt...@googlegroups.com
Hi guys,

I have the following test class:

public class CadastreFrameTest {
private static final String BUTTON_NEW = "btnNew";
private static final String BUTTON_EDIT = "btnEdit";
private static final String BUTTON_SAVE = "btnSave";
private static final String BUTTON_DELETE = "btnDelete";
private static final String BUTTON_NEW_SEARCH = "btnNewSearch";
private static final String BUTTON_SEARCH = "btnSearch";
private JInternalFrameFixture window;

@BeforeClass
public static void setUpOnce() {
FailOnThreadViolationRepaintManager.install();
}
@Before
public void setUp() {
CadastreFrame frame = GuiActionRunner.execute(new GuiQuery<CadastreFrame>() {

@Override
protected CadastreFrame executeInEDT() throws Throwable {
CadastreFrame cadastreFrame = new CadastreForTestFrame(null);
cadastreFrame.show();
cadastreFrame.setVisible(true);
return cadastreFrame;
}
});
Robot robot = BasicRobot.robotWithNewAwtHierarchy();
robot.settings().componentLookupScope(ComponentLookupScope.ALL);
window = new JInternalFrameFixture(robot, frame);
}
@Test
public void testOpen() {
window.button(BUTTON_NEW).requireEnabled();
window.button(BUTTON_EDIT).requireDisabled();
window.button(BUTTON_SAVE).requireDisabled();
window.button(BUTTON_DELETE).requireDisabled();
window.button(BUTTON_NEW_SEARCH).requireEnabled();
window.button(BUTTON_SEARCH).requireEnabled();
assertThat(windowTarget().getActualSection()).isEqualTo(CadastreFrame.SEARCH_SECTION);
}
@Test
public void testInsert() {
JButtonFixture buttoNew = window.button(BUTTON_NEW);
buttoNew.click(); //error happens here
buttoNew.requireDisabled();
window.button(BUTTON_EDIT).requireDisabled();
window.button(BUTTON_SAVE).requireEnabled();
window.button(BUTTON_DELETE).requireEnabled();
window.button(BUTTON_NEW_SEARCH).requireDisabled();
window.button(BUTTON_SEARCH).requireDisabled();
assertThat(windowTarget().getActualSection()).isEqualTo(CadastreFrame.RECORD_SECTION);
}

private CadastreFrame windowTarget() {
return (CadastreFrame) window.target;
}
}


When I run the tests the testOpen works fine, however the testInsert result in this error:
java.lang.IllegalStateException: Expecting component javax.swing.JButton[name='btnNew', text='', enabled=true, visible=true, showing=false] to be showing on the screen
at org.fest.swing.driver.ComponentStateValidator.componentNotShowingOnScreenFailure(ComponentStateValidator.java:87)
at org.fest.swing.driver.ComponentStateValidator.validateIsShowing(ComponentStateValidator.java:72)
at org.fest.swing.driver.ComponentStateValidator.validateIsEnabledAndShowing(ComponentStateValidator.java:44)
at org.fest.swing.driver.ComponentDriver$2.executeInEDT(ComponentDriver.java:499)
at org.fest.swing.edt.GuiTask.run(GuiTask.java:37)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:703)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
at org.fest.swing.edt.GuiActionRunner.execute(GuiActionRunner.java:97)
at org.fest.swing.driver.ComponentDriver.assertIsEnabledAndShowing(ComponentDriver.java:497)
at org.fest.swing.driver.ComponentDriver.click(ComponentDriver.java:93)
at org.fest.swing.fixture.JButtonFixture.click(JButtonFixture.java:99)
at swingutils.internalframes.CadastreFrameTest.testInsert(CadastreFrameTest.java:61)

I've had to put this line in below to works the testOpen:
robot.settings().componentLookupScope(ComponentLookupScope.ALL);

Some idea about the problem?

Thanks.
Reply all
Reply to author
Forward
0 new messages