From c56b660c9288a93182b3ae2246d37a1f56cdecc3 Mon Sep 17 00:00:00 2001 From: Nicolas Dorier Date: Fri, 28 Jun 2024 17:32:55 +0900 Subject: [PATCH] bump selenium container (#6071) --- BTCPayServer.Tests/BTCPayServer.Tests.csproj | 4 ++-- BTCPayServer.Tests/FastTests.cs | 1 - BTCPayServer.Tests/UtilitiesTests.cs | 1 - BTCPayServer.Tests/docker-compose.altcoins.yml | 2 +- BTCPayServer.Tests/docker-compose.yml | 2 +- BTCPayServer/Plugins/PluginManager.cs | 17 ++++++++++++++++- 6 files changed, 20 insertions(+), 7 deletions(-) diff --git a/BTCPayServer.Tests/BTCPayServer.Tests.csproj b/BTCPayServer.Tests/BTCPayServer.Tests.csproj index 5e820f275..7e8b64672 100644 --- a/BTCPayServer.Tests/BTCPayServer.Tests.csproj +++ b/BTCPayServer.Tests/BTCPayServer.Tests.csproj @@ -1,4 +1,4 @@ - + $(NoWarn),xUnit1031 @@ -31,7 +31,7 @@ - + diff --git a/BTCPayServer.Tests/FastTests.cs b/BTCPayServer.Tests/FastTests.cs index d5d38e26c..76f21e51a 100644 --- a/BTCPayServer.Tests/FastTests.cs +++ b/BTCPayServer.Tests/FastTests.cs @@ -49,7 +49,6 @@ using NBXplorer.Models; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using Newtonsoft.Json.Serialization; -using OpenQA.Selenium.DevTools.V100.DOMSnapshot; using Xunit; using Xunit.Abstractions; using StoreData = BTCPayServer.Data.StoreData; diff --git a/BTCPayServer.Tests/UtilitiesTests.cs b/BTCPayServer.Tests/UtilitiesTests.cs index e7385f49a..faada4fd5 100644 --- a/BTCPayServer.Tests/UtilitiesTests.cs +++ b/BTCPayServer.Tests/UtilitiesTests.cs @@ -18,7 +18,6 @@ using Newtonsoft.Json; using Newtonsoft.Json.Linq; using OpenQA.Selenium; using OpenQA.Selenium.Chrome; -using OpenQA.Selenium.DevTools.V100.Network; using OpenQA.Selenium.Support.UI; using Xunit; using Xunit.Abstractions; diff --git a/BTCPayServer.Tests/docker-compose.altcoins.yml b/BTCPayServer.Tests/docker-compose.altcoins.yml index a7635b21d..15995552b 100644 --- a/BTCPayServer.Tests/docker-compose.altcoins.yml +++ b/BTCPayServer.Tests/docker-compose.altcoins.yml @@ -90,7 +90,7 @@ services: - merchant_lnd selenium: - image: selenium/standalone-chrome:101.0 + image: selenium/standalone-chrome:125.0 extra_hosts: - "tests:172.23.0.18" expose: diff --git a/BTCPayServer.Tests/docker-compose.yml b/BTCPayServer.Tests/docker-compose.yml index 45bdcf5df..5000a42c4 100644 --- a/BTCPayServer.Tests/docker-compose.yml +++ b/BTCPayServer.Tests/docker-compose.yml @@ -87,7 +87,7 @@ services: - merchant_lnd selenium: - image: selenium/standalone-chrome:101.0 + image: selenium/standalone-chrome:125.0 extra_hosts: - "tests:172.23.0.18" expose: diff --git a/BTCPayServer/Plugins/PluginManager.cs b/BTCPayServer/Plugins/PluginManager.cs index b2a026681..85e87f9ee 100644 --- a/BTCPayServer/Plugins/PluginManager.cs +++ b/BTCPayServer/Plugins/PluginManager.cs @@ -258,12 +258,27 @@ namespace BTCPayServer.Plugins private static IEnumerable GetPluginInstancesFromAssembly(Assembly assembly) { - return assembly.GetTypes().Where(type => + return GetTypesNotCrash(assembly).Where(type => typeof(IBTCPayServerPlugin).IsAssignableFrom(type) && type != typeof(PluginService.AvailablePlugin) && !type.IsAbstract). Select(type => (IBTCPayServerPlugin)Activator.CreateInstance(type, Array.Empty())); } + private static IEnumerable GetTypesNotCrash(Assembly assembly) + { + try + { + // Strange crash with selenium + if (assembly.FullName.Contains("Selenium", StringComparison.OrdinalIgnoreCase)) + return Array.Empty(); + return assembly.GetTypes(); + } + catch(ReflectionTypeLoadException ex) + { + return ex.Types.Where(t => t is not null).ToArray(); + } + } + private static IBTCPayServerPlugin GetPluginInstanceFromAssembly(string pluginIdentifier, Assembly assembly) { return GetPluginInstancesFromAssembly(assembly).FirstOrDefault(plugin => plugin.Identifier == pluginIdentifier);