Browse Source

Refactored ComboBox integration tests.

ui-automation-test
Steven Kirk 4 years ago
parent
commit
ddb6ab977e
  1. 18
      samples/IntegrationTestApp/MainWindow.axaml
  2. 11
      samples/IntegrationTestApp/MainWindow.axaml.cs
  3. 74
      tests/Avalonia.IntegrationTests.Appium/ComboBoxTests.cs

18
samples/IntegrationTestApp/MainWindow.axaml

@ -19,6 +19,7 @@
</NativeMenu.Menu>
<DockPanel>
<NativeMenuBar DockPanel.Dock="Top"/>
<TabControl TabStripPlacement="Left" Name="MainTabs">
<TabItem Header="Automation">
<StackPanel>
@ -32,6 +33,7 @@
</TextBox>
</StackPanel>
</TabItem>
<TabItem Header="Button">
<StackPanel>
<Button Name="DisabledButton" IsEnabled="False">
@ -57,18 +59,12 @@
<TabItem Header="ComboBox">
<StackPanel>
<ComboBox Name="UnselectedComboBox">
<ComboBoxItem>Foo</ComboBoxItem>
<ComboBoxItem>Bar</ComboBoxItem>
</ComboBox>
<ComboBox Name="SelectedIndex0ComboBox" SelectedIndex="0">
<ComboBoxItem>Foo</ComboBoxItem>
<ComboBoxItem>Bar</ComboBoxItem>
</ComboBox>
<ComboBox Name="SelectedIndex1ComboBox" SelectedIndex="1">
<ComboBoxItem>Foo</ComboBoxItem>
<ComboBoxItem>Bar</ComboBoxItem>
<ComboBox Name="ComboBox">
<ComboBoxItem>Item 0</ComboBoxItem>
<ComboBoxItem>Item 1</ComboBoxItem>
</ComboBox>
<Button Name="ComboBoxSelectionClear">Clear Selection</Button>
<Button Name="ComboBoxSelectFirst">Select First</Button>
</StackPanel>
</TabItem>

11
samples/IntegrationTestApp/MainWindow.axaml.cs

@ -13,6 +13,7 @@ namespace IntegrationTestApp
InitializeComponent();
InitializeViewMenu();
this.AttachDevTools();
AddHandler(Button.ClickEvent, OnButtonClick);
}
private void InitializeComponent()
@ -44,5 +45,15 @@ namespace IntegrationTestApp
var clickedMenuItemTextBlock = this.FindControl<TextBlock>("ClickedMenuItem");
clickedMenuItemTextBlock.Text = ((MenuItem)sender!).Header.ToString();
}
private void OnButtonClick(object? sender, RoutedEventArgs e)
{
var source = e.Source as Button;
if (source?.Name == "ComboBoxSelectionClear")
this.FindControl<ComboBox>("ComboBox").SelectedIndex = -1;
if (source?.Name == "ComboBoxSelectFirst")
this.FindControl<ComboBox>("ComboBox").SelectedIndex = 0;
}
}
}

74
tests/Avalonia.IntegrationTests.Appium/ComboBoxTests.cs

@ -1,4 +1,6 @@
using OpenQA.Selenium.Appium;
using System.Threading;
using OpenQA.Selenium;
using OpenQA.Selenium.Appium;
using OpenQA.Selenium.Appium.Mac;
using Xunit;
@ -19,32 +21,82 @@ namespace Avalonia.IntegrationTests.Appium
}
[Fact]
public void UnselectedComboBox()
public void Can_Change_Selection_Using_Mouse()
{
var comboBox = _session.FindElementByAccessibilityId("UnselectedComboBox");
var comboBox = _session.FindElementByAccessibilityId("ComboBox");
_session.FindElementByAccessibilityId("ComboBoxSelectFirst").Click();
Assert.Equal("Item 0", comboBox.Text);
comboBox.Click();
_session.FindElementByName("Item 1").SendClick();
Assert.Equal("Item 1", comboBox.Text);
}
[Fact]
public void Can_Change_Selection_From_Unselected_Using_Mouse()
{
var comboBox = _session.FindElementByAccessibilityId("ComboBox");
_session.FindElementByAccessibilityId("ComboBoxSelectionClear").Click();
Assert.Equal(string.Empty, comboBox.Text);
comboBox.Click();
_session.FindElementByName("Bar").SendClick();
_session.FindElementByName("Item 0").SendClick();
Assert.Equal("Bar", comboBox.Text);
Assert.Equal("Item 0", comboBox.Text);
}
[Fact]
public void SelectedIndex0ComboBox()
public void Can_Change_Selection_With_Keyboard()
{
var comboBox = _session.FindElementByAccessibilityId("SelectedIndex0ComboBox");
var comboBox = _session.FindElementByAccessibilityId("ComboBox");
_session.FindElementByAccessibilityId("ComboBoxSelectFirst").Click();
Assert.Equal("Item 0", comboBox.Text);
comboBox.SendKeys(Keys.LeftAlt + Keys.ArrowDown);
comboBox.SendKeys(Keys.ArrowDown);
Assert.Equal("Foo", comboBox.Text);
var item = _session.FindElementByName("Item 1");
item.SendKeys(Keys.Enter);
Assert.Equal("Item 1", comboBox.Text);
}
[Fact]
public void SelectedIndex1ComboBox()
public void Can_Change_Selection_With_Keyboard_From_Unselected()
{
var comboBox = _session.FindElementByAccessibilityId("SelectedIndex1ComboBox");
var comboBox = _session.FindElementByAccessibilityId("ComboBox");
_session.FindElementByAccessibilityId("ComboBoxSelectionClear").Click();
Assert.Equal(string.Empty, comboBox.Text);
Assert.Equal("Bar", comboBox.Text);
comboBox.SendKeys(Keys.LeftAlt + Keys.ArrowDown);
comboBox.SendKeys(Keys.ArrowDown);
var item = _session.FindElementByName("Item 0");
item.SendKeys(Keys.Enter);
Assert.Equal("Item 0", comboBox.Text);
}
[Fact]
public void Can_Cancel_Keyboard_Selection_With_Escape()
{
var comboBox = _session.FindElementByAccessibilityId("ComboBox");
_session.FindElementByAccessibilityId("ComboBoxSelectionClear").Click();
Assert.Equal(string.Empty, comboBox.Text);
comboBox.SendKeys(Keys.LeftAlt + Keys.ArrowDown);
comboBox.SendKeys(Keys.ArrowDown);
var item = _session.FindElementByName("Item 0");
item.SendKeys(Keys.Escape);
Assert.Equal(string.Empty, comboBox.Text);
}
}
}

Loading…
Cancel
Save