Create ImageButton with correct Button Type (#10394)

This commit is contained in:
Shane Neuville 2020-04-22 09:18:22 -06:00 коммит произвёл GitHub
Родитель 26bba27edc
Коммит c92600adbd
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
4 изменённых файлов: 42 добавлений и 1 удалений

Просмотреть файл

@ -0,0 +1,23 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Foundation;
using NUnit.Framework;
using UIKit;
namespace Xamarin.Forms.Platform.iOS.UnitTests
{
[TestFixture]
public class ImageButtonTests : PlatformTestFixture
{
[Test, Category("ImageButton")]
public async Task CreatedWithCorrectButtonType()
{
var imageButton = new ImageButton();
UIButtonType buttonType = await GetControlProperty(imageButton, uiButton => uiButton.ButtonType);
Assert.AreNotEqual(UIButtonType.Custom, buttonType);
}
}
}

Просмотреть файл

@ -140,6 +140,23 @@ namespace Xamarin.Forms.Platform.iOS.UnitTests
});
}
protected UIButton GetNativeControl(ImageButton button)
{
var renderer = GetRenderer(button);
var viewRenderer = renderer.NativeView as ImageButtonRenderer;
return viewRenderer.Control;
}
protected async Task<TProperty> GetControlProperty<TProperty>(ImageButton button, Func<UIButton, TProperty> getProperty)
{
return await Device.InvokeOnMainThreadAsync(() => {
using (var uiButton = GetNativeControl(button))
{
return getProperty(uiButton);
}
});
}
protected async Task<TProperty> GetRendererProperty<TProperty>(View view,
Func<IVisualElementRenderer, TProperty> getProperty, bool requiresLayout = false)
{

Просмотреть файл

@ -58,6 +58,7 @@
<Compile Include="CornerRadiusTests.cs" />
<Compile Include="EmbeddingTests.cs" />
<Compile Include="FlowDirectionTests.cs" />
<Compile Include="ImageButtonTests.cs" />
<Compile Include="IsEnabledTests.cs" />
<Compile Include="IsVisibleTests.cs" />
<Compile Include="NavigationTests.cs" />

Просмотреть файл

@ -115,7 +115,7 @@ namespace Xamarin.Forms.Platform.iOS
protected override UIButton CreateNativeControl()
{
return new UIButton();
return new UIButton(UIButtonType.System);
}
protected override void SetAccessibilityLabel()