diff --git a/samples/IntegrationTestApp/MainWindow.axaml.cs b/samples/IntegrationTestApp/MainWindow.axaml.cs index 170936f50d..986eb920a3 100644 --- a/samples/IntegrationTestApp/MainWindow.axaml.cs +++ b/samples/IntegrationTestApp/MainWindow.axaml.cs @@ -49,7 +49,7 @@ namespace IntegrationTestApp var menuItem = new NativeMenuItem { Header = (string?)tabItem.Header, - ToolTip = (string?)tabItem.Header, + ToolTip = $"Tip:{(string?)tabItem.Header}", IsChecked = tabItem.IsSelected, ToggleType = NativeMenuItemToggleType.Radio, }; diff --git a/src/Avalonia.Base/Platform/Internal/AssemblyDescriptorResolver.cs b/src/Avalonia.Base/Platform/Internal/AssemblyDescriptorResolver.cs index 8360feff4a..0a23014cac 100644 --- a/src/Avalonia.Base/Platform/Internal/AssemblyDescriptorResolver.cs +++ b/src/Avalonia.Base/Platform/Internal/AssemblyDescriptorResolver.cs @@ -26,7 +26,7 @@ internal class AssemblyDescriptorResolver: IAssemblyDescriptorResolver if (!_assemblyNameCache.TryGetValue(name, out var rv)) { var loadedAssemblies = AppDomain.CurrentDomain.GetAssemblies(); - var match = loadedAssemblies.FirstOrDefault(a => a.GetName().Name == name); + var match = loadedAssemblies.FirstOrDefault(a => name.Equals(a.GetName().Name, StringComparison.InvariantCultureIgnoreCase)); if (match != null) { _assemblyNameCache[name] = rv = new AssemblyDescriptor(match); diff --git a/src/Avalonia.Controls/NativeMenuBarPresenter.cs b/src/Avalonia.Controls/NativeMenuBarPresenter.cs index c5637d3dd4..f071afcc3b 100644 --- a/src/Avalonia.Controls/NativeMenuBarPresenter.cs +++ b/src/Avalonia.Controls/NativeMenuBarPresenter.cs @@ -33,7 +33,9 @@ internal class NativeMenuBarPresenter : Menu [!MenuItem.InputGestureProperty] = nativeItem.GetObservable(NativeMenuItem.GestureProperty).ToBinding(), [!MenuItem.ToggleTypeProperty] = nativeItem.GetObservable(NativeMenuItem.ToggleTypeProperty) // TODO12 remove NativeMenuItemToggleType - .Select(v => (MenuItemToggleType)v).ToBinding() + .Select(v => (MenuItemToggleType)v).ToBinding(), + [!ToolTip.TipProperty] = + nativeItem.GetObservable(NativeMenuItem.ToolTipProperty).ToBinding(), }; BindingOperations.Apply(newItem, MenuItem.IsCheckedProperty, InstancedBinding.TwoWay( diff --git a/tests/Avalonia.IntegrationTests.Appium/NativeMenuTests.cs b/tests/Avalonia.IntegrationTests.Appium/NativeMenuTests.cs index c4167bfa9d..290ebf70e6 100644 --- a/tests/Avalonia.IntegrationTests.Appium/NativeMenuTests.cs +++ b/tests/Avalonia.IntegrationTests.Appium/NativeMenuTests.cs @@ -70,13 +70,13 @@ namespace Avalonia.IntegrationTests.Appium buttonMenuItem.MovePointerOver(); // Wait for tooltip to open. - Thread.Sleep(1000); + Thread.Sleep(2000); var toolTipCandidates = _session.FindElementsByClassName("TextBlock"); - Assert.Contains(toolTipCandidates, x => x.Text == "Button"); + Assert.Contains(toolTipCandidates, x => x.Text == "Tip:Button"); } - [PlatformFact(TestPlatforms.MacOS)] + [PlatformFact(TestPlatforms.MacOS, Skip = "Flaky test")] public void MacOS_Native_Menu_Has_ToolTip_If_Defined() { var menuBar = _session.FindElementByXPath("/XCUIElementTypeApplication/XCUIElementTypeMenuBar"); @@ -87,10 +87,10 @@ namespace Avalonia.IntegrationTests.Appium buttonMenuItem.MovePointerOver(); // Wait for tooltip to open. - Thread.Sleep(2000); + Thread.Sleep(4000); var toolTipCandidates = _session.FindElementsByClassName("XCUIElementTypeStaticText"); - Assert.Contains(toolTipCandidates, x => x.Text == "Button"); + Assert.Contains(toolTipCandidates, x => x.Text == "Tip:Button"); } } }