From 26137caacaa2753f6f6ce4593967ea020ced208d Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Mon, 22 Nov 2021 14:59:41 +0100 Subject: [PATCH] Trying to get stuff working on macOS. Man, appium for mac sucks. --- samples/IntegrationTestApp/MainWindow.axaml | 2 +- .../IntegrationTestApp/MainWindow.axaml.cs | 4 +-- .../ComboBoxTests.cs | 30 +++++++++---------- .../ElementExtensions.cs | 7 +++++ .../TestAppFixture.cs | 1 + 5 files changed, 26 insertions(+), 18 deletions(-) diff --git a/samples/IntegrationTestApp/MainWindow.axaml b/samples/IntegrationTestApp/MainWindow.axaml index b0483cba32..90407294b5 100644 --- a/samples/IntegrationTestApp/MainWindow.axaml +++ b/samples/IntegrationTestApp/MainWindow.axaml @@ -59,7 +59,7 @@ - + Item 0 Item 1 diff --git a/samples/IntegrationTestApp/MainWindow.axaml.cs b/samples/IntegrationTestApp/MainWindow.axaml.cs index e61341c159..74bfb6b579 100644 --- a/samples/IntegrationTestApp/MainWindow.axaml.cs +++ b/samples/IntegrationTestApp/MainWindow.axaml.cs @@ -51,9 +51,9 @@ namespace IntegrationTestApp var source = e.Source as Button; if (source?.Name == "ComboBoxSelectionClear") - this.FindControl("ComboBox").SelectedIndex = -1; + this.FindControl("BasicComboBox").SelectedIndex = -1; if (source?.Name == "ComboBoxSelectFirst") - this.FindControl("ComboBox").SelectedIndex = 0; + this.FindControl("BasicComboBox").SelectedIndex = 0; } } } diff --git a/tests/Avalonia.IntegrationTests.Appium/ComboBoxTests.cs b/tests/Avalonia.IntegrationTests.Appium/ComboBoxTests.cs index 9c458059cf..677ba02b95 100644 --- a/tests/Avalonia.IntegrationTests.Appium/ComboBoxTests.cs +++ b/tests/Avalonia.IntegrationTests.Appium/ComboBoxTests.cs @@ -23,38 +23,38 @@ namespace Avalonia.IntegrationTests.Appium [Fact] public void Can_Change_Selection_Using_Mouse() { - var comboBox = _session.FindElementByAccessibilityId("ComboBox"); + var comboBox = _session.FindElementByAccessibilityId("BasicComboBox"); _session.FindElementByAccessibilityId("ComboBoxSelectFirst").Click(); - Assert.Equal("Item 0", comboBox.Text); + Assert.Equal("Item 0", comboBox.GetComboBoxValue()); comboBox.Click(); _session.FindElementByName("Item 1").SendClick(); - Assert.Equal("Item 1", comboBox.Text); + Assert.Equal("Item 1", comboBox.GetComboBoxValue()); } [Fact] public void Can_Change_Selection_From_Unselected_Using_Mouse() { - var comboBox = _session.FindElementByAccessibilityId("ComboBox"); + var comboBox = _session.FindElementByAccessibilityId("BasicComboBox"); _session.FindElementByAccessibilityId("ComboBoxSelectionClear").Click(); - Assert.Equal(string.Empty, comboBox.Text); + Assert.Equal(string.Empty, comboBox.GetComboBoxValue()); comboBox.Click(); _session.FindElementByName("Item 0").SendClick(); - Assert.Equal("Item 0", comboBox.Text); + Assert.Equal("Item 0", comboBox.GetComboBoxValue()); } [Fact] public void Can_Change_Selection_With_Keyboard() { - var comboBox = _session.FindElementByAccessibilityId("ComboBox"); + var comboBox = _session.FindElementByAccessibilityId("BasicComboBox"); _session.FindElementByAccessibilityId("ComboBoxSelectFirst").Click(); - Assert.Equal("Item 0", comboBox.Text); + Assert.Equal("Item 0", comboBox.GetComboBoxValue()); comboBox.SendKeys(Keys.LeftAlt + Keys.ArrowDown); comboBox.SendKeys(Keys.ArrowDown); @@ -62,16 +62,16 @@ namespace Avalonia.IntegrationTests.Appium var item = _session.FindElementByName("Item 1"); item.SendKeys(Keys.Enter); - Assert.Equal("Item 1", comboBox.Text); + Assert.Equal("Item 1", comboBox.GetComboBoxValue()); } [Fact] public void Can_Change_Selection_With_Keyboard_From_Unselected() { - var comboBox = _session.FindElementByAccessibilityId("ComboBox"); + var comboBox = _session.FindElementByAccessibilityId("BasicComboBox"); _session.FindElementByAccessibilityId("ComboBoxSelectionClear").Click(); - Assert.Equal(string.Empty, comboBox.Text); + Assert.Equal(string.Empty, comboBox.GetComboBoxValue()); comboBox.SendKeys(Keys.LeftAlt + Keys.ArrowDown); comboBox.SendKeys(Keys.ArrowDown); @@ -79,16 +79,16 @@ namespace Avalonia.IntegrationTests.Appium var item = _session.FindElementByName("Item 0"); item.SendKeys(Keys.Enter); - Assert.Equal("Item 0", comboBox.Text); + Assert.Equal("Item 0", comboBox.GetComboBoxValue()); } [Fact] public void Can_Cancel_Keyboard_Selection_With_Escape() { - var comboBox = _session.FindElementByAccessibilityId("ComboBox"); + var comboBox = _session.FindElementByAccessibilityId("BasicComboBox"); _session.FindElementByAccessibilityId("ComboBoxSelectionClear").Click(); - Assert.Equal(string.Empty, comboBox.Text); + Assert.Equal(string.Empty, comboBox.GetComboBoxValue()); comboBox.SendKeys(Keys.LeftAlt + Keys.ArrowDown); comboBox.SendKeys(Keys.ArrowDown); @@ -96,7 +96,7 @@ namespace Avalonia.IntegrationTests.Appium var item = _session.FindElementByName("Item 0"); item.SendKeys(Keys.Escape); - Assert.Equal(string.Empty, comboBox.Text); + Assert.Equal(string.Empty, comboBox.GetComboBoxValue()); } } } diff --git a/tests/Avalonia.IntegrationTests.Appium/ElementExtensions.cs b/tests/Avalonia.IntegrationTests.Appium/ElementExtensions.cs index 0d31e1de27..81d85be861 100644 --- a/tests/Avalonia.IntegrationTests.Appium/ElementExtensions.cs +++ b/tests/Avalonia.IntegrationTests.Appium/ElementExtensions.cs @@ -8,6 +8,13 @@ namespace Avalonia.IntegrationTests.Appium { internal static class ElementExtensions { + public static string GetComboBoxValue(this AppiumWebElement element) + { + return RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? + element.Text : + element.GetAttribute("value"); + } + public static string GetName(this AppiumWebElement element) => GetAttribute(element, "Name", "title"); public static bool? GetIsChecked(this AppiumWebElement element) => diff --git a/tests/Avalonia.IntegrationTests.Appium/TestAppFixture.cs b/tests/Avalonia.IntegrationTests.Appium/TestAppFixture.cs index f1b8d5773b..b3385d8ee7 100644 --- a/tests/Avalonia.IntegrationTests.Appium/TestAppFixture.cs +++ b/tests/Avalonia.IntegrationTests.Appium/TestAppFixture.cs @@ -39,6 +39,7 @@ namespace Avalonia.IntegrationTests.Appium opts.AddAdditionalCapability("appium:bundleId", TestAppBundleId); opts.AddAdditionalCapability(MobileCapabilityType.PlatformName, MobilePlatform.MacOS); opts.AddAdditionalCapability(MobileCapabilityType.AutomationName, "mac2"); + opts.AddAdditionalCapability("appium:showServerLogs", true); Session = new MacDriver( new Uri("http://127.0.0.1:4723/wd/hub"),