Skip to content

Commit bf9144a

Browse files
author
Jake Ginnivan
committed
Do not cache top level menu, it needs to be rebuilt every time otherwise an exception is thrown the next time you access the items
1 parent fe2a153 commit bf9144a

File tree

3 files changed

+9
-7
lines changed

3 files changed

+9
-7
lines changed

src/TestStack.White.UITests/Scenarios/Win32Tests.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
using TestStack.White.UIItems.Finders;
66
using TestStack.White.UIItems.ListBoxItems;
77
using TestStack.White.UIItems.MenuItems;
8+
using TestStack.White.UIItems.WindowStripControls;
89
using TestStack.White.WindowsAPI;
910
using Xunit;
1011

@@ -64,6 +65,11 @@ public void CalculatorTests()
6465
using (var application = Application.AttachOrLaunch(psi))
6566
using (var mainWindow = application.GetWindow(SearchCriteria.ByText("Calculator"), InitializeOption.NoCache))
6667
{
68+
// Verify can click on menu twice
69+
var menuBar = mainWindow.Get<MenuBar>(SearchCriteria.ByText("Application"));
70+
menuBar.MenuItem("Edit", "Copy").Click();
71+
menuBar.MenuItem("Edit", "Copy").Click();
72+
6773
mainWindow.Keyboard.HoldKey(KeyboardInput.SpecialKeys.CONTROL);
6874
mainWindow.Keyboard.Enter("E");
6975
mainWindow.Keyboard.LeaveKey(KeyboardInput.SpecialKeys.CONTROL);

src/TestStack.White/UIItems/MenuItems/Menus.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,9 @@
44
using System.Threading;
55
using System.Windows.Automation;
66
using TestStack.White.AutomationElementSearch;
7-
using TestStack.White.Configuration;
87
using TestStack.White.Factory;
98
using TestStack.White.UIItems.Actions;
109
using TestStack.White.UIItems.Finders;
11-
using TestStack.White.Utility;
1210

1311
namespace TestStack.White.UIItems.MenuItems
1412
{

src/TestStack.White/UIItems/WindowStripControls/MenuBar.cs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,27 +7,25 @@ namespace TestStack.White.UIItems.WindowStripControls
77
{
88
public class MenuBar : UIItem, MenuContainer
99
{
10-
private readonly Menus topLevelMenu;
1110
protected MenuBar() {}
1211

1312
public MenuBar(AutomationElement automationElement, ActionListener actionListener) : base(automationElement, actionListener)
1413
{
15-
topLevelMenu = new Menus(automationElement, actionListener);
1614
}
1715

1816
public virtual Menu MenuItem(params string[] path)
1917
{
20-
return topLevelMenu.Find(path);
18+
return TopLevelMenu.Find(path);
2119
}
2220

2321
public virtual Menu MenuItemBy(params SearchCriteria[] path)
2422
{
25-
return topLevelMenu.Find(path);
23+
return TopLevelMenu.Find(path);
2624
}
2725

2826
public virtual Menus TopLevelMenu
2927
{
30-
get { return topLevelMenu; }
28+
get { return new Menus(automationElement, actionListener); }
3129
}
3230
}
3331
}

0 commit comments

Comments
 (0)