assertj / assertj/assertj-swing
JFileChooserFixture.selectFile() fails if called twice in OSX
- Lingua principale
- Java
- Stelle
- 121
- Fork
- 52
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
Hi,
The following second Test fails on OSX. On Windows it works like expected. It might be a Swing issue in the MAC VM.
```
import java.io.File;
import org.assertj.swing.core.Robot;
import org.assertj.swing.edt.GuiActionRunner;
import org.assertj.swing.edt.GuiQuery;
import org.assertj.swing.finder.JFileChooserFinder;
import org.assertj.swing.fixture.FrameFixture;
import org.assertj.swing.fixture.JFileChooserFixture;
import org.assertj.swing.junit.testcase.AssertJSwingJUnitTestCase;
import org.junit.Test;
public class FileChooserTest extends AssertJSwingJUnitTestCase {
protected FrameFixture window;
protected Robot robot;
@Override
protected void onSetUp() {
FileChooserFrame mainFrame = GuiActionRunner
.execute(new GuiQuery() {
protected FileChooserFrame executeInEDT() {
return new FileChooserFrame();
}
});
robot = robot();
window = new FrameFixture(robot, mainFrame);
}
@Test
public void openFileChooser() {
selectFile();
}
@Test
public void openFileChooserAgain() {
selectFile();
}
private void selectFile() {
String seperator = System.getProperty("file.separator");
String currentDir = new File("").getAbsolutePath() + seperator + "src";
String filePath = currentDir + seperator + "FileChooserFrame.java";
window.button().click();
JFileChooserFixture fileChooser = JFileChooserFinder.findFileChooser()
.using(robot);
fileChooser.setCurrentDirectory(new File(currentDir));
fileChooser.selectFile(new File(filePath));
fileChooser.approve();
window.textBox().requireText(filePath);
}
}
```
```
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.io.File;
import javax.swing.AbstractAction;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JTextField;
public class FileChooserFrame extends JFrame {
public FileChooserFrame() {
setSize(200, 100);
setTitle(getClass().getCanonicalName());
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setLayout(new FlowLayout());
JTextField textField = new JTextField();
textField.setPreferredSize(new Dimension(200, 20));
JButton button = new JButton("FileChooser");
JFrame parentFrame = this;
button.addActionListener(new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
JFileChooser fileChooser = new JFileChooser();
int returnVal = fileChooser.showOpenDialog(parentFrame);
if (returnVal == JFileChooser.APPROVE_OPTION) {
File file = fileChooser.getSelectedFile();
textField.setText(file.getAbsolutePath());
}
}
});
add(textField);
add(button);
setVisible(true);
}
public static void main(String[] args) {
new FileChooserFrame();
}
}
```
```
4.0.0
AssertJSwingTest
AssertJSwingTest
0.0.1-SNAPSHOT
src
maven-compiler-plugin
3.3
1.8
1.8
org.assertj
assertj-swing-junit
3.1.1
```
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
Inizia riproducendo il FileChooserTest fornito su macOS, in particolare la seconda chiamata a selectFile(), quindi esamina JFileChooserFixture.selectFile() e i test correlati del fixture del selettore di file. Il lavoro è completato quando lo stesso file può essere selezionato e approvato correttamente anche alla seconda invocazione, così come alla prima, senza compromettere il comportamento su Windows.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- java
- Ambito
- desktop, testing-qa
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 32/100