@Override public void press(final ComponentOperator op) { op.getQueueTool().invoke(new Runnable() { @Override public void run() { delegate.press(op); } }); }
@SuppressWarnings("unchecked") public T invoke() { return (T) new QueueTool().invokeSmoothly(new QueueTool.QueueAction("Invoking smoothly") { public Object launch() throws Exception { return work(); } }); }
@Test public void testGUI() throws InterruptedException { final JFrameOperator frame = showFrameWith(new FileComboBoxPanel(null)); final JTextComponentOperator tc0 = new JTextComponentOperator(frame, 0); final JTextComponentOperator tc1 = new JTextComponentOperator(frame, 1); // Type a character in tc0, then check that it's appearing in tc1. tc0.typeText("?"); tc0.getQueueTool().waitEmpty(); assertEquals("?", tc1.getText()); // Clear character in tc1, then ensure that its cleared in tc0, too. tc1.clearText(); tc1.getQueueTool().waitEmpty(); assertEquals("", tc0.getText()); // Select first element in list of tc0 (entry in current directory), // if any, and check its appearance in tc1, too. tc0.pressKey(KeyEvent.VK_DOWN); tc0.getQueueTool().waitEmpty(); final String child = tc0.getText(); assertEquals(child, tc1.getText()); frame.dispose(); } }
/** * Shows and hides the EnhancedPanel instance several times in a * JOptionPane and counts these events. */ @Test public void testEvents4JOptionPane() throws Exception { final CountingPanelListener l = new CountingPanelListener(); instance.addPanelListener(l); final String title = EnhancedPanelIT.class.getSimpleName(); final Runnable makeVisible = new Runnable() { @Override public void run() { JOptionPane.showMessageDialog( null, instance, title, JOptionPane.INFORMATION_MESSAGE); } }; for (int i = 1; i <= 3; i++) { runOnEdt(makeVisible); final JDialogOperator dialog = new JDialogOperator(title); // wait for JOptionPane assertEquals(i, l.shown); assertEquals(i - 1, l.hidden); final JButtonOperator button = new JButtonOperator(dialog); button.push(); button.getQueueTool().waitEmpty(WAIT_EMPTY); assertEquals(i, l.shown); assertEquals(i, l.hidden); } }
@SuppressWarnings("ResultOfObjectAllocationIgnored") @Test public void testTabbedPane() { final ComponentChooser keyFileChooser = new NameComponentChooser("keyFileChooser"); new JTabbedPaneOperator(frame).selectPage(AuthenticationPanel.AUTH_KEY_FILE); // select tab for key files new JButtonOperator(frame, keyFileChooser).push(); // open file chooser JFileChooserOperator fc = new TFileChooserOperator(frame); fc.cancel(); new JTabbedPaneOperator(frame).selectPage(AuthenticationPanel.AUTH_PASSWD); // select tab for passwords new JLabelOperator(frame, LABEL_TEXT); fc = null; new JTabbedPaneOperator(frame).selectPage(AuthenticationPanel.AUTH_KEY_FILE); // select tab for key files new JButtonOperator(frame, keyFileChooser).push(); // open file chooser fc = new TFileChooserOperator(frame); final File file = new File("test"); fc.setSelectedFile(file); fc.approve(); fc.getQueueTool().waitEmpty(WAIT_EMPTY); JTextFieldOperator tf = new JTextFieldOperator(frame); assertEquals(file.getPath(), tf.getText()); fc = null; new JTabbedPaneOperator(frame).selectPage(AuthenticationPanel.AUTH_PASSWD); // select tab for passwords new JLabelOperator(frame, LABEL_TEXT); } }
@Override public void changeCaretPosition( final ComponentOperator op, final int position) { op.getQueueTool().invoke(new Runnable() { @Override public void run() { delegate.changeCaretPosition(op, position); } }); }
@Test public void testKeyFile() throws InterruptedException { final SafePbeParameters<?, ?> param = newPbeParameters(); new JTabbedPaneOperator(frame).selectPage(AuthenticationPanel.AUTH_KEY_FILE); // select tab for key files new JButtonOperator(frame, KEY_FILE_CHOOSER).push(); // open file chooser JFileChooserOperator fc = new TFileChooserOperator(frame); fc.chooseFile(NON_EXISTING_FILE); fc.getQueueTool().waitEmpty(WAIT_EMPTY); assertTrue(isBlank(error.getText())); assertFalse(updateParam(param)); assertFalse(isBlank(error.getText())); new JButtonOperator(frame, KEY_FILE_CHOOSER).push(); // open file chooser fc = new TFileChooserOperator(frame); final List<File> files = Arrays.asList(fc.getFiles()); Collections.shuffle(files); for (final File file : files) { if (!file.isFile()) continue; fc.setSelectedFile(file); fc.approve(); // close file chooser if (updateParam(param)) { assertNotNull(param.getPassword()); assertTrue(isBlank(error.getText())); } else { assertFalse(isBlank(error.getText())); } return; } fc.cancel(); // close file chooser }
@Override public void typeText( final ComponentOperator op, final String text, final int caretPosition) { op.getQueueTool().invoke(new Runnable() { @Override public void run() { delegate.typeText(op, text, caretPosition); } }); }
@Test public void testUpdateErrorLabel() { panel.setError("This is a test error message!"); assertFalse(isBlank(error.getText())); final JTextFieldOperator tf = new JTextFieldOperator(frame); tf.setText("secret"); //tf.getQueueTool().waitEmpty(WAIT_EMPTY); assertTrue(isBlank(error.getText())); panel.setError("This is a test error message!"); assertFalse(isBlank(error.getText())); new JTabbedPaneOperator(frame).selectPage(AuthenticationPanel.AUTH_KEY_FILE); // select tab for key files new JButtonOperator(frame, KEY_FILE_CHOOSER).push(); // open file chooser final JFileChooserOperator fc = new TFileChooserOperator(frame); fc.chooseFile(NON_EXISTING_FILE); fc.getQueueTool().waitEmpty(WAIT_EMPTY); assertTrue(isBlank(error.getText())); }
@Override public void changeText( final ComponentOperator op, final String text) { op.getQueueTool().invoke(new Runnable() { @Override public void run() { delegate.changeText(op, text); } }); }
@Override public void enterText( final ComponentOperator op, final String text) { op.getQueueTool().invoke(new Runnable() { @Override public void run() { delegate.enterText(op, text); } }); } } // AtomicTextDriver
@Override public void push(final ComponentOperator op) { op.getQueueTool().invoke(new Runnable() { @Override public void run() { delegate.push(op); } }); } } // AtomicButtonDriver
@Override public void clearText(final ComponentOperator op) { op.getQueueTool().invoke(new Runnable() { @Override public void run() { delegate.clearText(op); } }); }
@Override public void release(final ComponentOperator op) { op.getQueueTool().invoke(new Runnable() { @Override public void run() { delegate.release(op); } }); }