diff --git a/samples/IntegrationTestApp/MainWindow.axaml b/samples/IntegrationTestApp/MainWindow.axaml index b116e4c789..4e5a8463df 100644 --- a/samples/IntegrationTestApp/MainWindow.axaml +++ b/samples/IntegrationTestApp/MainWindow.axaml @@ -70,6 +70,7 @@ Item 0 Item 1 + Wrap Selection diff --git a/tests/Avalonia.IntegrationTests.Appium/ComboBoxTests.cs b/tests/Avalonia.IntegrationTests.Appium/ComboBoxTests.cs index abdb4e2dd8..8df7873582 100644 --- a/tests/Avalonia.IntegrationTests.Appium/ComboBoxTests.cs +++ b/tests/Avalonia.IntegrationTests.Appium/ComboBoxTests.cs @@ -47,7 +47,64 @@ namespace Avalonia.IntegrationTests.Appium } [PlatformFact(TestPlatforms.Windows)] - public void Can_Change_Selection_With_Keyboard() + public void Can_Change_Selection_With_Keyboard_When_Closed() + { + var comboBox = _session.FindElementByAccessibilityId("BasicComboBox"); + var wrap = _session.FindElementByAccessibilityId("ComboBoxWrapSelection"); + + if (wrap.GetIsChecked() != false) + wrap.Click(); + + _session.FindElementByAccessibilityId("ComboBoxSelectionClear").Click(); + + comboBox.SendKeys(Keys.ArrowDown); + Assert.Equal("Item 0", comboBox.GetComboBoxValue()); + + comboBox.SendKeys(Keys.ArrowDown); + Assert.Equal("Item 1", comboBox.GetComboBoxValue()); + + comboBox.SendKeys(Keys.ArrowDown); + Assert.Equal("Item 1", comboBox.GetComboBoxValue()); + + comboBox.SendKeys(Keys.ArrowUp); + Assert.Equal("Item 0", comboBox.GetComboBoxValue()); + + comboBox.SendKeys(Keys.ArrowUp); + Assert.Equal("Item 0", comboBox.GetComboBoxValue()); + } + + [PlatformFact(TestPlatforms.Windows)] + public void Can_Change_Wrapping_Selection_With_Keyboard_When_Closed() + { + var comboBox = _session.FindElementByAccessibilityId("BasicComboBox"); + var wrap = _session.FindElementByAccessibilityId("ComboBoxWrapSelection"); + + if (wrap.GetIsChecked() != true) + wrap.Click(); + + _session.FindElementByAccessibilityId("ComboBoxSelectionClear").Click(); + + comboBox.SendKeys(Keys.ArrowDown); + Assert.Equal("Item 0", comboBox.GetComboBoxValue()); + + comboBox.SendKeys(Keys.ArrowDown); + Assert.Equal("Item 1", comboBox.GetComboBoxValue()); + + comboBox.SendKeys(Keys.ArrowDown); + Assert.Equal("Item 0", comboBox.GetComboBoxValue()); + + comboBox.SendKeys(Keys.ArrowDown); + Assert.Equal("Item 1", comboBox.GetComboBoxValue()); + + comboBox.SendKeys(Keys.ArrowUp); + Assert.Equal("Item 0", comboBox.GetComboBoxValue()); + + comboBox.SendKeys(Keys.ArrowUp); + Assert.Equal("Item 1", comboBox.GetComboBoxValue()); + } + + [PlatformFact(TestPlatforms.Windows)] + public void Can_Change_Selection_When_Open_With_Keyboard() { var comboBox = _session.FindElementByAccessibilityId("BasicComboBox"); @@ -64,7 +121,7 @@ namespace Avalonia.IntegrationTests.Appium } [PlatformFact(TestPlatforms.Windows)] - public void Can_Change_Selection_With_Keyboard_From_Unselected() + public void Can_Change_Selection_When_Open_With_Keyboard_From_Unselected() { var comboBox = _session.FindElementByAccessibilityId("BasicComboBox");