From 1763394036c59e78d05e7876bc74de1b07fdf943 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Damian=20B=C3=BCchel?= Date: Wed, 8 Apr 2020 16:06:59 +0200 Subject: [PATCH] SEBWIN-380: Extended tests for configuration data processor. --- .../ConfigurationData/DataProcessorTests.cs | 18 ++++++++++++++++++ .../ConfigurationData/DataProcessor.cs | 13 ++++++++----- 2 files changed, 26 insertions(+), 5 deletions(-) diff --git a/SafeExamBrowser.Configuration.UnitTests/ConfigurationData/DataProcessorTests.cs b/SafeExamBrowser.Configuration.UnitTests/ConfigurationData/DataProcessorTests.cs index c56ac47f..5b022985 100644 --- a/SafeExamBrowser.Configuration.UnitTests/ConfigurationData/DataProcessorTests.cs +++ b/SafeExamBrowser.Configuration.UnitTests/ConfigurationData/DataProcessorTests.cs @@ -10,8 +10,10 @@ using System.Collections.Generic; using System.Reflection; using System.Runtime.Serialization.Formatters.Binary; using Microsoft.VisualStudio.TestTools.UnitTesting; +using Moq; using SafeExamBrowser.Configuration.ConfigurationData; using SafeExamBrowser.Settings; +using SafeExamBrowser.Settings.Applications; namespace SafeExamBrowser.Configuration.UnitTests.ConfigurationData { @@ -67,5 +69,21 @@ namespace SafeExamBrowser.Configuration.UnitTests.ConfigurationData Assert.AreEqual("4fc002d2ae4faf994a14bede54d95ac58a1a2cb9b59bc5b4277ff29559b46e3d", settings2.Browser.ConfigurationKey); Assert.AreEqual("ab426e25b795c917f1fb40f7ef8e5757ef97d7c7ad6792e655c4421d47329d7a", settings3.Browser.ConfigurationKey); } + + [TestMethod] + public void MustRemoveLegacyBrowserEngines() + { + var settings = new AppSettings(); + var firefox = new WhitelistApplication { ExecutablePath = @"C:\Program Files (x86)\Mozilla Firefox", ExecutableName = "firefox.exe" }; + + settings.Applications.Whitelist.Add(new WhitelistApplication { ExecutablePath = @"C:\some\path\xulrunner\etc", ExecutableName = "firefox.exe" }); + settings.Applications.Whitelist.Add(new WhitelistApplication { ExecutablePath = @"C:\some\path\xulrunner\etc", ExecutableName = "xulrunner.exe" }); + settings.Applications.Whitelist.Add(firefox); + + sut.Process(Mock.Of>(), settings); + + Assert.AreEqual(1, settings.Applications.Whitelist.Count); + Assert.AreSame(firefox, settings.Applications.Whitelist[0]); + } } } diff --git a/SafeExamBrowser.Configuration/ConfigurationData/DataProcessor.cs b/SafeExamBrowser.Configuration/ConfigurationData/DataProcessor.cs index e5767903..14254455 100644 --- a/SafeExamBrowser.Configuration/ConfigurationData/DataProcessor.cs +++ b/SafeExamBrowser.Configuration/ConfigurationData/DataProcessor.cs @@ -21,7 +21,7 @@ namespace SafeExamBrowser.Configuration.ConfigurationData { AllowReconfiguration(settings); CalculateConfigurationKey(rawData, settings); - RemoveLegacyBrowser(settings); + RemoveLegacyBrowsers(settings); } private void AllowReconfiguration(AppSettings settings) @@ -47,9 +47,9 @@ namespace SafeExamBrowser.Configuration.ConfigurationData } } - private void RemoveLegacyBrowser(AppSettings settings) + private void RemoveLegacyBrowsers(AppSettings settings) { - var legacyBrowser = default(WhitelistApplication); + var legacyBrowsers = new List(); foreach (var application in settings.Applications.Whitelist) { @@ -59,11 +59,14 @@ namespace SafeExamBrowser.Configuration.ConfigurationData if (isEnginePath && (isFirefox || isXulRunner)) { - legacyBrowser = application; + legacyBrowsers.Add(application); } } - settings.Applications.Whitelist.Remove(legacyBrowser); + foreach (var legacyBrowser in legacyBrowsers) + { + settings.Applications.Whitelist.Remove(legacyBrowser); + } } } }