diff --git a/src/PlaywrightSharp.Nunit/TestExpectations/TestExpectations.local.json b/src/PlaywrightSharp.Nunit/TestExpectations/TestExpectations.local.json index 42a60d767..255a91f9b 100644 --- a/src/PlaywrightSharp.Nunit/TestExpectations/TestExpectations.local.json +++ b/src/PlaywrightSharp.Nunit/TestExpectations/TestExpectations.local.json @@ -227,12 +227,6 @@ "parameters": ["headful"], "expectations": ["FAIL"] }, - { - "testIdPattern": "[page-click.spec.ts] *", - "platforms": ["darwin", "linux", "win32"], - "parameters": ["headful"], - "expectations": ["FAIL"] - }, { "testIdPattern": "[page-fill.spec.ts] *", "platforms": ["darwin", "linux", "win32"], diff --git a/src/PlaywrightSharp.Tests/PageClickTests.cs b/src/PlaywrightSharp.Tests/PageClickTests.cs index 58dc3a712..3e3756723 100644 --- a/src/PlaywrightSharp.Tests/PageClickTests.cs +++ b/src/PlaywrightSharp.Tests/PageClickTests.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Drawing; +using System.Linq; using System.Threading.Tasks; using NUnit.Framework; using PlaywrightSharp.Helpers; @@ -261,7 +262,13 @@ public async Task ShouldClickOnCheckboxInputAndToggle() Assert.That(await Page.EvaluateAsync("result.check"), Is.Null); await Page.ClickAsync("input#agree"); Assert.That(await Page.EvaluateAsync("result.check"), Is.True); - Assert.That(await Page.EvaluateAsync("result.events"), Is.EqualTo(new[] { + var events = await Page.EvaluateAsync("result.events"); + if (!TestConstants.IsHeadless) + { + events = events.Where(e => e != "mouseout" && e != "mouseleave").ToArray(); + } + + Assert.That(events, Is.EqualTo(new[] { "mouseover", "mouseenter", "mousemove", @@ -549,6 +556,8 @@ await Page.EvalOnSelectorAsync("button", @"button => { document.body.style.margin = '0'; }"); + // rafraf for Firefox to kick in the animation. + await Page.EvaluateAsync("() => new Promise(f => requestAnimationFrame(() => requestAnimationFrame(f)))"); await Page.ClickAsync("button"); Assert.That(await Page.EvaluateAsync("window.result"), Is.EqualTo("Clicked")); Assert.That(await Page.EvaluateAsync("pageX"), Is.EqualTo(300)); @@ -642,7 +651,14 @@ public async Task ShouldWaitForInputToBeEnabled() [Test, Timeout(TestConstants.DefaultTestTimeout)] public async Task ShouldWaitForSelectToBeEnabled() { - await Page.SetContentAsync(""); + await Page.SetContentAsync(@" + + "); var clickTask = Page.ClickAsync("select"); await GiveItAChanceToClick(Page); Assert.That(await Page.EvaluateAsync("window.__CLICKED"), Is.Null); @@ -894,7 +910,7 @@ await Page.SetContentAsync($@" public async Task ShouldClickTheButtonWhenWindowInnerWidthIsCorrupted() { await Page.GoToAsync(TestConstants.ServerUrl + "/input/button.html"); - await Page.EvaluateAsync(@"() => window.innerWith = 0"); + await Page.EvaluateAsync(@"() => Object.defineProperty(window, 'innerWidth', { value: 0 })"); await Page.ClickAsync("button"); Assert.That(await Page.EvaluateAsync("result"), Is.EqualTo("Clicked")); diff --git a/src/PlaywrightSharp.Tests/TestConstants.cs b/src/PlaywrightSharp.Tests/TestConstants.cs index 4804ab2cb..00352cf3a 100644 --- a/src/PlaywrightSharp.Tests/TestConstants.cs +++ b/src/PlaywrightSharp.Tests/TestConstants.cs @@ -117,6 +117,8 @@ internal static Task LaunchDefaultHeadful( internal static readonly bool IsChromium = Product.Equals(ChromiumProduct, StringComparison.OrdinalIgnoreCase); internal static readonly bool IsMacOSX = RuntimeInformation.IsOSPlatform(OSPlatform.OSX); internal static readonly bool IsWindows = RuntimeInformation.IsOSPlatform(OSPlatform.Windows); + internal static readonly bool IsHeadless = !string.Equals( + Environment.GetEnvironmentVariable("HEADLESS"), "false", StringComparison.OrdinalIgnoreCase); public static readonly IEnumerable NestedFramesDumpResult = new List() {