assertj / assertj/assertj-swing

Unable to locate JOptionPane in AWT Hierarchy

Offen
#74 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
bug import from fest-swing Major
Vorherrschende Sprache
Java
Sterne
121
Forks
52
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

_Issue by **[Bobby](http://jira.codehaus.org/secure/ViewProfile.jspa?name=rbonslat)** from Wed, 11 Aug 2010 14:59:41 -0500_
_Originally opened as http://jira.codehaus.org/browse/FEST-380_

---

I am unable to find JOptionPane when testing a Java swing applet.

Here is the code that executes the swing component from the Swing applet:

int choose = JOptionPane.showOptionDialog(null, "Click Yes to confirm the commit",

"Click Yes to confirm the commit", JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE, null, options,

options[0]);

// int choose = JOptionPane.showConfirmDialog(null,

// "Click Yes to confirm the commit.", "Click Yes to confirm the commit",

// JOptionPane.YES_NO_OPTION);

// if (choose == JOptionPane.YES_OPTION){

if (choose == YesOption)

{
da.commit();
// cbDraw.log("commit.");
}

Here is my FEST test code that tries to locate it:

JOptionPaneFixture option_pane = m_navigator.optionPane();

public JOptionPaneFixture optionPane()

{
return frame.optionPane();
}

/**

{@inheritDoc} _/

public JOptionPaneFixture optionPane() {
return optionPane(DEFAULT_DIALOG_LOOKUP_TIMEOUT);
}



/_\* {@inheritDoc}

*/

public JOptionPaneFixture optionPane(Timeout timeout)

{
TypeMatcher matcher = new TypeMatcher(JOptionPane.class, requireShowing());
String description = "option pane to be found using matcher " + matcher;
ComponentFoundCondition condition = new ComponentFoundCondition(description, robot.finder(), matcher);
pause(condition, timeout);
return new JOptionPaneFixture(robot, (JOptionPane)condition.found());
}

Here is the error I get:

Error (org.fest.swing.exception.WaitTimedOutError: Timed out waiting for option pane to be found using matcher org.fest.swing.core.TypeMatcher[type=javax.swing.JOptionPane, requireShowing=true])

NOTE 1: Strangely enough though it may seem, I am able to find a JOptionPane only when the Swing applet launches the component like the following unlike the one stated above:

JOptionPane.showMessageDialog((Component) cbDraw, "need to input a numerical value between high and low!");

Not sure if this is of any significance or not but it's worth mentioning.

NOTE 2: Also I'm not certain whether this issue has anything to do with owner less windows (parent less windows) or the AWT hierarchy state. I've also tried a GenericTypeMatcher search as well. The component does not even show up when dumping out the hierarchy in the logs. Please advise.

---

votes (original issue): 1
watches (original issue): 1

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne damit, den Fall mit dem Swing-Applet zu reproduzieren, und vergleiche JOptionPane.showOptionDialog mit dem funktionierenden Aufruf showMessageDialog. Untersuche m_navigator.optionPane(), die TypeMatcher-Suche und den Hierarchie-Dump, um festzustellen, warum der Optionsbereich nicht gefunden wird. Als erledigt gilt die Aufgabe, wenn der gemeldete Dialog zuverlässig gefunden werden kann oder die Einschränkung mit einem fokussierten Regressionstest dokumentiert ist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
java
Bereich
desktop, testing
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.