using System.IO; using Microsoft.VisualStudio.TestTools.UnitTesting; using Newtonsoft.Json.Linq; using OpenQA.Selenium.Interactions; namespace PowerToysTests { [TestClass] public class FancyZonesEditorTemplatesEditTests : FancyZonesEditor { private void ChangeLayout() { new Actions(session).MoveToElement(session.FindElementByAccessibilityId("PART_TitleBar")).MoveByOffset(0, -50).Click().Perform(); } private void CancelTest() { new Actions(session).MoveToElement(session.FindElementByXPath("//Button[@Name=\"Cancel\"]")).Click().Perform(); ShortWait(); Assert.AreEqual(_initialZoneSettings, File.ReadAllText(_zoneSettingsPath), "Settings were changed"); } private void SaveTest() { new Actions(session).MoveToElement(session.FindElementByName("Save and apply")).Click().Perform(); ShortWait(); JObject settings = JObject.Parse(File.ReadAllText(_zoneSettingsPath)); Assert.AreEqual("Custom Layout 1", settings["custom-zone-sets"][0]["name"]); Assert.AreEqual(settings["custom-zone-sets"][0]["uuid"], settings["devices"][0]["active-zoneset"]["uuid"]); } [TestMethod] public void EditFocusCancel() { OpenCreatorWindow("Focus", "Custom layout creator", "EditTemplateButton"); ZoneCountTest(3, 0); session.FindElementByAccessibilityId("newZoneButton").Click(); ZoneCountTest(4, 0); CancelTest(); } [TestMethod] public void EditColumnsCancel() { OpenCreatorWindow("Columns", "Custom table layout creator", "EditTemplateButton"); ZoneCountTest(0, 3); ChangeLayout(); ZoneCountTest(0, 4); CancelTest(); } [TestMethod] public void EditRowsCancel() { OpenCreatorWindow("Rows", "Custom table layout creator", "EditTemplateButton"); ZoneCountTest(0, 3); ChangeLayout(); ZoneCountTest(0, 4); CancelTest(); } [TestMethod] public void EditGridCancel() { OpenCreatorWindow("Grid", "Custom table layout creator", "EditTemplateButton"); ZoneCountTest(0, 3); ChangeLayout(); ZoneCountTest(0, 4); CancelTest(); } [TestMethod] public void EditPriorityGridCancel() { OpenCreatorWindow("Priority Grid", "Custom table layout creator", "EditTemplateButton"); ZoneCountTest(0, 3); ChangeLayout(); ZoneCountTest(0, 4); CancelTest(); } [TestMethod] public void EditFocusSave() { OpenCreatorWindow("Focus", "Custom layout creator", "EditTemplateButton"); ZoneCountTest(3, 0); session.FindElementByAccessibilityId("newZoneButton").Click(); ZoneCountTest(4, 0); SaveTest(); } [TestMethod] public void EditColumnsSave() { OpenCreatorWindow("Columns", "Custom table layout creator", "EditTemplateButton"); ZoneCountTest(0, 3); ChangeLayout(); ZoneCountTest(0, 4); SaveTest(); } [TestMethod] public void EditRowsSave() { OpenCreatorWindow("Rows", "Custom table layout creator", "EditTemplateButton"); ZoneCountTest(0, 3); ChangeLayout(); ZoneCountTest(0, 4); SaveTest(); } [TestMethod] public void EditGridSave() { OpenCreatorWindow("Grid", "Custom table layout creator", "EditTemplateButton"); ZoneCountTest(0, 3); ChangeLayout(); ZoneCountTest(0, 4); SaveTest(); } [TestMethod] public void EditPriorityGridSave() { OpenCreatorWindow("Priority Grid", "Custom table layout creator", "EditTemplateButton"); ZoneCountTest(0, 3); ChangeLayout(); ZoneCountTest(0, 4); SaveTest(); } [ClassInitialize] public static void ClassInitialize(TestContext context) { Setup(context, false); ResetDefaultFancyZonesSettings(false); ResetDefautZoneSettings(true); } [ClassCleanup] public static void ClassCleanup() { CloseSettings(); TearDown(); } [TestInitialize] public void TestInitialize() { if (!isPowerToysLaunched) { LaunchPowerToys(); } OpenEditor(); OpenTemplates(); } [TestCleanup] public void TestCleanup() { //Close editor try { if (editorWindow != null) { editorWindow.SendKeys(OpenQA.Selenium.Keys.Alt + OpenQA.Selenium.Keys.F4); ShortWait(); } } catch(OpenQA.Selenium.WebDriverException) { //editor has already closed } ResetDefautZoneSettings(false); } } }