diff --git a/NuGetTest/Directory.Build.props b/NuGetTest/Directory.Build.props
index c10d629e7..0aa208946 100644
--- a/NuGetTest/Directory.Build.props
+++ b/NuGetTest/Directory.Build.props
@@ -6,7 +6,7 @@
-
+
all
diff --git a/NuGetTest/src/Lombiq.OSOCE.NuGet.Web/Lombiq.OSOCE.NuGet.Web.csproj b/NuGetTest/src/Lombiq.OSOCE.NuGet.Web/Lombiq.OSOCE.NuGet.Web.csproj
index 0e1d65585..b87b2d1bd 100644
--- a/NuGetTest/src/Lombiq.OSOCE.NuGet.Web/Lombiq.OSOCE.NuGet.Web.csproj
+++ b/NuGetTest/src/Lombiq.OSOCE.NuGet.Web/Lombiq.OSOCE.NuGet.Web.csproj
@@ -29,28 +29,28 @@
-
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
+
+
diff --git a/NuGetTest/src/Modules/Lombiq.OSOCE.NuGet.TestModule/Lombiq.OSOCE.NuGet.TestModule.csproj b/NuGetTest/src/Modules/Lombiq.OSOCE.NuGet.TestModule/Lombiq.OSOCE.NuGet.TestModule.csproj
index 046e1deba..143d1021e 100644
--- a/NuGetTest/src/Modules/Lombiq.OSOCE.NuGet.TestModule/Lombiq.OSOCE.NuGet.TestModule.csproj
+++ b/NuGetTest/src/Modules/Lombiq.OSOCE.NuGet.TestModule/Lombiq.OSOCE.NuGet.TestModule.csproj
@@ -16,7 +16,7 @@
-
+
diff --git a/NuGetTest/test/Lombiq.OSOCE.NuGet.Tests.UI/Helpers/AssertBrowserLogHelpers.cs b/NuGetTest/test/Lombiq.OSOCE.NuGet.Tests.UI/Helpers/AssertBrowserLogHelpers.cs
deleted file mode 100644
index e1630a13d..000000000
--- a/NuGetTest/test/Lombiq.OSOCE.NuGet.Tests.UI/Helpers/AssertBrowserLogHelpers.cs
+++ /dev/null
@@ -1,25 +0,0 @@
-using Atata.HtmlValidation;
-using Lombiq.Tests.UI.Extensions;
-using OpenQA.Selenium;
-using Shouldly;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Threading.Tasks;
-
-namespace Lombiq.OSOCE.NuGet.Tests.UI.Helpers;
-
-public static class AssertHtmlAndBrowserErrorsHelper
-{
- public static readonly Action> AssertNoNativeButtonUsageInBrowserLog =
- logEntries => logEntries.Where(
- logEntry => !logEntry.Message.ContainsOrdinalIgnoreCase("Prefer to use the native
-
+
@@ -29,19 +29,19 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
+
diff --git a/NuGetTest/test/Lombiq.OSOCE.NuGet.Tests.UI/Tests/ModuleTests/BehaviorLoginAsAnybodyTests.cs b/NuGetTest/test/Lombiq.OSOCE.NuGet.Tests.UI/Tests/ModuleTests/BehaviorLoginAsAnybodyTests.cs
index 39e58f772..f1f54d536 100644
--- a/NuGetTest/test/Lombiq.OSOCE.NuGet.Tests.UI/Tests/ModuleTests/BehaviorLoginAsAnybodyTests.cs
+++ b/NuGetTest/test/Lombiq.OSOCE.NuGet.Tests.UI/Tests/ModuleTests/BehaviorLoginAsAnybodyTests.cs
@@ -18,7 +18,5 @@ public Task SwitchingUserShouldWorkCorrectly() =>
[Fact]
public Task PermissionCheckShouldWorkCorrectly() =>
- ExecuteTestAfterSetupAsync(
- context => context.PermissionCheckShouldWorkCorrectlyAsync(),
- changeConfiguration: Configurations.IgnoreUnauthorizedBrowserLogEntries);
+ ExecuteTestAfterSetupAsync(context => context.PermissionCheckShouldWorkCorrectlyAsync());
}
diff --git a/NuGetTest/test/Lombiq.OSOCE.NuGet.Tests.UI/UITestBase.cs b/NuGetTest/test/Lombiq.OSOCE.NuGet.Tests.UI/UITestBase.cs
index dc52b7cce..6305a05ec 100644
--- a/NuGetTest/test/Lombiq.OSOCE.NuGet.Tests.UI/UITestBase.cs
+++ b/NuGetTest/test/Lombiq.OSOCE.NuGet.Tests.UI/UITestBase.cs
@@ -1,7 +1,10 @@
using Lombiq.OSOCE.NuGet.Tests.UI.Helpers;
using Lombiq.Tests.UI;
+using Lombiq.Tests.UI.Extensions;
using Lombiq.Tests.UI.Services;
+using Shouldly;
using System;
+using System.Linq;
using System.Threading.Tasks;
using Xunit.Abstractions;
@@ -34,10 +37,14 @@ protected override Task ExecuteTestAsync(
configuration.AssertAppLogsAsync =
OrchardCoreUITestExecutorConfiguration.AssertAppLogsCanContainCacheFolderErrorsAsync;
- // These two can be removed once https://github.com/OrchardCMS/OrchardCore/issues/15222 is done.
- configuration.AssertBrowserLog = AssertHtmlAndBrowserErrorsHelper.AssertNoNativeButtonUsageInBrowserLog;
- configuration.HtmlValidationConfiguration.AssertHtmlValidationResultAsync =
- AssertHtmlAndBrowserErrorsHelper.AssertNoNativeButtonUsageInHtmlValidation;
+ // This can be removed once https://github.com/OrchardCMS/OrchardCore/issues/15222 is done.
+ configuration.HtmlValidationConfiguration.AssertHtmlValidationResultAsync = async errors =>
+ {
+ var errorResult = (await errors.GetErrorsAsync())
+ .Where(error => !error.ContainsOrdinalIgnoreCase("Prefer to use the native element"));
+
+ errorResult.ShouldBeEmpty();
+ };
if (changeConfigurationAsync != null) await changeConfigurationAsync(configuration);
});
diff --git a/NuGetTest/test/Lombiq.OSOCE.NuGet.Tests/Lombiq.OSOCE.NuGet.Tests.csproj b/NuGetTest/test/Lombiq.OSOCE.NuGet.Tests/Lombiq.OSOCE.NuGet.Tests.csproj
index df4721096..77b733b8f 100644
--- a/NuGetTest/test/Lombiq.OSOCE.NuGet.Tests/Lombiq.OSOCE.NuGet.Tests.csproj
+++ b/NuGetTest/test/Lombiq.OSOCE.NuGet.Tests/Lombiq.OSOCE.NuGet.Tests.csproj
@@ -5,7 +5,7 @@
-
+
diff --git a/Readme.md b/Readme.md
index 27c0cf0ad..1aa51c049 100644
--- a/Readme.md
+++ b/Readme.md
@@ -131,7 +131,7 @@ When adding a new extension, or significant new features to existing extensions,
- If you introduce .NET breaking changes, the Validate NuGet Publish workflow will fail due to [baseline package validation](https://learn.microsoft.com/en-us/dotnet/fundamentals/apicompat/package-validation/baseline-version-validator). Preferably, adjust the change to not be breaking if possible; if it has to be a breaking change, then you’ll need to create a _CompatibilitySuppressions.xml_ file to mark it as deliberate, what you can do with the following command:
```powershell
-dotnet pack /p:EnablePackageValidation=true /p:PackageValidationBaselineVersion= /p:Version= /p:NuGetBuild=true /p:GenerateCompatibilitySuppressionFile=true
+dotnet pack /p:EnablePackageValidation=true /p:PackageValidationBaselineVersion= /p:Version= /p:NuGetBuild=true /p:GenerateCompatibilitySuppressionFile=true
```
### Dependencies between Lombiq projects
diff --git a/src/Libraries/Lombiq.HelpfulLibraries b/src/Libraries/Lombiq.HelpfulLibraries
index 4e8405dbe..f017aeaea 160000
--- a/src/Libraries/Lombiq.HelpfulLibraries
+++ b/src/Libraries/Lombiq.HelpfulLibraries
@@ -1 +1 @@
-Subproject commit 4e8405dbeb71587b0cb3709e9150a78141975693
+Subproject commit f017aeaeae66597b3fc88b4369ab8e6a64f0bb6e
diff --git a/src/Libraries/Lombiq.OrchardCoreApiClient b/src/Libraries/Lombiq.OrchardCoreApiClient
index dc1b43ee8..23df6e00e 160000
--- a/src/Libraries/Lombiq.OrchardCoreApiClient
+++ b/src/Libraries/Lombiq.OrchardCoreApiClient
@@ -1 +1 @@
-Subproject commit dc1b43ee84e00ab4f0ade04c22f02bdd325a507d
+Subproject commit 23df6e00e8188bdcab5a958d5fb61f0cf89e5d27
diff --git a/src/Modules/Lombiq.ChartJs b/src/Modules/Lombiq.ChartJs
index 3aa327a2d..9f7e0dd3a 160000
--- a/src/Modules/Lombiq.ChartJs
+++ b/src/Modules/Lombiq.ChartJs
@@ -1 +1 @@
-Subproject commit 3aa327a2d1a13553ea7a768ccf01aec77283eb63
+Subproject commit 9f7e0dd3a448ae57969f5f547cc74292fa34700e
diff --git a/src/Modules/Lombiq.DataTables b/src/Modules/Lombiq.DataTables
index 3f7400a40..c739de983 160000
--- a/src/Modules/Lombiq.DataTables
+++ b/src/Modules/Lombiq.DataTables
@@ -1 +1 @@
-Subproject commit 3f7400a408e15cc06c8cc277efdbd7d176125b06
+Subproject commit c739de9835110dcbd37d1d9b6d55d45f2e08addb
diff --git a/src/Modules/Lombiq.Hosting.Tenants b/src/Modules/Lombiq.Hosting.Tenants
index 707baeb73..4bd7f69be 160000
--- a/src/Modules/Lombiq.Hosting.Tenants
+++ b/src/Modules/Lombiq.Hosting.Tenants
@@ -1 +1 @@
-Subproject commit 707baeb731eb2b00cc9a8098f614b7f49cd666b8
+Subproject commit 4bd7f69be945763de64acf1f32c8116e6d0c05d3
diff --git a/src/Modules/Lombiq.LoginAsAnybody b/src/Modules/Lombiq.LoginAsAnybody
index 0174327ba..478e0a20e 160000
--- a/src/Modules/Lombiq.LoginAsAnybody
+++ b/src/Modules/Lombiq.LoginAsAnybody
@@ -1 +1 @@
-Subproject commit 0174327ba14fc849e5c95a6882008d0fc6ec760c
+Subproject commit 478e0a20eb3bab9750458fbd7d083c9d2bf6d30f
diff --git a/test/Lombiq.OSOCE.Tests.UI/Tests/ModuleTests/BehaviorEmailQuotaTests.cs b/test/Lombiq.OSOCE.Tests.UI/Tests/ModuleTests/BehaviorEmailQuotaTests.cs
index b199fd736..c8f56e89b 100644
--- a/test/Lombiq.OSOCE.Tests.UI/Tests/ModuleTests/BehaviorEmailQuotaTests.cs
+++ b/test/Lombiq.OSOCE.Tests.UI/Tests/ModuleTests/BehaviorEmailQuotaTests.cs
@@ -12,19 +12,13 @@ public BehaviorEmailQuotaTests(ITestOutputHelper testOutputHelper)
{
}
- // Will be re-enabled as part of https://github.com/Lombiq/Open-Source-Orchard-Core-Extensions/issues/703.
-#pragma warning disable xUnit1004 // Test methods should not be skipped
- [Fact(Skip = "Fails with smtp4dev JS exceptions, but works under https://github.com/Lombiq/Open-Source-Orchard-Core-Extensions/issues/703.")]
-#pragma warning restore xUnit1004 // Test methods should not be skipped
+ [Fact]
public Task EmailQuotaShouldBlockEmailsOverLimitAndWarn() =>
ExecuteTestAfterSetupAsync(
context => context.TestEmailQuotaManagementBehaviorAsync(10),
configuration => configuration.SetEmailQuotaManagementOptionsForUITest(10));
- // Will be re-enabled as part of https://github.com/Lombiq/Open-Source-Orchard-Core-Extensions/issues/703.
-#pragma warning disable xUnit1004 // Test methods should not be skipped
- [Fact(Skip = "Fails with smtp4dev JS exceptions, but works under https://github.com/Lombiq/Open-Source-Orchard-Core-Extensions/issues/703.")]
-#pragma warning restore xUnit1004 // Test methods should not be skipped
+ [Fact]
public Task EmailQuotaShouldNotBlockEmailsWhenDifferentHostIsUsedThanOriginalFromConfig() =>
ExecuteTestAfterSetupAsync(
async context =>
diff --git a/test/Lombiq.OSOCE.Tests.UI/Tests/ModuleTests/BehaviorLoginAsAnybodyTests.cs b/test/Lombiq.OSOCE.Tests.UI/Tests/ModuleTests/BehaviorLoginAsAnybodyTests.cs
index 7e6cbe742..1f03b6f94 100644
--- a/test/Lombiq.OSOCE.Tests.UI/Tests/ModuleTests/BehaviorLoginAsAnybodyTests.cs
+++ b/test/Lombiq.OSOCE.Tests.UI/Tests/ModuleTests/BehaviorLoginAsAnybodyTests.cs
@@ -19,6 +19,5 @@ public Task SwitchingUserShouldWorkCorrectly() =>
[Fact]
public Task PermissionCheckShouldWorkCorrectly() =>
ExecuteTestAfterSetupAsync(
- context => context.PermissionCheckShouldWorkCorrectlyAsync(),
- changeConfiguration: Configurations.IgnoreUnauthorizedBrowserLogEntries);
+ context => context.PermissionCheckShouldWorkCorrectlyAsync());
}
diff --git a/test/Lombiq.OSOCE.Tests.UI/Tests/ModuleTests/BehaviorVueTests.cs b/test/Lombiq.OSOCE.Tests.UI/Tests/ModuleTests/BehaviorVueTests.cs
index 43655afee..bfccfb937 100644
--- a/test/Lombiq.OSOCE.Tests.UI/Tests/ModuleTests/BehaviorVueTests.cs
+++ b/test/Lombiq.OSOCE.Tests.UI/Tests/ModuleTests/BehaviorVueTests.cs
@@ -1,10 +1,8 @@
using Atata.HtmlValidation;
using Lombiq.Tests.UI.Extensions;
-using Lombiq.Tests.UI.Services;
using Lombiq.VueJs.Samples.Controllers;
using Lombiq.VueJs.Tests.UI.Extensions;
using Shouldly;
-using System;
using System.Linq;
using System.Threading.Tasks;
using Xunit;
@@ -46,15 +44,11 @@ public Task QrCardScanShouldReportNotFoundAsync() =>
{
configuration.BrowserConfiguration.ConfigureFakeVideoSourceForNegativeTest();
configuration.HtmlValidationConfiguration.AssertHtmlValidationResultAsync = AssertHtmValidationResultAsync;
- configuration.AssertBrowserLog = logEntries =>
- OrchardCoreUITestExecutorConfiguration.AssertBrowserLogIsEmpty(
- logEntries.Where(logEntry =>
- // The fetch call reports an error to the browser console if the
- // QrCardController.GetBusinessCard() action results in NotFound.
- !(
- logEntry.Message.ContainsOrdinalIgnoreCase(nameof(QrCardController.GetBusinessCard))
- && logEntry.Message.ContainsOrdinalIgnoreCase(
- "Failed to load resource: the server responded with a status of 404"))));
+
+ // The fetch call reports an error to the browser console if the QrCardController.GetBusinessCard()
+ // action results in NotFound.
+ configuration.ResponseLogFilter = e =>
+ e.IsNonSuccessResponseAndNotExpectedNotFoundResponse(nameof(QrCardController.GetBusinessCard));
});
private static Task AssertHtmValidationResultAsync(HtmlValidationResult validationResult)
diff --git a/test/Lombiq.UITestingToolbox b/test/Lombiq.UITestingToolbox
index 5c2b55c49..18dd2580f 160000
--- a/test/Lombiq.UITestingToolbox
+++ b/test/Lombiq.UITestingToolbox
@@ -1 +1 @@
-Subproject commit 5c2b55c49bf319ba2d822ba4eaaa98b0e6208372
+Subproject commit 18dd2580f10f328741751c8abba3daa3daac6c28
diff --git a/tools/Lombiq.Analyzers b/tools/Lombiq.Analyzers
index 67e365e37..f51ec4b9b 160000
--- a/tools/Lombiq.Analyzers
+++ b/tools/Lombiq.Analyzers
@@ -1 +1 @@
-Subproject commit 67e365e3714664b107c2d017522a4a8e6768da4c
+Subproject commit f51ec4b9bb7fa76b4ed9acfc33396d48dbda0f8d
diff --git a/tools/Lombiq.GitHub.Actions b/tools/Lombiq.GitHub.Actions
index ddbbddcfc..36d291257 160000
--- a/tools/Lombiq.GitHub.Actions
+++ b/tools/Lombiq.GitHub.Actions
@@ -1 +1 @@
-Subproject commit ddbbddcfc52358b5488e63ad6c70dfa333b539ca
+Subproject commit 36d29125773f638db31e6b3368ce65db79b398d8