assertj / assertj/assertj-swing

JFileChooserFixture.selectFile() fails if called twice in OSX

Aperta
#191 3 commenti 0 reazioni 0 assegnatari Vedi su GitHub
OS X
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

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.