private void doTest() throws Exception { ExtendedRobot robot = new ExtendedRobot(); robot.waitForIdle(1000); final Point cl = combo.getLocationOnScreen(); final Dimension cs = combo.getSize(); SwingUtilities.invokeAndWait( new Runnable() { public void run() { frame.dispose(); } }); robot.waitForIdle(delay); SwingUtilities.invokeAndWait( new Runnable() { public void run() { frame.setSize((int) cl.x - 700 + cs.width, (int) cl.y + cs.height - 5); frame.setVisible(true); } }); robot.waitForIdle(delay * 2); Point comboLocation = combo.getLocationOnScreen(); Dimension comboSize = combo.getSize(); robot.mouseMove((int) comboLocation.x + comboSize.width / 2, (int) comboLocation.y + 5); robot.waitForIdle(delay); robot.mousePress(InputEvent.BUTTON1_MASK); robot.delay(100); robot.mouseRelease(InputEvent.BUTTON1_MASK); robot.waitForIdle(delay); robot.mouseMove((int) comboLocation.x + comboSize.width / 2, (int) comboLocation.y + 60); robot.waitForIdle(delay); robot.mousePress(InputEvent.BUTTON1_MASK); robot.delay(100); robot.mouseRelease(InputEvent.BUTTON1_MASK); robot.waitForIdle(delay); if (!itemStateChanged) { synchronized (itemLock) { try { itemLock.wait(WAIT_EVENT_DELAY); } catch (Exception e) { } } } if (!itemStateChanged) { System.err.println("FAIL: ItemEvent not triggered when mouse clicked on combo box drop down"); passed = false; } if (!passed) { System.err.println("Test failed!"); captureScreenAndSave(); throw new RuntimeException("FAIL"); } else { System.out.println("Test passed!"); } }