using Microsoft.PowerToys.Settings.UI.Lib; using Microsoft.PowerToys.Settings.UI.ViewModels; using Microsoft.PowerToys.Settings.UI.Views; using Microsoft.VisualStudio.TestTools.UnitTesting; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Text.Json; using System.Threading.Tasks; namespace ViewModelTests { [TestClass] public class PowerPreview { public const string Module = "File Explorer"; [TestInitialize] public void Setup() { // initialize creation of test settings file. GeneralSettings generalSettings = new GeneralSettings(); PowerPreviewSettings powerpreview = new PowerPreviewSettings(); SettingsUtils.SaveSettings(generalSettings.ToJsonString()); SettingsUtils.SaveSettings(powerpreview.ToJsonString(), powerpreview.name); } [TestCleanup] public void CleanUp() { // delete folder created. string generalSettings_file_name = string.Empty; if (SettingsUtils.SettingsFolderExists(generalSettings_file_name)) { DeleteFolder(generalSettings_file_name); } if (SettingsUtils.SettingsFolderExists(Module)) { DeleteFolder(Module); } } public void DeleteFolder(string powertoy) { Directory.Delete(Path.Combine(SettingsUtils.LocalApplicationDataFolder(), $"Microsoft\\PowerToys\\{powertoy}"), true); } [TestMethod] public void SVGRenderIsEnabled_ShouldPrevHandler_WhenSuccessful() { // arrange PowerPreviewViewModel viewModel = new PowerPreviewViewModel(); // Assert ShellPage.DefaultSndMSGCallback = msg => { SndModuleSettings snd = JsonSerializer.Deserialize>(msg); Assert.IsTrue(snd.powertoys.FileExplorerPreviewSettings.properties.EnableSvg); }; // act viewModel.SVGRenderIsEnabled = true; } [TestMethod] public void MDRenderIsEnabled_ShouldPrevHandler_WhenSuccessful() { // arrange PowerPreviewViewModel viewModel = new PowerPreviewViewModel(); // Assert ShellPage.DefaultSndMSGCallback = msg => { SndModuleSettings snd = JsonSerializer.Deserialize>(msg); Assert.IsTrue(snd.powertoys.FileExplorerPreviewSettings.properties.EnableMd); }; // act viewModel.MDRenderIsEnabled = true; } } }