diff --git a/Lombiq.Tests.UI.Samples/Tests/BasicTests.cs b/Lombiq.Tests.UI.Samples/Tests/BasicTests.cs index 0a3473161..1acbbdf84 100644 --- a/Lombiq.Tests.UI.Samples/Tests/BasicTests.cs +++ b/Lombiq.Tests.UI.Samples/Tests/BasicTests.cs @@ -126,6 +126,9 @@ public Task ApplicationInsightsTrackingShouldBePresent(Browser browser) => ExecuteTestAfterSetupAsync( async context => { + await context.EnableFeatureDirectlyAsync("Lombiq.Privacy.ConsentBanner"); + await context.GoToHomePageAsync(); + // Now there's a bit of a pickle though: The Lombiq Privacy module is also enabled from the test recipe // and shows its privacy consent banner. For tracking to be enabled, even in offline mode, the user // needs to give consent. This is what we do now: diff --git a/Lombiq.Tests.UI.Samples/Tests/MonkeyTests.cs b/Lombiq.Tests.UI.Samples/Tests/MonkeyTests.cs index 6911de46f..21d3030ec 100644 --- a/Lombiq.Tests.UI.Samples/Tests/MonkeyTests.cs +++ b/Lombiq.Tests.UI.Samples/Tests/MonkeyTests.cs @@ -3,7 +3,9 @@ using Lombiq.Tests.UI.MonkeyTesting; using Lombiq.Tests.UI.MonkeyTesting.UrlFilters; using Lombiq.Tests.UI.Services; +using Shouldly; using System; +using System.Linq; using System.Threading.Tasks; using Xunit; using Xunit.Abstractions; @@ -58,7 +60,12 @@ public Task TestAdminPagesAsMonkeyRecursivelyShouldWorkWithAdminUser(Browser bro context => // Monkey tests needn't all start from the homepage. This one starts from the Orchard admin dashboard. context.TestAdminAsMonkeyRecursivelyAsync(CreateMonkeyTestingOptions()), - browser); + browser, + configuration => + // This is necessary to work around this bug: https://github.com/OrchardCMS/OrchardCore/issues/11420. + configuration.AssertBrowserLog = messages => messages.ShouldNotContain( + message => IsValidAdminBrowserLogMessage(message), + messages.Where(IsValidAdminBrowserLogMessage).ToFormattedString())); // Let's just test the background tasks management admin area. [Theory, Chrome] @@ -87,6 +94,12 @@ private static MonkeyTestingOptions CreateMonkeyTestingOptions() => { PageTestTime = TimeSpan.FromSeconds(10), }; + + private static bool IsValidAdminBrowserLogMessage(BrowserLogMessage message) => + OrchardCoreUITestExecutorConfiguration.IsValidBrowserLogMessage(message) && + !(message.Source == BrowserLogMessage.Sources.Intervention && + message.Message.ContainsOrdinalIgnoreCase( + "Blocked attempt to show a 'beforeunload' confirmation panel for a frame that never had a user gesture since its load.")); } // END OF TRAINING SECTION: Monkey tests. diff --git a/Lombiq.Tests.UI.Shortcuts/Controllers/ShellFeaturesController.cs b/Lombiq.Tests.UI.Shortcuts/Controllers/ShellFeaturesController.cs index e8d28a1e7..6d22994f4 100644 --- a/Lombiq.Tests.UI.Shortcuts/Controllers/ShellFeaturesController.cs +++ b/Lombiq.Tests.UI.Shortcuts/Controllers/ShellFeaturesController.cs @@ -1,4 +1,5 @@ using Lombiq.HelpfulLibraries.Libraries.Mvc; +using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using OrchardCore.Environment.Extensions; using OrchardCore.Environment.Extensions.Features; @@ -10,6 +11,7 @@ namespace Lombiq.Tests.UI.Shortcuts.Controllers; [DevelopmentAndLocalhostOnly] +[AllowAnonymous] public class ShellFeaturesController : Controller { private readonly IShellFeaturesManager _shellFeatureManager; diff --git a/Lombiq.Tests.UI/Extensions/LoggingWebDriverExtensions.cs b/Lombiq.Tests.UI/Extensions/LoggingWebDriverExtensions.cs index 687015b31..16db3dea5 100644 --- a/Lombiq.Tests.UI/Extensions/LoggingWebDriverExtensions.cs +++ b/Lombiq.Tests.UI/Extensions/LoggingWebDriverExtensions.cs @@ -45,6 +45,7 @@ public static class Sources { public const string ConsoleApi = "console-api"; public const string Deprecation = "deprecation"; + public const string Intervention = "intervention"; public const string Javascript = "javascript"; public const string Network = "network"; public const string Recommendation = "recommendation"; diff --git a/Lombiq.Tests.UI/Services/OrchardCoreInstance.cs b/Lombiq.Tests.UI/Services/OrchardCoreInstance.cs index 9a36bab9a..6ad4fc531 100644 --- a/Lombiq.Tests.UI/Services/OrchardCoreInstance.cs +++ b/Lombiq.Tests.UI/Services/OrchardCoreInstance.cs @@ -141,7 +141,7 @@ public async Task StartUpAsync() argumentsBuilder = argumentsBuilder .Add("--urls").Add(url) .Add("--contentRoot").Add(_contentRootPath) - .Add("--webroot=").Add(Path.Combine(_contentRootPath, "wwwroot")) + .Add("--webroot").Add(Path.Combine(_contentRootPath, "wwwroot")) .Add("--environment").Add("Development"); if (!useExeToExecuteApp) argumentsBuilder = argumentsBuilder.Add(_configuration.AppAssemblyPath);