From e32d619677f970bdd3b5670a81669450e73bb04d Mon Sep 17 00:00:00 2001 From: Seraphima Zykova Date: Tue, 24 Mar 2020 11:32:12 +0300 Subject: [PATCH] Editor tests: apply templates (#1648) * apply templates tests * moved settings reset methods --- .../EditorTemplatesApplyTests.cs | 126 ++++++++++++++++++ .../EditorTemplatesEditTests.cs | 23 +--- src/tests/win-app-driver/PowerToysSession.cs | 33 +++++ .../win-app-driver/win-app-driver.csproj | 3 +- 4 files changed, 163 insertions(+), 22 deletions(-) create mode 100644 src/tests/win-app-driver/FancyZonesTests/EditorTemplatesApplyTests.cs diff --git a/src/tests/win-app-driver/FancyZonesTests/EditorTemplatesApplyTests.cs b/src/tests/win-app-driver/FancyZonesTests/EditorTemplatesApplyTests.cs new file mode 100644 index 0000000000..240b3cb00d --- /dev/null +++ b/src/tests/win-app-driver/FancyZonesTests/EditorTemplatesApplyTests.cs @@ -0,0 +1,126 @@ +using System.IO; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using Newtonsoft.Json.Linq; +using OpenQA.Selenium.Appium.Windows; +using OpenQA.Selenium.Interactions; + +namespace PowerToysTests +{ + [TestClass] + public class FancyZonesEditorTemplatesApplyTests : PowerToysSession + { + WindowsElement editorWindow; + + private void OpenEditor() + { + new Actions(session).KeyDown(OpenQA.Selenium.Keys.Command).SendKeys("`").KeyUp(OpenQA.Selenium.Keys.Command).Perform(); + ShortWait(); + + editorWindow = session.FindElementByXPath("//Window[@Name=\"FancyZones Editor\"]"); + } + + private void OpenTemplates() + { + WindowsElement templatesTab = session.FindElementByName("Templates"); + templatesTab.Click(); + string isSelected = templatesTab.GetAttribute("SelectionItem.IsSelected"); + Assert.AreEqual("True", isSelected, "Templates tab cannot be opened"); + } + + private void ApplyLayout(string tabName) + { + string elementXPath = "//Text[@Name=\"" + tabName + "\"]"; + session.FindElementByXPath(elementXPath).Click(); + session.FindElementByAccessibilityId("ApplyTemplateButton").Click(); + + try + { + Assert.IsNull(session.FindElementByXPath("//Window[@Name=\"FancyZones Editor\"]")); + } + catch (OpenQA.Selenium.WebDriverException) + { + //editor was closed as expected + } + } + + private void CheckSettingsLayout(string expectedLayout) + { + JObject settings = JObject.Parse(File.ReadAllText(_zoneSettingsPath)); + Assert.AreEqual(expectedLayout, settings["devices"][0]["active-zoneset"]["type"]); + } + + [TestMethod] + public void ApplyFocus() + { + ApplyLayout("Focus"); + CheckSettingsLayout("focus"); + } + + [TestMethod] + public void ApplyColumns() + { + ApplyLayout("Columns"); + CheckSettingsLayout("columns"); + } + + [TestMethod] + public void ApplyRows() + { + ApplyLayout("Rows"); + CheckSettingsLayout("rows"); + } + + [TestMethod] + public void ApplyGrid() + { + ApplyLayout("Grid"); + CheckSettingsLayout("grid"); + } + + [TestMethod] + public void ApplyPriorityGrid() + { + ApplyLayout("Priority Grid"); + CheckSettingsLayout("priority-grid"); + } + + [ClassInitialize] + public static void ClassInitialize(TestContext context) + { + Setup(context, false); + ResetDefaultFancyZonesSettings(true); + } + + [ClassCleanup] + public static void ClassCleanup() + { + CloseSettings(); + TearDown(); + } + + [TestInitialize] + public void TestInitialize() + { + 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 + } + } + } +} \ No newline at end of file diff --git a/src/tests/win-app-driver/FancyZonesTests/EditorTemplatesEditTests.cs b/src/tests/win-app-driver/FancyZonesTests/EditorTemplatesEditTests.cs index d6f6a88ef7..116bf34455 100644 --- a/src/tests/win-app-driver/FancyZonesTests/EditorTemplatesEditTests.cs +++ b/src/tests/win-app-driver/FancyZonesTests/EditorTemplatesEditTests.cs @@ -11,23 +11,6 @@ namespace PowerToysTests { WindowsElement editorWindow; - private static void ResetDefaultFancyZonesSettings() - { - if (!Directory.Exists(_settingsFolderPath)) - { - Directory.CreateDirectory(_settingsFolderPath); - } - - string settings = "{\"version\":\"1.0\",\"name\":\"FancyZones\",\"properties\":{\"fancyzones_shiftDrag\":{\"value\":true},\"fancyzones_overrideSnapHotkeys\":{\"value\":false},\"fancyzones_zoneSetChange_flashZones\":{\"value\":false},\"fancyzones_displayChange_moveWindows\":{\"value\":false},\"fancyzones_zoneSetChange_moveWindows\":{\"value\":false},\"fancyzones_virtualDesktopChange_moveWindows\":{\"value\":false},\"fancyzones_appLastZone_moveWindows\":{\"value\":false},\"use_cursorpos_editor_startupscreen\":{\"value\":true},\"fancyzones_zoneHighlightColor\":{\"value\":\"#0078D7\"},\"fancyzones_highlight_opacity\":{\"value\":90},\"fancyzones_editor_hotkey\":{\"value\":{\"win\":true,\"ctrl\":false,\"alt\":false,\"shift\":false,\"code\":192,\"key\":\"`\"}},\"fancyzones_excluded_apps\":{\"value\":\"\"}}}"; - File.WriteAllText(_settingsPath, settings); - } - - private void ResetDefautZoneSettings() - { - string zoneSettings = "{\"app-zone-history\":[],\"devices\":[],\"custom-zone-sets\":[]}"; - File.WriteAllText(_zoneSettingsPath, zoneSettings); - } - private void OpenEditor() { new Actions(session).KeyDown(OpenQA.Selenium.Keys.Command).SendKeys("`").KeyUp(OpenQA.Selenium.Keys.Command).Perform(); @@ -166,8 +149,7 @@ namespace PowerToysTests { ExitPowerToys(); } - ResetDefaultFancyZonesSettings(); - LaunchPowerToys(); + ResetDefaultFancyZonesSettings(true); } [ClassCleanup] @@ -205,8 +187,7 @@ namespace PowerToysTests //editor has already closed } - ResetDefautZoneSettings(); - ExitPowerToys(); + ResetDefautZoneSettings(false); } } } \ No newline at end of file diff --git a/src/tests/win-app-driver/PowerToysSession.cs b/src/tests/win-app-driver/PowerToysSession.cs index f20f21fed3..896697b012 100644 --- a/src/tests/win-app-driver/PowerToysSession.cs +++ b/src/tests/win-app-driver/PowerToysSession.cs @@ -226,6 +226,39 @@ namespace PowerToysTests session.FindElementByXPath("//MenuItem[@Name=\"Exit\"]").Click(); trayButton.Click(); //close tray isPowerToysLaunched = false; + } + + public static void ResetDefaultFancyZonesSettings(bool relaunch) + { + if (!Directory.Exists(_settingsFolderPath)) + { + Directory.CreateDirectory(_settingsFolderPath); + } + + string settings = "{\"version\":\"1.0\",\"name\":\"FancyZones\",\"properties\":{\"fancyzones_shiftDrag\":{\"value\":true},\"fancyzones_overrideSnapHotkeys\":{\"value\":false},\"fancyzones_zoneSetChange_flashZones\":{\"value\":false},\"fancyzones_displayChange_moveWindows\":{\"value\":false},\"fancyzones_zoneSetChange_moveWindows\":{\"value\":false},\"fancyzones_virtualDesktopChange_moveWindows\":{\"value\":false},\"fancyzones_appLastZone_moveWindows\":{\"value\":false},\"use_cursorpos_editor_startupscreen\":{\"value\":true},\"fancyzones_zoneHighlightColor\":{\"value\":\"#0078D7\"},\"fancyzones_highlight_opacity\":{\"value\":90},\"fancyzones_editor_hotkey\":{\"value\":{\"win\":true,\"ctrl\":false,\"alt\":false,\"shift\":false,\"code\":192,\"key\":\"`\"}},\"fancyzones_excluded_apps\":{\"value\":\"\"}}}"; + File.WriteAllText(_settingsPath, settings); + + if (isPowerToysLaunched) + { + ExitPowerToys(); + } + + if (relaunch) + { + LaunchPowerToys(); + } + } + + public static void ResetDefautZoneSettings(bool relaunch) + { + string zoneSettings = "{\"app-zone-history\":[],\"devices\":[],\"custom-zone-sets\":[]}"; + File.WriteAllText(_zoneSettingsPath, zoneSettings); + + ExitPowerToys(); + if (relaunch) + { + LaunchPowerToys(); + } } } } diff --git a/src/tests/win-app-driver/win-app-driver.csproj b/src/tests/win-app-driver/win-app-driver.csproj index f55773b686..6c820535a7 100644 --- a/src/tests/win-app-driver/win-app-driver.csproj +++ b/src/tests/win-app-driver/win-app-driver.csproj @@ -1,4 +1,4 @@ - + @@ -88,6 +88,7 @@ +