Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Skip tests currently having issues on WinUI #15527

Merged
merged 8 commits into from
Jun 9, 2023
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions src/Controls/tests/DeviceTests/ControlsHandlerTestBase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,13 @@

namespace Microsoft.Maui.DeviceTests
{
// Uncomment these sections if you hit issues with parallel executions
//[CollectionDefinition("Non-Parallel Collection", DisableParallelization = true)]
//public class NonParallelCollectionDefinitionClass
//{
//}

//[Collection("Non-Parallel Collection")]
public partial class ControlsHandlerTestBase : HandlerTestBase, IDisposable
{
// In order to run any page level tests android needs to add itself to the decor view inside a new fragment
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,11 @@ namespace Microsoft.Maui.DeviceTests
[Category(TestCategory.CheckBox)]
public partial class CheckBoxTests : ControlsHandlerTestBase
{
[Theory("Checkbox Background Updates Correctly With BackgroundColor Property")]
[Theory("Checkbox Background Updates Correctly With BackgroundColor Property",
#if WINDOWS
Skip = "REVIEW FOR .NET8"
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Broken in .NET7

#endif
)]
[InlineData("#FF0000")]
[InlineData("#00FF00")]
[InlineData("#0000FF")]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ await CreateHandlerAndAddToWindow<LayoutHandler>(layout, (handler) =>
});
}

[Fact]
[Fact(Skip = "REVIEW FOR .NET8")]
public async Task ValidateItemContainerDefaultHeight()
{
SetupBuilder();
Expand Down Expand Up @@ -101,7 +101,11 @@ void ValidateItemContainerStyle(CollectionView collectionView)
Assert.Equal(0d, minHeight);
}

[Fact]
[Fact
#if WINDOWS
(Skip = "REVIEW FOR .NET8")
#endif
]
public async Task ValidateSendRemainingItemsThresholdReached()
{
SetupBuilder();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,11 @@ await CreateHandlerAndAddToWindow<CollectionViewHandler>(collectionView, async h
Assert.True(logicalChildren.Count <= 3, "_logicalChildren should not grow in size!");
}

[Theory]
[Theory
#if WINDOWS
(Skip = "REVIEW FOR .NET8")
#endif
]
[MemberData(nameof(GenerateLayoutOptionsCombos))]
public async Task CollectionViewCanSizeToContent(CollectionViewSizingTestCase testCase)
{
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
using System.Threading.Tasks;
using Microsoft.Maui.Controls;
using Xunit;
using Xunit.Sdk;

namespace Microsoft.Maui.DeviceTests
{
public partial class FrameHandlerTest
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

{
[Fact(DisplayName = "Clip Initializes ContainerView Correctly", Skip = "REVIEW FOR .NET8")]
public override Task ContainerViewInitializesCorrectly()
{
return Task.CompletedTask;
}

[Fact(DisplayName = "ContainerView Remains If Shadow Mapper Runs Again", Skip = "REVIEW FOR .NET8")]
public override Task ContainerViewRemainsIfShadowMapperRunsAgain()
{
return Task.CompletedTask;
}

[Fact(DisplayName = "ContainerView Adds And Removes", Skip = "REVIEW FOR .NET8")]
public override Task ContainerViewAddsAndRemoves()
{
return Task.CompletedTask;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,11 @@ await CreateHandlerAndAddToWindow<LayoutHandler>(layout, async (handler) =>
});
}

[Fact]
[Fact
#if WINDOWS
(Skip = "REVIEW FOR .NET8")
#endif
]
public async Task NullTemplateDoesntCrash()
{
SetupBuilder();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -253,7 +253,11 @@ await CreateHandlerAndAddToWindow<WindowHandlerStub>(new Window(navPage), async
});
}

[Fact(DisplayName = "NavigationPage Does Not Leak")]
[Fact(DisplayName = "NavigationPage Does Not Leak"
#if WINDOWS
,Skip = "REVIEW FOR .NET8"
#endif
)]
public async Task DoesNotLeak()
{
SetupBuilder();
Expand Down Expand Up @@ -291,7 +295,11 @@ await CreateHandlerAndAddToWindow<WindowHandlerStub>(new Window(navPage), async
Assert.False(pageReference.IsAlive, "Page should not be alive!");
}

[Fact(DisplayName = "Can Reuse Pages")]
[Fact(DisplayName = "Can Reuse Pages",
#if WINDOWS
Skip = "REVIEW FOR .NET8"
#endif
)]
public async Task CanReusePages()
{
SetupBuilder();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,8 @@ public async Task HorizontalOptionsInitializesCorrectly()

var handler = await CreateHandlerAsync<PickerHandler>(picker);

Assert.Equal(UI.Xaml.HorizontalAlignment.Right, GetPlatformHorizontalOptions(handler.PlatformView));
await InvokeOnMainThreadAsync(() => Assert.Equal(UI.Xaml.HorizontalAlignment.Right, GetPlatformHorizontalOptions(handler.PlatformView)));

}

[Fact(DisplayName = "VerticalOptions Initializes Correctly")]
Expand All @@ -52,7 +53,7 @@ public async Task VerticalOptionsInitializesCorrectly()

var handler = await CreateHandlerAsync<PickerHandler>(picker);

Assert.Equal(UI.Xaml.VerticalAlignment.Bottom, GetPlatformVerticalOptions(handler.PlatformView));
await InvokeOnMainThreadAsync(() => Assert.Equal(UI.Xaml.VerticalAlignment.Bottom, GetPlatformVerticalOptions(handler.PlatformView)));
}

protected Task<string> GetPlatformControlText(ComboBox platformView)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
using Microsoft.Maui.Controls;
using Microsoft.Maui.Controls.Xaml;
using Microsoft.Maui.Handlers;
using Microsoft.Maui.Hosting;
using Xunit;

namespace Microsoft.Maui.DeviceTests
Expand All @@ -15,30 +16,42 @@ public partial class RadioButtonTests : ControlsHandlerTestBase
[InlineData(true)]
public async Task IsCheckedInitializesCorrectly(bool isChecked)
{
bool xplatIsChecked = isChecked;
var radioButton = new RadioButton() { IsChecked = xplatIsChecked };
bool expectedValue = isChecked;
var layoutFirst = new VerticalStackLayout();
var rdFirst = new RadioButton { GroupName = "FirstGroup", IsChecked = xplatIsChecked };
layoutFirst.Add(rdFirst);
layoutFirst.Add(new RadioButton { GroupName = "FirstGroup" });
layoutFirst.Add(new RadioButton { GroupName = "FirstGroup" });
var layoutSecond = new VerticalStackLayout();
layoutSecond.Add(new RadioButton { GroupName = "SecondGroup" });
var rdSecond = new RadioButton { GroupName = "SecondGroup", IsChecked = xplatIsChecked };
layoutSecond.Add(rdSecond);
layoutSecond.Add(new RadioButton { GroupName = "SecondGroup" });
var layout = new VerticalStackLayout
EnsureHandlerCreated(builder =>
{
builder.ConfigureMauiHandlers(handlers =>
{
handlers.AddHandler<RadioButton, RadioButtonHandler>();
});
});


await InvokeOnMainThreadAsync(async () =>
{
bool xplatIsChecked = isChecked;
var radioButton = new RadioButton() { IsChecked = xplatIsChecked };
bool expectedValue = isChecked;
var layoutFirst = new VerticalStackLayout();
var rdFirst = new RadioButton { GroupName = "FirstGroup", IsChecked = xplatIsChecked };
layoutFirst.Add(rdFirst);
layoutFirst.Add(new RadioButton { GroupName = "FirstGroup" });
layoutFirst.Add(new RadioButton { GroupName = "FirstGroup" });
var layoutSecond = new VerticalStackLayout();
layoutSecond.Add(new RadioButton { GroupName = "SecondGroup" });
var rdSecond = new RadioButton { GroupName = "SecondGroup", IsChecked = xplatIsChecked };
layoutSecond.Add(rdSecond);
layoutSecond.Add(new RadioButton { GroupName = "SecondGroup" });
var layout = new VerticalStackLayout
{
layoutFirst,
layoutSecond
};
var valuesFirst = await GetValueAsync(rdFirst, (handler) => { return new { ViewValue = rdFirst.IsChecked, PlatformViewValue = GetNativeIsChecked(handler as RadioButtonHandler) }; });
var valuesSecond = await GetValueAsync(rdSecond, (handler) => { return new { ViewValue = rdSecond.IsChecked, PlatformViewValue = GetNativeIsChecked(handler as RadioButtonHandler) }; });
Assert.Equal(xplatIsChecked, valuesFirst.ViewValue);
Assert.Equal(expectedValue, valuesFirst.PlatformViewValue);
Assert.Equal(xplatIsChecked, valuesSecond.ViewValue);
Assert.Equal(expectedValue, valuesSecond.PlatformViewValue);
var valuesFirst = await GetValueAsync(rdFirst, (handler) => { return new { ViewValue = rdFirst.IsChecked, PlatformViewValue = GetNativeIsChecked(handler as RadioButtonHandler) }; });
var valuesSecond = await GetValueAsync(rdSecond, (handler) => { return new { ViewValue = rdSecond.IsChecked, PlatformViewValue = GetNativeIsChecked(handler as RadioButtonHandler) }; });
Assert.Equal(xplatIsChecked, valuesFirst.ViewValue);
Assert.Equal(expectedValue, valuesFirst.PlatformViewValue);
Assert.Equal(xplatIsChecked, valuesSecond.ViewValue);
Assert.Equal(expectedValue, valuesSecond.PlatformViewValue);
});
}
#endif
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,6 @@ await RunShellTest(shell =>
AssertionExtensions.CloseEnough(footerFrame.Y, headerFrame.Height + contentFrame.Height + GetSafeArea().Top);
});
}
#endif

[Theory]
[ClassData(typeof(ShellFlyoutHeaderBehaviorTestCases))]
Expand Down Expand Up @@ -202,6 +201,7 @@ await RunShellTest(shell =>
AssertionExtensions.CloseEnough(headerFrame.Height + contentFrame.Height + footerFrame.Height + GetSafeArea().Top, flyoutFrame.Height, epsilon: 0.5, message: "Total Height");
});
}
#endif

#if ANDROID
[Fact]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -297,10 +297,12 @@ public async Task ShellContentHasCorrectItemCount()
var content1 = new ShellContent();
content1.Title = "Hello";
content1.Route = $"...";
content1.Content = new ContentPage();

var content2 = new ShellContent();
content2.Title = "World";
content2.Route = $"...";
content2.Content = new ContentPage();

var shell = await CreateShellAsync((shell) =>
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -960,7 +960,11 @@ await CreateHandlerAndAddToWindow<WindowHandlerStub>(new Window(navPage), async
}
#endif

[Fact(DisplayName = "Pages Do Not Leak")]
[Fact(DisplayName = "Pages Do Not Leak",
#if WINDOWS
Skip = "REVIEW FOR .NET8"
#endif
)]
public async Task PagesDoNotLeak()
{
SetupBuilder();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@ public static Task<T> AttachAndRun<T>(this FrameworkElement view, Func<Window, T
// a limit where it'll eventually be too many windows.
// So, for now we're limiting this to 10 parallel windows which seems
// to work fine.
static SemaphoreSlim _attachAndRunSemaphore = new SemaphoreSlim(10);
static SemaphoreSlim _attachAndRunSemaphore = new SemaphoreSlim(3);

public static async Task<T> AttachAndRun<T>(this FrameworkElement view, Func<Window, Task<T>> action, IMauiContext mauiContext)
{
Expand Down