computamike / windowlicker

Automatically exported from code.google.com/p/windowlicker
GNU General Public License v3.0
0 stars 0 forks source link

Test fails when selecting a menu item with a too long label #15

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
See the attached file.I've added a new test case (canSelectLongItems).

What is the expected output? What do you see instead?
A green bar on JUnit. I get a red one and the error message:

Tried to find:
    screen dimensions of exactly 1 JMenuItem (with text matching 'This is just a very simple example')
    in exactly 1 JMenu (with text matching 'File')
    in exactly 1 JMenuBar (same(<javax.swing.JMenuBar[menuBar,0,0,115x21,layout=javax.swing.plaf.basic.DefaultMenuLayout,alignmentX=0.0,alignmentY=0.0,border=javax.swing.plaf.basic.BasicBorders$MenuBarBorder@cd5f8b,flags=392,maximumSize=,minimumSize=,preferredSize=,margin=,paintBorder=true]>))
    in  the exact JFrame '"javax.swing.JFrame[componentViewer,0,0,123x97,invalid,layout=java.awt.BorderLayout,title=JMenuBarDriverTest,resizable,normal,defaultCloseOperation=DISPOSE_ON_CLOSE,rootPane=javax.swing.JRootPane[,4,30,115x63,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]"' 
but:

    contained 1 JMenuBar (same(<javax.swing.JMenuBar[menuBar,0,0,115x21,layout=javax.swing.plaf.basic.DefaultMenuLayout,alignmentX=0.0,alignmentY=0.0,border=javax.swing.plaf.basic.BasicBorders$MenuBarBorder@cd5f8b,flags=392,maximumSize=,minimumSize=,preferredSize=,margin=,paintBorder=true]>))
    contained 1 JMenu (with text matching 'File')
    contained 1 JMenuItem (with text matching 'This is just a very simple example')
    which had no screen dimensions

What version of the product are you using? On what operating system?
I've just got the last snapshot from SVN

Please provide any additional information below.

I think the problem is due to the JMenuItemDriver.leftClickOnComponent method 
which performs firstly an horizontal movement than a vertical one. It can cause 
the mouse pointer to miss the menu scope and let it close if the menu item 
label is too long.
A possible fix is to use createVerticalThenHorizontalMouseMoveGesture instead.
BTW, should createVerticalThenHorizontalMouseMoveGesture and 
horizontalThenVerticalMouseMove methods called accordingly each other?

Original issue reported on code.google.com by fago.ma...@gmail.com on 25 Nov 2010 at 3:53

Attachments: