From 77ef9826716e304cce7b3ae4f3227104bf36a77f Mon Sep 17 00:00:00 2001 From: seraphima Date: Mon, 20 Nov 2023 11:51:44 +0100 Subject: [PATCH 01/78] add name to monitors list --- src/modules/fancyzones/editor/FancyZonesEditor/MainWindow.xaml | 1 + 1 file changed, 1 insertion(+) diff --git a/src/modules/fancyzones/editor/FancyZonesEditor/MainWindow.xaml b/src/modules/fancyzones/editor/FancyZonesEditor/MainWindow.xaml index 86b65e9ed224..caa93d64b9c9 100644 --- a/src/modules/fancyzones/editor/FancyZonesEditor/MainWindow.xaml +++ b/src/modules/fancyzones/editor/FancyZonesEditor/MainWindow.xaml @@ -337,6 +337,7 @@ Date: Mon, 20 Nov 2023 12:01:32 +0100 Subject: [PATCH 02/78] click item --- .../Utils/FancyZonesEditorSession.cs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs index e87c5576f3d2..5e36598e51cf 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs @@ -1,4 +1,4 @@ -// Copyright (c) Microsoft Corporation +// Copyright (c) Microsoft Corporation // The Microsoft Corporation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -127,8 +127,13 @@ public void Click_EditLayout(string layoutName) public void RightClick_Layout(string layoutName) { var layout = GetLayout(layoutName); + ClickItem(layout!); + } + + private void ClickItem(WindowsElement element) + { Actions actions = new Actions(Session); - actions.MoveToElement(layout); + actions.MoveToElement(element); actions.MoveByOffset(30, 30); actions.ContextClick(); actions.Build().Perform(); From 8c8a06b895fdd616e80764f5164719549d6bef13 Mon Sep 17 00:00:00 2001 From: seraphima Date: Mon, 20 Nov 2023 12:01:53 +0100 Subject: [PATCH 03/78] click monitor test --- .../RunFancyZonesEditorTest.cs | 23 +++++++++++++++++-- .../Utils/FancyZonesEditorSession.cs | 19 +++++++++++++-- 2 files changed, 38 insertions(+), 4 deletions(-) diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/RunFancyZonesEditorTest.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/RunFancyZonesEditorTest.cs index a20559f130e1..ed0730776855 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/RunFancyZonesEditorTest.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/RunFancyZonesEditorTest.cs @@ -1,4 +1,4 @@ -// Copyright (c) Microsoft Corporation +// Copyright (c) Microsoft Corporation // The Microsoft Corporation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -7,13 +7,15 @@ using Microsoft.FancyZonesEditor.UITests; using Microsoft.FancyZonesEditor.UnitTests.Utils; using Microsoft.VisualStudio.TestTools.UnitTesting; +using static FancyZonesEditorCommon.Data.EditorParameters; -namespace UITests_FancyZonesEditor +namespace Microsoft.FancyZonesEditor.UITests { [TestClass] public class RunFancyZonesEditorTest { private static FancyZonesEditorSession? _session; + private static IOTestHelper? _ioHelper; private static TestContext? _context; [ClassInitialize] @@ -173,5 +175,22 @@ public void OpenContextMenu() // verify the context menu is opened { Assert.IsNotNull(_session?.OpenContextMenu(TestConstants.TemplateLayoutNames[Constants.TemplateLayout.Columns])); } + + [TestMethod] + public void ClickMonitor() + { + Assert.IsNotNull(_session?.GetMonitorItem(1)); + Assert.IsNotNull(_session?.GetMonitorItem(2)); + + // verify that the monitor 1 is selected initially + Assert.IsTrue(_session?.GetMonitorItem(1)?.Selected); + Assert.IsFalse(_session?.GetMonitorItem(2)?.Selected); + + _session?.Click_Monitor(2); + + // verify that the monitor 2 is selected after click + Assert.IsFalse(_session?.GetMonitorItem(1)?.Selected); + Assert.IsTrue(_session?.GetMonitorItem(2)?.Selected); + } } } diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs index 5e36598e51cf..9d0512c72dd8 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs @@ -1,4 +1,4 @@ -// Copyright (c) Microsoft Corporation +// Copyright (c) Microsoft Corporation // The Microsoft Corporation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -94,7 +94,7 @@ public void Close(TestContext testContext) } } - private WindowsElement? GetLayout(string layoutName) + public WindowsElement? GetLayout(string layoutName) { var listItem = Session?.FindElementByName(layoutName); Assert.IsNotNull(listItem, "Layout " + layoutName + " not found"); @@ -109,6 +109,15 @@ public void Close(TestContext testContext) return menu; } + public WindowsElement GetMonitorItem(int monitorNumber) + { + var monitorsListView = Session?.FindElementByAccessibilityId("Monitors"); + Assert.IsNotNull(monitorsListView, "Monitors list not found"); + var listItem = monitorsListView?.FindElementByName($"{monitorNumber}"); + Assert.IsNotNull(listItem, "Monitor " + monitorNumber + " not found"); + return (WindowsElement)listItem; + } + public void Click_CreateNewLayout() { var button = Session?.FindElementByAccessibilityId("NewLayoutButton"); @@ -130,6 +139,12 @@ public void RightClick_Layout(string layoutName) ClickItem(layout!); } + public void Click_Monitor(int monitorNumber) + { + var monitor = GetMonitorItem(monitorNumber); + ClickItem(monitor!); + } + private void ClickItem(WindowsElement element) { Actions actions = new Actions(Session); From d6c744dda379c733005ca17230be4bd2b898d5ef Mon Sep 17 00:00:00 2001 From: seraphima Date: Mon, 20 Nov 2023 13:00:05 +0100 Subject: [PATCH 04/78] added ui initialization tests --- .../UIInitializaionTests.cs | 204 ++++++++++++++++++ 1 file changed, 204 insertions(+) create mode 100644 src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializaionTests.cs diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializaionTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializaionTests.cs new file mode 100644 index 000000000000..7422771a8c67 --- /dev/null +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializaionTests.cs @@ -0,0 +1,204 @@ +// Copyright (c) Microsoft Corporation +// The Microsoft Corporation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System.Collections.Generic; +using FancyZonesEditorCommon.Data; +using Microsoft.FancyZonesEditor.UITests.Utils; +using Microsoft.FancyZonesEditor.UnitTests.Utils; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using static FancyZonesEditorCommon.Data.EditorParameters; + +namespace Microsoft.FancyZonesEditor.UITests +{ + [TestClass] + public class UIInitializaionTests + { + private static TestContext? _context; + private static FancyZonesEditorSession? _session; + private static IOTestHelper? _ioHelper; + + [ClassInitialize] + public static void ClassInitialize(TestContext testContext) + { + _context = testContext; + } + + [ClassCleanup] + public static void ClassCleanup() + { + _context = null; + } + + [TestCleanup] + public void TestCleanup() + { + _session?.Close(_context!); + _ioHelper?.RestoreData(); + } + + [TestMethod] + public void EditorParams_VerifySelectedMonitor() + { + EditorParameters editorParameters = new EditorParameters(); + _ioHelper = new IOTestHelper(editorParameters.File); + ParamsWrapper parameters = new ParamsWrapper + { + ProcessId = 1, + SpanZonesAcrossMonitors = false, + Monitors = new List + { + new NativeMonitorDataWrapper + { + Monitor = "monitor-1", + MonitorInstanceId = "instance-id-1", + MonitorSerialNumber = "serial-number-1", + MonitorNumber = 1, + VirtualDesktop = "{FF34D993-73F3-4B8C-AA03-73730A01D6A8}", + Dpi = 96, + LeftCoordinate = 0, + TopCoordinate = 0, + WorkAreaHeight = 1040, + WorkAreaWidth = 1920, + MonitorHeight = 1080, + MonitorWidth = 1920, + IsSelected = false, + }, + new NativeMonitorDataWrapper + { + Monitor = "monitor-2", + MonitorInstanceId = "instance-id-2", + MonitorSerialNumber = "serial-number-2", + MonitorNumber = 2, + VirtualDesktop = "{FF34D993-73F3-4B8C-AA03-73730A01D6A8}", + Dpi = 96, + LeftCoordinate = 1920, + TopCoordinate = 0, + WorkAreaHeight = 1040, + WorkAreaWidth = 1920, + MonitorHeight = 1080, + MonitorWidth = 1920, + IsSelected = true, + }, + }, + }; + _ioHelper.WriteData(editorParameters.Serialize(parameters)); + + _session = new FancyZonesEditorSession(_context!); + + Assert.IsFalse(_session.GetMonitorItem(1)?.Selected); + Assert.IsTrue(_session.GetMonitorItem(2)?.Selected); + } + + [TestMethod] + public void EditorParams_VerifyMonitorScaling() + { + EditorParameters editorParameters = new EditorParameters(); + _ioHelper = new IOTestHelper(editorParameters.File); + ParamsWrapper parameters = new ParamsWrapper + { + ProcessId = 1, + SpanZonesAcrossMonitors = false, + Monitors = new List + { + new NativeMonitorDataWrapper + { + Monitor = "monitor-1", + MonitorInstanceId = "instance-id-1", + MonitorSerialNumber = "serial-number-1", + MonitorNumber = 1, + VirtualDesktop = "{FF34D993-73F3-4B8C-AA03-73730A01D6A8}", + Dpi = 192, // 200% scaling + LeftCoordinate = 0, + TopCoordinate = 0, + WorkAreaHeight = 1040, + WorkAreaWidth = 1920, + MonitorHeight = 1080, + MonitorWidth = 1920, + IsSelected = true, + }, + }, + }; + _ioHelper.WriteData(editorParameters.Serialize(parameters)); + + _session = new FancyZonesEditorSession(_context!); + var monitor = _session.GetMonitorItem(1); + var scaling = monitor.FindElementByAccessibilityId("ScalingText"); + Assert.AreEqual("200%", scaling.Text); + } + + [TestMethod] + public void EditorParams_VerifyMonitorResolution() + { + EditorParameters editorParameters = new EditorParameters(); + _ioHelper = new IOTestHelper(editorParameters.File); + ParamsWrapper parameters = new ParamsWrapper + { + ProcessId = 1, + SpanZonesAcrossMonitors = false, + Monitors = new List + { + new NativeMonitorDataWrapper + { + Monitor = "monitor-1", + MonitorInstanceId = "instance-id-1", + MonitorSerialNumber = "serial-number-1", + MonitorNumber = 1, + VirtualDesktop = "{FF34D993-73F3-4B8C-AA03-73730A01D6A8}", + Dpi = 192, + LeftCoordinate = 0, + TopCoordinate = 0, + WorkAreaHeight = 1040, + WorkAreaWidth = 1920, + MonitorHeight = 1080, + MonitorWidth = 1920, + IsSelected = true, + }, + }, + }; + _ioHelper.WriteData(editorParameters.Serialize(parameters)); + + _session = new FancyZonesEditorSession(_context!); + var monitor = _session.GetMonitorItem(1); + var resolution = monitor.FindElementByAccessibilityId("ResolutionText"); + Assert.AreEqual("1920 × 1080", resolution.Text); + } + + [TestMethod] + public void EditorParams_SpanAcrossMonitors() + { + EditorParameters editorParameters = new EditorParameters(); + _ioHelper = new IOTestHelper(editorParameters.File); + ParamsWrapper parameters = new ParamsWrapper + { + ProcessId = 1, + SpanZonesAcrossMonitors = true, + Monitors = new List + { + new NativeMonitorDataWrapper + { + Monitor = "monitor-1", + MonitorInstanceId = "instance-id-1", + MonitorSerialNumber = "serial-number-1", + MonitorNumber = 1, + VirtualDesktop = "{FF34D993-73F3-4B8C-AA03-73730A01D6A8}", + Dpi = 192, + LeftCoordinate = 0, + TopCoordinate = 0, + WorkAreaHeight = 1040, + WorkAreaWidth = 1920, + MonitorHeight = 1080, + MonitorWidth = 1920, + IsSelected = true, + }, + }, + }; + _ioHelper.WriteData(editorParameters.Serialize(parameters)); + + _session = new FancyZonesEditorSession(_context!); + var monitor = _session.GetMonitorItem(1); + Assert.IsNotNull(monitor); + Assert.IsTrue(monitor.Selected); + } + } +} From 45bd2ad636fdd3860e192d2e7cb7754ec3d72a22 Mon Sep 17 00:00:00 2001 From: seraphima Date: Fri, 22 Mar 2024 13:54:51 +0100 Subject: [PATCH 05/78] moved enum --- .../MonitorConfigurationTypeEnumExtensions.cs | 44 +++++++++++++++++++ .../editor/FancyZonesEditor/LayoutBackup.cs | 4 +- .../FancyZonesEditor/MainWindow.xaml.cs | 1 + .../Models/DefaultLayoutsModel.cs | 3 +- .../Models/MainWindowSettingsModel.cs | 1 + .../editor/FancyZonesEditor/Models/Monitor.cs | 3 +- .../Models/MonitorConfigurationType.cs | 12 ----- .../Utils/FancyZonesEditorIO.cs | 40 +++-------------- 8 files changed, 57 insertions(+), 51 deletions(-) create mode 100644 src/modules/fancyzones/FancyZonesEditorCommon/Data/MonitorConfigurationTypeEnumExtensions.cs delete mode 100644 src/modules/fancyzones/editor/FancyZonesEditor/Models/MonitorConfigurationType.cs diff --git a/src/modules/fancyzones/FancyZonesEditorCommon/Data/MonitorConfigurationTypeEnumExtensions.cs b/src/modules/fancyzones/FancyZonesEditorCommon/Data/MonitorConfigurationTypeEnumExtensions.cs new file mode 100644 index 000000000000..7b639a2f0df2 --- /dev/null +++ b/src/modules/fancyzones/FancyZonesEditorCommon/Data/MonitorConfigurationTypeEnumExtensions.cs @@ -0,0 +1,44 @@ +// Copyright (c) Microsoft Corporation +// The Microsoft Corporation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +namespace FancyZonesEditorCommon.Data +{ + public enum MonitorConfigurationType + { + Horizontal = 0, + Vertical, + } + + public static class MonitorConfigurationTypeEnumExtensions + { + private const string HorizontalJsonTag = "horizontal"; + private const string VerticalJsonTag = "vertical"; + + public static string MonitorConfigurationTypeToString(this MonitorConfigurationType value) + { + switch (value) + { + case MonitorConfigurationType.Horizontal: + return HorizontalJsonTag; + case MonitorConfigurationType.Vertical: + return VerticalJsonTag; + } + + return HorizontalJsonTag; + } + + public static MonitorConfigurationType GetTypeFromString(string value) + { + switch (value) + { + case HorizontalJsonTag: + return MonitorConfigurationType.Horizontal; + case VerticalJsonTag: + return MonitorConfigurationType.Vertical; + } + + return MonitorConfigurationType.Horizontal; + } + } +} diff --git a/src/modules/fancyzones/editor/FancyZonesEditor/LayoutBackup.cs b/src/modules/fancyzones/editor/FancyZonesEditor/LayoutBackup.cs index a245db0e26b2..88c0e1f553bd 100644 --- a/src/modules/fancyzones/editor/FancyZonesEditor/LayoutBackup.cs +++ b/src/modules/fancyzones/editor/FancyZonesEditor/LayoutBackup.cs @@ -1,10 +1,10 @@ -// Copyright (c) Microsoft Corporation +// Copyright (c) Microsoft Corporation // The Microsoft Corporation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. using System.Collections.Generic; using FancyZonesEditor.Models; -using FancyZonesEditor.Utils; +using FancyZonesEditorCommon.Data; namespace FancyZonesEditor { diff --git a/src/modules/fancyzones/editor/FancyZonesEditor/MainWindow.xaml.cs b/src/modules/fancyzones/editor/FancyZonesEditor/MainWindow.xaml.cs index e8b84b78e514..196350a8d043 100644 --- a/src/modules/fancyzones/editor/FancyZonesEditor/MainWindow.xaml.cs +++ b/src/modules/fancyzones/editor/FancyZonesEditor/MainWindow.xaml.cs @@ -16,6 +16,7 @@ using Common.UI; using FancyZonesEditor.Models; using FancyZonesEditor.Utils; +using FancyZonesEditorCommon.Data; using ManagedCommon; using ModernWpf.Controls; diff --git a/src/modules/fancyzones/editor/FancyZonesEditor/Models/DefaultLayoutsModel.cs b/src/modules/fancyzones/editor/FancyZonesEditor/Models/DefaultLayoutsModel.cs index 8ae5e3ac8487..5b3a76df6e5d 100644 --- a/src/modules/fancyzones/editor/FancyZonesEditor/Models/DefaultLayoutsModel.cs +++ b/src/modules/fancyzones/editor/FancyZonesEditor/Models/DefaultLayoutsModel.cs @@ -1,4 +1,4 @@ -// Copyright (c) Microsoft Corporation +// Copyright (c) Microsoft Corporation // The Microsoft Corporation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -6,6 +6,7 @@ using System.Collections.Generic; using System.ComponentModel; using System.Runtime.CompilerServices; +using FancyZonesEditorCommon.Data; namespace FancyZonesEditor.Models { diff --git a/src/modules/fancyzones/editor/FancyZonesEditor/Models/MainWindowSettingsModel.cs b/src/modules/fancyzones/editor/FancyZonesEditor/Models/MainWindowSettingsModel.cs index 58ee764d59dc..6081b862b5cc 100644 --- a/src/modules/fancyzones/editor/FancyZonesEditor/Models/MainWindowSettingsModel.cs +++ b/src/modules/fancyzones/editor/FancyZonesEditor/Models/MainWindowSettingsModel.cs @@ -8,6 +8,7 @@ using System.ComponentModel; using System.Runtime.CompilerServices; using FancyZonesEditor.Models; +using FancyZonesEditorCommon.Data; namespace FancyZonesEditor { diff --git a/src/modules/fancyzones/editor/FancyZonesEditor/Models/Monitor.cs b/src/modules/fancyzones/editor/FancyZonesEditor/Models/Monitor.cs index ab0096862de3..e3f9618ed0fc 100644 --- a/src/modules/fancyzones/editor/FancyZonesEditor/Models/Monitor.cs +++ b/src/modules/fancyzones/editor/FancyZonesEditor/Models/Monitor.cs @@ -1,4 +1,4 @@ -// Copyright (c) Microsoft Corporation +// Copyright (c) Microsoft Corporation // The Microsoft Corporation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -7,6 +7,7 @@ using System.Windows; using System.Windows.Media; using FancyZonesEditor.Utils; +using FancyZonesEditorCommon.Data; namespace FancyZonesEditor.Models { diff --git a/src/modules/fancyzones/editor/FancyZonesEditor/Models/MonitorConfigurationType.cs b/src/modules/fancyzones/editor/FancyZonesEditor/Models/MonitorConfigurationType.cs deleted file mode 100644 index 6530e904ba24..000000000000 --- a/src/modules/fancyzones/editor/FancyZonesEditor/Models/MonitorConfigurationType.cs +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright (c) Microsoft Corporation -// The Microsoft Corporation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -namespace FancyZonesEditor.Models -{ - public enum MonitorConfigurationType - { - Horizontal = 0, - Vertical, - } -} diff --git a/src/modules/fancyzones/editor/FancyZonesEditor/Utils/FancyZonesEditorIO.cs b/src/modules/fancyzones/editor/FancyZonesEditor/Utils/FancyZonesEditorIO.cs index 612e6597d8e7..0925c1dc00b7 100644 --- a/src/modules/fancyzones/editor/FancyZonesEditor/Utils/FancyZonesEditorIO.cs +++ b/src/modules/fancyzones/editor/FancyZonesEditor/Utils/FancyZonesEditorIO.cs @@ -17,10 +17,6 @@ namespace FancyZonesEditor.Utils { public class FancyZonesEditorIO { - // Non-localizable strings: JSON tags - private const string HorizontalJsonTag = "horizontal"; - private const string VerticalJsonTag = "vertical"; - // Non-localizable string: default virtual desktop id private const string DefaultVirtualDesktopGuid = "{00000000-0000-0000-0000-000000000000}"; @@ -505,7 +501,7 @@ public void SerializeDefaultLayouts() { DefaultLayouts.DefaultLayoutWrapper wrapper = new DefaultLayouts.DefaultLayoutWrapper { - MonitorConfiguration = MonitorConfigurationTypeToJsonTag(MonitorConfigurationType.Horizontal), + MonitorConfiguration = MonitorConfigurationTypeEnumExtensions.MonitorConfigurationTypeToString(MonitorConfigurationType.Horizontal), Layout = layoutWrapper, }; @@ -516,7 +512,7 @@ public void SerializeDefaultLayouts() { DefaultLayouts.DefaultLayoutWrapper wrapper = new DefaultLayouts.DefaultLayoutWrapper { - MonitorConfiguration = MonitorConfigurationTypeToJsonTag(MonitorConfigurationType.Vertical), + MonitorConfiguration = MonitorConfigurationTypeEnumExtensions.MonitorConfigurationTypeToString(MonitorConfigurationType.Vertical), Layout = layoutWrapper, }; @@ -546,7 +542,7 @@ public void SerializeDefaultLayouts() { DefaultLayouts.DefaultLayoutWrapper wrapper = new DefaultLayouts.DefaultLayoutWrapper { - MonitorConfiguration = MonitorConfigurationTypeToJsonTag(MonitorConfigurationType.Horizontal), + MonitorConfiguration = MonitorConfigurationTypeEnumExtensions.MonitorConfigurationTypeToString(MonitorConfigurationType.Horizontal), Layout = layoutWrapper, }; @@ -557,7 +553,7 @@ public void SerializeDefaultLayouts() { DefaultLayouts.DefaultLayoutWrapper wrapper = new DefaultLayouts.DefaultLayoutWrapper { - MonitorConfiguration = MonitorConfigurationTypeToJsonTag(MonitorConfigurationType.Vertical), + MonitorConfiguration = MonitorConfigurationTypeEnumExtensions.MonitorConfigurationTypeToString(MonitorConfigurationType.Vertical), Layout = layoutWrapper, }; @@ -773,7 +769,7 @@ private bool SetDefaultLayouts(List layouts foreach (var layout in layouts) { LayoutModel defaultLayoutModel = null; - MonitorConfigurationType type = JsonTagToMonitorConfigurationType(layout.MonitorConfiguration); + MonitorConfigurationType type = MonitorConfigurationTypeEnumExtensions.GetTypeFromString(layout.MonitorConfiguration); if (layout.Layout.Uuid != null && layout.Layout.Uuid != string.Empty) { @@ -944,31 +940,5 @@ private string LayoutTypeToJsonTag(LayoutType type) return string.Empty; } } - - private MonitorConfigurationType JsonTagToMonitorConfigurationType(string tag) - { - switch (tag) - { - case HorizontalJsonTag: - return MonitorConfigurationType.Horizontal; - case VerticalJsonTag: - return MonitorConfigurationType.Vertical; - } - - return MonitorConfigurationType.Horizontal; - } - - private string MonitorConfigurationTypeToJsonTag(MonitorConfigurationType type) - { - switch (type) - { - case MonitorConfigurationType.Horizontal: - return HorizontalJsonTag; - case MonitorConfigurationType.Vertical: - return VerticalJsonTag; - } - - return HorizontalJsonTag; - } } } From 04e85d8d831f56e97b35e1d816e86569701fc03d Mon Sep 17 00:00:00 2001 From: seraphima Date: Mon, 20 Nov 2023 20:45:50 +0100 Subject: [PATCH 06/78] get zone slider --- .../Utils/FancyZonesEditorSession.cs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs index 9d0512c72dd8..ce2c4f663927 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs @@ -1,4 +1,4 @@ -// Copyright (c) Microsoft Corporation +// Copyright (c) Microsoft Corporation // The Microsoft Corporation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -118,6 +118,13 @@ public WindowsElement GetMonitorItem(int monitorNumber) return (WindowsElement)listItem; } + public WindowsElement GetZoneCountSlider() + { + var element = Session?.FindElementByAccessibilityId("TemplateZoneCount"); + Assert.IsNotNull(element, "Template zone count slider not found"); + return element; + } + public void Click_CreateNewLayout() { var button = Session?.FindElementByAccessibilityId("NewLayoutButton"); From 495fd38875a9252fec9273a7a1f54c1f0490e6de Mon Sep 17 00:00:00 2001 From: seraphima Date: Mon, 20 Nov 2023 20:46:06 +0100 Subject: [PATCH 07/78] save and cancel clicks --- .../Utils/FancyZonesEditorSession.cs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs index ce2c4f663927..c65183e2751d 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs @@ -152,6 +152,20 @@ public void Click_Monitor(int monitorNumber) ClickItem(monitor!); } + public void Click_Save() + { + var button = Session?.FindElementByName("Save"); + Assert.IsNotNull(button, "No Save button"); + button.Click(); + } + + public void Click_Cancel() + { + var button = Session?.FindElementByName("Cancel"); + Assert.IsNotNull(button, "No Cancel button"); + button.Click(); + } + private void ClickItem(WindowsElement element) { Actions actions = new Actions(Session); From 9ee4970a48429c205396c86ab72d6cb8f4738494 Mon Sep 17 00:00:00 2001 From: seraphima Date: Mon, 20 Nov 2023 22:24:22 +0100 Subject: [PATCH 08/78] handy assert --- .../Utils/FancyZonesEditorSession.cs | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs index c65183e2751d..a95a01d42a4a 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs @@ -96,9 +96,16 @@ public void Close(TestContext testContext) public WindowsElement? GetLayout(string layoutName) { - var listItem = Session?.FindElementByName(layoutName); - Assert.IsNotNull(listItem, "Layout " + layoutName + " not found"); - return listItem; + try + { + var listItem = Session?.FindElementByName(layoutName); + return listItem; + } + catch (Exception) + { + Assert.Fail("Layout " + layoutName + " not found"); + return null; + } } public WindowsElement? OpenContextMenu(string layoutName) From a5d6eae376e6a86461342dfaef509354281ed9ce Mon Sep 17 00:00:00 2001 From: seraphima Date: Mon, 20 Nov 2023 22:24:37 +0100 Subject: [PATCH 09/78] fix layout name --- .../fancyzones/UITests-FancyZonesEditor/TestConstants.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/TestConstants.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/TestConstants.cs index 1a6b9b5d66f9..21f5d1836c7e 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/TestConstants.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/TestConstants.cs @@ -16,7 +16,7 @@ public static class TestConstants { TemplateLayout.Rows, "Rows" }, { TemplateLayout.Columns, "Columns" }, { TemplateLayout.Grid, "Grid" }, - { TemplateLayout.PriorityGrid, "PriorityGrid" }, + { TemplateLayout.PriorityGrid, "Priority Grid" }, }; } } From 8df25c1bcbf13a135d77caa350453871de20f20a Mon Sep 17 00:00:00 2001 From: seraphima Date: Mon, 20 Nov 2023 22:25:22 +0100 Subject: [PATCH 10/78] separate io helpers --- .../UIInitializaionTests.cs | 32 ++++++++++++------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializaionTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializaionTests.cs index 7422771a8c67..6afd480ce05f 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializaionTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializaionTests.cs @@ -1,4 +1,4 @@ -// Copyright (c) Microsoft Corporation +// Copyright (c) Microsoft Corporation // The Microsoft Corporation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -7,7 +7,10 @@ using Microsoft.FancyZonesEditor.UITests.Utils; using Microsoft.FancyZonesEditor.UnitTests.Utils; using Microsoft.VisualStudio.TestTools.UnitTesting; +using static FancyZonesEditorCommon.Data.AppliedLayouts; +using static FancyZonesEditorCommon.Data.DefaultLayouts; using static FancyZonesEditorCommon.Data.EditorParameters; +using static FancyZonesEditorCommon.Data.LayoutTemplates; namespace Microsoft.FancyZonesEditor.UITests { @@ -16,7 +19,10 @@ public class UIInitializaionTests { private static TestContext? _context; private static FancyZonesEditorSession? _session; - private static IOTestHelper? _ioHelper; + private static IOTestHelper? _editorParamsIOHelper; + private static IOTestHelper? _templatesIOHelper; + private static IOTestHelper? _defaultLayoutsIOHelper; + private static IOTestHelper? _appliedLayoutsIOHelper; [ClassInitialize] public static void ClassInitialize(TestContext testContext) @@ -34,14 +40,17 @@ public static void ClassCleanup() public void TestCleanup() { _session?.Close(_context!); - _ioHelper?.RestoreData(); + + _editorParamsIOHelper?.RestoreData(); + _templatesIOHelper?.RestoreData(); + _defaultLayoutsIOHelper?.RestoreData(); + _appliedLayoutsIOHelper?.RestoreData(); } [TestMethod] public void EditorParams_VerifySelectedMonitor() { EditorParameters editorParameters = new EditorParameters(); - _ioHelper = new IOTestHelper(editorParameters.File); ParamsWrapper parameters = new ParamsWrapper { ProcessId = 1, @@ -82,7 +91,8 @@ public void EditorParams_VerifySelectedMonitor() }, }, }; - _ioHelper.WriteData(editorParameters.Serialize(parameters)); + _editorParamsIOHelper = new IOTestHelper(editorParameters.File); + _editorParamsIOHelper.WriteData(editorParameters.Serialize(parameters)); _session = new FancyZonesEditorSession(_context!); @@ -94,7 +104,6 @@ public void EditorParams_VerifySelectedMonitor() public void EditorParams_VerifyMonitorScaling() { EditorParameters editorParameters = new EditorParameters(); - _ioHelper = new IOTestHelper(editorParameters.File); ParamsWrapper parameters = new ParamsWrapper { ProcessId = 1, @@ -119,7 +128,8 @@ public void EditorParams_VerifyMonitorScaling() }, }, }; - _ioHelper.WriteData(editorParameters.Serialize(parameters)); + _editorParamsIOHelper = new IOTestHelper(editorParameters.File); + _editorParamsIOHelper.WriteData(editorParameters.Serialize(parameters)); _session = new FancyZonesEditorSession(_context!); var monitor = _session.GetMonitorItem(1); @@ -131,7 +141,7 @@ public void EditorParams_VerifyMonitorScaling() public void EditorParams_VerifyMonitorResolution() { EditorParameters editorParameters = new EditorParameters(); - _ioHelper = new IOTestHelper(editorParameters.File); + _editorParamsIOHelper = new IOTestHelper(editorParameters.File); ParamsWrapper parameters = new ParamsWrapper { ProcessId = 1, @@ -156,7 +166,7 @@ public void EditorParams_VerifyMonitorResolution() }, }, }; - _ioHelper.WriteData(editorParameters.Serialize(parameters)); + _editorParamsIOHelper.WriteData(editorParameters.Serialize(parameters)); _session = new FancyZonesEditorSession(_context!); var monitor = _session.GetMonitorItem(1); @@ -168,7 +178,7 @@ public void EditorParams_VerifyMonitorResolution() public void EditorParams_SpanAcrossMonitors() { EditorParameters editorParameters = new EditorParameters(); - _ioHelper = new IOTestHelper(editorParameters.File); + _editorParamsIOHelper = new IOTestHelper(editorParameters.File); ParamsWrapper parameters = new ParamsWrapper { ProcessId = 1, @@ -193,7 +203,7 @@ public void EditorParams_SpanAcrossMonitors() }, }, }; - _ioHelper.WriteData(editorParameters.Serialize(parameters)); + _editorParamsIOHelper.WriteData(editorParameters.Serialize(parameters)); _session = new FancyZonesEditorSession(_context!); var monitor = _session.GetMonitorItem(1); From e7e0366e8646e66dbb860a6758a24c866e2c1016 Mon Sep 17 00:00:00 2001 From: seraphima Date: Mon, 20 Nov 2023 22:27:01 +0100 Subject: [PATCH 11/78] template zone number test --- .../UIInitializaionTests.cs | 168 ++++++++++++++++++ 1 file changed, 168 insertions(+) diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializaionTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializaionTests.cs index 6afd480ce05f..be4f451961b4 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializaionTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializaionTests.cs @@ -210,5 +210,173 @@ public void EditorParams_SpanAcrossMonitors() Assert.IsNotNull(monitor); Assert.IsTrue(monitor.Selected); } + + [TestMethod] + public void TemplateLayouts_ZoneNumber() // verify zone numbers are set correctly + { + EditorParameters editorParameters = new EditorParameters(); + ParamsWrapper parameters = new ParamsWrapper + { + ProcessId = 1, + SpanZonesAcrossMonitors = false, + Monitors = new List + { + new NativeMonitorDataWrapper + { + Monitor = "monitor-1", + MonitorInstanceId = "instance-id-1", + MonitorSerialNumber = "serial-number-1", + MonitorNumber = 1, + VirtualDesktop = "{FF34D993-73F3-4B8C-AA03-73730A01D6A8}", + Dpi = 192, + LeftCoordinate = 0, + TopCoordinate = 0, + WorkAreaHeight = 1040, + WorkAreaWidth = 1920, + MonitorHeight = 1080, + MonitorWidth = 1920, + IsSelected = true, + }, + }, + }; + _editorParamsIOHelper = new IOTestHelper(editorParameters.File); + _editorParamsIOHelper.WriteData(editorParameters.Serialize(parameters)); + + LayoutTemplates layoutTemplates = new LayoutTemplates(); + TemplateLayoutsListWrapper list = new TemplateLayoutsListWrapper + { + LayoutTemplates = new List + { + new TemplateLayoutWrapper + { + Type = Constants.LayoutTypes[Constants.Layouts.Empty], + }, + new TemplateLayoutWrapper + { + Type = Constants.LayoutTypes[Constants.Layouts.Focus], + ZoneCount = 10, + }, + new TemplateLayoutWrapper + { + Type = Constants.LayoutTypes[Constants.Layouts.Rows], + ZoneCount = 2, + ShowSpacing = true, + Spacing = 10, + SensitivityRadius = 10, + }, + new TemplateLayoutWrapper + { + Type = Constants.LayoutTypes[Constants.Layouts.Columns], + ZoneCount = 2, + ShowSpacing = true, + Spacing = 20, + SensitivityRadius = 20, + }, + new TemplateLayoutWrapper + { + Type = Constants.LayoutTypes[Constants.Layouts.Grid], + ZoneCount = 4, + ShowSpacing = false, + Spacing = 10, + SensitivityRadius = 30, + }, + new TemplateLayoutWrapper + { + Type = Constants.LayoutTypes[Constants.Layouts.PriorityGrid], + ZoneCount = 3, + ShowSpacing = true, + Spacing = 1, + SensitivityRadius = 40, + }, + }, + }; + _templatesIOHelper = new IOTestHelper(layoutTemplates.File); + _templatesIOHelper.WriteData(layoutTemplates.Serialize(list)); + + // Default layouts should match templates + DefaultLayouts defaultLayouts = new DefaultLayouts(); + DefaultLayoutsListWrapper defaultLayoutsList = new DefaultLayoutsListWrapper + { + DefaultLayouts = new List + { + new DefaultLayoutWrapper + { + MonitorConfiguration = MonitorConfigurationType.Vertical.ToString(), + Layout = new DefaultLayoutWrapper.LayoutWrapper + { + Type = Constants.LayoutTypes[Constants.Layouts.Rows], + ZoneCount = 2, + ShowSpacing = true, + Spacing = 10, + SensitivityRadius = 10, + }, + }, + new DefaultLayoutWrapper + { + MonitorConfiguration = MonitorConfigurationType.Horizontal.ToString(), + Layout = new DefaultLayoutWrapper.LayoutWrapper + { + Type = Constants.LayoutTypes[Constants.Layouts.PriorityGrid], + ZoneCount = 3, + ShowSpacing = true, + Spacing = 1, + SensitivityRadius = 40, + }, + }, + }, + }; + _defaultLayoutsIOHelper = new IOTestHelper(defaultLayouts.File); + _defaultLayoutsIOHelper.WriteData(defaultLayouts.Serialize(defaultLayoutsList)); + + // Make sure applied layouts don't replate template settings + AppliedLayouts appliedLayouts = new AppliedLayouts(); + AppliedLayoutsListWrapper appliedLayoutsList = new AppliedLayoutsListWrapper + { + AppliedLayouts = new List + { + new AppliedLayoutWrapper + { + Device = new AppliedLayoutWrapper.DeviceIdWrapper + { + Monitor = "monitor-1", + MonitorInstance = "instance-id-1", + MonitorNumber = 1, + SerialNumber = "serial-number-1", + VirtualDesktop = "{FF34D993-73F3-4B8C-AA03-73730A01D6A8}", + }, + AppliedLayout = new AppliedLayoutWrapper.LayoutWrapper + { + Type = Constants.LayoutTypes[Constants.Layouts.PriorityGrid], + ZoneCount = 3, + ShowSpacing = true, + Spacing = 1, + SensitivityRadius = 40, + }, + }, + }, + }; + _appliedLayoutsIOHelper = new IOTestHelper(appliedLayouts.File); + _appliedLayoutsIOHelper.WriteData(appliedLayouts.Serialize(appliedLayoutsList)); + + _session = new FancyZonesEditorSession(_context!); + + foreach (var (key, name) in Constants.LayoutNames) + { + if (key == Constants.Layouts.Empty) + { + continue; + } + + _session?.Click_EditLayout(name); + Assert.IsNotNull(_session?.Session?.FindElementsByName($"Edit '{name}'")); + + // Number of zones slider. Possible range is from 1 to 128. Value is 3. + var slider = _session.GetZoneCountSlider(); + var expectedZoneCount = list.LayoutTemplates.Find(x => x.Type == Constants.LayoutTypes[key]).ZoneCount; + Assert.AreEqual($"{expectedZoneCount}", slider.Text); + + _session?.Click_Cancel(); + } + } } } From 13dd37e6a12fe7cd2a3258a47c834da923833f34 Mon Sep 17 00:00:00 2001 From: seraphima Date: Wed, 22 Nov 2023 12:16:38 +0100 Subject: [PATCH 12/78] accessibility ids --- .../Utils/FancyZonesEditorSession.cs | 67 ++++++++++++++++--- 1 file changed, 56 insertions(+), 11 deletions(-) diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs index a95a01d42a4a..b2e5a60e5394 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs @@ -34,6 +34,21 @@ public static FancyZonesEditorFiles Files } } + public static class AccessibilityId + { + // main window + public const string MainWindow = "MainWindow1"; + public const string Monitors = "Monitors"; + public const string NewLayoutButton = "NewLayoutButton"; + + // layout card + public const string EditLayoutButton = "EditLayoutButton"; + + // edit layout window + public const string TemplateZoneSlider = "TemplateZoneCount"; + public const string SensitivitySlider = "SensitivityInput"; + } + public WindowsDriver? Session { get; } public WindowsElement? MainEditorWindow { get; } @@ -116,25 +131,41 @@ public void Close(TestContext testContext) return menu; } + public WindowsElement? GetMonitorsList() + { + return FindByAccessibilityId(AccessibilityId.Monitors); + } + public WindowsElement GetMonitorItem(int monitorNumber) { - var monitorsListView = Session?.FindElementByAccessibilityId("Monitors"); - Assert.IsNotNull(monitorsListView, "Monitors list not found"); - var listItem = monitorsListView?.FindElementByName($"{monitorNumber}"); - Assert.IsNotNull(listItem, "Monitor " + monitorNumber + " not found"); - return (WindowsElement)listItem; + try + { + var monitorsList = GetMonitorsList(); + Assert.IsNotNull(monitorsList, "Monitors list not found"); + var listItem = monitorsList?.FindElementByName($"{monitorNumber}"); + Assert.IsNotNull(listItem, "Monitor " + monitorNumber + " not found"); + return (WindowsElement)listItem; + } + catch (Exception) + { + Assert.Fail("Monitor " + monitorNumber + " not found"); + return null; + } + } + + public WindowsElement? GetZoneCountSlider() + { + return FindByAccessibilityId(AccessibilityId.TemplateZoneSlider); } - public WindowsElement GetZoneCountSlider() + public WindowsElement? GetSensitivitySlider() { - var element = Session?.FindElementByAccessibilityId("TemplateZoneCount"); - Assert.IsNotNull(element, "Template zone count slider not found"); - return element; + return FindByAccessibilityId(AccessibilityId.SensitivitySlider); } public void Click_CreateNewLayout() { - var button = Session?.FindElementByAccessibilityId("NewLayoutButton"); + var button = FindByAccessibilityId(AccessibilityId.NewLayoutButton); Assert.IsNotNull(button, "Create new layout button not found"); button?.Click(); } @@ -142,7 +173,8 @@ public void Click_CreateNewLayout() public void Click_EditLayout(string layoutName) { var layout = GetLayout(layoutName); - var editButton = layout?.FindElementByAccessibilityId("EditLayoutButton"); + Assert.IsNotNull(layout, $"Layout {layoutName} not found"); + var editButton = layout?.FindElementByAccessibilityId(AccessibilityId.EditLayoutButton); Assert.IsNotNull(editButton, "Edit button not found"); editButton.Click(); } @@ -173,6 +205,19 @@ public void Click_Cancel() button.Click(); } + private WindowsElement? FindByAccessibilityId(string name) + { + try + { + return Session?.FindElementByAccessibilityId(name); + } + catch (Exception) + { + Assert.Fail($"{name} not found"); + return null; + } + } + private void ClickItem(WindowsElement element) { Actions actions = new Actions(Session); From f06558da86194fa5147983c7dbf673ade75b9332 Mon Sep 17 00:00:00 2001 From: seraphima Date: Wed, 22 Nov 2023 12:16:47 +0100 Subject: [PATCH 13/78] wait --- .../Utils/FancyZonesEditorSession.cs | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs index b2e5a60e5394..ac2d2a867714 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs @@ -11,6 +11,7 @@ using OpenQA.Selenium.Appium; using OpenQA.Selenium.Appium.Windows; using OpenQA.Selenium.Interactions; +using OpenQA.Selenium.Support.UI; namespace Microsoft.FancyZonesEditor.UnitTests.Utils { @@ -177,6 +178,26 @@ public void Click_EditLayout(string layoutName) var editButton = layout?.FindElementByAccessibilityId(AccessibilityId.EditLayoutButton); Assert.IsNotNull(editButton, "Edit button not found"); editButton.Click(); + + // wait until the dialog is opened + WebDriverWait wait = new WebDriverWait(Session, TimeSpan.FromSeconds(1)); + wait.Until(pred => + { + bool displayed = false; + try + { + var element = Session?.FindElementByName($"Edit '{layoutName}'"); + if (element != null) + { + displayed = element.Displayed; + } + } + catch + { + } + + return displayed; + }); } public void RightClick_Layout(string layoutName) From becb361f899bb4ff29c7e8442446414edf19035a Mon Sep 17 00:00:00 2001 From: seraphima Date: Wed, 22 Nov 2023 13:27:51 +0100 Subject: [PATCH 14/78] template layouts tests --- .../UIInitializaionTests.cs | 177 ----------- .../UIInitializationTests_TemplateLayouts.cs | 281 ++++++++++++++++++ .../Utils/FancyZonesEditorSession.cs | 14 +- 3 files changed, 294 insertions(+), 178 deletions(-) create mode 100644 src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializationTests_TemplateLayouts.cs diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializaionTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializaionTests.cs index be4f451961b4..6f5fd8fa1bec 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializaionTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializaionTests.cs @@ -7,10 +7,7 @@ using Microsoft.FancyZonesEditor.UITests.Utils; using Microsoft.FancyZonesEditor.UnitTests.Utils; using Microsoft.VisualStudio.TestTools.UnitTesting; -using static FancyZonesEditorCommon.Data.AppliedLayouts; -using static FancyZonesEditorCommon.Data.DefaultLayouts; using static FancyZonesEditorCommon.Data.EditorParameters; -using static FancyZonesEditorCommon.Data.LayoutTemplates; namespace Microsoft.FancyZonesEditor.UITests { @@ -20,9 +17,6 @@ public class UIInitializaionTests private static TestContext? _context; private static FancyZonesEditorSession? _session; private static IOTestHelper? _editorParamsIOHelper; - private static IOTestHelper? _templatesIOHelper; - private static IOTestHelper? _defaultLayoutsIOHelper; - private static IOTestHelper? _appliedLayoutsIOHelper; [ClassInitialize] public static void ClassInitialize(TestContext testContext) @@ -42,9 +36,6 @@ public void TestCleanup() _session?.Close(_context!); _editorParamsIOHelper?.RestoreData(); - _templatesIOHelper?.RestoreData(); - _defaultLayoutsIOHelper?.RestoreData(); - _appliedLayoutsIOHelper?.RestoreData(); } [TestMethod] @@ -210,173 +201,5 @@ public void EditorParams_SpanAcrossMonitors() Assert.IsNotNull(monitor); Assert.IsTrue(monitor.Selected); } - - [TestMethod] - public void TemplateLayouts_ZoneNumber() // verify zone numbers are set correctly - { - EditorParameters editorParameters = new EditorParameters(); - ParamsWrapper parameters = new ParamsWrapper - { - ProcessId = 1, - SpanZonesAcrossMonitors = false, - Monitors = new List - { - new NativeMonitorDataWrapper - { - Monitor = "monitor-1", - MonitorInstanceId = "instance-id-1", - MonitorSerialNumber = "serial-number-1", - MonitorNumber = 1, - VirtualDesktop = "{FF34D993-73F3-4B8C-AA03-73730A01D6A8}", - Dpi = 192, - LeftCoordinate = 0, - TopCoordinate = 0, - WorkAreaHeight = 1040, - WorkAreaWidth = 1920, - MonitorHeight = 1080, - MonitorWidth = 1920, - IsSelected = true, - }, - }, - }; - _editorParamsIOHelper = new IOTestHelper(editorParameters.File); - _editorParamsIOHelper.WriteData(editorParameters.Serialize(parameters)); - - LayoutTemplates layoutTemplates = new LayoutTemplates(); - TemplateLayoutsListWrapper list = new TemplateLayoutsListWrapper - { - LayoutTemplates = new List - { - new TemplateLayoutWrapper - { - Type = Constants.LayoutTypes[Constants.Layouts.Empty], - }, - new TemplateLayoutWrapper - { - Type = Constants.LayoutTypes[Constants.Layouts.Focus], - ZoneCount = 10, - }, - new TemplateLayoutWrapper - { - Type = Constants.LayoutTypes[Constants.Layouts.Rows], - ZoneCount = 2, - ShowSpacing = true, - Spacing = 10, - SensitivityRadius = 10, - }, - new TemplateLayoutWrapper - { - Type = Constants.LayoutTypes[Constants.Layouts.Columns], - ZoneCount = 2, - ShowSpacing = true, - Spacing = 20, - SensitivityRadius = 20, - }, - new TemplateLayoutWrapper - { - Type = Constants.LayoutTypes[Constants.Layouts.Grid], - ZoneCount = 4, - ShowSpacing = false, - Spacing = 10, - SensitivityRadius = 30, - }, - new TemplateLayoutWrapper - { - Type = Constants.LayoutTypes[Constants.Layouts.PriorityGrid], - ZoneCount = 3, - ShowSpacing = true, - Spacing = 1, - SensitivityRadius = 40, - }, - }, - }; - _templatesIOHelper = new IOTestHelper(layoutTemplates.File); - _templatesIOHelper.WriteData(layoutTemplates.Serialize(list)); - - // Default layouts should match templates - DefaultLayouts defaultLayouts = new DefaultLayouts(); - DefaultLayoutsListWrapper defaultLayoutsList = new DefaultLayoutsListWrapper - { - DefaultLayouts = new List - { - new DefaultLayoutWrapper - { - MonitorConfiguration = MonitorConfigurationType.Vertical.ToString(), - Layout = new DefaultLayoutWrapper.LayoutWrapper - { - Type = Constants.LayoutTypes[Constants.Layouts.Rows], - ZoneCount = 2, - ShowSpacing = true, - Spacing = 10, - SensitivityRadius = 10, - }, - }, - new DefaultLayoutWrapper - { - MonitorConfiguration = MonitorConfigurationType.Horizontal.ToString(), - Layout = new DefaultLayoutWrapper.LayoutWrapper - { - Type = Constants.LayoutTypes[Constants.Layouts.PriorityGrid], - ZoneCount = 3, - ShowSpacing = true, - Spacing = 1, - SensitivityRadius = 40, - }, - }, - }, - }; - _defaultLayoutsIOHelper = new IOTestHelper(defaultLayouts.File); - _defaultLayoutsIOHelper.WriteData(defaultLayouts.Serialize(defaultLayoutsList)); - - // Make sure applied layouts don't replate template settings - AppliedLayouts appliedLayouts = new AppliedLayouts(); - AppliedLayoutsListWrapper appliedLayoutsList = new AppliedLayoutsListWrapper - { - AppliedLayouts = new List - { - new AppliedLayoutWrapper - { - Device = new AppliedLayoutWrapper.DeviceIdWrapper - { - Monitor = "monitor-1", - MonitorInstance = "instance-id-1", - MonitorNumber = 1, - SerialNumber = "serial-number-1", - VirtualDesktop = "{FF34D993-73F3-4B8C-AA03-73730A01D6A8}", - }, - AppliedLayout = new AppliedLayoutWrapper.LayoutWrapper - { - Type = Constants.LayoutTypes[Constants.Layouts.PriorityGrid], - ZoneCount = 3, - ShowSpacing = true, - Spacing = 1, - SensitivityRadius = 40, - }, - }, - }, - }; - _appliedLayoutsIOHelper = new IOTestHelper(appliedLayouts.File); - _appliedLayoutsIOHelper.WriteData(appliedLayouts.Serialize(appliedLayoutsList)); - - _session = new FancyZonesEditorSession(_context!); - - foreach (var (key, name) in Constants.LayoutNames) - { - if (key == Constants.Layouts.Empty) - { - continue; - } - - _session?.Click_EditLayout(name); - Assert.IsNotNull(_session?.Session?.FindElementsByName($"Edit '{name}'")); - - // Number of zones slider. Possible range is from 1 to 128. Value is 3. - var slider = _session.GetZoneCountSlider(); - var expectedZoneCount = list.LayoutTemplates.Find(x => x.Type == Constants.LayoutTypes[key]).ZoneCount; - Assert.AreEqual($"{expectedZoneCount}", slider.Text); - - _session?.Click_Cancel(); - } - } } } diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializationTests_TemplateLayouts.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializationTests_TemplateLayouts.cs new file mode 100644 index 000000000000..ddf033816d65 --- /dev/null +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializationTests_TemplateLayouts.cs @@ -0,0 +1,281 @@ +// Copyright (c) Microsoft Corporation +// The Microsoft Corporation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System; +using System.Collections.Generic; +using FancyZonesEditorCommon.Data; +using Microsoft.FancyZonesEditor.UITests.Utils; +using Microsoft.FancyZonesEditor.UnitTests.Utils; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using OpenQA.Selenium.Support.UI; +using static FancyZonesEditorCommon.Data.AppliedLayouts; +using static FancyZonesEditorCommon.Data.DefaultLayouts; +using static FancyZonesEditorCommon.Data.EditorParameters; +using static FancyZonesEditorCommon.Data.LayoutTemplates; + +namespace Microsoft.FancyZonesEditor.UITests +{ + [TestClass] + public class UIInitializationTests_TemplateLayouts + { + private static readonly TemplateLayoutsListWrapper Layouts = new TemplateLayoutsListWrapper + { + LayoutTemplates = new List + { + new TemplateLayoutWrapper + { + Type = Constants.LayoutTypes[Constants.Layouts.Empty], + }, + new TemplateLayoutWrapper + { + Type = Constants.LayoutTypes[Constants.Layouts.Focus], + ZoneCount = 10, + }, + new TemplateLayoutWrapper + { + Type = Constants.LayoutTypes[Constants.Layouts.Rows], + ZoneCount = 2, + ShowSpacing = true, + Spacing = 10, + SensitivityRadius = 10, + }, + new TemplateLayoutWrapper + { + Type = Constants.LayoutTypes[Constants.Layouts.Columns], + ZoneCount = 2, + ShowSpacing = true, + Spacing = 20, + SensitivityRadius = 20, + }, + new TemplateLayoutWrapper + { + Type = Constants.LayoutTypes[Constants.Layouts.Grid], + ZoneCount = 4, + ShowSpacing = false, + Spacing = 10, + SensitivityRadius = 30, + }, + new TemplateLayoutWrapper + { + Type = Constants.LayoutTypes[Constants.Layouts.PriorityGrid], + ZoneCount = 3, + ShowSpacing = true, + Spacing = 1, + SensitivityRadius = 40, + }, + }, + }; + + private static TestContext? _context; + private static FancyZonesEditorSession? _session; + private static IOTestHelper? _editorParamsIOHelper; + private static IOTestHelper? _templatesIOHelper; + private static IOTestHelper? _defaultLayoutsIOHelper; + private static IOTestHelper? _appliedLayoutsIOHelper; + + [ClassInitialize] + public static void ClassInitialize(TestContext testContext) + { + _context = testContext; + + EditorParameters editorParameters = new EditorParameters(); + ParamsWrapper parameters = new ParamsWrapper + { + ProcessId = 1, + SpanZonesAcrossMonitors = false, + Monitors = new List + { + new NativeMonitorDataWrapper + { + Monitor = "monitor-1", + MonitorInstanceId = "instance-id-1", + MonitorSerialNumber = "serial-number-1", + MonitorNumber = 1, + VirtualDesktop = "{FF34D993-73F3-4B8C-AA03-73730A01D6A8}", + Dpi = 192, + LeftCoordinate = 0, + TopCoordinate = 0, + WorkAreaHeight = 1040, + WorkAreaWidth = 1920, + MonitorHeight = 1080, + MonitorWidth = 1920, + IsSelected = true, + }, + }, + }; + _editorParamsIOHelper = new IOTestHelper(editorParameters.File); + _editorParamsIOHelper.WriteData(editorParameters.Serialize(parameters)); + + LayoutTemplates layoutTemplates = new LayoutTemplates(); + _templatesIOHelper = new IOTestHelper(layoutTemplates.File); + _templatesIOHelper.WriteData(layoutTemplates.Serialize(Layouts)); + + // Default layouts should match templates + DefaultLayouts defaultLayouts = new DefaultLayouts(); + DefaultLayoutsListWrapper defaultLayoutsList = new DefaultLayoutsListWrapper + { + DefaultLayouts = new List + { + new DefaultLayoutWrapper + { + MonitorConfiguration = MonitorConfigurationType.Vertical.ToString(), + Layout = new DefaultLayoutWrapper.LayoutWrapper + { + Type = Constants.LayoutTypes[Constants.Layouts.Rows], + ZoneCount = 2, + ShowSpacing = true, + Spacing = 10, + SensitivityRadius = 10, + }, + }, + new DefaultLayoutWrapper + { + MonitorConfiguration = MonitorConfigurationType.Horizontal.ToString(), + Layout = new DefaultLayoutWrapper.LayoutWrapper + { + Type = Constants.LayoutTypes[Constants.Layouts.PriorityGrid], + ZoneCount = 3, + ShowSpacing = true, + Spacing = 1, + SensitivityRadius = 40, + }, + }, + }, + }; + _defaultLayoutsIOHelper = new IOTestHelper(defaultLayouts.File); + _defaultLayoutsIOHelper.WriteData(defaultLayouts.Serialize(defaultLayoutsList)); + + // Make sure applied layouts don't replate template settings + AppliedLayouts appliedLayouts = new AppliedLayouts(); + AppliedLayoutsListWrapper appliedLayoutsList = new AppliedLayoutsListWrapper + { + AppliedLayouts = new List + { + new AppliedLayoutWrapper + { + Device = new AppliedLayoutWrapper.DeviceIdWrapper + { + Monitor = "monitor-1", + MonitorInstance = "instance-id-1", + MonitorNumber = 1, + SerialNumber = "serial-number-1", + VirtualDesktop = "{FF34D993-73F3-4B8C-AA03-73730A01D6A8}", + }, + AppliedLayout = new AppliedLayoutWrapper.LayoutWrapper + { + Type = Constants.LayoutTypes[Constants.Layouts.PriorityGrid], + ZoneCount = 3, + ShowSpacing = true, + Spacing = 1, + SensitivityRadius = 40, + }, + }, + }, + }; + _appliedLayoutsIOHelper = new IOTestHelper(appliedLayouts.File); + _appliedLayoutsIOHelper.WriteData(appliedLayouts.Serialize(appliedLayoutsList)); + } + + [ClassCleanup] + public static void ClassCleanup() + { + _editorParamsIOHelper?.RestoreData(); + _templatesIOHelper?.RestoreData(); + _defaultLayoutsIOHelper?.RestoreData(); + _appliedLayoutsIOHelper?.RestoreData(); + + _context = null; + } + + [TestInitialize] + public void TestInitialize() + { + _session = new FancyZonesEditorSession(_context!); + } + + [TestCleanup] + public void TestCleanup() + { + _session?.Close(_context!); + } + + [TestMethod] + public void ZoneNumber() + { + foreach (var (key, name) in Constants.LayoutNames) + { + if (key == Constants.Layouts.Empty) + { + continue; + } + + _session?.Click_EditLayout(name); + + var slider = _session?.GetZoneCountSlider(); + var expected = Layouts.LayoutTemplates.Find(x => x.Type == Constants.LayoutTypes[key]).ZoneCount; + Assert.AreEqual($"{expected}", slider?.Text); + + _session?.Click_Cancel(); + + // let the dialog window close + WebDriverWait wait = new WebDriverWait(_session?.Session, TimeSpan.FromSeconds(1)); + wait.Timeout = TimeSpan.FromSeconds(0.5); + } + } + + [TestMethod] + public void HighlightDistance() + { + foreach (var (key, name) in Constants.LayoutNames) + { + if (key == Constants.Layouts.Empty) + { + continue; + } + + _session?.Click_EditLayout(name); + + var slider = _session?.GetSensitivitySlider(); + var expected = Layouts.LayoutTemplates.Find(x => x.Type == Constants.LayoutTypes[key]).SensitivityRadius; + Assert.AreEqual($"{expected}", slider?.Text); + + _session?.Click_Cancel(); + + // let the dialog window close + WebDriverWait wait = new WebDriverWait(_session?.Session, TimeSpan.FromSeconds(1)); + wait.Timeout = TimeSpan.FromSeconds(0.5); + } + } + + [TestMethod] + public void SpaceAroundZones() + { + foreach (var (key, name) in Constants.LayoutNames) + { + if (key == Constants.Layouts.Empty || key == Constants.Layouts.Focus) + { + // only for grid layouts + continue; + } + + _session?.Click_EditLayout(name); + + var toggle = _session?.GetSpaceAroundZonesToggle(); + var slider = _session?.GetSpaceAroudZonesSlider(); + + var spacingEnabled = Layouts.LayoutTemplates.Find(x => x.Type == Constants.LayoutTypes[key]).ShowSpacing; + Assert.AreEqual(spacingEnabled, slider?.Enabled); + + var expected = Layouts.LayoutTemplates.Find(x => x.Type == Constants.LayoutTypes[key]).Spacing; + Assert.AreEqual($"{expected}", slider?.Text); + + _session?.Click_Cancel(); + + // let the dialog window close + WebDriverWait wait = new WebDriverWait(_session?.Session, TimeSpan.FromSeconds(1)); + wait.Timeout = TimeSpan.FromSeconds(0.5); + } + } + } +} diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs index ac2d2a867714..f6df1f45cf2d 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs @@ -45,9 +45,11 @@ public static class AccessibilityId // layout card public const string EditLayoutButton = "EditLayoutButton"; - // edit layout window + // edit template layout window public const string TemplateZoneSlider = "TemplateZoneCount"; public const string SensitivitySlider = "SensitivityInput"; + public const string SpacingSlider = "Spacing"; + public const string SpacingToggle = "spaceAroundSetting"; } public WindowsDriver? Session { get; } @@ -164,6 +166,16 @@ public WindowsElement GetMonitorItem(int monitorNumber) return FindByAccessibilityId(AccessibilityId.SensitivitySlider); } + public WindowsElement? GetSpaceAroudZonesSlider() + { + return FindByAccessibilityId(AccessibilityId.SpacingSlider); + } + + public WindowsElement? GetSpaceAroundZonesToggle() + { + return FindByAccessibilityId(AccessibilityId.SpacingToggle); + } + public void Click_CreateNewLayout() { var button = FindByAccessibilityId(AccessibilityId.NewLayoutButton); From bdf44292af5b811b2f66c6d69156838c272b27f8 Mon Sep 17 00:00:00 2001 From: seraphima Date: Thu, 23 Nov 2023 14:19:33 +0100 Subject: [PATCH 15/78] rename test class --- ...lizationTests_TemplateLayouts.cs => TemplateLayoutsTests.cs} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename src/modules/fancyzones/UITests-FancyZonesEditor/{UIInitializationTests_TemplateLayouts.cs => TemplateLayoutsTests.cs} (99%) diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializationTests_TemplateLayouts.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs similarity index 99% rename from src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializationTests_TemplateLayouts.cs rename to src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs index ddf033816d65..f79d1c60ee4c 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializationTests_TemplateLayouts.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs @@ -17,7 +17,7 @@ namespace Microsoft.FancyZonesEditor.UITests { [TestClass] - public class UIInitializationTests_TemplateLayouts + public class TemplateLayoutsTests { private static readonly TemplateLayoutsListWrapper Layouts = new TemplateLayoutsListWrapper { From 4a7024b854a9c9b644608a9671793928cf6973da Mon Sep 17 00:00:00 2001 From: seraphima Date: Fri, 22 Mar 2024 14:17:46 +0100 Subject: [PATCH 16/78] rename template layouts constants --- .../TemplateLayoutsTests.cs | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs index f79d1c60ee4c..3c8a640c4658 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs @@ -25,16 +25,16 @@ public class TemplateLayoutsTests { new TemplateLayoutWrapper { - Type = Constants.LayoutTypes[Constants.Layouts.Empty], + Type = Constants.TemplateLayoutJsonTags[Constants.TemplateLayout.Empty], }, new TemplateLayoutWrapper { - Type = Constants.LayoutTypes[Constants.Layouts.Focus], + Type = Constants.TemplateLayoutJsonTags[Constants.TemplateLayout.Focus], ZoneCount = 10, }, new TemplateLayoutWrapper { - Type = Constants.LayoutTypes[Constants.Layouts.Rows], + Type = Constants.TemplateLayoutJsonTags[Constants.TemplateLayout.Rows], ZoneCount = 2, ShowSpacing = true, Spacing = 10, @@ -42,7 +42,7 @@ public class TemplateLayoutsTests }, new TemplateLayoutWrapper { - Type = Constants.LayoutTypes[Constants.Layouts.Columns], + Type = Constants.TemplateLayoutJsonTags[Constants.TemplateLayout.Columns], ZoneCount = 2, ShowSpacing = true, Spacing = 20, @@ -50,7 +50,7 @@ public class TemplateLayoutsTests }, new TemplateLayoutWrapper { - Type = Constants.LayoutTypes[Constants.Layouts.Grid], + Type = Constants.TemplateLayoutJsonTags[Constants.TemplateLayout.Grid], ZoneCount = 4, ShowSpacing = false, Spacing = 10, @@ -58,7 +58,7 @@ public class TemplateLayoutsTests }, new TemplateLayoutWrapper { - Type = Constants.LayoutTypes[Constants.Layouts.PriorityGrid], + Type = Constants.TemplateLayoutJsonTags[Constants.TemplateLayout.PriorityGrid], ZoneCount = 3, ShowSpacing = true, Spacing = 1, @@ -122,7 +122,7 @@ public static void ClassInitialize(TestContext testContext) MonitorConfiguration = MonitorConfigurationType.Vertical.ToString(), Layout = new DefaultLayoutWrapper.LayoutWrapper { - Type = Constants.LayoutTypes[Constants.Layouts.Rows], + Type = Constants.TemplateLayoutJsonTags[Constants.TemplateLayout.Rows], ZoneCount = 2, ShowSpacing = true, Spacing = 10, @@ -134,7 +134,7 @@ public static void ClassInitialize(TestContext testContext) MonitorConfiguration = MonitorConfigurationType.Horizontal.ToString(), Layout = new DefaultLayoutWrapper.LayoutWrapper { - Type = Constants.LayoutTypes[Constants.Layouts.PriorityGrid], + Type = Constants.TemplateLayoutJsonTags[Constants.TemplateLayout.PriorityGrid], ZoneCount = 3, ShowSpacing = true, Spacing = 1, @@ -164,7 +164,7 @@ public static void ClassInitialize(TestContext testContext) }, AppliedLayout = new AppliedLayoutWrapper.LayoutWrapper { - Type = Constants.LayoutTypes[Constants.Layouts.PriorityGrid], + Type = Constants.TemplateLayoutJsonTags[Constants.TemplateLayout.PriorityGrid], ZoneCount = 3, ShowSpacing = true, Spacing = 1, @@ -203,9 +203,9 @@ public void TestCleanup() [TestMethod] public void ZoneNumber() { - foreach (var (key, name) in Constants.LayoutNames) + foreach (var (key, name) in TestConstants.TemplateLayoutNames) { - if (key == Constants.Layouts.Empty) + if (key == Constants.TemplateLayout.Empty) { continue; } @@ -213,7 +213,7 @@ public void ZoneNumber() _session?.Click_EditLayout(name); var slider = _session?.GetZoneCountSlider(); - var expected = Layouts.LayoutTemplates.Find(x => x.Type == Constants.LayoutTypes[key]).ZoneCount; + var expected = Layouts.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutJsonTags[key]).ZoneCount; Assert.AreEqual($"{expected}", slider?.Text); _session?.Click_Cancel(); @@ -227,9 +227,9 @@ public void ZoneNumber() [TestMethod] public void HighlightDistance() { - foreach (var (key, name) in Constants.LayoutNames) + foreach (var (key, name) in TestConstants.TemplateLayoutNames) { - if (key == Constants.Layouts.Empty) + if (key == Constants.TemplateLayout.Empty) { continue; } @@ -237,7 +237,7 @@ public void HighlightDistance() _session?.Click_EditLayout(name); var slider = _session?.GetSensitivitySlider(); - var expected = Layouts.LayoutTemplates.Find(x => x.Type == Constants.LayoutTypes[key]).SensitivityRadius; + var expected = Layouts.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutJsonTags[key]).SensitivityRadius; Assert.AreEqual($"{expected}", slider?.Text); _session?.Click_Cancel(); @@ -251,9 +251,9 @@ public void HighlightDistance() [TestMethod] public void SpaceAroundZones() { - foreach (var (key, name) in Constants.LayoutNames) + foreach (var (key, name) in TestConstants.TemplateLayoutNames) { - if (key == Constants.Layouts.Empty || key == Constants.Layouts.Focus) + if (key == Constants.TemplateLayout.Empty || key == Constants.TemplateLayout.Focus) { // only for grid layouts continue; @@ -264,10 +264,10 @@ public void SpaceAroundZones() var toggle = _session?.GetSpaceAroundZonesToggle(); var slider = _session?.GetSpaceAroudZonesSlider(); - var spacingEnabled = Layouts.LayoutTemplates.Find(x => x.Type == Constants.LayoutTypes[key]).ShowSpacing; + var spacingEnabled = Layouts.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutJsonTags[key]).ShowSpacing; Assert.AreEqual(spacingEnabled, slider?.Enabled); - var expected = Layouts.LayoutTemplates.Find(x => x.Type == Constants.LayoutTypes[key]).Spacing; + var expected = Layouts.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutJsonTags[key]).Spacing; Assert.AreEqual($"{expected}", slider?.Text); _session?.Click_Cancel(); From 9474a55f9a3cad8b40272f0cc0e40bc8850c04e8 Mon Sep 17 00:00:00 2001 From: seraphima Date: Fri, 24 Nov 2023 13:30:24 +0100 Subject: [PATCH 17/78] wait --- .../TemplateLayoutsTests.cs | 6 +- .../Utils/FancyZonesEditorSession.cs | 69 ++++++++++++++----- 2 files changed, 53 insertions(+), 22 deletions(-) diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs index 3c8a640c4658..7d374535c8b5 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs @@ -243,8 +243,7 @@ public void HighlightDistance() _session?.Click_Cancel(); // let the dialog window close - WebDriverWait wait = new WebDriverWait(_session?.Session, TimeSpan.FromSeconds(1)); - wait.Timeout = TimeSpan.FromSeconds(0.5); + _session?.WaitFor(0.5f); } } @@ -273,8 +272,7 @@ public void SpaceAroundZones() _session?.Click_Cancel(); // let the dialog window close - WebDriverWait wait = new WebDriverWait(_session?.Session, TimeSpan.FromSeconds(1)); - wait.Timeout = TimeSpan.FromSeconds(0.5); + _session?.WaitFor(0.5f); } } } diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs index f6df1f45cf2d..4d029f6c6885 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs @@ -192,24 +192,7 @@ public void Click_EditLayout(string layoutName) editButton.Click(); // wait until the dialog is opened - WebDriverWait wait = new WebDriverWait(Session, TimeSpan.FromSeconds(1)); - wait.Until(pred => - { - bool displayed = false; - try - { - var element = Session?.FindElementByName($"Edit '{layoutName}'"); - if (element != null) - { - displayed = element.Displayed; - } - } - catch - { - } - - return displayed; - }); + WaitElementDisplayedByName($"Edit '{layoutName}'"); } public void RightClick_Layout(string layoutName) @@ -251,6 +234,56 @@ public void Click_Cancel() } } + public void WaitElementDisplayedByName(string name) + { + WebDriverWait wait = new WebDriverWait(Session, TimeSpan.FromSeconds(1)); + wait.Until(pred => + { + bool displayed = false; + try + { + var element = Session?.FindElementByName(name); + if (element != null) + { + displayed = element.Displayed; + } + } + catch + { + } + + return displayed; + }); + } + + public void WaitElementDisplayedById(string id) + { + WebDriverWait wait = new WebDriverWait(Session, TimeSpan.FromSeconds(1)); + wait.Until(pred => + { + bool displayed = false; + try + { + var element = Session?.FindElementByAccessibilityId(id); + if (element != null) + { + displayed = element.Displayed; + } + } + catch + { + } + + return displayed; + }); + } + + public void WaitFor(float seconds) + { + WebDriverWait wait = new WebDriverWait(Session, TimeSpan.FromSeconds(seconds * 2)); + wait.Timeout = TimeSpan.FromSeconds(seconds); + } + private void ClickItem(WindowsElement element) { Actions actions = new Actions(Session); From fc959717efe3b8ce5bed7f563271d294cd103afe Mon Sep 17 00:00:00 2001 From: seraphima Date: Fri, 24 Nov 2023 14:29:19 +0100 Subject: [PATCH 18/78] replace assert when searching a layout --- .../Utils/FancyZonesEditorSession.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs index 4d029f6c6885..a295b279a9f1 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs @@ -19,6 +19,7 @@ public class FancyZonesEditorSession { protected const string WindowsApplicationDriverUrl = "http://127.0.0.1:4723"; private const string FancyZonesEditorPath = @"\..\..\..\PowerToys.FancyZonesEditor.exe"; + private TestContext context; private static FancyZonesEditorFiles? _files; @@ -90,6 +91,8 @@ public FancyZonesEditorSession(TestContext testContext) { Assert.IsNotNull(MainEditorWindow, "Main editor window not found"); } + + context = testContext; } public void Close(TestContext testContext) @@ -121,7 +124,7 @@ public void Close(TestContext testContext) } catch (Exception) { - Assert.Fail("Layout " + layoutName + " not found"); + context.WriteLine("Layout " + layoutName + " not found"); return null; } } From 4fe650e381f1a0f06d34018353fd539a62663e1c Mon Sep 17 00:00:00 2001 From: seraphima Date: Fri, 24 Nov 2023 14:29:52 +0100 Subject: [PATCH 19/78] spelling --- .../fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs | 2 +- .../UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs index 7d374535c8b5..33c66ea77e39 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs @@ -261,7 +261,7 @@ public void SpaceAroundZones() _session?.Click_EditLayout(name); var toggle = _session?.GetSpaceAroundZonesToggle(); - var slider = _session?.GetSpaceAroudZonesSlider(); + var slider = _session?.GetSpaceAroundZonesSlider(); var spacingEnabled = Layouts.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutJsonTags[key]).ShowSpacing; Assert.AreEqual(spacingEnabled, slider?.Enabled); diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs index a295b279a9f1..223e97fe3078 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs @@ -169,7 +169,7 @@ public WindowsElement GetMonitorItem(int monitorNumber) return FindByAccessibilityId(AccessibilityId.SensitivitySlider); } - public WindowsElement? GetSpaceAroudZonesSlider() + public WindowsElement? GetSpaceAroundZonesSlider() { return FindByAccessibilityId(AccessibilityId.SpacingSlider); } From c6db64b7ee9fb4132361554e33cb6a21707909e0 Mon Sep 17 00:00:00 2001 From: seraphima Date: Fri, 24 Nov 2023 14:30:15 +0100 Subject: [PATCH 20/78] custom layouts tests --- .../UITests-FancyZonesEditor/Constants.cs | 53 +++ .../CustomLayoutsTests.cs | 408 ++++++++++++++++++ .../Utils/FancyZonesEditorSession.cs | 27 +- 3 files changed, 486 insertions(+), 2 deletions(-) create mode 100644 src/modules/fancyzones/UITests-FancyZonesEditor/Constants.cs create mode 100644 src/modules/fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/Constants.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/Constants.cs new file mode 100644 index 000000000000..467dcf3ed8f8 --- /dev/null +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/Constants.cs @@ -0,0 +1,53 @@ +// Copyright (c) Microsoft Corporation +// The Microsoft Corporation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System.Collections.Generic; + +namespace Microsoft.FancyZonesEditor.UITests +{ + public static class Constants + { + public enum TemplateLayouts + { + Empty, + Focus, + Rows, + Columns, + Grid, + PriorityGrid, + } + + public static readonly Dictionary TemplateLayoutNames = new Dictionary() + { + { TemplateLayouts.Empty, "No layout" }, + { TemplateLayouts.Focus, "Focus" }, + { TemplateLayouts.Rows, "Rows" }, + { TemplateLayouts.Columns, "Columns" }, + { TemplateLayouts.Grid, "Grid" }, + { TemplateLayouts.PriorityGrid, "Priority Grid" }, + }; + + public static readonly Dictionary TemplateLayoutTypes = new Dictionary() + { + { TemplateLayouts.Empty, "blank" }, + { TemplateLayouts.Focus, "focus" }, + { TemplateLayouts.Rows, "rows" }, + { TemplateLayouts.Columns, "columns" }, + { TemplateLayouts.Grid, "grid" }, + { TemplateLayouts.PriorityGrid, "priority-grid" }, + }; + + public enum CustomLayoutType + { + Canvas, + Grid, + } + + public static readonly Dictionary CustomLayoutTypeNames = new Dictionary() + { + { CustomLayoutType.Canvas, "canvas" }, + { CustomLayoutType.Grid, "grid" }, + }; + } +} diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs new file mode 100644 index 000000000000..5f063389e007 --- /dev/null +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs @@ -0,0 +1,408 @@ +// Copyright (c) Microsoft Corporation +// The Microsoft Corporation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System.Collections.Generic; +using FancyZonesEditorCommon.Data; +using Microsoft.FancyZonesEditor.UITests.Utils; +using Microsoft.FancyZonesEditor.UnitTests.Utils; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using OpenQA.Selenium; +using static FancyZonesEditorCommon.Data.CustomLayouts; +using static FancyZonesEditorCommon.Data.EditorParameters; + +namespace Microsoft.FancyZonesEditor.UITests +{ + [TestClass] + public class CustomLayoutsTests + { + private static readonly CustomLayoutListWrapper Layouts = new CustomLayoutListWrapper + { + CustomLayouts = new List + { + new CustomLayoutWrapper + { + Uuid = "{0D6D2F58-9184-4804-81E4-4E4CC3476DC1}", + Type = Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Grid], + Name = "Grid custom layout", + Info = new CustomLayouts().ToJsonElement(new GridInfoWrapper + { + Rows = 2, + Columns = 3, + RowsPercentage = new List { 2967, 7033 }, + ColumnsPercentage = new List { 2410, 6040, 1550 }, + CellChildMap = new int[][] { new int[] { 0, 1, 1 }, new int[] { 0, 2, 3 } }, + SensitivityRadius = 30, + Spacing = 26, + ShowSpacing = false, + }), + }, + new CustomLayoutWrapper + { + Uuid = "{E7807D0D-6223-4883-B15B-1F3883944C09}", + Type = Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas], + Name = "Canvas custom layout", + Info = new CustomLayouts().ToJsonElement(new CanvasInfoWrapper + { + RefHeight = 952, + RefWidth = 1500, + SensitivityRadius = 10, + Zones = new List + { + new CanvasInfoWrapper.CanvasZoneWrapper + { + X = 0, + Y = 0, + Width = 900, + Height = 522, + }, + new CanvasInfoWrapper.CanvasZoneWrapper + { + X = 900, + Y = 0, + Width = 600, + Height = 750, + }, + new CanvasInfoWrapper.CanvasZoneWrapper + { + X = 0, + Y = 522, + Width = 1500, + Height = 430, + }, + }, + }), + }, + new CustomLayoutWrapper + { + Uuid = "{F1A94F38-82B6-4876-A653-70D0E882DE2A}", + Type = Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Grid], + Name = "Grid custom layout spacing enabled", + Info = new CustomLayouts().ToJsonElement(new GridInfoWrapper + { + Rows = 2, + Columns = 3, + RowsPercentage = new List { 2967, 7033 }, + ColumnsPercentage = new List { 2410, 6040, 1550 }, + CellChildMap = new int[][] { new int[] { 0, 1, 1 }, new int[] { 0, 2, 3 } }, + SensitivityRadius = 30, + Spacing = 10, + ShowSpacing = true, + }), + }, + }, + }; + + private static TestContext? _context; + private static FancyZonesEditorSession? _session; + private static IOTestHelper? _editorParamsIOHelper; + private static IOTestHelper? _customLayoutsIOHelper; + + [ClassInitialize] + public static void ClassInitialize(TestContext testContext) + { + _context = testContext; + + EditorParameters editorParameters = new EditorParameters(); + ParamsWrapper parameters = new ParamsWrapper + { + ProcessId = 1, + SpanZonesAcrossMonitors = false, + Monitors = new List + { + new NativeMonitorDataWrapper + { + Monitor = "monitor-1", + MonitorInstanceId = "instance-id-1", + MonitorSerialNumber = "serial-number-1", + MonitorNumber = 1, + VirtualDesktop = "{FF34D993-73F3-4B8C-AA03-73730A01D6A8}", + Dpi = 192, + LeftCoordinate = 0, + TopCoordinate = 0, + WorkAreaHeight = 1040, + WorkAreaWidth = 1920, + MonitorHeight = 1080, + MonitorWidth = 1920, + IsSelected = true, + }, + }, + }; + _editorParamsIOHelper = new IOTestHelper(editorParameters.File); + _editorParamsIOHelper.WriteData(editorParameters.Serialize(parameters)); + + CustomLayouts customLayouts = new CustomLayouts(); + _customLayoutsIOHelper = new IOTestHelper(customLayouts.File); + _customLayoutsIOHelper.WriteData(customLayouts.Serialize(Layouts)); + } + + [ClassCleanup] + public static void ClassCleanup() + { + _editorParamsIOHelper?.RestoreData(); + _customLayoutsIOHelper?.RestoreData(); + + _context = null; + } + + [TestInitialize] + public void TestInitialize() + { + _session = new FancyZonesEditorSession(_context!); + } + + [TestCleanup] + public void TestCleanup() + { + _session?.Close(_context!); + } + + [TestMethod] + public void Name_Initialize() + { + // verify all custom layouts are presented + foreach (var layout in Layouts.CustomLayouts) + { + Assert.IsNotNull(_session?.GetLayout(layout.Name)); + } + } + + [TestMethod] + public void Rename_Save() + { + string newName = "New layout name"; + var oldName = Layouts.CustomLayouts[0].Name; + + // rename the layout + _session?.Click_EditLayout(oldName); + var input = _session?.GetNameInput(); + input?.Clear(); + input?.SendKeys(newName); + + // verify new name + _session?.Click_Save(); + Assert.IsNull(_session?.GetLayout(oldName)); // previous name isn't presented + Assert.IsNotNull(newName); // new name is presented + } + + [TestMethod] + public void Rename_Cancel() + { + string newName = "New layout name"; + var oldName = Layouts.CustomLayouts[0].Name; + + // rename the layout + _session?.Click_EditLayout(oldName); + var input = _session?.GetNameInput(); + input?.Clear(); + input?.SendKeys(newName); + + // verify new name + _session?.Click_Cancel(); + Assert.IsNotNull(_session?.GetLayout(oldName)); + Assert.IsNull(newName); + } + + [TestMethod] + public void HighlightDistance_Initialize() + { + foreach (var layout in Layouts.CustomLayouts) + { + _session?.Click_EditLayout(layout.Name); + + var slider = _session?.GetSensitivitySlider(); + var expected = layout.Type == Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas] ? + new CustomLayouts().CanvasFromJsonElement(layout.Info.GetRawText()).SensitivityRadius : + new CustomLayouts().GridFromJsonElement(layout.Info.GetRawText()).SensitivityRadius; + Assert.AreEqual($"{expected}", slider?.Text); + + _session?.Click_Cancel(); + + // let the dialog window close + _session?.WaitFor(0.5f); + } + } + + [TestMethod] + public void HighlightDistance_Save() + { + var layout = Layouts.CustomLayouts[0]; + var type = layout.Type; + _session?.Click_EditLayout(layout.Name); + + var slider = _session?.GetSensitivitySlider(); + slider?.SendKeys(Keys.Right); + + var value = type == Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas] ? + new CustomLayouts().CanvasFromJsonElement(layout.Info.GetRawText()).SensitivityRadius : + new CustomLayouts().GridFromJsonElement(layout.Info.GetRawText()).SensitivityRadius; + var expected = value + 1; // one step right + + Assert.AreEqual($"{expected}", slider?.Text); + + _session?.Click_Save(); + + // let the dialog window close + _session?.WaitFor(0.5f); + + // verify the file + var customLayouts = new CustomLayouts(); + var data = customLayouts.Read(customLayouts.File); + var actual = type == Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas] ? + new CustomLayouts().CanvasFromJsonElement(data.CustomLayouts.Find(x => x.Uuid == layout.Uuid).Info.GetRawText()).SensitivityRadius : + new CustomLayouts().GridFromJsonElement(data.CustomLayouts.Find(x => x.Uuid == layout.Uuid).Info.GetRawText()).SensitivityRadius; + Assert.AreEqual(expected, actual); + } + + [TestMethod] + public void HighlightDistance_Cancel() + { + var layout = Layouts.CustomLayouts[0]; + var type = layout.Type; + _session?.Click_EditLayout(layout.Name); + + var slider = _session?.GetSensitivitySlider(); + slider?.SendKeys(Keys.Right); + + var expected = type == Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas] ? + new CustomLayouts().CanvasFromJsonElement(layout.Info.GetRawText()).SensitivityRadius : + new CustomLayouts().GridFromJsonElement(layout.Info.GetRawText()).SensitivityRadius; + + _session?.Click_Cancel(); + + // let the dialog window close + _session?.WaitFor(0.5f); + + // verify the file + var customLayouts = new CustomLayouts(); + var data = customLayouts.Read(customLayouts.File); + var actual = type == Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas] ? + new CustomLayouts().CanvasFromJsonElement(data.CustomLayouts.Find(x => x.Uuid == layout.Uuid).Info.GetRawText()).SensitivityRadius : + new CustomLayouts().GridFromJsonElement(data.CustomLayouts.Find(x => x.Uuid == layout.Uuid).Info.GetRawText()).SensitivityRadius; + Assert.AreEqual(expected, actual); + } + + [TestMethod] + public void SpaceAroundZones_Initialize() + { + foreach (var layout in Layouts.CustomLayouts) + { + if (layout.Type != Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Grid]) + { + // only for grid layouts + continue; + } + + _session?.Click_EditLayout(layout.Name); + + var toggle = _session?.GetSpaceAroundZonesToggle(); + var slider = _session?.GetSpaceAroundZonesSlider(); + + var spacingEnabled = new CustomLayouts().GridFromJsonElement(layout.Info.GetRawText()).ShowSpacing; + Assert.AreEqual(spacingEnabled, slider?.Enabled); + Assert.AreEqual(spacingEnabled, toggle?.Selected); + + var expected = new CustomLayouts().GridFromJsonElement(layout.Info.GetRawText()).Spacing; + Assert.AreEqual($"{expected}", slider?.Text); + + _session?.Click_Cancel(); + + // let the dialog window close + _session?.WaitFor(0.5f); + } + } + + [TestMethod] + public void SpaceAroundZones_Slider_Save() + { + var layout = Layouts.CustomLayouts.Find(x => x.Type == Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Grid] && new CustomLayouts().GridFromJsonElement(x.Info.GetRawText()).ShowSpacing); + var expected = new CustomLayouts().GridFromJsonElement(layout.Info.GetRawText()).Spacing + 1; // one step right + _session?.Click_EditLayout(layout.Name); + + var slider = _session?.GetSpaceAroundZonesSlider(); + slider?.SendKeys(Keys.Right); + Assert.AreEqual($"{expected}", slider?.Text); + + _session?.Click_Save(); + + // let the dialog window close + _session?.WaitFor(0.5f); + + // verify the file + var customLayouts = new CustomLayouts(); + var data = customLayouts.Read(customLayouts.File); + var actual = new CustomLayouts().GridFromJsonElement(data.CustomLayouts.Find(x => x.Uuid == layout.Uuid).Info.GetRawText()).Spacing; + Assert.AreEqual(expected, actual); + } + + [TestMethod] + public void SpaceAroundZones_Slider_Cancel() + { + var layout = Layouts.CustomLayouts.Find(x => x.Type == Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Grid] && new CustomLayouts().GridFromJsonElement(x.Info.GetRawText()).ShowSpacing); + _session?.Click_EditLayout(layout.Name); + var expected = new CustomLayouts().GridFromJsonElement(layout.Info.GetRawText()).Spacing; + + var slider = _session?.GetSpaceAroundZonesSlider(); + slider?.SendKeys(Keys.Right); + _session?.Click_Cancel(); + + // let the dialog window close + _session?.WaitFor(0.5f); + + // verify the file + var customLayouts = new CustomLayouts(); + var data = customLayouts.Read(customLayouts.File); + var actual = new CustomLayouts().GridFromJsonElement(data.CustomLayouts.Find(x => x.Uuid == layout.Uuid).Info.GetRawText()).Spacing; + Assert.AreEqual(expected, actual); + } + + [TestMethod] + public void SpaceAroundZones_Toggle_Save() + { + var layout = Layouts.CustomLayouts.Find(x => x.Type == Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Grid]); + var value = new CustomLayouts().GridFromJsonElement(layout.Info.GetRawText()).ShowSpacing; + var expected = !value; + _session?.Click_EditLayout(layout.Name); + + var toggle = _session?.GetSpaceAroundZonesToggle(); + toggle?.Click(); + Assert.AreEqual(expected, toggle?.Selected, "Toggle value not changed"); + Assert.AreEqual(expected, _session?.GetSpaceAroundZonesSlider()?.Enabled); + + _session?.Click_Save(); + + // let the dialog window close + _session?.WaitFor(0.5f); + + // verify the file + var customLayouts = new CustomLayouts(); + var data = customLayouts.Read(customLayouts.File); + var actual = new CustomLayouts().GridFromJsonElement(data.CustomLayouts.Find(x => x.Uuid == layout.Uuid).Info.GetRawText()).ShowSpacing; + Assert.AreEqual(expected, actual); + } + + [TestMethod] + public void SpaceAroundZones_Toggle_Cancel() + { + var layout = Layouts.CustomLayouts.Find(x => x.Type == Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Grid]); + var expected = new CustomLayouts().GridFromJsonElement(layout.Info.GetRawText()).ShowSpacing; + _session?.Click_EditLayout(layout.Name); + + var toggle = _session?.GetSpaceAroundZonesToggle(); + toggle?.Click(); + Assert.AreNotEqual(expected, toggle?.Selected, "Toggle value not changed"); + Assert.AreNotEqual(expected, _session?.GetSpaceAroundZonesSlider()?.Enabled); + + _session?.Click_Cancel(); + + // let the dialog window close + _session?.WaitFor(0.5f); + + // verify the file + var customLayouts = new CustomLayouts(); + var data = customLayouts.Read(customLayouts.File); + var actual = new CustomLayouts().GridFromJsonElement(data.CustomLayouts.Find(x => x.Uuid == layout.Uuid).Info.GetRawText()).ShowSpacing; + Assert.AreEqual(expected, actual); + } + } +} diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs index 223e97fe3078..18c43ada6f2e 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs @@ -46,11 +46,21 @@ public static class AccessibilityId // layout card public const string EditLayoutButton = "EditLayoutButton"; - // edit template layout window - public const string TemplateZoneSlider = "TemplateZoneCount"; + // edit layout window: common for template and custom layouts public const string SensitivitySlider = "SensitivityInput"; public const string SpacingSlider = "Spacing"; public const string SpacingToggle = "spaceAroundSetting"; + + // edit template layout window + public const string CopyTemplate = "createFromTemplateLayoutButton"; + public const string TemplateZoneSlider = "TemplateZoneCount"; + + // edit custom layout window + public const string DuplicateLayoutButton = "duplicateLayoutButton"; + public const string DeleteLayoutButton = "deleteLayoutButton"; + public const string KeySelectionComboBox = "quickKeySelectionComboBox"; + public const string EditZonesButton = "editZoneLayoutButton"; + public const string DeleteTextButton = "DeleteButton"; } public WindowsDriver? Session { get; } @@ -179,6 +189,19 @@ public WindowsElement GetMonitorItem(int monitorNumber) return FindByAccessibilityId(AccessibilityId.SpacingToggle); } + public WindowsElement? GetNameInput() + { + try + { + return Session?.FindElementByClassName("TextBox"); + } + catch + { + Assert.Fail($"Name TextBox not found"); + return null; + } + } + public void Click_CreateNewLayout() { var button = FindByAccessibilityId(AccessibilityId.NewLayoutButton); From 9fc2b2557db45da18477fbfd534f40c7730817b1 Mon Sep 17 00:00:00 2001 From: seraphima Date: Fri, 24 Nov 2023 14:35:03 +0100 Subject: [PATCH 21/78] changed test initialization --- .../UITests-FancyZonesEditor/CustomLayoutsTests.cs | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs index 5f063389e007..c340f1d15bb8 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs @@ -130,18 +130,12 @@ public static void ClassInitialize(TestContext testContext) }; _editorParamsIOHelper = new IOTestHelper(editorParameters.File); _editorParamsIOHelper.WriteData(editorParameters.Serialize(parameters)); - - CustomLayouts customLayouts = new CustomLayouts(); - _customLayoutsIOHelper = new IOTestHelper(customLayouts.File); - _customLayoutsIOHelper.WriteData(customLayouts.Serialize(Layouts)); } [ClassCleanup] public static void ClassCleanup() { _editorParamsIOHelper?.RestoreData(); - _customLayoutsIOHelper?.RestoreData(); - _context = null; } @@ -149,12 +143,17 @@ public static void ClassCleanup() public void TestInitialize() { _session = new FancyZonesEditorSession(_context!); + + CustomLayouts customLayouts = new CustomLayouts(); + _customLayoutsIOHelper = new IOTestHelper(customLayouts.File); + _customLayoutsIOHelper.WriteData(customLayouts.Serialize(Layouts)); } [TestCleanup] public void TestCleanup() { _session?.Close(_context!); + _customLayoutsIOHelper?.RestoreData(); } [TestMethod] From c4a452e7b73d5921a6670d03ca983642e7b3e199 Mon Sep 17 00:00:00 2001 From: seraphima Date: Fri, 24 Nov 2023 14:39:46 +0100 Subject: [PATCH 22/78] fix name checks --- .../fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs index c340f1d15bb8..43c3e63f344b 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs @@ -181,7 +181,7 @@ public void Rename_Save() // verify new name _session?.Click_Save(); Assert.IsNull(_session?.GetLayout(oldName)); // previous name isn't presented - Assert.IsNotNull(newName); // new name is presented + Assert.IsNotNull(_session?.GetLayout(newName)); // new name is presented } [TestMethod] @@ -199,7 +199,7 @@ public void Rename_Cancel() // verify new name _session?.Click_Cancel(); Assert.IsNotNull(_session?.GetLayout(oldName)); - Assert.IsNull(newName); + Assert.IsNull(_session?.GetLayout(newName)); } [TestMethod] From d5ca8708fc8ab0c4461a80508932b39a3845e562 Mon Sep 17 00:00:00 2001 From: seraphima Date: Fri, 24 Nov 2023 14:40:04 +0100 Subject: [PATCH 23/78] fix: restore name --- .../fancyzones/editor/FancyZonesEditor/Models/LayoutModel.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/modules/fancyzones/editor/FancyZonesEditor/Models/LayoutModel.cs b/src/modules/fancyzones/editor/FancyZonesEditor/Models/LayoutModel.cs index 028bcd26b1dd..75f32a2beea9 100644 --- a/src/modules/fancyzones/editor/FancyZonesEditor/Models/LayoutModel.cs +++ b/src/modules/fancyzones/editor/FancyZonesEditor/Models/LayoutModel.cs @@ -344,6 +344,7 @@ public void RestoreTo(LayoutModel layout) { layout.SensitivityRadius = SensitivityRadius; layout.TemplateZoneCount = TemplateZoneCount; + layout.Name = Name; } // Adds new custom Layout From 634aa4f1e9f0d288dcfdda0410a5401292f2bf3a Mon Sep 17 00:00:00 2001 From: seraphima Date: Fri, 22 Mar 2024 14:31:13 +0100 Subject: [PATCH 24/78] template layouts: save-cancel tests --- .../TemplateLayoutsTests.cs | 254 +++++++++++++++++- 1 file changed, 244 insertions(+), 10 deletions(-) diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs index 33c66ea77e39..57cf2cb01a98 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs @@ -1,14 +1,13 @@ -// Copyright (c) Microsoft Corporation +// Copyright (c) Microsoft Corporation // The Microsoft Corporation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. -using System; using System.Collections.Generic; using FancyZonesEditorCommon.Data; using Microsoft.FancyZonesEditor.UITests.Utils; using Microsoft.FancyZonesEditor.UnitTests.Utils; using Microsoft.VisualStudio.TestTools.UnitTesting; -using OpenQA.Selenium.Support.UI; +using OpenQA.Selenium; using static FancyZonesEditorCommon.Data.AppliedLayouts; using static FancyZonesEditorCommon.Data.DefaultLayouts; using static FancyZonesEditorCommon.Data.EditorParameters; @@ -191,6 +190,45 @@ public static void ClassCleanup() [TestInitialize] public void TestInitialize() { + LayoutTemplates layoutTemplates = new LayoutTemplates(); + _templatesIOHelper = new IOTestHelper(layoutTemplates.File); + _templatesIOHelper.WriteData(layoutTemplates.Serialize(Layouts)); + + // Default layouts should match templates + DefaultLayouts defaultLayouts = new DefaultLayouts(); + DefaultLayoutsListWrapper defaultLayoutsList = new DefaultLayoutsListWrapper + { + DefaultLayouts = new List + { + new DefaultLayoutWrapper + { + MonitorConfiguration = MonitorConfigurationType.Vertical.ToString(), + Layout = new DefaultLayoutWrapper.LayoutWrapper + { + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Rows], + ZoneCount = 2, + ShowSpacing = true, + Spacing = 10, + SensitivityRadius = 10, + }, + }, + new DefaultLayoutWrapper + { + MonitorConfiguration = MonitorConfigurationType.Horizontal.ToString(), + Layout = new DefaultLayoutWrapper.LayoutWrapper + { + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.PriorityGrid], + ZoneCount = 3, + ShowSpacing = true, + Spacing = 1, + SensitivityRadius = 40, + }, + }, + }, + }; + _defaultLayoutsIOHelper = new IOTestHelper(defaultLayouts.File); + _defaultLayoutsIOHelper.WriteData(defaultLayouts.Serialize(defaultLayoutsList)); + _session = new FancyZonesEditorSession(_context!); } @@ -198,10 +236,13 @@ public void TestInitialize() public void TestCleanup() { _session?.Close(_context!); + + _templatesIOHelper?.RestoreData(); + _defaultLayoutsIOHelper?.RestoreData(); } [TestMethod] - public void ZoneNumber() + public void ZoneNumber_Initialize() { foreach (var (key, name) in TestConstants.TemplateLayoutNames) { @@ -219,15 +260,62 @@ public void ZoneNumber() _session?.Click_Cancel(); // let the dialog window close - WebDriverWait wait = new WebDriverWait(_session?.Session, TimeSpan.FromSeconds(1)); - wait.Timeout = TimeSpan.FromSeconds(0.5); + _session?.WaitFor(0.5f); } } [TestMethod] - public void HighlightDistance() + public void ZoneNumber_Save() { - foreach (var (key, name) in TestConstants.TemplateLayoutNames) + var type = Constants.TemplateLayouts.Columns; + var layout = Layouts.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutTypes[type]); + var value = layout.ZoneCount; + var expected = value - 1; + _session?.Click_EditLayout(Constants.TemplateLayoutNames[type]); + + var slider = _session?.GetZoneCountSlider(); + slider?.SendKeys(Keys.Left); + Assert.AreEqual($"{expected}", slider?.Text); + + _session?.Click_Save(); + + // let the dialog window close + _session?.WaitFor(0.5f); + + // verify the file + var templateLayouts = new LayoutTemplates(); + var data = templateLayouts.Read(templateLayouts.File); + var actual = data.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutTypes[type]).ZoneCount; + Assert.AreEqual(expected, actual); + } + + [TestMethod] + public void ZoneNumber_Cancel() + { + var type = Constants.TemplateLayouts.Rows; + var layout = Layouts.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutTypes[type]); + var expected = layout.ZoneCount; + _session?.Click_EditLayout(Constants.TemplateLayoutNames[type]); + + var slider = _session?.GetZoneCountSlider(); + slider?.SendKeys(Keys.Left); + + _session?.Click_Cancel(); + + // let the dialog window close + _session?.WaitFor(0.5f); + + // verify the file + var templateLayouts = new LayoutTemplates(); + var data = templateLayouts.Read(templateLayouts.File); + var actual = data.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutTypes[type]).ZoneCount; + Assert.AreEqual(expected, actual); + } + + [TestMethod] + public void HighlightDistance_Initialize() + { + foreach (var (key, name) in Constants.TemplateLayoutNames) { if (key == Constants.TemplateLayout.Empty) { @@ -248,9 +336,57 @@ public void HighlightDistance() } [TestMethod] - public void SpaceAroundZones() + public void HighlightDistance_Save() { - foreach (var (key, name) in TestConstants.TemplateLayoutNames) + var type = Constants.TemplateLayouts.Focus; + var layout = Layouts.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutTypes[type]); + var value = layout.SensitivityRadius; + _session?.Click_EditLayout(Constants.TemplateLayoutNames[type]); + + var slider = _session?.GetSensitivitySlider(); + slider?.SendKeys(Keys.Right); + + var expected = value + 1; // one step right + Assert.AreEqual($"{expected}", slider?.Text); + + _session?.Click_Save(); + + // let the dialog window close + _session?.WaitFor(0.5f); + + // verify the file + var templateLayouts = new LayoutTemplates(); + var data = templateLayouts.Read(templateLayouts.File); + var actual = data.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutTypes[type]).SensitivityRadius; + Assert.AreEqual(expected, actual); + } + + [TestMethod] + public void HighlightDistance_Cancel() + { + var type = Constants.TemplateLayouts.Focus; + var layout = Layouts.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutTypes[type]); + var expected = layout.SensitivityRadius; + _session?.Click_EditLayout(Constants.TemplateLayoutNames[type]); + + var slider = _session?.GetSensitivitySlider(); + slider?.SendKeys(Keys.Right); + _session?.Click_Cancel(); + + // let the dialog window close + _session?.WaitFor(0.5f); + + // verify the file + var templateLayouts = new LayoutTemplates(); + var data = templateLayouts.Read(templateLayouts.File); + var actual = data.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutTypes[type]).SensitivityRadius; + Assert.AreEqual(expected, actual); + } + + [TestMethod] + public void SpaceAroundZones_Initialize() + { + foreach (var (key, name) in Constants.TemplateLayoutNames) { if (key == Constants.TemplateLayout.Empty || key == Constants.TemplateLayout.Focus) { @@ -275,5 +411,103 @@ public void SpaceAroundZones() _session?.WaitFor(0.5f); } } + + [TestMethod] + public void SpaceAroundZones_Slider_Save() + { + var type = Constants.TemplateLayouts.PriorityGrid; + var layout = Layouts.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutTypes[type]); + var expected = layout.Spacing + 1; + _session?.Click_EditLayout(Constants.TemplateLayoutNames[type]); + + var slider = _session?.GetSpaceAroundZonesSlider(); + slider?.SendKeys(Keys.Right); + Assert.AreEqual($"{expected}", slider?.Text); + + _session?.Click_Save(); + + // let the dialog window close + _session?.WaitFor(0.5f); + + // verify the file + var templateLayouts = new LayoutTemplates(); + var data = templateLayouts.Read(templateLayouts.File); + var actual = data.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutTypes[type]).Spacing; + Assert.AreEqual(expected, actual); + } + + [TestMethod] + public void SpaceAroundZones_Slider_Cancel() + { + var type = Constants.TemplateLayouts.PriorityGrid; + var layout = Layouts.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutTypes[type]); + var expected = layout.Spacing; + _session?.Click_EditLayout(Constants.TemplateLayoutNames[type]); + + var slider = _session?.GetSpaceAroundZonesSlider(); + slider?.SendKeys(Keys.Right); + Assert.AreEqual($"{expected + 1}", slider?.Text); + + _session?.Click_Cancel(); + + // let the dialog window close + _session?.WaitFor(0.5f); + + // verify the file + var templateLayouts = new LayoutTemplates(); + var data = templateLayouts.Read(templateLayouts.File); + var actual = data.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutTypes[type]).Spacing; + Assert.AreEqual(expected, actual); + } + + [TestMethod] + public void SpaceAroundZones_Toggle_Save() + { + var type = Constants.TemplateLayouts.PriorityGrid; + var layout = Layouts.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutTypes[type]); + var expected = !layout.ShowSpacing; + _session?.Click_EditLayout(Constants.TemplateLayoutNames[type]); + + var toggle = _session?.GetSpaceAroundZonesToggle(); + toggle?.Click(); + Assert.AreEqual(expected, toggle?.Selected); + Assert.AreEqual(expected, _session?.GetSpaceAroundZonesSlider()?.Enabled); + + _session?.Click_Save(); + + // let the dialog window close + _session?.WaitFor(0.5f); + + // verify the file + var templateLayouts = new LayoutTemplates(); + var data = templateLayouts.Read(templateLayouts.File); + var actual = data.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutTypes[type]).ShowSpacing; + Assert.AreEqual(expected, actual); + } + + [TestMethod] + public void SpaceAroundZones_Toggle_Cancel() + { + var type = Constants.TemplateLayouts.PriorityGrid; + var layout = Layouts.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutTypes[type]); + var expected = layout.ShowSpacing; + _session?.Click_EditLayout(Constants.TemplateLayoutNames[type]); + + var toggle = _session?.GetSpaceAroundZonesToggle(); + toggle?.Click(); + Assert.AreNotEqual(expected, toggle?.Selected); + Assert.AreNotEqual(expected, _session?.GetSpaceAroundZonesSlider()?.Enabled); + + _session?.Click_Cancel(); + + // let the dialog window close + _session?.WaitFor(0.5f); + + // verify the file + var templateLayouts = new LayoutTemplates(); + var data = templateLayouts.Read(templateLayouts.File); + var actual = data.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutTypes[type]).ShowSpacing; + Assert.AreEqual(expected, actual); + } } } From eced7741142c2f9cd24d98d0260755bc248fe2eb Mon Sep 17 00:00:00 2001 From: seraphima Date: Mon, 27 Nov 2023 15:13:43 +0100 Subject: [PATCH 25/78] restore applied layouts --- .../UITests-FancyZonesEditor/CustomLayoutsTests.cs | 4 ++++ .../UITests-FancyZonesEditor/UIInitializaionTests.cs | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs index 43c3e63f344b..5248b913df76 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs @@ -96,6 +96,7 @@ public class CustomLayoutsTests private static TestContext? _context; private static FancyZonesEditorSession? _session; private static IOTestHelper? _editorParamsIOHelper; + private static IOTestHelper? _appliedLayoutsIOHelper; private static IOTestHelper? _customLayoutsIOHelper; [ClassInitialize] @@ -130,12 +131,15 @@ public static void ClassInitialize(TestContext testContext) }; _editorParamsIOHelper = new IOTestHelper(editorParameters.File); _editorParamsIOHelper.WriteData(editorParameters.Serialize(parameters)); + + _appliedLayoutsIOHelper = new IOTestHelper(new AppliedLayouts().File); } [ClassCleanup] public static void ClassCleanup() { _editorParamsIOHelper?.RestoreData(); + _appliedLayoutsIOHelper?.RestoreData(); _context = null; } diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializaionTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializaionTests.cs index 6f5fd8fa1bec..4b6588405164 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializaionTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializaionTests.cs @@ -17,16 +17,21 @@ public class UIInitializaionTests private static TestContext? _context; private static FancyZonesEditorSession? _session; private static IOTestHelper? _editorParamsIOHelper; + private static IOTestHelper? _appliedLayoutsIOHelper; [ClassInitialize] public static void ClassInitialize(TestContext testContext) { _context = testContext; + + _appliedLayoutsIOHelper = new IOTestHelper(new AppliedLayouts().File); } [ClassCleanup] public static void ClassCleanup() { + _appliedLayoutsIOHelper?.RestoreData(); + _context = null; } From e0901611efb6309947943ce4bc576af5f1cb655f Mon Sep 17 00:00:00 2001 From: seraphima Date: Mon, 27 Nov 2023 15:52:18 +0100 Subject: [PATCH 26/78] custom layouts initialization --- .../fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs index 5248b913df76..f4919361f736 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs @@ -146,11 +146,11 @@ public static void ClassCleanup() [TestInitialize] public void TestInitialize() { - _session = new FancyZonesEditorSession(_context!); - CustomLayouts customLayouts = new CustomLayouts(); _customLayoutsIOHelper = new IOTestHelper(customLayouts.File); _customLayoutsIOHelper.WriteData(customLayouts.Serialize(Layouts)); + + _session = new FancyZonesEditorSession(_context!); } [TestCleanup] From bb36bf6e61dd1e2a86cfae897734a256631f09b7 Mon Sep 17 00:00:00 2001 From: seraphima Date: Mon, 27 Nov 2023 15:59:05 +0100 Subject: [PATCH 27/78] restore applied layouts with editor params --- .../UITests-FancyZonesEditor/RunFancyZonesEditorTest.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/RunFancyZonesEditorTest.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/RunFancyZonesEditorTest.cs index ed0730776855..9d7aa461c114 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/RunFancyZonesEditorTest.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/RunFancyZonesEditorTest.cs @@ -15,7 +15,8 @@ namespace Microsoft.FancyZonesEditor.UITests public class RunFancyZonesEditorTest { private static FancyZonesEditorSession? _session; - private static IOTestHelper? _ioHelper; + private static IOTestHelper? _editorParamsIOHelper; + private static IOTestHelper? _appliedLayoutsIOHelper; private static TestContext? _context; [ClassInitialize] From cfb9a276cbef43e6dbc6aee88b2932de2b89da9b Mon Sep 17 00:00:00 2001 From: seraphima Date: Mon, 27 Nov 2023 15:59:36 +0100 Subject: [PATCH 28/78] log if element not displayed --- .../Utils/FancyZonesEditorSession.cs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs index 18c43ada6f2e..247bd732156b 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs @@ -278,6 +278,11 @@ public void WaitElementDisplayedByName(string name) { } + if (!displayed) + { + context.WriteLine($"{name} not displayed"); + } + return displayed; }); } @@ -300,6 +305,11 @@ public void WaitElementDisplayedById(string id) { } + if (!displayed) + { + context.WriteLine($"{id} not displayed"); + } + return displayed; }); } From 2334c7a7eadd5525051d3bc766af181a09b6443d Mon Sep 17 00:00:00 2001 From: seraphima Date: Tue, 28 Nov 2023 12:47:47 +0100 Subject: [PATCH 29/78] always add "None" value --- .../fancyzones/editor/FancyZonesEditor/Models/LayoutModel.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/fancyzones/editor/FancyZonesEditor/Models/LayoutModel.cs b/src/modules/fancyzones/editor/FancyZonesEditor/Models/LayoutModel.cs index 75f32a2beea9..d2e60092c708 100644 --- a/src/modules/fancyzones/editor/FancyZonesEditor/Models/LayoutModel.cs +++ b/src/modules/fancyzones/editor/FancyZonesEditor/Models/LayoutModel.cs @@ -221,7 +221,7 @@ public List QuickKeysAvailable List result = new List(); foreach (var pair in MainWindowSettingsModel.LayoutHotkeys.SelectedKeys) { - if (string.IsNullOrEmpty(pair.Value) || pair.Value == Uuid) + if (pair.Key == Properties.Resources.Quick_Key_None || string.IsNullOrEmpty(pair.Value) || pair.Value == Uuid) { result.Add(pair.Key); } From 30c3df5c9c03bf68122453b0276143b6a02f7a28 Mon Sep 17 00:00:00 2001 From: seraphima Date: Tue, 28 Nov 2023 14:48:22 +0100 Subject: [PATCH 30/78] rename context click --- .../UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs index 247bd732156b..1c273210e054 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs @@ -224,7 +224,7 @@ public void Click_EditLayout(string layoutName) public void RightClick_Layout(string layoutName) { var layout = GetLayout(layoutName); - ClickItem(layout!); + ContextClick(layout!); } public void Click_Monitor(int monitorNumber) @@ -320,7 +320,7 @@ public void WaitFor(float seconds) wait.Timeout = TimeSpan.FromSeconds(seconds); } - private void ClickItem(WindowsElement element) + public void ContextClick(WindowsElement element) { Actions actions = new Actions(Session); actions.MoveToElement(element); From 757568611268fbb5e36e840a6684ea09ca150ad2 Mon Sep 17 00:00:00 2001 From: seraphima Date: Wed, 29 Nov 2023 15:51:49 +0100 Subject: [PATCH 31/78] consider error dialog on closing --- .../CustomLayoutsTests.cs | 4 +- .../RunFancyZonesEditorTest.cs | 2 +- .../TemplateLayoutsTests.cs | 2 +- .../UIInitializaionTests.cs | 2 +- .../Utils/FancyZonesEditorSession.cs | 48 +++++++++++-------- 5 files changed, 34 insertions(+), 24 deletions(-) diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs index f4919361f736..bc3860adc032 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs @@ -1,4 +1,4 @@ -// Copyright (c) Microsoft Corporation +// Copyright (c) Microsoft Corporation // The Microsoft Corporation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -156,7 +156,7 @@ public void TestInitialize() [TestCleanup] public void TestCleanup() { - _session?.Close(_context!); + _session?.Close(); _customLayoutsIOHelper?.RestoreData(); } diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/RunFancyZonesEditorTest.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/RunFancyZonesEditorTest.cs index 9d7aa461c114..d30fafe75a2e 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/RunFancyZonesEditorTest.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/RunFancyZonesEditorTest.cs @@ -147,7 +147,7 @@ public void TestInitialize() [TestCleanup] public void TestCleanup() { - _session?.Close(_context!); + _session?.Close(); } [TestMethod] diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs index 57cf2cb01a98..b48d357a18d8 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs @@ -235,7 +235,7 @@ public void TestInitialize() [TestCleanup] public void TestCleanup() { - _session?.Close(_context!); + _session?.Close(); _templatesIOHelper?.RestoreData(); _defaultLayoutsIOHelper?.RestoreData(); diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializaionTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializaionTests.cs index 4b6588405164..f546160fa02f 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializaionTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializaionTests.cs @@ -38,7 +38,7 @@ public static void ClassCleanup() [TestCleanup] public void TestCleanup() { - _session?.Close(_context!); + _session?.Close(); _editorParamsIOHelper?.RestoreData(); } diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs index 1c273210e054..8a9bae47b446 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs @@ -3,6 +3,7 @@ // See the LICENSE file in the project root for more information. using System; +using System.Diagnostics; using System.IO; using System.Reflection; using Microsoft.FancyZonesEditor.UITests.Utils; @@ -18,7 +19,8 @@ namespace Microsoft.FancyZonesEditor.UnitTests.Utils public class FancyZonesEditorSession { protected const string WindowsApplicationDriverUrl = "http://127.0.0.1:4723"; - private const string FancyZonesEditorPath = @"\..\..\..\PowerToys.FancyZonesEditor.exe"; + private const string FancyZonesEditorName = "PowerToys.FancyZonesEditor"; + private const string FancyZonesEditorPath = @"\..\..\..\" + FancyZonesEditorName + ".exe"; private TestContext context; private static FancyZonesEditorFiles? _files; @@ -65,8 +67,6 @@ public static class AccessibilityId public WindowsDriver? Session { get; } - public WindowsElement? MainEditorWindow { get; } - public FancyZonesEditorSession(TestContext testContext) { try @@ -89,35 +89,45 @@ public FancyZonesEditorSession(TestContext testContext) testContext.WriteLine("Session: " + Session.SessionId.ToString()); testContext.WriteLine("Title: " + Session.Title); - // Set implicit timeout to make element search to retry every 500 ms - Session.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(3); - - // Find main editor window - try - { - MainEditorWindow = Session.FindElementByAccessibilityId("MainWindow1"); - } - catch - { - Assert.IsNotNull(MainEditorWindow, "Main editor window not found"); - } - context = testContext; } - public void Close(TestContext testContext) + public void Close() { // Close the session if (Session != null) { + try + { + // in case if something went wrong and an error message is shown + var dialog = Session.FindElementByName("Editor data parsing error."); + Session.CloseApp(); // will close the dialog + + // session can't access new Editor instance created after closing the dialog + // kill the process + IntPtr appTopLevelWindowHandle = IntPtr.Zero; + foreach (Process clsProcess in Process.GetProcesses()) + { + if (clsProcess.ProcessName.Equals(FancyZonesEditorName, StringComparison.OrdinalIgnoreCase)) + { + clsProcess.Kill(); + break; + } + } + } + catch + { + } + try { // FZEditor application can be closed by explicitly closing main editor window - MainEditorWindow?.SendKeys(Keys.Alt + Keys.F4); + var mainEditorWindow = Session.FindElementByAccessibilityId(AccessibilityId.MainWindow); + mainEditorWindow?.SendKeys(Keys.Alt + Keys.F4); } catch (Exception ex) { - testContext.WriteLine(ex.Message); + context.WriteLine("Unable to close main window. ", ex.Message); } Session.Quit(); From fb0978d24515a4f5560744f8b74f4adfc4f61834 Mon Sep 17 00:00:00 2001 From: seraphima Date: Wed, 29 Nov 2023 15:53:59 +0100 Subject: [PATCH 32/78] wait less --- .../CustomLayoutsTests.cs | 32 +++--------- .../TemplateLayoutsTests.cs | 44 +++++------------ .../Utils/FancyZonesEditorSession.cs | 49 ++++++------------- 3 files changed, 33 insertions(+), 92 deletions(-) diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs index bc3860adc032..a732b5eceeb1 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs @@ -220,9 +220,7 @@ public void HighlightDistance_Initialize() Assert.AreEqual($"{expected}", slider?.Text); _session?.Click_Cancel(); - - // let the dialog window close - _session?.WaitFor(0.5f); + _session?.WaitUntilHidden(slider!); } } @@ -244,9 +242,7 @@ public void HighlightDistance_Save() Assert.AreEqual($"{expected}", slider?.Text); _session?.Click_Save(); - - // let the dialog window close - _session?.WaitFor(0.5f); + _session?.WaitUntilHidden(slider!); // let the dialog window close // verify the file var customLayouts = new CustomLayouts(); @@ -272,9 +268,7 @@ public void HighlightDistance_Cancel() new CustomLayouts().GridFromJsonElement(layout.Info.GetRawText()).SensitivityRadius; _session?.Click_Cancel(); - - // let the dialog window close - _session?.WaitFor(0.5f); + _session?.WaitUntilHidden(slider!); // let the dialog window close // verify the file var customLayouts = new CustomLayouts(); @@ -309,9 +303,7 @@ public void SpaceAroundZones_Initialize() Assert.AreEqual($"{expected}", slider?.Text); _session?.Click_Cancel(); - - // let the dialog window close - _session?.WaitFor(0.5f); + _session?.WaitUntilHidden(slider!); // let the dialog window close } } @@ -327,9 +319,7 @@ public void SpaceAroundZones_Slider_Save() Assert.AreEqual($"{expected}", slider?.Text); _session?.Click_Save(); - - // let the dialog window close - _session?.WaitFor(0.5f); + _session?.WaitUntilHidden(slider!); // let the dialog window close // verify the file var customLayouts = new CustomLayouts(); @@ -348,9 +338,7 @@ public void SpaceAroundZones_Slider_Cancel() var slider = _session?.GetSpaceAroundZonesSlider(); slider?.SendKeys(Keys.Right); _session?.Click_Cancel(); - - // let the dialog window close - _session?.WaitFor(0.5f); + _session?.WaitUntilHidden(slider!); // let the dialog window close // verify the file var customLayouts = new CustomLayouts(); @@ -373,9 +361,7 @@ public void SpaceAroundZones_Toggle_Save() Assert.AreEqual(expected, _session?.GetSpaceAroundZonesSlider()?.Enabled); _session?.Click_Save(); - - // let the dialog window close - _session?.WaitFor(0.5f); + _session?.WaitUntilHidden(toggle!); // let the dialog window close // verify the file var customLayouts = new CustomLayouts(); @@ -397,9 +383,7 @@ public void SpaceAroundZones_Toggle_Cancel() Assert.AreNotEqual(expected, _session?.GetSpaceAroundZonesSlider()?.Enabled); _session?.Click_Cancel(); - - // let the dialog window close - _session?.WaitFor(0.5f); + _session?.WaitUntilHidden(toggle!); // let the dialog window close // verify the file var customLayouts = new CustomLayouts(); diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs index b48d357a18d8..a555edc40d79 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs @@ -258,9 +258,7 @@ public void ZoneNumber_Initialize() Assert.AreEqual($"{expected}", slider?.Text); _session?.Click_Cancel(); - - // let the dialog window close - _session?.WaitFor(0.5f); + _session?.WaitUntilHidden(slider!); // let the dialog window close } } @@ -278,9 +276,7 @@ public void ZoneNumber_Save() Assert.AreEqual($"{expected}", slider?.Text); _session?.Click_Save(); - - // let the dialog window close - _session?.WaitFor(0.5f); + _session?.WaitUntilHidden(slider!); // let the dialog window close // verify the file var templateLayouts = new LayoutTemplates(); @@ -301,9 +297,7 @@ public void ZoneNumber_Cancel() slider?.SendKeys(Keys.Left); _session?.Click_Cancel(); - - // let the dialog window close - _session?.WaitFor(0.5f); + _session?.WaitUntilHidden(slider!); // let the dialog window close // verify the file var templateLayouts = new LayoutTemplates(); @@ -329,9 +323,7 @@ public void HighlightDistance_Initialize() Assert.AreEqual($"{expected}", slider?.Text); _session?.Click_Cancel(); - - // let the dialog window close - _session?.WaitFor(0.5f); + _session?.WaitUntilHidden(slider!); // let the dialog window close } } @@ -350,9 +342,7 @@ public void HighlightDistance_Save() Assert.AreEqual($"{expected}", slider?.Text); _session?.Click_Save(); - - // let the dialog window close - _session?.WaitFor(0.5f); + _session?.WaitUntilHidden(slider!); // let the dialog window close // verify the file var templateLayouts = new LayoutTemplates(); @@ -372,9 +362,7 @@ public void HighlightDistance_Cancel() var slider = _session?.GetSensitivitySlider(); slider?.SendKeys(Keys.Right); _session?.Click_Cancel(); - - // let the dialog window close - _session?.WaitFor(0.5f); + _session?.WaitUntilHidden(slider!); // let the dialog window close // verify the file var templateLayouts = new LayoutTemplates(); @@ -406,9 +394,7 @@ public void SpaceAroundZones_Initialize() Assert.AreEqual($"{expected}", slider?.Text); _session?.Click_Cancel(); - - // let the dialog window close - _session?.WaitFor(0.5f); + _session?.WaitUntilHidden(slider!); // let the dialog window close } } @@ -425,9 +411,7 @@ public void SpaceAroundZones_Slider_Save() Assert.AreEqual($"{expected}", slider?.Text); _session?.Click_Save(); - - // let the dialog window close - _session?.WaitFor(0.5f); + _session?.WaitUntilHidden(slider!); // let the dialog window close // verify the file var templateLayouts = new LayoutTemplates(); @@ -449,9 +433,7 @@ public void SpaceAroundZones_Slider_Cancel() Assert.AreEqual($"{expected + 1}", slider?.Text); _session?.Click_Cancel(); - - // let the dialog window close - _session?.WaitFor(0.5f); + _session?.WaitUntilHidden(slider!); // let the dialog window close // verify the file var templateLayouts = new LayoutTemplates(); @@ -474,9 +456,7 @@ public void SpaceAroundZones_Toggle_Save() Assert.AreEqual(expected, _session?.GetSpaceAroundZonesSlider()?.Enabled); _session?.Click_Save(); - - // let the dialog window close - _session?.WaitFor(0.5f); + _session?.WaitUntilHidden(toggle!); // let the dialog window close // verify the file var templateLayouts = new LayoutTemplates(); @@ -499,9 +479,7 @@ public void SpaceAroundZones_Toggle_Cancel() Assert.AreNotEqual(expected, _session?.GetSpaceAroundZonesSlider()?.Enabled); _session?.Click_Cancel(); - - // let the dialog window close - _session?.WaitFor(0.5f); + _session?.WaitUntilHidden(toggle!); // let the dialog window close // verify the file var templateLayouts = new LayoutTemplates(); diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs index 8a9bae47b446..c391843cd766 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs @@ -275,25 +275,13 @@ public void WaitElementDisplayedByName(string name) WebDriverWait wait = new WebDriverWait(Session, TimeSpan.FromSeconds(1)); wait.Until(pred => { - bool displayed = false; - try - { - var element = Session?.FindElementByName(name); - if (element != null) - { - displayed = element.Displayed; - } - } - catch + var element = Session?.FindElementByName(name); + if (element != null) { + return element.Displayed; } - if (!displayed) - { - context.WriteLine($"{name} not displayed"); - } - - return displayed; + return false; }); } @@ -302,32 +290,23 @@ public void WaitElementDisplayedById(string id) WebDriverWait wait = new WebDriverWait(Session, TimeSpan.FromSeconds(1)); wait.Until(pred => { - bool displayed = false; - try + var element = Session?.FindElementByAccessibilityId(id); + if (element != null) { - var element = Session?.FindElementByAccessibilityId(id); - if (element != null) - { - displayed = element.Displayed; - } - } - catch - { - } - - if (!displayed) - { - context.WriteLine($"{id} not displayed"); + return element.Displayed; } - return displayed; + return false; }); } - public void WaitFor(float seconds) + public void WaitUntilHidden(WindowsElement element) { - WebDriverWait wait = new WebDriverWait(Session, TimeSpan.FromSeconds(seconds * 2)); - wait.Timeout = TimeSpan.FromSeconds(seconds); + WebDriverWait wait = new WebDriverWait(Session, TimeSpan.FromSeconds(0.5)); + wait.Until(pred => + { + return !element.Displayed; + }); } public void ContextClick(WindowsElement element) From a4973c5ebfc6ba83928657859c0827e693ff82c2 Mon Sep 17 00:00:00 2001 From: seraphima Date: Wed, 29 Nov 2023 15:54:39 +0100 Subject: [PATCH 33/78] changed assert message --- .../UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs index c391843cd766..d1fc68084fcc 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs @@ -222,7 +222,7 @@ public void Click_CreateNewLayout() public void Click_EditLayout(string layoutName) { var layout = GetLayout(layoutName); - Assert.IsNotNull(layout, $"Layout {layoutName} not found"); + Assert.IsNotNull(layout, $"Layout \"{layoutName}\" not found"); var editButton = layout?.FindElementByAccessibilityId(AccessibilityId.EditLayoutButton); Assert.IsNotNull(editButton, "Edit button not found"); editButton.Click(); From 53f924489244eb68fa99cabec81efe39d6cebe1e Mon Sep 17 00:00:00 2001 From: seraphima Date: Wed, 29 Nov 2023 15:55:06 +0100 Subject: [PATCH 34/78] click --- .../Utils/FancyZonesEditorSession.cs | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs index d1fc68084fcc..0eba20eb9a76 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs @@ -240,7 +240,7 @@ public void RightClick_Layout(string layoutName) public void Click_Monitor(int monitorNumber) { var monitor = GetMonitorItem(monitorNumber); - ClickItem(monitor!); + Click(monitor!); } public void Click_Save() @@ -313,9 +313,18 @@ public void ContextClick(WindowsElement element) { Actions actions = new Actions(Session); actions.MoveToElement(element); - actions.MoveByOffset(30, 30); + actions.MoveByOffset(10, 10); actions.ContextClick(); actions.Build().Perform(); } + + public void Click(AppiumWebElement element) + { + Actions actions = new Actions(Session); + actions.MoveToElement(element); + actions.MoveByOffset(10, 10); + actions.Click(); + actions.Build().Perform(); + } } } From 5cbe25312259eab995dcbb931fdffe5a91ce6416 Mon Sep 17 00:00:00 2001 From: seraphima Date: Wed, 29 Nov 2023 16:23:42 +0100 Subject: [PATCH 35/78] remove io helper dtor --- .../UITests-FancyZonesEditor/Utils/IOTestHelper.cs | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/IOTestHelper.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/IOTestHelper.cs index d472154ac578..fc9f9823ef28 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/IOTestHelper.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/IOTestHelper.cs @@ -31,11 +31,6 @@ public IOTestHelper(string file) } } - ~IOTestHelper() - { - RestoreData(); - } - public void RestoreData() { if (_data != string.Empty) From fc0b1e70c5983f32dced4270237845e1498d1f4a Mon Sep 17 00:00:00 2001 From: seraphima Date: Wed, 29 Nov 2023 16:46:17 +0100 Subject: [PATCH 36/78] hotkey tests --- .../LayoutHotkeysTests.cs | 470 ++++++++++++++++++ .../Utils/FancyZonesEditorSession.cs | 19 + 2 files changed, 489 insertions(+) create mode 100644 src/modules/fancyzones/UITests-FancyZonesEditor/LayoutHotkeysTests.cs diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/LayoutHotkeysTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/LayoutHotkeysTests.cs new file mode 100644 index 000000000000..02f3e325418b --- /dev/null +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/LayoutHotkeysTests.cs @@ -0,0 +1,470 @@ +// Copyright (c) Microsoft Corporation +// The Microsoft Corporation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using FancyZonesEditorCommon.Data; +using Microsoft.FancyZonesEditor.UITests.Utils; +using Microsoft.FancyZonesEditor.UnitTests.Utils; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using static FancyZonesEditorCommon.Data.CustomLayouts; +using static FancyZonesEditorCommon.Data.EditorParameters; +using static FancyZonesEditorCommon.Data.LayoutHotkeys; + +namespace Microsoft.FancyZonesEditor.UITests +{ + [TestClass] + public class LayoutHotkeysTests + { + private static readonly CustomLayoutListWrapper CustomLayouts = new CustomLayoutListWrapper + { + CustomLayouts = new List + { + new CustomLayoutWrapper + { + Uuid = "{0D6D2F58-9184-4804-81E4-4E4CC3476DC1}", + Type = Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas], + Name = "Layout 0", + Info = new CustomLayouts().ToJsonElement(new CanvasInfoWrapper + { + RefHeight = 1080, + RefWidth = 1920, + SensitivityRadius = 10, + Zones = new List { }, + }), + }, + new CustomLayoutWrapper + { + Uuid = "{E7807D0D-6223-4883-B15B-1F3883944C09}", + Type = Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas], + Name = "Layout 1", + Info = new CustomLayouts().ToJsonElement(new CanvasInfoWrapper + { + RefHeight = 1080, + RefWidth = 1920, + SensitivityRadius = 10, + Zones = new List { }, + }), + }, + new CustomLayoutWrapper + { + Uuid = "{F1A94F38-82B6-4876-A653-70D0E882DE2A}", + Type = Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas], + Name = "Layout 2", + Info = new CustomLayouts().ToJsonElement(new CanvasInfoWrapper + { + RefHeight = 1080, + RefWidth = 1920, + SensitivityRadius = 10, + Zones = new List { }, + }), + }, + new CustomLayoutWrapper + { + Uuid = "{F5FDBC04-0760-4776-9F05-96AAC4AE613F}", + Type = Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas], + Name = "Layout 3", + Info = new CustomLayouts().ToJsonElement(new CanvasInfoWrapper + { + RefHeight = 1080, + RefWidth = 1920, + SensitivityRadius = 10, + Zones = new List { }, + }), + }, + new CustomLayoutWrapper + { + Uuid = "{1CDB1CC5-51B1-4E49-9C8C-B7A371CCB489}", + Type = Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas], + Name = "Layout 4", + Info = new CustomLayouts().ToJsonElement(new CanvasInfoWrapper + { + RefHeight = 1080, + RefWidth = 1920, + SensitivityRadius = 10, + Zones = new List { }, + }), + }, + new CustomLayoutWrapper + { + Uuid = "{B1F600A5-9C2B-44C1-BF96-42D39E9DC004}", + Type = Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas], + Name = "Layout 5", + Info = new CustomLayouts().ToJsonElement(new CanvasInfoWrapper + { + RefHeight = 1080, + RefWidth = 1920, + SensitivityRadius = 10, + Zones = new List { }, + }), + }, + new CustomLayoutWrapper + { + Uuid = "{DFBE08C3-7C34-482B-811F-C7DBFE368A96}", + Type = Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas], + Name = "Layout 6", + Info = new CustomLayouts().ToJsonElement(new CanvasInfoWrapper + { + RefHeight = 1080, + RefWidth = 1920, + SensitivityRadius = 10, + Zones = new List { }, + }), + }, + new CustomLayoutWrapper + { + Uuid = "{4DB29206-24CE-421C-BFF4-35987D1A744B}", + Type = Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas], + Name = "Layout 7", + Info = new CustomLayouts().ToJsonElement(new CanvasInfoWrapper + { + RefHeight = 1080, + RefWidth = 1920, + SensitivityRadius = 10, + Zones = new List { }, + }), + }, + new CustomLayoutWrapper + { + Uuid = "{51E1BBBA-1C6F-4E3C-85A2-4BFBAE154963}", + Type = Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas], + Name = "Layout 8", + Info = new CustomLayouts().ToJsonElement(new CanvasInfoWrapper + { + RefHeight = 1080, + RefWidth = 1920, + SensitivityRadius = 10, + Zones = new List { }, + }), + }, + new CustomLayoutWrapper + { + Uuid = "{61F9E568-DB74-44FF-8AA8-4093E80D9BCF}", + Type = Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas], + Name = "Layout 9", + Info = new CustomLayouts().ToJsonElement(new CanvasInfoWrapper + { + RefHeight = 1080, + RefWidth = 1920, + SensitivityRadius = 10, + Zones = new List { }, + }), + }, + new CustomLayoutWrapper + { + Uuid = "{8D328880-9E16-4CA8-B4A3-F6AE1C762CD5}", + Type = Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas], + Name = "Layout 10", + Info = new CustomLayouts().ToJsonElement(new CanvasInfoWrapper + { + RefHeight = 1080, + RefWidth = 1920, + SensitivityRadius = 10, + Zones = new List { }, + }), + }, + }, + }; + + private static readonly LayoutHotkeysWrapper Hotkeys = new LayoutHotkeysWrapper + { + LayoutHotkeys = new List + { + new LayoutHotkeyWrapper + { + LayoutId = "{0D6D2F58-9184-4804-81E4-4E4CC3476DC1}", + Key = 0, + }, + new LayoutHotkeyWrapper + { + LayoutId = "{F1A94F38-82B6-4876-A653-70D0E882DE2A}", + Key = 1, + }, + }, + }; + + private static TestContext? _context; + private static FancyZonesEditorSession? _session; + private static IOTestHelper? _editorParamsIOHelper; + private static IOTestHelper? _appliedLayoutsIOHelper; + private static IOTestHelper? _customLayoutsIOHelper; + private static IOTestHelper? _layoutHotkeysIOHelper; + + [ClassInitialize] + public static void ClassInitialize(TestContext testContext) + { + _context = testContext; + + EditorParameters editorParameters = new EditorParameters(); + ParamsWrapper parameters = new ParamsWrapper + { + ProcessId = 1, + SpanZonesAcrossMonitors = false, + Monitors = new List + { + new NativeMonitorDataWrapper + { + Monitor = "monitor-1", + MonitorInstanceId = "instance-id-1", + MonitorSerialNumber = "serial-number-1", + MonitorNumber = 1, + VirtualDesktop = "{FF34D993-73F3-4B8C-AA03-73730A01D6A8}", + Dpi = 192, + LeftCoordinate = 0, + TopCoordinate = 0, + WorkAreaHeight = 1040, + WorkAreaWidth = 1920, + MonitorHeight = 1080, + MonitorWidth = 1920, + IsSelected = true, + }, + }, + }; + _editorParamsIOHelper = new IOTestHelper(editorParameters.File); + _editorParamsIOHelper.WriteData(editorParameters.Serialize(parameters)); + + _appliedLayoutsIOHelper = new IOTestHelper(new AppliedLayouts().File); + + CustomLayouts customLayouts = new CustomLayouts(); + _customLayoutsIOHelper = new IOTestHelper(customLayouts.File); + _customLayoutsIOHelper.WriteData(customLayouts.Serialize(CustomLayouts)); + } + + [ClassCleanup] + public static void ClassCleanup() + { + _editorParamsIOHelper?.RestoreData(); + _appliedLayoutsIOHelper?.RestoreData(); + _customLayoutsIOHelper?.RestoreData(); + _context = null; + } + + [TestInitialize] + public void TestInitialize() + { + var layoutHotkeys = new LayoutHotkeys(); + _layoutHotkeysIOHelper = new IOTestHelper(layoutHotkeys.File); + _layoutHotkeysIOHelper.WriteData(layoutHotkeys.Serialize(Hotkeys)); + + try + { + _session = new FancyZonesEditorSession(_context!); + } + catch (Exception ex) + { + _context?.WriteLine("Unable to start session. " + ex.Message); + } + } + + [TestCleanup] + public void TestCleanup() + { + try + { + _session?.Click_Cancel(); // in case if test has failed + } + catch + { + } + + _session?.Close(); + + _layoutHotkeysIOHelper?.RestoreData(); + } + + [TestMethod] + public void Initialize() + { + foreach (var layout in CustomLayouts.CustomLayouts) + { + _session?.Click_EditLayout(layout.Name); + + var hotkeyComboBox = _session?.GetHotkeyComboBox(); + Assert.IsNotNull(hotkeyComboBox); + + // verify the selected key + string expected = "None"; + if (Hotkeys.LayoutHotkeys.Any(x => x.LayoutId == layout.Uuid)) + { + expected = $"{Hotkeys.LayoutHotkeys.Find(x => x.LayoutId == layout.Uuid).Key}"; + } + + Assert.AreEqual($"{expected}", hotkeyComboBox.Text); + + // verify the available values + hotkeyComboBox.Click(); + var popup = _session?.GetHotkeyPopup(); + Assert.IsNotNull(popup, "Hotkey combo box wasn't opened"); + + try + { + popup.FindElementByName(expected); // the current value should be available + + // 0 and 1 are assigned, all others should be available + for (int i = 2; i < 10; i++) + { + popup.FindElementByName($"{i}"); + } + } + catch + { + Assert.Fail("Hotkey is missed"); + } + + _session?.Click_Cancel(); + _session?.WaitUntilHidden(hotkeyComboBox!); // let the dialog window close + } + } + + [TestMethod] + public void Assign_Save() + { + var layout = CustomLayouts.CustomLayouts[4]; // a layout without assigned hotkey + _session?.Click_EditLayout(layout.Name); + + // assign hotkey + const string key = "3"; + var hotkeyComboBox = _session?.GetHotkeyComboBox(); + hotkeyComboBox?.Click(); + var popup = _session?.GetHotkeyPopup(); + _session?.Click(popup?.FindElementByName($"{key}")!); // assign a free hotkey + Assert.AreEqual(key, hotkeyComboBox?.Text); + + // verify the file + _session?.Click_Save(); + _session?.WaitUntilHidden(hotkeyComboBox!); // let the dialog window close + var hotkeys = new LayoutHotkeys(); + var actualData = hotkeys.Read(hotkeys.File); + Assert.IsTrue(actualData.LayoutHotkeys.Contains(new LayoutHotkeyWrapper { Key = int.Parse(key, CultureInfo.InvariantCulture), LayoutId = layout.Uuid })); + + // verify the availability + _session?.Click_EditLayout(CustomLayouts.CustomLayouts[5].Name); + hotkeyComboBox = _session?.GetHotkeyComboBox(); + hotkeyComboBox?.Click(); + popup = _session?.GetHotkeyPopup(); + try + { + popup?.FindElementByName($"{key}"); // verify the key is not available + Assert.Fail(key, "The assigned key is still available for other layouts."); + } + catch + { + // key not found as expected + } + } + + [TestMethod] + public void Assign_Cancel() + { + var layout = CustomLayouts.CustomLayouts[4]; // a layout without assigned hotkey + _session?.Click_EditLayout(layout.Name); + + // assign a hotkey + const string key = "3"; + var hotkeyComboBox = _session?.GetHotkeyComboBox(); + hotkeyComboBox?.Click(); + var popup = _session?.GetHotkeyPopup(); + _session?.Click(popup?.FindElementByName($"{key}")!); + Assert.AreEqual(key, hotkeyComboBox?.Text); + + // verify the file + _session?.Click_Cancel(); + _session?.WaitUntilHidden(hotkeyComboBox!); // let the dialog window close + var hotkeys = new LayoutHotkeys(); + var actualData = hotkeys.Read(hotkeys.File); + Assert.AreEqual(Hotkeys.ToString(), actualData.ToString()); + + // verify the availability + _session?.Click_EditLayout(CustomLayouts.CustomLayouts[5].Name); + hotkeyComboBox = _session?.GetHotkeyComboBox(); + hotkeyComboBox?.Click(); + popup = _session?.GetHotkeyPopup(); + try + { + popup?.FindElementByName($"{key}"); // verify the key is available + } + catch + { + Assert.Fail("The key is not available for other layouts."); + } + } + + [TestMethod] + public void Reset_Save() + { + var layout = CustomLayouts.CustomLayouts[0]; // a layout with assigned hotkey + int assignedKey = Hotkeys.LayoutHotkeys.Find(x => x.LayoutId == layout.Uuid).Key; + _session?.Click_EditLayout(layout.Name); + const string None = "None"; + + // reset the hotkey + var hotkeyComboBox = _session?.GetHotkeyComboBox(); + hotkeyComboBox?.Click(); + var popup = _session?.GetHotkeyPopup(); + _session?.Click(popup?.FindElementByName(None)!); + Assert.AreEqual(None, hotkeyComboBox?.Text); + + // verify the file + _session?.Click_Save(); + _session?.WaitUntilHidden(hotkeyComboBox!); // let the dialog window close + var hotkeys = new LayoutHotkeys(); + var actualData = hotkeys.Read(hotkeys.File); + Assert.IsFalse(actualData.LayoutHotkeys.Contains(new LayoutHotkeyWrapper { Key = assignedKey, LayoutId = layout.Uuid })); + + // verify the previously assigned key is available + _session?.Click_EditLayout(CustomLayouts.CustomLayouts[6].Name); + hotkeyComboBox = _session?.GetHotkeyComboBox(); + hotkeyComboBox?.Click(); + popup = _session?.GetHotkeyPopup(); + try + { + popup?.FindElementByName($"{assignedKey}"); // verify the key is available + } + catch + { + Assert.Fail("The key is not available for other layouts."); + } + } + + [TestMethod] + public void Reset_Cancel() + { + var layout = CustomLayouts.CustomLayouts[0]; // a layout with assigned hotkey + int assignedKey = Hotkeys.LayoutHotkeys.Find(x => x.LayoutId == layout.Uuid).Key; + _session?.Click_EditLayout(layout.Name); + const string None = "None"; + + // assign hotkey + var hotkeyComboBox = _session?.GetHotkeyComboBox(); + hotkeyComboBox?.Click(); + var popup = _session?.GetHotkeyPopup(); + _session?.Click(popup?.FindElementByName(None)!); // reset the hotkey + Assert.AreEqual(None, hotkeyComboBox?.Text); + + // verify the file + _session?.Click_Cancel(); + _session?.WaitUntilHidden(hotkeyComboBox!); // let the dialog window close + var hotkeys = new LayoutHotkeys(); + var actualData = hotkeys.Read(hotkeys.File); + Assert.IsTrue(actualData.LayoutHotkeys.Contains(new LayoutHotkeyWrapper { Key = assignedKey, LayoutId = layout.Uuid })); + + // verify the previously assigned key is not available + _session?.Click_EditLayout(CustomLayouts.CustomLayouts[6].Name); + hotkeyComboBox = _session?.GetHotkeyComboBox(); + hotkeyComboBox?.Click(); + popup = _session?.GetHotkeyPopup(); + try + { + popup?.FindElementByName($"{assignedKey}"); // verify the key is not available + Assert.Fail("The key is still available for other layouts."); + } + catch + { + // the key is not available as expected + } + } + } +} diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs index 0eba20eb9a76..4153e072c506 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs @@ -63,6 +63,7 @@ public static class AccessibilityId public const string KeySelectionComboBox = "quickKeySelectionComboBox"; public const string EditZonesButton = "editZoneLayoutButton"; public const string DeleteTextButton = "DeleteButton"; + public const string HotkeyComboBox = "quickKeySelectionComboBox"; } public WindowsDriver? Session { get; } @@ -212,6 +213,24 @@ public WindowsElement GetMonitorItem(int monitorNumber) } } + public WindowsElement? GetHotkeyComboBox() + { + return FindByAccessibilityId(AccessibilityId.HotkeyComboBox); + } + + public WindowsElement? GetHotkeyPopup() + { + try + { + return Session?.FindElementByClassName("Popup"); + } + catch + { + Assert.Fail($"Hotkey popup window not found"); + return null; + } + } + public void Click_CreateNewLayout() { var button = FindByAccessibilityId(AccessibilityId.NewLayoutButton); From c8dd5e509c9a91f4c9cfe596aa7c07dcb2a9fec1 Mon Sep 17 00:00:00 2001 From: seraphima Date: Fri, 15 Dec 2023 16:02:28 +0100 Subject: [PATCH 37/78] changed the order of template layouts --- .../fancyzones/UITests-FancyZonesEditor/Constants.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/Constants.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/Constants.cs index 467dcf3ed8f8..1c0890c438a1 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/Constants.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/Constants.cs @@ -12,8 +12,8 @@ public enum TemplateLayouts { Empty, Focus, - Rows, Columns, + Rows, Grid, PriorityGrid, } @@ -22,8 +22,8 @@ public enum TemplateLayouts { { TemplateLayouts.Empty, "No layout" }, { TemplateLayouts.Focus, "Focus" }, - { TemplateLayouts.Rows, "Rows" }, { TemplateLayouts.Columns, "Columns" }, + { TemplateLayouts.Rows, "Rows" }, { TemplateLayouts.Grid, "Grid" }, { TemplateLayouts.PriorityGrid, "Priority Grid" }, }; @@ -32,8 +32,8 @@ public enum TemplateLayouts { { TemplateLayouts.Empty, "blank" }, { TemplateLayouts.Focus, "focus" }, - { TemplateLayouts.Rows, "rows" }, { TemplateLayouts.Columns, "columns" }, + { TemplateLayouts.Rows, "rows" }, { TemplateLayouts.Grid, "grid" }, { TemplateLayouts.PriorityGrid, "priority-grid" }, }; From 7bfc29a6bad3bdb1678d86cb5f93744741aad6c7 Mon Sep 17 00:00:00 2001 From: seraphima Date: Fri, 15 Dec 2023 16:03:07 +0100 Subject: [PATCH 38/78] correct names --- .../UITests-FancyZonesEditor/TemplateLayoutsTests.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs index a555edc40d79..3b089f5b4113 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs @@ -202,7 +202,7 @@ public void TestInitialize() { new DefaultLayoutWrapper { - MonitorConfiguration = MonitorConfigurationType.Vertical.ToString(), + MonitorConfiguration = MonitorConfigurationTypeEnumExtensions.MonitorConfigurationTypeToString(MonitorConfigurationType.Vertical), Layout = new DefaultLayoutWrapper.LayoutWrapper { Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Rows], @@ -214,7 +214,7 @@ public void TestInitialize() }, new DefaultLayoutWrapper { - MonitorConfiguration = MonitorConfigurationType.Horizontal.ToString(), + MonitorConfiguration = MonitorConfigurationTypeEnumExtensions.MonitorConfigurationTypeToString(MonitorConfigurationType.Horizontal), Layout = new DefaultLayoutWrapper.LayoutWrapper { Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.PriorityGrid], From e1285aeedf401ab5e183d39a13c1557470b97ba8 Mon Sep 17 00:00:00 2001 From: seraphima Date: Fri, 15 Dec 2023 16:03:26 +0100 Subject: [PATCH 39/78] added retry attempts to wait --- .../Utils/FancyZonesEditorSession.cs | 37 +++++++++++++------ 1 file changed, 26 insertions(+), 11 deletions(-) diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs index 4153e072c506..737cd1e15051 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs @@ -242,12 +242,20 @@ public void Click_EditLayout(string layoutName) { var layout = GetLayout(layoutName); Assert.IsNotNull(layout, $"Layout \"{layoutName}\" not found"); - var editButton = layout?.FindElementByAccessibilityId(AccessibilityId.EditLayoutButton); - Assert.IsNotNull(editButton, "Edit button not found"); - editButton.Click(); - // wait until the dialog is opened - WaitElementDisplayedByName($"Edit '{layoutName}'"); + // added retry attempts, because Click can fail for some reason + bool opened = false; + int retryAttempts = 10; + while (!opened && retryAttempts > 0) + { + var editButton = layout?.FindElementByAccessibilityId(AccessibilityId.EditLayoutButton); + Assert.IsNotNull(editButton, "Edit button not found"); + editButton.Click(); + + // wait until the dialog is opened + opened = WaitElementDisplayedByName($"Edit '{layoutName}'"); + retryAttempts--; + } } public void RightClick_Layout(string layoutName) @@ -289,19 +297,26 @@ public void Click_Cancel() } } - public void WaitElementDisplayedByName(string name) + public bool WaitElementDisplayedByName(string name) { - WebDriverWait wait = new WebDriverWait(Session, TimeSpan.FromSeconds(1)); - wait.Until(pred => + try { - var element = Session?.FindElementByName(name); - if (element != null) + WebDriverWait wait = new WebDriverWait(Session, TimeSpan.FromSeconds(1)); + return wait.Until(pred => + { + var element = Session?.FindElementByName(name); + if (element != null) { return element.Displayed; } + return false; + }); + } + catch + { return false; - }); + } } public void WaitElementDisplayedById(string id) From e6a1e9d74db4397669eda00ae0d38a8cc6abd35b Mon Sep 17 00:00:00 2001 From: seraphima Date: Fri, 15 Dec 2023 17:43:06 +0100 Subject: [PATCH 40/78] replaced assert with log --- .../UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs index 737cd1e15051..cc0ff736b15f 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs @@ -292,7 +292,7 @@ public void Click_Cancel() } catch (Exception) { - Assert.Fail($"{name} not found"); + context.WriteLine($"{name} not found"); return null; } } From 00f7b34ca4b34ea724296b4fbea703d09ce1d4d0 Mon Sep 17 00:00:00 2001 From: seraphima Date: Fri, 15 Dec 2023 17:56:10 +0100 Subject: [PATCH 41/78] added hotkey test --- .../LayoutHotkeysTests.cs | 46 ++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/LayoutHotkeysTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/LayoutHotkeysTests.cs index 02f3e325418b..f0c001d89ebe 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/LayoutHotkeysTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/LayoutHotkeysTests.cs @@ -180,7 +180,7 @@ public class LayoutHotkeysTests }, new LayoutHotkeyWrapper { - LayoutId = "{F1A94F38-82B6-4876-A653-70D0E882DE2A}", + LayoutId = "{E7807D0D-6223-4883-B15B-1F3883944C09}", Key = 1, }, }, @@ -392,6 +392,50 @@ public void Assign_Cancel() } } + [TestMethod] + public void Assign_AllPossibleValues() + { + for (int i = 0; i < 10; i++) + { + string layoutName = $"Layout {i}"; + _session?.Click_EditLayout(layoutName); + + var hotkeyComboBox = _session?.GetHotkeyComboBox(); + hotkeyComboBox?.Click(); + var popup = _session?.GetHotkeyPopup(); + _session?.Click(popup?.FindElementByName($"{i}")!); + + _session?.Click_Save(); + _session?.WaitUntilHidden(hotkeyComboBox!); // let the dialog window close + } + + // check there nothing except None + { + int layout = 10; + string layoutName = $"Layout {layout}"; + _session?.Click_EditLayout(layoutName); + var hotkeyComboBox = _session?.GetHotkeyComboBox(); + hotkeyComboBox?.Click(); + var popup = _session?.GetHotkeyPopup(); + + for (int i = 0; i < 10; i++) + { + try + { + popup?.FindElementByName($"{i}"); + Assert.Fail("The assigned key is still available for other layouts."); + } + catch + { + } + } + + _session?.Click(popup?.FindElementByName($"None")!); + _session?.Click_Save(); + _session?.WaitUntilHidden(hotkeyComboBox!); // let the dialog window close + } + } + [TestMethod] public void Reset_Save() { From 9ea8773a15a3e265f20f9c26b437b91a71668c2b Mon Sep 17 00:00:00 2001 From: seraphima Date: Fri, 15 Dec 2023 17:56:23 +0100 Subject: [PATCH 42/78] default layouts tests --- .../DefaultLayoutsTests.cs | 298 ++++++++++++++++++ .../Utils/FancyZonesEditorSession.cs | 34 +- 2 files changed, 329 insertions(+), 3 deletions(-) create mode 100644 src/modules/fancyzones/UITests-FancyZonesEditor/DefaultLayoutsTests.cs diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/DefaultLayoutsTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/DefaultLayoutsTests.cs new file mode 100644 index 000000000000..e5e695c5b731 --- /dev/null +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/DefaultLayoutsTests.cs @@ -0,0 +1,298 @@ +// Copyright (c) Microsoft Corporation +// The Microsoft Corporation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System.Collections.Generic; +using FancyZonesEditorCommon.Data; +using Microsoft.FancyZonesEditor.UITests.Utils; +using Microsoft.FancyZonesEditor.UnitTests.Utils; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using static FancyZonesEditorCommon.Data.CustomLayouts; +using static FancyZonesEditorCommon.Data.DefaultLayouts; +using static FancyZonesEditorCommon.Data.EditorParameters; + +namespace Microsoft.FancyZonesEditor.UITests +{ + [TestClass] + public class DefaultLayoutsTests + { + private static readonly string Vertical = MonitorConfigurationTypeEnumExtensions.MonitorConfigurationTypeToString(MonitorConfigurationType.Vertical); + private static readonly string Horizontal = MonitorConfigurationTypeEnumExtensions.MonitorConfigurationTypeToString(MonitorConfigurationType.Horizontal); + + private static readonly CustomLayoutListWrapper CustomLayouts = new CustomLayoutListWrapper + { + CustomLayouts = new List + { + new CustomLayoutWrapper + { + Uuid = "{0D6D2F58-9184-4804-81E4-4E4CC3476DC1}", + Type = Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas], + Name = "Layout 0", + Info = new CustomLayouts().ToJsonElement(new CanvasInfoWrapper + { + RefHeight = 1080, + RefWidth = 1920, + SensitivityRadius = 10, + Zones = new List { }, + }), + }, + new CustomLayoutWrapper + { + Uuid = "{E7807D0D-6223-4883-B15B-1F3883944C09}", + Type = Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas], + Name = "Layout 1", + Info = new CustomLayouts().ToJsonElement(new CanvasInfoWrapper + { + RefHeight = 1080, + RefWidth = 1920, + SensitivityRadius = 10, + Zones = new List { }, + }), + }, + new CustomLayoutWrapper + { + Uuid = "{F1A94F38-82B6-4876-A653-70D0E882DE2A}", + Type = Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas], + Name = "Layout 2", + Info = new CustomLayouts().ToJsonElement(new CanvasInfoWrapper + { + RefHeight = 1080, + RefWidth = 1920, + SensitivityRadius = 10, + Zones = new List { }, + }), + }, + new CustomLayoutWrapper + { + Uuid = "{F5FDBC04-0760-4776-9F05-96AAC4AE613F}", + Type = Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas], + Name = "Layout 3", + Info = new CustomLayouts().ToJsonElement(new CanvasInfoWrapper + { + RefHeight = 1080, + RefWidth = 1920, + SensitivityRadius = 10, + Zones = new List { }, + }), + }, + }, + }; + + private static readonly DefaultLayoutsListWrapper Layouts = new DefaultLayoutsListWrapper + { + DefaultLayouts = new List + { + new DefaultLayoutWrapper + { + MonitorConfiguration = Horizontal, + Layout = new DefaultLayoutWrapper.LayoutWrapper + { + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Grid], + ZoneCount = 4, + ShowSpacing = true, + Spacing = 5, + SensitivityRadius = 20, + }, + }, + new DefaultLayoutWrapper + { + MonitorConfiguration = Vertical, + Layout = new DefaultLayoutWrapper.LayoutWrapper + { + Type = "custom", + Uuid = "{0D6D2F58-9184-4804-81E4-4E4CC3476DC1}", + ZoneCount = 0, + ShowSpacing = false, + Spacing = 0, + SensitivityRadius = 0, + }, + }, + }, + }; + + private static TestContext? _context; + private static FancyZonesEditorSession? _session; + private static IOTestHelper? _editorParamsIOHelper; + private static IOTestHelper? _appliedLayoutsIOHelper; + private static IOTestHelper? _customLayoutsIOHelper; + private static IOTestHelper? _defaultLayoutsIOHelper; + + [ClassInitialize] + public static void ClassInitialize(TestContext testContext) + { + _context = testContext; + + EditorParameters editorParameters = new EditorParameters(); + ParamsWrapper parameters = new ParamsWrapper + { + ProcessId = 1, + SpanZonesAcrossMonitors = false, + Monitors = new List + { + new NativeMonitorDataWrapper + { + Monitor = "monitor-1", + MonitorInstanceId = "instance-id-1", + MonitorSerialNumber = "serial-number-1", + MonitorNumber = 1, + VirtualDesktop = "{FF34D993-73F3-4B8C-AA03-73730A01D6A8}", + Dpi = 192, + LeftCoordinate = 0, + TopCoordinate = 0, + WorkAreaHeight = 1040, + WorkAreaWidth = 1920, + MonitorHeight = 1080, + MonitorWidth = 1920, + IsSelected = true, + }, + new NativeMonitorDataWrapper + { + Monitor = "monitor-2", + MonitorInstanceId = "instance-id-2", + MonitorSerialNumber = "serial-number-2", + MonitorNumber = 2, + VirtualDesktop = "{FF34D993-73F3-4B8C-AA03-73730A01D6A8}", + Dpi = 96, + LeftCoordinate = 1920, + TopCoordinate = 0, + WorkAreaHeight = 1040, + WorkAreaWidth = 1920, + MonitorHeight = 1080, + MonitorWidth = 1920, + IsSelected = true, + }, + }, + }; + _editorParamsIOHelper = new IOTestHelper(editorParameters.File); + _editorParamsIOHelper.WriteData(editorParameters.Serialize(parameters)); + + _appliedLayoutsIOHelper = new IOTestHelper(new AppliedLayouts().File); + + CustomLayouts customLayouts = new CustomLayouts(); + _customLayoutsIOHelper = new IOTestHelper(customLayouts.File); + _customLayoutsIOHelper.WriteData(customLayouts.Serialize(CustomLayouts)); + } + + [ClassCleanup] + public static void ClassCleanup() + { + _editorParamsIOHelper?.RestoreData(); + _appliedLayoutsIOHelper?.RestoreData(); + _customLayoutsIOHelper?.RestoreData(); + _context = null; + } + + [TestInitialize] + public void TestInitialize() + { + var defaultLayouts = new DefaultLayouts(); + _defaultLayoutsIOHelper = new IOTestHelper(defaultLayouts.File); + _defaultLayoutsIOHelper.WriteData(defaultLayouts.Serialize(Layouts)); + + _session = new FancyZonesEditorSession(_context!); + } + + [TestCleanup] + public void TestCleanup() + { + _session?.Close(); + _defaultLayoutsIOHelper?.RestoreData(); + } + + [TestMethod] + public void Initialize() + { + CheckTemplateLayouts(Constants.TemplateLayouts.Grid, null); + CheckCustomLayouts(string.Empty, CustomLayouts.CustomLayouts[0].Uuid); + } + + [TestMethod] + public void Assign_Cancel() + { + // assign Focus as a default horizontal and vertical layout + _session?.Click_EditLayout(Constants.TemplateLayoutNames[Constants.TemplateLayouts.Focus]); + var horizontalDefaultButton = _session?.GetHorizontalDefaultButton(false); + horizontalDefaultButton?.Click(); + var verticalDefaultButton = _session?.GetVerticalDefaultButton(false); + verticalDefaultButton?.Click(); + + // cancel + _session?.Click_Cancel(); + _session?.WaitUntilHidden(horizontalDefaultButton!); + + // check that default layouts weren't changed + CheckTemplateLayouts(Constants.TemplateLayouts.Grid, null); + CheckCustomLayouts(string.Empty, CustomLayouts.CustomLayouts[0].Uuid); + } + + [TestMethod] + public void Assign_Save() + { + // assign Focus as a default horizontal and vertical layout + _session?.Click_EditLayout(Constants.TemplateLayoutNames[Constants.TemplateLayouts.Focus]); + var horizontalDefaultButton = _session?.GetHorizontalDefaultButton(false); + horizontalDefaultButton?.Click(); + var verticalDefaultButton = _session?.GetVerticalDefaultButton(false); + verticalDefaultButton?.Click(); + + // cancel + _session?.Click_Save(); + _session?.WaitUntilHidden(horizontalDefaultButton!); + + // check that default layout was changed + CheckTemplateLayouts(Constants.TemplateLayouts.Focus, Constants.TemplateLayouts.Focus); + CheckCustomLayouts(string.Empty, string.Empty); + } + + /* + + [TestMethod] + public void AssignTemplate_ChangeTemplate() // verify the template layout will be as in the default settings + { + + }*/ + + private void CheckTemplateLayouts(Constants.TemplateLayouts? horizontalDefault, Constants.TemplateLayouts? verticalDefault) + { + foreach (var (key, name) in Constants.TemplateLayoutNames) + { + if (key == Constants.TemplateLayouts.Empty) + { + continue; + } + + _session?.Click_EditLayout(name); + + bool isCheckedHorizontal = key == horizontalDefault; + bool isCheckedVertical = key == verticalDefault; + + var horizontalDefaultButton = _session?.GetHorizontalDefaultButton(isCheckedHorizontal); + Assert.IsNotNull(horizontalDefaultButton, "Incorrect horizontal default layout set at " + name); + var verticalDefaultButton = _session?.GetVerticalDefaultButton(isCheckedVertical); + Assert.IsNotNull(verticalDefaultButton, "Incorrect vertical default layout set at " + name); + + _session?.Click_Cancel(); + _session?.WaitUntilHidden(horizontalDefaultButton!); + } + } + + private void CheckCustomLayouts(string horizontalDefaulLayouttUuid, string verticalDefaultLayoutUuid) + { + foreach (var layout in CustomLayouts.CustomLayouts) + { + _session?.Click_EditLayout(layout.Name); + + bool isCheckedHorizontal = layout.Uuid == horizontalDefaulLayouttUuid; + var horizontalDefaultButton = _session?.GetHorizontalDefaultButton(isCheckedHorizontal); + Assert.IsNotNull(horizontalDefaultButton, "Incorrect horizontal custom layout set at " + layout.Name); + + bool isCheckedVertical = layout.Uuid == verticalDefaultLayoutUuid; + var verticalDefaultButton = _session?.GetVerticalDefaultButton(isCheckedVertical); + Assert.IsNotNull(verticalDefaultButton, "Incorrect vertical custom layout set at " + layout.Name); + + _session?.Click_Cancel(); + _session?.WaitUntilHidden(horizontalDefaultButton!); + } + } + } +} diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs index cc0ff736b15f..e4e16407bca8 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs @@ -52,6 +52,10 @@ public static class AccessibilityId public const string SensitivitySlider = "SensitivityInput"; public const string SpacingSlider = "Spacing"; public const string SpacingToggle = "spaceAroundSetting"; + public const string HorizontalDefaultButtonUnchecked = "SetLayoutAsHorizontalDefaultButton"; + public const string VerticalDefaultButtonUnchecked = "SetLayoutAsVerticalDefaultButton"; + public const string HorizontalDefaultButtonChecked = "HorizontalDefaultLayoutButton"; + public const string VerticalDefaultButtonChecked = "VerticalDefaultLayoutButton"; // edit template layout window public const string CopyTemplate = "createFromTemplateLayoutButton"; @@ -231,6 +235,30 @@ public WindowsElement GetMonitorItem(int monitorNumber) } } + public WindowsElement? GetHorizontalDefaultButton(bool isChecked) + { + if (isChecked) + { + return FindByAccessibilityId(AccessibilityId.HorizontalDefaultButtonChecked); + } + else + { + return FindByAccessibilityId(AccessibilityId.HorizontalDefaultButtonUnchecked); + } + } + + public WindowsElement? GetVerticalDefaultButton(bool isChecked) + { + if (isChecked) + { + return FindByAccessibilityId(AccessibilityId.VerticalDefaultButtonChecked); + } + else + { + return FindByAccessibilityId(AccessibilityId.VerticalDefaultButtonUnchecked); + } + } + public void Click_CreateNewLayout() { var button = FindByAccessibilityId(AccessibilityId.NewLayoutButton); @@ -306,9 +334,9 @@ public bool WaitElementDisplayedByName(string name) { var element = Session?.FindElementByName(name); if (element != null) - { - return element.Displayed; - } + { + return element.Displayed; + } return false; }); From f6ba9687aa407f362caac240d393297459101ce3 Mon Sep 17 00:00:00 2001 From: seraphima Date: Fri, 15 Dec 2023 19:05:52 +0100 Subject: [PATCH 43/78] spelling --- .../UITests-FancyZonesEditor/DefaultLayoutsTests.cs | 4 ++-- .../UITests-FancyZonesEditor/RunFancyZonesEditorTest.cs | 2 +- .../{UIInitializaionTests.cs => UIInitializationTests.cs} | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) rename src/modules/fancyzones/UITests-FancyZonesEditor/{UIInitializaionTests.cs => UIInitializationTests.cs} (99%) diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/DefaultLayoutsTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/DefaultLayoutsTests.cs index e5e695c5b731..fe8c9cd60cd1 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/DefaultLayoutsTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/DefaultLayoutsTests.cs @@ -276,13 +276,13 @@ private void CheckTemplateLayouts(Constants.TemplateLayouts? horizontalDefault, } } - private void CheckCustomLayouts(string horizontalDefaulLayouttUuid, string verticalDefaultLayoutUuid) + private void CheckCustomLayouts(string horizontalDefaultLayoutUuid, string verticalDefaultLayoutUuid) { foreach (var layout in CustomLayouts.CustomLayouts) { _session?.Click_EditLayout(layout.Name); - bool isCheckedHorizontal = layout.Uuid == horizontalDefaulLayouttUuid; + bool isCheckedHorizontal = layout.Uuid == horizontalDefaultLayoutUuid; var horizontalDefaultButton = _session?.GetHorizontalDefaultButton(isCheckedHorizontal); Assert.IsNotNull(horizontalDefaultButton, "Incorrect horizontal custom layout set at " + layout.Name); diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/RunFancyZonesEditorTest.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/RunFancyZonesEditorTest.cs index d30fafe75a2e..7b0a00df6662 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/RunFancyZonesEditorTest.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/RunFancyZonesEditorTest.cs @@ -24,7 +24,7 @@ public static void ClassInitialize(TestContext testContext) { _context = testContext; - // prepare files to launch Editor without errors + // prepare test editor parameters with 2 monitors before launching the editor EditorParameters editorParameters = new EditorParameters(); EditorParameters.ParamsWrapper parameters = new EditorParameters.ParamsWrapper { diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializaionTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializationTests.cs similarity index 99% rename from src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializaionTests.cs rename to src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializationTests.cs index f546160fa02f..18951380a3c1 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializaionTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializationTests.cs @@ -12,7 +12,7 @@ namespace Microsoft.FancyZonesEditor.UITests { [TestClass] - public class UIInitializaionTests + public class UIInitializationTests { private static TestContext? _context; private static FancyZonesEditorSession? _session; From e7ddc6e1e58b4a23e3e842cbcb97d2113fd4e2af Mon Sep 17 00:00:00 2001 From: seraphima Date: Fri, 15 Dec 2023 19:12:37 +0100 Subject: [PATCH 44/78] build fix --- .../UnitTests-FancyZonesEditor/DefaultLayoutsModelTests.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/modules/fancyzones/UnitTests-FancyZonesEditor/DefaultLayoutsModelTests.cs b/src/modules/fancyzones/UnitTests-FancyZonesEditor/DefaultLayoutsModelTests.cs index 2c6f33f18efe..bdbb0aa0e210 100644 --- a/src/modules/fancyzones/UnitTests-FancyZonesEditor/DefaultLayoutsModelTests.cs +++ b/src/modules/fancyzones/UnitTests-FancyZonesEditor/DefaultLayoutsModelTests.cs @@ -1,7 +1,9 @@ // Copyright (c) Microsoft Corporation // The Microsoft Corporation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. + using FancyZonesEditor.Models; +using FancyZonesEditorCommon.Data; namespace UnitTestsFancyZonesEditor; From 69c9c91b6ad3f4157d47b8c8c4c7413638a0e975 Mon Sep 17 00:00:00 2001 From: seraphima Date: Fri, 22 Mar 2024 14:38:22 +0100 Subject: [PATCH 45/78] fix after conflicts --- .../CustomLayoutsTests.cs | 4 ++-- .../RunFancyZonesEditorTest.cs | 20 +++++++++++++++---- .../FancyZonesEditor/MainWindow.xaml.cs | 1 - 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs index a732b5eceeb1..59f05e904bb8 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs @@ -31,7 +31,7 @@ public class CustomLayoutsTests Columns = 3, RowsPercentage = new List { 2967, 7033 }, ColumnsPercentage = new List { 2410, 6040, 1550 }, - CellChildMap = new int[][] { new int[] { 0, 1, 1 }, new int[] { 0, 2, 3 } }, + CellChildMap = new int[][] { [0, 1, 1], [0, 2, 3] }, SensitivityRadius = 30, Spacing = 26, ShowSpacing = false, @@ -84,7 +84,7 @@ public class CustomLayoutsTests Columns = 3, RowsPercentage = new List { 2967, 7033 }, ColumnsPercentage = new List { 2410, 6040, 1550 }, - CellChildMap = new int[][] { new int[] { 0, 1, 1 }, new int[] { 0, 2, 3 } }, + CellChildMap = new int[][] { [0, 1, 1], [0, 2, 3] }, SensitivityRadius = 30, Spacing = 10, ShowSpacing = true, diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/RunFancyZonesEditorTest.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/RunFancyZonesEditorTest.cs index 7b0a00df6662..b4275ec51d6b 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/RunFancyZonesEditorTest.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/RunFancyZonesEditorTest.cs @@ -4,10 +4,8 @@ using System.Collections.Generic; using FancyZonesEditorCommon.Data; -using Microsoft.FancyZonesEditor.UITests; using Microsoft.FancyZonesEditor.UnitTests.Utils; using Microsoft.VisualStudio.TestTools.UnitTesting; -using static FancyZonesEditorCommon.Data.EditorParameters; namespace Microsoft.FancyZonesEditor.UITests { @@ -15,8 +13,6 @@ namespace Microsoft.FancyZonesEditor.UITests public class RunFancyZonesEditorTest { private static FancyZonesEditorSession? _session; - private static IOTestHelper? _editorParamsIOHelper; - private static IOTestHelper? _appliedLayoutsIOHelper; private static TestContext? _context; [ClassInitialize] @@ -48,6 +44,22 @@ public static void ClassInitialize(TestContext testContext) MonitorWidth = 1920, IsSelected = true, }, + new EditorParameters.NativeMonitorDataWrapper + { + Monitor = "monitor-2", + MonitorInstanceId = "instance-id-2", + MonitorSerialNumber = "serial-number-2", + MonitorNumber = 2, + VirtualDesktop = "{FF34D993-73F3-4B8C-AA03-73730A01D6A8}", + Dpi = 96, + LeftCoordinate = 1920, + TopCoordinate = 0, + WorkAreaHeight = 1040, + WorkAreaWidth = 1920, + MonitorHeight = 1080, + MonitorWidth = 1920, + IsSelected = false, + }, }, }; FancyZonesEditorSession.Files.ParamsIOHelper.WriteData(editorParameters.Serialize(parameters)); diff --git a/src/modules/fancyzones/editor/FancyZonesEditor/MainWindow.xaml.cs b/src/modules/fancyzones/editor/FancyZonesEditor/MainWindow.xaml.cs index 196350a8d043..203275a20324 100644 --- a/src/modules/fancyzones/editor/FancyZonesEditor/MainWindow.xaml.cs +++ b/src/modules/fancyzones/editor/FancyZonesEditor/MainWindow.xaml.cs @@ -5,7 +5,6 @@ using System; using System.Collections.Generic; using System.Globalization; -using System.Runtime.InteropServices; using System.Text; using System.Windows; using System.Windows.Automation; From 016030ae33f0df240162b0252fd6adf4b6a34873 Mon Sep 17 00:00:00 2001 From: seraphima Date: Fri, 22 Mar 2024 14:41:42 +0100 Subject: [PATCH 46/78] update tests --- .../CustomLayoutsTests.cs | 105 +++++++++--- .../DefaultLayoutsTests.cs | 105 ++++++++---- .../LayoutHotkeysTests.cs | 106 ++++++++---- .../TemplateLayoutsTests.cs | 153 +++++++----------- .../UIInitializationTests.cs | 104 ++++++++++-- 5 files changed, 383 insertions(+), 190 deletions(-) diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs index 59f05e904bb8..86ecfc0eb4ec 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs @@ -4,7 +4,6 @@ using System.Collections.Generic; using FancyZonesEditorCommon.Data; -using Microsoft.FancyZonesEditor.UITests.Utils; using Microsoft.FancyZonesEditor.UnitTests.Utils; using Microsoft.VisualStudio.TestTools.UnitTesting; using OpenQA.Selenium; @@ -95,14 +94,24 @@ public class CustomLayoutsTests private static TestContext? _context; private static FancyZonesEditorSession? _session; - private static IOTestHelper? _editorParamsIOHelper; - private static IOTestHelper? _appliedLayoutsIOHelper; - private static IOTestHelper? _customLayoutsIOHelper; [ClassInitialize] public static void ClassInitialize(TestContext testContext) { _context = testContext; + } + + [ClassCleanup] + public static void ClassCleanup() + { + _context = null; + } + + [TestInitialize] + public void TestInitialize() + { + CustomLayouts customLayouts = new CustomLayouts(); + FancyZonesEditorSession.Files.CustomLayoutsIOHelper.WriteData(customLayouts.Serialize(Layouts)); EditorParameters editorParameters = new EditorParameters(); ParamsWrapper parameters = new ParamsWrapper @@ -129,26 +138,78 @@ public static void ClassInitialize(TestContext testContext) }, }, }; - _editorParamsIOHelper = new IOTestHelper(editorParameters.File); - _editorParamsIOHelper.WriteData(editorParameters.Serialize(parameters)); + FancyZonesEditorSession.Files.ParamsIOHelper.WriteData(editorParameters.Serialize(parameters)); - _appliedLayoutsIOHelper = new IOTestHelper(new AppliedLayouts().File); - } + LayoutTemplates layoutTemplates = new LayoutTemplates(); + LayoutTemplates.TemplateLayoutsListWrapper templateLayoutsListWrapper = new LayoutTemplates.TemplateLayoutsListWrapper + { + LayoutTemplates = new List + { + new LayoutTemplates.TemplateLayoutWrapper + { + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Empty], + }, + new LayoutTemplates.TemplateLayoutWrapper + { + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Focus], + ZoneCount = 10, + }, + new LayoutTemplates.TemplateLayoutWrapper + { + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Rows], + ZoneCount = 2, + ShowSpacing = true, + Spacing = 10, + SensitivityRadius = 10, + }, + new LayoutTemplates.TemplateLayoutWrapper + { + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Columns], + ZoneCount = 2, + ShowSpacing = true, + Spacing = 20, + SensitivityRadius = 20, + }, + new LayoutTemplates.TemplateLayoutWrapper + { + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Grid], + ZoneCount = 4, + ShowSpacing = false, + Spacing = 10, + SensitivityRadius = 30, + }, + new LayoutTemplates.TemplateLayoutWrapper + { + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.PriorityGrid], + ZoneCount = 3, + ShowSpacing = true, + Spacing = 1, + SensitivityRadius = 40, + }, + }, + }; + FancyZonesEditorSession.Files.LayoutTemplatesIOHelper.WriteData(layoutTemplates.Serialize(templateLayoutsListWrapper)); - [ClassCleanup] - public static void ClassCleanup() - { - _editorParamsIOHelper?.RestoreData(); - _appliedLayoutsIOHelper?.RestoreData(); - _context = null; - } + DefaultLayouts defaultLayouts = new DefaultLayouts(); + DefaultLayouts.DefaultLayoutsListWrapper defaultLayoutsListWrapper = new DefaultLayouts.DefaultLayoutsListWrapper + { + DefaultLayouts = new List { }, + }; + FancyZonesEditorSession.Files.DefaultLayoutsIOHelper.WriteData(defaultLayouts.Serialize(defaultLayoutsListWrapper)); - [TestInitialize] - public void TestInitialize() - { - CustomLayouts customLayouts = new CustomLayouts(); - _customLayoutsIOHelper = new IOTestHelper(customLayouts.File); - _customLayoutsIOHelper.WriteData(customLayouts.Serialize(Layouts)); + LayoutHotkeys layoutHotkeys = new LayoutHotkeys(); + LayoutHotkeys.LayoutHotkeysWrapper layoutHotkeysWrapper = new LayoutHotkeys.LayoutHotkeysWrapper + { + LayoutHotkeys = new List { }, + }; + FancyZonesEditorSession.Files.LayoutHotkeysIOHelper.WriteData(layoutHotkeys.Serialize(layoutHotkeysWrapper)); + + AppliedLayouts appliedLayouts = new AppliedLayouts(); + AppliedLayouts.AppliedLayoutsListWrapper appliedLayoutsWrapper = new AppliedLayouts.AppliedLayoutsListWrapper + { + AppliedLayouts = new List { }, + }; + FancyZonesEditorSession.Files.AppliedLayoutsIOHelper.WriteData(appliedLayouts.Serialize(appliedLayoutsWrapper)); _session = new FancyZonesEditorSession(_context!); } @@ -157,7 +218,7 @@ public void TestInitialize() public void TestCleanup() { _session?.Close(); - _customLayoutsIOHelper?.RestoreData(); + FancyZonesEditorSession.Files.Restore(); } [TestMethod] diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/DefaultLayoutsTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/DefaultLayoutsTests.cs index fe8c9cd60cd1..d6f7d64bce8f 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/DefaultLayoutsTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/DefaultLayoutsTests.cs @@ -4,7 +4,6 @@ using System.Collections.Generic; using FancyZonesEditorCommon.Data; -using Microsoft.FancyZonesEditor.UITests.Utils; using Microsoft.FancyZonesEditor.UnitTests.Utils; using Microsoft.VisualStudio.TestTools.UnitTesting; using static FancyZonesEditorCommon.Data.CustomLayouts; @@ -112,15 +111,24 @@ public class DefaultLayoutsTests private static TestContext? _context; private static FancyZonesEditorSession? _session; - private static IOTestHelper? _editorParamsIOHelper; - private static IOTestHelper? _appliedLayoutsIOHelper; - private static IOTestHelper? _customLayoutsIOHelper; - private static IOTestHelper? _defaultLayoutsIOHelper; [ClassInitialize] public static void ClassInitialize(TestContext testContext) { _context = testContext; + } + + [ClassCleanup] + public static void ClassCleanup() + { + _context = null; + } + + [TestInitialize] + public void TestInitialize() + { + var defaultLayouts = new DefaultLayouts(); + FancyZonesEditorSession.Files.DefaultLayoutsIOHelper.WriteData(defaultLayouts.Serialize(Layouts)); EditorParameters editorParameters = new EditorParameters(); ParamsWrapper parameters = new ParamsWrapper @@ -163,31 +171,74 @@ public static void ClassInitialize(TestContext testContext) }, }, }; - _editorParamsIOHelper = new IOTestHelper(editorParameters.File); - _editorParamsIOHelper.WriteData(editorParameters.Serialize(parameters)); - - _appliedLayoutsIOHelper = new IOTestHelper(new AppliedLayouts().File); + FancyZonesEditorSession.Files.ParamsIOHelper.WriteData(editorParameters.Serialize(parameters)); CustomLayouts customLayouts = new CustomLayouts(); - _customLayoutsIOHelper = new IOTestHelper(customLayouts.File); - _customLayoutsIOHelper.WriteData(customLayouts.Serialize(CustomLayouts)); - } + FancyZonesEditorSession.Files.CustomLayoutsIOHelper.WriteData(customLayouts.Serialize(CustomLayouts)); - [ClassCleanup] - public static void ClassCleanup() - { - _editorParamsIOHelper?.RestoreData(); - _appliedLayoutsIOHelper?.RestoreData(); - _customLayoutsIOHelper?.RestoreData(); - _context = null; - } + LayoutTemplates layoutTemplates = new LayoutTemplates(); + LayoutTemplates.TemplateLayoutsListWrapper templateLayoutsListWrapper = new LayoutTemplates.TemplateLayoutsListWrapper + { + LayoutTemplates = new List + { + new LayoutTemplates.TemplateLayoutWrapper + { + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Empty], + }, + new LayoutTemplates.TemplateLayoutWrapper + { + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Focus], + ZoneCount = 10, + }, + new LayoutTemplates.TemplateLayoutWrapper + { + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Rows], + ZoneCount = 2, + ShowSpacing = true, + Spacing = 10, + SensitivityRadius = 10, + }, + new LayoutTemplates.TemplateLayoutWrapper + { + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Columns], + ZoneCount = 2, + ShowSpacing = true, + Spacing = 20, + SensitivityRadius = 20, + }, + new LayoutTemplates.TemplateLayoutWrapper + { + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Grid], + ZoneCount = 4, + ShowSpacing = false, + Spacing = 10, + SensitivityRadius = 30, + }, + new LayoutTemplates.TemplateLayoutWrapper + { + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.PriorityGrid], + ZoneCount = 3, + ShowSpacing = true, + Spacing = 1, + SensitivityRadius = 40, + }, + }, + }; + FancyZonesEditorSession.Files.LayoutTemplatesIOHelper.WriteData(layoutTemplates.Serialize(templateLayoutsListWrapper)); - [TestInitialize] - public void TestInitialize() - { - var defaultLayouts = new DefaultLayouts(); - _defaultLayoutsIOHelper = new IOTestHelper(defaultLayouts.File); - _defaultLayoutsIOHelper.WriteData(defaultLayouts.Serialize(Layouts)); + LayoutHotkeys layoutHotkeys = new LayoutHotkeys(); + LayoutHotkeys.LayoutHotkeysWrapper layoutHotkeysWrapper = new LayoutHotkeys.LayoutHotkeysWrapper + { + LayoutHotkeys = new List { }, + }; + FancyZonesEditorSession.Files.LayoutHotkeysIOHelper.WriteData(layoutHotkeys.Serialize(layoutHotkeysWrapper)); + + AppliedLayouts appliedLayouts = new AppliedLayouts(); + AppliedLayouts.AppliedLayoutsListWrapper appliedLayoutsWrapper = new AppliedLayouts.AppliedLayoutsListWrapper + { + AppliedLayouts = new List { }, + }; + FancyZonesEditorSession.Files.AppliedLayoutsIOHelper.WriteData(appliedLayouts.Serialize(appliedLayoutsWrapper)); _session = new FancyZonesEditorSession(_context!); } @@ -196,7 +247,7 @@ public void TestInitialize() public void TestCleanup() { _session?.Close(); - _defaultLayoutsIOHelper?.RestoreData(); + FancyZonesEditorSession.Files.Restore(); } [TestMethod] diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/LayoutHotkeysTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/LayoutHotkeysTests.cs index f0c001d89ebe..b2d121c52d74 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/LayoutHotkeysTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/LayoutHotkeysTests.cs @@ -7,7 +7,6 @@ using System.Globalization; using System.Linq; using FancyZonesEditorCommon.Data; -using Microsoft.FancyZonesEditor.UITests.Utils; using Microsoft.FancyZonesEditor.UnitTests.Utils; using Microsoft.VisualStudio.TestTools.UnitTesting; using static FancyZonesEditorCommon.Data.CustomLayouts; @@ -188,16 +187,22 @@ public class LayoutHotkeysTests private static TestContext? _context; private static FancyZonesEditorSession? _session; - private static IOTestHelper? _editorParamsIOHelper; - private static IOTestHelper? _appliedLayoutsIOHelper; - private static IOTestHelper? _customLayoutsIOHelper; - private static IOTestHelper? _layoutHotkeysIOHelper; [ClassInitialize] public static void ClassInitialize(TestContext testContext) { _context = testContext; + } + + [ClassCleanup] + public static void ClassCleanup() + { + _context = null; + } + [TestInitialize] + public void TestInitialize() + { EditorParameters editorParameters = new EditorParameters(); ParamsWrapper parameters = new ParamsWrapper { @@ -223,31 +228,77 @@ public static void ClassInitialize(TestContext testContext) }, }, }; - _editorParamsIOHelper = new IOTestHelper(editorParameters.File); - _editorParamsIOHelper.WriteData(editorParameters.Serialize(parameters)); - - _appliedLayoutsIOHelper = new IOTestHelper(new AppliedLayouts().File); + FancyZonesEditorSession.Files.ParamsIOHelper.WriteData(editorParameters.Serialize(parameters)); CustomLayouts customLayouts = new CustomLayouts(); - _customLayoutsIOHelper = new IOTestHelper(customLayouts.File); - _customLayoutsIOHelper.WriteData(customLayouts.Serialize(CustomLayouts)); - } + FancyZonesEditorSession.Files.CustomLayoutsIOHelper.WriteData(customLayouts.Serialize(CustomLayouts)); - [ClassCleanup] - public static void ClassCleanup() - { - _editorParamsIOHelper?.RestoreData(); - _appliedLayoutsIOHelper?.RestoreData(); - _customLayoutsIOHelper?.RestoreData(); - _context = null; - } - - [TestInitialize] - public void TestInitialize() - { var layoutHotkeys = new LayoutHotkeys(); - _layoutHotkeysIOHelper = new IOTestHelper(layoutHotkeys.File); - _layoutHotkeysIOHelper.WriteData(layoutHotkeys.Serialize(Hotkeys)); + FancyZonesEditorSession.Files.LayoutHotkeysIOHelper.WriteData(layoutHotkeys.Serialize(Hotkeys)); + + LayoutTemplates layoutTemplates = new LayoutTemplates(); + LayoutTemplates.TemplateLayoutsListWrapper templateLayoutsListWrapper = new LayoutTemplates.TemplateLayoutsListWrapper + { + LayoutTemplates = new List + { + new LayoutTemplates.TemplateLayoutWrapper + { + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Empty], + }, + new LayoutTemplates.TemplateLayoutWrapper + { + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Focus], + ZoneCount = 10, + }, + new LayoutTemplates.TemplateLayoutWrapper + { + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Rows], + ZoneCount = 2, + ShowSpacing = true, + Spacing = 10, + SensitivityRadius = 10, + }, + new LayoutTemplates.TemplateLayoutWrapper + { + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Columns], + ZoneCount = 2, + ShowSpacing = true, + Spacing = 20, + SensitivityRadius = 20, + }, + new LayoutTemplates.TemplateLayoutWrapper + { + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Grid], + ZoneCount = 4, + ShowSpacing = false, + Spacing = 10, + SensitivityRadius = 30, + }, + new LayoutTemplates.TemplateLayoutWrapper + { + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.PriorityGrid], + ZoneCount = 3, + ShowSpacing = true, + Spacing = 1, + SensitivityRadius = 40, + }, + }, + }; + FancyZonesEditorSession.Files.LayoutTemplatesIOHelper.WriteData(layoutTemplates.Serialize(templateLayoutsListWrapper)); + + DefaultLayouts defaultLayouts = new DefaultLayouts(); + DefaultLayouts.DefaultLayoutsListWrapper defaultLayoutsListWrapper = new DefaultLayouts.DefaultLayoutsListWrapper + { + DefaultLayouts = new List { }, + }; + FancyZonesEditorSession.Files.DefaultLayoutsIOHelper.WriteData(defaultLayouts.Serialize(defaultLayoutsListWrapper)); + + AppliedLayouts appliedLayouts = new AppliedLayouts(); + AppliedLayouts.AppliedLayoutsListWrapper appliedLayoutsWrapper = new AppliedLayouts.AppliedLayoutsListWrapper + { + AppliedLayouts = new List { }, + }; + FancyZonesEditorSession.Files.AppliedLayoutsIOHelper.WriteData(appliedLayouts.Serialize(appliedLayoutsWrapper)); try { @@ -271,8 +322,7 @@ public void TestCleanup() } _session?.Close(); - - _layoutHotkeysIOHelper?.RestoreData(); + FancyZonesEditorSession.Files.Restore(); } [TestMethod] diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs index 3b089f5b4113..06d312423961 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs @@ -4,7 +4,6 @@ using System.Collections.Generic; using FancyZonesEditorCommon.Data; -using Microsoft.FancyZonesEditor.UITests.Utils; using Microsoft.FancyZonesEditor.UnitTests.Utils; using Microsoft.VisualStudio.TestTools.UnitTesting; using OpenQA.Selenium; @@ -68,47 +67,25 @@ public class TemplateLayoutsTests private static TestContext? _context; private static FancyZonesEditorSession? _session; - private static IOTestHelper? _editorParamsIOHelper; - private static IOTestHelper? _templatesIOHelper; - private static IOTestHelper? _defaultLayoutsIOHelper; - private static IOTestHelper? _appliedLayoutsIOHelper; [ClassInitialize] public static void ClassInitialize(TestContext testContext) { _context = testContext; + } - EditorParameters editorParameters = new EditorParameters(); - ParamsWrapper parameters = new ParamsWrapper - { - ProcessId = 1, - SpanZonesAcrossMonitors = false, - Monitors = new List - { - new NativeMonitorDataWrapper - { - Monitor = "monitor-1", - MonitorInstanceId = "instance-id-1", - MonitorSerialNumber = "serial-number-1", - MonitorNumber = 1, - VirtualDesktop = "{FF34D993-73F3-4B8C-AA03-73730A01D6A8}", - Dpi = 192, - LeftCoordinate = 0, - TopCoordinate = 0, - WorkAreaHeight = 1040, - WorkAreaWidth = 1920, - MonitorHeight = 1080, - MonitorWidth = 1920, - IsSelected = true, - }, - }, - }; - _editorParamsIOHelper = new IOTestHelper(editorParameters.File); - _editorParamsIOHelper.WriteData(editorParameters.Serialize(parameters)); + [ClassCleanup] + public static void ClassCleanup() + { + FancyZonesEditorSession.Files.Restore(); + _context = null; + } + [TestInitialize] + public void TestInitialize() + { LayoutTemplates layoutTemplates = new LayoutTemplates(); - _templatesIOHelper = new IOTestHelper(layoutTemplates.File); - _templatesIOHelper.WriteData(layoutTemplates.Serialize(Layouts)); + FancyZonesEditorSession.Files.LayoutTemplatesIOHelper.WriteData(layoutTemplates.Serialize(Layouts)); // Default layouts should match templates DefaultLayouts defaultLayouts = new DefaultLayouts(); @@ -118,10 +95,10 @@ public static void ClassInitialize(TestContext testContext) { new DefaultLayoutWrapper { - MonitorConfiguration = MonitorConfigurationType.Vertical.ToString(), + MonitorConfiguration = MonitorConfigurationTypeEnumExtensions.MonitorConfigurationTypeToString(MonitorConfigurationType.Vertical), Layout = new DefaultLayoutWrapper.LayoutWrapper { - Type = Constants.TemplateLayoutJsonTags[Constants.TemplateLayout.Rows], + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Rows], ZoneCount = 2, ShowSpacing = true, Spacing = 10, @@ -130,10 +107,10 @@ public static void ClassInitialize(TestContext testContext) }, new DefaultLayoutWrapper { - MonitorConfiguration = MonitorConfigurationType.Horizontal.ToString(), + MonitorConfiguration = MonitorConfigurationTypeEnumExtensions.MonitorConfigurationTypeToString(MonitorConfigurationType.Horizontal), Layout = new DefaultLayoutWrapper.LayoutWrapper { - Type = Constants.TemplateLayoutJsonTags[Constants.TemplateLayout.PriorityGrid], + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.PriorityGrid], ZoneCount = 3, ShowSpacing = true, Spacing = 1, @@ -142,8 +119,34 @@ public static void ClassInitialize(TestContext testContext) }, }, }; - _defaultLayoutsIOHelper = new IOTestHelper(defaultLayouts.File); - _defaultLayoutsIOHelper.WriteData(defaultLayouts.Serialize(defaultLayoutsList)); + FancyZonesEditorSession.Files.DefaultLayoutsIOHelper.WriteData(defaultLayouts.Serialize(defaultLayoutsList)); + + EditorParameters editorParameters = new EditorParameters(); + ParamsWrapper parameters = new ParamsWrapper + { + ProcessId = 1, + SpanZonesAcrossMonitors = false, + Monitors = new List + { + new NativeMonitorDataWrapper + { + Monitor = "monitor-1", + MonitorInstanceId = "instance-id-1", + MonitorSerialNumber = "serial-number-1", + MonitorNumber = 1, + VirtualDesktop = "{FF34D993-73F3-4B8C-AA03-73730A01D6A8}", + Dpi = 192, + LeftCoordinate = 0, + TopCoordinate = 0, + WorkAreaHeight = 1040, + WorkAreaWidth = 1920, + MonitorHeight = 1080, + MonitorWidth = 1920, + IsSelected = true, + }, + }, + }; + FancyZonesEditorSession.Files.ParamsIOHelper.WriteData(editorParameters.Serialize(parameters)); // Make sure applied layouts don't replate template settings AppliedLayouts appliedLayouts = new AppliedLayouts(); @@ -163,7 +166,8 @@ public static void ClassInitialize(TestContext testContext) }, AppliedLayout = new AppliedLayoutWrapper.LayoutWrapper { - Type = Constants.TemplateLayoutJsonTags[Constants.TemplateLayout.PriorityGrid], + Uuid = "{72409DFC-2B87-469B-AAC4-557273791C26}", + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.PriorityGrid], ZoneCount = 3, ShowSpacing = true, Spacing = 1, @@ -172,62 +176,21 @@ public static void ClassInitialize(TestContext testContext) }, }, }; - _appliedLayoutsIOHelper = new IOTestHelper(appliedLayouts.File); - _appliedLayoutsIOHelper.WriteData(appliedLayouts.Serialize(appliedLayoutsList)); - } - - [ClassCleanup] - public static void ClassCleanup() - { - _editorParamsIOHelper?.RestoreData(); - _templatesIOHelper?.RestoreData(); - _defaultLayoutsIOHelper?.RestoreData(); - _appliedLayoutsIOHelper?.RestoreData(); - - _context = null; - } + FancyZonesEditorSession.Files.AppliedLayoutsIOHelper.WriteData(appliedLayouts.Serialize(appliedLayoutsList)); - [TestInitialize] - public void TestInitialize() - { - LayoutTemplates layoutTemplates = new LayoutTemplates(); - _templatesIOHelper = new IOTestHelper(layoutTemplates.File); - _templatesIOHelper.WriteData(layoutTemplates.Serialize(Layouts)); + CustomLayouts customLayouts = new CustomLayouts(); + CustomLayouts.CustomLayoutListWrapper customLayoutListWrapper = new CustomLayouts.CustomLayoutListWrapper + { + CustomLayouts = new List { }, + }; + FancyZonesEditorSession.Files.CustomLayoutsIOHelper.WriteData(customLayouts.Serialize(customLayoutListWrapper)); - // Default layouts should match templates - DefaultLayouts defaultLayouts = new DefaultLayouts(); - DefaultLayoutsListWrapper defaultLayoutsList = new DefaultLayoutsListWrapper + LayoutHotkeys layoutHotkeys = new LayoutHotkeys(); + LayoutHotkeys.LayoutHotkeysWrapper layoutHotkeysWrapper = new LayoutHotkeys.LayoutHotkeysWrapper { - DefaultLayouts = new List - { - new DefaultLayoutWrapper - { - MonitorConfiguration = MonitorConfigurationTypeEnumExtensions.MonitorConfigurationTypeToString(MonitorConfigurationType.Vertical), - Layout = new DefaultLayoutWrapper.LayoutWrapper - { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Rows], - ZoneCount = 2, - ShowSpacing = true, - Spacing = 10, - SensitivityRadius = 10, - }, - }, - new DefaultLayoutWrapper - { - MonitorConfiguration = MonitorConfigurationTypeEnumExtensions.MonitorConfigurationTypeToString(MonitorConfigurationType.Horizontal), - Layout = new DefaultLayoutWrapper.LayoutWrapper - { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.PriorityGrid], - ZoneCount = 3, - ShowSpacing = true, - Spacing = 1, - SensitivityRadius = 40, - }, - }, - }, + LayoutHotkeys = new List { }, }; - _defaultLayoutsIOHelper = new IOTestHelper(defaultLayouts.File); - _defaultLayoutsIOHelper.WriteData(defaultLayouts.Serialize(defaultLayoutsList)); + FancyZonesEditorSession.Files.LayoutHotkeysIOHelper.WriteData(layoutHotkeys.Serialize(layoutHotkeysWrapper)); _session = new FancyZonesEditorSession(_context!); } @@ -236,9 +199,7 @@ public void TestInitialize() public void TestCleanup() { _session?.Close(); - - _templatesIOHelper?.RestoreData(); - _defaultLayoutsIOHelper?.RestoreData(); + FancyZonesEditorSession.Files.Restore(); } [TestMethod] diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializationTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializationTests.cs index 18951380a3c1..ee4c6a77fbb8 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializationTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializationTests.cs @@ -4,7 +4,6 @@ using System.Collections.Generic; using FancyZonesEditorCommon.Data; -using Microsoft.FancyZonesEditor.UITests.Utils; using Microsoft.FancyZonesEditor.UnitTests.Utils; using Microsoft.VisualStudio.TestTools.UnitTesting; using static FancyZonesEditorCommon.Data.EditorParameters; @@ -16,31 +15,106 @@ public class UIInitializationTests { private static TestContext? _context; private static FancyZonesEditorSession? _session; - private static IOTestHelper? _editorParamsIOHelper; - private static IOTestHelper? _appliedLayoutsIOHelper; [ClassInitialize] public static void ClassInitialize(TestContext testContext) { _context = testContext; - - _appliedLayoutsIOHelper = new IOTestHelper(new AppliedLayouts().File); } [ClassCleanup] public static void ClassCleanup() { - _appliedLayoutsIOHelper?.RestoreData(); - _context = null; } + [TestInitialize] + public void TestInitialize() + { + LayoutTemplates layoutTemplates = new LayoutTemplates(); + LayoutTemplates.TemplateLayoutsListWrapper templateLayoutsListWrapper = new LayoutTemplates.TemplateLayoutsListWrapper + { + LayoutTemplates = new List + { + new LayoutTemplates.TemplateLayoutWrapper + { + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Empty], + }, + new LayoutTemplates.TemplateLayoutWrapper + { + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Focus], + ZoneCount = 10, + }, + new LayoutTemplates.TemplateLayoutWrapper + { + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Rows], + ZoneCount = 2, + ShowSpacing = true, + Spacing = 10, + SensitivityRadius = 10, + }, + new LayoutTemplates.TemplateLayoutWrapper + { + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Columns], + ZoneCount = 2, + ShowSpacing = true, + Spacing = 20, + SensitivityRadius = 20, + }, + new LayoutTemplates.TemplateLayoutWrapper + { + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Grid], + ZoneCount = 4, + ShowSpacing = false, + Spacing = 10, + SensitivityRadius = 30, + }, + new LayoutTemplates.TemplateLayoutWrapper + { + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.PriorityGrid], + ZoneCount = 3, + ShowSpacing = true, + Spacing = 1, + SensitivityRadius = 40, + }, + }, + }; + FancyZonesEditorSession.Files.LayoutTemplatesIOHelper.WriteData(layoutTemplates.Serialize(templateLayoutsListWrapper)); + + CustomLayouts customLayouts = new CustomLayouts(); + CustomLayouts.CustomLayoutListWrapper customLayoutListWrapper = new CustomLayouts.CustomLayoutListWrapper + { + CustomLayouts = new List { }, + }; + FancyZonesEditorSession.Files.CustomLayoutsIOHelper.WriteData(customLayouts.Serialize(customLayoutListWrapper)); + + DefaultLayouts defaultLayouts = new DefaultLayouts(); + DefaultLayouts.DefaultLayoutsListWrapper defaultLayoutsListWrapper = new DefaultLayouts.DefaultLayoutsListWrapper + { + DefaultLayouts = new List { }, + }; + FancyZonesEditorSession.Files.DefaultLayoutsIOHelper.WriteData(defaultLayouts.Serialize(defaultLayoutsListWrapper)); + + LayoutHotkeys layoutHotkeys = new LayoutHotkeys(); + LayoutHotkeys.LayoutHotkeysWrapper layoutHotkeysWrapper = new LayoutHotkeys.LayoutHotkeysWrapper + { + LayoutHotkeys = new List { }, + }; + FancyZonesEditorSession.Files.LayoutHotkeysIOHelper.WriteData(layoutHotkeys.Serialize(layoutHotkeysWrapper)); + + AppliedLayouts appliedLayouts = new AppliedLayouts(); + AppliedLayouts.AppliedLayoutsListWrapper appliedLayoutsWrapper = new AppliedLayouts.AppliedLayoutsListWrapper + { + AppliedLayouts = new List { }, + }; + FancyZonesEditorSession.Files.AppliedLayoutsIOHelper.WriteData(appliedLayouts.Serialize(appliedLayoutsWrapper)); + } + [TestCleanup] public void TestCleanup() { _session?.Close(); - - _editorParamsIOHelper?.RestoreData(); + FancyZonesEditorSession.Files.Restore(); } [TestMethod] @@ -87,8 +161,7 @@ public void EditorParams_VerifySelectedMonitor() }, }, }; - _editorParamsIOHelper = new IOTestHelper(editorParameters.File); - _editorParamsIOHelper.WriteData(editorParameters.Serialize(parameters)); + FancyZonesEditorSession.Files.ParamsIOHelper.WriteData(editorParameters.Serialize(parameters)); _session = new FancyZonesEditorSession(_context!); @@ -124,8 +197,7 @@ public void EditorParams_VerifyMonitorScaling() }, }, }; - _editorParamsIOHelper = new IOTestHelper(editorParameters.File); - _editorParamsIOHelper.WriteData(editorParameters.Serialize(parameters)); + FancyZonesEditorSession.Files.ParamsIOHelper.WriteData(editorParameters.Serialize(parameters)); _session = new FancyZonesEditorSession(_context!); var monitor = _session.GetMonitorItem(1); @@ -137,7 +209,6 @@ public void EditorParams_VerifyMonitorScaling() public void EditorParams_VerifyMonitorResolution() { EditorParameters editorParameters = new EditorParameters(); - _editorParamsIOHelper = new IOTestHelper(editorParameters.File); ParamsWrapper parameters = new ParamsWrapper { ProcessId = 1, @@ -162,7 +233,7 @@ public void EditorParams_VerifyMonitorResolution() }, }, }; - _editorParamsIOHelper.WriteData(editorParameters.Serialize(parameters)); + FancyZonesEditorSession.Files.ParamsIOHelper.WriteData(editorParameters.Serialize(parameters)); _session = new FancyZonesEditorSession(_context!); var monitor = _session.GetMonitorItem(1); @@ -174,7 +245,6 @@ public void EditorParams_VerifyMonitorResolution() public void EditorParams_SpanAcrossMonitors() { EditorParameters editorParameters = new EditorParameters(); - _editorParamsIOHelper = new IOTestHelper(editorParameters.File); ParamsWrapper parameters = new ParamsWrapper { ProcessId = 1, @@ -199,7 +269,7 @@ public void EditorParams_SpanAcrossMonitors() }, }, }; - _editorParamsIOHelper.WriteData(editorParameters.Serialize(parameters)); + FancyZonesEditorSession.Files.ParamsIOHelper.WriteData(editorParameters.Serialize(parameters)); _session = new FancyZonesEditorSession(_context!); var monitor = _session.GetMonitorItem(1); From 37409fb86fa2fa5ef65a2594d1aaea1f384d55ac Mon Sep 17 00:00:00 2001 From: seraphima Date: Mon, 4 Mar 2024 20:30:42 +0100 Subject: [PATCH 47/78] interact with context menu items --- .../RunFancyZonesEditorTest.cs | 33 ++++++++++++++++++- .../Utils/FancyZonesEditorSession.cs | 8 ++++- 2 files changed, 39 insertions(+), 2 deletions(-) diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/RunFancyZonesEditorTest.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/RunFancyZonesEditorTest.cs index b4275ec51d6b..4551b0bd7750 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/RunFancyZonesEditorTest.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/RunFancyZonesEditorTest.cs @@ -117,7 +117,22 @@ public static void ClassInitialize(TestContext testContext) CustomLayouts customLayouts = new CustomLayouts(); CustomLayouts.CustomLayoutListWrapper customLayoutListWrapper = new CustomLayouts.CustomLayoutListWrapper { - CustomLayouts = new List { }, + CustomLayouts = new List + { + new CustomLayouts.CustomLayoutWrapper + { + Uuid = "{E7807D0D-6223-4883-B15B-1F3883944C09}", + Type = Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas], + Name = "Custom layout", + Info = new CustomLayouts().ToJsonElement(new CustomLayouts.CanvasInfoWrapper + { + RefHeight = 952, + RefWidth = 1500, + SensitivityRadius = 10, + Zones = new List { }, + }), + }, + }, }; FancyZonesEditorSession.Files.CustomLayoutsIOHelper.WriteData(customLayouts.Serialize(customLayoutListWrapper)); @@ -183,6 +198,22 @@ public void OpenEditLayoutDialog() // verify the edit layout dialog is opened Assert.IsNotNull(_session?.Session?.FindElementsByName("Edit 'Grid'")); // verify it's opened for the correct layout } + [TestMethod] + public void OpenEditLayoutDialog_ByContextMenu_TemplateLayout() // verify the edit layout dialog is opened + { + _session?.Click_ContextMenuItem(Constants.TemplateLayoutNames[Constants.TemplateLayouts.Grid], "Edit"); + Assert.IsNotNull(_session?.Session?.FindElementByAccessibilityId("EditLayoutDialogTitle")); // check the pane header + Assert.IsNotNull(_session?.Session?.FindElementsByName("Edit 'Grid'")); // verify it's opened for the correct layout + } + + [TestMethod] + public void OpenEditLayoutDialog_ByContextMenu_CustomLayout() // verify the edit layout dialog is opened + { + _session?.Click_ContextMenuItem("Custom layout", "Edit"); + Assert.IsNotNull(_session?.Session?.FindElementByAccessibilityId("EditLayoutDialogTitle")); // check the pane header + Assert.IsNotNull(_session?.Session?.FindElementsByName("Edit 'Grid'")); // verify it's opened for the correct layout + } + [TestMethod] public void OpenContextMenu() // verify the context menu is opened { diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs index e4e16407bca8..2767e572dabd 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs @@ -154,7 +154,7 @@ public void Close() } } - public WindowsElement? OpenContextMenu(string layoutName) + public WindowsElement OpenContextMenu(string layoutName) { RightClick_Layout(layoutName); var menu = Session?.FindElementByClassName("ContextMenu"); @@ -312,6 +312,12 @@ public void Click_Cancel() button.Click(); } + public void Click_ContextMenuItem(string layoutName, string menuItem) + { + WindowsElement menu = OpenContextMenu(layoutName); + Click(menu.FindElementByName(menuItem)); + } + private WindowsElement? FindByAccessibilityId(string name) { try From 4d0f043abddff00b2231eb8808f402d6c517f636 Mon Sep 17 00:00:00 2001 From: seraphima Date: Mon, 4 Mar 2024 21:36:53 +0100 Subject: [PATCH 48/78] copy layout tests --- .../CopyLayoutTests.cs | 358 ++++++++++++++++++ .../Utils/FancyZonesEditorSession.cs | 23 ++ 2 files changed, 381 insertions(+) create mode 100644 src/modules/fancyzones/UITests-FancyZonesEditor/CopyLayoutTests.cs diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/CopyLayoutTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/CopyLayoutTests.cs new file mode 100644 index 000000000000..d8623044dba5 --- /dev/null +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/CopyLayoutTests.cs @@ -0,0 +1,358 @@ +// Copyright (c) Microsoft Corporation +// The Microsoft Corporation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System.Collections.Generic; +using FancyZonesEditorCommon.Data; +using Microsoft.FancyZonesEditor.UnitTests.Utils; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using static FancyZonesEditorCommon.Data.EditorParameters; + +namespace Microsoft.FancyZonesEditor.UITests +{ + [TestClass] + public class CopyLayoutTests + { + private static readonly CustomLayouts.CustomLayoutListWrapper CustomLayouts = new CustomLayouts.CustomLayoutListWrapper + { + CustomLayouts = new List + { + new CustomLayouts.CustomLayoutWrapper + { + Uuid = "{0D6D2F58-9184-4804-81E4-4E4CC3476DC1}", + Type = Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Grid], + Name = "Grid custom layout", + Info = new CustomLayouts().ToJsonElement(new CustomLayouts.GridInfoWrapper + { + Rows = 2, + Columns = 3, + RowsPercentage = new List { 2967, 7033 }, + ColumnsPercentage = new List { 2410, 6040, 1550 }, + CellChildMap = new int[][] { [0, 1, 1], [0, 2, 3] }, + SensitivityRadius = 30, + Spacing = 26, + ShowSpacing = false, + }), + }, + }, + }; + + private static readonly LayoutHotkeys.LayoutHotkeysWrapper Hotkeys = new LayoutHotkeys.LayoutHotkeysWrapper + { + LayoutHotkeys = new List + { + new LayoutHotkeys.LayoutHotkeyWrapper + { + LayoutId = CustomLayouts.CustomLayouts[0].Uuid, + Key = 0, + }, + }, + }; + + private static readonly DefaultLayouts.DefaultLayoutsListWrapper DefaultLayouts = new DefaultLayouts.DefaultLayoutsListWrapper + { + DefaultLayouts = new List + { + new DefaultLayouts.DefaultLayoutWrapper + { + MonitorConfiguration = MonitorConfigurationTypeEnumExtensions.MonitorConfigurationTypeToString(MonitorConfigurationType.Vertical), + Layout = new DefaultLayouts.DefaultLayoutWrapper.LayoutWrapper + { + Type = "custom", + Uuid = CustomLayouts.CustomLayouts[0].Uuid, + }, + }, + }, + }; + + private static TestContext? _context; + private static FancyZonesEditorSession? _session; + + [ClassInitialize] + public static void ClassInitialize(TestContext testContext) + { + _context = testContext; + } + + [ClassCleanup] + public static void ClassCleanup() + { + _context = null; + } + + [TestInitialize] + public void TestInitialize() + { + EditorParameters editorParameters = new EditorParameters(); + ParamsWrapper parameters = new ParamsWrapper + { + ProcessId = 1, + SpanZonesAcrossMonitors = false, + Monitors = new List + { + new NativeMonitorDataWrapper + { + Monitor = "monitor-1", + MonitorInstanceId = "instance-id-1", + MonitorSerialNumber = "serial-number-1", + MonitorNumber = 1, + VirtualDesktop = "{FF34D993-73F3-4B8C-AA03-73730A01D6A8}", + Dpi = 192, + LeftCoordinate = 0, + TopCoordinate = 0, + WorkAreaHeight = 1040, + WorkAreaWidth = 1920, + MonitorHeight = 1080, + MonitorWidth = 1920, + IsSelected = true, + }, + }, + }; + FancyZonesEditorSession.Files.ParamsIOHelper.WriteData(editorParameters.Serialize(parameters)); + + CustomLayouts customLayouts = new CustomLayouts(); + FancyZonesEditorSession.Files.CustomLayoutsIOHelper.WriteData(customLayouts.Serialize(CustomLayouts)); + + LayoutTemplates layoutTemplates = new LayoutTemplates(); + LayoutTemplates.TemplateLayoutsListWrapper templateLayoutsListWrapper = new LayoutTemplates.TemplateLayoutsListWrapper + { + LayoutTemplates = new List + { + new LayoutTemplates.TemplateLayoutWrapper + { + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Empty], + }, + new LayoutTemplates.TemplateLayoutWrapper + { + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Focus], + ZoneCount = 10, + }, + new LayoutTemplates.TemplateLayoutWrapper + { + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Rows], + ZoneCount = 2, + ShowSpacing = true, + Spacing = 10, + SensitivityRadius = 10, + }, + new LayoutTemplates.TemplateLayoutWrapper + { + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Columns], + ZoneCount = 2, + ShowSpacing = true, + Spacing = 20, + SensitivityRadius = 20, + }, + new LayoutTemplates.TemplateLayoutWrapper + { + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Grid], + ZoneCount = 4, + ShowSpacing = false, + Spacing = 10, + SensitivityRadius = 30, + }, + new LayoutTemplates.TemplateLayoutWrapper + { + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.PriorityGrid], + ZoneCount = 3, + ShowSpacing = true, + Spacing = 1, + SensitivityRadius = 40, + }, + }, + }; + FancyZonesEditorSession.Files.LayoutTemplatesIOHelper.WriteData(layoutTemplates.Serialize(templateLayoutsListWrapper)); + + DefaultLayouts defaultLayouts = new DefaultLayouts(); + FancyZonesEditorSession.Files.DefaultLayoutsIOHelper.WriteData(defaultLayouts.Serialize(DefaultLayouts)); + + LayoutHotkeys layoutHotkeys = new LayoutHotkeys(); + FancyZonesEditorSession.Files.LayoutHotkeysIOHelper.WriteData(layoutHotkeys.Serialize(Hotkeys)); + + AppliedLayouts appliedLayouts = new AppliedLayouts(); + AppliedLayouts.AppliedLayoutsListWrapper appliedLayoutsWrapper = new AppliedLayouts.AppliedLayoutsListWrapper + { + AppliedLayouts = new List { }, + }; + FancyZonesEditorSession.Files.AppliedLayoutsIOHelper.WriteData(appliedLayouts.Serialize(appliedLayoutsWrapper)); + + _session = new FancyZonesEditorSession(_context!); + } + + [TestCleanup] + public void TestCleanup() + { + _session?.Close(); + FancyZonesEditorSession.Files.Restore(); + } + + [TestMethod] + public void CopyTemplate_FromEditLayoutWindow() + { + string copiedLayoutName = Constants.TemplateLayoutNames[Constants.TemplateLayouts.Focus] + " (1)"; + _session?.Click_EditLayout(Constants.TemplateLayoutNames[Constants.TemplateLayouts.Focus]); + _session?.Click_CopyLayout(); + + // verify the layout is copied + Assert.IsNotNull(_session?.GetLayout(copiedLayoutName)); // new name is presented + + // verify the file + var customLayouts = new CustomLayouts(); + var data = customLayouts.Read(customLayouts.File); + Assert.AreEqual(CustomLayouts.CustomLayouts.Count + 1, data.CustomLayouts.Count); + Assert.IsTrue(data.CustomLayouts.Exists(x => x.Name == copiedLayoutName)); + } + + [TestMethod] + public void CopyTemplate_FromContextMenu() + { + string copiedLayoutName = Constants.TemplateLayoutNames[Constants.TemplateLayouts.Rows] + " (1)"; + _session?.Click_ContextMenuItem(Constants.TemplateLayoutNames[Constants.TemplateLayouts.Rows], "Create custom layout"); + + // verify the layout is copied + _session?.WaitElementDisplayedByName(copiedLayoutName); + Assert.IsNotNull(_session?.GetLayout(copiedLayoutName)); // new name is presented + + // verify the file + var customLayouts = new CustomLayouts(); + var data = customLayouts.Read(customLayouts.File); + Assert.AreEqual(CustomLayouts.CustomLayouts.Count + 1, data.CustomLayouts.Count); + Assert.IsTrue(data.CustomLayouts.Exists(x => x.Name == copiedLayoutName)); + } + + [TestMethod] + public void CopyTemplate_DefaultLayout() + { + string copiedLayoutName = Constants.TemplateLayoutNames[Constants.TemplateLayouts.PriorityGrid] + " (1)"; + _session?.Click_EditLayout(Constants.TemplateLayoutNames[Constants.TemplateLayouts.PriorityGrid]); + _session?.Click_CopyLayout(); + + // verify the layout is copied + _session?.Click_Save(); + Assert.IsNotNull(_session?.GetLayout(copiedLayoutName)); // new name is presented + + // verify the file + var customLayouts = new CustomLayouts(); + var data = customLayouts.Read(customLayouts.File); + Assert.AreEqual(CustomLayouts.CustomLayouts.Count + 1, data.CustomLayouts.Count); + + // verify the default layout wasn't changed + _session?.Click_EditLayout(Constants.TemplateLayoutNames[Constants.TemplateLayouts.PriorityGrid]); + var horizontalDefaultButton = _session?.GetHorizontalDefaultButton(true); + Assert.IsNotNull(horizontalDefaultButton); + _session?.Click_Cancel(); + + _session?.Click_EditLayout(copiedLayoutName); + horizontalDefaultButton = _session?.GetHorizontalDefaultButton(false); + Assert.IsNotNull(horizontalDefaultButton); + _session?.Click_Cancel(); + + // verify the default layouts file wasn't changed + var defaultLayouts = new DefaultLayouts(); + var defaultLayoutData = defaultLayouts.Read(defaultLayouts.File); + Assert.AreEqual(defaultLayouts.Serialize(DefaultLayouts), defaultLayouts.Serialize(defaultLayoutData)); + } + + [TestMethod] + public void CopyCustomLayout_FromEditLayoutWindow() + { + string copiedLayoutName = CustomLayouts.CustomLayouts[0].Name + " (1)"; + _session?.Click_EditLayout(CustomLayouts.CustomLayouts[0].Name); + _session?.Click_CopyLayout(); + + // verify the layout is copied + Assert.IsNotNull(_session?.GetLayout(copiedLayoutName)); // new name is presented + + // verify the file + var customLayouts = new CustomLayouts(); + var data = customLayouts.Read(customLayouts.File); + Assert.AreEqual(CustomLayouts.CustomLayouts.Count + 1, data.CustomLayouts.Count); + Assert.IsTrue(data.CustomLayouts.Exists(x => x.Name == copiedLayoutName)); + } + + [TestMethod] + public void CopyCustomLayout_FromContextMenu() + { + string copiedLayoutName = CustomLayouts.CustomLayouts[0].Name + " (1)"; + _session?.Click_ContextMenuItem(CustomLayouts.CustomLayouts[0].Name, "Duplicate"); + + // verify the layout is copied + _session?.WaitElementDisplayedByName(copiedLayoutName); + Assert.IsNotNull(_session?.GetLayout(copiedLayoutName)); // new name is presented + + // verify the file + var customLayouts = new CustomLayouts(); + var data = customLayouts.Read(customLayouts.File); + Assert.AreEqual(CustomLayouts.CustomLayouts.Count + 1, data.CustomLayouts.Count); + Assert.IsTrue(data.CustomLayouts.Exists(x => x.Name == copiedLayoutName)); + } + + [TestMethod] + public void CopyCustomLayout_DefaultLayout() + { + string copiedLayoutName = CustomLayouts.CustomLayouts[0].Name + " (1)"; + _session?.Click_EditLayout(CustomLayouts.CustomLayouts[0].Name); + _session?.Click_CopyLayout(); + + // verify the layout is copied + _session?.Click_Save(); + Assert.IsNotNull(_session?.GetLayout(copiedLayoutName)); // new name is presented + + // verify the file + var customLayouts = new CustomLayouts(); + var data = customLayouts.Read(customLayouts.File); + Assert.AreEqual(CustomLayouts.CustomLayouts.Count + 1, data.CustomLayouts.Count); + + // verify the default layout wasn't changed + _session?.Click_EditLayout(CustomLayouts.CustomLayouts[0].Name); + var horizontalDefaultButton = _session?.GetVerticalDefaultButton(true); + Assert.IsNotNull(horizontalDefaultButton); + _session?.Click_Cancel(); + + _session?.Click_EditLayout(copiedLayoutName); + horizontalDefaultButton = _session?.GetVerticalDefaultButton(false); + Assert.IsNotNull(horizontalDefaultButton); + _session?.Click_Cancel(); + + // verify the default layouts file wasn't changed + var defaultLayouts = new DefaultLayouts(); + var defaultLayoutData = defaultLayouts.Read(defaultLayouts.File); + Assert.AreEqual(defaultLayouts.Serialize(DefaultLayouts), defaultLayouts.Serialize(defaultLayoutData)); + } + + [TestMethod] + public void CopyCustomLayout_Hotkey() + { + string copiedLayoutName = CustomLayouts.CustomLayouts[0].Name + " (1)"; + _session?.Click_EditLayout(CustomLayouts.CustomLayouts[0].Name); + _session?.Click_CopyLayout(); + + // verify the layout is copied + _session?.Click_Save(); + Assert.IsNotNull(_session?.GetLayout(copiedLayoutName)); // new name is presented + + // verify the file + var customLayouts = new CustomLayouts(); + var data = customLayouts.Read(customLayouts.File); + Assert.AreEqual(CustomLayouts.CustomLayouts.Count + 1, data.CustomLayouts.Count); + + // verify the hotkey wasn't changed + _session?.Click_EditLayout(CustomLayouts.CustomLayouts[0].Name); + var hotkeyComboBox = _session?.GetHotkeyComboBox(); + Assert.IsNotNull(hotkeyComboBox); + Assert.AreEqual("0", hotkeyComboBox.Text); + _session?.Click_Cancel(); + + _session?.Click_EditLayout(copiedLayoutName); + hotkeyComboBox = _session?.GetHotkeyComboBox(); + Assert.IsNotNull(hotkeyComboBox); + Assert.AreEqual("None", hotkeyComboBox.Text); + _session?.Click_Cancel(); + + // verify the hotkey file wasn't changed + var hotkeys = new LayoutHotkeys(); + var hotkeyData = hotkeys.Read(hotkeys.File); + Assert.AreEqual(hotkeys.Serialize(Hotkeys), hotkeys.Serialize(hotkeyData)); + } + } +} diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs index 2767e572dabd..535a31de7565 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs @@ -312,6 +312,29 @@ public void Click_Cancel() button.Click(); } + public void Click_CopyLayout() + { + WindowsElement? button = null; + try + { + button = Session?.FindElementByAccessibilityId(AccessibilityId.CopyTemplate); + } + catch + { + } + + try + { + button = Session?.FindElementByAccessibilityId(AccessibilityId.DuplicateLayoutButton); + } + catch + { + } + + Assert.IsNotNull(button, "No Copy button"); + button.Click(); + } + public void Click_ContextMenuItem(string layoutName, string menuItem) { WindowsElement menu = OpenContextMenu(layoutName); From 76e559908cc78dd61206054ae19154d3e73b21f3 Mon Sep 17 00:00:00 2001 From: seraphima Date: Tue, 5 Mar 2024 19:54:46 +0100 Subject: [PATCH 49/78] applied layouts initialization tests --- .../UITests-FancyZonesEditor/Constants.cs | 2 + .../DefaultLayoutsTests.cs | 8 - .../UIInitializationTests.cs | 356 ++++++++++++++++++ 3 files changed, 358 insertions(+), 8 deletions(-) diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/Constants.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/Constants.cs index 1c0890c438a1..81f810561b5e 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/Constants.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/Constants.cs @@ -38,6 +38,8 @@ public enum TemplateLayouts { TemplateLayouts.PriorityGrid, "priority-grid" }, }; + public static readonly string CustomLayoutTypeString = "custom"; + public enum CustomLayoutType { Canvas, diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/DefaultLayoutsTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/DefaultLayoutsTests.cs index d6f7d64bce8f..0f6a645942fc 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/DefaultLayoutsTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/DefaultLayoutsTests.cs @@ -295,14 +295,6 @@ public void Assign_Save() CheckCustomLayouts(string.Empty, string.Empty); } - /* - - [TestMethod] - public void AssignTemplate_ChangeTemplate() // verify the template layout will be as in the default settings - { - - }*/ - private void CheckTemplateLayouts(Constants.TemplateLayouts? horizontalDefault, Constants.TemplateLayouts? verticalDefault) { foreach (var (key, name) in Constants.TemplateLayoutNames) diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializationTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializationTests.cs index ee4c6a77fbb8..7e55544143e4 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializationTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializationTests.cs @@ -3,6 +3,7 @@ // See the LICENSE file in the project root for more information. using System.Collections.Generic; +using System.Globalization; using FancyZonesEditorCommon.Data; using Microsoft.FancyZonesEditor.UnitTests.Utils; using Microsoft.VisualStudio.TestTools.UnitTesting; @@ -276,5 +277,360 @@ public void EditorParams_SpanAcrossMonitors() Assert.IsNotNull(monitor); Assert.IsTrue(monitor.Selected); } + + [TestMethod] + public void AppliedLayouts_LayoutsApplied() + { + EditorParameters editorParameters = new EditorParameters(); + ParamsWrapper parameters = new ParamsWrapper + { + ProcessId = 1, + SpanZonesAcrossMonitors = false, + Monitors = new List + { + new NativeMonitorDataWrapper + { + Monitor = "monitor-1", + MonitorInstanceId = "instance-id-1", + MonitorSerialNumber = "serial-number-1", + MonitorNumber = 1, + VirtualDesktop = "{FF34D993-73F3-4B8C-AA03-73730A01D6A8}", + Dpi = 96, + LeftCoordinate = 0, + TopCoordinate = 0, + WorkAreaHeight = 1040, + WorkAreaWidth = 1920, + MonitorHeight = 1080, + MonitorWidth = 1920, + IsSelected = true, + }, + new NativeMonitorDataWrapper + { + Monitor = "monitor-2", + MonitorInstanceId = "instance-id-2", + MonitorSerialNumber = "serial-number-2", + MonitorNumber = 2, + VirtualDesktop = "{FF34D993-73F3-4B8C-AA03-73730A01D6A8}", + Dpi = 96, + LeftCoordinate = 1920, + TopCoordinate = 0, + WorkAreaHeight = 1040, + WorkAreaWidth = 1920, + MonitorHeight = 1080, + MonitorWidth = 1920, + IsSelected = false, + }, + }, + }; + FancyZonesEditorSession.Files.ParamsIOHelper.WriteData(editorParameters.Serialize(parameters)); + + CustomLayouts customLayouts = new CustomLayouts(); + CustomLayouts.CustomLayoutListWrapper customLayoutListWrapper = new CustomLayouts.CustomLayoutListWrapper + { + CustomLayouts = new List + { + new CustomLayouts.CustomLayoutWrapper + { + Uuid = "{0D6D2F58-9184-4804-81E4-4E4CC3476DC1}", + Type = Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas], + Name = "Layout 0", + Info = new CustomLayouts().ToJsonElement(new CustomLayouts.CanvasInfoWrapper + { + RefHeight = 1080, + RefWidth = 1920, + SensitivityRadius = 10, + Zones = new List { }, + }), + }, + }, + }; + FancyZonesEditorSession.Files.CustomLayoutsIOHelper.WriteData(customLayouts.Serialize(customLayoutListWrapper)); + + AppliedLayouts appliedLayouts = new AppliedLayouts(); + AppliedLayouts.AppliedLayoutsListWrapper appliedLayoutsWrapper = new AppliedLayouts.AppliedLayoutsListWrapper + { + AppliedLayouts = new List + { + new AppliedLayouts.AppliedLayoutWrapper + { + Device = new AppliedLayouts.AppliedLayoutWrapper.DeviceIdWrapper + { + Monitor = "monitor-1", + MonitorInstance = "instance-id-1", + SerialNumber = "serial-number-1", + MonitorNumber = 1, + VirtualDesktop = "{FF34D993-73F3-4B8C-AA03-73730A01D6A8}", + }, + AppliedLayout = new AppliedLayouts.AppliedLayoutWrapper.LayoutWrapper + { + Uuid = "{00000000-0000-0000-0000-000000000000}", + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Columns], + ShowSpacing = true, + Spacing = 10, + ZoneCount = 1, + SensitivityRadius = 20, + }, + }, + new AppliedLayouts.AppliedLayoutWrapper + { + Device = new AppliedLayouts.AppliedLayoutWrapper.DeviceIdWrapper + { + Monitor = "monitor-2", + MonitorInstance = "instance-id-2", + SerialNumber = "serial-number-2", + MonitorNumber = 2, + VirtualDesktop = "{FF34D993-73F3-4B8C-AA03-73730A01D6A8}", + }, + AppliedLayout = new AppliedLayouts.AppliedLayoutWrapper.LayoutWrapper + { + Uuid = customLayoutListWrapper.CustomLayouts[0].Uuid, + Type = Constants.CustomLayoutTypeString, + }, + }, + }, + }; + FancyZonesEditorSession.Files.AppliedLayoutsIOHelper.WriteData(appliedLayouts.Serialize(appliedLayoutsWrapper)); + + _session = new FancyZonesEditorSession(_context!); + + // check layout on monitor 1 + var layoutOnMonitor1 = _session?.GetLayout(Constants.TemplateLayoutNames[Constants.TemplateLayouts.Columns]); + Assert.IsNotNull(layoutOnMonitor1); + Assert.IsTrue(layoutOnMonitor1.Selected); + + // check layout on monitor 2 + _session?.Click_Monitor(2); + var layoutOnMonitor2 = _session?.GetLayout(customLayoutListWrapper.CustomLayouts[0].Name); + Assert.IsNotNull(layoutOnMonitor2); + Assert.IsTrue(layoutOnMonitor2.Selected); + } + + [TestMethod] + public void AppliedLayouts_CustomLayoutsApplied_LayoutIdNotFound() + { + EditorParameters editorParameters = new EditorParameters(); + ParamsWrapper parameters = new ParamsWrapper + { + ProcessId = 1, + SpanZonesAcrossMonitors = false, + Monitors = new List + { + new NativeMonitorDataWrapper + { + Monitor = "monitor-1", + MonitorInstanceId = "instance-id-1", + MonitorSerialNumber = "serial-number-1", + MonitorNumber = 1, + VirtualDesktop = "{FF34D993-73F3-4B8C-AA03-73730A01D6A8}", + Dpi = 96, + LeftCoordinate = 0, + TopCoordinate = 0, + WorkAreaHeight = 1040, + WorkAreaWidth = 1920, + MonitorHeight = 1080, + MonitorWidth = 1920, + IsSelected = true, + }, + }, + }; + FancyZonesEditorSession.Files.ParamsIOHelper.WriteData(editorParameters.Serialize(parameters)); + + CustomLayouts customLayouts = new CustomLayouts(); + CustomLayouts.CustomLayoutListWrapper customLayoutListWrapper = new CustomLayouts.CustomLayoutListWrapper + { + CustomLayouts = new List + { + new CustomLayouts.CustomLayoutWrapper + { + Uuid = "{0D6D2F58-9184-4804-81E4-4E4CC3476DC1}", + Type = Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas], + Name = "Layout 0", + Info = new CustomLayouts().ToJsonElement(new CustomLayouts.CanvasInfoWrapper + { + RefHeight = 1080, + RefWidth = 1920, + SensitivityRadius = 10, + Zones = new List { }, + }), + }, + }, + }; + FancyZonesEditorSession.Files.CustomLayoutsIOHelper.WriteData(customLayouts.Serialize(customLayoutListWrapper)); + + AppliedLayouts appliedLayouts = new AppliedLayouts(); + AppliedLayouts.AppliedLayoutsListWrapper appliedLayoutsWrapper = new AppliedLayouts.AppliedLayoutsListWrapper + { + AppliedLayouts = new List + { + new AppliedLayouts.AppliedLayoutWrapper + { + Device = new AppliedLayouts.AppliedLayoutWrapper.DeviceIdWrapper + { + Monitor = "monitor-1", + MonitorInstance = "instance-id-1", + SerialNumber = "serial-number-1", + MonitorNumber = 1, + VirtualDesktop = "{FF34D993-73F3-4B8C-AA03-73730A01D6A8}", + }, + AppliedLayout = new AppliedLayouts.AppliedLayoutWrapper.LayoutWrapper + { + Uuid = "{00000000-0000-0000-0000-000000000000}", + Type = Constants.CustomLayoutTypeString, + }, + }, + }, + }; + FancyZonesEditorSession.Files.AppliedLayoutsIOHelper.WriteData(appliedLayouts.Serialize(appliedLayoutsWrapper)); + + _session = new FancyZonesEditorSession(_context!); + + var emptyLayout = _session?.GetLayout(Constants.TemplateLayoutNames[Constants.TemplateLayouts.Empty]); + Assert.IsNotNull(emptyLayout); + Assert.IsTrue(emptyLayout.Selected); + } + + [TestMethod] + public void AppliedLayouts_NoLayoutsApplied_CustomDefaultLayout() + { + EditorParameters editorParameters = new EditorParameters(); + ParamsWrapper parameters = new ParamsWrapper + { + ProcessId = 1, + SpanZonesAcrossMonitors = false, + Monitors = new List + { + new NativeMonitorDataWrapper + { + Monitor = "monitor-1", + MonitorInstanceId = "instance-id-1", + MonitorSerialNumber = "serial-number-1", + MonitorNumber = 1, + VirtualDesktop = "{FF34D993-73F3-4B8C-AA03-73730A01D6A8}", + Dpi = 96, + LeftCoordinate = 0, + TopCoordinate = 0, + WorkAreaHeight = 1040, + WorkAreaWidth = 1920, + MonitorHeight = 1080, + MonitorWidth = 1920, + IsSelected = true, + }, + }, + }; + FancyZonesEditorSession.Files.ParamsIOHelper.WriteData(editorParameters.Serialize(parameters)); + + CustomLayouts customLayouts = new CustomLayouts(); + CustomLayouts.CustomLayoutListWrapper customLayoutListWrapper = new CustomLayouts.CustomLayoutListWrapper + { + CustomLayouts = new List + { + new CustomLayouts.CustomLayoutWrapper + { + Uuid = "{0D6D2F58-9184-4804-81E4-4E4CC3476DC1}", + Type = Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas], + Name = "Layout 0", + Info = new CustomLayouts().ToJsonElement(new CustomLayouts.CanvasInfoWrapper + { + RefHeight = 1080, + RefWidth = 1920, + SensitivityRadius = 10, + Zones = new List { }, + }), + }, + }, + }; + FancyZonesEditorSession.Files.CustomLayoutsIOHelper.WriteData(customLayouts.Serialize(customLayoutListWrapper)); + + DefaultLayouts defaultLayouts = new DefaultLayouts(); + DefaultLayouts.DefaultLayoutsListWrapper defaultLayoutsListWrapper = new DefaultLayouts.DefaultLayoutsListWrapper + { + DefaultLayouts = new List + { + new DefaultLayouts.DefaultLayoutWrapper + { + MonitorConfiguration = MonitorConfigurationTypeEnumExtensions.MonitorConfigurationTypeToString(MonitorConfigurationType.Horizontal), + Layout = new DefaultLayouts.DefaultLayoutWrapper.LayoutWrapper + { + Type = Constants.CustomLayoutTypeString, + Uuid = customLayoutListWrapper.CustomLayouts[0].Uuid, + }, + }, + }, + }; + FancyZonesEditorSession.Files.DefaultLayoutsIOHelper.WriteData(defaultLayouts.Serialize(defaultLayoutsListWrapper)); + + _session = new FancyZonesEditorSession(_context!); + + var defaultLayout = _session?.GetLayout(customLayoutListWrapper.CustomLayouts[0].Name); + Assert.IsNotNull(defaultLayout); + Assert.IsTrue(defaultLayout.Selected); + } + + [TestMethod] + public void AppliedLayouts_NoLayoutsApplied_TemplateDefaultLayout() + { + EditorParameters editorParameters = new EditorParameters(); + ParamsWrapper parameters = new ParamsWrapper + { + ProcessId = 1, + SpanZonesAcrossMonitors = false, + Monitors = new List + { + new NativeMonitorDataWrapper + { + Monitor = "monitor-1", + MonitorInstanceId = "instance-id-1", + MonitorSerialNumber = "serial-number-1", + MonitorNumber = 1, + VirtualDesktop = "{FF34D993-73F3-4B8C-AA03-73730A01D6A8}", + Dpi = 96, + LeftCoordinate = 0, + TopCoordinate = 0, + WorkAreaHeight = 1040, + WorkAreaWidth = 1920, + MonitorHeight = 1080, + MonitorWidth = 1920, + IsSelected = true, + }, + }, + }; + FancyZonesEditorSession.Files.ParamsIOHelper.WriteData(editorParameters.Serialize(parameters)); + + DefaultLayouts defaultLayouts = new DefaultLayouts(); + DefaultLayouts.DefaultLayoutsListWrapper defaultLayoutsListWrapper = new DefaultLayouts.DefaultLayoutsListWrapper + { + DefaultLayouts = new List + { + new DefaultLayouts.DefaultLayoutWrapper + { + MonitorConfiguration = MonitorConfigurationTypeEnumExtensions.MonitorConfigurationTypeToString(MonitorConfigurationType.Horizontal), + Layout = new DefaultLayouts.DefaultLayoutWrapper.LayoutWrapper + { + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Grid], + ZoneCount = 6, + ShowSpacing = true, + Spacing = 5, + SensitivityRadius = 20, + }, + }, + }, + }; + FancyZonesEditorSession.Files.DefaultLayoutsIOHelper.WriteData(defaultLayouts.Serialize(defaultLayoutsListWrapper)); + + _session = new FancyZonesEditorSession(_context!); + + var defaultLayout = _session?.GetLayout(Constants.TemplateLayoutNames[Constants.TemplateLayouts.Grid]); + Assert.IsNotNull(defaultLayout); + Assert.IsTrue(defaultLayout.Selected); + + // check the number of zones and spacing + _session?.Click_EditLayout(Constants.TemplateLayoutNames[Constants.TemplateLayouts.Grid]); + Assert.AreEqual(defaultLayoutsListWrapper.DefaultLayouts[0].Layout.ZoneCount, int.Parse(_session?.GetZoneCountSlider()?.Text!, CultureInfo.InvariantCulture)); + Assert.AreEqual(defaultLayoutsListWrapper.DefaultLayouts[0].Layout.Spacing, int.Parse(_session?.GetSpaceAroundZonesSlider()?.Text!, CultureInfo.InvariantCulture)); + Assert.AreEqual(defaultLayoutsListWrapper.DefaultLayouts[0].Layout.ShowSpacing, _session?.GetSpaceAroundZonesSlider()?.Enabled); + Assert.AreEqual(defaultLayoutsListWrapper.DefaultLayouts[0].Layout.ShowSpacing, _session?.GetSpaceAroundZonesToggle()?.Selected); + Assert.AreEqual(defaultLayoutsListWrapper.DefaultLayouts[0].Layout.SensitivityRadius, int.Parse(_session?.GetSensitivitySlider()?.Text!, CultureInfo.InvariantCulture)); + Assert.IsNotNull(_session?.GetHorizontalDefaultButton(true)); + } } } From 951e716c55cbcc617c20a187c58878411c934631 Mon Sep 17 00:00:00 2001 From: seraphima Date: Thu, 7 Mar 2024 12:18:57 +0100 Subject: [PATCH 50/78] added applied layouts tests --- .../ApplyLayoutTests.cs | 315 ++++++++++++++++++ 1 file changed, 315 insertions(+) create mode 100644 src/modules/fancyzones/UITests-FancyZonesEditor/ApplyLayoutTests.cs diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/ApplyLayoutTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/ApplyLayoutTests.cs new file mode 100644 index 000000000000..94e56d77e852 --- /dev/null +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/ApplyLayoutTests.cs @@ -0,0 +1,315 @@ +// Copyright (c) Microsoft Corporation +// The Microsoft Corporation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System.Collections.Generic; +using System.Globalization; +using FancyZonesEditorCommon.Data; +using Microsoft.FancyZonesEditor.UnitTests.Utils; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using OpenQA.Selenium; + +namespace Microsoft.FancyZonesEditor.UITests +{ + [TestClass] + public class ApplyLayoutTests + { + private static readonly EditorParameters.ParamsWrapper Parameters = new EditorParameters.ParamsWrapper + { + ProcessId = 1, + SpanZonesAcrossMonitors = false, + Monitors = new List + { + new EditorParameters.NativeMonitorDataWrapper + { + Monitor = "monitor-1", + MonitorInstanceId = "instance-id-1", + MonitorSerialNumber = "serial-number-1", + MonitorNumber = 1, + VirtualDesktop = "{FF34D993-73F3-4B8C-AA03-73730A01D6A8}", + Dpi = 96, + LeftCoordinate = 0, + TopCoordinate = 0, + WorkAreaHeight = 1040, + WorkAreaWidth = 1920, + MonitorHeight = 1080, + MonitorWidth = 1920, + IsSelected = true, + }, + new EditorParameters.NativeMonitorDataWrapper + { + Monitor = "monitor-2", + MonitorInstanceId = "instance-id-2", + MonitorSerialNumber = "serial-number-2", + MonitorNumber = 2, + VirtualDesktop = "{FF34D993-73F3-4B8C-AA03-73730A01D6A8}", + Dpi = 96, + LeftCoordinate = 1920, + TopCoordinate = 0, + WorkAreaHeight = 1040, + WorkAreaWidth = 1920, + MonitorHeight = 1080, + MonitorWidth = 1920, + IsSelected = false, + }, + }, + }; + + private static readonly CustomLayouts.CustomLayoutListWrapper CustomLayoutsList = new CustomLayouts.CustomLayoutListWrapper + { + CustomLayouts = new List + { + new CustomLayouts.CustomLayoutWrapper + { + Uuid = "{E7807D0D-6223-4883-B15B-1F3883944C09}", + Type = Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas], + Name = "Custom layout", + Info = new CustomLayouts().ToJsonElement(new CustomLayouts.CanvasInfoWrapper + { + RefHeight = 952, + RefWidth = 1500, + SensitivityRadius = 10, + Zones = new List { }, + }), + }, + }, + }; + + private static readonly LayoutTemplates.TemplateLayoutsListWrapper TemplateLayoutsList = new LayoutTemplates.TemplateLayoutsListWrapper + { + LayoutTemplates = new List + { + new LayoutTemplates.TemplateLayoutWrapper + { + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Empty], + }, + new LayoutTemplates.TemplateLayoutWrapper + { + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Focus], + ZoneCount = 10, + }, + new LayoutTemplates.TemplateLayoutWrapper + { + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Rows], + ZoneCount = 2, + ShowSpacing = true, + Spacing = 10, + SensitivityRadius = 10, + }, + new LayoutTemplates.TemplateLayoutWrapper + { + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Columns], + ZoneCount = 2, + ShowSpacing = true, + Spacing = 20, + SensitivityRadius = 20, + }, + new LayoutTemplates.TemplateLayoutWrapper + { + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Grid], + ZoneCount = 4, + ShowSpacing = false, + Spacing = 10, + SensitivityRadius = 30, + }, + new LayoutTemplates.TemplateLayoutWrapper + { + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.PriorityGrid], + ZoneCount = 3, + ShowSpacing = true, + Spacing = 1, + SensitivityRadius = 40, + }, + }, + }; + + private static FancyZonesEditorSession? _session; + private static TestContext? _context; + + [ClassInitialize] + public static void ClassInitialize(TestContext testContext) + { + _context = testContext; + } + + [ClassCleanup] + public static void ClassCleanup() + { + _context = null; + } + + [TestInitialize] + public void TestInitialize() + { + EditorParameters editorParameters = new EditorParameters(); + FancyZonesEditorSession.Files.ParamsIOHelper.WriteData(editorParameters.Serialize(Parameters)); + + LayoutTemplates layoutTemplates = new LayoutTemplates(); + FancyZonesEditorSession.Files.LayoutTemplatesIOHelper.WriteData(layoutTemplates.Serialize(TemplateLayoutsList)); + + CustomLayouts customLayouts = new CustomLayouts(); + FancyZonesEditorSession.Files.CustomLayoutsIOHelper.WriteData(customLayouts.Serialize(CustomLayoutsList)); + + DefaultLayouts defaultLayouts = new DefaultLayouts(); + DefaultLayouts.DefaultLayoutsListWrapper defaultLayoutsListWrapper = new DefaultLayouts.DefaultLayoutsListWrapper + { + DefaultLayouts = new List + { + new DefaultLayouts.DefaultLayoutWrapper + { + MonitorConfiguration = MonitorConfigurationTypeEnumExtensions.MonitorConfigurationTypeToString(MonitorConfigurationType.Horizontal), + Layout = new DefaultLayouts.DefaultLayoutWrapper.LayoutWrapper + { + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Focus], + ZoneCount = 4, + ShowSpacing = true, + Spacing = 5, + SensitivityRadius = 20, + }, + }, + new DefaultLayouts.DefaultLayoutWrapper + { + MonitorConfiguration = MonitorConfigurationTypeEnumExtensions.MonitorConfigurationTypeToString(MonitorConfigurationType.Vertical), + Layout = new DefaultLayouts.DefaultLayoutWrapper.LayoutWrapper + { + Type = "custom", + Uuid = "{0D6D2F58-9184-4804-81E4-4E4CC3476DC1}", + ZoneCount = 0, + ShowSpacing = false, + Spacing = 0, + SensitivityRadius = 0, + }, + }, + }, + }; + FancyZonesEditorSession.Files.DefaultLayoutsIOHelper.WriteData(defaultLayouts.Serialize(defaultLayoutsListWrapper)); + + LayoutHotkeys layoutHotkeys = new LayoutHotkeys(); + LayoutHotkeys.LayoutHotkeysWrapper layoutHotkeysWrapper = new LayoutHotkeys.LayoutHotkeysWrapper + { + LayoutHotkeys = new List { }, + }; + FancyZonesEditorSession.Files.LayoutHotkeysIOHelper.WriteData(layoutHotkeys.Serialize(layoutHotkeysWrapper)); + + AppliedLayouts appliedLayouts = new AppliedLayouts(); + AppliedLayouts.AppliedLayoutsListWrapper appliedLayoutsWrapper = new AppliedLayouts.AppliedLayoutsListWrapper + { + AppliedLayouts = new List { }, + }; + FancyZonesEditorSession.Files.AppliedLayoutsIOHelper.WriteData(appliedLayouts.Serialize(appliedLayoutsWrapper)); + + _session = new FancyZonesEditorSession(_context!); + } + + [TestCleanup] + public void TestCleanup() + { + _session?.Close(); + FancyZonesEditorSession.Files.Restore(); + } + + [TestMethod] + public void ApplyCustomLayout() + { + var layout = CustomLayoutsList.CustomLayouts[0]; + Assert.IsFalse(_session?.GetLayout(layout.Name)!.Selected); + _session?.Click(_session?.GetLayout(layout.Name)!); + + Assert.IsTrue(_session?.GetLayout(layout.Name)!.Selected); + + AppliedLayouts appliedLayouts = new AppliedLayouts(); + var data = appliedLayouts.Read(appliedLayouts.File); + Assert.AreEqual(Parameters.Monitors.Count, data.AppliedLayouts.Count); + Assert.AreEqual(layout.Uuid, data.AppliedLayouts[0].AppliedLayout.Uuid); + Assert.AreEqual(Parameters.Monitors[0].MonitorNumber, data.AppliedLayouts[0].Device.MonitorNumber); + } + + [TestMethod] + public void ApplyTemplateLayout() + { + var layoutType = Constants.TemplateLayouts.Columns; + var layout = Constants.TemplateLayoutNames[layoutType]; + Assert.IsFalse(_session?.GetLayout(layout)!.Selected); + _session?.Click(_session?.GetLayout(layout)!); + + Assert.IsTrue(_session?.GetLayout(layout)!.Selected); + + AppliedLayouts appliedLayouts = new AppliedLayouts(); + var data = appliedLayouts.Read(appliedLayouts.File); + Assert.AreEqual(Parameters.Monitors.Count, data.AppliedLayouts.Count); + Assert.AreEqual(Constants.TemplateLayoutTypes[layoutType], data.AppliedLayouts[0].AppliedLayout.Type); + Assert.AreEqual(Parameters.Monitors[0].MonitorNumber, data.AppliedLayouts[0].Device.MonitorNumber); + } + + [TestMethod] + public void ApplyLayoutsOnEachMonitor() + { + // apply the layout on the first monitor + var firstLayoutType = Constants.TemplateLayouts.Columns; + var firstLayoutName = Constants.TemplateLayoutNames[firstLayoutType]; + _session?.Click(_session?.GetLayout(firstLayoutName)!); + Assert.IsTrue(_session?.GetLayout(firstLayoutName)!.Selected); + + // apply the layout on the second monitor + _session?.Click_Monitor(2); + var secondLayout = CustomLayoutsList.CustomLayouts[0]; + _session?.Click(_session?.GetLayout(secondLayout.Name)!); + Assert.IsTrue(_session?.GetLayout(secondLayout.Name)!.Selected); + + // verify the layout on the first monitor wasn't changed + _session?.Click_Monitor(1); + Assert.IsTrue(_session?.GetLayout(firstLayoutName)!.Selected); + + // verify the file + var appliedLayouts = new AppliedLayouts(); + var data = appliedLayouts.Read(appliedLayouts.File); + Assert.AreEqual(Parameters.Monitors.Count, data.AppliedLayouts.Count); + Assert.AreEqual(Constants.TemplateLayoutTypes[firstLayoutType], data.AppliedLayouts.Find(x => x.Device.MonitorNumber == 1).AppliedLayout.Type); + Assert.AreEqual(secondLayout.Uuid, data.AppliedLayouts.Find(x => x.Device.MonitorNumber == 2).AppliedLayout.Uuid); + } + + [TestMethod] + public void ApplyTemplateWithDifferentParametersOnEachMonitor() + { + var layoutType = Constants.TemplateLayouts.Columns; + var layoutName = Constants.TemplateLayoutNames[layoutType]; + + // apply the layout on the first monitor, set parameters + _session?.Click(_session?.GetLayout(layoutName)!); + _session?.Click_EditLayout(layoutName); + var slider = _session?.GetZoneCountSlider(); + slider?.SendKeys(Keys.Right); + slider?.SendKeys(Keys.Right); + var expectedFirstLayoutZoneCount = int.Parse(slider?.Text!, CultureInfo.InvariantCulture); + _session?.Click_Save(); + _session?.WaitUntilHidden(slider!); // let the dialog window close + + // apply the layout on the second monitor, set different parameters + _session?.Click_Monitor(2); + _session?.Click(_session?.GetLayout(layoutName)!); + _session?.Click_EditLayout(layoutName); + slider = _session?.GetZoneCountSlider(); + slider?.SendKeys(Keys.Left); + var expectedSecondLayoutZoneCount = int.Parse(slider?.Text!, CultureInfo.InvariantCulture); + _session?.Click_Save(); + _session?.WaitUntilHidden(slider!); // let the dialog window close + + // verify the layout on the first monitor wasn't changed + _session?.Click_Monitor(1); + _session?.Click_EditLayout(layoutName); + slider = _session?.GetZoneCountSlider(); + Assert.AreEqual(expectedFirstLayoutZoneCount, int.Parse(slider?.Text!, CultureInfo.InvariantCulture)); + _session?.Click_Cancel(); + _session?.WaitUntilHidden(slider!); // let the dialog window close + + // check the file + var appliedLayouts = new AppliedLayouts(); + var data = appliedLayouts.Read(appliedLayouts.File); + Assert.AreEqual(Parameters.Monitors.Count, data.AppliedLayouts.Count); + Assert.AreEqual(Constants.TemplateLayoutTypes[layoutType], data.AppliedLayouts.Find(x => x.Device.MonitorNumber == 1).AppliedLayout.Type); + Assert.AreEqual(expectedFirstLayoutZoneCount, data.AppliedLayouts.Find(x => x.Device.MonitorNumber == 1).AppliedLayout.ZoneCount); + Assert.AreEqual(Constants.TemplateLayoutTypes[layoutType], data.AppliedLayouts.Find(x => x.Device.MonitorNumber == 2).AppliedLayout.Type); + Assert.AreEqual(expectedSecondLayoutZoneCount, data.AppliedLayouts.Find(x => x.Device.MonitorNumber == 2).AppliedLayout.ZoneCount); + } + } +} From 0b3fafb86d18aeb8c386b2e036e1b00ea4245451 Mon Sep 17 00:00:00 2001 From: seraphima Date: Thu, 7 Mar 2024 12:54:01 +0100 Subject: [PATCH 51/78] keep other applied layouts tests --- .../UIInitializationTests.cs | 171 ++++++++++++++++++ 1 file changed, 171 insertions(+) diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializationTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializationTests.cs index 7e55544143e4..403a72a93bd4 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializationTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializationTests.cs @@ -632,5 +632,176 @@ public void AppliedLayouts_NoLayoutsApplied_TemplateDefaultLayout() Assert.AreEqual(defaultLayoutsListWrapper.DefaultLayouts[0].Layout.SensitivityRadius, int.Parse(_session?.GetSensitivitySlider()?.Text!, CultureInfo.InvariantCulture)); Assert.IsNotNull(_session?.GetHorizontalDefaultButton(true)); } + + [TestMethod] + public void AppliedLayouts_VerifyDisconnectedMonitorsLayoutsAreNotChanged() + { + EditorParameters editorParameters = new EditorParameters(); + ParamsWrapper parameters = new ParamsWrapper + { + ProcessId = 1, + SpanZonesAcrossMonitors = false, + Monitors = new List + { + new NativeMonitorDataWrapper + { + Monitor = "monitor-1", + MonitorInstanceId = "instance-id-1", + MonitorSerialNumber = "serial-number-1", + MonitorNumber = 1, + VirtualDesktop = "{FF34D993-73F3-4B8C-AA03-73730A01D6A8}", + Dpi = 96, + LeftCoordinate = 0, + TopCoordinate = 0, + WorkAreaHeight = 1040, + WorkAreaWidth = 1920, + MonitorHeight = 1080, + MonitorWidth = 1920, + IsSelected = true, + }, + }, + }; + FancyZonesEditorSession.Files.ParamsIOHelper.WriteData(editorParameters.Serialize(parameters)); + + AppliedLayouts appliedLayouts = new AppliedLayouts(); + AppliedLayouts.AppliedLayoutsListWrapper appliedLayoutsWrapper = new AppliedLayouts.AppliedLayoutsListWrapper + { + AppliedLayouts = new List + { + new AppliedLayouts.AppliedLayoutWrapper + { + Device = new AppliedLayouts.AppliedLayoutWrapper.DeviceIdWrapper + { + Monitor = "monitor-2", + MonitorInstance = "instance-id-2", + SerialNumber = "serial-number-2", + MonitorNumber = 2, + VirtualDesktop = "{FF34D993-73F3-4B8C-AA03-73730A01D6A8}", + }, + AppliedLayout = new AppliedLayouts.AppliedLayoutWrapper.LayoutWrapper + { + Uuid = "{00000000-0000-0000-0000-000000000000}", + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Focus], + ShowSpacing = true, + Spacing = 10, + ZoneCount = 4, + SensitivityRadius = 30, + }, + }, + new AppliedLayouts.AppliedLayoutWrapper + { + Device = new AppliedLayouts.AppliedLayoutWrapper.DeviceIdWrapper + { + Monitor = "monitor-3", + MonitorInstance = "instance-id-3", + SerialNumber = "serial-number-3", + MonitorNumber = 1, + VirtualDesktop = "{FF34D993-73F3-4B8C-AA03-73730A01D6A8}", + }, + AppliedLayout = new AppliedLayouts.AppliedLayoutWrapper.LayoutWrapper + { + Uuid = "{00000000-0000-0000-0000-000000000000}", + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Columns], + ShowSpacing = true, + Spacing = 10, + ZoneCount = 1, + SensitivityRadius = 20, + }, + }, + }, + }; + FancyZonesEditorSession.Files.AppliedLayoutsIOHelper.WriteData(appliedLayouts.Serialize(appliedLayoutsWrapper)); + + _session = new FancyZonesEditorSession(_context!); + _session?.Click(_session?.GetLayout(Constants.TemplateLayoutNames[Constants.TemplateLayouts.Rows])!); + + // check the file + var data = appliedLayouts.Read(appliedLayouts.File); + Assert.AreEqual(parameters.Monitors.Count + appliedLayoutsWrapper.AppliedLayouts.Count, data.AppliedLayouts.Count); + + foreach (var monitor in parameters.Monitors) + { + Assert.IsNotNull(data.AppliedLayouts.Find(x => x.Device.Monitor == monitor.Monitor)); + } + + foreach (var layout in appliedLayoutsWrapper.AppliedLayouts) + { + Assert.IsNotNull(data.AppliedLayouts.Find(x => x.Device.Monitor == layout.Device.Monitor)); + } + } + + [TestMethod] + public void AppliedLayouts_VerifyOtherVirtualDesktopsAreNotChanged() + { + string virtualDesktop1 = "{11111111-1111-1111-1111-111111111111}"; + string virtualDesktop2 = "{22222222-2222-2222-2222-222222222222}"; + + EditorParameters editorParameters = new EditorParameters(); + ParamsWrapper parameters = new ParamsWrapper + { + ProcessId = 1, + SpanZonesAcrossMonitors = false, + Monitors = new List + { + new NativeMonitorDataWrapper + { + Monitor = "monitor-1", + MonitorInstanceId = "instance-id-1", + MonitorSerialNumber = "serial-number-1", + MonitorNumber = 1, + VirtualDesktop = virtualDesktop1, + Dpi = 96, + LeftCoordinate = 0, + TopCoordinate = 0, + WorkAreaHeight = 1040, + WorkAreaWidth = 1920, + MonitorHeight = 1080, + MonitorWidth = 1920, + IsSelected = true, + }, + }, + }; + FancyZonesEditorSession.Files.ParamsIOHelper.WriteData(editorParameters.Serialize(parameters)); + + AppliedLayouts appliedLayouts = new AppliedLayouts(); + AppliedLayouts.AppliedLayoutsListWrapper appliedLayoutsWrapper = new AppliedLayouts.AppliedLayoutsListWrapper + { + AppliedLayouts = new List + { + new AppliedLayouts.AppliedLayoutWrapper + { + Device = new AppliedLayouts.AppliedLayoutWrapper.DeviceIdWrapper + { + Monitor = "monitor-1", + MonitorInstance = "instance-id-1", + SerialNumber = "serial-number-1", + MonitorNumber = 1, + VirtualDesktop = virtualDesktop2, + }, + AppliedLayout = new AppliedLayouts.AppliedLayoutWrapper.LayoutWrapper + { + Uuid = "{00000000-0000-0000-0000-000000000000}", + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Focus], + ShowSpacing = true, + Spacing = 10, + ZoneCount = 4, + SensitivityRadius = 30, + }, + }, + }, + }; + FancyZonesEditorSession.Files.AppliedLayoutsIOHelper.WriteData(appliedLayouts.Serialize(appliedLayoutsWrapper)); + + _session = new FancyZonesEditorSession(_context!); + _session?.Click(_session?.GetLayout(Constants.TemplateLayoutNames[Constants.TemplateLayouts.Rows])!); + + // check the file + var data = appliedLayouts.Read(appliedLayouts.File); + Assert.AreEqual(parameters.Monitors.Count + appliedLayoutsWrapper.AppliedLayouts.Count, data.AppliedLayouts.Count); + Assert.IsNotNull(data.AppliedLayouts.Find(x => x.Device.VirtualDesktop == virtualDesktop1)); + Assert.IsNotNull(data.AppliedLayouts.Find(x => x.Device.VirtualDesktop == virtualDesktop2)); + Assert.AreEqual(appliedLayoutsWrapper.AppliedLayouts[0].AppliedLayout.Type, data.AppliedLayouts.Find(x => x.Device.VirtualDesktop == virtualDesktop2).AppliedLayout.Type); + Assert.AreEqual(Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Rows], data.AppliedLayouts.Find(x => x.Device.VirtualDesktop == virtualDesktop1).AppliedLayout.Type); + } } } From af2bdd37724ddcca3c07c982ed6115d31adbbfe2 Mon Sep 17 00:00:00 2001 From: seraphima Date: Fri, 8 Mar 2024 15:29:35 +0100 Subject: [PATCH 52/78] delete layout tests --- .../DeleteLayoutTests.cs | 366 ++++++++++++++++++ .../Utils/FancyZonesEditorSession.cs | 36 +- 2 files changed, 401 insertions(+), 1 deletion(-) create mode 100644 src/modules/fancyzones/UITests-FancyZonesEditor/DeleteLayoutTests.cs diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/DeleteLayoutTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/DeleteLayoutTests.cs new file mode 100644 index 000000000000..6375d2418ec9 --- /dev/null +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/DeleteLayoutTests.cs @@ -0,0 +1,366 @@ +// Copyright (c) Microsoft Corporation +// The Microsoft Corporation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System.Collections.Generic; +using FancyZonesEditorCommon.Data; +using Microsoft.FancyZonesEditor.UnitTests.Utils; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using static FancyZonesEditorCommon.Data.CustomLayouts; +using static FancyZonesEditorCommon.Data.DefaultLayouts; +using static FancyZonesEditorCommon.Data.EditorParameters; +using static FancyZonesEditorCommon.Data.LayoutHotkeys; + +namespace Microsoft.FancyZonesEditor.UITests +{ + [TestClass] + public class DeleteLayoutTests + { + private static readonly CustomLayoutListWrapper CustomLayouts = new CustomLayoutListWrapper + { + CustomLayouts = new List + { + new CustomLayoutWrapper + { + Uuid = "{0D6D2F58-9184-4804-81E4-4E4CC3476DC1}", + Type = Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Grid], + Name = "Custom layout 1", + Info = new CustomLayouts().ToJsonElement(new CustomLayouts.GridInfoWrapper + { + Rows = 2, + Columns = 3, + RowsPercentage = new List { 2967, 7033 }, + ColumnsPercentage = new List { 2410, 6040, 1550 }, + CellChildMap = new int[][] { [0, 1, 1], [0, 2, 3] }, + SensitivityRadius = 30, + Spacing = 26, + ShowSpacing = false, + }), + }, + new CustomLayoutWrapper + { + Uuid = "{E7807D0D-6223-4883-B15B-1F3883944C09}", + Type = Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas], + Name = "Custom layout 2", + Info = new CustomLayouts().ToJsonElement(new CanvasInfoWrapper + { + RefHeight = 952, + RefWidth = 1500, + SensitivityRadius = 10, + Zones = new List + { + new CanvasInfoWrapper.CanvasZoneWrapper + { + X = 0, + Y = 0, + Width = 900, + Height = 522, + }, + new CanvasInfoWrapper.CanvasZoneWrapper + { + X = 900, + Y = 0, + Width = 600, + Height = 750, + }, + new CanvasInfoWrapper.CanvasZoneWrapper + { + X = 0, + Y = 522, + Width = 1500, + Height = 430, + }, + }, + }), + }, + }, + }; + + private static readonly DefaultLayouts.DefaultLayoutsListWrapper DefaultLayoutsList = new DefaultLayouts.DefaultLayoutsListWrapper + { + DefaultLayouts = new List + { + new DefaultLayoutWrapper + { + MonitorConfiguration = MonitorConfigurationTypeEnumExtensions.MonitorConfigurationTypeToString(MonitorConfigurationType.Horizontal), + Layout = new DefaultLayoutWrapper.LayoutWrapper + { + Type = Constants.CustomLayoutTypeString, + Uuid = CustomLayouts.CustomLayouts[1].Uuid, + }, + }, + }, + }; + + private static readonly LayoutHotkeys.LayoutHotkeysWrapper Hotkeys = new LayoutHotkeys.LayoutHotkeysWrapper + { + LayoutHotkeys = new List + { + new LayoutHotkeyWrapper + { + LayoutId = CustomLayouts.CustomLayouts[1].Uuid, + Key = 0, + }, + }, + }; + + private static readonly ParamsWrapper Parameters = new ParamsWrapper + { + ProcessId = 1, + SpanZonesAcrossMonitors = false, + Monitors = new List + { + new NativeMonitorDataWrapper + { + Monitor = "monitor-1", + MonitorInstanceId = "instance-id-1", + MonitorSerialNumber = "serial-number-1", + MonitorNumber = 1, + VirtualDesktop = "{FF34D993-73F3-4B8C-AA03-73730A01D6A8}", + Dpi = 192, + LeftCoordinate = 0, + TopCoordinate = 0, + WorkAreaHeight = 1040, + WorkAreaWidth = 1920, + MonitorHeight = 1080, + MonitorWidth = 1920, + IsSelected = true, + }, + }, + }; + + private static TestContext? _context; + private static FancyZonesEditorSession? _session; + + [ClassInitialize] + public static void ClassInitialize(TestContext testContext) + { + _context = testContext; + } + + [ClassCleanup] + public static void ClassCleanup() + { + _context = null; + } + + [TestInitialize] + public void TestInitialize() + { + EditorParameters editorParameters = new EditorParameters(); + FancyZonesEditorSession.Files.ParamsIOHelper.WriteData(editorParameters.Serialize(Parameters)); + + CustomLayouts customLayouts = new CustomLayouts(); + FancyZonesEditorSession.Files.CustomLayoutsIOHelper.WriteData(customLayouts.Serialize(CustomLayouts)); + + LayoutTemplates layoutTemplates = new LayoutTemplates(); + LayoutTemplates.TemplateLayoutsListWrapper templateLayoutsListWrapper = new LayoutTemplates.TemplateLayoutsListWrapper + { + LayoutTemplates = new List + { + new LayoutTemplates.TemplateLayoutWrapper + { + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Empty], + }, + new LayoutTemplates.TemplateLayoutWrapper + { + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Focus], + ZoneCount = 10, + }, + new LayoutTemplates.TemplateLayoutWrapper + { + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Rows], + ZoneCount = 2, + ShowSpacing = true, + Spacing = 10, + SensitivityRadius = 10, + }, + new LayoutTemplates.TemplateLayoutWrapper + { + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Columns], + ZoneCount = 2, + ShowSpacing = true, + Spacing = 20, + SensitivityRadius = 20, + }, + new LayoutTemplates.TemplateLayoutWrapper + { + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Grid], + ZoneCount = 4, + ShowSpacing = false, + Spacing = 10, + SensitivityRadius = 30, + }, + new LayoutTemplates.TemplateLayoutWrapper + { + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.PriorityGrid], + ZoneCount = 3, + ShowSpacing = true, + Spacing = 1, + SensitivityRadius = 40, + }, + }, + }; + FancyZonesEditorSession.Files.LayoutTemplatesIOHelper.WriteData(layoutTemplates.Serialize(templateLayoutsListWrapper)); + + DefaultLayouts defaultLayouts = new DefaultLayouts(); + FancyZonesEditorSession.Files.DefaultLayoutsIOHelper.WriteData(defaultLayouts.Serialize(DefaultLayoutsList)); + + LayoutHotkeys layoutHotkeys = new LayoutHotkeys(); + FancyZonesEditorSession.Files.LayoutHotkeysIOHelper.WriteData(layoutHotkeys.Serialize(Hotkeys)); + + AppliedLayouts appliedLayouts = new AppliedLayouts(); + AppliedLayouts.AppliedLayoutsListWrapper appliedLayoutsWrapper = new AppliedLayouts.AppliedLayoutsListWrapper + { + AppliedLayouts = new List { }, + }; + FancyZonesEditorSession.Files.AppliedLayoutsIOHelper.WriteData(appliedLayouts.Serialize(appliedLayoutsWrapper)); + + _session = new FancyZonesEditorSession(_context!); + _session.Click(_session.GetLayout(CustomLayouts.CustomLayouts[0].Name)!); + } + + [TestCleanup] + public void TestCleanup() + { + _session?.Close(); + FancyZonesEditorSession.Files.Restore(); + } + + [TestMethod] + public void DeleteNotAppliedLayout() + { + var deletedLayout = CustomLayouts.CustomLayouts[1].Name; + _session?.Click_EditLayout(deletedLayout); + _session?.ClickDeleteLayout(); + _session?.ClickConfirmDeletion(); + _session?.WaitFor(1); + + // verify the layout is removed + Assert.IsNull(_session?.GetLayout(deletedLayout)); + + // check the file + var customLayouts = new CustomLayouts(); + var data = customLayouts.Read(customLayouts.File); + Assert.AreEqual(CustomLayouts.CustomLayouts.Count - 1, data.CustomLayouts.Count); + Assert.IsFalse(data.CustomLayouts.Exists(x => x.Name == deletedLayout)); + } + + [TestMethod] + public void DeleteAppliedLayout() + { + var deletedLayout = CustomLayouts.CustomLayouts[0].Name; + _session?.Click_EditLayout(deletedLayout); + _session?.ClickDeleteLayout(); + _session?.ClickConfirmDeletion(); + _session?.WaitFor(1); + + // verify the layout is removed + Assert.IsNull(_session?.GetLayout(deletedLayout)); + + // verify the empty layout is selected + Assert.IsTrue(_session?.GetLayout(Constants.TemplateLayoutNames[Constants.TemplateLayouts.Empty])!.Selected); + + // check the file + var customLayouts = new CustomLayouts(); + var data = customLayouts.Read(customLayouts.File); + Assert.AreEqual(CustomLayouts.CustomLayouts.Count - 1, data.CustomLayouts.Count); + Assert.IsFalse(data.CustomLayouts.Exists(x => x.Name == deletedLayout)); + + var appliedLayouts = new AppliedLayouts(); + var appliedLayoutsData = appliedLayouts.Read(appliedLayouts.File); + Assert.AreEqual(Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Empty], appliedLayoutsData.AppliedLayouts.Find(x => x.Device.Monitor == Parameters.Monitors[0].Monitor).AppliedLayout.Type); + } + + [TestMethod] + public void CancelDeletion() + { + var deletedLayout = CustomLayouts.CustomLayouts[1].Name; + _session?.Click_EditLayout(deletedLayout); + _session?.ClickDeleteLayout(); + _session?.ClickCancelDeletion(); + _session?.WaitFor(1); + + // verify the layout is not removed + Assert.IsNotNull(_session?.GetLayout(deletedLayout)); + + // check the file + var customLayouts = new CustomLayouts(); + var data = customLayouts.Read(customLayouts.File); + Assert.AreEqual(CustomLayouts.CustomLayouts.Count, data.CustomLayouts.Count); + Assert.IsTrue(data.CustomLayouts.Exists(x => x.Name == deletedLayout)); + } + + [TestMethod] + public void DeleteFromContextMenu() + { + var deletedLayout = CustomLayouts.CustomLayouts[1].Name; + _session?.Click_ContextMenuItem(deletedLayout, "Delete"); + _session?.ClickConfirmDeletion(); + _session?.WaitFor(1); + + // verify the layout is removed + Assert.IsNull(_session?.GetLayout(deletedLayout)); + + // check the file + var customLayouts = new CustomLayouts(); + var data = customLayouts.Read(customLayouts.File); + Assert.AreEqual(CustomLayouts.CustomLayouts.Count - 1, data.CustomLayouts.Count); + Assert.IsFalse(data.CustomLayouts.Exists(x => x.Name == deletedLayout)); + } + + [TestMethod] + public void DeleteDefaultLayout() + { + var deletedLayout = CustomLayouts.CustomLayouts[1].Name; + _session?.Click_ContextMenuItem(deletedLayout, "Delete"); + _session?.ClickConfirmDeletion(); + _session?.WaitFor(1); + + // verify the default layout is reset to the "default" default + _session?.Click_EditLayout(Constants.TemplateLayoutNames[Constants.TemplateLayouts.PriorityGrid]); + Assert.IsNotNull(_session?.GetHorizontalDefaultButton(true)); + _session?.Click_Cancel(); + + // check the file + var defaultLayouts = new DefaultLayouts(); + var data = defaultLayouts.Read(defaultLayouts.File); + string configuration = MonitorConfigurationTypeEnumExtensions.MonitorConfigurationTypeToString(MonitorConfigurationType.Horizontal); + Assert.AreEqual(Constants.TemplateLayoutTypes[Constants.TemplateLayouts.PriorityGrid], data.DefaultLayouts.Find(x => x.MonitorConfiguration == configuration).Layout.Type); + } + + [TestMethod] + public void DeleteLayoutWithHotkey() + { + var deletedLayout = CustomLayouts.CustomLayouts[1].Name; + _session?.Click_ContextMenuItem(deletedLayout, "Delete"); + _session?.ClickConfirmDeletion(); + _session?.WaitFor(3); + + // verify the hotkey is available + _session?.Click_EditLayout(CustomLayouts.CustomLayouts[0].Name); + var hotkeyComboBox = _session?.GetHotkeyComboBox(); + hotkeyComboBox?.Click(); + try + { + var popup = _session?.GetHotkeyPopup(); + for (int i = 0; i < 10; i++) + { + popup?.FindElementByName($"{i}"); + } + } + catch + { + _session?.Click_Cancel(); + Assert.Fail("Hotkey not found"); + } + + _session?.Click_Cancel(); + + // check the file + var hotkeys = new LayoutHotkeys(); + var data = hotkeys.Read(hotkeys.File); + Assert.AreEqual(0, data.LayoutHotkeys.Count); + } + } +} diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs index 535a31de7565..053e1ecded77 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs @@ -68,6 +68,10 @@ public static class AccessibilityId public const string EditZonesButton = "editZoneLayoutButton"; public const string DeleteTextButton = "DeleteButton"; public const string HotkeyComboBox = "quickKeySelectionComboBox"; + + // confirmation dialog + public const string PrimaryButton = "PrimaryButton"; + public const string SecondaryButton = "SecondaryButton"; } public WindowsDriver? Session { get; } @@ -335,6 +339,31 @@ public void Click_CopyLayout() button.Click(); } + public void ClickDeleteLayout() + { + WindowsElement? button = Session?.FindElementByAccessibilityId(AccessibilityId.DeleteLayoutButton); + button?.Click(); + } + + public void ClickConfirmDeletion() + { + // WaitElementDisplayedById(AccessibilityId.PrimaryButton); + // WindowsElement? button = Session?.FindElementByAccessibilityId(AccessibilityId.PrimaryButton); + // button?.Click(); - doesn't work + Actions actions = new Actions(Session); + actions.SendKeys(Keys.Tab).SendKeys(Keys.Enter); + actions.Build().Perform(); + + // WaitUntilHidden(button!); + } + + public void ClickCancelDeletion() + { + Actions actions = new Actions(Session); + actions.SendKeys(Keys.Tab).SendKeys(Keys.Tab).SendKeys(Keys.Enter); + actions.Build().Perform(); + } + public void Click_ContextMenuItem(string layoutName, string menuItem) { WindowsElement menu = OpenContextMenu(layoutName); @@ -393,13 +422,18 @@ public void WaitElementDisplayedById(string id) public void WaitUntilHidden(WindowsElement element) { - WebDriverWait wait = new WebDriverWait(Session, TimeSpan.FromSeconds(0.5)); + WebDriverWait wait = new WebDriverWait(Session, TimeSpan.FromSeconds(1)); wait.Until(pred => { return !element.Displayed; }); } + public void WaitFor(int seconds) + { + System.Threading.Thread.Sleep(seconds * 1000); + } + public void ContextClick(WindowsElement element) { Actions actions = new Actions(Session); From 120bcaeaa9aef59fd41fcd6518518ac87a33fdce Mon Sep 17 00:00:00 2001 From: seraphima Date: Fri, 8 Mar 2024 15:31:30 +0100 Subject: [PATCH 53/78] fix: refresh hotkeys --- .../fancyzones/editor/FancyZonesEditor/Models/LayoutModel.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/modules/fancyzones/editor/FancyZonesEditor/Models/LayoutModel.cs b/src/modules/fancyzones/editor/FancyZonesEditor/Models/LayoutModel.cs index d2e60092c708..c4013127a3d4 100644 --- a/src/modules/fancyzones/editor/FancyZonesEditor/Models/LayoutModel.cs +++ b/src/modules/fancyzones/editor/FancyZonesEditor/Models/LayoutModel.cs @@ -392,6 +392,8 @@ public void LayoutHotkeys_PropertyChanged(object sender, PropertyChangedEventArg break; } } + + FirePropertyChanged(nameof(QuickKeysAvailable)); } public void DefaultLayouts_PropertyChanged(object sender, PropertyChangedEventArgs e) From e6da93607f71347d962464b61525765f2837f367 Mon Sep 17 00:00:00 2001 From: seraphima Date: Fri, 8 Mar 2024 15:38:35 +0100 Subject: [PATCH 54/78] fix: serialize data after deletion --- .../fancyzones/editor/FancyZonesEditor/MainWindow.xaml.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/modules/fancyzones/editor/FancyZonesEditor/MainWindow.xaml.cs b/src/modules/fancyzones/editor/FancyZonesEditor/MainWindow.xaml.cs index 203275a20324..67b8d6b58242 100644 --- a/src/modules/fancyzones/editor/FancyZonesEditor/MainWindow.xaml.cs +++ b/src/modules/fancyzones/editor/FancyZonesEditor/MainWindow.xaml.cs @@ -484,10 +484,12 @@ private async void DeleteLayout(FrameworkElement element) } } + model.Delete(); + App.FancyZonesEditorIO.SerializeAppliedLayouts(); App.FancyZonesEditorIO.SerializeCustomLayouts(); App.FancyZonesEditorIO.SerializeDefaultLayouts(); - model.Delete(); + App.FancyZonesEditorIO.SerializeLayoutHotkeys(); } } From bf932d4e3dc0c62e6c44e491bf8bab500fec0887 Mon Sep 17 00:00:00 2001 From: seraphima Date: Fri, 8 Mar 2024 15:53:39 +0100 Subject: [PATCH 55/78] reduce waiting time --- .../fancyzones/UITests-FancyZonesEditor/DeleteLayoutTests.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/DeleteLayoutTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/DeleteLayoutTests.cs index 6375d2418ec9..5f264b8e6902 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/DeleteLayoutTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/DeleteLayoutTests.cs @@ -335,7 +335,7 @@ public void DeleteLayoutWithHotkey() var deletedLayout = CustomLayouts.CustomLayouts[1].Name; _session?.Click_ContextMenuItem(deletedLayout, "Delete"); _session?.ClickConfirmDeletion(); - _session?.WaitFor(3); + _session?.WaitFor(1); // verify the hotkey is available _session?.Click_EditLayout(CustomLayouts.CustomLayouts[0].Name); From b9450435486f3939562caf7c6559d46d8df207c3 Mon Sep 17 00:00:00 2001 From: seraphima Date: Fri, 22 Mar 2024 14:44:10 +0100 Subject: [PATCH 56/78] rename clicks --- .../ApplyLayoutTests.cs | 20 ++++---- .../CopyLayoutTests.cs | 50 +++++++++---------- .../CustomLayoutsTests.cs | 40 +++++++-------- .../DefaultLayoutsTests.cs | 16 +++--- .../DeleteLayoutTests.cs | 16 +++--- .../LayoutHotkeysTests.cs | 38 +++++++------- .../RunFancyZonesEditorTest.cs | 4 +- .../TemplateLayoutsTests.cs | 44 ++++++++-------- .../UIInitializationTests.cs | 4 +- .../Utils/FancyZonesEditorSession.cs | 16 +++--- 10 files changed, 124 insertions(+), 124 deletions(-) diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/ApplyLayoutTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/ApplyLayoutTests.cs index 94e56d77e852..fff9e8ee82e6 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/ApplyLayoutTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/ApplyLayoutTests.cs @@ -251,13 +251,13 @@ public void ApplyLayoutsOnEachMonitor() Assert.IsTrue(_session?.GetLayout(firstLayoutName)!.Selected); // apply the layout on the second monitor - _session?.Click_Monitor(2); + _session?.ClickMonitor(2); var secondLayout = CustomLayoutsList.CustomLayouts[0]; _session?.Click(_session?.GetLayout(secondLayout.Name)!); Assert.IsTrue(_session?.GetLayout(secondLayout.Name)!.Selected); // verify the layout on the first monitor wasn't changed - _session?.Click_Monitor(1); + _session?.ClickMonitor(1); Assert.IsTrue(_session?.GetLayout(firstLayoutName)!.Selected); // verify the file @@ -276,30 +276,30 @@ public void ApplyTemplateWithDifferentParametersOnEachMonitor() // apply the layout on the first monitor, set parameters _session?.Click(_session?.GetLayout(layoutName)!); - _session?.Click_EditLayout(layoutName); + _session?.ClickEditLayout(layoutName); var slider = _session?.GetZoneCountSlider(); slider?.SendKeys(Keys.Right); slider?.SendKeys(Keys.Right); var expectedFirstLayoutZoneCount = int.Parse(slider?.Text!, CultureInfo.InvariantCulture); - _session?.Click_Save(); + _session?.ClickSave(); _session?.WaitUntilHidden(slider!); // let the dialog window close // apply the layout on the second monitor, set different parameters - _session?.Click_Monitor(2); + _session?.ClickMonitor(2); _session?.Click(_session?.GetLayout(layoutName)!); - _session?.Click_EditLayout(layoutName); + _session?.ClickEditLayout(layoutName); slider = _session?.GetZoneCountSlider(); slider?.SendKeys(Keys.Left); var expectedSecondLayoutZoneCount = int.Parse(slider?.Text!, CultureInfo.InvariantCulture); - _session?.Click_Save(); + _session?.ClickSave(); _session?.WaitUntilHidden(slider!); // let the dialog window close // verify the layout on the first monitor wasn't changed - _session?.Click_Monitor(1); - _session?.Click_EditLayout(layoutName); + _session?.ClickMonitor(1); + _session?.ClickEditLayout(layoutName); slider = _session?.GetZoneCountSlider(); Assert.AreEqual(expectedFirstLayoutZoneCount, int.Parse(slider?.Text!, CultureInfo.InvariantCulture)); - _session?.Click_Cancel(); + _session?.ClickCancel(); _session?.WaitUntilHidden(slider!); // let the dialog window close // check the file diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/CopyLayoutTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/CopyLayoutTests.cs index d8623044dba5..55d37f0a1e92 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/CopyLayoutTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/CopyLayoutTests.cs @@ -190,8 +190,8 @@ public void TestCleanup() public void CopyTemplate_FromEditLayoutWindow() { string copiedLayoutName = Constants.TemplateLayoutNames[Constants.TemplateLayouts.Focus] + " (1)"; - _session?.Click_EditLayout(Constants.TemplateLayoutNames[Constants.TemplateLayouts.Focus]); - _session?.Click_CopyLayout(); + _session?.ClickEditLayout(Constants.TemplateLayoutNames[Constants.TemplateLayouts.Focus]); + _session?.ClickCopyLayout(); // verify the layout is copied Assert.IsNotNull(_session?.GetLayout(copiedLayoutName)); // new name is presented @@ -224,11 +224,11 @@ public void CopyTemplate_FromContextMenu() public void CopyTemplate_DefaultLayout() { string copiedLayoutName = Constants.TemplateLayoutNames[Constants.TemplateLayouts.PriorityGrid] + " (1)"; - _session?.Click_EditLayout(Constants.TemplateLayoutNames[Constants.TemplateLayouts.PriorityGrid]); - _session?.Click_CopyLayout(); + _session?.ClickEditLayout(Constants.TemplateLayoutNames[Constants.TemplateLayouts.PriorityGrid]); + _session?.ClickCopyLayout(); // verify the layout is copied - _session?.Click_Save(); + _session?.ClickSave(); Assert.IsNotNull(_session?.GetLayout(copiedLayoutName)); // new name is presented // verify the file @@ -237,15 +237,15 @@ public void CopyTemplate_DefaultLayout() Assert.AreEqual(CustomLayouts.CustomLayouts.Count + 1, data.CustomLayouts.Count); // verify the default layout wasn't changed - _session?.Click_EditLayout(Constants.TemplateLayoutNames[Constants.TemplateLayouts.PriorityGrid]); + _session?.ClickEditLayout(Constants.TemplateLayoutNames[Constants.TemplateLayouts.PriorityGrid]); var horizontalDefaultButton = _session?.GetHorizontalDefaultButton(true); Assert.IsNotNull(horizontalDefaultButton); - _session?.Click_Cancel(); + _session?.ClickCancel(); - _session?.Click_EditLayout(copiedLayoutName); + _session?.ClickEditLayout(copiedLayoutName); horizontalDefaultButton = _session?.GetHorizontalDefaultButton(false); Assert.IsNotNull(horizontalDefaultButton); - _session?.Click_Cancel(); + _session?.ClickCancel(); // verify the default layouts file wasn't changed var defaultLayouts = new DefaultLayouts(); @@ -257,8 +257,8 @@ public void CopyTemplate_DefaultLayout() public void CopyCustomLayout_FromEditLayoutWindow() { string copiedLayoutName = CustomLayouts.CustomLayouts[0].Name + " (1)"; - _session?.Click_EditLayout(CustomLayouts.CustomLayouts[0].Name); - _session?.Click_CopyLayout(); + _session?.ClickEditLayout(CustomLayouts.CustomLayouts[0].Name); + _session?.ClickCopyLayout(); // verify the layout is copied Assert.IsNotNull(_session?.GetLayout(copiedLayoutName)); // new name is presented @@ -291,11 +291,11 @@ public void CopyCustomLayout_FromContextMenu() public void CopyCustomLayout_DefaultLayout() { string copiedLayoutName = CustomLayouts.CustomLayouts[0].Name + " (1)"; - _session?.Click_EditLayout(CustomLayouts.CustomLayouts[0].Name); - _session?.Click_CopyLayout(); + _session?.ClickEditLayout(CustomLayouts.CustomLayouts[0].Name); + _session?.ClickCopyLayout(); // verify the layout is copied - _session?.Click_Save(); + _session?.ClickSave(); Assert.IsNotNull(_session?.GetLayout(copiedLayoutName)); // new name is presented // verify the file @@ -304,15 +304,15 @@ public void CopyCustomLayout_DefaultLayout() Assert.AreEqual(CustomLayouts.CustomLayouts.Count + 1, data.CustomLayouts.Count); // verify the default layout wasn't changed - _session?.Click_EditLayout(CustomLayouts.CustomLayouts[0].Name); + _session?.ClickEditLayout(CustomLayouts.CustomLayouts[0].Name); var horizontalDefaultButton = _session?.GetVerticalDefaultButton(true); Assert.IsNotNull(horizontalDefaultButton); - _session?.Click_Cancel(); + _session?.ClickCancel(); - _session?.Click_EditLayout(copiedLayoutName); + _session?.ClickEditLayout(copiedLayoutName); horizontalDefaultButton = _session?.GetVerticalDefaultButton(false); Assert.IsNotNull(horizontalDefaultButton); - _session?.Click_Cancel(); + _session?.ClickCancel(); // verify the default layouts file wasn't changed var defaultLayouts = new DefaultLayouts(); @@ -324,11 +324,11 @@ public void CopyCustomLayout_DefaultLayout() public void CopyCustomLayout_Hotkey() { string copiedLayoutName = CustomLayouts.CustomLayouts[0].Name + " (1)"; - _session?.Click_EditLayout(CustomLayouts.CustomLayouts[0].Name); - _session?.Click_CopyLayout(); + _session?.ClickEditLayout(CustomLayouts.CustomLayouts[0].Name); + _session?.ClickCopyLayout(); // verify the layout is copied - _session?.Click_Save(); + _session?.ClickSave(); Assert.IsNotNull(_session?.GetLayout(copiedLayoutName)); // new name is presented // verify the file @@ -337,17 +337,17 @@ public void CopyCustomLayout_Hotkey() Assert.AreEqual(CustomLayouts.CustomLayouts.Count + 1, data.CustomLayouts.Count); // verify the hotkey wasn't changed - _session?.Click_EditLayout(CustomLayouts.CustomLayouts[0].Name); + _session?.ClickEditLayout(CustomLayouts.CustomLayouts[0].Name); var hotkeyComboBox = _session?.GetHotkeyComboBox(); Assert.IsNotNull(hotkeyComboBox); Assert.AreEqual("0", hotkeyComboBox.Text); - _session?.Click_Cancel(); + _session?.ClickCancel(); - _session?.Click_EditLayout(copiedLayoutName); + _session?.ClickEditLayout(copiedLayoutName); hotkeyComboBox = _session?.GetHotkeyComboBox(); Assert.IsNotNull(hotkeyComboBox); Assert.AreEqual("None", hotkeyComboBox.Text); - _session?.Click_Cancel(); + _session?.ClickCancel(); // verify the hotkey file wasn't changed var hotkeys = new LayoutHotkeys(); diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs index 86ecfc0eb4ec..3bb5a70b9201 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs @@ -238,13 +238,13 @@ public void Rename_Save() var oldName = Layouts.CustomLayouts[0].Name; // rename the layout - _session?.Click_EditLayout(oldName); + _session?.ClickEditLayout(oldName); var input = _session?.GetNameInput(); input?.Clear(); input?.SendKeys(newName); // verify new name - _session?.Click_Save(); + _session?.ClickSave(); Assert.IsNull(_session?.GetLayout(oldName)); // previous name isn't presented Assert.IsNotNull(_session?.GetLayout(newName)); // new name is presented } @@ -256,13 +256,13 @@ public void Rename_Cancel() var oldName = Layouts.CustomLayouts[0].Name; // rename the layout - _session?.Click_EditLayout(oldName); + _session?.ClickEditLayout(oldName); var input = _session?.GetNameInput(); input?.Clear(); input?.SendKeys(newName); // verify new name - _session?.Click_Cancel(); + _session?.ClickCancel(); Assert.IsNotNull(_session?.GetLayout(oldName)); Assert.IsNull(_session?.GetLayout(newName)); } @@ -272,7 +272,7 @@ public void HighlightDistance_Initialize() { foreach (var layout in Layouts.CustomLayouts) { - _session?.Click_EditLayout(layout.Name); + _session?.ClickEditLayout(layout.Name); var slider = _session?.GetSensitivitySlider(); var expected = layout.Type == Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas] ? @@ -280,7 +280,7 @@ public void HighlightDistance_Initialize() new CustomLayouts().GridFromJsonElement(layout.Info.GetRawText()).SensitivityRadius; Assert.AreEqual($"{expected}", slider?.Text); - _session?.Click_Cancel(); + _session?.ClickCancel(); _session?.WaitUntilHidden(slider!); } } @@ -290,7 +290,7 @@ public void HighlightDistance_Save() { var layout = Layouts.CustomLayouts[0]; var type = layout.Type; - _session?.Click_EditLayout(layout.Name); + _session?.ClickEditLayout(layout.Name); var slider = _session?.GetSensitivitySlider(); slider?.SendKeys(Keys.Right); @@ -302,7 +302,7 @@ public void HighlightDistance_Save() Assert.AreEqual($"{expected}", slider?.Text); - _session?.Click_Save(); + _session?.ClickSave(); _session?.WaitUntilHidden(slider!); // let the dialog window close // verify the file @@ -319,7 +319,7 @@ public void HighlightDistance_Cancel() { var layout = Layouts.CustomLayouts[0]; var type = layout.Type; - _session?.Click_EditLayout(layout.Name); + _session?.ClickEditLayout(layout.Name); var slider = _session?.GetSensitivitySlider(); slider?.SendKeys(Keys.Right); @@ -328,7 +328,7 @@ public void HighlightDistance_Cancel() new CustomLayouts().CanvasFromJsonElement(layout.Info.GetRawText()).SensitivityRadius : new CustomLayouts().GridFromJsonElement(layout.Info.GetRawText()).SensitivityRadius; - _session?.Click_Cancel(); + _session?.ClickCancel(); _session?.WaitUntilHidden(slider!); // let the dialog window close // verify the file @@ -351,7 +351,7 @@ public void SpaceAroundZones_Initialize() continue; } - _session?.Click_EditLayout(layout.Name); + _session?.ClickEditLayout(layout.Name); var toggle = _session?.GetSpaceAroundZonesToggle(); var slider = _session?.GetSpaceAroundZonesSlider(); @@ -363,7 +363,7 @@ public void SpaceAroundZones_Initialize() var expected = new CustomLayouts().GridFromJsonElement(layout.Info.GetRawText()).Spacing; Assert.AreEqual($"{expected}", slider?.Text); - _session?.Click_Cancel(); + _session?.ClickCancel(); _session?.WaitUntilHidden(slider!); // let the dialog window close } } @@ -373,13 +373,13 @@ public void SpaceAroundZones_Slider_Save() { var layout = Layouts.CustomLayouts.Find(x => x.Type == Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Grid] && new CustomLayouts().GridFromJsonElement(x.Info.GetRawText()).ShowSpacing); var expected = new CustomLayouts().GridFromJsonElement(layout.Info.GetRawText()).Spacing + 1; // one step right - _session?.Click_EditLayout(layout.Name); + _session?.ClickEditLayout(layout.Name); var slider = _session?.GetSpaceAroundZonesSlider(); slider?.SendKeys(Keys.Right); Assert.AreEqual($"{expected}", slider?.Text); - _session?.Click_Save(); + _session?.ClickSave(); _session?.WaitUntilHidden(slider!); // let the dialog window close // verify the file @@ -393,12 +393,12 @@ public void SpaceAroundZones_Slider_Save() public void SpaceAroundZones_Slider_Cancel() { var layout = Layouts.CustomLayouts.Find(x => x.Type == Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Grid] && new CustomLayouts().GridFromJsonElement(x.Info.GetRawText()).ShowSpacing); - _session?.Click_EditLayout(layout.Name); + _session?.ClickEditLayout(layout.Name); var expected = new CustomLayouts().GridFromJsonElement(layout.Info.GetRawText()).Spacing; var slider = _session?.GetSpaceAroundZonesSlider(); slider?.SendKeys(Keys.Right); - _session?.Click_Cancel(); + _session?.ClickCancel(); _session?.WaitUntilHidden(slider!); // let the dialog window close // verify the file @@ -414,14 +414,14 @@ public void SpaceAroundZones_Toggle_Save() var layout = Layouts.CustomLayouts.Find(x => x.Type == Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Grid]); var value = new CustomLayouts().GridFromJsonElement(layout.Info.GetRawText()).ShowSpacing; var expected = !value; - _session?.Click_EditLayout(layout.Name); + _session?.ClickEditLayout(layout.Name); var toggle = _session?.GetSpaceAroundZonesToggle(); toggle?.Click(); Assert.AreEqual(expected, toggle?.Selected, "Toggle value not changed"); Assert.AreEqual(expected, _session?.GetSpaceAroundZonesSlider()?.Enabled); - _session?.Click_Save(); + _session?.ClickSave(); _session?.WaitUntilHidden(toggle!); // let the dialog window close // verify the file @@ -436,14 +436,14 @@ public void SpaceAroundZones_Toggle_Cancel() { var layout = Layouts.CustomLayouts.Find(x => x.Type == Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Grid]); var expected = new CustomLayouts().GridFromJsonElement(layout.Info.GetRawText()).ShowSpacing; - _session?.Click_EditLayout(layout.Name); + _session?.ClickEditLayout(layout.Name); var toggle = _session?.GetSpaceAroundZonesToggle(); toggle?.Click(); Assert.AreNotEqual(expected, toggle?.Selected, "Toggle value not changed"); Assert.AreNotEqual(expected, _session?.GetSpaceAroundZonesSlider()?.Enabled); - _session?.Click_Cancel(); + _session?.ClickCancel(); _session?.WaitUntilHidden(toggle!); // let the dialog window close // verify the file diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/DefaultLayoutsTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/DefaultLayoutsTests.cs index 0f6a645942fc..714b7d6e0774 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/DefaultLayoutsTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/DefaultLayoutsTests.cs @@ -261,14 +261,14 @@ public void Initialize() public void Assign_Cancel() { // assign Focus as a default horizontal and vertical layout - _session?.Click_EditLayout(Constants.TemplateLayoutNames[Constants.TemplateLayouts.Focus]); + _session?.ClickEditLayout(Constants.TemplateLayoutNames[Constants.TemplateLayouts.Focus]); var horizontalDefaultButton = _session?.GetHorizontalDefaultButton(false); horizontalDefaultButton?.Click(); var verticalDefaultButton = _session?.GetVerticalDefaultButton(false); verticalDefaultButton?.Click(); // cancel - _session?.Click_Cancel(); + _session?.ClickCancel(); _session?.WaitUntilHidden(horizontalDefaultButton!); // check that default layouts weren't changed @@ -280,14 +280,14 @@ public void Assign_Cancel() public void Assign_Save() { // assign Focus as a default horizontal and vertical layout - _session?.Click_EditLayout(Constants.TemplateLayoutNames[Constants.TemplateLayouts.Focus]); + _session?.ClickEditLayout(Constants.TemplateLayoutNames[Constants.TemplateLayouts.Focus]); var horizontalDefaultButton = _session?.GetHorizontalDefaultButton(false); horizontalDefaultButton?.Click(); var verticalDefaultButton = _session?.GetVerticalDefaultButton(false); verticalDefaultButton?.Click(); // cancel - _session?.Click_Save(); + _session?.ClickSave(); _session?.WaitUntilHidden(horizontalDefaultButton!); // check that default layout was changed @@ -304,7 +304,7 @@ private void CheckTemplateLayouts(Constants.TemplateLayouts? horizontalDefault, continue; } - _session?.Click_EditLayout(name); + _session?.ClickEditLayout(name); bool isCheckedHorizontal = key == horizontalDefault; bool isCheckedVertical = key == verticalDefault; @@ -314,7 +314,7 @@ private void CheckTemplateLayouts(Constants.TemplateLayouts? horizontalDefault, var verticalDefaultButton = _session?.GetVerticalDefaultButton(isCheckedVertical); Assert.IsNotNull(verticalDefaultButton, "Incorrect vertical default layout set at " + name); - _session?.Click_Cancel(); + _session?.ClickCancel(); _session?.WaitUntilHidden(horizontalDefaultButton!); } } @@ -323,7 +323,7 @@ private void CheckCustomLayouts(string horizontalDefaultLayoutUuid, string verti { foreach (var layout in CustomLayouts.CustomLayouts) { - _session?.Click_EditLayout(layout.Name); + _session?.ClickEditLayout(layout.Name); bool isCheckedHorizontal = layout.Uuid == horizontalDefaultLayoutUuid; var horizontalDefaultButton = _session?.GetHorizontalDefaultButton(isCheckedHorizontal); @@ -333,7 +333,7 @@ private void CheckCustomLayouts(string horizontalDefaultLayoutUuid, string verti var verticalDefaultButton = _session?.GetVerticalDefaultButton(isCheckedVertical); Assert.IsNotNull(verticalDefaultButton, "Incorrect vertical custom layout set at " + layout.Name); - _session?.Click_Cancel(); + _session?.ClickCancel(); _session?.WaitUntilHidden(horizontalDefaultButton!); } } diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/DeleteLayoutTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/DeleteLayoutTests.cs index 5f264b8e6902..c29d9b2257b8 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/DeleteLayoutTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/DeleteLayoutTests.cs @@ -231,7 +231,7 @@ public void TestCleanup() public void DeleteNotAppliedLayout() { var deletedLayout = CustomLayouts.CustomLayouts[1].Name; - _session?.Click_EditLayout(deletedLayout); + _session?.ClickEditLayout(deletedLayout); _session?.ClickDeleteLayout(); _session?.ClickConfirmDeletion(); _session?.WaitFor(1); @@ -250,7 +250,7 @@ public void DeleteNotAppliedLayout() public void DeleteAppliedLayout() { var deletedLayout = CustomLayouts.CustomLayouts[0].Name; - _session?.Click_EditLayout(deletedLayout); + _session?.ClickEditLayout(deletedLayout); _session?.ClickDeleteLayout(); _session?.ClickConfirmDeletion(); _session?.WaitFor(1); @@ -276,7 +276,7 @@ public void DeleteAppliedLayout() public void CancelDeletion() { var deletedLayout = CustomLayouts.CustomLayouts[1].Name; - _session?.Click_EditLayout(deletedLayout); + _session?.ClickEditLayout(deletedLayout); _session?.ClickDeleteLayout(); _session?.ClickCancelDeletion(); _session?.WaitFor(1); @@ -318,9 +318,9 @@ public void DeleteDefaultLayout() _session?.WaitFor(1); // verify the default layout is reset to the "default" default - _session?.Click_EditLayout(Constants.TemplateLayoutNames[Constants.TemplateLayouts.PriorityGrid]); + _session?.ClickEditLayout(Constants.TemplateLayoutNames[Constants.TemplateLayouts.PriorityGrid]); Assert.IsNotNull(_session?.GetHorizontalDefaultButton(true)); - _session?.Click_Cancel(); + _session?.ClickCancel(); // check the file var defaultLayouts = new DefaultLayouts(); @@ -338,7 +338,7 @@ public void DeleteLayoutWithHotkey() _session?.WaitFor(1); // verify the hotkey is available - _session?.Click_EditLayout(CustomLayouts.CustomLayouts[0].Name); + _session?.ClickEditLayout(CustomLayouts.CustomLayouts[0].Name); var hotkeyComboBox = _session?.GetHotkeyComboBox(); hotkeyComboBox?.Click(); try @@ -351,11 +351,11 @@ public void DeleteLayoutWithHotkey() } catch { - _session?.Click_Cancel(); + _session?.ClickCancel(); Assert.Fail("Hotkey not found"); } - _session?.Click_Cancel(); + _session?.ClickCancel(); // check the file var hotkeys = new LayoutHotkeys(); diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/LayoutHotkeysTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/LayoutHotkeysTests.cs index b2d121c52d74..520ef377eea9 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/LayoutHotkeysTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/LayoutHotkeysTests.cs @@ -315,7 +315,7 @@ public void TestCleanup() { try { - _session?.Click_Cancel(); // in case if test has failed + _session?.ClickCancel(); // in case if test has failed } catch { @@ -330,7 +330,7 @@ public void Initialize() { foreach (var layout in CustomLayouts.CustomLayouts) { - _session?.Click_EditLayout(layout.Name); + _session?.ClickEditLayout(layout.Name); var hotkeyComboBox = _session?.GetHotkeyComboBox(); Assert.IsNotNull(hotkeyComboBox); @@ -364,7 +364,7 @@ public void Initialize() Assert.Fail("Hotkey is missed"); } - _session?.Click_Cancel(); + _session?.ClickCancel(); _session?.WaitUntilHidden(hotkeyComboBox!); // let the dialog window close } } @@ -373,7 +373,7 @@ public void Initialize() public void Assign_Save() { var layout = CustomLayouts.CustomLayouts[4]; // a layout without assigned hotkey - _session?.Click_EditLayout(layout.Name); + _session?.ClickEditLayout(layout.Name); // assign hotkey const string key = "3"; @@ -384,14 +384,14 @@ public void Assign_Save() Assert.AreEqual(key, hotkeyComboBox?.Text); // verify the file - _session?.Click_Save(); + _session?.ClickSave(); _session?.WaitUntilHidden(hotkeyComboBox!); // let the dialog window close var hotkeys = new LayoutHotkeys(); var actualData = hotkeys.Read(hotkeys.File); Assert.IsTrue(actualData.LayoutHotkeys.Contains(new LayoutHotkeyWrapper { Key = int.Parse(key, CultureInfo.InvariantCulture), LayoutId = layout.Uuid })); // verify the availability - _session?.Click_EditLayout(CustomLayouts.CustomLayouts[5].Name); + _session?.ClickEditLayout(CustomLayouts.CustomLayouts[5].Name); hotkeyComboBox = _session?.GetHotkeyComboBox(); hotkeyComboBox?.Click(); popup = _session?.GetHotkeyPopup(); @@ -410,7 +410,7 @@ public void Assign_Save() public void Assign_Cancel() { var layout = CustomLayouts.CustomLayouts[4]; // a layout without assigned hotkey - _session?.Click_EditLayout(layout.Name); + _session?.ClickEditLayout(layout.Name); // assign a hotkey const string key = "3"; @@ -421,14 +421,14 @@ public void Assign_Cancel() Assert.AreEqual(key, hotkeyComboBox?.Text); // verify the file - _session?.Click_Cancel(); + _session?.ClickCancel(); _session?.WaitUntilHidden(hotkeyComboBox!); // let the dialog window close var hotkeys = new LayoutHotkeys(); var actualData = hotkeys.Read(hotkeys.File); Assert.AreEqual(Hotkeys.ToString(), actualData.ToString()); // verify the availability - _session?.Click_EditLayout(CustomLayouts.CustomLayouts[5].Name); + _session?.ClickEditLayout(CustomLayouts.CustomLayouts[5].Name); hotkeyComboBox = _session?.GetHotkeyComboBox(); hotkeyComboBox?.Click(); popup = _session?.GetHotkeyPopup(); @@ -448,14 +448,14 @@ public void Assign_AllPossibleValues() for (int i = 0; i < 10; i++) { string layoutName = $"Layout {i}"; - _session?.Click_EditLayout(layoutName); + _session?.ClickEditLayout(layoutName); var hotkeyComboBox = _session?.GetHotkeyComboBox(); hotkeyComboBox?.Click(); var popup = _session?.GetHotkeyPopup(); _session?.Click(popup?.FindElementByName($"{i}")!); - _session?.Click_Save(); + _session?.ClickSave(); _session?.WaitUntilHidden(hotkeyComboBox!); // let the dialog window close } @@ -463,7 +463,7 @@ public void Assign_AllPossibleValues() { int layout = 10; string layoutName = $"Layout {layout}"; - _session?.Click_EditLayout(layoutName); + _session?.ClickEditLayout(layoutName); var hotkeyComboBox = _session?.GetHotkeyComboBox(); hotkeyComboBox?.Click(); var popup = _session?.GetHotkeyPopup(); @@ -481,7 +481,7 @@ public void Assign_AllPossibleValues() } _session?.Click(popup?.FindElementByName($"None")!); - _session?.Click_Save(); + _session?.ClickSave(); _session?.WaitUntilHidden(hotkeyComboBox!); // let the dialog window close } } @@ -491,7 +491,7 @@ public void Reset_Save() { var layout = CustomLayouts.CustomLayouts[0]; // a layout with assigned hotkey int assignedKey = Hotkeys.LayoutHotkeys.Find(x => x.LayoutId == layout.Uuid).Key; - _session?.Click_EditLayout(layout.Name); + _session?.ClickEditLayout(layout.Name); const string None = "None"; // reset the hotkey @@ -502,14 +502,14 @@ public void Reset_Save() Assert.AreEqual(None, hotkeyComboBox?.Text); // verify the file - _session?.Click_Save(); + _session?.ClickSave(); _session?.WaitUntilHidden(hotkeyComboBox!); // let the dialog window close var hotkeys = new LayoutHotkeys(); var actualData = hotkeys.Read(hotkeys.File); Assert.IsFalse(actualData.LayoutHotkeys.Contains(new LayoutHotkeyWrapper { Key = assignedKey, LayoutId = layout.Uuid })); // verify the previously assigned key is available - _session?.Click_EditLayout(CustomLayouts.CustomLayouts[6].Name); + _session?.ClickEditLayout(CustomLayouts.CustomLayouts[6].Name); hotkeyComboBox = _session?.GetHotkeyComboBox(); hotkeyComboBox?.Click(); popup = _session?.GetHotkeyPopup(); @@ -528,7 +528,7 @@ public void Reset_Cancel() { var layout = CustomLayouts.CustomLayouts[0]; // a layout with assigned hotkey int assignedKey = Hotkeys.LayoutHotkeys.Find(x => x.LayoutId == layout.Uuid).Key; - _session?.Click_EditLayout(layout.Name); + _session?.ClickEditLayout(layout.Name); const string None = "None"; // assign hotkey @@ -539,14 +539,14 @@ public void Reset_Cancel() Assert.AreEqual(None, hotkeyComboBox?.Text); // verify the file - _session?.Click_Cancel(); + _session?.ClickCancel(); _session?.WaitUntilHidden(hotkeyComboBox!); // let the dialog window close var hotkeys = new LayoutHotkeys(); var actualData = hotkeys.Read(hotkeys.File); Assert.IsTrue(actualData.LayoutHotkeys.Contains(new LayoutHotkeyWrapper { Key = assignedKey, LayoutId = layout.Uuid })); // verify the previously assigned key is not available - _session?.Click_EditLayout(CustomLayouts.CustomLayouts[6].Name); + _session?.ClickEditLayout(CustomLayouts.CustomLayouts[6].Name); hotkeyComboBox = _session?.GetHotkeyComboBox(); hotkeyComboBox?.Click(); popup = _session?.GetHotkeyPopup(); diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/RunFancyZonesEditorTest.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/RunFancyZonesEditorTest.cs index 4551b0bd7750..766e7980b0fe 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/RunFancyZonesEditorTest.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/RunFancyZonesEditorTest.cs @@ -186,7 +186,7 @@ public void OpenEditorWindow() // verify the session is initialized [TestMethod] public void OpenNewLayoutDialog() // verify the new layout dialog is opened { - _session?.Click_CreateNewLayout(); + _session?.ClickCreateNewLayout(); Assert.IsNotNull(_session?.Session?.FindElementsByName("Choose layout type")); // check the pane header } @@ -230,7 +230,7 @@ public void ClickMonitor() Assert.IsTrue(_session?.GetMonitorItem(1)?.Selected); Assert.IsFalse(_session?.GetMonitorItem(2)?.Selected); - _session?.Click_Monitor(2); + _session?.ClickMonitor(2); // verify that the monitor 2 is selected after click Assert.IsFalse(_session?.GetMonitorItem(1)?.Selected); diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs index 06d312423961..99a6b8e0d84c 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs @@ -212,13 +212,13 @@ public void ZoneNumber_Initialize() continue; } - _session?.Click_EditLayout(name); + _session?.ClickEditLayout(name); var slider = _session?.GetZoneCountSlider(); var expected = Layouts.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutJsonTags[key]).ZoneCount; Assert.AreEqual($"{expected}", slider?.Text); - _session?.Click_Cancel(); + _session?.ClickCancel(); _session?.WaitUntilHidden(slider!); // let the dialog window close } } @@ -230,13 +230,13 @@ public void ZoneNumber_Save() var layout = Layouts.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutTypes[type]); var value = layout.ZoneCount; var expected = value - 1; - _session?.Click_EditLayout(Constants.TemplateLayoutNames[type]); + _session?.ClickEditLayout(Constants.TemplateLayoutNames[type]); var slider = _session?.GetZoneCountSlider(); slider?.SendKeys(Keys.Left); Assert.AreEqual($"{expected}", slider?.Text); - _session?.Click_Save(); + _session?.ClickSave(); _session?.WaitUntilHidden(slider!); // let the dialog window close // verify the file @@ -252,12 +252,12 @@ public void ZoneNumber_Cancel() var type = Constants.TemplateLayouts.Rows; var layout = Layouts.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutTypes[type]); var expected = layout.ZoneCount; - _session?.Click_EditLayout(Constants.TemplateLayoutNames[type]); + _session?.ClickEditLayout(Constants.TemplateLayoutNames[type]); var slider = _session?.GetZoneCountSlider(); slider?.SendKeys(Keys.Left); - _session?.Click_Cancel(); + _session?.ClickCancel(); _session?.WaitUntilHidden(slider!); // let the dialog window close // verify the file @@ -277,13 +277,13 @@ public void HighlightDistance_Initialize() continue; } - _session?.Click_EditLayout(name); + _session?.ClickEditLayout(name); var slider = _session?.GetSensitivitySlider(); var expected = Layouts.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutJsonTags[key]).SensitivityRadius; Assert.AreEqual($"{expected}", slider?.Text); - _session?.Click_Cancel(); + _session?.ClickCancel(); _session?.WaitUntilHidden(slider!); // let the dialog window close } } @@ -294,7 +294,7 @@ public void HighlightDistance_Save() var type = Constants.TemplateLayouts.Focus; var layout = Layouts.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutTypes[type]); var value = layout.SensitivityRadius; - _session?.Click_EditLayout(Constants.TemplateLayoutNames[type]); + _session?.ClickEditLayout(Constants.TemplateLayoutNames[type]); var slider = _session?.GetSensitivitySlider(); slider?.SendKeys(Keys.Right); @@ -302,7 +302,7 @@ public void HighlightDistance_Save() var expected = value + 1; // one step right Assert.AreEqual($"{expected}", slider?.Text); - _session?.Click_Save(); + _session?.ClickSave(); _session?.WaitUntilHidden(slider!); // let the dialog window close // verify the file @@ -318,11 +318,11 @@ public void HighlightDistance_Cancel() var type = Constants.TemplateLayouts.Focus; var layout = Layouts.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutTypes[type]); var expected = layout.SensitivityRadius; - _session?.Click_EditLayout(Constants.TemplateLayoutNames[type]); + _session?.ClickEditLayout(Constants.TemplateLayoutNames[type]); var slider = _session?.GetSensitivitySlider(); slider?.SendKeys(Keys.Right); - _session?.Click_Cancel(); + _session?.ClickCancel(); _session?.WaitUntilHidden(slider!); // let the dialog window close // verify the file @@ -343,7 +343,7 @@ public void SpaceAroundZones_Initialize() continue; } - _session?.Click_EditLayout(name); + _session?.ClickEditLayout(name); var toggle = _session?.GetSpaceAroundZonesToggle(); var slider = _session?.GetSpaceAroundZonesSlider(); @@ -354,7 +354,7 @@ public void SpaceAroundZones_Initialize() var expected = Layouts.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutJsonTags[key]).Spacing; Assert.AreEqual($"{expected}", slider?.Text); - _session?.Click_Cancel(); + _session?.ClickCancel(); _session?.WaitUntilHidden(slider!); // let the dialog window close } } @@ -365,13 +365,13 @@ public void SpaceAroundZones_Slider_Save() var type = Constants.TemplateLayouts.PriorityGrid; var layout = Layouts.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutTypes[type]); var expected = layout.Spacing + 1; - _session?.Click_EditLayout(Constants.TemplateLayoutNames[type]); + _session?.ClickEditLayout(Constants.TemplateLayoutNames[type]); var slider = _session?.GetSpaceAroundZonesSlider(); slider?.SendKeys(Keys.Right); Assert.AreEqual($"{expected}", slider?.Text); - _session?.Click_Save(); + _session?.ClickSave(); _session?.WaitUntilHidden(slider!); // let the dialog window close // verify the file @@ -387,13 +387,13 @@ public void SpaceAroundZones_Slider_Cancel() var type = Constants.TemplateLayouts.PriorityGrid; var layout = Layouts.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutTypes[type]); var expected = layout.Spacing; - _session?.Click_EditLayout(Constants.TemplateLayoutNames[type]); + _session?.ClickEditLayout(Constants.TemplateLayoutNames[type]); var slider = _session?.GetSpaceAroundZonesSlider(); slider?.SendKeys(Keys.Right); Assert.AreEqual($"{expected + 1}", slider?.Text); - _session?.Click_Cancel(); + _session?.ClickCancel(); _session?.WaitUntilHidden(slider!); // let the dialog window close // verify the file @@ -409,14 +409,14 @@ public void SpaceAroundZones_Toggle_Save() var type = Constants.TemplateLayouts.PriorityGrid; var layout = Layouts.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutTypes[type]); var expected = !layout.ShowSpacing; - _session?.Click_EditLayout(Constants.TemplateLayoutNames[type]); + _session?.ClickEditLayout(Constants.TemplateLayoutNames[type]); var toggle = _session?.GetSpaceAroundZonesToggle(); toggle?.Click(); Assert.AreEqual(expected, toggle?.Selected); Assert.AreEqual(expected, _session?.GetSpaceAroundZonesSlider()?.Enabled); - _session?.Click_Save(); + _session?.ClickSave(); _session?.WaitUntilHidden(toggle!); // let the dialog window close // verify the file @@ -432,14 +432,14 @@ public void SpaceAroundZones_Toggle_Cancel() var type = Constants.TemplateLayouts.PriorityGrid; var layout = Layouts.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutTypes[type]); var expected = layout.ShowSpacing; - _session?.Click_EditLayout(Constants.TemplateLayoutNames[type]); + _session?.ClickEditLayout(Constants.TemplateLayoutNames[type]); var toggle = _session?.GetSpaceAroundZonesToggle(); toggle?.Click(); Assert.AreNotEqual(expected, toggle?.Selected); Assert.AreNotEqual(expected, _session?.GetSpaceAroundZonesSlider()?.Enabled); - _session?.Click_Cancel(); + _session?.ClickCancel(); _session?.WaitUntilHidden(toggle!); // let the dialog window close // verify the file diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializationTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializationTests.cs index 403a72a93bd4..945e8428deef 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializationTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializationTests.cs @@ -399,7 +399,7 @@ public void AppliedLayouts_LayoutsApplied() Assert.IsTrue(layoutOnMonitor1.Selected); // check layout on monitor 2 - _session?.Click_Monitor(2); + _session?.ClickMonitor(2); var layoutOnMonitor2 = _session?.GetLayout(customLayoutListWrapper.CustomLayouts[0].Name); Assert.IsNotNull(layoutOnMonitor2); Assert.IsTrue(layoutOnMonitor2.Selected); @@ -624,7 +624,7 @@ public void AppliedLayouts_NoLayoutsApplied_TemplateDefaultLayout() Assert.IsTrue(defaultLayout.Selected); // check the number of zones and spacing - _session?.Click_EditLayout(Constants.TemplateLayoutNames[Constants.TemplateLayouts.Grid]); + _session?.ClickEditLayout(Constants.TemplateLayoutNames[Constants.TemplateLayouts.Grid]); Assert.AreEqual(defaultLayoutsListWrapper.DefaultLayouts[0].Layout.ZoneCount, int.Parse(_session?.GetZoneCountSlider()?.Text!, CultureInfo.InvariantCulture)); Assert.AreEqual(defaultLayoutsListWrapper.DefaultLayouts[0].Layout.Spacing, int.Parse(_session?.GetSpaceAroundZonesSlider()?.Text!, CultureInfo.InvariantCulture)); Assert.AreEqual(defaultLayoutsListWrapper.DefaultLayouts[0].Layout.ShowSpacing, _session?.GetSpaceAroundZonesSlider()?.Enabled); diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs index 053e1ecded77..0bf6e73a5daa 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs @@ -160,7 +160,7 @@ public void Close() public WindowsElement OpenContextMenu(string layoutName) { - RightClick_Layout(layoutName); + RightClickLayout(layoutName); var menu = Session?.FindElementByClassName("ContextMenu"); Assert.IsNotNull(menu, "Context menu not found"); return menu; @@ -263,14 +263,14 @@ public WindowsElement GetMonitorItem(int monitorNumber) } } - public void Click_CreateNewLayout() + public void ClickCreateNewLayout() { var button = FindByAccessibilityId(AccessibilityId.NewLayoutButton); Assert.IsNotNull(button, "Create new layout button not found"); button?.Click(); } - public void Click_EditLayout(string layoutName) + public void ClickEditLayout(string layoutName) { var layout = GetLayout(layoutName); Assert.IsNotNull(layout, $"Layout \"{layoutName}\" not found"); @@ -290,33 +290,33 @@ public void Click_EditLayout(string layoutName) } } - public void RightClick_Layout(string layoutName) + public void RightClickLayout(string layoutName) { var layout = GetLayout(layoutName); ContextClick(layout!); } - public void Click_Monitor(int monitorNumber) + public void ClickMonitor(int monitorNumber) { var monitor = GetMonitorItem(monitorNumber); Click(monitor!); } - public void Click_Save() + public void ClickSave() { var button = Session?.FindElementByName("Save"); Assert.IsNotNull(button, "No Save button"); button.Click(); } - public void Click_Cancel() + public void ClickCancel() { var button = Session?.FindElementByName("Cancel"); Assert.IsNotNull(button, "No Cancel button"); button.Click(); } - public void Click_CopyLayout() + public void ClickCopyLayout() { WindowsElement? button = null; try From b382971760f9904378ca103755290917283d8a5f Mon Sep 17 00:00:00 2001 From: seraphima Date: Tue, 12 Mar 2024 20:23:14 +0100 Subject: [PATCH 57/78] rename --- .../CopyLayoutTests.cs | 4 +-- .../DeleteLayoutTests.cs | 18 +++++----- .../RunFancyZonesEditorTest.cs | 4 +-- .../Utils/FancyZonesEditorSession.cs | 35 ++++++++++++++----- 4 files changed, 40 insertions(+), 21 deletions(-) diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/CopyLayoutTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/CopyLayoutTests.cs index 55d37f0a1e92..43684e9c4e54 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/CopyLayoutTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/CopyLayoutTests.cs @@ -207,7 +207,7 @@ public void CopyTemplate_FromEditLayoutWindow() public void CopyTemplate_FromContextMenu() { string copiedLayoutName = Constants.TemplateLayoutNames[Constants.TemplateLayouts.Rows] + " (1)"; - _session?.Click_ContextMenuItem(Constants.TemplateLayoutNames[Constants.TemplateLayouts.Rows], "Create custom layout"); + _session?.ClickContextMenuItem(Constants.TemplateLayoutNames[Constants.TemplateLayouts.Rows], "Create custom layout"); // verify the layout is copied _session?.WaitElementDisplayedByName(copiedLayoutName); @@ -274,7 +274,7 @@ public void CopyCustomLayout_FromEditLayoutWindow() public void CopyCustomLayout_FromContextMenu() { string copiedLayoutName = CustomLayouts.CustomLayouts[0].Name + " (1)"; - _session?.Click_ContextMenuItem(CustomLayouts.CustomLayouts[0].Name, "Duplicate"); + _session?.ClickContextMenuItem(CustomLayouts.CustomLayouts[0].Name, "Duplicate"); // verify the layout is copied _session?.WaitElementDisplayedByName(copiedLayoutName); diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/DeleteLayoutTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/DeleteLayoutTests.cs index c29d9b2257b8..f4613e9c454f 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/DeleteLayoutTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/DeleteLayoutTests.cs @@ -233,7 +233,7 @@ public void DeleteNotAppliedLayout() var deletedLayout = CustomLayouts.CustomLayouts[1].Name; _session?.ClickEditLayout(deletedLayout); _session?.ClickDeleteLayout(); - _session?.ClickConfirmDeletion(); + _session?.ClickConfirmDialog(); _session?.WaitFor(1); // verify the layout is removed @@ -252,7 +252,7 @@ public void DeleteAppliedLayout() var deletedLayout = CustomLayouts.CustomLayouts[0].Name; _session?.ClickEditLayout(deletedLayout); _session?.ClickDeleteLayout(); - _session?.ClickConfirmDeletion(); + _session?.ClickConfirmDialog(); _session?.WaitFor(1); // verify the layout is removed @@ -278,7 +278,7 @@ public void CancelDeletion() var deletedLayout = CustomLayouts.CustomLayouts[1].Name; _session?.ClickEditLayout(deletedLayout); _session?.ClickDeleteLayout(); - _session?.ClickCancelDeletion(); + _session?.ClickCancelDialog(); _session?.WaitFor(1); // verify the layout is not removed @@ -295,8 +295,8 @@ public void CancelDeletion() public void DeleteFromContextMenu() { var deletedLayout = CustomLayouts.CustomLayouts[1].Name; - _session?.Click_ContextMenuItem(deletedLayout, "Delete"); - _session?.ClickConfirmDeletion(); + _session?.ClickContextMenuItem(deletedLayout, "Delete"); + _session?.ClickConfirmDialog(); _session?.WaitFor(1); // verify the layout is removed @@ -313,8 +313,8 @@ public void DeleteFromContextMenu() public void DeleteDefaultLayout() { var deletedLayout = CustomLayouts.CustomLayouts[1].Name; - _session?.Click_ContextMenuItem(deletedLayout, "Delete"); - _session?.ClickConfirmDeletion(); + _session?.ClickContextMenuItem(deletedLayout, "Delete"); + _session?.ClickConfirmDialog(); _session?.WaitFor(1); // verify the default layout is reset to the "default" default @@ -333,8 +333,8 @@ public void DeleteDefaultLayout() public void DeleteLayoutWithHotkey() { var deletedLayout = CustomLayouts.CustomLayouts[1].Name; - _session?.Click_ContextMenuItem(deletedLayout, "Delete"); - _session?.ClickConfirmDeletion(); + _session?.ClickContextMenuItem(deletedLayout, "Delete"); + _session?.ClickConfirmDialog(); _session?.WaitFor(1); // verify the hotkey is available diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/RunFancyZonesEditorTest.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/RunFancyZonesEditorTest.cs index 766e7980b0fe..e4416f6ac8bc 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/RunFancyZonesEditorTest.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/RunFancyZonesEditorTest.cs @@ -201,7 +201,7 @@ public void OpenEditLayoutDialog() // verify the edit layout dialog is opened [TestMethod] public void OpenEditLayoutDialog_ByContextMenu_TemplateLayout() // verify the edit layout dialog is opened { - _session?.Click_ContextMenuItem(Constants.TemplateLayoutNames[Constants.TemplateLayouts.Grid], "Edit"); + _session?.ClickContextMenuItem(Constants.TemplateLayoutNames[Constants.TemplateLayouts.Grid], "Edit"); Assert.IsNotNull(_session?.Session?.FindElementByAccessibilityId("EditLayoutDialogTitle")); // check the pane header Assert.IsNotNull(_session?.Session?.FindElementsByName("Edit 'Grid'")); // verify it's opened for the correct layout } @@ -209,7 +209,7 @@ public void OpenEditLayoutDialog_ByContextMenu_TemplateLayout() // verify the ed [TestMethod] public void OpenEditLayoutDialog_ByContextMenu_CustomLayout() // verify the edit layout dialog is opened { - _session?.Click_ContextMenuItem("Custom layout", "Edit"); + _session?.ClickContextMenuItem("Custom layout", "Edit"); Assert.IsNotNull(_session?.Session?.FindElementByAccessibilityId("EditLayoutDialogTitle")); // check the pane header Assert.IsNotNull(_session?.Session?.FindElementsByName("Edit 'Grid'")); // verify it's opened for the correct layout } diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs index 0bf6e73a5daa..5dc03252d127 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs @@ -345,31 +345,50 @@ public void ClickDeleteLayout() button?.Click(); } - public void ClickConfirmDeletion() + public void ClickConfirm() + { + WaitElementDisplayedById(AccessibilityId.PrimaryButton); + WindowsElement? button = Session?.FindElementByAccessibilityId(AccessibilityId.PrimaryButton); + button?.Click(); + WaitUntilHidden(button!); + } + + public void ClickConfirmDialog() { - // WaitElementDisplayedById(AccessibilityId.PrimaryButton); - // WindowsElement? button = Session?.FindElementByAccessibilityId(AccessibilityId.PrimaryButton); - // button?.Click(); - doesn't work Actions actions = new Actions(Session); actions.SendKeys(Keys.Tab).SendKeys(Keys.Enter); actions.Build().Perform(); - - // WaitUntilHidden(button!); } - public void ClickCancelDeletion() + public void ClickCancelDialog() { Actions actions = new Actions(Session); actions.SendKeys(Keys.Tab).SendKeys(Keys.Tab).SendKeys(Keys.Enter); actions.Build().Perform(); } - public void Click_ContextMenuItem(string layoutName, string menuItem) + public void ClickContextMenuItem(string layoutName, string menuItem) { WindowsElement menu = OpenContextMenu(layoutName); Click(menu.FindElementByName(menuItem)); } + public void SelectNewLayoutType(Constants.CustomLayoutType type) + { + WindowsElement? button = null; + switch (type) + { + case Constants.CustomLayoutType.Canvas: + button = FindByAccessibilityId(AccessibilityId.CanvasRadioButton); + break; + case Constants.CustomLayoutType.Grid: + button = FindByAccessibilityId(AccessibilityId.GridRadioButton); + break; + } + + Click(button!); + } + private WindowsElement? FindByAccessibilityId(string name) { try From df01bcb0dd86ee48ae67b5c498a20e3779476b31 Mon Sep 17 00:00:00 2001 From: seraphima Date: Tue, 12 Mar 2024 20:50:17 +0100 Subject: [PATCH 58/78] creation tests --- .../CreateLayoutTests.cs | 250 ++++++++++++++++++ .../Utils/FancyZonesEditorSession.cs | 5 + 2 files changed, 255 insertions(+) create mode 100644 src/modules/fancyzones/UITests-FancyZonesEditor/CreateLayoutTests.cs diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/CreateLayoutTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/CreateLayoutTests.cs new file mode 100644 index 000000000000..13c1dae56879 --- /dev/null +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/CreateLayoutTests.cs @@ -0,0 +1,250 @@ +// Copyright (c) Microsoft Corporation +// The Microsoft Corporation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System.Collections.Generic; +using FancyZonesEditorCommon.Data; +using Microsoft.FancyZonesEditor.UnitTests.Utils; +using Microsoft.VisualStudio.TestTools.UnitTesting; + +namespace Microsoft.FancyZonesEditor.UITests +{ + [TestClass] + public class CreateLayoutTests + { + private static FancyZonesEditorSession? _session; + private static TestContext? _context; + + [ClassInitialize] + public static void ClassInitialize(TestContext testContext) + { + _context = testContext; + } + + [ClassCleanup] + public static void ClassCleanup() + { + _context = null; + } + + [TestInitialize] + public void TestInitialize() + { + // prepare test editor parameters with 2 monitors before launching the editor + EditorParameters editorParameters = new EditorParameters(); + EditorParameters.ParamsWrapper parameters = new EditorParameters.ParamsWrapper + { + ProcessId = 1, + SpanZonesAcrossMonitors = false, + Monitors = new List + { + new EditorParameters.NativeMonitorDataWrapper + { + Monitor = "monitor-1", + MonitorInstanceId = "instance-id-1", + MonitorSerialNumber = "serial-number-1", + MonitorNumber = 1, + VirtualDesktop = "{FF34D993-73F3-4B8C-AA03-73730A01D6A8}", + Dpi = 96, + LeftCoordinate = 0, + TopCoordinate = 0, + WorkAreaHeight = 1040, + WorkAreaWidth = 1920, + MonitorHeight = 1080, + MonitorWidth = 1920, + IsSelected = true, + }, + }, + }; + FancyZonesEditorSession.Files.ParamsIOHelper.WriteData(editorParameters.Serialize(parameters)); + + LayoutTemplates layoutTemplates = new LayoutTemplates(); + LayoutTemplates.TemplateLayoutsListWrapper templateLayoutsListWrapper = new LayoutTemplates.TemplateLayoutsListWrapper + { + LayoutTemplates = new List + { + new LayoutTemplates.TemplateLayoutWrapper + { + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Empty], + }, + new LayoutTemplates.TemplateLayoutWrapper + { + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Focus], + ZoneCount = 10, + }, + new LayoutTemplates.TemplateLayoutWrapper + { + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Rows], + ZoneCount = 2, + ShowSpacing = true, + Spacing = 10, + SensitivityRadius = 10, + }, + new LayoutTemplates.TemplateLayoutWrapper + { + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Columns], + ZoneCount = 2, + ShowSpacing = true, + Spacing = 20, + SensitivityRadius = 20, + }, + new LayoutTemplates.TemplateLayoutWrapper + { + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Grid], + ZoneCount = 4, + ShowSpacing = false, + Spacing = 10, + SensitivityRadius = 30, + }, + new LayoutTemplates.TemplateLayoutWrapper + { + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.PriorityGrid], + ZoneCount = 3, + ShowSpacing = true, + Spacing = 1, + SensitivityRadius = 40, + }, + }, + }; + FancyZonesEditorSession.Files.LayoutTemplatesIOHelper.WriteData(layoutTemplates.Serialize(templateLayoutsListWrapper)); + + CustomLayouts customLayouts = new CustomLayouts(); + CustomLayouts.CustomLayoutListWrapper customLayoutListWrapper = new CustomLayouts.CustomLayoutListWrapper + { + CustomLayouts = new List { }, + }; + FancyZonesEditorSession.Files.CustomLayoutsIOHelper.WriteData(customLayouts.Serialize(customLayoutListWrapper)); + + DefaultLayouts defaultLayouts = new DefaultLayouts(); + DefaultLayouts.DefaultLayoutsListWrapper defaultLayoutsListWrapper = new DefaultLayouts.DefaultLayoutsListWrapper + { + DefaultLayouts = new List { }, + }; + FancyZonesEditorSession.Files.DefaultLayoutsIOHelper.WriteData(defaultLayouts.Serialize(defaultLayoutsListWrapper)); + + LayoutHotkeys layoutHotkeys = new LayoutHotkeys(); + LayoutHotkeys.LayoutHotkeysWrapper layoutHotkeysWrapper = new LayoutHotkeys.LayoutHotkeysWrapper + { + LayoutHotkeys = new List { }, + }; + FancyZonesEditorSession.Files.LayoutHotkeysIOHelper.WriteData(layoutHotkeys.Serialize(layoutHotkeysWrapper)); + + AppliedLayouts appliedLayouts = new AppliedLayouts(); + AppliedLayouts.AppliedLayoutsListWrapper appliedLayoutsWrapper = new AppliedLayouts.AppliedLayoutsListWrapper + { + AppliedLayouts = new List { }, + }; + FancyZonesEditorSession.Files.AppliedLayoutsIOHelper.WriteData(appliedLayouts.Serialize(appliedLayoutsWrapper)); + + _session = new FancyZonesEditorSession(_context!); + } + + [TestCleanup] + public void TestCleanup() + { + _session?.Close(); + FancyZonesEditorSession.Files.Restore(); + } + + [TestMethod] + public void CreateWithDefaultName() + { + string name = "Custom layout 1"; + _session?.ClickCreateNewLayout(); + _session?.ClickConfirm(); + _session?.ClickSave(); + + // verify new layout presented + Assert.IsNotNull(_session?.GetLayout(name)); + + // check the file + var customLayouts = new CustomLayouts(); + var data = customLayouts.Read(customLayouts.File); + Assert.AreEqual(1, data.CustomLayouts.Count); + Assert.IsTrue(data.CustomLayouts.Exists(x => x.Name == name)); + } + + [TestMethod] + public void CreateWithCustomName() + { + string name = "Layout Name"; + _session?.ClickCreateNewLayout(); + var input = _session?.GetNameInput(); + input?.Clear(); + input?.SendKeys(name); + _session?.ClickConfirm(); + _session?.ClickSave(); + + // verify new layout presented + Assert.IsNotNull(_session?.GetLayout(name)); + + // check the file + var customLayouts = new CustomLayouts(); + var data = customLayouts.Read(customLayouts.File); + Assert.AreEqual(1, data.CustomLayouts.Count); + Assert.IsTrue(data.CustomLayouts.Exists(x => x.Name == name)); + } + + [TestMethod] + public void CreateGrid() + { + Constants.CustomLayoutType type = Constants.CustomLayoutType.Grid; + _session?.ClickCreateNewLayout(); + _session?.SelectNewLayoutType(type); + _session?.ClickConfirm(); + _session?.ClickSave(); + + // check the file + var customLayouts = new CustomLayouts(); + var data = customLayouts.Read(customLayouts.File); + Assert.AreEqual(1, data.CustomLayouts.Count); + Assert.IsTrue(data.CustomLayouts.Exists(x => x.Type == Constants.CustomLayoutTypeNames[type])); + } + + [TestMethod] + public void CreateCanvas() + { + Constants.CustomLayoutType type = Constants.CustomLayoutType.Canvas; + _session?.ClickCreateNewLayout(); + _session?.SelectNewLayoutType(type); + _session?.ClickConfirm(); + _session?.ClickSave(); + + // check the file + var customLayouts = new CustomLayouts(); + var data = customLayouts.Read(customLayouts.File); + Assert.AreEqual(1, data.CustomLayouts.Count); + Assert.IsTrue(data.CustomLayouts.Exists(x => x.Type == Constants.CustomLayoutTypeNames[type])); + } + + [TestMethod] + public void CancelGridCreation() + { + Constants.CustomLayoutType type = Constants.CustomLayoutType.Grid; + _session?.ClickCreateNewLayout(); + _session?.SelectNewLayoutType(type); + _session?.ClickConfirm(); + _session?.ClickCancel(); + + // check the file + var customLayouts = new CustomLayouts(); + var data = customLayouts.Read(customLayouts.File); + Assert.AreEqual(0, data.CustomLayouts.Count); + } + + [TestMethod] + public void CancelCanvasCreation() + { + Constants.CustomLayoutType type = Constants.CustomLayoutType.Canvas; + _session?.ClickCreateNewLayout(); + _session?.SelectNewLayoutType(type); + _session?.ClickConfirm(); + _session?.ClickCancel(); + + // check the file + var customLayouts = new CustomLayouts(); + var data = customLayouts.Read(customLayouts.File); + Assert.AreEqual(0, data.CustomLayouts.Count); + } + } +} diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs index 5dc03252d127..64868fc5bba3 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs @@ -6,6 +6,7 @@ using System.Diagnostics; using System.IO; using System.Reflection; +using Microsoft.FancyZonesEditor.UITests; using Microsoft.FancyZonesEditor.UITests.Utils; using Microsoft.VisualStudio.TestTools.UnitTesting; using OpenQA.Selenium; @@ -69,6 +70,10 @@ public static class AccessibilityId public const string DeleteTextButton = "DeleteButton"; public const string HotkeyComboBox = "quickKeySelectionComboBox"; + // layout creation dialog + public const string GridRadioButton = "GridLayoutRadioButton"; + public const string CanvasRadioButton = "CanvasLayoutRadioButton"; + // confirmation dialog public const string PrimaryButton = "PrimaryButton"; public const string SecondaryButton = "SecondaryButton"; From 1e988b42890fd27e3ce3ba6e1655e1007a158bf5 Mon Sep 17 00:00:00 2001 From: seraphima Date: Fri, 15 Mar 2024 17:29:51 +0100 Subject: [PATCH 59/78] fix: not restoring the layout when called from context menu --- .../fancyzones/editor/FancyZonesEditor/MainWindow.xaml.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/modules/fancyzones/editor/FancyZonesEditor/MainWindow.xaml.cs b/src/modules/fancyzones/editor/FancyZonesEditor/MainWindow.xaml.cs index 67b8d6b58242..e20d55855e0b 100644 --- a/src/modules/fancyzones/editor/FancyZonesEditor/MainWindow.xaml.cs +++ b/src/modules/fancyzones/editor/FancyZonesEditor/MainWindow.xaml.cs @@ -347,10 +347,14 @@ private async void EditLayout_Click(object sender, RoutedEventArgs e) private void EditZones_Click(object sender, RoutedEventArgs e) { Logger.LogTrace(); + var dataContext = ((FrameworkElement)sender).DataContext; Select((LayoutModel)dataContext); + App.Overlay.StartEditing(_settings.SelectedModel); + EditLayoutDialog.Hide(); Hide(); + App.Overlay.OpenEditor(_settings.SelectedModel); } From 384a8b0e627e3e56786edb6cb2bf240746f1dd44 Mon Sep 17 00:00:00 2001 From: seraphima Date: Mon, 18 Mar 2024 15:02:58 +0100 Subject: [PATCH 60/78] edit layout tests --- .../EditLayoutTests.cs | 606 ++++++++++++++++++ .../Utils/FancyZonesEditorSession.cs | 144 +++++ 2 files changed, 750 insertions(+) create mode 100644 src/modules/fancyzones/UITests-FancyZonesEditor/EditLayoutTests.cs diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/EditLayoutTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/EditLayoutTests.cs new file mode 100644 index 000000000000..1be2582b72c6 --- /dev/null +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/EditLayoutTests.cs @@ -0,0 +1,606 @@ +// Copyright (c) Microsoft Corporation +// The Microsoft Corporation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System.Collections.Generic; +using System.Linq; +using FancyZonesEditorCommon.Data; +using Microsoft.FancyZonesEditor.UnitTests.Utils; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using static FancyZonesEditorCommon.Data.CustomLayouts; + +namespace Microsoft.FancyZonesEditor.UITests +{ + [TestClass] + public class EditLayoutTests + { + private static readonly CustomLayouts.CustomLayoutListWrapper Layouts = new CustomLayouts.CustomLayoutListWrapper + { + CustomLayouts = new List + { + new CustomLayoutWrapper + { + Uuid = "{0D6D2F58-9184-4804-81E4-4E4CC3476DC1}", + Type = Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Grid], + Name = "Grid custom layout", + Info = new CustomLayouts().ToJsonElement(new GridInfoWrapper + { + Rows = 2, + Columns = 2, + RowsPercentage = new List { 5000, 5000 }, + ColumnsPercentage = new List { 5000, 5000 }, + CellChildMap = new int[][] { [0, 1], [2, 3] }, + SensitivityRadius = 30, + Spacing = 26, + ShowSpacing = false, + }), + }, + new CustomLayoutWrapper + { + Uuid = "{0EB9BF3E-010E-46D7-8681-1879D1E111E1}", + Type = Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Grid], + Name = "Grid-9", + Info = new CustomLayouts().ToJsonElement(new GridInfoWrapper + { + Rows = 3, + Columns = 3, + RowsPercentage = new List { 3333, 3333, 3334 }, + ColumnsPercentage = new List { 3333, 3333, 3334 }, + CellChildMap = new int[][] { [0, 1, 2], [3, 4, 5], [6, 7, 8] }, + SensitivityRadius = 20, + Spacing = 3, + ShowSpacing = false, + }), + }, + new CustomLayoutWrapper + { + Uuid = "{E7807D0D-6223-4883-B15B-1F3883944C09}", + Type = Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas], + Name = "Canvas custom layout", + Info = new CustomLayouts().ToJsonElement(new CanvasInfoWrapper + { + RefHeight = 952, + RefWidth = 1500, + SensitivityRadius = 10, + Zones = new List + { + new CanvasInfoWrapper.CanvasZoneWrapper + { + X = 0, + Y = 0, + Width = 900, + Height = 522, + }, + new CanvasInfoWrapper.CanvasZoneWrapper + { + X = 900, + Y = 0, + Width = 600, + Height = 750, + }, + new CanvasInfoWrapper.CanvasZoneWrapper + { + X = 0, + Y = 522, + Width = 1500, + Height = 430, + }, + }, + }), + }, + }, + }; + + private static TestContext? _context; + private static FancyZonesEditorSession? _session; + + [ClassInitialize] + public static void ClassInitialize(TestContext testContext) + { + _context = testContext; + } + + [ClassCleanup] + public static void ClassCleanup() + { + _context = null; + } + + [TestInitialize] + public void TestInitialize() + { + LayoutTemplates layoutTemplates = new LayoutTemplates(); + LayoutTemplates.TemplateLayoutsListWrapper templateLayoutsListWrapper = new LayoutTemplates.TemplateLayoutsListWrapper + { + LayoutTemplates = new List + { + new LayoutTemplates.TemplateLayoutWrapper + { + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Empty], + }, + new LayoutTemplates.TemplateLayoutWrapper + { + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Focus], + ZoneCount = 10, + }, + new LayoutTemplates.TemplateLayoutWrapper + { + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Rows], + ZoneCount = 2, + ShowSpacing = true, + Spacing = 10, + SensitivityRadius = 10, + }, + new LayoutTemplates.TemplateLayoutWrapper + { + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Columns], + ZoneCount = 2, + ShowSpacing = true, + Spacing = 20, + SensitivityRadius = 20, + }, + new LayoutTemplates.TemplateLayoutWrapper + { + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Grid], + ZoneCount = 4, + ShowSpacing = false, + Spacing = 10, + SensitivityRadius = 30, + }, + new LayoutTemplates.TemplateLayoutWrapper + { + Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.PriorityGrid], + ZoneCount = 3, + ShowSpacing = true, + Spacing = 1, + SensitivityRadius = 40, + }, + }, + }; + FancyZonesEditorSession.Files.LayoutTemplatesIOHelper.WriteData(layoutTemplates.Serialize(templateLayoutsListWrapper)); + + CustomLayouts customLayouts = new CustomLayouts(); + FancyZonesEditorSession.Files.CustomLayoutsIOHelper.WriteData(customLayouts.Serialize(Layouts)); + + DefaultLayouts defaultLayouts = new DefaultLayouts(); + DefaultLayouts.DefaultLayoutsListWrapper defaultLayoutsListWrapper = new DefaultLayouts.DefaultLayoutsListWrapper + { + DefaultLayouts = new List { }, + }; + FancyZonesEditorSession.Files.DefaultLayoutsIOHelper.WriteData(defaultLayouts.Serialize(defaultLayoutsListWrapper)); + + LayoutHotkeys layoutHotkeys = new LayoutHotkeys(); + LayoutHotkeys.LayoutHotkeysWrapper layoutHotkeysWrapper = new LayoutHotkeys.LayoutHotkeysWrapper + { + LayoutHotkeys = new List { }, + }; + FancyZonesEditorSession.Files.LayoutHotkeysIOHelper.WriteData(layoutHotkeys.Serialize(layoutHotkeysWrapper)); + + AppliedLayouts appliedLayouts = new AppliedLayouts(); + AppliedLayouts.AppliedLayoutsListWrapper appliedLayoutsWrapper = new AppliedLayouts.AppliedLayoutsListWrapper + { + AppliedLayouts = new List { }, + }; + FancyZonesEditorSession.Files.AppliedLayoutsIOHelper.WriteData(appliedLayouts.Serialize(appliedLayoutsWrapper)); + + _session = new FancyZonesEditorSession(_context!); + } + + [TestCleanup] + public void TestCleanup() + { + _session?.Close(); + FancyZonesEditorSession.Files.Restore(); + } + + [TestMethod] + public void OpenEditMode() + { + _session?.ClickEditLayout(Layouts.CustomLayouts[0].Name); + _session?.ClickEditZones(); + Assert.IsNotNull(_session?.GetGridLayoutEditorWindow()); + _session?.ClickCancel(); + } + + [TestMethod] + public void OpenEditModeFromContextMenu() + { + _session?.ClickContextMenuItem(Layouts.CustomLayouts[0].Name, FancyZonesEditorSession.ElementName.EditZones); + Assert.IsNotNull(_session?.GetGridLayoutEditorWindow()); + _session?.ClickCancel(); + } + + [TestMethod] + public void Canvas_AddZone_Save() + { + var canvas = Layouts.CustomLayouts.Find(x => x.Type == Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas]); + _session?.ClickContextMenuItem(canvas.Name, FancyZonesEditorSession.ElementName.EditZones); + _session?.ClickAddNewZone(); + _session?.ClickSave(); + + // check the file + var customLayouts = new CustomLayouts(); + var data = customLayouts.Read(customLayouts.File); + var expected = customLayouts.CanvasFromJsonElement(canvas.Info.ToString()); + var actual = customLayouts.CanvasFromJsonElement(data.CustomLayouts.Find(x => x.Uuid == canvas.Uuid).Info.GetRawText()); + Assert.AreEqual(expected.Zones.Count + 1, actual.Zones.Count); + } + + [TestMethod] + public void Canvas_AddZone_Cancel() + { + var canvas = Layouts.CustomLayouts.Find(x => x.Type == Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas]); + _session?.ClickContextMenuItem(canvas.Name, FancyZonesEditorSession.ElementName.EditZones); + _session?.ClickAddNewZone(); + _session?.ClickCancel(); + + // check the file + var customLayouts = new CustomLayouts(); + var data = customLayouts.Read(customLayouts.File); + var expected = customLayouts.CanvasFromJsonElement(canvas.Info.ToString()); + var actual = customLayouts.CanvasFromJsonElement(data.CustomLayouts.Find(x => x.Uuid == canvas.Uuid).Info.GetRawText()); + Assert.AreEqual(expected.Zones.Count, actual.Zones.Count); + } + + [TestMethod] + public void Canvas_DeleteZone_Save() + { + var canvas = Layouts.CustomLayouts.Find(x => x.Type == Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas]); + _session?.ClickContextMenuItem(canvas.Name, FancyZonesEditorSession.ElementName.EditZones); + _session?.WaitElementDisplayedByName(FancyZonesEditorSession.ElementName.CanvasEditorWindow); + _session?.ClickDeleteZone(1); + _session?.ClickSave(); + + // check the file + var customLayouts = new CustomLayouts(); + var data = customLayouts.Read(customLayouts.File); + var expected = customLayouts.CanvasFromJsonElement(canvas.Info.ToString()); + var actual = customLayouts.CanvasFromJsonElement(data.CustomLayouts.Find(x => x.Uuid == canvas.Uuid).Info.GetRawText()); + Assert.AreEqual(expected.Zones.Count - 1, actual.Zones.Count); + } + + [TestMethod] + public void Canvas_DeleteZone_Cancel() + { + var canvas = Layouts.CustomLayouts.Find(x => x.Type == Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas]); + _session?.ClickContextMenuItem(canvas.Name, FancyZonesEditorSession.ElementName.EditZones); + _session?.ClickDeleteZone(1); + _session?.ClickCancel(); + + // check the file + var customLayouts = new CustomLayouts(); + var data = customLayouts.Read(customLayouts.File); + var expected = customLayouts.CanvasFromJsonElement(canvas.Info.ToString()); + var actual = customLayouts.CanvasFromJsonElement(data.CustomLayouts.Find(x => x.Uuid == canvas.Uuid).Info.GetRawText()); + Assert.AreEqual(expected.Zones.Count, actual.Zones.Count); + } + + [TestMethod] + public void Canvas_MoveZone_Save() + { + int zoneNumber = 1; + int xOffset = 100; + int yOffset = 100; + var canvas = Layouts.CustomLayouts.Find(x => x.Type == Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas]); + _session?.ClickContextMenuItem(canvas.Name, FancyZonesEditorSession.ElementName.EditZones); + + _session?.Drag(_session.GetZone(zoneNumber, FancyZonesEditorSession.ClassName.CanvasZone)!, xOffset, yOffset); + _session?.ClickSave(); + + // check the file + var customLayouts = new CustomLayouts(); + var data = customLayouts.Read(customLayouts.File); + var expected = customLayouts.CanvasFromJsonElement(canvas.Info.ToString()); + var actual = customLayouts.CanvasFromJsonElement(data.CustomLayouts.Find(x => x.Uuid == canvas.Uuid).Info.GetRawText()); + + // changed zone, exact offset may vary depending on screen resolution + Assert.IsTrue(expected.Zones[zoneNumber - 1].X < actual.Zones[zoneNumber - 1].X, $"X: {expected.Zones[zoneNumber - 1].X} > {actual.Zones[zoneNumber - 1].X}"); + Assert.IsTrue(expected.Zones[zoneNumber - 1].Y < actual.Zones[zoneNumber - 1].Y, $"Y: {expected.Zones[zoneNumber - 1].Y} > {actual.Zones[zoneNumber - 1].Y}"); + Assert.AreEqual(expected.Zones[zoneNumber - 1].Width, actual.Zones[zoneNumber - 1].Width); + Assert.AreEqual(expected.Zones[zoneNumber - 1].Height, actual.Zones[zoneNumber - 1].Height); + + // other zones + for (int i = 0; i < expected.Zones.Count; i++) + { + if (i != zoneNumber - 1) + { + Assert.AreEqual(expected.Zones[i].X, actual.Zones[i].X); + Assert.AreEqual(expected.Zones[i].Y, actual.Zones[i].Y); + Assert.AreEqual(expected.Zones[i].Width, actual.Zones[i].Width); + Assert.AreEqual(expected.Zones[i].Height, actual.Zones[i].Height); + } + } + } + + [TestMethod] + public void Canvas_MoveZone_Cancel() + { + int zoneNumber = 1; + var canvas = Layouts.CustomLayouts.Find(x => x.Type == Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas]); + _session?.ClickContextMenuItem(canvas.Name, FancyZonesEditorSession.ElementName.EditZones); + + _session?.Drag(_session.GetZone(zoneNumber, FancyZonesEditorSession.ClassName.CanvasZone)!, 100, 100); + _session?.ClickCancel(); + + // check the file + var customLayouts = new CustomLayouts(); + var data = customLayouts.Read(customLayouts.File); + var expected = customLayouts.CanvasFromJsonElement(canvas.Info.ToString()); + var actual = customLayouts.CanvasFromJsonElement(data.CustomLayouts.Find(x => x.Uuid == canvas.Uuid).Info.GetRawText()); + for (int i = 0; i < expected.Zones.Count; i++) + { + Assert.AreEqual(expected.Zones[i].X, actual.Zones[i].X); + Assert.AreEqual(expected.Zones[i].Y, actual.Zones[i].Y); + Assert.AreEqual(expected.Zones[i].Width, actual.Zones[i].Width); + Assert.AreEqual(expected.Zones[i].Height, actual.Zones[i].Height); + } + } + + [TestMethod] + public void Canvas_ResizeZone_Save() + { + int zoneNumber = 1; + int xOffset = 100; + int yOffset = 100; + var canvas = Layouts.CustomLayouts.Find(x => x.Type == Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas]); + _session?.ClickContextMenuItem(canvas.Name, FancyZonesEditorSession.ElementName.EditZones); + + _session?.Drag(_session.GetZone(zoneNumber, FancyZonesEditorSession.ClassName.CanvasZone)?.FindElementByAccessibilityId(FancyZonesEditorSession.AccessibilityId.TopRightCorner)!, xOffset, yOffset); + _session?.ClickSave(); + + // check the file + var customLayouts = new CustomLayouts(); + var data = customLayouts.Read(customLayouts.File); + var expected = customLayouts.CanvasFromJsonElement(canvas.Info.ToString()); + var actual = customLayouts.CanvasFromJsonElement(data.CustomLayouts.Find(x => x.Uuid == canvas.Uuid).Info.GetRawText()); + + // changed zone, exact offset may vary depending on screen resolution + Assert.AreEqual(expected.Zones[zoneNumber - 1].X, actual.Zones[zoneNumber - 1].X); + Assert.IsTrue(expected.Zones[zoneNumber - 1].Y < actual.Zones[zoneNumber - 1].Y, $"Y: {expected.Zones[zoneNumber - 1].Y} > {actual.Zones[zoneNumber - 1].Y}"); + Assert.IsTrue(expected.Zones[zoneNumber - 1].Width < actual.Zones[zoneNumber - 1].Width, $"Width: {expected.Zones[zoneNumber - 1].Width} < {actual.Zones[zoneNumber - 1].Width}"); + Assert.IsTrue(expected.Zones[zoneNumber - 1].Height > actual.Zones[zoneNumber - 1].Height, $"Height: {expected.Zones[zoneNumber - 1].Height} < {actual.Zones[zoneNumber - 1].Height}"); + + // other zones + for (int i = 0; i < expected.Zones.Count; i++) + { + if (i != zoneNumber - 1) + { + Assert.AreEqual(expected.Zones[i].X, actual.Zones[i].X); + Assert.AreEqual(expected.Zones[i].Y, actual.Zones[i].Y); + Assert.AreEqual(expected.Zones[i].Width, actual.Zones[i].Width); + Assert.AreEqual(expected.Zones[i].Height, actual.Zones[i].Height); + } + } + } + + [TestMethod] + public void Canvas_ResizeZone_Cancel() + { + int zoneNumber = 1; + int xOffset = 100; + int yOffset = 100; + var canvas = Layouts.CustomLayouts.Find(x => x.Type == Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas]); + _session?.ClickContextMenuItem(canvas.Name, FancyZonesEditorSession.ElementName.EditZones); + + _session?.Drag(_session.GetZone(zoneNumber, FancyZonesEditorSession.ClassName.CanvasZone)?.FindElementByAccessibilityId(FancyZonesEditorSession.AccessibilityId.TopRightCorner)!, xOffset, yOffset); + _session?.ClickCancel(); + + // check the file + var customLayouts = new CustomLayouts(); + var data = customLayouts.Read(customLayouts.File); + var expected = customLayouts.CanvasFromJsonElement(canvas.Info.ToString()); + var actual = customLayouts.CanvasFromJsonElement(data.CustomLayouts.Find(x => x.Uuid == canvas.Uuid).Info.GetRawText()); + + for (int i = 0; i < expected.Zones.Count; i++) + { + Assert.AreEqual(expected.Zones[i].X, actual.Zones[i].X); + Assert.AreEqual(expected.Zones[i].Y, actual.Zones[i].Y); + Assert.AreEqual(expected.Zones[i].Width, actual.Zones[i].Width); + Assert.AreEqual(expected.Zones[i].Height, actual.Zones[i].Height); + } + } + + [TestMethod] + public void Grid_SplitZone_Save() + { + int zoneNumber = 1; + var grid = Layouts.CustomLayouts.Find(x => x.Type == Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Grid]); + _session?.ClickContextMenuItem(grid.Name, FancyZonesEditorSession.ElementName.EditZones); + + _session?.GetZone(zoneNumber, FancyZonesEditorSession.ClassName.GridZone)!.Click(); // horizontal split in the middle of the zone + _session?.ClickSave(); + + // check the file + var customLayouts = new CustomLayouts(); + var data = customLayouts.Read(customLayouts.File); + var expected = customLayouts.GridFromJsonElement(grid.Info.ToString()); + var actual = customLayouts.GridFromJsonElement(data.CustomLayouts.Find(x => x.Uuid == grid.Uuid).Info.GetRawText()); + + // new column added + Assert.AreEqual(expected.Columns + 1, actual.Columns); + Assert.AreEqual(expected.ColumnsPercentage[0], actual.ColumnsPercentage[0] + actual.ColumnsPercentage[1]); + Assert.AreEqual(expected.ColumnsPercentage[1], actual.ColumnsPercentage[2]); + + // rows are not changed + Assert.AreEqual(expected.Rows, actual.Rows); + for (int i = 0; i < expected.Rows; i++) + { + Assert.AreEqual(expected.RowsPercentage[i], actual.RowsPercentage[i]); + } + } + + [TestMethod] + public void Grid_SplitZone_Cancel() + { + int zoneNumber = 1; + var grid = Layouts.CustomLayouts.Find(x => x.Type == Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Grid]); + _session?.ClickContextMenuItem(grid.Name, FancyZonesEditorSession.ElementName.EditZones); + + _session?.GetZone(zoneNumber, FancyZonesEditorSession.ClassName.GridZone)!.Click(); // horizontal split in the middle of the zone + _session?.ClickCancel(); + + // check the file + var customLayouts = new CustomLayouts(); + var data = customLayouts.Read(customLayouts.File); + var expected = customLayouts.GridFromJsonElement(grid.Info.ToString()); + var actual = customLayouts.GridFromJsonElement(data.CustomLayouts.Find(x => x.Uuid == grid.Uuid).Info.GetRawText()); + + // columns are not changed + Assert.AreEqual(expected.Columns, actual.Columns); + for (int i = 0; i < expected.Columns; i++) + { + Assert.AreEqual(expected.ColumnsPercentage[i], actual.ColumnsPercentage[i]); + } + + // rows are not changed + Assert.AreEqual(expected.Rows, actual.Rows); + for (int i = 0; i < expected.Rows; i++) + { + Assert.AreEqual(expected.RowsPercentage[i], actual.RowsPercentage[i]); + } + } + + [TestMethod] + public void Grid_MergeZones_Save() + { + var grid = Layouts.CustomLayouts.Find(x => x.Type == Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Grid]); + _session?.ClickContextMenuItem(grid.Name, FancyZonesEditorSession.ElementName.EditZones); + + _session?.MergeGridZones(1, 2); + _session?.ClickSave(); + + // check the file + var customLayouts = new CustomLayouts(); + var data = customLayouts.Read(customLayouts.File); + var expected = customLayouts.GridFromJsonElement(grid.Info.ToString()); + var actual = customLayouts.GridFromJsonElement(data.CustomLayouts.Find(x => x.Uuid == grid.Uuid).Info.GetRawText()); + + // columns are not changed + Assert.AreEqual(expected.Columns, actual.Columns); + for (int i = 0; i < expected.Columns; i++) + { + Assert.AreEqual(expected.ColumnsPercentage[i], actual.ColumnsPercentage[i]); + } + + // rows are not changed + Assert.AreEqual(expected.Rows, actual.Rows); + for (int i = 0; i < expected.Rows; i++) + { + Assert.AreEqual(expected.RowsPercentage[i], actual.RowsPercentage[i]); + } + + // cells are updated to [0,0][1,2] + Assert.IsTrue(actual.CellChildMap[0].SequenceEqual([0, 0])); + Assert.IsTrue(actual.CellChildMap[1].SequenceEqual([1, 2])); + } + + [TestMethod] + public void Grid_MergeZones_Cancel() + { + var grid = Layouts.CustomLayouts.Find(x => x.Type == Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Grid]); + _session?.ClickContextMenuItem(grid.Name, FancyZonesEditorSession.ElementName.EditZones); + + _session?.MergeGridZones(1, 2); + _session?.ClickCancel(); + + // check the file + var customLayouts = new CustomLayouts(); + var data = customLayouts.Read(customLayouts.File); + var expected = customLayouts.GridFromJsonElement(grid.Info.ToString()); + var actual = customLayouts.GridFromJsonElement(data.CustomLayouts.Find(x => x.Uuid == grid.Uuid).Info.GetRawText()); + + // columns are not changed + Assert.AreEqual(expected.Columns, actual.Columns); + for (int i = 0; i < expected.Columns; i++) + { + Assert.AreEqual(expected.ColumnsPercentage[i], actual.ColumnsPercentage[i]); + } + + // rows are not changed + Assert.AreEqual(expected.Rows, actual.Rows); + for (int i = 0; i < expected.Rows; i++) + { + Assert.AreEqual(expected.RowsPercentage[i], actual.RowsPercentage[i]); + } + + // cells are not changed + for (int i = 0; i < expected.CellChildMap.Length; i++) + { + Assert.IsTrue(actual.CellChildMap[i].SequenceEqual(expected.CellChildMap[i])); + } + } + + [TestMethod] + public void Grid_MoveSplitter_Save() + { + var grid = Layouts.CustomLayouts.Find(x => x.Type == Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Grid] && x.Name == "Grid-9"); + _session?.ClickContextMenuItem(grid.Name, FancyZonesEditorSession.ElementName.EditZones); + + _session?.MoveSplitter(0, -100); + _session?.ClickSave(); + _session?.ClickSave(); // single click doesn't work after moving a splitter + + // check the file + var customLayouts = new CustomLayouts(); + var data = customLayouts.Read(customLayouts.File); + var expected = customLayouts.GridFromJsonElement(grid.Info.ToString()); + var actual = customLayouts.GridFromJsonElement(data.CustomLayouts.Find(x => x.Uuid == grid.Uuid).Info.GetRawText()); + + // columns are not changed + Assert.AreEqual(expected.Columns, actual.Columns); + for (int i = 0; i < expected.Columns; i++) + { + Assert.AreEqual(expected.ColumnsPercentage[i], actual.ColumnsPercentage[i]); + } + + // rows are changed + Assert.AreEqual(expected.Rows, actual.Rows); + Assert.IsTrue(expected.RowsPercentage[0] > actual.RowsPercentage[0]); + Assert.IsTrue(expected.RowsPercentage[1] < actual.RowsPercentage[1]); + Assert.AreEqual(expected.RowsPercentage[2], actual.RowsPercentage[2]); + + // cells are not changed + for (int i = 0; i < expected.CellChildMap.Length; i++) + { + Assert.IsTrue(actual.CellChildMap[i].SequenceEqual(expected.CellChildMap[i])); + } + } + + [TestMethod] + public void Grid_MoveSplitter_Cancel() + { + var grid = Layouts.CustomLayouts.Find(x => x.Type == Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Grid] && x.Name == "Grid-9"); + _session?.ClickContextMenuItem(grid.Name, FancyZonesEditorSession.ElementName.EditZones); + + _session?.MoveSplitter(0, -100); + _session?.ClickCancel(); + _session?.ClickCancel(); // single click doesn't work after moving a splitter + + // check the file + var customLayouts = new CustomLayouts(); + var data = customLayouts.Read(customLayouts.File); + var expected = customLayouts.GridFromJsonElement(grid.Info.ToString()); + var actual = customLayouts.GridFromJsonElement(data.CustomLayouts.Find(x => x.Uuid == grid.Uuid).Info.GetRawText()); + + // columns are not changed + Assert.AreEqual(expected.Columns, actual.Columns); + for (int i = 0; i < expected.Columns; i++) + { + Assert.AreEqual(expected.ColumnsPercentage[i], actual.ColumnsPercentage[i]); + } + + // rows are not changed + Assert.AreEqual(expected.Rows, actual.Rows); + for (int i = 0; i < expected.Rows; i++) + { + Assert.AreEqual(expected.RowsPercentage[i], actual.RowsPercentage[i]); + } + + // cells are not changed + for (int i = 0; i < expected.CellChildMap.Length; i++) + { + Assert.IsTrue(actual.CellChildMap[i].SequenceEqual(expected.CellChildMap[i])); + } + } + } +} diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs index 64868fc5bba3..ae088d015a4b 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs @@ -3,7 +3,9 @@ // See the LICENSE file in the project root for more information. using System; +using System.Collections.ObjectModel; using System.Diagnostics; +using System.Globalization; using System.IO; using System.Reflection; using Microsoft.FancyZonesEditor.UITests; @@ -69,6 +71,8 @@ public static class AccessibilityId public const string EditZonesButton = "editZoneLayoutButton"; public const string DeleteTextButton = "DeleteButton"; public const string HotkeyComboBox = "quickKeySelectionComboBox"; + public const string NewZoneButton = "newZoneButton"; + public const string TopRightCorner = "NEResize"; // layout creation dialog public const string GridRadioButton = "GridLayoutRadioButton"; @@ -79,6 +83,25 @@ public static class AccessibilityId public const string SecondaryButton = "SecondaryButton"; } + public static class ElementName + { + // context menu + public const string EditZones = "Edit zones"; + + // canvas layout editor + public const string CanvasEditorWindow = "Canvas layout editor"; + + // grid layout editor + public const string MergeZonesButton = "Merge zones"; + } + + public static class ClassName + { + // layout editor + public const string CanvasZone = "CanvasZone"; + public const string GridZone = "GridZone"; + } + public WindowsDriver? Session { get; } public FancyZonesEditorSession(TestContext testContext) @@ -268,6 +291,52 @@ public WindowsElement GetMonitorItem(int monitorNumber) } } + public WindowsElement? GetGridLayoutEditorWindow() + { + try + { + return Session?.FindElementByName("Grid layout editor"); + } + catch + { + Assert.Fail($"Grid layout editor window not found"); + return null; + } + } + + public WindowsElement? GetZone(int zoneNumber, string zoneClassName) + { + ReadOnlyCollection? zones = null; + + try + { + zones = Session?.FindElementsByClassName(zoneClassName); + } + catch + { + } + + if (zones == null || zones.Count == 0) + { + return null; + } + + foreach (WindowsElement zone in zones) + { + try + { + zone.FindElementByName(zoneNumber.ToString(CultureInfo.InvariantCulture)); + return zone; + } + catch + { + // required number not found in the zone + } + } + + return null; + } + public void ClickCreateNewLayout() { var button = FindByAccessibilityId(AccessibilityId.NewLayoutButton); @@ -295,6 +364,12 @@ public void ClickEditLayout(string layoutName) } } + public void ClickEditZones() + { + var button = FindByAccessibilityId(AccessibilityId.EditZonesButton); + button?.Click(); + } + public void RightClickLayout(string layoutName) { var layout = GetLayout(layoutName); @@ -378,6 +453,61 @@ public void ClickContextMenuItem(string layoutName, string menuItem) Click(menu.FindElementByName(menuItem)); } + public void ClickAddNewZone() + { + var button = FindByAccessibilityId(AccessibilityId.NewZoneButton); + button?.Click(); + } + + public void ClickDeleteZone(int zoneNumber) + { + var zone = GetZone(zoneNumber, ClassName.CanvasZone); + Assert.IsNotNull(zone); + var button = zone?.FindElementByClassName("Button"); + Assert.IsNotNull(button); + button?.Click(); + } + + public void MergeGridZones(int zoneNumber1, int zoneNumber2) + { + var zone1 = GetZone(zoneNumber1, ClassName.GridZone); + var zone2 = GetZone(zoneNumber2, ClassName.GridZone); + if (zone1 == null || zone2 == null) + { + return; + } + + Actions actions = new Actions(Session); + actions.MoveToElement(zone1).ClickAndHold(); + int dx = (zone2.Rect.X - zone1.Rect.X) / 10; + int dy = (zone2.Rect.Y - zone1.Rect.Y) / 10; + for (int i = 0; i < 10; i++) + { + actions.MoveByOffset(dx, dy); + } + + actions.MoveToElement(zone2).Release(); + actions.Build().Perform(); + + Click(Session?.FindElementByName(ElementName.MergeZonesButton)!); + } + + public void MoveSplitter(int xOffset, int yOffset) + { + ReadOnlyCollection? thumbs = Session?.FindElementsByClassName("Thumb"); + + Actions actions = new Actions(Session); + actions.MoveToElement(thumbs?[0]).ClickAndHold(); + int dx = xOffset / 10; + int dy = yOffset / 10; + for (int i = 0; i < 10; i++) + { + actions.MoveByOffset(dx, dy); + } + + actions.Build().Perform(); + } + public void SelectNewLayoutType(Constants.CustomLayoutType type) { WindowsElement? button = null; @@ -475,5 +605,19 @@ public void Click(AppiumWebElement element) actions.Click(); actions.Build().Perform(); } + + public void Drag(WindowsElement element, int offsetX, int offsetY) + { + Actions actions = new Actions(Session); + actions.MoveToElement(element).MoveByOffset(10, 10).ClickAndHold(element).MoveByOffset(offsetX, offsetY).Release(); + actions.Build().Perform(); + } + + public void Drag(AppiumWebElement element, int offsetX, int offsetY) + { + Actions actions = new Actions(Session); + actions.MoveToElement(element).MoveByOffset(10, 10).ClickAndHold(element).MoveByOffset(offsetX, offsetY).Release(); + actions.Build().Perform(); + } } } From 8073777f79e8cdc5da64590dec559e9b45f13c6c Mon Sep 17 00:00:00 2001 From: seraphima Date: Fri, 22 Mar 2024 14:46:06 +0100 Subject: [PATCH 61/78] refactoring --- .../EditLayoutTests.cs | 5 +- .../RunFancyZonesEditorTest.cs | 30 ++-- .../Utils/FancyZonesEditorSession.cs | 166 +++++++++--------- 3 files changed, 95 insertions(+), 106 deletions(-) diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/EditLayoutTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/EditLayoutTests.cs index 1be2582b72c6..88365dd875ca 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/EditLayoutTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/EditLayoutTests.cs @@ -7,6 +7,7 @@ using FancyZonesEditorCommon.Data; using Microsoft.FancyZonesEditor.UnitTests.Utils; using Microsoft.VisualStudio.TestTools.UnitTesting; +using OpenQA.Selenium.Appium.Windows; using static FancyZonesEditorCommon.Data.CustomLayouts; namespace Microsoft.FancyZonesEditor.UITests @@ -345,7 +346,7 @@ public void Canvas_ResizeZone_Save() var canvas = Layouts.CustomLayouts.Find(x => x.Type == Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas]); _session?.ClickContextMenuItem(canvas.Name, FancyZonesEditorSession.ElementName.EditZones); - _session?.Drag(_session.GetZone(zoneNumber, FancyZonesEditorSession.ClassName.CanvasZone)?.FindElementByAccessibilityId(FancyZonesEditorSession.AccessibilityId.TopRightCorner)!, xOffset, yOffset); + _session?.Drag((WindowsElement)_session.GetZone(zoneNumber, FancyZonesEditorSession.ClassName.CanvasZone)?.FindElementByAccessibilityId(FancyZonesEditorSession.AccessibilityId.TopRightCorner)!, xOffset, yOffset); _session?.ClickSave(); // check the file @@ -382,7 +383,7 @@ public void Canvas_ResizeZone_Cancel() var canvas = Layouts.CustomLayouts.Find(x => x.Type == Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas]); _session?.ClickContextMenuItem(canvas.Name, FancyZonesEditorSession.ElementName.EditZones); - _session?.Drag(_session.GetZone(zoneNumber, FancyZonesEditorSession.ClassName.CanvasZone)?.FindElementByAccessibilityId(FancyZonesEditorSession.AccessibilityId.TopRightCorner)!, xOffset, yOffset); + _session?.Drag((WindowsElement)_session.GetZone(zoneNumber, FancyZonesEditorSession.ClassName.CanvasZone)?.FindElementByAccessibilityId(FancyZonesEditorSession.AccessibilityId.TopRightCorner)!, xOffset, yOffset); _session?.ClickCancel(); // check the file diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/RunFancyZonesEditorTest.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/RunFancyZonesEditorTest.cs index e4416f6ac8bc..b8d60ac02202 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/RunFancyZonesEditorTest.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/RunFancyZonesEditorTest.cs @@ -177,41 +177,35 @@ public void TestCleanup() _session?.Close(); } - [TestMethod] - public void OpenEditorWindow() // verify the session is initialized - { - Assert.IsNotNull(_session?.Session); - } - [TestMethod] public void OpenNewLayoutDialog() // verify the new layout dialog is opened { _session?.ClickCreateNewLayout(); - Assert.IsNotNull(_session?.Session?.FindElementsByName("Choose layout type")); // check the pane header + Assert.IsNotNull(_session?.FindByName("Choose layout type")); // check the pane header } [TestMethod] public void OpenEditLayoutDialog() // verify the edit layout dialog is opened { - _session?.Click_EditLayout(TestConstants.TemplateLayoutNames[Constants.TemplateLayout.Grid]); - Assert.IsNotNull(_session?.Session?.FindElementByAccessibilityId("EditLayoutDialogTitle")); // check the pane header - Assert.IsNotNull(_session?.Session?.FindElementsByName("Edit 'Grid'")); // verify it's opened for the correct layout + _session?.ClickEditLayout(Constants.TemplateLayoutNames[Constants.TemplateLayouts.Grid]); + Assert.IsNotNull(_session?.FindByAccessibilityId("EditLayoutDialogTitle")); // check the pane header + Assert.IsNotNull(_session?.FindByName("Edit 'Grid'")); // verify it's opened for the correct layout } [TestMethod] public void OpenEditLayoutDialog_ByContextMenu_TemplateLayout() // verify the edit layout dialog is opened { _session?.ClickContextMenuItem(Constants.TemplateLayoutNames[Constants.TemplateLayouts.Grid], "Edit"); - Assert.IsNotNull(_session?.Session?.FindElementByAccessibilityId("EditLayoutDialogTitle")); // check the pane header - Assert.IsNotNull(_session?.Session?.FindElementsByName("Edit 'Grid'")); // verify it's opened for the correct layout + Assert.IsNotNull(_session?.FindByAccessibilityId("EditLayoutDialogTitle")); // check the pane header + Assert.IsNotNull(_session?.FindByName("Edit 'Grid'")); // verify it's opened for the correct layout } [TestMethod] public void OpenEditLayoutDialog_ByContextMenu_CustomLayout() // verify the edit layout dialog is opened { _session?.ClickContextMenuItem("Custom layout", "Edit"); - Assert.IsNotNull(_session?.Session?.FindElementByAccessibilityId("EditLayoutDialogTitle")); // check the pane header - Assert.IsNotNull(_session?.Session?.FindElementsByName("Edit 'Grid'")); // verify it's opened for the correct layout + Assert.IsNotNull(_session?.FindByAccessibilityId("EditLayoutDialogTitle")); // check the pane header + Assert.IsNotNull(_session?.FindByName("Edit 'Grid'")); // verify it's opened for the correct layout } [TestMethod] @@ -227,14 +221,14 @@ public void ClickMonitor() Assert.IsNotNull(_session?.GetMonitorItem(2)); // verify that the monitor 1 is selected initially - Assert.IsTrue(_session?.GetMonitorItem(1)?.Selected); - Assert.IsFalse(_session?.GetMonitorItem(2)?.Selected); + Assert.IsTrue(_session?.GetMonitorItem(1).Selected); + Assert.IsFalse(_session?.GetMonitorItem(2).Selected); _session?.ClickMonitor(2); // verify that the monitor 2 is selected after click - Assert.IsFalse(_session?.GetMonitorItem(1)?.Selected); - Assert.IsTrue(_session?.GetMonitorItem(2)?.Selected); + Assert.IsFalse(_session?.GetMonitorItem(1).Selected); + Assert.IsTrue(_session?.GetMonitorItem(2).Selected); } } } diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs index ae088d015a4b..29985ad3e72c 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs @@ -21,11 +21,13 @@ namespace Microsoft.FancyZonesEditor.UnitTests.Utils { public class FancyZonesEditorSession { - protected const string WindowsApplicationDriverUrl = "http://127.0.0.1:4723"; + private const string WindowsApplicationDriverUrl = "http://127.0.0.1:4723"; private const string FancyZonesEditorName = "PowerToys.FancyZonesEditor"; private const string FancyZonesEditorPath = @"\..\..\..\" + FancyZonesEditorName + ".exe"; private TestContext context; + private WindowsDriver Session { get; } + private static FancyZonesEditorFiles? _files; public static FancyZonesEditorFiles Files @@ -102,8 +104,6 @@ public static class ClassName public const string GridZone = "GridZone"; } - public WindowsDriver? Session { get; } - public FancyZonesEditorSession(TestContext testContext) { try @@ -132,52 +132,48 @@ public FancyZonesEditorSession(TestContext testContext) public void Close() { // Close the session - if (Session != null) + try { - try + // in case if something went wrong and an error message is shown + var dialog = Session.FindElementByName("Editor data parsing error."); + Session.CloseApp(); // will close the dialog + + // session can't access new Editor instance created after closing the dialog + // kill the process + IntPtr appTopLevelWindowHandle = IntPtr.Zero; + foreach (Process clsProcess in Process.GetProcesses()) { - // in case if something went wrong and an error message is shown - var dialog = Session.FindElementByName("Editor data parsing error."); - Session.CloseApp(); // will close the dialog - - // session can't access new Editor instance created after closing the dialog - // kill the process - IntPtr appTopLevelWindowHandle = IntPtr.Zero; - foreach (Process clsProcess in Process.GetProcesses()) + if (clsProcess.ProcessName.Equals(FancyZonesEditorName, StringComparison.OrdinalIgnoreCase)) { - if (clsProcess.ProcessName.Equals(FancyZonesEditorName, StringComparison.OrdinalIgnoreCase)) - { - clsProcess.Kill(); - break; - } + clsProcess.Kill(); + break; } } - catch - { - } - - try - { - // FZEditor application can be closed by explicitly closing main editor window - var mainEditorWindow = Session.FindElementByAccessibilityId(AccessibilityId.MainWindow); - mainEditorWindow?.SendKeys(Keys.Alt + Keys.F4); - } - catch (Exception ex) - { - context.WriteLine("Unable to close main window. ", ex.Message); - } + } + catch + { + } - Session.Quit(); - Session.Dispose(); + try + { + // FZEditor application can be closed by explicitly closing main editor window + var mainEditorWindow = Session.FindElementByAccessibilityId(AccessibilityId.MainWindow); + mainEditorWindow?.SendKeys(Keys.Alt + Keys.F4); } + catch (Exception ex) + { + context.WriteLine("Unable to close main window. ", ex.Message); + } + + Session.Quit(); + Session.Dispose(); } public WindowsElement? GetLayout(string layoutName) { try { - var listItem = Session?.FindElementByName(layoutName); - return listItem; + return Session.FindElementByName(layoutName); } catch (Exception) { @@ -189,9 +185,7 @@ public void Close() public WindowsElement OpenContextMenu(string layoutName) { RightClickLayout(layoutName); - var menu = Session?.FindElementByClassName("ContextMenu"); - Assert.IsNotNull(menu, "Context menu not found"); - return menu; + return Session.FindElementByClassName("ContextMenu"); } public WindowsElement? GetMonitorsList() @@ -240,7 +234,7 @@ public WindowsElement GetMonitorItem(int monitorNumber) { try { - return Session?.FindElementByClassName("TextBox"); + return Session.FindElementByClassName("TextBox"); } catch { @@ -258,7 +252,7 @@ public WindowsElement GetMonitorItem(int monitorNumber) { try { - return Session?.FindElementByClassName("Popup"); + return Session.FindElementByClassName("Popup"); } catch { @@ -295,7 +289,7 @@ public WindowsElement GetMonitorItem(int monitorNumber) { try { - return Session?.FindElementByName("Grid layout editor"); + return Session.FindElementByName("Grid layout editor"); } catch { @@ -306,21 +300,7 @@ public WindowsElement GetMonitorItem(int monitorNumber) public WindowsElement? GetZone(int zoneNumber, string zoneClassName) { - ReadOnlyCollection? zones = null; - - try - { - zones = Session?.FindElementsByClassName(zoneClassName); - } - catch - { - } - - if (zones == null || zones.Count == 0) - { - return null; - } - + ReadOnlyCollection zones = Session.FindElementsByClassName(zoneClassName); foreach (WindowsElement zone in zones) { try @@ -341,7 +321,7 @@ public void ClickCreateNewLayout() { var button = FindByAccessibilityId(AccessibilityId.NewLayoutButton); Assert.IsNotNull(button, "Create new layout button not found"); - button?.Click(); + button.Click(); } public void ClickEditLayout(string layoutName) @@ -373,25 +353,27 @@ public void ClickEditZones() public void RightClickLayout(string layoutName) { var layout = GetLayout(layoutName); - ContextClick(layout!); + Assert.IsNotNull(layout); + ContextClick(layout); } public void ClickMonitor(int monitorNumber) { var monitor = GetMonitorItem(monitorNumber); - Click(monitor!); + Assert.IsNotNull(monitor, $"Monitor {monitorNumber} not found"); + Click(monitor); } public void ClickSave() { - var button = Session?.FindElementByName("Save"); + var button = Session.FindElementByName("Save"); Assert.IsNotNull(button, "No Save button"); button.Click(); } public void ClickCancel() { - var button = Session?.FindElementByName("Cancel"); + var button = Session.FindElementByName("Cancel"); Assert.IsNotNull(button, "No Cancel button"); button.Click(); } @@ -401,7 +383,7 @@ public void ClickCopyLayout() WindowsElement? button = null; try { - button = Session?.FindElementByAccessibilityId(AccessibilityId.CopyTemplate); + button = Session.FindElementByAccessibilityId(AccessibilityId.CopyTemplate); } catch { @@ -409,7 +391,7 @@ public void ClickCopyLayout() try { - button = Session?.FindElementByAccessibilityId(AccessibilityId.DuplicateLayoutButton); + button = Session.FindElementByAccessibilityId(AccessibilityId.DuplicateLayoutButton); } catch { @@ -421,16 +403,16 @@ public void ClickCopyLayout() public void ClickDeleteLayout() { - WindowsElement? button = Session?.FindElementByAccessibilityId(AccessibilityId.DeleteLayoutButton); - button?.Click(); + WindowsElement button = Session.FindElementByAccessibilityId(AccessibilityId.DeleteLayoutButton); + button.Click(); } public void ClickConfirm() { WaitElementDisplayedById(AccessibilityId.PrimaryButton); - WindowsElement? button = Session?.FindElementByAccessibilityId(AccessibilityId.PrimaryButton); - button?.Click(); - WaitUntilHidden(button!); + WindowsElement button = Session.FindElementByAccessibilityId(AccessibilityId.PrimaryButton); + button.Click(); + WaitUntilHidden(button); } public void ClickConfirmDialog() @@ -456,16 +438,17 @@ public void ClickContextMenuItem(string layoutName, string menuItem) public void ClickAddNewZone() { var button = FindByAccessibilityId(AccessibilityId.NewZoneButton); - button?.Click(); + Assert.IsNotNull(button); + button.Click(); } public void ClickDeleteZone(int zoneNumber) { var zone = GetZone(zoneNumber, ClassName.CanvasZone); Assert.IsNotNull(zone); - var button = zone?.FindElementByClassName("Button"); + var button = zone.FindElementByClassName(ClassName.Button); Assert.IsNotNull(button); - button?.Click(); + button.Click(); } public void MergeGridZones(int zoneNumber1, int zoneNumber2) @@ -489,15 +472,19 @@ public void MergeGridZones(int zoneNumber1, int zoneNumber2) actions.MoveToElement(zone2).Release(); actions.Build().Perform(); - Click(Session?.FindElementByName(ElementName.MergeZonesButton)!); + Click(Session.FindElementByName(ElementName.MergeZonesButton)!); } public void MoveSplitter(int xOffset, int yOffset) { ReadOnlyCollection? thumbs = Session?.FindElementsByClassName("Thumb"); + if (thumbs.Count == 0) + { + return; + } Actions actions = new Actions(Session); - actions.MoveToElement(thumbs?[0]).ClickAndHold(); + actions.MoveToElement(thumbs[0]).ClickAndHold(); int dx = xOffset / 10; int dy = yOffset / 10; for (int i = 0; i < 10; i++) @@ -521,14 +508,28 @@ public void SelectNewLayoutType(Constants.CustomLayoutType type) break; } - Click(button!); + Assert.IsNotNull(button); + Click(button); + } + + public WindowsElement? FindByAccessibilityId(string name) + { + try + { + return Session.FindElementByAccessibilityId(name); + } + catch (Exception) + { + context.WriteLine($"{name} not found"); + return null; + } } - private WindowsElement? FindByAccessibilityId(string name) + public WindowsElement? FindByName(string name) { try { - return Session?.FindElementByAccessibilityId(name); + return Session.FindElementByName(name); } catch (Exception) { @@ -544,7 +545,7 @@ public bool WaitElementDisplayedByName(string name) WebDriverWait wait = new WebDriverWait(Session, TimeSpan.FromSeconds(1)); return wait.Until(pred => { - var element = Session?.FindElementByName(name); + var element = Session.FindElementByName(name); if (element != null) { return element.Displayed; @@ -564,7 +565,7 @@ public void WaitElementDisplayedById(string id) WebDriverWait wait = new WebDriverWait(Session, TimeSpan.FromSeconds(1)); wait.Until(pred => { - var element = Session?.FindElementByAccessibilityId(id); + var element = Session.FindElementByAccessibilityId(id); if (element != null) { return element.Displayed; @@ -612,12 +613,5 @@ public void Drag(WindowsElement element, int offsetX, int offsetY) actions.MoveToElement(element).MoveByOffset(10, 10).ClickAndHold(element).MoveByOffset(offsetX, offsetY).Release(); actions.Build().Perform(); } - - public void Drag(AppiumWebElement element, int offsetX, int offsetY) - { - Actions actions = new Actions(Session); - actions.MoveToElement(element).MoveByOffset(10, 10).ClickAndHold(element).MoveByOffset(offsetX, offsetY).Release(); - actions.Build().Perform(); - } } } From 865ae7c6a82f10d6b76c25e9581743e5f2be6ae0 Mon Sep 17 00:00:00 2001 From: seraphima Date: Mon, 18 Mar 2024 19:41:16 +0100 Subject: [PATCH 62/78] name constants --- .../CopyLayoutTests.cs | 7 ++-- .../DeleteLayoutTests.cs | 9 ++-- .../RunFancyZonesEditorTest.cs | 19 +++++---- .../Utils/FancyZonesEditorSession.cs | 42 +++++++++++++++---- 4 files changed, 55 insertions(+), 22 deletions(-) diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/CopyLayoutTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/CopyLayoutTests.cs index 43684e9c4e54..ce7fb216d85d 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/CopyLayoutTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/CopyLayoutTests.cs @@ -1,4 +1,4 @@ -// Copyright (c) Microsoft Corporation +// Copyright (c) Microsoft Corporation // The Microsoft Corporation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -7,6 +7,7 @@ using Microsoft.FancyZonesEditor.UnitTests.Utils; using Microsoft.VisualStudio.TestTools.UnitTesting; using static FancyZonesEditorCommon.Data.EditorParameters; +using static Microsoft.FancyZonesEditor.UnitTests.Utils.FancyZonesEditorSession; namespace Microsoft.FancyZonesEditor.UITests { @@ -207,7 +208,7 @@ public void CopyTemplate_FromEditLayoutWindow() public void CopyTemplate_FromContextMenu() { string copiedLayoutName = Constants.TemplateLayoutNames[Constants.TemplateLayouts.Rows] + " (1)"; - _session?.ClickContextMenuItem(Constants.TemplateLayoutNames[Constants.TemplateLayouts.Rows], "Create custom layout"); + _session?.ClickContextMenuItem(Constants.TemplateLayoutNames[Constants.TemplateLayouts.Rows], ElementName.CreateCustomLayout); // verify the layout is copied _session?.WaitElementDisplayedByName(copiedLayoutName); @@ -274,7 +275,7 @@ public void CopyCustomLayout_FromEditLayoutWindow() public void CopyCustomLayout_FromContextMenu() { string copiedLayoutName = CustomLayouts.CustomLayouts[0].Name + " (1)"; - _session?.ClickContextMenuItem(CustomLayouts.CustomLayouts[0].Name, "Duplicate"); + _session?.ClickContextMenuItem(CustomLayouts.CustomLayouts[0].Name, ElementName.Duplicate); // verify the layout is copied _session?.WaitElementDisplayedByName(copiedLayoutName); diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/DeleteLayoutTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/DeleteLayoutTests.cs index f4613e9c454f..c8daf3212329 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/DeleteLayoutTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/DeleteLayoutTests.cs @@ -1,4 +1,4 @@ -// Copyright (c) Microsoft Corporation +// Copyright (c) Microsoft Corporation // The Microsoft Corporation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -10,6 +10,7 @@ using static FancyZonesEditorCommon.Data.DefaultLayouts; using static FancyZonesEditorCommon.Data.EditorParameters; using static FancyZonesEditorCommon.Data.LayoutHotkeys; +using static Microsoft.FancyZonesEditor.UnitTests.Utils.FancyZonesEditorSession; namespace Microsoft.FancyZonesEditor.UITests { @@ -295,7 +296,7 @@ public void CancelDeletion() public void DeleteFromContextMenu() { var deletedLayout = CustomLayouts.CustomLayouts[1].Name; - _session?.ClickContextMenuItem(deletedLayout, "Delete"); + _session?.ClickContextMenuItem(deletedLayout, ElementName.Delete); _session?.ClickConfirmDialog(); _session?.WaitFor(1); @@ -313,7 +314,7 @@ public void DeleteFromContextMenu() public void DeleteDefaultLayout() { var deletedLayout = CustomLayouts.CustomLayouts[1].Name; - _session?.ClickContextMenuItem(deletedLayout, "Delete"); + _session?.ClickContextMenuItem(deletedLayout, ElementName.Delete); _session?.ClickConfirmDialog(); _session?.WaitFor(1); @@ -333,7 +334,7 @@ public void DeleteDefaultLayout() public void DeleteLayoutWithHotkey() { var deletedLayout = CustomLayouts.CustomLayouts[1].Name; - _session?.ClickContextMenuItem(deletedLayout, "Delete"); + _session?.ClickContextMenuItem(deletedLayout, ElementName.Delete); _session?.ClickConfirmDialog(); _session?.WaitFor(1); diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/RunFancyZonesEditorTest.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/RunFancyZonesEditorTest.cs index b8d60ac02202..1f9423cd35fb 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/RunFancyZonesEditorTest.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/RunFancyZonesEditorTest.cs @@ -188,24 +188,27 @@ public void TestCleanup() public void OpenEditLayoutDialog() // verify the edit layout dialog is opened { _session?.ClickEditLayout(Constants.TemplateLayoutNames[Constants.TemplateLayouts.Grid]); - Assert.IsNotNull(_session?.FindByAccessibilityId("EditLayoutDialogTitle")); // check the pane header - Assert.IsNotNull(_session?.FindByName("Edit 'Grid'")); // verify it's opened for the correct layout + Assert.IsNotNull(_session?.FindByAccessibilityId(FancyZonesEditorSession.AccessibilityId.DialogTitle)); // check the pane header + Assert.IsNotNull(_session?.FindByName($"Edit '{Constants.TemplateLayoutNames[Constants.TemplateLayouts.Grid]}'")); // verify it's opened for the correct layout } [TestMethod] public void OpenEditLayoutDialog_ByContextMenu_TemplateLayout() // verify the edit layout dialog is opened { - _session?.ClickContextMenuItem(Constants.TemplateLayoutNames[Constants.TemplateLayouts.Grid], "Edit"); - Assert.IsNotNull(_session?.FindByAccessibilityId("EditLayoutDialogTitle")); // check the pane header - Assert.IsNotNull(_session?.FindByName("Edit 'Grid'")); // verify it's opened for the correct layout + _session?.ClickContextMenuItem(Constants.TemplateLayoutNames[Constants.TemplateLayouts.Grid], FancyZonesEditorSession.ElementName.Edit); + _session?.WaitElementDisplayedById(FancyZonesEditorSession.AccessibilityId.DialogTitle); + Assert.IsNotNull(_session?.FindByAccessibilityId(FancyZonesEditorSession.AccessibilityId.DialogTitle)); // check the pane header + Assert.IsNotNull(_session?.FindByName($"Edit '{Constants.TemplateLayoutNames[Constants.TemplateLayouts.Grid]}'")); // verify it's opened for the correct layout } [TestMethod] public void OpenEditLayoutDialog_ByContextMenu_CustomLayout() // verify the edit layout dialog is opened { - _session?.ClickContextMenuItem("Custom layout", "Edit"); - Assert.IsNotNull(_session?.FindByAccessibilityId("EditLayoutDialogTitle")); // check the pane header - Assert.IsNotNull(_session?.FindByName("Edit 'Grid'")); // verify it's opened for the correct layout + string layoutName = "Custom layout"; + _session?.ClickContextMenuItem(layoutName, FancyZonesEditorSession.ElementName.Edit); + _session?.WaitElementDisplayedById(FancyZonesEditorSession.AccessibilityId.DialogTitle); + Assert.IsNotNull(_session?.FindByAccessibilityId(FancyZonesEditorSession.AccessibilityId.DialogTitle)); // check the pane header + Assert.IsNotNull(_session?.FindByName($"Edit '{layoutName}'")); // verify it's opened for the correct layout } [TestMethod] diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs index 29985ad3e72c..441755345eeb 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs @@ -54,6 +54,7 @@ public static class AccessibilityId public const string EditLayoutButton = "EditLayoutButton"; // edit layout window: common for template and custom layouts + public const string DialogTitle = "EditLayoutDialogTitle"; public const string SensitivitySlider = "SensitivityInput"; public const string SpacingSlider = "Spacing"; public const string SpacingToggle = "spaceAroundSetting"; @@ -87,21 +88,35 @@ public static class AccessibilityId public static class ElementName { + public const string Save = "Save"; + public const string Cancel = "Cancel"; + // context menu + public const string Edit = "Edit"; public const string EditZones = "Edit zones"; + public const string Delete = "Delete"; + public const string Duplicate = "Duplicate"; + public const string CreateCustomLayout = "Create custom layout"; // canvas layout editor public const string CanvasEditorWindow = "Canvas layout editor"; // grid layout editor + public const string GridLayoutEditor = "Grid layout editor"; public const string MergeZonesButton = "Merge zones"; } public static class ClassName { + public const string ContextMenu = "ContextMenu"; + public const string TextBox = "TextBox"; + public const string Popup = "Popup"; + // layout editor public const string CanvasZone = "CanvasZone"; public const string GridZone = "GridZone"; + public const string Button = "Button"; + public const string Thumb = "Thumb"; } public FancyZonesEditorSession(TestContext testContext) @@ -185,7 +200,7 @@ public void Close() public WindowsElement OpenContextMenu(string layoutName) { RightClickLayout(layoutName); - return Session.FindElementByClassName("ContextMenu"); + return Session.FindElementByClassName(ClassName.ContextMenu); } public WindowsElement? GetMonitorsList() @@ -234,7 +249,7 @@ public WindowsElement GetMonitorItem(int monitorNumber) { try { - return Session.FindElementByClassName("TextBox"); + return Session.FindElementByClassName(ClassName.TextBox); } catch { @@ -252,7 +267,7 @@ public WindowsElement GetMonitorItem(int monitorNumber) { try { - return Session.FindElementByClassName("Popup"); + return Session.FindElementByClassName(ClassName.Popup); } catch { @@ -289,7 +304,7 @@ public WindowsElement GetMonitorItem(int monitorNumber) { try { - return Session.FindElementByName("Grid layout editor"); + return Session.FindElementByName(ElementName.GridLayoutEditor); } catch { @@ -366,14 +381,14 @@ public void ClickMonitor(int monitorNumber) public void ClickSave() { - var button = Session.FindElementByName("Save"); + var button = Session.FindElementByName(ElementName.Save); Assert.IsNotNull(button, "No Save button"); button.Click(); } public void ClickCancel() { - var button = Session.FindElementByName("Cancel"); + var button = Session.FindElementByName(ElementName.Cancel); Assert.IsNotNull(button, "No Cancel button"); button.Click(); } @@ -477,7 +492,7 @@ public void MergeGridZones(int zoneNumber1, int zoneNumber2) public void MoveSplitter(int xOffset, int yOffset) { - ReadOnlyCollection? thumbs = Session?.FindElementsByClassName("Thumb"); + ReadOnlyCollection thumbs = Session.FindElementsByClassName(ClassName.Thumb); if (thumbs.Count == 0) { return; @@ -538,6 +553,19 @@ public void SelectNewLayoutType(Constants.CustomLayoutType type) } } + public WindowsElement? FindByClassName(string name) + { + try + { + return Session.FindElementByClassName(name); + } + catch (Exception) + { + context.WriteLine($"{name} not found"); + return null; + } + } + public bool WaitElementDisplayedByName(string name) { try From 45d76604fcdce6bb4e2c52615155ad30c55b4f9a Mon Sep 17 00:00:00 2001 From: seraphima Date: Fri, 22 Mar 2024 14:46:39 +0100 Subject: [PATCH 63/78] replaced one-line getters --- .../ApplyLayoutTests.cs | 28 ++-- .../CopyLayoutTests.cs | 6 +- .../CreateLayoutTests.cs | 8 +- .../CustomLayoutsTests.cs | 90 ++++++------ .../DeleteLayoutTests.cs | 12 +- .../EditLayoutTests.cs | 5 +- .../LayoutHotkeysTests.cs | 131 ++++++++++-------- .../TemplateLayoutsTests.cs | 105 +++++++------- .../UIInitializationTests.cs | 11 +- .../Utils/FancyZonesEditorSession.cs | 74 ++-------- 10 files changed, 236 insertions(+), 234 deletions(-) diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/ApplyLayoutTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/ApplyLayoutTests.cs index fff9e8ee82e6..985cbb76e855 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/ApplyLayoutTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/ApplyLayoutTests.cs @@ -8,6 +8,7 @@ using Microsoft.FancyZonesEditor.UnitTests.Utils; using Microsoft.VisualStudio.TestTools.UnitTesting; using OpenQA.Selenium; +using static Microsoft.FancyZonesEditor.UnitTests.Utils.FancyZonesEditorSession; namespace Microsoft.FancyZonesEditor.UITests { @@ -277,30 +278,33 @@ public void ApplyTemplateWithDifferentParametersOnEachMonitor() // apply the layout on the first monitor, set parameters _session?.Click(_session?.GetLayout(layoutName)!); _session?.ClickEditLayout(layoutName); - var slider = _session?.GetZoneCountSlider(); - slider?.SendKeys(Keys.Right); - slider?.SendKeys(Keys.Right); - var expectedFirstLayoutZoneCount = int.Parse(slider?.Text!, CultureInfo.InvariantCulture); + var slider = _session?.FindByAccessibilityId(AccessibilityId.TemplateZoneSlider); + Assert.IsNotNull(slider); + slider.SendKeys(Keys.Right); + slider.SendKeys(Keys.Right); + var expectedFirstLayoutZoneCount = int.Parse(slider.Text!, CultureInfo.InvariantCulture); _session?.ClickSave(); - _session?.WaitUntilHidden(slider!); // let the dialog window close + _session?.WaitUntilHidden(slider); // let the dialog window close // apply the layout on the second monitor, set different parameters _session?.ClickMonitor(2); _session?.Click(_session?.GetLayout(layoutName)!); _session?.ClickEditLayout(layoutName); - slider = _session?.GetZoneCountSlider(); - slider?.SendKeys(Keys.Left); - var expectedSecondLayoutZoneCount = int.Parse(slider?.Text!, CultureInfo.InvariantCulture); + slider = _session?.FindByAccessibilityId(AccessibilityId.TemplateZoneSlider); + Assert.IsNotNull(slider); + slider.SendKeys(Keys.Left); + var expectedSecondLayoutZoneCount = int.Parse(slider.Text!, CultureInfo.InvariantCulture); _session?.ClickSave(); - _session?.WaitUntilHidden(slider!); // let the dialog window close + _session?.WaitUntilHidden(slider); // let the dialog window close // verify the layout on the first monitor wasn't changed _session?.ClickMonitor(1); _session?.ClickEditLayout(layoutName); - slider = _session?.GetZoneCountSlider(); - Assert.AreEqual(expectedFirstLayoutZoneCount, int.Parse(slider?.Text!, CultureInfo.InvariantCulture)); + slider = _session?.FindByAccessibilityId(AccessibilityId.TemplateZoneSlider); + Assert.IsNotNull(slider); + Assert.AreEqual(expectedFirstLayoutZoneCount, int.Parse(slider.Text!, CultureInfo.InvariantCulture)); _session?.ClickCancel(); - _session?.WaitUntilHidden(slider!); // let the dialog window close + _session?.WaitUntilHidden(slider); // let the dialog window close // check the file var appliedLayouts = new AppliedLayouts(); diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/CopyLayoutTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/CopyLayoutTests.cs index ce7fb216d85d..fe30b02acf29 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/CopyLayoutTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/CopyLayoutTests.cs @@ -1,4 +1,4 @@ -// Copyright (c) Microsoft Corporation +// Copyright (c) Microsoft Corporation // The Microsoft Corporation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -339,13 +339,13 @@ public void CopyCustomLayout_Hotkey() // verify the hotkey wasn't changed _session?.ClickEditLayout(CustomLayouts.CustomLayouts[0].Name); - var hotkeyComboBox = _session?.GetHotkeyComboBox(); + var hotkeyComboBox = _session?.FindByAccessibilityId(AccessibilityId.HotkeyComboBox); Assert.IsNotNull(hotkeyComboBox); Assert.AreEqual("0", hotkeyComboBox.Text); _session?.ClickCancel(); _session?.ClickEditLayout(copiedLayoutName); - hotkeyComboBox = _session?.GetHotkeyComboBox(); + hotkeyComboBox = _session?.FindByAccessibilityId(AccessibilityId.HotkeyComboBox); Assert.IsNotNull(hotkeyComboBox); Assert.AreEqual("None", hotkeyComboBox.Text); _session?.ClickCancel(); diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/CreateLayoutTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/CreateLayoutTests.cs index 13c1dae56879..e89fb30ed09c 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/CreateLayoutTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/CreateLayoutTests.cs @@ -6,6 +6,7 @@ using FancyZonesEditorCommon.Data; using Microsoft.FancyZonesEditor.UnitTests.Utils; using Microsoft.VisualStudio.TestTools.UnitTesting; +using static Microsoft.FancyZonesEditor.UnitTests.Utils.FancyZonesEditorSession; namespace Microsoft.FancyZonesEditor.UITests { @@ -169,9 +170,10 @@ public void CreateWithCustomName() { string name = "Layout Name"; _session?.ClickCreateNewLayout(); - var input = _session?.GetNameInput(); - input?.Clear(); - input?.SendKeys(name); + var input = _session?.FindByClassName(ClassName.TextBox); + Assert.IsNotNull(input); + input.Clear(); + input.SendKeys(name); _session?.ClickConfirm(); _session?.ClickSave(); diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs index 3bb5a70b9201..8145bfcbb4ab 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs @@ -9,6 +9,7 @@ using OpenQA.Selenium; using static FancyZonesEditorCommon.Data.CustomLayouts; using static FancyZonesEditorCommon.Data.EditorParameters; +using static Microsoft.FancyZonesEditor.UnitTests.Utils.FancyZonesEditorSession; namespace Microsoft.FancyZonesEditor.UITests { @@ -239,9 +240,10 @@ public void Rename_Save() // rename the layout _session?.ClickEditLayout(oldName); - var input = _session?.GetNameInput(); - input?.Clear(); - input?.SendKeys(newName); + var input = _session?.FindByClassName(ClassName.TextBox); + Assert.IsNotNull(input); + input.Clear(); + input.SendKeys(newName); // verify new name _session?.ClickSave(); @@ -257,9 +259,10 @@ public void Rename_Cancel() // rename the layout _session?.ClickEditLayout(oldName); - var input = _session?.GetNameInput(); - input?.Clear(); - input?.SendKeys(newName); + var input = _session?.FindByClassName(ClassName.TextBox); + Assert.IsNotNull(input); + input.Clear(); + input.SendKeys(newName); // verify new name _session?.ClickCancel(); @@ -274,14 +277,15 @@ public void HighlightDistance_Initialize() { _session?.ClickEditLayout(layout.Name); - var slider = _session?.GetSensitivitySlider(); + var slider = _session?.FindByAccessibilityId(AccessibilityId.SensitivitySlider); + Assert.IsNotNull(slider); var expected = layout.Type == Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas] ? new CustomLayouts().CanvasFromJsonElement(layout.Info.GetRawText()).SensitivityRadius : new CustomLayouts().GridFromJsonElement(layout.Info.GetRawText()).SensitivityRadius; - Assert.AreEqual($"{expected}", slider?.Text); + Assert.AreEqual($"{expected}", slider.Text); _session?.ClickCancel(); - _session?.WaitUntilHidden(slider!); + _session?.WaitUntilHidden(slider); } } @@ -292,18 +296,19 @@ public void HighlightDistance_Save() var type = layout.Type; _session?.ClickEditLayout(layout.Name); - var slider = _session?.GetSensitivitySlider(); - slider?.SendKeys(Keys.Right); + var slider = _session?.FindByAccessibilityId(AccessibilityId.SensitivitySlider); + Assert.IsNotNull(slider); + slider.SendKeys(Keys.Right); var value = type == Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas] ? new CustomLayouts().CanvasFromJsonElement(layout.Info.GetRawText()).SensitivityRadius : new CustomLayouts().GridFromJsonElement(layout.Info.GetRawText()).SensitivityRadius; var expected = value + 1; // one step right - Assert.AreEqual($"{expected}", slider?.Text); + Assert.AreEqual($"{expected}", slider.Text); _session?.ClickSave(); - _session?.WaitUntilHidden(slider!); // let the dialog window close + _session?.WaitUntilHidden(slider); // let the dialog window close // verify the file var customLayouts = new CustomLayouts(); @@ -321,15 +326,16 @@ public void HighlightDistance_Cancel() var type = layout.Type; _session?.ClickEditLayout(layout.Name); - var slider = _session?.GetSensitivitySlider(); - slider?.SendKeys(Keys.Right); + var slider = _session?.FindByAccessibilityId(AccessibilityId.SensitivitySlider); + Assert.IsNotNull(slider); + slider.SendKeys(Keys.Right); var expected = type == Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas] ? new CustomLayouts().CanvasFromJsonElement(layout.Info.GetRawText()).SensitivityRadius : new CustomLayouts().GridFromJsonElement(layout.Info.GetRawText()).SensitivityRadius; _session?.ClickCancel(); - _session?.WaitUntilHidden(slider!); // let the dialog window close + _session?.WaitUntilHidden(slider); // let the dialog window close // verify the file var customLayouts = new CustomLayouts(); @@ -353,18 +359,20 @@ public void SpaceAroundZones_Initialize() _session?.ClickEditLayout(layout.Name); - var toggle = _session?.GetSpaceAroundZonesToggle(); - var slider = _session?.GetSpaceAroundZonesSlider(); + var toggle = _session?.FindByAccessibilityId(AccessibilityId.SpacingToggle); + Assert.IsNotNull(toggle); + var slider = _session?.FindByAccessibilityId(AccessibilityId.SpacingSlider); + Assert.IsNotNull(slider); var spacingEnabled = new CustomLayouts().GridFromJsonElement(layout.Info.GetRawText()).ShowSpacing; - Assert.AreEqual(spacingEnabled, slider?.Enabled); - Assert.AreEqual(spacingEnabled, toggle?.Selected); + Assert.AreEqual(spacingEnabled, slider.Enabled); + Assert.AreEqual(spacingEnabled, toggle.Selected); var expected = new CustomLayouts().GridFromJsonElement(layout.Info.GetRawText()).Spacing; - Assert.AreEqual($"{expected}", slider?.Text); + Assert.AreEqual($"{expected}", slider.Text); _session?.ClickCancel(); - _session?.WaitUntilHidden(slider!); // let the dialog window close + _session?.WaitUntilHidden(slider); // let the dialog window close } } @@ -375,12 +383,13 @@ public void SpaceAroundZones_Slider_Save() var expected = new CustomLayouts().GridFromJsonElement(layout.Info.GetRawText()).Spacing + 1; // one step right _session?.ClickEditLayout(layout.Name); - var slider = _session?.GetSpaceAroundZonesSlider(); - slider?.SendKeys(Keys.Right); - Assert.AreEqual($"{expected}", slider?.Text); + var slider = _session?.FindByAccessibilityId(AccessibilityId.SpacingSlider); + Assert.IsNotNull(slider); + slider.SendKeys(Keys.Right); + Assert.AreEqual($"{expected}", slider.Text); _session?.ClickSave(); - _session?.WaitUntilHidden(slider!); // let the dialog window close + _session?.WaitUntilHidden(slider); // let the dialog window close // verify the file var customLayouts = new CustomLayouts(); @@ -396,10 +405,11 @@ public void SpaceAroundZones_Slider_Cancel() _session?.ClickEditLayout(layout.Name); var expected = new CustomLayouts().GridFromJsonElement(layout.Info.GetRawText()).Spacing; - var slider = _session?.GetSpaceAroundZonesSlider(); - slider?.SendKeys(Keys.Right); + var slider = _session?.FindByAccessibilityId(AccessibilityId.SpacingSlider); + Assert.IsNotNull(slider); + slider.SendKeys(Keys.Right); _session?.ClickCancel(); - _session?.WaitUntilHidden(slider!); // let the dialog window close + _session?.WaitUntilHidden(slider); // let the dialog window close // verify the file var customLayouts = new CustomLayouts(); @@ -416,13 +426,14 @@ public void SpaceAroundZones_Toggle_Save() var expected = !value; _session?.ClickEditLayout(layout.Name); - var toggle = _session?.GetSpaceAroundZonesToggle(); - toggle?.Click(); - Assert.AreEqual(expected, toggle?.Selected, "Toggle value not changed"); - Assert.AreEqual(expected, _session?.GetSpaceAroundZonesSlider()?.Enabled); + var toggle = _session?.FindByAccessibilityId(AccessibilityId.SpacingToggle); + Assert.IsNotNull(toggle); + toggle.Click(); + Assert.AreEqual(expected, toggle.Selected, "Toggle value not changed"); + Assert.AreEqual(expected, _session?.FindByAccessibilityId(AccessibilityId.SpacingSlider)?.Enabled); _session?.ClickSave(); - _session?.WaitUntilHidden(toggle!); // let the dialog window close + _session?.WaitUntilHidden(toggle); // let the dialog window close // verify the file var customLayouts = new CustomLayouts(); @@ -438,13 +449,14 @@ public void SpaceAroundZones_Toggle_Cancel() var expected = new CustomLayouts().GridFromJsonElement(layout.Info.GetRawText()).ShowSpacing; _session?.ClickEditLayout(layout.Name); - var toggle = _session?.GetSpaceAroundZonesToggle(); - toggle?.Click(); - Assert.AreNotEqual(expected, toggle?.Selected, "Toggle value not changed"); - Assert.AreNotEqual(expected, _session?.GetSpaceAroundZonesSlider()?.Enabled); + var toggle = _session?.FindByAccessibilityId(AccessibilityId.SpacingToggle); + Assert.IsNotNull(toggle); + toggle.Click(); + Assert.AreNotEqual(expected, toggle.Selected, "Toggle value not changed"); + Assert.AreNotEqual(expected, _session?.FindByAccessibilityId(AccessibilityId.SpacingSlider)?.Enabled); _session?.ClickCancel(); - _session?.WaitUntilHidden(toggle!); // let the dialog window close + _session?.WaitUntilHidden(toggle); // let the dialog window close // verify the file var customLayouts = new CustomLayouts(); diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/DeleteLayoutTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/DeleteLayoutTests.cs index c8daf3212329..6c2e897eb0ad 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/DeleteLayoutTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/DeleteLayoutTests.cs @@ -1,4 +1,4 @@ -// Copyright (c) Microsoft Corporation +// Copyright (c) Microsoft Corporation // The Microsoft Corporation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -340,14 +340,16 @@ public void DeleteLayoutWithHotkey() // verify the hotkey is available _session?.ClickEditLayout(CustomLayouts.CustomLayouts[0].Name); - var hotkeyComboBox = _session?.GetHotkeyComboBox(); - hotkeyComboBox?.Click(); + var hotkeyComboBox = _session?.FindByAccessibilityId(AccessibilityId.HotkeyComboBox); + Assert.IsNotNull(hotkeyComboBox); + hotkeyComboBox.Click(); + var popup = _session?.FindByClassName(ClassName.Popup); + Assert.IsNotNull(popup); try { - var popup = _session?.GetHotkeyPopup(); for (int i = 0; i < 10; i++) { - popup?.FindElementByName($"{i}"); + popup.FindElementByName($"{i}"); } } catch diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/EditLayoutTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/EditLayoutTests.cs index 88365dd875ca..83d70708af26 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/EditLayoutTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/EditLayoutTests.cs @@ -9,6 +9,7 @@ using Microsoft.VisualStudio.TestTools.UnitTesting; using OpenQA.Selenium.Appium.Windows; using static FancyZonesEditorCommon.Data.CustomLayouts; +using static Microsoft.FancyZonesEditor.UnitTests.Utils.FancyZonesEditorSession; namespace Microsoft.FancyZonesEditor.UITests { @@ -199,7 +200,7 @@ public void OpenEditMode() { _session?.ClickEditLayout(Layouts.CustomLayouts[0].Name); _session?.ClickEditZones(); - Assert.IsNotNull(_session?.GetGridLayoutEditorWindow()); + Assert.IsNotNull(_session?.FindByName(ElementName.GridLayoutEditor)); _session?.ClickCancel(); } @@ -207,7 +208,7 @@ public void OpenEditMode() public void OpenEditModeFromContextMenu() { _session?.ClickContextMenuItem(Layouts.CustomLayouts[0].Name, FancyZonesEditorSession.ElementName.EditZones); - Assert.IsNotNull(_session?.GetGridLayoutEditorWindow()); + Assert.IsNotNull(_session?.FindByName(ElementName.GridLayoutEditor)); _session?.ClickCancel(); } diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/LayoutHotkeysTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/LayoutHotkeysTests.cs index 520ef377eea9..6519faefd403 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/LayoutHotkeysTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/LayoutHotkeysTests.cs @@ -12,6 +12,7 @@ using static FancyZonesEditorCommon.Data.CustomLayouts; using static FancyZonesEditorCommon.Data.EditorParameters; using static FancyZonesEditorCommon.Data.LayoutHotkeys; +using static Microsoft.FancyZonesEditor.UnitTests.Utils.FancyZonesEditorSession; namespace Microsoft.FancyZonesEditor.UITests { @@ -332,7 +333,7 @@ public void Initialize() { _session?.ClickEditLayout(layout.Name); - var hotkeyComboBox = _session?.GetHotkeyComboBox(); + var hotkeyComboBox = _session?.FindByAccessibilityId(AccessibilityId.HotkeyComboBox); Assert.IsNotNull(hotkeyComboBox); // verify the selected key @@ -346,7 +347,7 @@ public void Initialize() // verify the available values hotkeyComboBox.Click(); - var popup = _session?.GetHotkeyPopup(); + var popup = _session?.FindByClassName(ClassName.Popup); Assert.IsNotNull(popup, "Hotkey combo box wasn't opened"); try @@ -365,7 +366,7 @@ public void Initialize() } _session?.ClickCancel(); - _session?.WaitUntilHidden(hotkeyComboBox!); // let the dialog window close + _session?.WaitUntilHidden(hotkeyComboBox); // let the dialog window close } } @@ -377,27 +378,32 @@ public void Assign_Save() // assign hotkey const string key = "3"; - var hotkeyComboBox = _session?.GetHotkeyComboBox(); - hotkeyComboBox?.Click(); - var popup = _session?.GetHotkeyPopup(); - _session?.Click(popup?.FindElementByName($"{key}")!); // assign a free hotkey - Assert.AreEqual(key, hotkeyComboBox?.Text); + var hotkeyComboBox = _session?.FindByAccessibilityId(AccessibilityId.HotkeyComboBox); + Assert.IsNotNull(hotkeyComboBox); + hotkeyComboBox.Click(); + var popup = _session?.FindByClassName(ClassName.Popup); + _session?.WaitElementDisplayedByClassName(ClassName.Popup); + Assert.IsNotNull(popup); + _session?.Click(popup.FindElementByName($"{key}")!); // assign a free hotkey + Assert.AreEqual(key, hotkeyComboBox.Text); // verify the file _session?.ClickSave(); - _session?.WaitUntilHidden(hotkeyComboBox!); // let the dialog window close + _session?.WaitUntilHidden(hotkeyComboBox); // let the dialog window close var hotkeys = new LayoutHotkeys(); var actualData = hotkeys.Read(hotkeys.File); Assert.IsTrue(actualData.LayoutHotkeys.Contains(new LayoutHotkeyWrapper { Key = int.Parse(key, CultureInfo.InvariantCulture), LayoutId = layout.Uuid })); // verify the availability _session?.ClickEditLayout(CustomLayouts.CustomLayouts[5].Name); - hotkeyComboBox = _session?.GetHotkeyComboBox(); - hotkeyComboBox?.Click(); - popup = _session?.GetHotkeyPopup(); + hotkeyComboBox = _session?.FindByAccessibilityId(AccessibilityId.HotkeyComboBox); + Assert.IsNotNull(hotkeyComboBox); + hotkeyComboBox.Click(); + popup = _session?.FindByClassName(ClassName.Popup); + Assert.IsNotNull(popup); try { - popup?.FindElementByName($"{key}"); // verify the key is not available + popup.FindElementByName($"{key}"); // verify the key is not available Assert.Fail(key, "The assigned key is still available for other layouts."); } catch @@ -414,27 +420,32 @@ public void Assign_Cancel() // assign a hotkey const string key = "3"; - var hotkeyComboBox = _session?.GetHotkeyComboBox(); - hotkeyComboBox?.Click(); - var popup = _session?.GetHotkeyPopup(); - _session?.Click(popup?.FindElementByName($"{key}")!); - Assert.AreEqual(key, hotkeyComboBox?.Text); + var hotkeyComboBox = _session?.FindByAccessibilityId(AccessibilityId.HotkeyComboBox); + Assert.IsNotNull(hotkeyComboBox); + hotkeyComboBox.Click(); + var popup = _session?.FindByClassName(ClassName.Popup); + _session?.WaitElementDisplayedByClassName(ClassName.Popup); + Assert.IsNotNull(popup); + _session?.Click(popup.FindElementByName($"{key}")!); + Assert.AreEqual(key, hotkeyComboBox.Text); // verify the file _session?.ClickCancel(); - _session?.WaitUntilHidden(hotkeyComboBox!); // let the dialog window close + _session?.WaitUntilHidden(hotkeyComboBox); // let the dialog window close var hotkeys = new LayoutHotkeys(); var actualData = hotkeys.Read(hotkeys.File); Assert.AreEqual(Hotkeys.ToString(), actualData.ToString()); // verify the availability _session?.ClickEditLayout(CustomLayouts.CustomLayouts[5].Name); - hotkeyComboBox = _session?.GetHotkeyComboBox(); - hotkeyComboBox?.Click(); - popup = _session?.GetHotkeyPopup(); + hotkeyComboBox = _session?.FindByAccessibilityId(AccessibilityId.HotkeyComboBox); + Assert.IsNotNull(hotkeyComboBox); + hotkeyComboBox.Click(); + popup = _session?.FindByClassName(ClassName.Popup); + Assert.IsNotNull(popup); try { - popup?.FindElementByName($"{key}"); // verify the key is available + popup.FindElementByName($"{key}"); // verify the key is available } catch { @@ -450,13 +461,15 @@ public void Assign_AllPossibleValues() string layoutName = $"Layout {i}"; _session?.ClickEditLayout(layoutName); - var hotkeyComboBox = _session?.GetHotkeyComboBox(); - hotkeyComboBox?.Click(); - var popup = _session?.GetHotkeyPopup(); - _session?.Click(popup?.FindElementByName($"{i}")!); + var hotkeyComboBox = _session?.FindByAccessibilityId(AccessibilityId.HotkeyComboBox); + Assert.IsNotNull(hotkeyComboBox); + hotkeyComboBox.Click(); + var popup = _session?.FindByClassName(ClassName.Popup); + Assert.IsNotNull(popup); + _session?.Click(popup.FindElementByName($"{i}")!); _session?.ClickSave(); - _session?.WaitUntilHidden(hotkeyComboBox!); // let the dialog window close + _session?.WaitUntilHidden(hotkeyComboBox); // let the dialog window close } // check there nothing except None @@ -464,15 +477,17 @@ public void Assign_AllPossibleValues() int layout = 10; string layoutName = $"Layout {layout}"; _session?.ClickEditLayout(layoutName); - var hotkeyComboBox = _session?.GetHotkeyComboBox(); - hotkeyComboBox?.Click(); - var popup = _session?.GetHotkeyPopup(); + var hotkeyComboBox = _session?.FindByAccessibilityId(AccessibilityId.HotkeyComboBox); + Assert.IsNotNull(hotkeyComboBox); + hotkeyComboBox.Click(); + var popup = _session?.FindByClassName(ClassName.Popup); + Assert.IsNotNull(popup); for (int i = 0; i < 10; i++) { try { - popup?.FindElementByName($"{i}"); + popup.FindElementByName($"{i}"); Assert.Fail("The assigned key is still available for other layouts."); } catch @@ -480,9 +495,9 @@ public void Assign_AllPossibleValues() } } - _session?.Click(popup?.FindElementByName($"None")!); + _session?.Click(popup.FindElementByName($"None")!); _session?.ClickSave(); - _session?.WaitUntilHidden(hotkeyComboBox!); // let the dialog window close + _session?.WaitUntilHidden(hotkeyComboBox); // let the dialog window close } } @@ -495,27 +510,31 @@ public void Reset_Save() const string None = "None"; // reset the hotkey - var hotkeyComboBox = _session?.GetHotkeyComboBox(); - hotkeyComboBox?.Click(); - var popup = _session?.GetHotkeyPopup(); - _session?.Click(popup?.FindElementByName(None)!); - Assert.AreEqual(None, hotkeyComboBox?.Text); + var hotkeyComboBox = _session?.FindByAccessibilityId(AccessibilityId.HotkeyComboBox); + Assert.IsNotNull(hotkeyComboBox); + hotkeyComboBox.Click(); + var popup = _session?.FindByClassName(ClassName.Popup); + Assert.IsNotNull(popup); + _session?.Click(popup.FindElementByName(None)!); + Assert.AreEqual(None, hotkeyComboBox.Text); // verify the file _session?.ClickSave(); - _session?.WaitUntilHidden(hotkeyComboBox!); // let the dialog window close + _session?.WaitUntilHidden(hotkeyComboBox); // let the dialog window close var hotkeys = new LayoutHotkeys(); var actualData = hotkeys.Read(hotkeys.File); Assert.IsFalse(actualData.LayoutHotkeys.Contains(new LayoutHotkeyWrapper { Key = assignedKey, LayoutId = layout.Uuid })); // verify the previously assigned key is available _session?.ClickEditLayout(CustomLayouts.CustomLayouts[6].Name); - hotkeyComboBox = _session?.GetHotkeyComboBox(); - hotkeyComboBox?.Click(); - popup = _session?.GetHotkeyPopup(); + hotkeyComboBox = _session?.FindByAccessibilityId(AccessibilityId.HotkeyComboBox); + Assert.IsNotNull(hotkeyComboBox); + hotkeyComboBox.Click(); + popup = _session?.FindByClassName(ClassName.Popup); + Assert.IsNotNull(popup); try { - popup?.FindElementByName($"{assignedKey}"); // verify the key is available + popup.FindElementByName($"{assignedKey}"); // verify the key is available } catch { @@ -532,27 +551,31 @@ public void Reset_Cancel() const string None = "None"; // assign hotkey - var hotkeyComboBox = _session?.GetHotkeyComboBox(); - hotkeyComboBox?.Click(); - var popup = _session?.GetHotkeyPopup(); - _session?.Click(popup?.FindElementByName(None)!); // reset the hotkey - Assert.AreEqual(None, hotkeyComboBox?.Text); + var hotkeyComboBox = _session?.FindByAccessibilityId(AccessibilityId.HotkeyComboBox); + Assert.IsNotNull(hotkeyComboBox); + hotkeyComboBox.Click(); + var popup = _session?.FindByClassName(ClassName.Popup); + Assert.IsNotNull(popup); + _session?.Click(popup.FindElementByName(None)!); // reset the hotkey + Assert.AreEqual(None, hotkeyComboBox.Text); // verify the file _session?.ClickCancel(); - _session?.WaitUntilHidden(hotkeyComboBox!); // let the dialog window close + _session?.WaitUntilHidden(hotkeyComboBox); // let the dialog window close var hotkeys = new LayoutHotkeys(); var actualData = hotkeys.Read(hotkeys.File); Assert.IsTrue(actualData.LayoutHotkeys.Contains(new LayoutHotkeyWrapper { Key = assignedKey, LayoutId = layout.Uuid })); // verify the previously assigned key is not available _session?.ClickEditLayout(CustomLayouts.CustomLayouts[6].Name); - hotkeyComboBox = _session?.GetHotkeyComboBox(); - hotkeyComboBox?.Click(); - popup = _session?.GetHotkeyPopup(); + hotkeyComboBox = _session?.FindByAccessibilityId(AccessibilityId.HotkeyComboBox); + Assert.IsNotNull(hotkeyComboBox); + hotkeyComboBox.Click(); + popup = _session?.FindByClassName(ClassName.Popup); + Assert.IsNotNull(popup); try { - popup?.FindElementByName($"{assignedKey}"); // verify the key is not available + popup.FindElementByName($"{assignedKey}"); // verify the key is not available Assert.Fail("The key is still available for other layouts."); } catch diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs index 99a6b8e0d84c..4b45268989bb 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs @@ -11,6 +11,7 @@ using static FancyZonesEditorCommon.Data.DefaultLayouts; using static FancyZonesEditorCommon.Data.EditorParameters; using static FancyZonesEditorCommon.Data.LayoutTemplates; +using static Microsoft.FancyZonesEditor.UnitTests.Utils.FancyZonesEditorSession; namespace Microsoft.FancyZonesEditor.UITests { @@ -214,12 +215,13 @@ public void ZoneNumber_Initialize() _session?.ClickEditLayout(name); - var slider = _session?.GetZoneCountSlider(); - var expected = Layouts.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutJsonTags[key]).ZoneCount; - Assert.AreEqual($"{expected}", slider?.Text); + var slider = _session?.FindByAccessibilityId(AccessibilityId.TemplateZoneSlider); + Assert.IsNotNull(slider); + var expected = Layouts.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutTypes[key]).ZoneCount; + Assert.AreEqual($"{expected}", slider.Text); _session?.ClickCancel(); - _session?.WaitUntilHidden(slider!); // let the dialog window close + _session?.WaitUntilHidden(slider); // let the dialog window close } } @@ -232,12 +234,13 @@ public void ZoneNumber_Save() var expected = value - 1; _session?.ClickEditLayout(Constants.TemplateLayoutNames[type]); - var slider = _session?.GetZoneCountSlider(); - slider?.SendKeys(Keys.Left); - Assert.AreEqual($"{expected}", slider?.Text); + var slider = _session?.FindByAccessibilityId(AccessibilityId.TemplateZoneSlider); + Assert.IsNotNull(slider); + slider.SendKeys(Keys.Left); + Assert.AreEqual($"{expected}", slider.Text); _session?.ClickSave(); - _session?.WaitUntilHidden(slider!); // let the dialog window close + _session?.WaitUntilHidden(slider); // let the dialog window close // verify the file var templateLayouts = new LayoutTemplates(); @@ -254,11 +257,12 @@ public void ZoneNumber_Cancel() var expected = layout.ZoneCount; _session?.ClickEditLayout(Constants.TemplateLayoutNames[type]); - var slider = _session?.GetZoneCountSlider(); - slider?.SendKeys(Keys.Left); + var slider = _session?.FindByAccessibilityId(AccessibilityId.TemplateZoneSlider); + Assert.IsNotNull(slider); + slider.SendKeys(Keys.Left); _session?.ClickCancel(); - _session?.WaitUntilHidden(slider!); // let the dialog window close + _session?.WaitUntilHidden(slider); // let the dialog window close // verify the file var templateLayouts = new LayoutTemplates(); @@ -279,12 +283,13 @@ public void HighlightDistance_Initialize() _session?.ClickEditLayout(name); - var slider = _session?.GetSensitivitySlider(); - var expected = Layouts.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutJsonTags[key]).SensitivityRadius; - Assert.AreEqual($"{expected}", slider?.Text); + var slider = _session?.FindByAccessibilityId(AccessibilityId.SensitivitySlider); + Assert.IsNotNull(slider); + var expected = Layouts.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutTypes[key]).SensitivityRadius; + Assert.AreEqual($"{expected}", slider.Text); _session?.ClickCancel(); - _session?.WaitUntilHidden(slider!); // let the dialog window close + _session?.WaitUntilHidden(slider); // let the dialog window close } } @@ -296,14 +301,15 @@ public void HighlightDistance_Save() var value = layout.SensitivityRadius; _session?.ClickEditLayout(Constants.TemplateLayoutNames[type]); - var slider = _session?.GetSensitivitySlider(); - slider?.SendKeys(Keys.Right); + var slider = _session?.FindByAccessibilityId(AccessibilityId.SensitivitySlider); + Assert.IsNotNull(slider); + slider.SendKeys(Keys.Right); var expected = value + 1; // one step right - Assert.AreEqual($"{expected}", slider?.Text); + Assert.AreEqual($"{expected}", slider.Text); _session?.ClickSave(); - _session?.WaitUntilHidden(slider!); // let the dialog window close + _session?.WaitUntilHidden(slider); // let the dialog window close // verify the file var templateLayouts = new LayoutTemplates(); @@ -320,10 +326,11 @@ public void HighlightDistance_Cancel() var expected = layout.SensitivityRadius; _session?.ClickEditLayout(Constants.TemplateLayoutNames[type]); - var slider = _session?.GetSensitivitySlider(); - slider?.SendKeys(Keys.Right); + var slider = _session?.FindByAccessibilityId(AccessibilityId.SensitivitySlider); + Assert.IsNotNull(slider); + slider.SendKeys(Keys.Right); _session?.ClickCancel(); - _session?.WaitUntilHidden(slider!); // let the dialog window close + _session?.WaitUntilHidden(slider); // let the dialog window close // verify the file var templateLayouts = new LayoutTemplates(); @@ -345,17 +352,17 @@ public void SpaceAroundZones_Initialize() _session?.ClickEditLayout(name); - var toggle = _session?.GetSpaceAroundZonesToggle(); - var slider = _session?.GetSpaceAroundZonesSlider(); + var slider = _session?.FindByAccessibilityId(AccessibilityId.SpacingSlider); + Assert.IsNotNull(slider); - var spacingEnabled = Layouts.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutJsonTags[key]).ShowSpacing; - Assert.AreEqual(spacingEnabled, slider?.Enabled); + var spacingEnabled = Layouts.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutTypes[key]).ShowSpacing; + Assert.AreEqual(spacingEnabled, slider.Enabled); - var expected = Layouts.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutJsonTags[key]).Spacing; - Assert.AreEqual($"{expected}", slider?.Text); + var expected = Layouts.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutTypes[key]).Spacing; + Assert.AreEqual($"{expected}", slider.Text); _session?.ClickCancel(); - _session?.WaitUntilHidden(slider!); // let the dialog window close + _session?.WaitUntilHidden(slider); // let the dialog window close } } @@ -367,12 +374,13 @@ public void SpaceAroundZones_Slider_Save() var expected = layout.Spacing + 1; _session?.ClickEditLayout(Constants.TemplateLayoutNames[type]); - var slider = _session?.GetSpaceAroundZonesSlider(); - slider?.SendKeys(Keys.Right); - Assert.AreEqual($"{expected}", slider?.Text); + var slider = _session?.FindByAccessibilityId(AccessibilityId.SpacingSlider); + Assert.IsNotNull(slider); + slider.SendKeys(Keys.Right); + Assert.AreEqual($"{expected}", slider.Text); _session?.ClickSave(); - _session?.WaitUntilHidden(slider!); // let the dialog window close + _session?.WaitUntilHidden(slider); // let the dialog window close // verify the file var templateLayouts = new LayoutTemplates(); @@ -389,12 +397,13 @@ public void SpaceAroundZones_Slider_Cancel() var expected = layout.Spacing; _session?.ClickEditLayout(Constants.TemplateLayoutNames[type]); - var slider = _session?.GetSpaceAroundZonesSlider(); - slider?.SendKeys(Keys.Right); - Assert.AreEqual($"{expected + 1}", slider?.Text); + var slider = _session?.FindByAccessibilityId(AccessibilityId.SpacingSlider); + Assert.IsNotNull(slider); + slider.SendKeys(Keys.Right); + Assert.AreEqual($"{expected + 1}", slider.Text); _session?.ClickCancel(); - _session?.WaitUntilHidden(slider!); // let the dialog window close + _session?.WaitUntilHidden(slider); // let the dialog window close // verify the file var templateLayouts = new LayoutTemplates(); @@ -411,13 +420,14 @@ public void SpaceAroundZones_Toggle_Save() var expected = !layout.ShowSpacing; _session?.ClickEditLayout(Constants.TemplateLayoutNames[type]); - var toggle = _session?.GetSpaceAroundZonesToggle(); - toggle?.Click(); - Assert.AreEqual(expected, toggle?.Selected); - Assert.AreEqual(expected, _session?.GetSpaceAroundZonesSlider()?.Enabled); + var toggle = _session?.FindByAccessibilityId(AccessibilityId.SpacingToggle); + Assert.IsNotNull(toggle); + toggle.Click(); + Assert.AreEqual(expected, toggle.Selected); + Assert.AreEqual(expected, _session?.FindByAccessibilityId(AccessibilityId.SpacingSlider)?.Enabled); _session?.ClickSave(); - _session?.WaitUntilHidden(toggle!); // let the dialog window close + _session?.WaitUntilHidden(toggle); // let the dialog window close // verify the file var templateLayouts = new LayoutTemplates(); @@ -434,13 +444,14 @@ public void SpaceAroundZones_Toggle_Cancel() var expected = layout.ShowSpacing; _session?.ClickEditLayout(Constants.TemplateLayoutNames[type]); - var toggle = _session?.GetSpaceAroundZonesToggle(); - toggle?.Click(); - Assert.AreNotEqual(expected, toggle?.Selected); - Assert.AreNotEqual(expected, _session?.GetSpaceAroundZonesSlider()?.Enabled); + var toggle = _session?.FindByAccessibilityId(AccessibilityId.SpacingToggle); + Assert.IsNotNull(toggle); + toggle.Click(); + Assert.AreNotEqual(expected, toggle.Selected); + Assert.AreNotEqual(expected, _session?.FindByAccessibilityId(AccessibilityId.SpacingSlider)?.Enabled); _session?.ClickCancel(); - _session?.WaitUntilHidden(toggle!); // let the dialog window close + _session?.WaitUntilHidden(toggle); // let the dialog window close // verify the file var templateLayouts = new LayoutTemplates(); diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializationTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializationTests.cs index 945e8428deef..455fced8d687 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializationTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializationTests.cs @@ -8,6 +8,7 @@ using Microsoft.FancyZonesEditor.UnitTests.Utils; using Microsoft.VisualStudio.TestTools.UnitTesting; using static FancyZonesEditorCommon.Data.EditorParameters; +using static Microsoft.FancyZonesEditor.UnitTests.Utils.FancyZonesEditorSession; namespace Microsoft.FancyZonesEditor.UITests { @@ -625,11 +626,11 @@ public void AppliedLayouts_NoLayoutsApplied_TemplateDefaultLayout() // check the number of zones and spacing _session?.ClickEditLayout(Constants.TemplateLayoutNames[Constants.TemplateLayouts.Grid]); - Assert.AreEqual(defaultLayoutsListWrapper.DefaultLayouts[0].Layout.ZoneCount, int.Parse(_session?.GetZoneCountSlider()?.Text!, CultureInfo.InvariantCulture)); - Assert.AreEqual(defaultLayoutsListWrapper.DefaultLayouts[0].Layout.Spacing, int.Parse(_session?.GetSpaceAroundZonesSlider()?.Text!, CultureInfo.InvariantCulture)); - Assert.AreEqual(defaultLayoutsListWrapper.DefaultLayouts[0].Layout.ShowSpacing, _session?.GetSpaceAroundZonesSlider()?.Enabled); - Assert.AreEqual(defaultLayoutsListWrapper.DefaultLayouts[0].Layout.ShowSpacing, _session?.GetSpaceAroundZonesToggle()?.Selected); - Assert.AreEqual(defaultLayoutsListWrapper.DefaultLayouts[0].Layout.SensitivityRadius, int.Parse(_session?.GetSensitivitySlider()?.Text!, CultureInfo.InvariantCulture)); + Assert.AreEqual(defaultLayoutsListWrapper.DefaultLayouts[0].Layout.ZoneCount, int.Parse(_session?.FindByAccessibilityId(AccessibilityId.TemplateZoneSlider)?.Text!, CultureInfo.InvariantCulture)); + Assert.AreEqual(defaultLayoutsListWrapper.DefaultLayouts[0].Layout.Spacing, int.Parse(_session?.FindByAccessibilityId(AccessibilityId.SpacingSlider)?.Text!, CultureInfo.InvariantCulture)); + Assert.AreEqual(defaultLayoutsListWrapper.DefaultLayouts[0].Layout.ShowSpacing, _session?.FindByAccessibilityId(AccessibilityId.SpacingSlider)?.Enabled); + Assert.AreEqual(defaultLayoutsListWrapper.DefaultLayouts[0].Layout.ShowSpacing, _session?.FindByAccessibilityId(AccessibilityId.SpacingToggle)?.Selected); + Assert.AreEqual(defaultLayoutsListWrapper.DefaultLayouts[0].Layout.SensitivityRadius, int.Parse(_session?.FindByAccessibilityId(AccessibilityId.SensitivitySlider)?.Text!, CultureInfo.InvariantCulture)); Assert.IsNotNull(_session?.GetHorizontalDefaultButton(true)); } diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs index 441755345eeb..25716f160023 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs @@ -225,57 +225,6 @@ public WindowsElement GetMonitorItem(int monitorNumber) } } - public WindowsElement? GetZoneCountSlider() - { - return FindByAccessibilityId(AccessibilityId.TemplateZoneSlider); - } - - public WindowsElement? GetSensitivitySlider() - { - return FindByAccessibilityId(AccessibilityId.SensitivitySlider); - } - - public WindowsElement? GetSpaceAroundZonesSlider() - { - return FindByAccessibilityId(AccessibilityId.SpacingSlider); - } - - public WindowsElement? GetSpaceAroundZonesToggle() - { - return FindByAccessibilityId(AccessibilityId.SpacingToggle); - } - - public WindowsElement? GetNameInput() - { - try - { - return Session.FindElementByClassName(ClassName.TextBox); - } - catch - { - Assert.Fail($"Name TextBox not found"); - return null; - } - } - - public WindowsElement? GetHotkeyComboBox() - { - return FindByAccessibilityId(AccessibilityId.HotkeyComboBox); - } - - public WindowsElement? GetHotkeyPopup() - { - try - { - return Session.FindElementByClassName(ClassName.Popup); - } - catch - { - Assert.Fail($"Hotkey popup window not found"); - return null; - } - } - public WindowsElement? GetHorizontalDefaultButton(bool isChecked) { if (isChecked) @@ -300,19 +249,6 @@ public WindowsElement GetMonitorItem(int monitorNumber) } } - public WindowsElement? GetGridLayoutEditorWindow() - { - try - { - return Session.FindElementByName(ElementName.GridLayoutEditor); - } - catch - { - Assert.Fail($"Grid layout editor window not found"); - return null; - } - } - public WindowsElement? GetZone(int zoneNumber, string zoneClassName) { ReadOnlyCollection zones = Session.FindElementsByClassName(zoneClassName); @@ -603,6 +539,16 @@ public void WaitElementDisplayedById(string id) }); } + public void WaitElementDisplayedByClassName(string className) + { + WebDriverWait wait = new WebDriverWait(Session, TimeSpan.FromSeconds(1)); + wait.Until(pred => + { + var element = Session.FindElementByClassName(className); + return element.Displayed; + }); + } + public void WaitUntilHidden(WindowsElement element) { WebDriverWait wait = new WebDriverWait(Session, TimeSpan.FromSeconds(1)); From 386865402a95549f79097fe96b409a0ad4464b46 Mon Sep 17 00:00:00 2001 From: seraphima Date: Mon, 18 Mar 2024 21:17:54 +0100 Subject: [PATCH 64/78] wait popup --- .../DeleteLayoutTests.cs | 2 ++ .../LayoutHotkeysTests.cs | 17 +++++++++++++++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/DeleteLayoutTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/DeleteLayoutTests.cs index 6c2e897eb0ad..4364c0b268e2 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/DeleteLayoutTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/DeleteLayoutTests.cs @@ -343,6 +343,8 @@ public void DeleteLayoutWithHotkey() var hotkeyComboBox = _session?.FindByAccessibilityId(AccessibilityId.HotkeyComboBox); Assert.IsNotNull(hotkeyComboBox); hotkeyComboBox.Click(); + + _session?.WaitElementDisplayedByClassName(ClassName.Popup); var popup = _session?.FindByClassName(ClassName.Popup); Assert.IsNotNull(popup); try diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/LayoutHotkeysTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/LayoutHotkeysTests.cs index 6519faefd403..28efba9459bd 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/LayoutHotkeysTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/LayoutHotkeysTests.cs @@ -347,6 +347,8 @@ public void Initialize() // verify the available values hotkeyComboBox.Click(); + + _session?.WaitElementDisplayedByClassName(ClassName.Popup); var popup = _session?.FindByClassName(ClassName.Popup); Assert.IsNotNull(popup, "Hotkey combo box wasn't opened"); @@ -381,9 +383,11 @@ public void Assign_Save() var hotkeyComboBox = _session?.FindByAccessibilityId(AccessibilityId.HotkeyComboBox); Assert.IsNotNull(hotkeyComboBox); hotkeyComboBox.Click(); - var popup = _session?.FindByClassName(ClassName.Popup); + _session?.WaitElementDisplayedByClassName(ClassName.Popup); + var popup = _session?.FindByClassName(ClassName.Popup); Assert.IsNotNull(popup); + _session?.Click(popup.FindElementByName($"{key}")!); // assign a free hotkey Assert.AreEqual(key, hotkeyComboBox.Text); @@ -399,6 +403,8 @@ public void Assign_Save() hotkeyComboBox = _session?.FindByAccessibilityId(AccessibilityId.HotkeyComboBox); Assert.IsNotNull(hotkeyComboBox); hotkeyComboBox.Click(); + + _session?.WaitElementDisplayedByClassName(ClassName.Popup); popup = _session?.FindByClassName(ClassName.Popup); Assert.IsNotNull(popup); try @@ -423,8 +429,8 @@ public void Assign_Cancel() var hotkeyComboBox = _session?.FindByAccessibilityId(AccessibilityId.HotkeyComboBox); Assert.IsNotNull(hotkeyComboBox); hotkeyComboBox.Click(); - var popup = _session?.FindByClassName(ClassName.Popup); _session?.WaitElementDisplayedByClassName(ClassName.Popup); + var popup = _session?.FindByClassName(ClassName.Popup); Assert.IsNotNull(popup); _session?.Click(popup.FindElementByName($"{key}")!); Assert.AreEqual(key, hotkeyComboBox.Text); @@ -441,6 +447,7 @@ public void Assign_Cancel() hotkeyComboBox = _session?.FindByAccessibilityId(AccessibilityId.HotkeyComboBox); Assert.IsNotNull(hotkeyComboBox); hotkeyComboBox.Click(); + _session?.WaitElementDisplayedByClassName(ClassName.Popup); popup = _session?.FindByClassName(ClassName.Popup); Assert.IsNotNull(popup); try @@ -464,6 +471,7 @@ public void Assign_AllPossibleValues() var hotkeyComboBox = _session?.FindByAccessibilityId(AccessibilityId.HotkeyComboBox); Assert.IsNotNull(hotkeyComboBox); hotkeyComboBox.Click(); + _session?.WaitElementDisplayedByClassName(ClassName.Popup); var popup = _session?.FindByClassName(ClassName.Popup); Assert.IsNotNull(popup); _session?.Click(popup.FindElementByName($"{i}")!); @@ -480,6 +488,7 @@ public void Assign_AllPossibleValues() var hotkeyComboBox = _session?.FindByAccessibilityId(AccessibilityId.HotkeyComboBox); Assert.IsNotNull(hotkeyComboBox); hotkeyComboBox.Click(); + _session?.WaitElementDisplayedByClassName(ClassName.Popup); var popup = _session?.FindByClassName(ClassName.Popup); Assert.IsNotNull(popup); @@ -513,6 +522,7 @@ public void Reset_Save() var hotkeyComboBox = _session?.FindByAccessibilityId(AccessibilityId.HotkeyComboBox); Assert.IsNotNull(hotkeyComboBox); hotkeyComboBox.Click(); + _session?.WaitElementDisplayedByClassName(ClassName.Popup); var popup = _session?.FindByClassName(ClassName.Popup); Assert.IsNotNull(popup); _session?.Click(popup.FindElementByName(None)!); @@ -530,6 +540,7 @@ public void Reset_Save() hotkeyComboBox = _session?.FindByAccessibilityId(AccessibilityId.HotkeyComboBox); Assert.IsNotNull(hotkeyComboBox); hotkeyComboBox.Click(); + _session?.WaitElementDisplayedByClassName(ClassName.Popup); popup = _session?.FindByClassName(ClassName.Popup); Assert.IsNotNull(popup); try @@ -554,6 +565,7 @@ public void Reset_Cancel() var hotkeyComboBox = _session?.FindByAccessibilityId(AccessibilityId.HotkeyComboBox); Assert.IsNotNull(hotkeyComboBox); hotkeyComboBox.Click(); + _session?.WaitElementDisplayedByClassName(ClassName.Popup); var popup = _session?.FindByClassName(ClassName.Popup); Assert.IsNotNull(popup); _session?.Click(popup.FindElementByName(None)!); // reset the hotkey @@ -571,6 +583,7 @@ public void Reset_Cancel() hotkeyComboBox = _session?.FindByAccessibilityId(AccessibilityId.HotkeyComboBox); Assert.IsNotNull(hotkeyComboBox); hotkeyComboBox.Click(); + _session?.WaitElementDisplayedByClassName(ClassName.Popup); popup = _session?.FindByClassName(ClassName.Popup); Assert.IsNotNull(popup); try From 7c6157325fe5d89a22b02086d29f98e408fe8147 Mon Sep 17 00:00:00 2001 From: seraphima Date: Mon, 18 Mar 2024 21:49:03 +0100 Subject: [PATCH 65/78] replace cilcks --- .../ApplyLayoutTests.cs | 6 +-- .../CopyLayoutTests.cs | 18 ++++---- .../CreateLayoutTests.cs | 24 +++++----- .../CustomLayoutsTests.cs | 20 ++++----- .../DefaultLayoutsTests.cs | 9 ++-- .../DeleteLayoutTests.cs | 12 ++--- .../EditLayoutTests.cs | 42 ++++++++--------- .../LayoutHotkeysTests.cs | 16 +++---- .../RunFancyZonesEditorTest.cs | 3 +- .../TemplateLayoutsTests.cs | 22 ++++----- .../Utils/FancyZonesEditorSession.cs | 45 ++++--------------- 11 files changed, 95 insertions(+), 122 deletions(-) diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/ApplyLayoutTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/ApplyLayoutTests.cs index 985cbb76e855..fd3291eae737 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/ApplyLayoutTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/ApplyLayoutTests.cs @@ -283,7 +283,7 @@ public void ApplyTemplateWithDifferentParametersOnEachMonitor() slider.SendKeys(Keys.Right); slider.SendKeys(Keys.Right); var expectedFirstLayoutZoneCount = int.Parse(slider.Text!, CultureInfo.InvariantCulture); - _session?.ClickSave(); + _session?.Click(ElementName.Save); _session?.WaitUntilHidden(slider); // let the dialog window close // apply the layout on the second monitor, set different parameters @@ -294,7 +294,7 @@ public void ApplyTemplateWithDifferentParametersOnEachMonitor() Assert.IsNotNull(slider); slider.SendKeys(Keys.Left); var expectedSecondLayoutZoneCount = int.Parse(slider.Text!, CultureInfo.InvariantCulture); - _session?.ClickSave(); + _session?.Click(ElementName.Save); _session?.WaitUntilHidden(slider); // let the dialog window close // verify the layout on the first monitor wasn't changed @@ -303,7 +303,7 @@ public void ApplyTemplateWithDifferentParametersOnEachMonitor() slider = _session?.FindByAccessibilityId(AccessibilityId.TemplateZoneSlider); Assert.IsNotNull(slider); Assert.AreEqual(expectedFirstLayoutZoneCount, int.Parse(slider.Text!, CultureInfo.InvariantCulture)); - _session?.ClickCancel(); + _session?.Click(ElementName.Cancel); _session?.WaitUntilHidden(slider); // let the dialog window close // check the file diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/CopyLayoutTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/CopyLayoutTests.cs index fe30b02acf29..db63b2d578de 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/CopyLayoutTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/CopyLayoutTests.cs @@ -229,7 +229,7 @@ public void CopyTemplate_DefaultLayout() _session?.ClickCopyLayout(); // verify the layout is copied - _session?.ClickSave(); + _session?.Click(ElementName.Save); Assert.IsNotNull(_session?.GetLayout(copiedLayoutName)); // new name is presented // verify the file @@ -241,12 +241,12 @@ public void CopyTemplate_DefaultLayout() _session?.ClickEditLayout(Constants.TemplateLayoutNames[Constants.TemplateLayouts.PriorityGrid]); var horizontalDefaultButton = _session?.GetHorizontalDefaultButton(true); Assert.IsNotNull(horizontalDefaultButton); - _session?.ClickCancel(); + _session?.Click(ElementName.Cancel); _session?.ClickEditLayout(copiedLayoutName); horizontalDefaultButton = _session?.GetHorizontalDefaultButton(false); Assert.IsNotNull(horizontalDefaultButton); - _session?.ClickCancel(); + _session?.Click(ElementName.Cancel); // verify the default layouts file wasn't changed var defaultLayouts = new DefaultLayouts(); @@ -296,7 +296,7 @@ public void CopyCustomLayout_DefaultLayout() _session?.ClickCopyLayout(); // verify the layout is copied - _session?.ClickSave(); + _session?.Click(ElementName.Save); Assert.IsNotNull(_session?.GetLayout(copiedLayoutName)); // new name is presented // verify the file @@ -308,12 +308,12 @@ public void CopyCustomLayout_DefaultLayout() _session?.ClickEditLayout(CustomLayouts.CustomLayouts[0].Name); var horizontalDefaultButton = _session?.GetVerticalDefaultButton(true); Assert.IsNotNull(horizontalDefaultButton); - _session?.ClickCancel(); + _session?.Click(ElementName.Cancel); _session?.ClickEditLayout(copiedLayoutName); horizontalDefaultButton = _session?.GetVerticalDefaultButton(false); Assert.IsNotNull(horizontalDefaultButton); - _session?.ClickCancel(); + _session?.Click(ElementName.Cancel); // verify the default layouts file wasn't changed var defaultLayouts = new DefaultLayouts(); @@ -329,7 +329,7 @@ public void CopyCustomLayout_Hotkey() _session?.ClickCopyLayout(); // verify the layout is copied - _session?.ClickSave(); + _session?.Click(ElementName.Save); Assert.IsNotNull(_session?.GetLayout(copiedLayoutName)); // new name is presented // verify the file @@ -342,13 +342,13 @@ public void CopyCustomLayout_Hotkey() var hotkeyComboBox = _session?.FindByAccessibilityId(AccessibilityId.HotkeyComboBox); Assert.IsNotNull(hotkeyComboBox); Assert.AreEqual("0", hotkeyComboBox.Text); - _session?.ClickCancel(); + _session?.Click(ElementName.Cancel); _session?.ClickEditLayout(copiedLayoutName); hotkeyComboBox = _session?.FindByAccessibilityId(AccessibilityId.HotkeyComboBox); Assert.IsNotNull(hotkeyComboBox); Assert.AreEqual("None", hotkeyComboBox.Text); - _session?.ClickCancel(); + _session?.Click(ElementName.Cancel); // verify the hotkey file wasn't changed var hotkeys = new LayoutHotkeys(); diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/CreateLayoutTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/CreateLayoutTests.cs index e89fb30ed09c..047ae7209bde 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/CreateLayoutTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/CreateLayoutTests.cs @@ -151,9 +151,9 @@ public void TestCleanup() public void CreateWithDefaultName() { string name = "Custom layout 1"; - _session?.ClickCreateNewLayout(); + _session?.Click(_session?.FindByAccessibilityId(AccessibilityId.NewLayoutButton)); _session?.ClickConfirm(); - _session?.ClickSave(); + _session?.Click(ElementName.Save); // verify new layout presented Assert.IsNotNull(_session?.GetLayout(name)); @@ -169,13 +169,13 @@ public void CreateWithDefaultName() public void CreateWithCustomName() { string name = "Layout Name"; - _session?.ClickCreateNewLayout(); + _session?.Click(_session?.FindByAccessibilityId(AccessibilityId.NewLayoutButton)); var input = _session?.FindByClassName(ClassName.TextBox); Assert.IsNotNull(input); input.Clear(); input.SendKeys(name); _session?.ClickConfirm(); - _session?.ClickSave(); + _session?.Click(ElementName.Save); // verify new layout presented Assert.IsNotNull(_session?.GetLayout(name)); @@ -191,10 +191,10 @@ public void CreateWithCustomName() public void CreateGrid() { Constants.CustomLayoutType type = Constants.CustomLayoutType.Grid; - _session?.ClickCreateNewLayout(); + _session?.Click(_session?.FindByAccessibilityId(AccessibilityId.NewLayoutButton)); _session?.SelectNewLayoutType(type); _session?.ClickConfirm(); - _session?.ClickSave(); + _session?.Click(ElementName.Save); // check the file var customLayouts = new CustomLayouts(); @@ -207,10 +207,10 @@ public void CreateGrid() public void CreateCanvas() { Constants.CustomLayoutType type = Constants.CustomLayoutType.Canvas; - _session?.ClickCreateNewLayout(); + _session?.Click(_session?.FindByAccessibilityId(AccessibilityId.NewLayoutButton)); _session?.SelectNewLayoutType(type); _session?.ClickConfirm(); - _session?.ClickSave(); + _session?.Click(ElementName.Save); // check the file var customLayouts = new CustomLayouts(); @@ -223,10 +223,10 @@ public void CreateCanvas() public void CancelGridCreation() { Constants.CustomLayoutType type = Constants.CustomLayoutType.Grid; - _session?.ClickCreateNewLayout(); + _session?.Click(_session?.FindByAccessibilityId(AccessibilityId.NewLayoutButton)); _session?.SelectNewLayoutType(type); _session?.ClickConfirm(); - _session?.ClickCancel(); + _session?.Click(ElementName.Cancel); // check the file var customLayouts = new CustomLayouts(); @@ -238,10 +238,10 @@ public void CancelGridCreation() public void CancelCanvasCreation() { Constants.CustomLayoutType type = Constants.CustomLayoutType.Canvas; - _session?.ClickCreateNewLayout(); + _session?.Click(_session?.FindByAccessibilityId(AccessibilityId.NewLayoutButton)); _session?.SelectNewLayoutType(type); _session?.ClickConfirm(); - _session?.ClickCancel(); + _session?.Click(ElementName.Cancel); // check the file var customLayouts = new CustomLayouts(); diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs index 8145bfcbb4ab..c42837e2195a 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs @@ -246,7 +246,7 @@ public void Rename_Save() input.SendKeys(newName); // verify new name - _session?.ClickSave(); + _session?.Click(ElementName.Save); Assert.IsNull(_session?.GetLayout(oldName)); // previous name isn't presented Assert.IsNotNull(_session?.GetLayout(newName)); // new name is presented } @@ -265,7 +265,7 @@ public void Rename_Cancel() input.SendKeys(newName); // verify new name - _session?.ClickCancel(); + _session?.Click(ElementName.Cancel); Assert.IsNotNull(_session?.GetLayout(oldName)); Assert.IsNull(_session?.GetLayout(newName)); } @@ -284,7 +284,7 @@ public void HighlightDistance_Initialize() new CustomLayouts().GridFromJsonElement(layout.Info.GetRawText()).SensitivityRadius; Assert.AreEqual($"{expected}", slider.Text); - _session?.ClickCancel(); + _session?.Click(ElementName.Cancel); _session?.WaitUntilHidden(slider); } } @@ -307,7 +307,7 @@ public void HighlightDistance_Save() Assert.AreEqual($"{expected}", slider.Text); - _session?.ClickSave(); + _session?.Click(ElementName.Save); _session?.WaitUntilHidden(slider); // let the dialog window close // verify the file @@ -334,7 +334,7 @@ public void HighlightDistance_Cancel() new CustomLayouts().CanvasFromJsonElement(layout.Info.GetRawText()).SensitivityRadius : new CustomLayouts().GridFromJsonElement(layout.Info.GetRawText()).SensitivityRadius; - _session?.ClickCancel(); + _session?.Click(ElementName.Cancel); _session?.WaitUntilHidden(slider); // let the dialog window close // verify the file @@ -371,7 +371,7 @@ public void SpaceAroundZones_Initialize() var expected = new CustomLayouts().GridFromJsonElement(layout.Info.GetRawText()).Spacing; Assert.AreEqual($"{expected}", slider.Text); - _session?.ClickCancel(); + _session?.Click(ElementName.Cancel); _session?.WaitUntilHidden(slider); // let the dialog window close } } @@ -388,7 +388,7 @@ public void SpaceAroundZones_Slider_Save() slider.SendKeys(Keys.Right); Assert.AreEqual($"{expected}", slider.Text); - _session?.ClickSave(); + _session?.Click(ElementName.Save); _session?.WaitUntilHidden(slider); // let the dialog window close // verify the file @@ -408,7 +408,7 @@ public void SpaceAroundZones_Slider_Cancel() var slider = _session?.FindByAccessibilityId(AccessibilityId.SpacingSlider); Assert.IsNotNull(slider); slider.SendKeys(Keys.Right); - _session?.ClickCancel(); + _session?.Click(ElementName.Cancel); _session?.WaitUntilHidden(slider); // let the dialog window close // verify the file @@ -432,7 +432,7 @@ public void SpaceAroundZones_Toggle_Save() Assert.AreEqual(expected, toggle.Selected, "Toggle value not changed"); Assert.AreEqual(expected, _session?.FindByAccessibilityId(AccessibilityId.SpacingSlider)?.Enabled); - _session?.ClickSave(); + _session?.Click(ElementName.Save); _session?.WaitUntilHidden(toggle); // let the dialog window close // verify the file @@ -455,7 +455,7 @@ public void SpaceAroundZones_Toggle_Cancel() Assert.AreNotEqual(expected, toggle.Selected, "Toggle value not changed"); Assert.AreNotEqual(expected, _session?.FindByAccessibilityId(AccessibilityId.SpacingSlider)?.Enabled); - _session?.ClickCancel(); + _session?.Click(ElementName.Cancel); _session?.WaitUntilHidden(toggle); // let the dialog window close // verify the file diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/DefaultLayoutsTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/DefaultLayoutsTests.cs index 714b7d6e0774..d5028b51bd7f 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/DefaultLayoutsTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/DefaultLayoutsTests.cs @@ -9,6 +9,7 @@ using static FancyZonesEditorCommon.Data.CustomLayouts; using static FancyZonesEditorCommon.Data.DefaultLayouts; using static FancyZonesEditorCommon.Data.EditorParameters; +using static Microsoft.FancyZonesEditor.UnitTests.Utils.FancyZonesEditorSession; namespace Microsoft.FancyZonesEditor.UITests { @@ -268,7 +269,7 @@ public void Assign_Cancel() verticalDefaultButton?.Click(); // cancel - _session?.ClickCancel(); + _session?.Click(ElementName.Cancel); _session?.WaitUntilHidden(horizontalDefaultButton!); // check that default layouts weren't changed @@ -287,7 +288,7 @@ public void Assign_Save() verticalDefaultButton?.Click(); // cancel - _session?.ClickSave(); + _session?.Click(ElementName.Save); _session?.WaitUntilHidden(horizontalDefaultButton!); // check that default layout was changed @@ -314,7 +315,7 @@ private void CheckTemplateLayouts(Constants.TemplateLayouts? horizontalDefault, var verticalDefaultButton = _session?.GetVerticalDefaultButton(isCheckedVertical); Assert.IsNotNull(verticalDefaultButton, "Incorrect vertical default layout set at " + name); - _session?.ClickCancel(); + _session?.Click(ElementName.Cancel); _session?.WaitUntilHidden(horizontalDefaultButton!); } } @@ -333,7 +334,7 @@ private void CheckCustomLayouts(string horizontalDefaultLayoutUuid, string verti var verticalDefaultButton = _session?.GetVerticalDefaultButton(isCheckedVertical); Assert.IsNotNull(verticalDefaultButton, "Incorrect vertical custom layout set at " + layout.Name); - _session?.ClickCancel(); + _session?.Click(ElementName.Cancel); _session?.WaitUntilHidden(horizontalDefaultButton!); } } diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/DeleteLayoutTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/DeleteLayoutTests.cs index 4364c0b268e2..33efb84b9703 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/DeleteLayoutTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/DeleteLayoutTests.cs @@ -233,7 +233,7 @@ public void DeleteNotAppliedLayout() { var deletedLayout = CustomLayouts.CustomLayouts[1].Name; _session?.ClickEditLayout(deletedLayout); - _session?.ClickDeleteLayout(); + _session?.Click(_session.FindByAccessibilityId(AccessibilityId.DeleteLayoutButton)); _session?.ClickConfirmDialog(); _session?.WaitFor(1); @@ -252,7 +252,7 @@ public void DeleteAppliedLayout() { var deletedLayout = CustomLayouts.CustomLayouts[0].Name; _session?.ClickEditLayout(deletedLayout); - _session?.ClickDeleteLayout(); + _session?.Click(_session.FindByAccessibilityId(AccessibilityId.DeleteLayoutButton)); _session?.ClickConfirmDialog(); _session?.WaitFor(1); @@ -278,7 +278,7 @@ public void CancelDeletion() { var deletedLayout = CustomLayouts.CustomLayouts[1].Name; _session?.ClickEditLayout(deletedLayout); - _session?.ClickDeleteLayout(); + _session?.Click(_session.FindByAccessibilityId(AccessibilityId.DeleteLayoutButton)); _session?.ClickCancelDialog(); _session?.WaitFor(1); @@ -321,7 +321,7 @@ public void DeleteDefaultLayout() // verify the default layout is reset to the "default" default _session?.ClickEditLayout(Constants.TemplateLayoutNames[Constants.TemplateLayouts.PriorityGrid]); Assert.IsNotNull(_session?.GetHorizontalDefaultButton(true)); - _session?.ClickCancel(); + _session?.Click(ElementName.Cancel); // check the file var defaultLayouts = new DefaultLayouts(); @@ -356,11 +356,11 @@ public void DeleteLayoutWithHotkey() } catch { - _session?.ClickCancel(); + _session?.Click(ElementName.Cancel); Assert.Fail("Hotkey not found"); } - _session?.ClickCancel(); + _session?.Click(ElementName.Cancel); // check the file var hotkeys = new LayoutHotkeys(); diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/EditLayoutTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/EditLayoutTests.cs index 83d70708af26..19466242a57d 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/EditLayoutTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/EditLayoutTests.cs @@ -199,9 +199,9 @@ public void TestCleanup() public void OpenEditMode() { _session?.ClickEditLayout(Layouts.CustomLayouts[0].Name); - _session?.ClickEditZones(); + _session?.Click(_session?.FindByAccessibilityId(AccessibilityId.EditZonesButton)); Assert.IsNotNull(_session?.FindByName(ElementName.GridLayoutEditor)); - _session?.ClickCancel(); + _session?.Click(ElementName.Cancel); } [TestMethod] @@ -209,7 +209,7 @@ public void OpenEditModeFromContextMenu() { _session?.ClickContextMenuItem(Layouts.CustomLayouts[0].Name, FancyZonesEditorSession.ElementName.EditZones); Assert.IsNotNull(_session?.FindByName(ElementName.GridLayoutEditor)); - _session?.ClickCancel(); + _session?.Click(ElementName.Cancel); } [TestMethod] @@ -217,8 +217,8 @@ public void Canvas_AddZone_Save() { var canvas = Layouts.CustomLayouts.Find(x => x.Type == Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas]); _session?.ClickContextMenuItem(canvas.Name, FancyZonesEditorSession.ElementName.EditZones); - _session?.ClickAddNewZone(); - _session?.ClickSave(); + _session?.Click(_session?.FindByAccessibilityId(AccessibilityId.NewZoneButton)); + _session?.Click(ElementName.Save); // check the file var customLayouts = new CustomLayouts(); @@ -233,8 +233,8 @@ public void Canvas_AddZone_Cancel() { var canvas = Layouts.CustomLayouts.Find(x => x.Type == Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas]); _session?.ClickContextMenuItem(canvas.Name, FancyZonesEditorSession.ElementName.EditZones); - _session?.ClickAddNewZone(); - _session?.ClickCancel(); + _session?.Click(_session?.FindByAccessibilityId(AccessibilityId.NewZoneButton)); + _session?.Click(ElementName.Cancel); // check the file var customLayouts = new CustomLayouts(); @@ -251,7 +251,7 @@ public void Canvas_DeleteZone_Save() _session?.ClickContextMenuItem(canvas.Name, FancyZonesEditorSession.ElementName.EditZones); _session?.WaitElementDisplayedByName(FancyZonesEditorSession.ElementName.CanvasEditorWindow); _session?.ClickDeleteZone(1); - _session?.ClickSave(); + _session?.Click(ElementName.Save); // check the file var customLayouts = new CustomLayouts(); @@ -267,7 +267,7 @@ public void Canvas_DeleteZone_Cancel() var canvas = Layouts.CustomLayouts.Find(x => x.Type == Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas]); _session?.ClickContextMenuItem(canvas.Name, FancyZonesEditorSession.ElementName.EditZones); _session?.ClickDeleteZone(1); - _session?.ClickCancel(); + _session?.Click(ElementName.Cancel); // check the file var customLayouts = new CustomLayouts(); @@ -287,7 +287,7 @@ public void Canvas_MoveZone_Save() _session?.ClickContextMenuItem(canvas.Name, FancyZonesEditorSession.ElementName.EditZones); _session?.Drag(_session.GetZone(zoneNumber, FancyZonesEditorSession.ClassName.CanvasZone)!, xOffset, yOffset); - _session?.ClickSave(); + _session?.Click(ElementName.Save); // check the file var customLayouts = new CustomLayouts(); @@ -322,7 +322,7 @@ public void Canvas_MoveZone_Cancel() _session?.ClickContextMenuItem(canvas.Name, FancyZonesEditorSession.ElementName.EditZones); _session?.Drag(_session.GetZone(zoneNumber, FancyZonesEditorSession.ClassName.CanvasZone)!, 100, 100); - _session?.ClickCancel(); + _session?.Click(ElementName.Cancel); // check the file var customLayouts = new CustomLayouts(); @@ -348,7 +348,7 @@ public void Canvas_ResizeZone_Save() _session?.ClickContextMenuItem(canvas.Name, FancyZonesEditorSession.ElementName.EditZones); _session?.Drag((WindowsElement)_session.GetZone(zoneNumber, FancyZonesEditorSession.ClassName.CanvasZone)?.FindElementByAccessibilityId(FancyZonesEditorSession.AccessibilityId.TopRightCorner)!, xOffset, yOffset); - _session?.ClickSave(); + _session?.Click(ElementName.Save); // check the file var customLayouts = new CustomLayouts(); @@ -385,7 +385,7 @@ public void Canvas_ResizeZone_Cancel() _session?.ClickContextMenuItem(canvas.Name, FancyZonesEditorSession.ElementName.EditZones); _session?.Drag((WindowsElement)_session.GetZone(zoneNumber, FancyZonesEditorSession.ClassName.CanvasZone)?.FindElementByAccessibilityId(FancyZonesEditorSession.AccessibilityId.TopRightCorner)!, xOffset, yOffset); - _session?.ClickCancel(); + _session?.Click(ElementName.Cancel); // check the file var customLayouts = new CustomLayouts(); @@ -410,7 +410,7 @@ public void Grid_SplitZone_Save() _session?.ClickContextMenuItem(grid.Name, FancyZonesEditorSession.ElementName.EditZones); _session?.GetZone(zoneNumber, FancyZonesEditorSession.ClassName.GridZone)!.Click(); // horizontal split in the middle of the zone - _session?.ClickSave(); + _session?.Click(ElementName.Save); // check the file var customLayouts = new CustomLayouts(); @@ -439,7 +439,7 @@ public void Grid_SplitZone_Cancel() _session?.ClickContextMenuItem(grid.Name, FancyZonesEditorSession.ElementName.EditZones); _session?.GetZone(zoneNumber, FancyZonesEditorSession.ClassName.GridZone)!.Click(); // horizontal split in the middle of the zone - _session?.ClickCancel(); + _session?.Click(ElementName.Cancel); // check the file var customLayouts = new CustomLayouts(); @@ -469,7 +469,7 @@ public void Grid_MergeZones_Save() _session?.ClickContextMenuItem(grid.Name, FancyZonesEditorSession.ElementName.EditZones); _session?.MergeGridZones(1, 2); - _session?.ClickSave(); + _session?.Click(ElementName.Save); // check the file var customLayouts = new CustomLayouts(); @@ -503,7 +503,7 @@ public void Grid_MergeZones_Cancel() _session?.ClickContextMenuItem(grid.Name, FancyZonesEditorSession.ElementName.EditZones); _session?.MergeGridZones(1, 2); - _session?.ClickCancel(); + _session?.Click(ElementName.Cancel); // check the file var customLayouts = new CustomLayouts(); @@ -539,8 +539,8 @@ public void Grid_MoveSplitter_Save() _session?.ClickContextMenuItem(grid.Name, FancyZonesEditorSession.ElementName.EditZones); _session?.MoveSplitter(0, -100); - _session?.ClickSave(); - _session?.ClickSave(); // single click doesn't work after moving a splitter + _session?.Click(ElementName.Save); + _session?.Click(ElementName.Save); // single click doesn't work after moving a splitter // check the file var customLayouts = new CustomLayouts(); @@ -575,8 +575,8 @@ public void Grid_MoveSplitter_Cancel() _session?.ClickContextMenuItem(grid.Name, FancyZonesEditorSession.ElementName.EditZones); _session?.MoveSplitter(0, -100); - _session?.ClickCancel(); - _session?.ClickCancel(); // single click doesn't work after moving a splitter + _session?.Click(ElementName.Cancel); + _session?.Click(ElementName.Cancel); // single click doesn't work after moving a splitter // check the file var customLayouts = new CustomLayouts(); diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/LayoutHotkeysTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/LayoutHotkeysTests.cs index 28efba9459bd..e5456a3bb436 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/LayoutHotkeysTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/LayoutHotkeysTests.cs @@ -316,7 +316,7 @@ public void TestCleanup() { try { - _session?.ClickCancel(); // in case if test has failed + _session?.Click(ElementName.Cancel); // in case if test has failed } catch { @@ -367,7 +367,7 @@ public void Initialize() Assert.Fail("Hotkey is missed"); } - _session?.ClickCancel(); + _session?.Click(ElementName.Cancel); _session?.WaitUntilHidden(hotkeyComboBox); // let the dialog window close } } @@ -392,7 +392,7 @@ public void Assign_Save() Assert.AreEqual(key, hotkeyComboBox.Text); // verify the file - _session?.ClickSave(); + _session?.Click(ElementName.Save); _session?.WaitUntilHidden(hotkeyComboBox); // let the dialog window close var hotkeys = new LayoutHotkeys(); var actualData = hotkeys.Read(hotkeys.File); @@ -436,7 +436,7 @@ public void Assign_Cancel() Assert.AreEqual(key, hotkeyComboBox.Text); // verify the file - _session?.ClickCancel(); + _session?.Click(ElementName.Cancel); _session?.WaitUntilHidden(hotkeyComboBox); // let the dialog window close var hotkeys = new LayoutHotkeys(); var actualData = hotkeys.Read(hotkeys.File); @@ -476,7 +476,7 @@ public void Assign_AllPossibleValues() Assert.IsNotNull(popup); _session?.Click(popup.FindElementByName($"{i}")!); - _session?.ClickSave(); + _session?.Click(ElementName.Save); _session?.WaitUntilHidden(hotkeyComboBox); // let the dialog window close } @@ -505,7 +505,7 @@ public void Assign_AllPossibleValues() } _session?.Click(popup.FindElementByName($"None")!); - _session?.ClickSave(); + _session?.Click(ElementName.Save); _session?.WaitUntilHidden(hotkeyComboBox); // let the dialog window close } } @@ -529,7 +529,7 @@ public void Reset_Save() Assert.AreEqual(None, hotkeyComboBox.Text); // verify the file - _session?.ClickSave(); + _session?.Click(ElementName.Save); _session?.WaitUntilHidden(hotkeyComboBox); // let the dialog window close var hotkeys = new LayoutHotkeys(); var actualData = hotkeys.Read(hotkeys.File); @@ -572,7 +572,7 @@ public void Reset_Cancel() Assert.AreEqual(None, hotkeyComboBox.Text); // verify the file - _session?.ClickCancel(); + _session?.Click(ElementName.Cancel); _session?.WaitUntilHidden(hotkeyComboBox); // let the dialog window close var hotkeys = new LayoutHotkeys(); var actualData = hotkeys.Read(hotkeys.File); diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/RunFancyZonesEditorTest.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/RunFancyZonesEditorTest.cs index 1f9423cd35fb..0a89956c1a0f 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/RunFancyZonesEditorTest.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/RunFancyZonesEditorTest.cs @@ -6,6 +6,7 @@ using FancyZonesEditorCommon.Data; using Microsoft.FancyZonesEditor.UnitTests.Utils; using Microsoft.VisualStudio.TestTools.UnitTesting; +using static Microsoft.FancyZonesEditor.UnitTests.Utils.FancyZonesEditorSession; namespace Microsoft.FancyZonesEditor.UITests { @@ -180,7 +181,7 @@ public void TestCleanup() [TestMethod] public void OpenNewLayoutDialog() // verify the new layout dialog is opened { - _session?.ClickCreateNewLayout(); + _session?.Click(_session?.FindByAccessibilityId(AccessibilityId.NewLayoutButton)); Assert.IsNotNull(_session?.FindByName("Choose layout type")); // check the pane header } diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs index 4b45268989bb..7fd627c1e57b 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs @@ -220,7 +220,7 @@ public void ZoneNumber_Initialize() var expected = Layouts.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutTypes[key]).ZoneCount; Assert.AreEqual($"{expected}", slider.Text); - _session?.ClickCancel(); + _session?.Click(ElementName.Cancel); _session?.WaitUntilHidden(slider); // let the dialog window close } } @@ -239,7 +239,7 @@ public void ZoneNumber_Save() slider.SendKeys(Keys.Left); Assert.AreEqual($"{expected}", slider.Text); - _session?.ClickSave(); + _session?.Click(ElementName.Save); _session?.WaitUntilHidden(slider); // let the dialog window close // verify the file @@ -261,7 +261,7 @@ public void ZoneNumber_Cancel() Assert.IsNotNull(slider); slider.SendKeys(Keys.Left); - _session?.ClickCancel(); + _session?.Click(ElementName.Cancel); _session?.WaitUntilHidden(slider); // let the dialog window close // verify the file @@ -288,7 +288,7 @@ public void HighlightDistance_Initialize() var expected = Layouts.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutTypes[key]).SensitivityRadius; Assert.AreEqual($"{expected}", slider.Text); - _session?.ClickCancel(); + _session?.Click(ElementName.Cancel); _session?.WaitUntilHidden(slider); // let the dialog window close } } @@ -308,7 +308,7 @@ public void HighlightDistance_Save() var expected = value + 1; // one step right Assert.AreEqual($"{expected}", slider.Text); - _session?.ClickSave(); + _session?.Click(ElementName.Save); _session?.WaitUntilHidden(slider); // let the dialog window close // verify the file @@ -329,7 +329,7 @@ public void HighlightDistance_Cancel() var slider = _session?.FindByAccessibilityId(AccessibilityId.SensitivitySlider); Assert.IsNotNull(slider); slider.SendKeys(Keys.Right); - _session?.ClickCancel(); + _session?.Click(ElementName.Cancel); _session?.WaitUntilHidden(slider); // let the dialog window close // verify the file @@ -361,7 +361,7 @@ public void SpaceAroundZones_Initialize() var expected = Layouts.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutTypes[key]).Spacing; Assert.AreEqual($"{expected}", slider.Text); - _session?.ClickCancel(); + _session?.Click(ElementName.Cancel); _session?.WaitUntilHidden(slider); // let the dialog window close } } @@ -379,7 +379,7 @@ public void SpaceAroundZones_Slider_Save() slider.SendKeys(Keys.Right); Assert.AreEqual($"{expected}", slider.Text); - _session?.ClickSave(); + _session?.Click(ElementName.Save); _session?.WaitUntilHidden(slider); // let the dialog window close // verify the file @@ -402,7 +402,7 @@ public void SpaceAroundZones_Slider_Cancel() slider.SendKeys(Keys.Right); Assert.AreEqual($"{expected + 1}", slider.Text); - _session?.ClickCancel(); + _session?.Click(ElementName.Cancel); _session?.WaitUntilHidden(slider); // let the dialog window close // verify the file @@ -426,7 +426,7 @@ public void SpaceAroundZones_Toggle_Save() Assert.AreEqual(expected, toggle.Selected); Assert.AreEqual(expected, _session?.FindByAccessibilityId(AccessibilityId.SpacingSlider)?.Enabled); - _session?.ClickSave(); + _session?.Click(ElementName.Save); _session?.WaitUntilHidden(toggle); // let the dialog window close // verify the file @@ -450,7 +450,7 @@ public void SpaceAroundZones_Toggle_Cancel() Assert.AreNotEqual(expected, toggle.Selected); Assert.AreNotEqual(expected, _session?.FindByAccessibilityId(AccessibilityId.SpacingSlider)?.Enabled); - _session?.ClickCancel(); + _session?.Click(ElementName.Cancel); _session?.WaitUntilHidden(toggle); // let the dialog window close // verify the file diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs index 25716f160023..23383a7371a6 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs @@ -268,11 +268,15 @@ public WindowsElement GetMonitorItem(int monitorNumber) return null; } - public void ClickCreateNewLayout() + public void Click(WindowsElement? element) { - var button = FindByAccessibilityId(AccessibilityId.NewLayoutButton); - Assert.IsNotNull(button, "Create new layout button not found"); - button.Click(); + Assert.IsNotNull(element); + element.Click(); + } + + public void Click(string name) + { + Click(Session.FindElementByName(name)); } public void ClickEditLayout(string layoutName) @@ -295,12 +299,6 @@ public void ClickEditLayout(string layoutName) } } - public void ClickEditZones() - { - var button = FindByAccessibilityId(AccessibilityId.EditZonesButton); - button?.Click(); - } - public void RightClickLayout(string layoutName) { var layout = GetLayout(layoutName); @@ -315,20 +313,6 @@ public void ClickMonitor(int monitorNumber) Click(monitor); } - public void ClickSave() - { - var button = Session.FindElementByName(ElementName.Save); - Assert.IsNotNull(button, "No Save button"); - button.Click(); - } - - public void ClickCancel() - { - var button = Session.FindElementByName(ElementName.Cancel); - Assert.IsNotNull(button, "No Cancel button"); - button.Click(); - } - public void ClickCopyLayout() { WindowsElement? button = null; @@ -352,12 +336,6 @@ public void ClickCopyLayout() button.Click(); } - public void ClickDeleteLayout() - { - WindowsElement button = Session.FindElementByAccessibilityId(AccessibilityId.DeleteLayoutButton); - button.Click(); - } - public void ClickConfirm() { WaitElementDisplayedById(AccessibilityId.PrimaryButton); @@ -386,13 +364,6 @@ public void ClickContextMenuItem(string layoutName, string menuItem) Click(menu.FindElementByName(menuItem)); } - public void ClickAddNewZone() - { - var button = FindByAccessibilityId(AccessibilityId.NewZoneButton); - Assert.IsNotNull(button); - button.Click(); - } - public void ClickDeleteZone(int zoneNumber) { var zone = GetZone(zoneNumber, ClassName.CanvasZone); From 7dd4e87515735a601b9d29f492b66985599f569f Mon Sep 17 00:00:00 2001 From: seraphima Date: Fri, 22 Mar 2024 16:01:56 +0100 Subject: [PATCH 66/78] update constants --- .../ApplyLayoutTests.cs | 35 +++--- .../UITests-FancyZonesEditor/Constants.cs | 32 ------ .../CopyLayoutTests.cs | 27 ++--- .../CreateLayoutTests.cs | 13 +-- .../CustomLayoutsTests.cs | 13 +-- .../DefaultLayoutsTests.cs | 31 +++--- .../DeleteLayoutTests.cs | 23 ++-- .../EditLayoutTests.cs | 13 +-- .../LayoutHotkeysTests.cs | 13 +-- .../RunFancyZonesEditorTest.cs | 23 ++-- .../TemplateLayoutsTests.cs | 101 +++++++++--------- .../UIInitializationTests.cs | 43 ++++---- 12 files changed, 173 insertions(+), 194 deletions(-) diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/ApplyLayoutTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/ApplyLayoutTests.cs index fd3291eae737..600adc387169 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/ApplyLayoutTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/ApplyLayoutTests.cs @@ -8,6 +8,7 @@ using Microsoft.FancyZonesEditor.UnitTests.Utils; using Microsoft.VisualStudio.TestTools.UnitTesting; using OpenQA.Selenium; +using static FancyZonesEditorCommon.Data.Constants; using static Microsoft.FancyZonesEditor.UnitTests.Utils.FancyZonesEditorSession; namespace Microsoft.FancyZonesEditor.UITests @@ -82,16 +83,16 @@ public class ApplyLayoutTests { new LayoutTemplates.TemplateLayoutWrapper { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Empty], + Type = TemplateLayoutJsonTags[TemplateLayout.Empty], }, new LayoutTemplates.TemplateLayoutWrapper { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Focus], + Type = TemplateLayoutJsonTags[TemplateLayout.Focus], ZoneCount = 10, }, new LayoutTemplates.TemplateLayoutWrapper { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Rows], + Type = TemplateLayoutJsonTags[TemplateLayout.Rows], ZoneCount = 2, ShowSpacing = true, Spacing = 10, @@ -99,7 +100,7 @@ public class ApplyLayoutTests }, new LayoutTemplates.TemplateLayoutWrapper { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Columns], + Type = TemplateLayoutJsonTags[TemplateLayout.Columns], ZoneCount = 2, ShowSpacing = true, Spacing = 20, @@ -107,7 +108,7 @@ public class ApplyLayoutTests }, new LayoutTemplates.TemplateLayoutWrapper { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Grid], + Type = TemplateLayoutJsonTags[TemplateLayout.Grid], ZoneCount = 4, ShowSpacing = false, Spacing = 10, @@ -115,7 +116,7 @@ public class ApplyLayoutTests }, new LayoutTemplates.TemplateLayoutWrapper { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.PriorityGrid], + Type = TemplateLayoutJsonTags[TemplateLayout.PriorityGrid], ZoneCount = 3, ShowSpacing = true, Spacing = 1, @@ -161,7 +162,7 @@ public void TestInitialize() MonitorConfiguration = MonitorConfigurationTypeEnumExtensions.MonitorConfigurationTypeToString(MonitorConfigurationType.Horizontal), Layout = new DefaultLayouts.DefaultLayoutWrapper.LayoutWrapper { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Focus], + Type = TemplateLayoutJsonTags[TemplateLayout.Focus], ZoneCount = 4, ShowSpacing = true, Spacing = 5, @@ -228,8 +229,8 @@ public void ApplyCustomLayout() [TestMethod] public void ApplyTemplateLayout() { - var layoutType = Constants.TemplateLayouts.Columns; - var layout = Constants.TemplateLayoutNames[layoutType]; + var layoutType = TemplateLayout.Columns; + var layout = TestConstants.TemplateLayoutNames[layoutType]; Assert.IsFalse(_session?.GetLayout(layout)!.Selected); _session?.Click(_session?.GetLayout(layout)!); @@ -238,7 +239,7 @@ public void ApplyTemplateLayout() AppliedLayouts appliedLayouts = new AppliedLayouts(); var data = appliedLayouts.Read(appliedLayouts.File); Assert.AreEqual(Parameters.Monitors.Count, data.AppliedLayouts.Count); - Assert.AreEqual(Constants.TemplateLayoutTypes[layoutType], data.AppliedLayouts[0].AppliedLayout.Type); + Assert.AreEqual(TemplateLayoutJsonTags[layoutType], data.AppliedLayouts[0].AppliedLayout.Type); Assert.AreEqual(Parameters.Monitors[0].MonitorNumber, data.AppliedLayouts[0].Device.MonitorNumber); } @@ -246,8 +247,8 @@ public void ApplyTemplateLayout() public void ApplyLayoutsOnEachMonitor() { // apply the layout on the first monitor - var firstLayoutType = Constants.TemplateLayouts.Columns; - var firstLayoutName = Constants.TemplateLayoutNames[firstLayoutType]; + var firstLayoutType = TemplateLayout.Columns; + var firstLayoutName = TestConstants.TemplateLayoutNames[firstLayoutType]; _session?.Click(_session?.GetLayout(firstLayoutName)!); Assert.IsTrue(_session?.GetLayout(firstLayoutName)!.Selected); @@ -265,15 +266,15 @@ public void ApplyLayoutsOnEachMonitor() var appliedLayouts = new AppliedLayouts(); var data = appliedLayouts.Read(appliedLayouts.File); Assert.AreEqual(Parameters.Monitors.Count, data.AppliedLayouts.Count); - Assert.AreEqual(Constants.TemplateLayoutTypes[firstLayoutType], data.AppliedLayouts.Find(x => x.Device.MonitorNumber == 1).AppliedLayout.Type); + Assert.AreEqual(TemplateLayoutJsonTags[firstLayoutType], data.AppliedLayouts.Find(x => x.Device.MonitorNumber == 1).AppliedLayout.Type); Assert.AreEqual(secondLayout.Uuid, data.AppliedLayouts.Find(x => x.Device.MonitorNumber == 2).AppliedLayout.Uuid); } [TestMethod] public void ApplyTemplateWithDifferentParametersOnEachMonitor() { - var layoutType = Constants.TemplateLayouts.Columns; - var layoutName = Constants.TemplateLayoutNames[layoutType]; + var layoutType = TemplateLayout.Columns; + var layoutName = TestConstants.TemplateLayoutNames[layoutType]; // apply the layout on the first monitor, set parameters _session?.Click(_session?.GetLayout(layoutName)!); @@ -310,9 +311,9 @@ public void ApplyTemplateWithDifferentParametersOnEachMonitor() var appliedLayouts = new AppliedLayouts(); var data = appliedLayouts.Read(appliedLayouts.File); Assert.AreEqual(Parameters.Monitors.Count, data.AppliedLayouts.Count); - Assert.AreEqual(Constants.TemplateLayoutTypes[layoutType], data.AppliedLayouts.Find(x => x.Device.MonitorNumber == 1).AppliedLayout.Type); + Assert.AreEqual(TemplateLayoutJsonTags[layoutType], data.AppliedLayouts.Find(x => x.Device.MonitorNumber == 1).AppliedLayout.Type); Assert.AreEqual(expectedFirstLayoutZoneCount, data.AppliedLayouts.Find(x => x.Device.MonitorNumber == 1).AppliedLayout.ZoneCount); - Assert.AreEqual(Constants.TemplateLayoutTypes[layoutType], data.AppliedLayouts.Find(x => x.Device.MonitorNumber == 2).AppliedLayout.Type); + Assert.AreEqual(TemplateLayoutJsonTags[layoutType], data.AppliedLayouts.Find(x => x.Device.MonitorNumber == 2).AppliedLayout.Type); Assert.AreEqual(expectedSecondLayoutZoneCount, data.AppliedLayouts.Find(x => x.Device.MonitorNumber == 2).AppliedLayout.ZoneCount); } } diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/Constants.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/Constants.cs index 81f810561b5e..9e5211e92707 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/Constants.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/Constants.cs @@ -8,38 +8,6 @@ namespace Microsoft.FancyZonesEditor.UITests { public static class Constants { - public enum TemplateLayouts - { - Empty, - Focus, - Columns, - Rows, - Grid, - PriorityGrid, - } - - public static readonly Dictionary TemplateLayoutNames = new Dictionary() - { - { TemplateLayouts.Empty, "No layout" }, - { TemplateLayouts.Focus, "Focus" }, - { TemplateLayouts.Columns, "Columns" }, - { TemplateLayouts.Rows, "Rows" }, - { TemplateLayouts.Grid, "Grid" }, - { TemplateLayouts.PriorityGrid, "Priority Grid" }, - }; - - public static readonly Dictionary TemplateLayoutTypes = new Dictionary() - { - { TemplateLayouts.Empty, "blank" }, - { TemplateLayouts.Focus, "focus" }, - { TemplateLayouts.Columns, "columns" }, - { TemplateLayouts.Rows, "rows" }, - { TemplateLayouts.Grid, "grid" }, - { TemplateLayouts.PriorityGrid, "priority-grid" }, - }; - - public static readonly string CustomLayoutTypeString = "custom"; - public enum CustomLayoutType { Canvas, diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/CopyLayoutTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/CopyLayoutTests.cs index db63b2d578de..f6c9d677110c 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/CopyLayoutTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/CopyLayoutTests.cs @@ -6,6 +6,7 @@ using FancyZonesEditorCommon.Data; using Microsoft.FancyZonesEditor.UnitTests.Utils; using Microsoft.VisualStudio.TestTools.UnitTesting; +using static FancyZonesEditorCommon.Data.Constants; using static FancyZonesEditorCommon.Data.EditorParameters; using static Microsoft.FancyZonesEditor.UnitTests.Utils.FancyZonesEditorSession; @@ -121,16 +122,16 @@ public void TestInitialize() { new LayoutTemplates.TemplateLayoutWrapper { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Empty], + Type = TemplateLayoutJsonTags[TemplateLayout.Empty], }, new LayoutTemplates.TemplateLayoutWrapper { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Focus], + Type = TemplateLayoutJsonTags[TemplateLayout.Focus], ZoneCount = 10, }, new LayoutTemplates.TemplateLayoutWrapper { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Rows], + Type = TemplateLayoutJsonTags[TemplateLayout.Rows], ZoneCount = 2, ShowSpacing = true, Spacing = 10, @@ -138,7 +139,7 @@ public void TestInitialize() }, new LayoutTemplates.TemplateLayoutWrapper { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Columns], + Type = TemplateLayoutJsonTags[TemplateLayout.Columns], ZoneCount = 2, ShowSpacing = true, Spacing = 20, @@ -146,7 +147,7 @@ public void TestInitialize() }, new LayoutTemplates.TemplateLayoutWrapper { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Grid], + Type = TemplateLayoutJsonTags[TemplateLayout.Grid], ZoneCount = 4, ShowSpacing = false, Spacing = 10, @@ -154,7 +155,7 @@ public void TestInitialize() }, new LayoutTemplates.TemplateLayoutWrapper { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.PriorityGrid], + Type = TemplateLayoutJsonTags[TemplateLayout.PriorityGrid], ZoneCount = 3, ShowSpacing = true, Spacing = 1, @@ -190,8 +191,8 @@ public void TestCleanup() [TestMethod] public void CopyTemplate_FromEditLayoutWindow() { - string copiedLayoutName = Constants.TemplateLayoutNames[Constants.TemplateLayouts.Focus] + " (1)"; - _session?.ClickEditLayout(Constants.TemplateLayoutNames[Constants.TemplateLayouts.Focus]); + string copiedLayoutName = TestConstants.TemplateLayoutNames[TemplateLayout.Focus] + " (1)"; + _session?.ClickEditLayout(TestConstants.TemplateLayoutNames[TemplateLayout.Focus]); _session?.ClickCopyLayout(); // verify the layout is copied @@ -207,8 +208,8 @@ public void CopyTemplate_FromEditLayoutWindow() [TestMethod] public void CopyTemplate_FromContextMenu() { - string copiedLayoutName = Constants.TemplateLayoutNames[Constants.TemplateLayouts.Rows] + " (1)"; - _session?.ClickContextMenuItem(Constants.TemplateLayoutNames[Constants.TemplateLayouts.Rows], ElementName.CreateCustomLayout); + string copiedLayoutName = TestConstants.TemplateLayoutNames[TemplateLayout.Rows] + " (1)"; + _session?.ClickContextMenuItem(TestConstants.TemplateLayoutNames[TemplateLayout.Rows], ElementName.CreateCustomLayout); // verify the layout is copied _session?.WaitElementDisplayedByName(copiedLayoutName); @@ -224,8 +225,8 @@ public void CopyTemplate_FromContextMenu() [TestMethod] public void CopyTemplate_DefaultLayout() { - string copiedLayoutName = Constants.TemplateLayoutNames[Constants.TemplateLayouts.PriorityGrid] + " (1)"; - _session?.ClickEditLayout(Constants.TemplateLayoutNames[Constants.TemplateLayouts.PriorityGrid]); + string copiedLayoutName = TestConstants.TemplateLayoutNames[TemplateLayout.PriorityGrid] + " (1)"; + _session?.ClickEditLayout(TestConstants.TemplateLayoutNames[TemplateLayout.PriorityGrid]); _session?.ClickCopyLayout(); // verify the layout is copied @@ -238,7 +239,7 @@ public void CopyTemplate_DefaultLayout() Assert.AreEqual(CustomLayouts.CustomLayouts.Count + 1, data.CustomLayouts.Count); // verify the default layout wasn't changed - _session?.ClickEditLayout(Constants.TemplateLayoutNames[Constants.TemplateLayouts.PriorityGrid]); + _session?.ClickEditLayout(TestConstants.TemplateLayoutNames[TemplateLayout.PriorityGrid]); var horizontalDefaultButton = _session?.GetHorizontalDefaultButton(true); Assert.IsNotNull(horizontalDefaultButton); _session?.Click(ElementName.Cancel); diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/CreateLayoutTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/CreateLayoutTests.cs index 047ae7209bde..525a16f6ba7f 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/CreateLayoutTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/CreateLayoutTests.cs @@ -6,6 +6,7 @@ using FancyZonesEditorCommon.Data; using Microsoft.FancyZonesEditor.UnitTests.Utils; using Microsoft.VisualStudio.TestTools.UnitTesting; +using static FancyZonesEditorCommon.Data.Constants; using static Microsoft.FancyZonesEditor.UnitTests.Utils.FancyZonesEditorSession; namespace Microsoft.FancyZonesEditor.UITests @@ -66,16 +67,16 @@ public void TestInitialize() { new LayoutTemplates.TemplateLayoutWrapper { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Empty], + Type = TemplateLayoutJsonTags[TemplateLayout.Empty], }, new LayoutTemplates.TemplateLayoutWrapper { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Focus], + Type = TemplateLayoutJsonTags[TemplateLayout.Focus], ZoneCount = 10, }, new LayoutTemplates.TemplateLayoutWrapper { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Rows], + Type = TemplateLayoutJsonTags[TemplateLayout.Rows], ZoneCount = 2, ShowSpacing = true, Spacing = 10, @@ -83,7 +84,7 @@ public void TestInitialize() }, new LayoutTemplates.TemplateLayoutWrapper { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Columns], + Type = TemplateLayoutJsonTags[TemplateLayout.Columns], ZoneCount = 2, ShowSpacing = true, Spacing = 20, @@ -91,7 +92,7 @@ public void TestInitialize() }, new LayoutTemplates.TemplateLayoutWrapper { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Grid], + Type = TemplateLayoutJsonTags[TemplateLayout.Grid], ZoneCount = 4, ShowSpacing = false, Spacing = 10, @@ -99,7 +100,7 @@ public void TestInitialize() }, new LayoutTemplates.TemplateLayoutWrapper { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.PriorityGrid], + Type = TemplateLayoutJsonTags[TemplateLayout.PriorityGrid], ZoneCount = 3, ShowSpacing = true, Spacing = 1, diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs index c42837e2195a..f751bbe815fb 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs @@ -7,6 +7,7 @@ using Microsoft.FancyZonesEditor.UnitTests.Utils; using Microsoft.VisualStudio.TestTools.UnitTesting; using OpenQA.Selenium; +using static FancyZonesEditorCommon.Data.Constants; using static FancyZonesEditorCommon.Data.CustomLayouts; using static FancyZonesEditorCommon.Data.EditorParameters; using static Microsoft.FancyZonesEditor.UnitTests.Utils.FancyZonesEditorSession; @@ -148,16 +149,16 @@ public void TestInitialize() { new LayoutTemplates.TemplateLayoutWrapper { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Empty], + Type = TemplateLayoutJsonTags[TemplateLayout.Empty], }, new LayoutTemplates.TemplateLayoutWrapper { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Focus], + Type = TemplateLayoutJsonTags[TemplateLayout.Focus], ZoneCount = 10, }, new LayoutTemplates.TemplateLayoutWrapper { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Rows], + Type = TemplateLayoutJsonTags[TemplateLayout.Rows], ZoneCount = 2, ShowSpacing = true, Spacing = 10, @@ -165,7 +166,7 @@ public void TestInitialize() }, new LayoutTemplates.TemplateLayoutWrapper { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Columns], + Type = TemplateLayoutJsonTags[TemplateLayout.Columns], ZoneCount = 2, ShowSpacing = true, Spacing = 20, @@ -173,7 +174,7 @@ public void TestInitialize() }, new LayoutTemplates.TemplateLayoutWrapper { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Grid], + Type = TemplateLayoutJsonTags[TemplateLayout.Grid], ZoneCount = 4, ShowSpacing = false, Spacing = 10, @@ -181,7 +182,7 @@ public void TestInitialize() }, new LayoutTemplates.TemplateLayoutWrapper { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.PriorityGrid], + Type = TemplateLayoutJsonTags[TemplateLayout.PriorityGrid], ZoneCount = 3, ShowSpacing = true, Spacing = 1, diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/DefaultLayoutsTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/DefaultLayoutsTests.cs index d5028b51bd7f..3ab0241563da 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/DefaultLayoutsTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/DefaultLayoutsTests.cs @@ -6,6 +6,7 @@ using FancyZonesEditorCommon.Data; using Microsoft.FancyZonesEditor.UnitTests.Utils; using Microsoft.VisualStudio.TestTools.UnitTesting; +using static FancyZonesEditorCommon.Data.Constants; using static FancyZonesEditorCommon.Data.CustomLayouts; using static FancyZonesEditorCommon.Data.DefaultLayouts; using static FancyZonesEditorCommon.Data.EditorParameters; @@ -87,7 +88,7 @@ public class DefaultLayoutsTests MonitorConfiguration = Horizontal, Layout = new DefaultLayoutWrapper.LayoutWrapper { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Grid], + Type = TemplateLayoutJsonTags[TemplateLayout.Grid], ZoneCount = 4, ShowSpacing = true, Spacing = 5, @@ -184,16 +185,16 @@ public void TestInitialize() { new LayoutTemplates.TemplateLayoutWrapper { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Empty], + Type = TemplateLayoutJsonTags[TemplateLayout.Empty], }, new LayoutTemplates.TemplateLayoutWrapper { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Focus], + Type = TemplateLayoutJsonTags[TemplateLayout.Focus], ZoneCount = 10, }, new LayoutTemplates.TemplateLayoutWrapper { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Rows], + Type = TemplateLayoutJsonTags[TemplateLayout.Rows], ZoneCount = 2, ShowSpacing = true, Spacing = 10, @@ -201,7 +202,7 @@ public void TestInitialize() }, new LayoutTemplates.TemplateLayoutWrapper { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Columns], + Type = TemplateLayoutJsonTags[TemplateLayout.Columns], ZoneCount = 2, ShowSpacing = true, Spacing = 20, @@ -209,7 +210,7 @@ public void TestInitialize() }, new LayoutTemplates.TemplateLayoutWrapper { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Grid], + Type = TemplateLayoutJsonTags[TemplateLayout.Grid], ZoneCount = 4, ShowSpacing = false, Spacing = 10, @@ -217,7 +218,7 @@ public void TestInitialize() }, new LayoutTemplates.TemplateLayoutWrapper { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.PriorityGrid], + Type = TemplateLayoutJsonTags[TemplateLayout.PriorityGrid], ZoneCount = 3, ShowSpacing = true, Spacing = 1, @@ -254,7 +255,7 @@ public void TestCleanup() [TestMethod] public void Initialize() { - CheckTemplateLayouts(Constants.TemplateLayouts.Grid, null); + CheckTemplateLayouts(TemplateLayout.Grid, null); CheckCustomLayouts(string.Empty, CustomLayouts.CustomLayouts[0].Uuid); } @@ -262,7 +263,7 @@ public void Initialize() public void Assign_Cancel() { // assign Focus as a default horizontal and vertical layout - _session?.ClickEditLayout(Constants.TemplateLayoutNames[Constants.TemplateLayouts.Focus]); + _session?.ClickEditLayout(TestConstants.TemplateLayoutNames[TemplateLayout.Focus]); var horizontalDefaultButton = _session?.GetHorizontalDefaultButton(false); horizontalDefaultButton?.Click(); var verticalDefaultButton = _session?.GetVerticalDefaultButton(false); @@ -273,7 +274,7 @@ public void Assign_Cancel() _session?.WaitUntilHidden(horizontalDefaultButton!); // check that default layouts weren't changed - CheckTemplateLayouts(Constants.TemplateLayouts.Grid, null); + CheckTemplateLayouts(TemplateLayout.Grid, null); CheckCustomLayouts(string.Empty, CustomLayouts.CustomLayouts[0].Uuid); } @@ -281,7 +282,7 @@ public void Assign_Cancel() public void Assign_Save() { // assign Focus as a default horizontal and vertical layout - _session?.ClickEditLayout(Constants.TemplateLayoutNames[Constants.TemplateLayouts.Focus]); + _session?.ClickEditLayout(TestConstants.TemplateLayoutNames[TemplateLayout.Focus]); var horizontalDefaultButton = _session?.GetHorizontalDefaultButton(false); horizontalDefaultButton?.Click(); var verticalDefaultButton = _session?.GetVerticalDefaultButton(false); @@ -292,15 +293,15 @@ public void Assign_Save() _session?.WaitUntilHidden(horizontalDefaultButton!); // check that default layout was changed - CheckTemplateLayouts(Constants.TemplateLayouts.Focus, Constants.TemplateLayouts.Focus); + CheckTemplateLayouts(TemplateLayout.Focus, TemplateLayout.Focus); CheckCustomLayouts(string.Empty, string.Empty); } - private void CheckTemplateLayouts(Constants.TemplateLayouts? horizontalDefault, Constants.TemplateLayouts? verticalDefault) + private void CheckTemplateLayouts(TemplateLayout? horizontalDefault, TemplateLayout? verticalDefault) { - foreach (var (key, name) in Constants.TemplateLayoutNames) + foreach (var (key, name) in TestConstants.TemplateLayoutNames) { - if (key == Constants.TemplateLayouts.Empty) + if (key == TemplateLayout.Empty) { continue; } diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/DeleteLayoutTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/DeleteLayoutTests.cs index 33efb84b9703..67acb1a0af64 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/DeleteLayoutTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/DeleteLayoutTests.cs @@ -6,6 +6,7 @@ using FancyZonesEditorCommon.Data; using Microsoft.FancyZonesEditor.UnitTests.Utils; using Microsoft.VisualStudio.TestTools.UnitTesting; +using static FancyZonesEditorCommon.Data.Constants; using static FancyZonesEditorCommon.Data.CustomLayouts; using static FancyZonesEditorCommon.Data.DefaultLayouts; using static FancyZonesEditorCommon.Data.EditorParameters; @@ -86,7 +87,7 @@ public class DeleteLayoutTests MonitorConfiguration = MonitorConfigurationTypeEnumExtensions.MonitorConfigurationTypeToString(MonitorConfigurationType.Horizontal), Layout = new DefaultLayoutWrapper.LayoutWrapper { - Type = Constants.CustomLayoutTypeString, + Type = CustomLayoutJsonTag, Uuid = CustomLayouts.CustomLayouts[1].Uuid, }, }, @@ -161,16 +162,16 @@ public void TestInitialize() { new LayoutTemplates.TemplateLayoutWrapper { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Empty], + Type = TemplateLayoutJsonTags[TemplateLayout.Empty], }, new LayoutTemplates.TemplateLayoutWrapper { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Focus], + Type = TemplateLayoutJsonTags[TemplateLayout.Focus], ZoneCount = 10, }, new LayoutTemplates.TemplateLayoutWrapper { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Rows], + Type = TemplateLayoutJsonTags[TemplateLayout.Rows], ZoneCount = 2, ShowSpacing = true, Spacing = 10, @@ -178,7 +179,7 @@ public void TestInitialize() }, new LayoutTemplates.TemplateLayoutWrapper { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Columns], + Type = TemplateLayoutJsonTags[TemplateLayout.Columns], ZoneCount = 2, ShowSpacing = true, Spacing = 20, @@ -186,7 +187,7 @@ public void TestInitialize() }, new LayoutTemplates.TemplateLayoutWrapper { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Grid], + Type = TemplateLayoutJsonTags[TemplateLayout.Grid], ZoneCount = 4, ShowSpacing = false, Spacing = 10, @@ -194,7 +195,7 @@ public void TestInitialize() }, new LayoutTemplates.TemplateLayoutWrapper { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.PriorityGrid], + Type = TemplateLayoutJsonTags[TemplateLayout.PriorityGrid], ZoneCount = 3, ShowSpacing = true, Spacing = 1, @@ -260,7 +261,7 @@ public void DeleteAppliedLayout() Assert.IsNull(_session?.GetLayout(deletedLayout)); // verify the empty layout is selected - Assert.IsTrue(_session?.GetLayout(Constants.TemplateLayoutNames[Constants.TemplateLayouts.Empty])!.Selected); + Assert.IsTrue(_session?.GetLayout(TestConstants.TemplateLayoutNames[TemplateLayout.Empty])!.Selected); // check the file var customLayouts = new CustomLayouts(); @@ -270,7 +271,7 @@ public void DeleteAppliedLayout() var appliedLayouts = new AppliedLayouts(); var appliedLayoutsData = appliedLayouts.Read(appliedLayouts.File); - Assert.AreEqual(Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Empty], appliedLayoutsData.AppliedLayouts.Find(x => x.Device.Monitor == Parameters.Monitors[0].Monitor).AppliedLayout.Type); + Assert.AreEqual(TemplateLayoutJsonTags[TemplateLayout.Empty], appliedLayoutsData.AppliedLayouts.Find(x => x.Device.Monitor == Parameters.Monitors[0].Monitor).AppliedLayout.Type); } [TestMethod] @@ -319,7 +320,7 @@ public void DeleteDefaultLayout() _session?.WaitFor(1); // verify the default layout is reset to the "default" default - _session?.ClickEditLayout(Constants.TemplateLayoutNames[Constants.TemplateLayouts.PriorityGrid]); + _session?.ClickEditLayout(TestConstants.TemplateLayoutNames[TemplateLayout.PriorityGrid]); Assert.IsNotNull(_session?.GetHorizontalDefaultButton(true)); _session?.Click(ElementName.Cancel); @@ -327,7 +328,7 @@ public void DeleteDefaultLayout() var defaultLayouts = new DefaultLayouts(); var data = defaultLayouts.Read(defaultLayouts.File); string configuration = MonitorConfigurationTypeEnumExtensions.MonitorConfigurationTypeToString(MonitorConfigurationType.Horizontal); - Assert.AreEqual(Constants.TemplateLayoutTypes[Constants.TemplateLayouts.PriorityGrid], data.DefaultLayouts.Find(x => x.MonitorConfiguration == configuration).Layout.Type); + Assert.AreEqual(TemplateLayoutJsonTags[TemplateLayout.PriorityGrid], data.DefaultLayouts.Find(x => x.MonitorConfiguration == configuration).Layout.Type); } [TestMethod] diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/EditLayoutTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/EditLayoutTests.cs index 19466242a57d..a119c6e5940f 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/EditLayoutTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/EditLayoutTests.cs @@ -8,6 +8,7 @@ using Microsoft.FancyZonesEditor.UnitTests.Utils; using Microsoft.VisualStudio.TestTools.UnitTesting; using OpenQA.Selenium.Appium.Windows; +using static FancyZonesEditorCommon.Data.Constants; using static FancyZonesEditorCommon.Data.CustomLayouts; using static Microsoft.FancyZonesEditor.UnitTests.Utils.FancyZonesEditorSession; @@ -118,16 +119,16 @@ public void TestInitialize() { new LayoutTemplates.TemplateLayoutWrapper { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Empty], + Type = TemplateLayoutJsonTags[TemplateLayout.Empty], }, new LayoutTemplates.TemplateLayoutWrapper { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Focus], + Type = TemplateLayoutJsonTags[TemplateLayout.Focus], ZoneCount = 10, }, new LayoutTemplates.TemplateLayoutWrapper { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Rows], + Type = TemplateLayoutJsonTags[TemplateLayout.Rows], ZoneCount = 2, ShowSpacing = true, Spacing = 10, @@ -135,7 +136,7 @@ public void TestInitialize() }, new LayoutTemplates.TemplateLayoutWrapper { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Columns], + Type = TemplateLayoutJsonTags[TemplateLayout.Columns], ZoneCount = 2, ShowSpacing = true, Spacing = 20, @@ -143,7 +144,7 @@ public void TestInitialize() }, new LayoutTemplates.TemplateLayoutWrapper { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Grid], + Type = TemplateLayoutJsonTags[TemplateLayout.Grid], ZoneCount = 4, ShowSpacing = false, Spacing = 10, @@ -151,7 +152,7 @@ public void TestInitialize() }, new LayoutTemplates.TemplateLayoutWrapper { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.PriorityGrid], + Type = TemplateLayoutJsonTags[TemplateLayout.PriorityGrid], ZoneCount = 3, ShowSpacing = true, Spacing = 1, diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/LayoutHotkeysTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/LayoutHotkeysTests.cs index e5456a3bb436..260be6c6ea0a 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/LayoutHotkeysTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/LayoutHotkeysTests.cs @@ -9,6 +9,7 @@ using FancyZonesEditorCommon.Data; using Microsoft.FancyZonesEditor.UnitTests.Utils; using Microsoft.VisualStudio.TestTools.UnitTesting; +using static FancyZonesEditorCommon.Data.Constants; using static FancyZonesEditorCommon.Data.CustomLayouts; using static FancyZonesEditorCommon.Data.EditorParameters; using static FancyZonesEditorCommon.Data.LayoutHotkeys; @@ -244,16 +245,16 @@ public void TestInitialize() { new LayoutTemplates.TemplateLayoutWrapper { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Empty], + Type = TemplateLayoutJsonTags[TemplateLayout.Empty], }, new LayoutTemplates.TemplateLayoutWrapper { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Focus], + Type = TemplateLayoutJsonTags[TemplateLayout.Focus], ZoneCount = 10, }, new LayoutTemplates.TemplateLayoutWrapper { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Rows], + Type = TemplateLayoutJsonTags[TemplateLayout.Rows], ZoneCount = 2, ShowSpacing = true, Spacing = 10, @@ -261,7 +262,7 @@ public void TestInitialize() }, new LayoutTemplates.TemplateLayoutWrapper { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Columns], + Type = TemplateLayoutJsonTags[TemplateLayout.Columns], ZoneCount = 2, ShowSpacing = true, Spacing = 20, @@ -269,7 +270,7 @@ public void TestInitialize() }, new LayoutTemplates.TemplateLayoutWrapper { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Grid], + Type = TemplateLayoutJsonTags[TemplateLayout.Grid], ZoneCount = 4, ShowSpacing = false, Spacing = 10, @@ -277,7 +278,7 @@ public void TestInitialize() }, new LayoutTemplates.TemplateLayoutWrapper { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.PriorityGrid], + Type = TemplateLayoutJsonTags[TemplateLayout.PriorityGrid], ZoneCount = 3, ShowSpacing = true, Spacing = 1, diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/RunFancyZonesEditorTest.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/RunFancyZonesEditorTest.cs index 0a89956c1a0f..73ed465dad26 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/RunFancyZonesEditorTest.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/RunFancyZonesEditorTest.cs @@ -6,6 +6,7 @@ using FancyZonesEditorCommon.Data; using Microsoft.FancyZonesEditor.UnitTests.Utils; using Microsoft.VisualStudio.TestTools.UnitTesting; +using static FancyZonesEditorCommon.Data.Constants; using static Microsoft.FancyZonesEditor.UnitTests.Utils.FancyZonesEditorSession; namespace Microsoft.FancyZonesEditor.UITests @@ -72,16 +73,16 @@ public static void ClassInitialize(TestContext testContext) { new LayoutTemplates.TemplateLayoutWrapper { - Type = Constants.TemplateLayoutJsonTags[Constants.TemplateLayout.Empty], + Type = TemplateLayoutJsonTags[TemplateLayout.Empty], }, new LayoutTemplates.TemplateLayoutWrapper { - Type = Constants.TemplateLayoutJsonTags[Constants.TemplateLayout.Focus], + Type = TemplateLayoutJsonTags[TemplateLayout.Focus], ZoneCount = 10, }, new LayoutTemplates.TemplateLayoutWrapper { - Type = Constants.TemplateLayoutJsonTags[Constants.TemplateLayout.Rows], + Type = TemplateLayoutJsonTags[TemplateLayout.Rows], ZoneCount = 2, ShowSpacing = true, Spacing = 10, @@ -89,7 +90,7 @@ public static void ClassInitialize(TestContext testContext) }, new LayoutTemplates.TemplateLayoutWrapper { - Type = Constants.TemplateLayoutJsonTags[Constants.TemplateLayout.Columns], + Type = TemplateLayoutJsonTags[TemplateLayout.Columns], ZoneCount = 2, ShowSpacing = true, Spacing = 20, @@ -97,7 +98,7 @@ public static void ClassInitialize(TestContext testContext) }, new LayoutTemplates.TemplateLayoutWrapper { - Type = Constants.TemplateLayoutJsonTags[Constants.TemplateLayout.Grid], + Type = TemplateLayoutJsonTags[TemplateLayout.Grid], ZoneCount = 4, ShowSpacing = false, Spacing = 10, @@ -105,7 +106,7 @@ public static void ClassInitialize(TestContext testContext) }, new LayoutTemplates.TemplateLayoutWrapper { - Type = Constants.TemplateLayoutJsonTags[Constants.TemplateLayout.PriorityGrid], + Type = TemplateLayoutJsonTags[TemplateLayout.PriorityGrid], ZoneCount = 3, ShowSpacing = true, Spacing = 1, @@ -188,18 +189,18 @@ public void TestCleanup() [TestMethod] public void OpenEditLayoutDialog() // verify the edit layout dialog is opened { - _session?.ClickEditLayout(Constants.TemplateLayoutNames[Constants.TemplateLayouts.Grid]); + _session?.ClickEditLayout(TestConstants.TemplateLayoutNames[TemplateLayout.Grid]); Assert.IsNotNull(_session?.FindByAccessibilityId(FancyZonesEditorSession.AccessibilityId.DialogTitle)); // check the pane header - Assert.IsNotNull(_session?.FindByName($"Edit '{Constants.TemplateLayoutNames[Constants.TemplateLayouts.Grid]}'")); // verify it's opened for the correct layout + Assert.IsNotNull(_session?.FindByName($"Edit '{TestConstants.TemplateLayoutNames[TemplateLayout.Grid]}'")); // verify it's opened for the correct layout } [TestMethod] public void OpenEditLayoutDialog_ByContextMenu_TemplateLayout() // verify the edit layout dialog is opened { - _session?.ClickContextMenuItem(Constants.TemplateLayoutNames[Constants.TemplateLayouts.Grid], FancyZonesEditorSession.ElementName.Edit); + _session?.ClickContextMenuItem(TestConstants.TemplateLayoutNames[TemplateLayout.Grid], FancyZonesEditorSession.ElementName.Edit); _session?.WaitElementDisplayedById(FancyZonesEditorSession.AccessibilityId.DialogTitle); Assert.IsNotNull(_session?.FindByAccessibilityId(FancyZonesEditorSession.AccessibilityId.DialogTitle)); // check the pane header - Assert.IsNotNull(_session?.FindByName($"Edit '{Constants.TemplateLayoutNames[Constants.TemplateLayouts.Grid]}'")); // verify it's opened for the correct layout + Assert.IsNotNull(_session?.FindByName($"Edit '{TestConstants.TemplateLayoutNames[TemplateLayout.Grid]}'")); // verify it's opened for the correct layout } [TestMethod] @@ -215,7 +216,7 @@ public void OpenEditLayoutDialog_ByContextMenu_CustomLayout() // verify the edit [TestMethod] public void OpenContextMenu() // verify the context menu is opened { - Assert.IsNotNull(_session?.OpenContextMenu(TestConstants.TemplateLayoutNames[Constants.TemplateLayout.Columns])); + Assert.IsNotNull(_session?.OpenContextMenu(TestConstants.TemplateLayoutNames[TemplateLayout.Columns])); } [TestMethod] diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs index 7fd627c1e57b..e99194acf69d 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs @@ -8,6 +8,7 @@ using Microsoft.VisualStudio.TestTools.UnitTesting; using OpenQA.Selenium; using static FancyZonesEditorCommon.Data.AppliedLayouts; +using static FancyZonesEditorCommon.Data.Constants; using static FancyZonesEditorCommon.Data.DefaultLayouts; using static FancyZonesEditorCommon.Data.EditorParameters; using static FancyZonesEditorCommon.Data.LayoutTemplates; @@ -24,16 +25,16 @@ public class TemplateLayoutsTests { new TemplateLayoutWrapper { - Type = Constants.TemplateLayoutJsonTags[Constants.TemplateLayout.Empty], + Type = TemplateLayoutJsonTags[TemplateLayout.Empty], }, new TemplateLayoutWrapper { - Type = Constants.TemplateLayoutJsonTags[Constants.TemplateLayout.Focus], + Type = TemplateLayoutJsonTags[TemplateLayout.Focus], ZoneCount = 10, }, new TemplateLayoutWrapper { - Type = Constants.TemplateLayoutJsonTags[Constants.TemplateLayout.Rows], + Type = TemplateLayoutJsonTags[TemplateLayout.Rows], ZoneCount = 2, ShowSpacing = true, Spacing = 10, @@ -41,7 +42,7 @@ public class TemplateLayoutsTests }, new TemplateLayoutWrapper { - Type = Constants.TemplateLayoutJsonTags[Constants.TemplateLayout.Columns], + Type = TemplateLayoutJsonTags[TemplateLayout.Columns], ZoneCount = 2, ShowSpacing = true, Spacing = 20, @@ -49,7 +50,7 @@ public class TemplateLayoutsTests }, new TemplateLayoutWrapper { - Type = Constants.TemplateLayoutJsonTags[Constants.TemplateLayout.Grid], + Type = TemplateLayoutJsonTags[TemplateLayout.Grid], ZoneCount = 4, ShowSpacing = false, Spacing = 10, @@ -57,7 +58,7 @@ public class TemplateLayoutsTests }, new TemplateLayoutWrapper { - Type = Constants.TemplateLayoutJsonTags[Constants.TemplateLayout.PriorityGrid], + Type = TemplateLayoutJsonTags[TemplateLayout.PriorityGrid], ZoneCount = 3, ShowSpacing = true, Spacing = 1, @@ -99,7 +100,7 @@ public void TestInitialize() MonitorConfiguration = MonitorConfigurationTypeEnumExtensions.MonitorConfigurationTypeToString(MonitorConfigurationType.Vertical), Layout = new DefaultLayoutWrapper.LayoutWrapper { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Rows], + Type = TemplateLayoutJsonTags[TemplateLayout.Rows], ZoneCount = 2, ShowSpacing = true, Spacing = 10, @@ -111,7 +112,7 @@ public void TestInitialize() MonitorConfiguration = MonitorConfigurationTypeEnumExtensions.MonitorConfigurationTypeToString(MonitorConfigurationType.Horizontal), Layout = new DefaultLayoutWrapper.LayoutWrapper { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.PriorityGrid], + Type = TemplateLayoutJsonTags[TemplateLayout.PriorityGrid], ZoneCount = 3, ShowSpacing = true, Spacing = 1, @@ -168,7 +169,7 @@ public void TestInitialize() AppliedLayout = new AppliedLayoutWrapper.LayoutWrapper { Uuid = "{72409DFC-2B87-469B-AAC4-557273791C26}", - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.PriorityGrid], + Type = TemplateLayoutJsonTags[TemplateLayout.PriorityGrid], ZoneCount = 3, ShowSpacing = true, Spacing = 1, @@ -208,7 +209,7 @@ public void ZoneNumber_Initialize() { foreach (var (key, name) in TestConstants.TemplateLayoutNames) { - if (key == Constants.TemplateLayout.Empty) + if (key == TemplateLayout.Empty) { continue; } @@ -217,7 +218,7 @@ public void ZoneNumber_Initialize() var slider = _session?.FindByAccessibilityId(AccessibilityId.TemplateZoneSlider); Assert.IsNotNull(slider); - var expected = Layouts.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutTypes[key]).ZoneCount; + var expected = Layouts.LayoutTemplates.Find(x => x.Type == TemplateLayoutJsonTags[key]).ZoneCount; Assert.AreEqual($"{expected}", slider.Text); _session?.Click(ElementName.Cancel); @@ -228,11 +229,11 @@ public void ZoneNumber_Initialize() [TestMethod] public void ZoneNumber_Save() { - var type = Constants.TemplateLayouts.Columns; - var layout = Layouts.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutTypes[type]); + var type = TemplateLayout.Columns; + var layout = Layouts.LayoutTemplates.Find(x => x.Type == TemplateLayoutJsonTags[type]); var value = layout.ZoneCount; var expected = value - 1; - _session?.ClickEditLayout(Constants.TemplateLayoutNames[type]); + _session?.ClickEditLayout(TestConstants.TemplateLayoutNames[type]); var slider = _session?.FindByAccessibilityId(AccessibilityId.TemplateZoneSlider); Assert.IsNotNull(slider); @@ -245,17 +246,17 @@ public void ZoneNumber_Save() // verify the file var templateLayouts = new LayoutTemplates(); var data = templateLayouts.Read(templateLayouts.File); - var actual = data.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutTypes[type]).ZoneCount; + var actual = data.LayoutTemplates.Find(x => x.Type == TemplateLayoutJsonTags[type]).ZoneCount; Assert.AreEqual(expected, actual); } [TestMethod] public void ZoneNumber_Cancel() { - var type = Constants.TemplateLayouts.Rows; - var layout = Layouts.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutTypes[type]); + var type = TemplateLayout.Rows; + var layout = Layouts.LayoutTemplates.Find(x => x.Type == TemplateLayoutJsonTags[type]); var expected = layout.ZoneCount; - _session?.ClickEditLayout(Constants.TemplateLayoutNames[type]); + _session?.ClickEditLayout(TestConstants.TemplateLayoutNames[type]); var slider = _session?.FindByAccessibilityId(AccessibilityId.TemplateZoneSlider); Assert.IsNotNull(slider); @@ -267,16 +268,16 @@ public void ZoneNumber_Cancel() // verify the file var templateLayouts = new LayoutTemplates(); var data = templateLayouts.Read(templateLayouts.File); - var actual = data.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutTypes[type]).ZoneCount; + var actual = data.LayoutTemplates.Find(x => x.Type == TemplateLayoutJsonTags[type]).ZoneCount; Assert.AreEqual(expected, actual); } [TestMethod] public void HighlightDistance_Initialize() { - foreach (var (key, name) in Constants.TemplateLayoutNames) + foreach (var (key, name) in TestConstants.TemplateLayoutNames) { - if (key == Constants.TemplateLayout.Empty) + if (key == TemplateLayout.Empty) { continue; } @@ -285,7 +286,7 @@ public void HighlightDistance_Initialize() var slider = _session?.FindByAccessibilityId(AccessibilityId.SensitivitySlider); Assert.IsNotNull(slider); - var expected = Layouts.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutTypes[key]).SensitivityRadius; + var expected = Layouts.LayoutTemplates.Find(x => x.Type == TemplateLayoutJsonTags[key]).SensitivityRadius; Assert.AreEqual($"{expected}", slider.Text); _session?.Click(ElementName.Cancel); @@ -296,10 +297,10 @@ public void HighlightDistance_Initialize() [TestMethod] public void HighlightDistance_Save() { - var type = Constants.TemplateLayouts.Focus; - var layout = Layouts.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutTypes[type]); + var type = TemplateLayout.Focus; + var layout = Layouts.LayoutTemplates.Find(x => x.Type == TemplateLayoutJsonTags[type]); var value = layout.SensitivityRadius; - _session?.ClickEditLayout(Constants.TemplateLayoutNames[type]); + _session?.ClickEditLayout(TestConstants.TemplateLayoutNames[type]); var slider = _session?.FindByAccessibilityId(AccessibilityId.SensitivitySlider); Assert.IsNotNull(slider); @@ -314,17 +315,17 @@ public void HighlightDistance_Save() // verify the file var templateLayouts = new LayoutTemplates(); var data = templateLayouts.Read(templateLayouts.File); - var actual = data.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutTypes[type]).SensitivityRadius; + var actual = data.LayoutTemplates.Find(x => x.Type == TemplateLayoutJsonTags[type]).SensitivityRadius; Assert.AreEqual(expected, actual); } [TestMethod] public void HighlightDistance_Cancel() { - var type = Constants.TemplateLayouts.Focus; - var layout = Layouts.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutTypes[type]); + var type = TemplateLayout.Focus; + var layout = Layouts.LayoutTemplates.Find(x => x.Type == TemplateLayoutJsonTags[type]); var expected = layout.SensitivityRadius; - _session?.ClickEditLayout(Constants.TemplateLayoutNames[type]); + _session?.ClickEditLayout(TestConstants.TemplateLayoutNames[type]); var slider = _session?.FindByAccessibilityId(AccessibilityId.SensitivitySlider); Assert.IsNotNull(slider); @@ -335,16 +336,16 @@ public void HighlightDistance_Cancel() // verify the file var templateLayouts = new LayoutTemplates(); var data = templateLayouts.Read(templateLayouts.File); - var actual = data.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutTypes[type]).SensitivityRadius; + var actual = data.LayoutTemplates.Find(x => x.Type == TemplateLayoutJsonTags[type]).SensitivityRadius; Assert.AreEqual(expected, actual); } [TestMethod] public void SpaceAroundZones_Initialize() { - foreach (var (key, name) in Constants.TemplateLayoutNames) + foreach (var (key, name) in TestConstants.TemplateLayoutNames) { - if (key == Constants.TemplateLayout.Empty || key == Constants.TemplateLayout.Focus) + if (key == TemplateLayout.Empty || key == TemplateLayout.Focus) { // only for grid layouts continue; @@ -355,10 +356,10 @@ public void SpaceAroundZones_Initialize() var slider = _session?.FindByAccessibilityId(AccessibilityId.SpacingSlider); Assert.IsNotNull(slider); - var spacingEnabled = Layouts.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutTypes[key]).ShowSpacing; + var spacingEnabled = Layouts.LayoutTemplates.Find(x => x.Type == TemplateLayoutJsonTags[key]).ShowSpacing; Assert.AreEqual(spacingEnabled, slider.Enabled); - var expected = Layouts.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutTypes[key]).Spacing; + var expected = Layouts.LayoutTemplates.Find(x => x.Type == TemplateLayoutJsonTags[key]).Spacing; Assert.AreEqual($"{expected}", slider.Text); _session?.Click(ElementName.Cancel); @@ -369,10 +370,10 @@ public void SpaceAroundZones_Initialize() [TestMethod] public void SpaceAroundZones_Slider_Save() { - var type = Constants.TemplateLayouts.PriorityGrid; - var layout = Layouts.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutTypes[type]); + var type = TemplateLayout.PriorityGrid; + var layout = Layouts.LayoutTemplates.Find(x => x.Type == TemplateLayoutJsonTags[type]); var expected = layout.Spacing + 1; - _session?.ClickEditLayout(Constants.TemplateLayoutNames[type]); + _session?.ClickEditLayout(TestConstants.TemplateLayoutNames[type]); var slider = _session?.FindByAccessibilityId(AccessibilityId.SpacingSlider); Assert.IsNotNull(slider); @@ -385,17 +386,17 @@ public void SpaceAroundZones_Slider_Save() // verify the file var templateLayouts = new LayoutTemplates(); var data = templateLayouts.Read(templateLayouts.File); - var actual = data.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutTypes[type]).Spacing; + var actual = data.LayoutTemplates.Find(x => x.Type == TemplateLayoutJsonTags[type]).Spacing; Assert.AreEqual(expected, actual); } [TestMethod] public void SpaceAroundZones_Slider_Cancel() { - var type = Constants.TemplateLayouts.PriorityGrid; - var layout = Layouts.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutTypes[type]); + var type = TemplateLayout.PriorityGrid; + var layout = Layouts.LayoutTemplates.Find(x => x.Type == TemplateLayoutJsonTags[type]); var expected = layout.Spacing; - _session?.ClickEditLayout(Constants.TemplateLayoutNames[type]); + _session?.ClickEditLayout(TestConstants.TemplateLayoutNames[type]); var slider = _session?.FindByAccessibilityId(AccessibilityId.SpacingSlider); Assert.IsNotNull(slider); @@ -408,17 +409,17 @@ public void SpaceAroundZones_Slider_Cancel() // verify the file var templateLayouts = new LayoutTemplates(); var data = templateLayouts.Read(templateLayouts.File); - var actual = data.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutTypes[type]).Spacing; + var actual = data.LayoutTemplates.Find(x => x.Type == TemplateLayoutJsonTags[type]).Spacing; Assert.AreEqual(expected, actual); } [TestMethod] public void SpaceAroundZones_Toggle_Save() { - var type = Constants.TemplateLayouts.PriorityGrid; - var layout = Layouts.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutTypes[type]); + var type = TemplateLayout.PriorityGrid; + var layout = Layouts.LayoutTemplates.Find(x => x.Type == TemplateLayoutJsonTags[type]); var expected = !layout.ShowSpacing; - _session?.ClickEditLayout(Constants.TemplateLayoutNames[type]); + _session?.ClickEditLayout(TestConstants.TemplateLayoutNames[type]); var toggle = _session?.FindByAccessibilityId(AccessibilityId.SpacingToggle); Assert.IsNotNull(toggle); @@ -432,17 +433,17 @@ public void SpaceAroundZones_Toggle_Save() // verify the file var templateLayouts = new LayoutTemplates(); var data = templateLayouts.Read(templateLayouts.File); - var actual = data.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutTypes[type]).ShowSpacing; + var actual = data.LayoutTemplates.Find(x => x.Type == TemplateLayoutJsonTags[type]).ShowSpacing; Assert.AreEqual(expected, actual); } [TestMethod] public void SpaceAroundZones_Toggle_Cancel() { - var type = Constants.TemplateLayouts.PriorityGrid; - var layout = Layouts.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutTypes[type]); + var type = TemplateLayout.PriorityGrid; + var layout = Layouts.LayoutTemplates.Find(x => x.Type == TemplateLayoutJsonTags[type]); var expected = layout.ShowSpacing; - _session?.ClickEditLayout(Constants.TemplateLayoutNames[type]); + _session?.ClickEditLayout(TestConstants.TemplateLayoutNames[type]); var toggle = _session?.FindByAccessibilityId(AccessibilityId.SpacingToggle); Assert.IsNotNull(toggle); @@ -456,7 +457,7 @@ public void SpaceAroundZones_Toggle_Cancel() // verify the file var templateLayouts = new LayoutTemplates(); var data = templateLayouts.Read(templateLayouts.File); - var actual = data.LayoutTemplates.Find(x => x.Type == Constants.TemplateLayoutTypes[type]).ShowSpacing; + var actual = data.LayoutTemplates.Find(x => x.Type == TemplateLayoutJsonTags[type]).ShowSpacing; Assert.AreEqual(expected, actual); } } diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializationTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializationTests.cs index 455fced8d687..53430178fb10 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializationTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializationTests.cs @@ -7,6 +7,7 @@ using FancyZonesEditorCommon.Data; using Microsoft.FancyZonesEditor.UnitTests.Utils; using Microsoft.VisualStudio.TestTools.UnitTesting; +using static FancyZonesEditorCommon.Data.Constants; using static FancyZonesEditorCommon.Data.EditorParameters; using static Microsoft.FancyZonesEditor.UnitTests.Utils.FancyZonesEditorSession; @@ -40,16 +41,16 @@ public void TestInitialize() { new LayoutTemplates.TemplateLayoutWrapper { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Empty], + Type = TemplateLayoutJsonTags[TemplateLayout.Empty], }, new LayoutTemplates.TemplateLayoutWrapper { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Focus], + Type = TemplateLayoutJsonTags[TemplateLayout.Focus], ZoneCount = 10, }, new LayoutTemplates.TemplateLayoutWrapper { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Rows], + Type = TemplateLayoutJsonTags[TemplateLayout.Rows], ZoneCount = 2, ShowSpacing = true, Spacing = 10, @@ -57,7 +58,7 @@ public void TestInitialize() }, new LayoutTemplates.TemplateLayoutWrapper { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Columns], + Type = TemplateLayoutJsonTags[TemplateLayout.Columns], ZoneCount = 2, ShowSpacing = true, Spacing = 20, @@ -65,7 +66,7 @@ public void TestInitialize() }, new LayoutTemplates.TemplateLayoutWrapper { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Grid], + Type = TemplateLayoutJsonTags[TemplateLayout.Grid], ZoneCount = 4, ShowSpacing = false, Spacing = 10, @@ -73,7 +74,7 @@ public void TestInitialize() }, new LayoutTemplates.TemplateLayoutWrapper { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.PriorityGrid], + Type = TemplateLayoutJsonTags[TemplateLayout.PriorityGrid], ZoneCount = 3, ShowSpacing = true, Spacing = 1, @@ -365,7 +366,7 @@ public void AppliedLayouts_LayoutsApplied() AppliedLayout = new AppliedLayouts.AppliedLayoutWrapper.LayoutWrapper { Uuid = "{00000000-0000-0000-0000-000000000000}", - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Columns], + Type = TemplateLayoutJsonTags[TemplateLayout.Columns], ShowSpacing = true, Spacing = 10, ZoneCount = 1, @@ -385,7 +386,7 @@ public void AppliedLayouts_LayoutsApplied() AppliedLayout = new AppliedLayouts.AppliedLayoutWrapper.LayoutWrapper { Uuid = customLayoutListWrapper.CustomLayouts[0].Uuid, - Type = Constants.CustomLayoutTypeString, + Type = CustomLayoutJsonTag, }, }, }, @@ -395,7 +396,7 @@ public void AppliedLayouts_LayoutsApplied() _session = new FancyZonesEditorSession(_context!); // check layout on monitor 1 - var layoutOnMonitor1 = _session?.GetLayout(Constants.TemplateLayoutNames[Constants.TemplateLayouts.Columns]); + var layoutOnMonitor1 = _session?.GetLayout(TestConstants.TemplateLayoutNames[TemplateLayout.Columns]); Assert.IsNotNull(layoutOnMonitor1); Assert.IsTrue(layoutOnMonitor1.Selected); @@ -476,7 +477,7 @@ public void AppliedLayouts_CustomLayoutsApplied_LayoutIdNotFound() AppliedLayout = new AppliedLayouts.AppliedLayoutWrapper.LayoutWrapper { Uuid = "{00000000-0000-0000-0000-000000000000}", - Type = Constants.CustomLayoutTypeString, + Type = CustomLayoutJsonTag, }, }, }, @@ -485,7 +486,7 @@ public void AppliedLayouts_CustomLayoutsApplied_LayoutIdNotFound() _session = new FancyZonesEditorSession(_context!); - var emptyLayout = _session?.GetLayout(Constants.TemplateLayoutNames[Constants.TemplateLayouts.Empty]); + var emptyLayout = _session?.GetLayout(TestConstants.TemplateLayoutNames[TemplateLayout.Empty]); Assert.IsNotNull(emptyLayout); Assert.IsTrue(emptyLayout.Selected); } @@ -552,7 +553,7 @@ public void AppliedLayouts_NoLayoutsApplied_CustomDefaultLayout() MonitorConfiguration = MonitorConfigurationTypeEnumExtensions.MonitorConfigurationTypeToString(MonitorConfigurationType.Horizontal), Layout = new DefaultLayouts.DefaultLayoutWrapper.LayoutWrapper { - Type = Constants.CustomLayoutTypeString, + Type = CustomLayoutJsonTag, Uuid = customLayoutListWrapper.CustomLayouts[0].Uuid, }, }, @@ -607,7 +608,7 @@ public void AppliedLayouts_NoLayoutsApplied_TemplateDefaultLayout() MonitorConfiguration = MonitorConfigurationTypeEnumExtensions.MonitorConfigurationTypeToString(MonitorConfigurationType.Horizontal), Layout = new DefaultLayouts.DefaultLayoutWrapper.LayoutWrapper { - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Grid], + Type = TemplateLayoutJsonTags[TemplateLayout.Grid], ZoneCount = 6, ShowSpacing = true, Spacing = 5, @@ -620,12 +621,12 @@ public void AppliedLayouts_NoLayoutsApplied_TemplateDefaultLayout() _session = new FancyZonesEditorSession(_context!); - var defaultLayout = _session?.GetLayout(Constants.TemplateLayoutNames[Constants.TemplateLayouts.Grid]); + var defaultLayout = _session?.GetLayout(TestConstants.TemplateLayoutNames[TemplateLayout.Grid]); Assert.IsNotNull(defaultLayout); Assert.IsTrue(defaultLayout.Selected); // check the number of zones and spacing - _session?.ClickEditLayout(Constants.TemplateLayoutNames[Constants.TemplateLayouts.Grid]); + _session?.ClickEditLayout(TestConstants.TemplateLayoutNames[TemplateLayout.Grid]); Assert.AreEqual(defaultLayoutsListWrapper.DefaultLayouts[0].Layout.ZoneCount, int.Parse(_session?.FindByAccessibilityId(AccessibilityId.TemplateZoneSlider)?.Text!, CultureInfo.InvariantCulture)); Assert.AreEqual(defaultLayoutsListWrapper.DefaultLayouts[0].Layout.Spacing, int.Parse(_session?.FindByAccessibilityId(AccessibilityId.SpacingSlider)?.Text!, CultureInfo.InvariantCulture)); Assert.AreEqual(defaultLayoutsListWrapper.DefaultLayouts[0].Layout.ShowSpacing, _session?.FindByAccessibilityId(AccessibilityId.SpacingSlider)?.Enabled); @@ -682,7 +683,7 @@ public void AppliedLayouts_VerifyDisconnectedMonitorsLayoutsAreNotChanged() AppliedLayout = new AppliedLayouts.AppliedLayoutWrapper.LayoutWrapper { Uuid = "{00000000-0000-0000-0000-000000000000}", - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Focus], + Type = TemplateLayoutJsonTags[TemplateLayout.Focus], ShowSpacing = true, Spacing = 10, ZoneCount = 4, @@ -702,7 +703,7 @@ public void AppliedLayouts_VerifyDisconnectedMonitorsLayoutsAreNotChanged() AppliedLayout = new AppliedLayouts.AppliedLayoutWrapper.LayoutWrapper { Uuid = "{00000000-0000-0000-0000-000000000000}", - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Columns], + Type = TemplateLayoutJsonTags[TemplateLayout.Columns], ShowSpacing = true, Spacing = 10, ZoneCount = 1, @@ -714,7 +715,7 @@ public void AppliedLayouts_VerifyDisconnectedMonitorsLayoutsAreNotChanged() FancyZonesEditorSession.Files.AppliedLayoutsIOHelper.WriteData(appliedLayouts.Serialize(appliedLayoutsWrapper)); _session = new FancyZonesEditorSession(_context!); - _session?.Click(_session?.GetLayout(Constants.TemplateLayoutNames[Constants.TemplateLayouts.Rows])!); + _session?.Click(_session?.GetLayout(TestConstants.TemplateLayoutNames[TemplateLayout.Rows])!); // check the file var data = appliedLayouts.Read(appliedLayouts.File); @@ -782,7 +783,7 @@ public void AppliedLayouts_VerifyOtherVirtualDesktopsAreNotChanged() AppliedLayout = new AppliedLayouts.AppliedLayoutWrapper.LayoutWrapper { Uuid = "{00000000-0000-0000-0000-000000000000}", - Type = Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Focus], + Type = TemplateLayoutJsonTags[TemplateLayout.Focus], ShowSpacing = true, Spacing = 10, ZoneCount = 4, @@ -794,7 +795,7 @@ public void AppliedLayouts_VerifyOtherVirtualDesktopsAreNotChanged() FancyZonesEditorSession.Files.AppliedLayoutsIOHelper.WriteData(appliedLayouts.Serialize(appliedLayoutsWrapper)); _session = new FancyZonesEditorSession(_context!); - _session?.Click(_session?.GetLayout(Constants.TemplateLayoutNames[Constants.TemplateLayouts.Rows])!); + _session?.Click(_session?.GetLayout(TestConstants.TemplateLayoutNames[TemplateLayout.Rows])!); // check the file var data = appliedLayouts.Read(appliedLayouts.File); @@ -802,7 +803,7 @@ public void AppliedLayouts_VerifyOtherVirtualDesktopsAreNotChanged() Assert.IsNotNull(data.AppliedLayouts.Find(x => x.Device.VirtualDesktop == virtualDesktop1)); Assert.IsNotNull(data.AppliedLayouts.Find(x => x.Device.VirtualDesktop == virtualDesktop2)); Assert.AreEqual(appliedLayoutsWrapper.AppliedLayouts[0].AppliedLayout.Type, data.AppliedLayouts.Find(x => x.Device.VirtualDesktop == virtualDesktop2).AppliedLayout.Type); - Assert.AreEqual(Constants.TemplateLayoutTypes[Constants.TemplateLayouts.Rows], data.AppliedLayouts.Find(x => x.Device.VirtualDesktop == virtualDesktop1).AppliedLayout.Type); + Assert.AreEqual(TemplateLayoutJsonTags[TemplateLayout.Rows], data.AppliedLayouts.Find(x => x.Device.VirtualDesktop == virtualDesktop1).AppliedLayout.Type); } } } From 813745189c5ae7b1442b83d6725270419a22582d Mon Sep 17 00:00:00 2001 From: seraphima Date: Fri, 22 Mar 2024 21:29:01 +0100 Subject: [PATCH 67/78] refactoring --- .../Data/MonitorConfigurationTypeEnumExtensions.cs | 4 ++-- .../UITests-FancyZonesEditor/ApplyLayoutTests.cs | 4 ++-- .../UITests-FancyZonesEditor/CopyLayoutTests.cs | 2 +- .../UITests-FancyZonesEditor/DefaultLayoutsTests.cs | 4 ++-- .../UITests-FancyZonesEditor/DeleteLayoutTests.cs | 4 ++-- .../UITests-FancyZonesEditor/TemplateLayoutsTests.cs | 4 ++-- .../UITests-FancyZonesEditor/UIInitializationTests.cs | 4 ++-- .../FancyZonesEditor/Utils/FancyZonesEditorIO.cs | 10 +++++----- 8 files changed, 18 insertions(+), 18 deletions(-) diff --git a/src/modules/fancyzones/FancyZonesEditorCommon/Data/MonitorConfigurationTypeEnumExtensions.cs b/src/modules/fancyzones/FancyZonesEditorCommon/Data/MonitorConfigurationTypeEnumExtensions.cs index 7b639a2f0df2..481321bdfd56 100644 --- a/src/modules/fancyzones/FancyZonesEditorCommon/Data/MonitorConfigurationTypeEnumExtensions.cs +++ b/src/modules/fancyzones/FancyZonesEditorCommon/Data/MonitorConfigurationTypeEnumExtensions.cs @@ -15,7 +15,7 @@ public static class MonitorConfigurationTypeEnumExtensions private const string HorizontalJsonTag = "horizontal"; private const string VerticalJsonTag = "vertical"; - public static string MonitorConfigurationTypeToString(this MonitorConfigurationType value) + public static string TypeToString(this MonitorConfigurationType value) { switch (value) { @@ -28,7 +28,7 @@ public static string MonitorConfigurationTypeToString(this MonitorConfigurationT return HorizontalJsonTag; } - public static MonitorConfigurationType GetTypeFromString(string value) + public static MonitorConfigurationType TypeFromString(string value) { switch (value) { diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/ApplyLayoutTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/ApplyLayoutTests.cs index 600adc387169..57ac419d60bd 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/ApplyLayoutTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/ApplyLayoutTests.cs @@ -159,7 +159,7 @@ public void TestInitialize() { new DefaultLayouts.DefaultLayoutWrapper { - MonitorConfiguration = MonitorConfigurationTypeEnumExtensions.MonitorConfigurationTypeToString(MonitorConfigurationType.Horizontal), + MonitorConfiguration = MonitorConfigurationType.Horizontal.TypeToString(), Layout = new DefaultLayouts.DefaultLayoutWrapper.LayoutWrapper { Type = TemplateLayoutJsonTags[TemplateLayout.Focus], @@ -171,7 +171,7 @@ public void TestInitialize() }, new DefaultLayouts.DefaultLayoutWrapper { - MonitorConfiguration = MonitorConfigurationTypeEnumExtensions.MonitorConfigurationTypeToString(MonitorConfigurationType.Vertical), + MonitorConfiguration = MonitorConfigurationType.Vertical.TypeToString(), Layout = new DefaultLayouts.DefaultLayoutWrapper.LayoutWrapper { Type = "custom", diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/CopyLayoutTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/CopyLayoutTests.cs index f6c9d677110c..0820fb900049 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/CopyLayoutTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/CopyLayoutTests.cs @@ -57,7 +57,7 @@ public class CopyLayoutTests { new DefaultLayouts.DefaultLayoutWrapper { - MonitorConfiguration = MonitorConfigurationTypeEnumExtensions.MonitorConfigurationTypeToString(MonitorConfigurationType.Vertical), + MonitorConfiguration = MonitorConfigurationType.Vertical.TypeToString(), Layout = new DefaultLayouts.DefaultLayoutWrapper.LayoutWrapper { Type = "custom", diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/DefaultLayoutsTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/DefaultLayoutsTests.cs index 3ab0241563da..4266442862ea 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/DefaultLayoutsTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/DefaultLayoutsTests.cs @@ -17,8 +17,8 @@ namespace Microsoft.FancyZonesEditor.UITests [TestClass] public class DefaultLayoutsTests { - private static readonly string Vertical = MonitorConfigurationTypeEnumExtensions.MonitorConfigurationTypeToString(MonitorConfigurationType.Vertical); - private static readonly string Horizontal = MonitorConfigurationTypeEnumExtensions.MonitorConfigurationTypeToString(MonitorConfigurationType.Horizontal); + private static readonly string Vertical = MonitorConfigurationType.Vertical.TypeToString(); + private static readonly string Horizontal = MonitorConfigurationType.Horizontal.TypeToString(); private static readonly CustomLayoutListWrapper CustomLayouts = new CustomLayoutListWrapper { diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/DeleteLayoutTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/DeleteLayoutTests.cs index 67acb1a0af64..d9bba9ea9304 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/DeleteLayoutTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/DeleteLayoutTests.cs @@ -84,7 +84,7 @@ public class DeleteLayoutTests { new DefaultLayoutWrapper { - MonitorConfiguration = MonitorConfigurationTypeEnumExtensions.MonitorConfigurationTypeToString(MonitorConfigurationType.Horizontal), + MonitorConfiguration = MonitorConfigurationType.Horizontal.TypeToString(), Layout = new DefaultLayoutWrapper.LayoutWrapper { Type = CustomLayoutJsonTag, @@ -327,7 +327,7 @@ public void DeleteDefaultLayout() // check the file var defaultLayouts = new DefaultLayouts(); var data = defaultLayouts.Read(defaultLayouts.File); - string configuration = MonitorConfigurationTypeEnumExtensions.MonitorConfigurationTypeToString(MonitorConfigurationType.Horizontal); + string configuration = MonitorConfigurationType.Horizontal.TypeToString(); Assert.AreEqual(TemplateLayoutJsonTags[TemplateLayout.PriorityGrid], data.DefaultLayouts.Find(x => x.MonitorConfiguration == configuration).Layout.Type); } diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs index e99194acf69d..9bfe936e00ea 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs @@ -97,7 +97,7 @@ public void TestInitialize() { new DefaultLayoutWrapper { - MonitorConfiguration = MonitorConfigurationTypeEnumExtensions.MonitorConfigurationTypeToString(MonitorConfigurationType.Vertical), + MonitorConfiguration = MonitorConfigurationType.Vertical.TypeToString(), Layout = new DefaultLayoutWrapper.LayoutWrapper { Type = TemplateLayoutJsonTags[TemplateLayout.Rows], @@ -109,7 +109,7 @@ public void TestInitialize() }, new DefaultLayoutWrapper { - MonitorConfiguration = MonitorConfigurationTypeEnumExtensions.MonitorConfigurationTypeToString(MonitorConfigurationType.Horizontal), + MonitorConfiguration = MonitorConfigurationType.Horizontal.TypeToString(), Layout = new DefaultLayoutWrapper.LayoutWrapper { Type = TemplateLayoutJsonTags[TemplateLayout.PriorityGrid], diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializationTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializationTests.cs index 53430178fb10..32a6dbdbcdd3 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializationTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializationTests.cs @@ -550,7 +550,7 @@ public void AppliedLayouts_NoLayoutsApplied_CustomDefaultLayout() { new DefaultLayouts.DefaultLayoutWrapper { - MonitorConfiguration = MonitorConfigurationTypeEnumExtensions.MonitorConfigurationTypeToString(MonitorConfigurationType.Horizontal), + MonitorConfiguration = MonitorConfigurationType.Horizontal.TypeToString(), Layout = new DefaultLayouts.DefaultLayoutWrapper.LayoutWrapper { Type = CustomLayoutJsonTag, @@ -605,7 +605,7 @@ public void AppliedLayouts_NoLayoutsApplied_TemplateDefaultLayout() { new DefaultLayouts.DefaultLayoutWrapper { - MonitorConfiguration = MonitorConfigurationTypeEnumExtensions.MonitorConfigurationTypeToString(MonitorConfigurationType.Horizontal), + MonitorConfiguration = MonitorConfigurationType.Horizontal.TypeToString(), Layout = new DefaultLayouts.DefaultLayoutWrapper.LayoutWrapper { Type = TemplateLayoutJsonTags[TemplateLayout.Grid], diff --git a/src/modules/fancyzones/editor/FancyZonesEditor/Utils/FancyZonesEditorIO.cs b/src/modules/fancyzones/editor/FancyZonesEditor/Utils/FancyZonesEditorIO.cs index 0925c1dc00b7..40123e1da690 100644 --- a/src/modules/fancyzones/editor/FancyZonesEditor/Utils/FancyZonesEditorIO.cs +++ b/src/modules/fancyzones/editor/FancyZonesEditor/Utils/FancyZonesEditorIO.cs @@ -501,7 +501,7 @@ public void SerializeDefaultLayouts() { DefaultLayouts.DefaultLayoutWrapper wrapper = new DefaultLayouts.DefaultLayoutWrapper { - MonitorConfiguration = MonitorConfigurationTypeEnumExtensions.MonitorConfigurationTypeToString(MonitorConfigurationType.Horizontal), + MonitorConfiguration = MonitorConfigurationType.Horizontal.TypeToString(), Layout = layoutWrapper, }; @@ -512,7 +512,7 @@ public void SerializeDefaultLayouts() { DefaultLayouts.DefaultLayoutWrapper wrapper = new DefaultLayouts.DefaultLayoutWrapper { - MonitorConfiguration = MonitorConfigurationTypeEnumExtensions.MonitorConfigurationTypeToString(MonitorConfigurationType.Vertical), + MonitorConfiguration = MonitorConfigurationType.Vertical.TypeToString(), Layout = layoutWrapper, }; @@ -542,7 +542,7 @@ public void SerializeDefaultLayouts() { DefaultLayouts.DefaultLayoutWrapper wrapper = new DefaultLayouts.DefaultLayoutWrapper { - MonitorConfiguration = MonitorConfigurationTypeEnumExtensions.MonitorConfigurationTypeToString(MonitorConfigurationType.Horizontal), + MonitorConfiguration = MonitorConfigurationType.Horizontal.TypeToString(), Layout = layoutWrapper, }; @@ -553,7 +553,7 @@ public void SerializeDefaultLayouts() { DefaultLayouts.DefaultLayoutWrapper wrapper = new DefaultLayouts.DefaultLayoutWrapper { - MonitorConfiguration = MonitorConfigurationTypeEnumExtensions.MonitorConfigurationTypeToString(MonitorConfigurationType.Vertical), + MonitorConfiguration = MonitorConfigurationType.Vertical.TypeToString(), Layout = layoutWrapper, }; @@ -769,7 +769,7 @@ private bool SetDefaultLayouts(List layouts foreach (var layout in layouts) { LayoutModel defaultLayoutModel = null; - MonitorConfigurationType type = MonitorConfigurationTypeEnumExtensions.GetTypeFromString(layout.MonitorConfiguration); + MonitorConfigurationType type = MonitorConfigurationTypeEnumExtensions.TypeFromString(layout.MonitorConfiguration); if (layout.Layout.Uuid != null && layout.Layout.Uuid != string.Empty) { From 3517443d738bc81ebe93d18e10c1725f1c4efb65 Mon Sep 17 00:00:00 2001 From: seraphima Date: Fri, 22 Mar 2024 22:32:28 +0100 Subject: [PATCH 68/78] LayoutType enum extension --- .../FancyZonesEditorCommon/Data/Constants.cs | 22 ++--- .../Data/LayoutTypeEnumExtension.cs | 70 ++++++++++++++++ .../ApplyLayoutTests.cs | 30 +++---- .../CopyLayoutTests.cs | 26 +++--- .../CreateLayoutTests.cs | 12 +-- .../CustomLayoutsTests.cs | 12 +-- .../DefaultLayoutsTests.cs | 28 +++---- .../DeleteLayoutTests.cs | 22 ++--- .../EditLayoutTests.cs | 12 +-- .../LayoutHotkeysTests.cs | 12 +-- .../RunFancyZonesEditorTest.cs | 22 ++--- .../TemplateLayoutsTests.cs | 84 +++++++++---------- .../UITests-FancyZonesEditor/TestConstants.cs | 16 ++-- .../UIInitializationTests.cs | 42 +++++----- ...youtModelTypeBlankToVisibilityConverter.cs | 2 +- .../LayoutTypeCustomToVisibilityConverter.cs | 2 +- ...LayoutTypeTemplateToVisibilityConverter.cs | 2 +- .../editor/FancyZonesEditor/EditorWindow.cs | 1 + .../Models/CanvasLayoutModel.cs | 1 + .../FancyZonesEditor/Models/LayoutSettings.cs | 1 - .../FancyZonesEditor/Models/LayoutType.cs | 17 ---- .../Utils/FancyZonesEditorIO.cs | 67 ++------------- 22 files changed, 247 insertions(+), 256 deletions(-) create mode 100644 src/modules/fancyzones/FancyZonesEditorCommon/Data/LayoutTypeEnumExtension.cs delete mode 100644 src/modules/fancyzones/editor/FancyZonesEditor/Models/LayoutType.cs diff --git a/src/modules/fancyzones/FancyZonesEditorCommon/Data/Constants.cs b/src/modules/fancyzones/FancyZonesEditorCommon/Data/Constants.cs index 1cd84026890a..ee56f1c50209 100644 --- a/src/modules/fancyzones/FancyZonesEditorCommon/Data/Constants.cs +++ b/src/modules/fancyzones/FancyZonesEditorCommon/Data/Constants.cs @@ -9,27 +9,17 @@ namespace FancyZonesEditorCommon.Data { public static class Constants { - public enum TemplateLayout + public enum CustomLayout { - Empty, - Focus, - Rows, - Columns, + Canvas, Grid, - PriorityGrid, } - public static readonly ReadOnlyDictionary TemplateLayoutJsonTags = new ReadOnlyDictionary( - new Dictionary() + public static readonly ReadOnlyDictionary CustomLayoutTypeJsonTags = new ReadOnlyDictionary( + new Dictionary() { - { TemplateLayout.Empty, "blank" }, - { TemplateLayout.Focus, "focus" }, - { TemplateLayout.Rows, "rows" }, - { TemplateLayout.Columns, "columns" }, - { TemplateLayout.Grid, "grid" }, - { TemplateLayout.PriorityGrid, "priority-grid" }, + { CustomLayout.Canvas, "canvas" }, + { CustomLayout.Grid, "grid" }, }); - - public const string CustomLayoutJsonTag = "custom"; } } diff --git a/src/modules/fancyzones/FancyZonesEditorCommon/Data/LayoutTypeEnumExtension.cs b/src/modules/fancyzones/FancyZonesEditorCommon/Data/LayoutTypeEnumExtension.cs new file mode 100644 index 000000000000..58bb3992063b --- /dev/null +++ b/src/modules/fancyzones/FancyZonesEditorCommon/Data/LayoutTypeEnumExtension.cs @@ -0,0 +1,70 @@ +// Copyright (c) Microsoft Corporation +// The Microsoft Corporation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +namespace FancyZonesEditorCommon.Data +{ + public enum LayoutType + { + Blank, + Focus, + Rows, + Columns, + Grid, + PriorityGrid, + Custom, + } + + public static class LayoutTypeEnumExtension + { + private const string BlankJsonTag = "blank"; + private const string FocusJsonTag = "focus"; + private const string RowsJsonTag = "rows"; + private const string ColumnsJsonTag = "columns"; + private const string GridJsonTag = "grid"; + private const string PriorityGridJsonTag = "priority-grid"; + private const string CustomLayoutJsonTag = "custom"; + + public static string TypeToString(this LayoutType value) + { + switch (value) + { + case LayoutType.Blank: + return BlankJsonTag; + case LayoutType.Focus: + return FocusJsonTag; + case LayoutType.Rows: + return RowsJsonTag; + case LayoutType.Columns: + return ColumnsJsonTag; + case LayoutType.Grid: + return GridJsonTag; + case LayoutType.PriorityGrid: + return PriorityGridJsonTag; + } + + return CustomLayoutJsonTag; + } + + public static LayoutType TypeFromString(string value) + { + switch (value) + { + case BlankJsonTag: + return LayoutType.Blank; + case FocusJsonTag: + return LayoutType.Focus; + case RowsJsonTag: + return LayoutType.Rows; + case ColumnsJsonTag: + return LayoutType.Columns; + case GridJsonTag: + return LayoutType.Grid; + case PriorityGridJsonTag: + return LayoutType.PriorityGrid; + } + + return LayoutType.Custom; + } + } +} diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/ApplyLayoutTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/ApplyLayoutTests.cs index 57ac419d60bd..83e6b0b8153c 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/ApplyLayoutTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/ApplyLayoutTests.cs @@ -83,16 +83,16 @@ public class ApplyLayoutTests { new LayoutTemplates.TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.Empty], + Type = LayoutType.Blank.TypeToString(), }, new LayoutTemplates.TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.Focus], + Type = LayoutType.Focus.TypeToString(), ZoneCount = 10, }, new LayoutTemplates.TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.Rows], + Type = LayoutType.Rows.TypeToString(), ZoneCount = 2, ShowSpacing = true, Spacing = 10, @@ -100,7 +100,7 @@ public class ApplyLayoutTests }, new LayoutTemplates.TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.Columns], + Type = LayoutType.Columns.TypeToString(), ZoneCount = 2, ShowSpacing = true, Spacing = 20, @@ -108,7 +108,7 @@ public class ApplyLayoutTests }, new LayoutTemplates.TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.Grid], + Type = LayoutType.Grid.TypeToString(), ZoneCount = 4, ShowSpacing = false, Spacing = 10, @@ -116,7 +116,7 @@ public class ApplyLayoutTests }, new LayoutTemplates.TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.PriorityGrid], + Type = LayoutType.PriorityGrid.TypeToString(), ZoneCount = 3, ShowSpacing = true, Spacing = 1, @@ -162,7 +162,7 @@ public void TestInitialize() MonitorConfiguration = MonitorConfigurationType.Horizontal.TypeToString(), Layout = new DefaultLayouts.DefaultLayoutWrapper.LayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.Focus], + Type = LayoutType.Focus.TypeToString(), ZoneCount = 4, ShowSpacing = true, Spacing = 5, @@ -174,7 +174,7 @@ public void TestInitialize() MonitorConfiguration = MonitorConfigurationType.Vertical.TypeToString(), Layout = new DefaultLayouts.DefaultLayoutWrapper.LayoutWrapper { - Type = "custom", + Type = LayoutType.Custom.TypeToString(), Uuid = "{0D6D2F58-9184-4804-81E4-4E4CC3476DC1}", ZoneCount = 0, ShowSpacing = false, @@ -229,7 +229,7 @@ public void ApplyCustomLayout() [TestMethod] public void ApplyTemplateLayout() { - var layoutType = TemplateLayout.Columns; + var layoutType = LayoutType.Columns; var layout = TestConstants.TemplateLayoutNames[layoutType]; Assert.IsFalse(_session?.GetLayout(layout)!.Selected); _session?.Click(_session?.GetLayout(layout)!); @@ -239,7 +239,7 @@ public void ApplyTemplateLayout() AppliedLayouts appliedLayouts = new AppliedLayouts(); var data = appliedLayouts.Read(appliedLayouts.File); Assert.AreEqual(Parameters.Monitors.Count, data.AppliedLayouts.Count); - Assert.AreEqual(TemplateLayoutJsonTags[layoutType], data.AppliedLayouts[0].AppliedLayout.Type); + Assert.AreEqual(layoutType.TypeToString(), data.AppliedLayouts[0].AppliedLayout.Type); Assert.AreEqual(Parameters.Monitors[0].MonitorNumber, data.AppliedLayouts[0].Device.MonitorNumber); } @@ -247,7 +247,7 @@ public void ApplyTemplateLayout() public void ApplyLayoutsOnEachMonitor() { // apply the layout on the first monitor - var firstLayoutType = TemplateLayout.Columns; + var firstLayoutType = LayoutType.Columns; var firstLayoutName = TestConstants.TemplateLayoutNames[firstLayoutType]; _session?.Click(_session?.GetLayout(firstLayoutName)!); Assert.IsTrue(_session?.GetLayout(firstLayoutName)!.Selected); @@ -266,14 +266,14 @@ public void ApplyLayoutsOnEachMonitor() var appliedLayouts = new AppliedLayouts(); var data = appliedLayouts.Read(appliedLayouts.File); Assert.AreEqual(Parameters.Monitors.Count, data.AppliedLayouts.Count); - Assert.AreEqual(TemplateLayoutJsonTags[firstLayoutType], data.AppliedLayouts.Find(x => x.Device.MonitorNumber == 1).AppliedLayout.Type); + Assert.AreEqual(firstLayoutType.TypeToString(), data.AppliedLayouts.Find(x => x.Device.MonitorNumber == 1).AppliedLayout.Type); Assert.AreEqual(secondLayout.Uuid, data.AppliedLayouts.Find(x => x.Device.MonitorNumber == 2).AppliedLayout.Uuid); } [TestMethod] public void ApplyTemplateWithDifferentParametersOnEachMonitor() { - var layoutType = TemplateLayout.Columns; + var layoutType = LayoutType.Columns; var layoutName = TestConstants.TemplateLayoutNames[layoutType]; // apply the layout on the first monitor, set parameters @@ -311,9 +311,9 @@ public void ApplyTemplateWithDifferentParametersOnEachMonitor() var appliedLayouts = new AppliedLayouts(); var data = appliedLayouts.Read(appliedLayouts.File); Assert.AreEqual(Parameters.Monitors.Count, data.AppliedLayouts.Count); - Assert.AreEqual(TemplateLayoutJsonTags[layoutType], data.AppliedLayouts.Find(x => x.Device.MonitorNumber == 1).AppliedLayout.Type); + Assert.AreEqual(layoutType.TypeToString(), data.AppliedLayouts.Find(x => x.Device.MonitorNumber == 1).AppliedLayout.Type); Assert.AreEqual(expectedFirstLayoutZoneCount, data.AppliedLayouts.Find(x => x.Device.MonitorNumber == 1).AppliedLayout.ZoneCount); - Assert.AreEqual(TemplateLayoutJsonTags[layoutType], data.AppliedLayouts.Find(x => x.Device.MonitorNumber == 2).AppliedLayout.Type); + Assert.AreEqual(layoutType.TypeToString(), data.AppliedLayouts.Find(x => x.Device.MonitorNumber == 2).AppliedLayout.Type); Assert.AreEqual(expectedSecondLayoutZoneCount, data.AppliedLayouts.Find(x => x.Device.MonitorNumber == 2).AppliedLayout.ZoneCount); } } diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/CopyLayoutTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/CopyLayoutTests.cs index 0820fb900049..a9ef9af1127b 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/CopyLayoutTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/CopyLayoutTests.cs @@ -122,16 +122,16 @@ public void TestInitialize() { new LayoutTemplates.TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.Empty], + Type = LayoutType.Blank.TypeToString(), }, new LayoutTemplates.TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.Focus], + Type = LayoutType.Focus.TypeToString(), ZoneCount = 10, }, new LayoutTemplates.TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.Rows], + Type = LayoutType.Rows.TypeToString(), ZoneCount = 2, ShowSpacing = true, Spacing = 10, @@ -139,7 +139,7 @@ public void TestInitialize() }, new LayoutTemplates.TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.Columns], + Type = LayoutType.Columns.TypeToString(), ZoneCount = 2, ShowSpacing = true, Spacing = 20, @@ -147,7 +147,7 @@ public void TestInitialize() }, new LayoutTemplates.TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.Grid], + Type = LayoutType.Grid.TypeToString(), ZoneCount = 4, ShowSpacing = false, Spacing = 10, @@ -155,7 +155,7 @@ public void TestInitialize() }, new LayoutTemplates.TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.PriorityGrid], + Type = LayoutType.PriorityGrid.TypeToString(), ZoneCount = 3, ShowSpacing = true, Spacing = 1, @@ -191,8 +191,8 @@ public void TestCleanup() [TestMethod] public void CopyTemplate_FromEditLayoutWindow() { - string copiedLayoutName = TestConstants.TemplateLayoutNames[TemplateLayout.Focus] + " (1)"; - _session?.ClickEditLayout(TestConstants.TemplateLayoutNames[TemplateLayout.Focus]); + string copiedLayoutName = TestConstants.TemplateLayoutNames[LayoutType.Focus] + " (1)"; + _session?.ClickEditLayout(TestConstants.TemplateLayoutNames[LayoutType.Focus]); _session?.ClickCopyLayout(); // verify the layout is copied @@ -208,8 +208,8 @@ public void CopyTemplate_FromEditLayoutWindow() [TestMethod] public void CopyTemplate_FromContextMenu() { - string copiedLayoutName = TestConstants.TemplateLayoutNames[TemplateLayout.Rows] + " (1)"; - _session?.ClickContextMenuItem(TestConstants.TemplateLayoutNames[TemplateLayout.Rows], ElementName.CreateCustomLayout); + string copiedLayoutName = TestConstants.TemplateLayoutNames[LayoutType.Rows] + " (1)"; + _session?.ClickContextMenuItem(TestConstants.TemplateLayoutNames[LayoutType.Rows], ElementName.CreateCustomLayout); // verify the layout is copied _session?.WaitElementDisplayedByName(copiedLayoutName); @@ -225,8 +225,8 @@ public void CopyTemplate_FromContextMenu() [TestMethod] public void CopyTemplate_DefaultLayout() { - string copiedLayoutName = TestConstants.TemplateLayoutNames[TemplateLayout.PriorityGrid] + " (1)"; - _session?.ClickEditLayout(TestConstants.TemplateLayoutNames[TemplateLayout.PriorityGrid]); + string copiedLayoutName = TestConstants.TemplateLayoutNames[LayoutType.PriorityGrid] + " (1)"; + _session?.ClickEditLayout(TestConstants.TemplateLayoutNames[LayoutType.PriorityGrid]); _session?.ClickCopyLayout(); // verify the layout is copied @@ -239,7 +239,7 @@ public void CopyTemplate_DefaultLayout() Assert.AreEqual(CustomLayouts.CustomLayouts.Count + 1, data.CustomLayouts.Count); // verify the default layout wasn't changed - _session?.ClickEditLayout(TestConstants.TemplateLayoutNames[TemplateLayout.PriorityGrid]); + _session?.ClickEditLayout(TestConstants.TemplateLayoutNames[LayoutType.PriorityGrid]); var horizontalDefaultButton = _session?.GetHorizontalDefaultButton(true); Assert.IsNotNull(horizontalDefaultButton); _session?.Click(ElementName.Cancel); diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/CreateLayoutTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/CreateLayoutTests.cs index 525a16f6ba7f..dc2f11629f11 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/CreateLayoutTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/CreateLayoutTests.cs @@ -67,16 +67,16 @@ public void TestInitialize() { new LayoutTemplates.TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.Empty], + Type = LayoutType.Blank.TypeToString(), }, new LayoutTemplates.TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.Focus], + Type = LayoutType.Focus.TypeToString(), ZoneCount = 10, }, new LayoutTemplates.TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.Rows], + Type = LayoutType.Rows.TypeToString(), ZoneCount = 2, ShowSpacing = true, Spacing = 10, @@ -84,7 +84,7 @@ public void TestInitialize() }, new LayoutTemplates.TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.Columns], + Type = LayoutType.Columns.TypeToString(), ZoneCount = 2, ShowSpacing = true, Spacing = 20, @@ -92,7 +92,7 @@ public void TestInitialize() }, new LayoutTemplates.TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.Grid], + Type = LayoutType.Grid.TypeToString(), ZoneCount = 4, ShowSpacing = false, Spacing = 10, @@ -100,7 +100,7 @@ public void TestInitialize() }, new LayoutTemplates.TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.PriorityGrid], + Type = LayoutType.PriorityGrid.TypeToString(), ZoneCount = 3, ShowSpacing = true, Spacing = 1, diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs index f751bbe815fb..a5786e20c922 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs @@ -149,16 +149,16 @@ public void TestInitialize() { new LayoutTemplates.TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.Empty], + Type = LayoutType.Blank.TypeToString(), }, new LayoutTemplates.TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.Focus], + Type = LayoutType.Focus.TypeToString(), ZoneCount = 10, }, new LayoutTemplates.TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.Rows], + Type = LayoutType.Rows.TypeToString(), ZoneCount = 2, ShowSpacing = true, Spacing = 10, @@ -166,7 +166,7 @@ public void TestInitialize() }, new LayoutTemplates.TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.Columns], + Type = LayoutType.Columns.TypeToString(), ZoneCount = 2, ShowSpacing = true, Spacing = 20, @@ -174,7 +174,7 @@ public void TestInitialize() }, new LayoutTemplates.TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.Grid], + Type = LayoutType.Grid.TypeToString(), ZoneCount = 4, ShowSpacing = false, Spacing = 10, @@ -182,7 +182,7 @@ public void TestInitialize() }, new LayoutTemplates.TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.PriorityGrid], + Type = LayoutType.PriorityGrid.TypeToString(), ZoneCount = 3, ShowSpacing = true, Spacing = 1, diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/DefaultLayoutsTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/DefaultLayoutsTests.cs index 4266442862ea..477aaf65d87b 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/DefaultLayoutsTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/DefaultLayoutsTests.cs @@ -88,7 +88,7 @@ public class DefaultLayoutsTests MonitorConfiguration = Horizontal, Layout = new DefaultLayoutWrapper.LayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.Grid], + Type = LayoutType.Grid.TypeToString(), ZoneCount = 4, ShowSpacing = true, Spacing = 5, @@ -185,16 +185,16 @@ public void TestInitialize() { new LayoutTemplates.TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.Empty], + Type = LayoutType.Blank.TypeToString(), }, new LayoutTemplates.TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.Focus], + Type = LayoutType.Focus.TypeToString(), ZoneCount = 10, }, new LayoutTemplates.TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.Rows], + Type = LayoutType.Rows.TypeToString(), ZoneCount = 2, ShowSpacing = true, Spacing = 10, @@ -202,7 +202,7 @@ public void TestInitialize() }, new LayoutTemplates.TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.Columns], + Type = LayoutType.Columns.TypeToString(), ZoneCount = 2, ShowSpacing = true, Spacing = 20, @@ -210,7 +210,7 @@ public void TestInitialize() }, new LayoutTemplates.TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.Grid], + Type = LayoutType.Grid.TypeToString(), ZoneCount = 4, ShowSpacing = false, Spacing = 10, @@ -218,7 +218,7 @@ public void TestInitialize() }, new LayoutTemplates.TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.PriorityGrid], + Type = LayoutType.PriorityGrid.TypeToString(), ZoneCount = 3, ShowSpacing = true, Spacing = 1, @@ -255,7 +255,7 @@ public void TestCleanup() [TestMethod] public void Initialize() { - CheckTemplateLayouts(TemplateLayout.Grid, null); + CheckTemplateLayouts(LayoutType.Grid, null); CheckCustomLayouts(string.Empty, CustomLayouts.CustomLayouts[0].Uuid); } @@ -263,7 +263,7 @@ public void Initialize() public void Assign_Cancel() { // assign Focus as a default horizontal and vertical layout - _session?.ClickEditLayout(TestConstants.TemplateLayoutNames[TemplateLayout.Focus]); + _session?.ClickEditLayout(TestConstants.TemplateLayoutNames[LayoutType.Focus]); var horizontalDefaultButton = _session?.GetHorizontalDefaultButton(false); horizontalDefaultButton?.Click(); var verticalDefaultButton = _session?.GetVerticalDefaultButton(false); @@ -274,7 +274,7 @@ public void Assign_Cancel() _session?.WaitUntilHidden(horizontalDefaultButton!); // check that default layouts weren't changed - CheckTemplateLayouts(TemplateLayout.Grid, null); + CheckTemplateLayouts(LayoutType.Grid, null); CheckCustomLayouts(string.Empty, CustomLayouts.CustomLayouts[0].Uuid); } @@ -282,7 +282,7 @@ public void Assign_Cancel() public void Assign_Save() { // assign Focus as a default horizontal and vertical layout - _session?.ClickEditLayout(TestConstants.TemplateLayoutNames[TemplateLayout.Focus]); + _session?.ClickEditLayout(TestConstants.TemplateLayoutNames[LayoutType.Focus]); var horizontalDefaultButton = _session?.GetHorizontalDefaultButton(false); horizontalDefaultButton?.Click(); var verticalDefaultButton = _session?.GetVerticalDefaultButton(false); @@ -293,15 +293,15 @@ public void Assign_Save() _session?.WaitUntilHidden(horizontalDefaultButton!); // check that default layout was changed - CheckTemplateLayouts(TemplateLayout.Focus, TemplateLayout.Focus); + CheckTemplateLayouts(LayoutType.Focus, LayoutType.Focus); CheckCustomLayouts(string.Empty, string.Empty); } - private void CheckTemplateLayouts(TemplateLayout? horizontalDefault, TemplateLayout? verticalDefault) + private void CheckTemplateLayouts(LayoutType? horizontalDefault, LayoutType? verticalDefault) { foreach (var (key, name) in TestConstants.TemplateLayoutNames) { - if (key == TemplateLayout.Empty) + if (key == LayoutType.Blank) { continue; } diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/DeleteLayoutTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/DeleteLayoutTests.cs index d9bba9ea9304..96c17de969ae 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/DeleteLayoutTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/DeleteLayoutTests.cs @@ -87,7 +87,7 @@ public class DeleteLayoutTests MonitorConfiguration = MonitorConfigurationType.Horizontal.TypeToString(), Layout = new DefaultLayoutWrapper.LayoutWrapper { - Type = CustomLayoutJsonTag, + Type = LayoutType.Custom.TypeToString(), Uuid = CustomLayouts.CustomLayouts[1].Uuid, }, }, @@ -162,16 +162,16 @@ public void TestInitialize() { new LayoutTemplates.TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.Empty], + Type = LayoutType.Blank.TypeToString(), }, new LayoutTemplates.TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.Focus], + Type = LayoutType.Focus.TypeToString(), ZoneCount = 10, }, new LayoutTemplates.TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.Rows], + Type = LayoutType.Rows.TypeToString(), ZoneCount = 2, ShowSpacing = true, Spacing = 10, @@ -179,7 +179,7 @@ public void TestInitialize() }, new LayoutTemplates.TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.Columns], + Type = LayoutType.Columns.TypeToString(), ZoneCount = 2, ShowSpacing = true, Spacing = 20, @@ -187,7 +187,7 @@ public void TestInitialize() }, new LayoutTemplates.TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.Grid], + Type = LayoutType.Grid.TypeToString(), ZoneCount = 4, ShowSpacing = false, Spacing = 10, @@ -195,7 +195,7 @@ public void TestInitialize() }, new LayoutTemplates.TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.PriorityGrid], + Type = LayoutType.PriorityGrid.TypeToString(), ZoneCount = 3, ShowSpacing = true, Spacing = 1, @@ -261,7 +261,7 @@ public void DeleteAppliedLayout() Assert.IsNull(_session?.GetLayout(deletedLayout)); // verify the empty layout is selected - Assert.IsTrue(_session?.GetLayout(TestConstants.TemplateLayoutNames[TemplateLayout.Empty])!.Selected); + Assert.IsTrue(_session?.GetLayout(TestConstants.TemplateLayoutNames[LayoutType.Blank])!.Selected); // check the file var customLayouts = new CustomLayouts(); @@ -271,7 +271,7 @@ public void DeleteAppliedLayout() var appliedLayouts = new AppliedLayouts(); var appliedLayoutsData = appliedLayouts.Read(appliedLayouts.File); - Assert.AreEqual(TemplateLayoutJsonTags[TemplateLayout.Empty], appliedLayoutsData.AppliedLayouts.Find(x => x.Device.Monitor == Parameters.Monitors[0].Monitor).AppliedLayout.Type); + Assert.AreEqual(LayoutType.Blank.TypeToString(), appliedLayoutsData.AppliedLayouts.Find(x => x.Device.Monitor == Parameters.Monitors[0].Monitor).AppliedLayout.Type); } [TestMethod] @@ -320,7 +320,7 @@ public void DeleteDefaultLayout() _session?.WaitFor(1); // verify the default layout is reset to the "default" default - _session?.ClickEditLayout(TestConstants.TemplateLayoutNames[TemplateLayout.PriorityGrid]); + _session?.ClickEditLayout(TestConstants.TemplateLayoutNames[LayoutType.PriorityGrid]); Assert.IsNotNull(_session?.GetHorizontalDefaultButton(true)); _session?.Click(ElementName.Cancel); @@ -328,7 +328,7 @@ public void DeleteDefaultLayout() var defaultLayouts = new DefaultLayouts(); var data = defaultLayouts.Read(defaultLayouts.File); string configuration = MonitorConfigurationType.Horizontal.TypeToString(); - Assert.AreEqual(TemplateLayoutJsonTags[TemplateLayout.PriorityGrid], data.DefaultLayouts.Find(x => x.MonitorConfiguration == configuration).Layout.Type); + Assert.AreEqual(LayoutType.PriorityGrid.TypeToString(), data.DefaultLayouts.Find(x => x.MonitorConfiguration == configuration).Layout.Type); } [TestMethod] diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/EditLayoutTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/EditLayoutTests.cs index a119c6e5940f..ef86dfd7337e 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/EditLayoutTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/EditLayoutTests.cs @@ -119,16 +119,16 @@ public void TestInitialize() { new LayoutTemplates.TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.Empty], + Type = LayoutType.Blank.TypeToString(), }, new LayoutTemplates.TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.Focus], + Type = LayoutType.Focus.TypeToString(), ZoneCount = 10, }, new LayoutTemplates.TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.Rows], + Type = LayoutType.Rows.TypeToString(), ZoneCount = 2, ShowSpacing = true, Spacing = 10, @@ -136,7 +136,7 @@ public void TestInitialize() }, new LayoutTemplates.TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.Columns], + Type = LayoutType.Columns.TypeToString(), ZoneCount = 2, ShowSpacing = true, Spacing = 20, @@ -144,7 +144,7 @@ public void TestInitialize() }, new LayoutTemplates.TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.Grid], + Type = LayoutType.Grid.TypeToString(), ZoneCount = 4, ShowSpacing = false, Spacing = 10, @@ -152,7 +152,7 @@ public void TestInitialize() }, new LayoutTemplates.TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.PriorityGrid], + Type = LayoutType.PriorityGrid.TypeToString(), ZoneCount = 3, ShowSpacing = true, Spacing = 1, diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/LayoutHotkeysTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/LayoutHotkeysTests.cs index 260be6c6ea0a..fcc097950ce2 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/LayoutHotkeysTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/LayoutHotkeysTests.cs @@ -245,16 +245,16 @@ public void TestInitialize() { new LayoutTemplates.TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.Empty], + Type = LayoutType.Blank.TypeToString(), }, new LayoutTemplates.TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.Focus], + Type = LayoutType.Focus.TypeToString(), ZoneCount = 10, }, new LayoutTemplates.TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.Rows], + Type = LayoutType.Rows.TypeToString(), ZoneCount = 2, ShowSpacing = true, Spacing = 10, @@ -262,7 +262,7 @@ public void TestInitialize() }, new LayoutTemplates.TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.Columns], + Type = LayoutType.Columns.TypeToString(), ZoneCount = 2, ShowSpacing = true, Spacing = 20, @@ -270,7 +270,7 @@ public void TestInitialize() }, new LayoutTemplates.TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.Grid], + Type = LayoutType.Grid.TypeToString(), ZoneCount = 4, ShowSpacing = false, Spacing = 10, @@ -278,7 +278,7 @@ public void TestInitialize() }, new LayoutTemplates.TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.PriorityGrid], + Type = LayoutType.PriorityGrid.TypeToString(), ZoneCount = 3, ShowSpacing = true, Spacing = 1, diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/RunFancyZonesEditorTest.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/RunFancyZonesEditorTest.cs index 73ed465dad26..f0fb5a6bdabc 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/RunFancyZonesEditorTest.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/RunFancyZonesEditorTest.cs @@ -73,16 +73,16 @@ public static void ClassInitialize(TestContext testContext) { new LayoutTemplates.TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.Empty], + Type = LayoutType.Blank.TypeToString(), }, new LayoutTemplates.TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.Focus], + Type = LayoutType.Focus.TypeToString(), ZoneCount = 10, }, new LayoutTemplates.TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.Rows], + Type = LayoutType.Rows.TypeToString(), ZoneCount = 2, ShowSpacing = true, Spacing = 10, @@ -90,7 +90,7 @@ public static void ClassInitialize(TestContext testContext) }, new LayoutTemplates.TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.Columns], + Type = LayoutType.Columns.TypeToString(), ZoneCount = 2, ShowSpacing = true, Spacing = 20, @@ -98,7 +98,7 @@ public static void ClassInitialize(TestContext testContext) }, new LayoutTemplates.TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.Grid], + Type = LayoutType.Grid.TypeToString(), ZoneCount = 4, ShowSpacing = false, Spacing = 10, @@ -106,7 +106,7 @@ public static void ClassInitialize(TestContext testContext) }, new LayoutTemplates.TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.PriorityGrid], + Type = LayoutType.PriorityGrid.TypeToString(), ZoneCount = 3, ShowSpacing = true, Spacing = 1, @@ -189,18 +189,18 @@ public void TestCleanup() [TestMethod] public void OpenEditLayoutDialog() // verify the edit layout dialog is opened { - _session?.ClickEditLayout(TestConstants.TemplateLayoutNames[TemplateLayout.Grid]); + _session?.ClickEditLayout(TestConstants.TemplateLayoutNames[LayoutType.Grid]); Assert.IsNotNull(_session?.FindByAccessibilityId(FancyZonesEditorSession.AccessibilityId.DialogTitle)); // check the pane header - Assert.IsNotNull(_session?.FindByName($"Edit '{TestConstants.TemplateLayoutNames[TemplateLayout.Grid]}'")); // verify it's opened for the correct layout + Assert.IsNotNull(_session?.FindByName($"Edit '{TestConstants.TemplateLayoutNames[LayoutType.Grid]}'")); // verify it's opened for the correct layout } [TestMethod] public void OpenEditLayoutDialog_ByContextMenu_TemplateLayout() // verify the edit layout dialog is opened { - _session?.ClickContextMenuItem(TestConstants.TemplateLayoutNames[TemplateLayout.Grid], FancyZonesEditorSession.ElementName.Edit); + _session?.ClickContextMenuItem(TestConstants.TemplateLayoutNames[LayoutType.Grid], FancyZonesEditorSession.ElementName.Edit); _session?.WaitElementDisplayedById(FancyZonesEditorSession.AccessibilityId.DialogTitle); Assert.IsNotNull(_session?.FindByAccessibilityId(FancyZonesEditorSession.AccessibilityId.DialogTitle)); // check the pane header - Assert.IsNotNull(_session?.FindByName($"Edit '{TestConstants.TemplateLayoutNames[TemplateLayout.Grid]}'")); // verify it's opened for the correct layout + Assert.IsNotNull(_session?.FindByName($"Edit '{TestConstants.TemplateLayoutNames[LayoutType.Grid]}'")); // verify it's opened for the correct layout } [TestMethod] @@ -216,7 +216,7 @@ public void OpenEditLayoutDialog_ByContextMenu_CustomLayout() // verify the edit [TestMethod] public void OpenContextMenu() // verify the context menu is opened { - Assert.IsNotNull(_session?.OpenContextMenu(TestConstants.TemplateLayoutNames[TemplateLayout.Columns])); + Assert.IsNotNull(_session?.OpenContextMenu(TestConstants.TemplateLayoutNames[LayoutType.Columns])); } [TestMethod] diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs index 9bfe936e00ea..123c9425c0f4 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs @@ -25,16 +25,16 @@ public class TemplateLayoutsTests { new TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.Empty], + Type = LayoutType.Blank.TypeToString(), }, new TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.Focus], + Type = LayoutType.Focus.TypeToString(), ZoneCount = 10, }, new TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.Rows], + Type = LayoutType.Rows.TypeToString(), ZoneCount = 2, ShowSpacing = true, Spacing = 10, @@ -42,7 +42,7 @@ public class TemplateLayoutsTests }, new TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.Columns], + Type = LayoutType.Columns.TypeToString(), ZoneCount = 2, ShowSpacing = true, Spacing = 20, @@ -50,7 +50,7 @@ public class TemplateLayoutsTests }, new TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.Grid], + Type = LayoutType.Grid.TypeToString(), ZoneCount = 4, ShowSpacing = false, Spacing = 10, @@ -58,7 +58,7 @@ public class TemplateLayoutsTests }, new TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.PriorityGrid], + Type = LayoutType.PriorityGrid.TypeToString(), ZoneCount = 3, ShowSpacing = true, Spacing = 1, @@ -100,7 +100,7 @@ public void TestInitialize() MonitorConfiguration = MonitorConfigurationType.Vertical.TypeToString(), Layout = new DefaultLayoutWrapper.LayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.Rows], + Type = LayoutType.Rows.TypeToString(), ZoneCount = 2, ShowSpacing = true, Spacing = 10, @@ -112,7 +112,7 @@ public void TestInitialize() MonitorConfiguration = MonitorConfigurationType.Horizontal.TypeToString(), Layout = new DefaultLayoutWrapper.LayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.PriorityGrid], + Type = LayoutType.PriorityGrid.TypeToString(), ZoneCount = 3, ShowSpacing = true, Spacing = 1, @@ -169,7 +169,7 @@ public void TestInitialize() AppliedLayout = new AppliedLayoutWrapper.LayoutWrapper { Uuid = "{72409DFC-2B87-469B-AAC4-557273791C26}", - Type = TemplateLayoutJsonTags[TemplateLayout.PriorityGrid], + Type = LayoutType.PriorityGrid.TypeToString(), ZoneCount = 3, ShowSpacing = true, Spacing = 1, @@ -209,7 +209,7 @@ public void ZoneNumber_Initialize() { foreach (var (key, name) in TestConstants.TemplateLayoutNames) { - if (key == TemplateLayout.Empty) + if (key == LayoutType.Blank) { continue; } @@ -218,7 +218,7 @@ public void ZoneNumber_Initialize() var slider = _session?.FindByAccessibilityId(AccessibilityId.TemplateZoneSlider); Assert.IsNotNull(slider); - var expected = Layouts.LayoutTemplates.Find(x => x.Type == TemplateLayoutJsonTags[key]).ZoneCount; + var expected = Layouts.LayoutTemplates.Find(x => x.Type == key.TypeToString()).ZoneCount; Assert.AreEqual($"{expected}", slider.Text); _session?.Click(ElementName.Cancel); @@ -229,8 +229,8 @@ public void ZoneNumber_Initialize() [TestMethod] public void ZoneNumber_Save() { - var type = TemplateLayout.Columns; - var layout = Layouts.LayoutTemplates.Find(x => x.Type == TemplateLayoutJsonTags[type]); + var type = LayoutType.Columns; + var layout = Layouts.LayoutTemplates.Find(x => x.Type == type.TypeToString()); var value = layout.ZoneCount; var expected = value - 1; _session?.ClickEditLayout(TestConstants.TemplateLayoutNames[type]); @@ -246,15 +246,15 @@ public void ZoneNumber_Save() // verify the file var templateLayouts = new LayoutTemplates(); var data = templateLayouts.Read(templateLayouts.File); - var actual = data.LayoutTemplates.Find(x => x.Type == TemplateLayoutJsonTags[type]).ZoneCount; + var actual = data.LayoutTemplates.Find(x => x.Type == type.TypeToString()).ZoneCount; Assert.AreEqual(expected, actual); } [TestMethod] public void ZoneNumber_Cancel() { - var type = TemplateLayout.Rows; - var layout = Layouts.LayoutTemplates.Find(x => x.Type == TemplateLayoutJsonTags[type]); + var type = LayoutType.Rows; + var layout = Layouts.LayoutTemplates.Find(x => x.Type == type.TypeToString()); var expected = layout.ZoneCount; _session?.ClickEditLayout(TestConstants.TemplateLayoutNames[type]); @@ -268,16 +268,16 @@ public void ZoneNumber_Cancel() // verify the file var templateLayouts = new LayoutTemplates(); var data = templateLayouts.Read(templateLayouts.File); - var actual = data.LayoutTemplates.Find(x => x.Type == TemplateLayoutJsonTags[type]).ZoneCount; + var actual = data.LayoutTemplates.Find(x => x.Type == type.TypeToString()).ZoneCount; Assert.AreEqual(expected, actual); } [TestMethod] public void HighlightDistance_Initialize() { - foreach (var (key, name) in TestConstants.TemplateLayoutNames) + foreach (var (type, name) in TestConstants.TemplateLayoutNames) { - if (key == TemplateLayout.Empty) + if (type == LayoutType.Blank) { continue; } @@ -286,7 +286,7 @@ public void HighlightDistance_Initialize() var slider = _session?.FindByAccessibilityId(AccessibilityId.SensitivitySlider); Assert.IsNotNull(slider); - var expected = Layouts.LayoutTemplates.Find(x => x.Type == TemplateLayoutJsonTags[key]).SensitivityRadius; + var expected = Layouts.LayoutTemplates.Find(x => x.Type == type.TypeToString()).SensitivityRadius; Assert.AreEqual($"{expected}", slider.Text); _session?.Click(ElementName.Cancel); @@ -297,8 +297,8 @@ public void HighlightDistance_Initialize() [TestMethod] public void HighlightDistance_Save() { - var type = TemplateLayout.Focus; - var layout = Layouts.LayoutTemplates.Find(x => x.Type == TemplateLayoutJsonTags[type]); + var type = LayoutType.Focus; + var layout = Layouts.LayoutTemplates.Find(x => x.Type == type.TypeToString()); var value = layout.SensitivityRadius; _session?.ClickEditLayout(TestConstants.TemplateLayoutNames[type]); @@ -315,15 +315,15 @@ public void HighlightDistance_Save() // verify the file var templateLayouts = new LayoutTemplates(); var data = templateLayouts.Read(templateLayouts.File); - var actual = data.LayoutTemplates.Find(x => x.Type == TemplateLayoutJsonTags[type]).SensitivityRadius; + var actual = data.LayoutTemplates.Find(x => x.Type == type.TypeToString()).SensitivityRadius; Assert.AreEqual(expected, actual); } [TestMethod] public void HighlightDistance_Cancel() { - var type = TemplateLayout.Focus; - var layout = Layouts.LayoutTemplates.Find(x => x.Type == TemplateLayoutJsonTags[type]); + var type = LayoutType.Focus; + var layout = Layouts.LayoutTemplates.Find(x => x.Type == type.TypeToString()); var expected = layout.SensitivityRadius; _session?.ClickEditLayout(TestConstants.TemplateLayoutNames[type]); @@ -336,16 +336,16 @@ public void HighlightDistance_Cancel() // verify the file var templateLayouts = new LayoutTemplates(); var data = templateLayouts.Read(templateLayouts.File); - var actual = data.LayoutTemplates.Find(x => x.Type == TemplateLayoutJsonTags[type]).SensitivityRadius; + var actual = data.LayoutTemplates.Find(x => x.Type == type.TypeToString()).SensitivityRadius; Assert.AreEqual(expected, actual); } [TestMethod] public void SpaceAroundZones_Initialize() { - foreach (var (key, name) in TestConstants.TemplateLayoutNames) + foreach (var (type, name) in TestConstants.TemplateLayoutNames) { - if (key == TemplateLayout.Empty || key == TemplateLayout.Focus) + if (type == LayoutType.Blank || type == LayoutType.Focus) { // only for grid layouts continue; @@ -356,10 +356,10 @@ public void SpaceAroundZones_Initialize() var slider = _session?.FindByAccessibilityId(AccessibilityId.SpacingSlider); Assert.IsNotNull(slider); - var spacingEnabled = Layouts.LayoutTemplates.Find(x => x.Type == TemplateLayoutJsonTags[key]).ShowSpacing; + var spacingEnabled = Layouts.LayoutTemplates.Find(x => x.Type == type.TypeToString()).ShowSpacing; Assert.AreEqual(spacingEnabled, slider.Enabled); - var expected = Layouts.LayoutTemplates.Find(x => x.Type == TemplateLayoutJsonTags[key]).Spacing; + var expected = Layouts.LayoutTemplates.Find(x => x.Type == type.TypeToString()).Spacing; Assert.AreEqual($"{expected}", slider.Text); _session?.Click(ElementName.Cancel); @@ -370,8 +370,8 @@ public void SpaceAroundZones_Initialize() [TestMethod] public void SpaceAroundZones_Slider_Save() { - var type = TemplateLayout.PriorityGrid; - var layout = Layouts.LayoutTemplates.Find(x => x.Type == TemplateLayoutJsonTags[type]); + var type = LayoutType.PriorityGrid; + var layout = Layouts.LayoutTemplates.Find(x => x.Type == type.TypeToString()); var expected = layout.Spacing + 1; _session?.ClickEditLayout(TestConstants.TemplateLayoutNames[type]); @@ -386,15 +386,15 @@ public void SpaceAroundZones_Slider_Save() // verify the file var templateLayouts = new LayoutTemplates(); var data = templateLayouts.Read(templateLayouts.File); - var actual = data.LayoutTemplates.Find(x => x.Type == TemplateLayoutJsonTags[type]).Spacing; + var actual = data.LayoutTemplates.Find(x => x.Type == type.TypeToString()).Spacing; Assert.AreEqual(expected, actual); } [TestMethod] public void SpaceAroundZones_Slider_Cancel() { - var type = TemplateLayout.PriorityGrid; - var layout = Layouts.LayoutTemplates.Find(x => x.Type == TemplateLayoutJsonTags[type]); + var type = LayoutType.PriorityGrid; + var layout = Layouts.LayoutTemplates.Find(x => x.Type == type.TypeToString()); var expected = layout.Spacing; _session?.ClickEditLayout(TestConstants.TemplateLayoutNames[type]); @@ -409,15 +409,15 @@ public void SpaceAroundZones_Slider_Cancel() // verify the file var templateLayouts = new LayoutTemplates(); var data = templateLayouts.Read(templateLayouts.File); - var actual = data.LayoutTemplates.Find(x => x.Type == TemplateLayoutJsonTags[type]).Spacing; + var actual = data.LayoutTemplates.Find(x => x.Type == type.TypeToString()).Spacing; Assert.AreEqual(expected, actual); } [TestMethod] public void SpaceAroundZones_Toggle_Save() { - var type = TemplateLayout.PriorityGrid; - var layout = Layouts.LayoutTemplates.Find(x => x.Type == TemplateLayoutJsonTags[type]); + var type = LayoutType.PriorityGrid; + var layout = Layouts.LayoutTemplates.Find(x => x.Type == type.TypeToString()); var expected = !layout.ShowSpacing; _session?.ClickEditLayout(TestConstants.TemplateLayoutNames[type]); @@ -433,15 +433,15 @@ public void SpaceAroundZones_Toggle_Save() // verify the file var templateLayouts = new LayoutTemplates(); var data = templateLayouts.Read(templateLayouts.File); - var actual = data.LayoutTemplates.Find(x => x.Type == TemplateLayoutJsonTags[type]).ShowSpacing; + var actual = data.LayoutTemplates.Find(x => x.Type == type.TypeToString()).ShowSpacing; Assert.AreEqual(expected, actual); } [TestMethod] public void SpaceAroundZones_Toggle_Cancel() { - var type = TemplateLayout.PriorityGrid; - var layout = Layouts.LayoutTemplates.Find(x => x.Type == TemplateLayoutJsonTags[type]); + var type = LayoutType.PriorityGrid; + var layout = Layouts.LayoutTemplates.Find(x => x.Type == type.TypeToString()); var expected = layout.ShowSpacing; _session?.ClickEditLayout(TestConstants.TemplateLayoutNames[type]); @@ -457,7 +457,7 @@ public void SpaceAroundZones_Toggle_Cancel() // verify the file var templateLayouts = new LayoutTemplates(); var data = templateLayouts.Read(templateLayouts.File); - var actual = data.LayoutTemplates.Find(x => x.Type == TemplateLayoutJsonTags[type]).ShowSpacing; + var actual = data.LayoutTemplates.Find(x => x.Type == type.TypeToString()).ShowSpacing; Assert.AreEqual(expected, actual); } } diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/TestConstants.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/TestConstants.cs index 21f5d1836c7e..44fb4608991e 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/TestConstants.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/TestConstants.cs @@ -3,20 +3,20 @@ // See the LICENSE file in the project root for more information. using System.Collections.Generic; -using static FancyZonesEditorCommon.Data.Constants; +using FancyZonesEditorCommon.Data; namespace Microsoft.FancyZonesEditor.UITests { public static class TestConstants { - public static readonly Dictionary TemplateLayoutNames = new Dictionary() + public static readonly Dictionary TemplateLayoutNames = new Dictionary() { - { TemplateLayout.Empty, "No layout" }, - { TemplateLayout.Focus, "Focus" }, - { TemplateLayout.Rows, "Rows" }, - { TemplateLayout.Columns, "Columns" }, - { TemplateLayout.Grid, "Grid" }, - { TemplateLayout.PriorityGrid, "Priority Grid" }, + { LayoutType.Blank, "No layout" }, + { LayoutType.Focus, "Focus" }, + { LayoutType.Rows, "Rows" }, + { LayoutType.Columns, "Columns" }, + { LayoutType.Grid, "Grid" }, + { LayoutType.PriorityGrid, "Priority Grid" }, }; } } diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializationTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializationTests.cs index 32a6dbdbcdd3..4b81e3414c6b 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializationTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializationTests.cs @@ -41,16 +41,16 @@ public void TestInitialize() { new LayoutTemplates.TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.Empty], + Type = LayoutType.Blank.TypeToString(), }, new LayoutTemplates.TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.Focus], + Type = LayoutType.Focus.TypeToString(), ZoneCount = 10, }, new LayoutTemplates.TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.Rows], + Type = LayoutType.Rows.TypeToString(), ZoneCount = 2, ShowSpacing = true, Spacing = 10, @@ -58,7 +58,7 @@ public void TestInitialize() }, new LayoutTemplates.TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.Columns], + Type = LayoutType.Columns.TypeToString(), ZoneCount = 2, ShowSpacing = true, Spacing = 20, @@ -66,7 +66,7 @@ public void TestInitialize() }, new LayoutTemplates.TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.Grid], + Type = LayoutType.Grid.TypeToString(), ZoneCount = 4, ShowSpacing = false, Spacing = 10, @@ -74,7 +74,7 @@ public void TestInitialize() }, new LayoutTemplates.TemplateLayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.PriorityGrid], + Type = LayoutType.PriorityGrid.TypeToString(), ZoneCount = 3, ShowSpacing = true, Spacing = 1, @@ -366,7 +366,7 @@ public void AppliedLayouts_LayoutsApplied() AppliedLayout = new AppliedLayouts.AppliedLayoutWrapper.LayoutWrapper { Uuid = "{00000000-0000-0000-0000-000000000000}", - Type = TemplateLayoutJsonTags[TemplateLayout.Columns], + Type = LayoutType.Columns.TypeToString(), ShowSpacing = true, Spacing = 10, ZoneCount = 1, @@ -386,7 +386,7 @@ public void AppliedLayouts_LayoutsApplied() AppliedLayout = new AppliedLayouts.AppliedLayoutWrapper.LayoutWrapper { Uuid = customLayoutListWrapper.CustomLayouts[0].Uuid, - Type = CustomLayoutJsonTag, + Type = LayoutType.Custom.TypeToString(), }, }, }, @@ -396,7 +396,7 @@ public void AppliedLayouts_LayoutsApplied() _session = new FancyZonesEditorSession(_context!); // check layout on monitor 1 - var layoutOnMonitor1 = _session?.GetLayout(TestConstants.TemplateLayoutNames[TemplateLayout.Columns]); + var layoutOnMonitor1 = _session?.GetLayout(TestConstants.TemplateLayoutNames[LayoutType.Columns]); Assert.IsNotNull(layoutOnMonitor1); Assert.IsTrue(layoutOnMonitor1.Selected); @@ -477,7 +477,7 @@ public void AppliedLayouts_CustomLayoutsApplied_LayoutIdNotFound() AppliedLayout = new AppliedLayouts.AppliedLayoutWrapper.LayoutWrapper { Uuid = "{00000000-0000-0000-0000-000000000000}", - Type = CustomLayoutJsonTag, + Type = LayoutType.Custom.TypeToString(), }, }, }, @@ -486,7 +486,7 @@ public void AppliedLayouts_CustomLayoutsApplied_LayoutIdNotFound() _session = new FancyZonesEditorSession(_context!); - var emptyLayout = _session?.GetLayout(TestConstants.TemplateLayoutNames[TemplateLayout.Empty]); + var emptyLayout = _session?.GetLayout(TestConstants.TemplateLayoutNames[LayoutType.Blank]); Assert.IsNotNull(emptyLayout); Assert.IsTrue(emptyLayout.Selected); } @@ -553,7 +553,7 @@ public void AppliedLayouts_NoLayoutsApplied_CustomDefaultLayout() MonitorConfiguration = MonitorConfigurationType.Horizontal.TypeToString(), Layout = new DefaultLayouts.DefaultLayoutWrapper.LayoutWrapper { - Type = CustomLayoutJsonTag, + Type = LayoutType.Custom.TypeToString(), Uuid = customLayoutListWrapper.CustomLayouts[0].Uuid, }, }, @@ -608,7 +608,7 @@ public void AppliedLayouts_NoLayoutsApplied_TemplateDefaultLayout() MonitorConfiguration = MonitorConfigurationType.Horizontal.TypeToString(), Layout = new DefaultLayouts.DefaultLayoutWrapper.LayoutWrapper { - Type = TemplateLayoutJsonTags[TemplateLayout.Grid], + Type = LayoutType.Grid.TypeToString(), ZoneCount = 6, ShowSpacing = true, Spacing = 5, @@ -621,12 +621,12 @@ public void AppliedLayouts_NoLayoutsApplied_TemplateDefaultLayout() _session = new FancyZonesEditorSession(_context!); - var defaultLayout = _session?.GetLayout(TestConstants.TemplateLayoutNames[TemplateLayout.Grid]); + var defaultLayout = _session?.GetLayout(TestConstants.TemplateLayoutNames[LayoutType.Grid]); Assert.IsNotNull(defaultLayout); Assert.IsTrue(defaultLayout.Selected); // check the number of zones and spacing - _session?.ClickEditLayout(TestConstants.TemplateLayoutNames[TemplateLayout.Grid]); + _session?.ClickEditLayout(TestConstants.TemplateLayoutNames[LayoutType.Grid]); Assert.AreEqual(defaultLayoutsListWrapper.DefaultLayouts[0].Layout.ZoneCount, int.Parse(_session?.FindByAccessibilityId(AccessibilityId.TemplateZoneSlider)?.Text!, CultureInfo.InvariantCulture)); Assert.AreEqual(defaultLayoutsListWrapper.DefaultLayouts[0].Layout.Spacing, int.Parse(_session?.FindByAccessibilityId(AccessibilityId.SpacingSlider)?.Text!, CultureInfo.InvariantCulture)); Assert.AreEqual(defaultLayoutsListWrapper.DefaultLayouts[0].Layout.ShowSpacing, _session?.FindByAccessibilityId(AccessibilityId.SpacingSlider)?.Enabled); @@ -683,7 +683,7 @@ public void AppliedLayouts_VerifyDisconnectedMonitorsLayoutsAreNotChanged() AppliedLayout = new AppliedLayouts.AppliedLayoutWrapper.LayoutWrapper { Uuid = "{00000000-0000-0000-0000-000000000000}", - Type = TemplateLayoutJsonTags[TemplateLayout.Focus], + Type = LayoutType.Focus.TypeToString(), ShowSpacing = true, Spacing = 10, ZoneCount = 4, @@ -703,7 +703,7 @@ public void AppliedLayouts_VerifyDisconnectedMonitorsLayoutsAreNotChanged() AppliedLayout = new AppliedLayouts.AppliedLayoutWrapper.LayoutWrapper { Uuid = "{00000000-0000-0000-0000-000000000000}", - Type = TemplateLayoutJsonTags[TemplateLayout.Columns], + Type = LayoutType.Columns.TypeToString(), ShowSpacing = true, Spacing = 10, ZoneCount = 1, @@ -715,7 +715,7 @@ public void AppliedLayouts_VerifyDisconnectedMonitorsLayoutsAreNotChanged() FancyZonesEditorSession.Files.AppliedLayoutsIOHelper.WriteData(appliedLayouts.Serialize(appliedLayoutsWrapper)); _session = new FancyZonesEditorSession(_context!); - _session?.Click(_session?.GetLayout(TestConstants.TemplateLayoutNames[TemplateLayout.Rows])!); + _session?.Click(_session?.GetLayout(TestConstants.TemplateLayoutNames[LayoutType.Rows])!); // check the file var data = appliedLayouts.Read(appliedLayouts.File); @@ -783,7 +783,7 @@ public void AppliedLayouts_VerifyOtherVirtualDesktopsAreNotChanged() AppliedLayout = new AppliedLayouts.AppliedLayoutWrapper.LayoutWrapper { Uuid = "{00000000-0000-0000-0000-000000000000}", - Type = TemplateLayoutJsonTags[TemplateLayout.Focus], + Type = LayoutType.Focus.TypeToString(), ShowSpacing = true, Spacing = 10, ZoneCount = 4, @@ -795,7 +795,7 @@ public void AppliedLayouts_VerifyOtherVirtualDesktopsAreNotChanged() FancyZonesEditorSession.Files.AppliedLayoutsIOHelper.WriteData(appliedLayouts.Serialize(appliedLayoutsWrapper)); _session = new FancyZonesEditorSession(_context!); - _session?.Click(_session?.GetLayout(TestConstants.TemplateLayoutNames[TemplateLayout.Rows])!); + _session?.Click(_session?.GetLayout(TestConstants.TemplateLayoutNames[LayoutType.Rows])!); // check the file var data = appliedLayouts.Read(appliedLayouts.File); @@ -803,7 +803,7 @@ public void AppliedLayouts_VerifyOtherVirtualDesktopsAreNotChanged() Assert.IsNotNull(data.AppliedLayouts.Find(x => x.Device.VirtualDesktop == virtualDesktop1)); Assert.IsNotNull(data.AppliedLayouts.Find(x => x.Device.VirtualDesktop == virtualDesktop2)); Assert.AreEqual(appliedLayoutsWrapper.AppliedLayouts[0].AppliedLayout.Type, data.AppliedLayouts.Find(x => x.Device.VirtualDesktop == virtualDesktop2).AppliedLayout.Type); - Assert.AreEqual(TemplateLayoutJsonTags[TemplateLayout.Rows], data.AppliedLayouts.Find(x => x.Device.VirtualDesktop == virtualDesktop1).AppliedLayout.Type); + Assert.AreEqual(LayoutType.Rows.TypeToString(), data.AppliedLayouts.Find(x => x.Device.VirtualDesktop == virtualDesktop1).AppliedLayout.Type); } } } diff --git a/src/modules/fancyzones/editor/FancyZonesEditor/Converters/LayoutModelTypeBlankToVisibilityConverter.cs b/src/modules/fancyzones/editor/FancyZonesEditor/Converters/LayoutModelTypeBlankToVisibilityConverter.cs index 6dea0953668d..4c681548660a 100644 --- a/src/modules/fancyzones/editor/FancyZonesEditor/Converters/LayoutModelTypeBlankToVisibilityConverter.cs +++ b/src/modules/fancyzones/editor/FancyZonesEditor/Converters/LayoutModelTypeBlankToVisibilityConverter.cs @@ -6,7 +6,7 @@ using System.Globalization; using System.Windows; using System.Windows.Data; -using FancyZonesEditor.Models; +using FancyZonesEditorCommon.Data; namespace FancyZonesEditor.Converters { diff --git a/src/modules/fancyzones/editor/FancyZonesEditor/Converters/LayoutTypeCustomToVisibilityConverter.cs b/src/modules/fancyzones/editor/FancyZonesEditor/Converters/LayoutTypeCustomToVisibilityConverter.cs index 67f685de71b2..5851531ecc05 100644 --- a/src/modules/fancyzones/editor/FancyZonesEditor/Converters/LayoutTypeCustomToVisibilityConverter.cs +++ b/src/modules/fancyzones/editor/FancyZonesEditor/Converters/LayoutTypeCustomToVisibilityConverter.cs @@ -6,7 +6,7 @@ using System.Globalization; using System.Windows; using System.Windows.Data; -using FancyZonesEditor.Models; +using FancyZonesEditorCommon.Data; namespace FancyZonesEditor.Converters { diff --git a/src/modules/fancyzones/editor/FancyZonesEditor/Converters/LayoutTypeTemplateToVisibilityConverter.cs b/src/modules/fancyzones/editor/FancyZonesEditor/Converters/LayoutTypeTemplateToVisibilityConverter.cs index c525f2a11f58..9c0ccc1c2856 100644 --- a/src/modules/fancyzones/editor/FancyZonesEditor/Converters/LayoutTypeTemplateToVisibilityConverter.cs +++ b/src/modules/fancyzones/editor/FancyZonesEditor/Converters/LayoutTypeTemplateToVisibilityConverter.cs @@ -6,7 +6,7 @@ using System.Globalization; using System.Windows; using System.Windows.Data; -using FancyZonesEditor.Models; +using FancyZonesEditorCommon.Data; namespace FancyZonesEditor.Converters { diff --git a/src/modules/fancyzones/editor/FancyZonesEditor/EditorWindow.cs b/src/modules/fancyzones/editor/FancyZonesEditor/EditorWindow.cs index 81993a5cf2b3..5769257359b1 100644 --- a/src/modules/fancyzones/editor/FancyZonesEditor/EditorWindow.cs +++ b/src/modules/fancyzones/editor/FancyZonesEditor/EditorWindow.cs @@ -5,6 +5,7 @@ using System; using System.Windows; using FancyZonesEditor.Models; +using FancyZonesEditorCommon.Data; using ManagedCommon; namespace FancyZonesEditor diff --git a/src/modules/fancyzones/editor/FancyZonesEditor/Models/CanvasLayoutModel.cs b/src/modules/fancyzones/editor/FancyZonesEditor/Models/CanvasLayoutModel.cs index 7eaa5f52e8ef..19410caa1c4a 100644 --- a/src/modules/fancyzones/editor/FancyZonesEditor/Models/CanvasLayoutModel.cs +++ b/src/modules/fancyzones/editor/FancyZonesEditor/Models/CanvasLayoutModel.cs @@ -4,6 +4,7 @@ using System.Collections.Generic; using System.Windows; +using FancyZonesEditorCommon.Data; namespace FancyZonesEditor.Models { diff --git a/src/modules/fancyzones/editor/FancyZonesEditor/Models/LayoutSettings.cs b/src/modules/fancyzones/editor/FancyZonesEditor/Models/LayoutSettings.cs index dfc325874549..c6dd46af9749 100644 --- a/src/modules/fancyzones/editor/FancyZonesEditor/Models/LayoutSettings.cs +++ b/src/modules/fancyzones/editor/FancyZonesEditor/Models/LayoutSettings.cs @@ -2,7 +2,6 @@ // The Microsoft Corporation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. -using FancyZonesEditor.Models; using FancyZonesEditorCommon.Data; namespace FancyZonesEditor diff --git a/src/modules/fancyzones/editor/FancyZonesEditor/Models/LayoutType.cs b/src/modules/fancyzones/editor/FancyZonesEditor/Models/LayoutType.cs deleted file mode 100644 index 2d514449ecc9..000000000000 --- a/src/modules/fancyzones/editor/FancyZonesEditor/Models/LayoutType.cs +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright (c) Microsoft Corporation -// The Microsoft Corporation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -namespace FancyZonesEditor.Models -{ - public enum LayoutType - { - Blank = 0, - Focus, - Columns, - Rows, - Grid, - PriorityGrid, - Custom, - } -} diff --git a/src/modules/fancyzones/editor/FancyZonesEditor/Utils/FancyZonesEditorIO.cs b/src/modules/fancyzones/editor/FancyZonesEditor/Utils/FancyZonesEditorIO.cs index 40123e1da690..88a2e4fec001 100644 --- a/src/modules/fancyzones/editor/FancyZonesEditor/Utils/FancyZonesEditorIO.cs +++ b/src/modules/fancyzones/editor/FancyZonesEditor/Utils/FancyZonesEditorIO.cs @@ -269,7 +269,7 @@ public void SerializeAppliedLayouts() AppliedLayout = new AppliedLayouts.AppliedLayoutWrapper.LayoutWrapper { Uuid = zoneset.ZonesetUuid, - Type = LayoutTypeToJsonTag(zoneset.Type), + Type = zoneset.Type.TypeToString(), ShowSpacing = zoneset.ShowSpacing, Spacing = zoneset.Spacing, ZoneCount = zoneset.ZoneCount, @@ -345,7 +345,7 @@ public void SerializeLayoutTemplates() { LayoutTemplates.TemplateLayoutWrapper wrapper = new LayoutTemplates.TemplateLayoutWrapper { - Type = LayoutTypeToJsonTag(layout.Type), + Type = layout.Type.TypeToString(), SensitivityRadius = layout.SensitivityRadius, ZoneCount = layout.TemplateZoneCount, }; @@ -485,7 +485,7 @@ public void SerializeDefaultLayouts() DefaultLayouts.DefaultLayoutWrapper.LayoutWrapper layoutWrapper = new DefaultLayouts.DefaultLayoutWrapper.LayoutWrapper { Uuid = string.Empty, - Type = LayoutTypeToJsonTag(layout.Type), + Type = layout.Type.TypeToString(), SensitivityRadius = layout.SensitivityRadius, ZoneCount = layout.TemplateZoneCount, }; @@ -528,7 +528,7 @@ public void SerializeDefaultLayouts() DefaultLayouts.DefaultLayoutWrapper.LayoutWrapper layoutWrapper = new DefaultLayouts.DefaultLayoutWrapper.LayoutWrapper { Uuid = layout.Uuid, - Type = LayoutTypeToJsonTag(LayoutType.Custom), + Type = LayoutType.Custom.TypeToString(), }; if (layout is GridLayoutModel grid) @@ -599,7 +599,7 @@ private bool SetAppliedLayouts(List layouts continue; } - LayoutType layoutType = JsonTagToLayoutType(layout.AppliedLayout.Type); + LayoutType layoutType = LayoutTypeEnumExtension.TypeFromString(layout.AppliedLayout.Type); LayoutSettings settings = new LayoutSettings { ZonesetUuid = layout.AppliedLayout.Uuid, @@ -726,7 +726,7 @@ private bool SetTemplateLayouts(List temp foreach (var wrapper in templateLayouts) { - LayoutType type = JsonTagToLayoutType(wrapper.Type); + LayoutType type = LayoutTypeEnumExtension.TypeFromString(wrapper.Type); LayoutModel layout = MainWindowSettingsModel.TemplateModels[(int)type]; layout.SensitivityRadius = wrapper.SensitivityRadius; @@ -785,7 +785,7 @@ private bool SetDefaultLayouts(List layouts } else { - LayoutType layoutType = JsonTagToLayoutType(layout.Layout.Type); + LayoutType layoutType = LayoutTypeEnumExtension.TypeFromString(layout.Layout.Type); defaultLayoutModel = MainWindowSettingsModel.TemplateModels[(int)layoutType]; defaultLayoutModel.TemplateZoneCount = layout.Layout.ZoneCount; defaultLayoutModel.SensitivityRadius = layout.Layout.SensitivityRadius; @@ -887,58 +887,5 @@ private GridLayoutModel ParseGridInfo(CustomLayouts.CustomLayoutWrapper wrapper) layout.Spacing = info.Spacing; return layout; } - - private LayoutType JsonTagToLayoutType(string tag) - { - if (tag == Constants.TemplateLayoutJsonTags[Constants.TemplateLayout.Empty]) - { - return LayoutType.Blank; - } - else if (tag == Constants.TemplateLayoutJsonTags[Constants.TemplateLayout.Focus]) - { - return LayoutType.Focus; - } - else if (tag == Constants.TemplateLayoutJsonTags[Constants.TemplateLayout.Rows]) - { - return LayoutType.Rows; - } - else if (tag == Constants.TemplateLayoutJsonTags[Constants.TemplateLayout.Columns]) - { - return LayoutType.Columns; - } - else if (tag == Constants.TemplateLayoutJsonTags[Constants.TemplateLayout.Grid]) - { - return LayoutType.Grid; - } - else if (tag == Constants.TemplateLayoutJsonTags[Constants.TemplateLayout.PriorityGrid]) - { - return LayoutType.PriorityGrid; - } - - return LayoutType.Custom; - } - - private string LayoutTypeToJsonTag(LayoutType type) - { - switch (type) - { - case LayoutType.Blank: - return Constants.TemplateLayoutJsonTags[Constants.TemplateLayout.Empty]; - case LayoutType.Focus: - return Constants.TemplateLayoutJsonTags[Constants.TemplateLayout.Focus]; - case LayoutType.Columns: - return Constants.TemplateLayoutJsonTags[Constants.TemplateLayout.Columns]; - case LayoutType.Rows: - return Constants.TemplateLayoutJsonTags[Constants.TemplateLayout.Rows]; - case LayoutType.Grid: - return Constants.TemplateLayoutJsonTags[Constants.TemplateLayout.Grid]; - case LayoutType.PriorityGrid: - return Constants.TemplateLayoutJsonTags[Constants.TemplateLayout.PriorityGrid]; - case LayoutType.Custom: - return Constants.CustomLayoutJsonTag; - default: - return string.Empty; - } - } } } From ac93bdd4fde523f23e100a4c0adbbce234a540aa Mon Sep 17 00:00:00 2001 From: seraphima Date: Fri, 22 Mar 2024 22:59:15 +0100 Subject: [PATCH 69/78] CustomLayout enum extension --- .../FancyZonesEditorCommon/Data/Constants.cs | 25 ----------- .../Data/CustomLayoutEnumExtension.cs | 44 +++++++++++++++++++ .../ApplyLayoutTests.cs | 3 +- .../UITests-FancyZonesEditor/Constants.cs | 23 ---------- .../CopyLayoutTests.cs | 3 +- .../CreateLayoutTests.cs | 13 +++--- .../CustomLayoutsTests.cs | 27 ++++++------ .../DefaultLayoutsTests.cs | 9 ++-- .../DeleteLayoutTests.cs | 5 +-- .../EditLayoutTests.cs | 35 +++++++-------- .../LayoutHotkeysTests.cs | 23 +++++----- .../RunFancyZonesEditorTest.cs | 3 +- .../TemplateLayoutsTests.cs | 1 - .../UIInitializationTests.cs | 7 ++- .../Utils/FancyZonesEditorSession.cs | 7 +-- .../Models/CanvasLayoutModel.cs | 3 -- .../Models/GridLayoutModel.cs | 3 -- .../Utils/FancyZonesEditorIO.cs | 8 ++-- 18 files changed, 111 insertions(+), 131 deletions(-) delete mode 100644 src/modules/fancyzones/FancyZonesEditorCommon/Data/Constants.cs create mode 100644 src/modules/fancyzones/FancyZonesEditorCommon/Data/CustomLayoutEnumExtension.cs delete mode 100644 src/modules/fancyzones/UITests-FancyZonesEditor/Constants.cs diff --git a/src/modules/fancyzones/FancyZonesEditorCommon/Data/Constants.cs b/src/modules/fancyzones/FancyZonesEditorCommon/Data/Constants.cs deleted file mode 100644 index ee56f1c50209..000000000000 --- a/src/modules/fancyzones/FancyZonesEditorCommon/Data/Constants.cs +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright (c) Microsoft Corporation -// The Microsoft Corporation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System.Collections.Generic; -using System.Collections.ObjectModel; - -namespace FancyZonesEditorCommon.Data -{ - public static class Constants - { - public enum CustomLayout - { - Canvas, - Grid, - } - - public static readonly ReadOnlyDictionary CustomLayoutTypeJsonTags = new ReadOnlyDictionary( - new Dictionary() - { - { CustomLayout.Canvas, "canvas" }, - { CustomLayout.Grid, "grid" }, - }); - } -} diff --git a/src/modules/fancyzones/FancyZonesEditorCommon/Data/CustomLayoutEnumExtension.cs b/src/modules/fancyzones/FancyZonesEditorCommon/Data/CustomLayoutEnumExtension.cs new file mode 100644 index 000000000000..4f158b3acaef --- /dev/null +++ b/src/modules/fancyzones/FancyZonesEditorCommon/Data/CustomLayoutEnumExtension.cs @@ -0,0 +1,44 @@ +// Copyright (c) Microsoft Corporation +// The Microsoft Corporation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +namespace FancyZonesEditorCommon.Data +{ + public enum CustomLayout + { + Canvas, + Grid, + } + + public static class CustomLayoutEnumExtension + { + private const string CanvasJsonTag = "canvas"; + private const string GridJsonTag = "grid"; + + public static string TypeToString(this CustomLayout value) + { + switch (value) + { + case CustomLayout.Canvas: + return CanvasJsonTag; + case CustomLayout.Grid: + return GridJsonTag; + } + + return CanvasJsonTag; + } + + public static CustomLayout TypeFromString(string value) + { + switch (value) + { + case CanvasJsonTag: + return CustomLayout.Canvas; + case GridJsonTag: + return CustomLayout.Grid; + } + + return CustomLayout.Canvas; + } + } +} diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/ApplyLayoutTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/ApplyLayoutTests.cs index 83e6b0b8153c..768ad421d452 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/ApplyLayoutTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/ApplyLayoutTests.cs @@ -8,7 +8,6 @@ using Microsoft.FancyZonesEditor.UnitTests.Utils; using Microsoft.VisualStudio.TestTools.UnitTesting; using OpenQA.Selenium; -using static FancyZonesEditorCommon.Data.Constants; using static Microsoft.FancyZonesEditor.UnitTests.Utils.FancyZonesEditorSession; namespace Microsoft.FancyZonesEditor.UITests @@ -64,7 +63,7 @@ public class ApplyLayoutTests new CustomLayouts.CustomLayoutWrapper { Uuid = "{E7807D0D-6223-4883-B15B-1F3883944C09}", - Type = Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas], + Type = CustomLayout.Canvas.TypeToString(), Name = "Custom layout", Info = new CustomLayouts().ToJsonElement(new CustomLayouts.CanvasInfoWrapper { diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/Constants.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/Constants.cs deleted file mode 100644 index 9e5211e92707..000000000000 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/Constants.cs +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright (c) Microsoft Corporation -// The Microsoft Corporation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System.Collections.Generic; - -namespace Microsoft.FancyZonesEditor.UITests -{ - public static class Constants - { - public enum CustomLayoutType - { - Canvas, - Grid, - } - - public static readonly Dictionary CustomLayoutTypeNames = new Dictionary() - { - { CustomLayoutType.Canvas, "canvas" }, - { CustomLayoutType.Grid, "grid" }, - }; - } -} diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/CopyLayoutTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/CopyLayoutTests.cs index a9ef9af1127b..6ca82c3bcb9b 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/CopyLayoutTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/CopyLayoutTests.cs @@ -6,7 +6,6 @@ using FancyZonesEditorCommon.Data; using Microsoft.FancyZonesEditor.UnitTests.Utils; using Microsoft.VisualStudio.TestTools.UnitTesting; -using static FancyZonesEditorCommon.Data.Constants; using static FancyZonesEditorCommon.Data.EditorParameters; using static Microsoft.FancyZonesEditor.UnitTests.Utils.FancyZonesEditorSession; @@ -22,7 +21,7 @@ public class CopyLayoutTests new CustomLayouts.CustomLayoutWrapper { Uuid = "{0D6D2F58-9184-4804-81E4-4E4CC3476DC1}", - Type = Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Grid], + Type = CustomLayout.Grid.TypeToString(), Name = "Grid custom layout", Info = new CustomLayouts().ToJsonElement(new CustomLayouts.GridInfoWrapper { diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/CreateLayoutTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/CreateLayoutTests.cs index dc2f11629f11..e7ed8e9ce8e3 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/CreateLayoutTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/CreateLayoutTests.cs @@ -6,7 +6,6 @@ using FancyZonesEditorCommon.Data; using Microsoft.FancyZonesEditor.UnitTests.Utils; using Microsoft.VisualStudio.TestTools.UnitTesting; -using static FancyZonesEditorCommon.Data.Constants; using static Microsoft.FancyZonesEditor.UnitTests.Utils.FancyZonesEditorSession; namespace Microsoft.FancyZonesEditor.UITests @@ -191,7 +190,7 @@ public void CreateWithCustomName() [TestMethod] public void CreateGrid() { - Constants.CustomLayoutType type = Constants.CustomLayoutType.Grid; + CustomLayout type = CustomLayout.Grid; _session?.Click(_session?.FindByAccessibilityId(AccessibilityId.NewLayoutButton)); _session?.SelectNewLayoutType(type); _session?.ClickConfirm(); @@ -201,13 +200,13 @@ public void CreateGrid() var customLayouts = new CustomLayouts(); var data = customLayouts.Read(customLayouts.File); Assert.AreEqual(1, data.CustomLayouts.Count); - Assert.IsTrue(data.CustomLayouts.Exists(x => x.Type == Constants.CustomLayoutTypeNames[type])); + Assert.IsTrue(data.CustomLayouts.Exists(x => x.Type == type.TypeToString())); } [TestMethod] public void CreateCanvas() { - Constants.CustomLayoutType type = Constants.CustomLayoutType.Canvas; + CustomLayout type = CustomLayout.Canvas; _session?.Click(_session?.FindByAccessibilityId(AccessibilityId.NewLayoutButton)); _session?.SelectNewLayoutType(type); _session?.ClickConfirm(); @@ -217,13 +216,13 @@ public void CreateCanvas() var customLayouts = new CustomLayouts(); var data = customLayouts.Read(customLayouts.File); Assert.AreEqual(1, data.CustomLayouts.Count); - Assert.IsTrue(data.CustomLayouts.Exists(x => x.Type == Constants.CustomLayoutTypeNames[type])); + Assert.IsTrue(data.CustomLayouts.Exists(x => x.Type == type.TypeToString())); } [TestMethod] public void CancelGridCreation() { - Constants.CustomLayoutType type = Constants.CustomLayoutType.Grid; + CustomLayout type = CustomLayout.Grid; _session?.Click(_session?.FindByAccessibilityId(AccessibilityId.NewLayoutButton)); _session?.SelectNewLayoutType(type); _session?.ClickConfirm(); @@ -238,7 +237,7 @@ public void CancelGridCreation() [TestMethod] public void CancelCanvasCreation() { - Constants.CustomLayoutType type = Constants.CustomLayoutType.Canvas; + CustomLayout type = CustomLayout.Canvas; _session?.Click(_session?.FindByAccessibilityId(AccessibilityId.NewLayoutButton)); _session?.SelectNewLayoutType(type); _session?.ClickConfirm(); diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs index a5786e20c922..93dad7e499d6 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/CustomLayoutsTests.cs @@ -7,7 +7,6 @@ using Microsoft.FancyZonesEditor.UnitTests.Utils; using Microsoft.VisualStudio.TestTools.UnitTesting; using OpenQA.Selenium; -using static FancyZonesEditorCommon.Data.Constants; using static FancyZonesEditorCommon.Data.CustomLayouts; using static FancyZonesEditorCommon.Data.EditorParameters; using static Microsoft.FancyZonesEditor.UnitTests.Utils.FancyZonesEditorSession; @@ -24,7 +23,7 @@ public class CustomLayoutsTests new CustomLayoutWrapper { Uuid = "{0D6D2F58-9184-4804-81E4-4E4CC3476DC1}", - Type = Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Grid], + Type = CustomLayout.Grid.TypeToString(), Name = "Grid custom layout", Info = new CustomLayouts().ToJsonElement(new GridInfoWrapper { @@ -41,7 +40,7 @@ public class CustomLayoutsTests new CustomLayoutWrapper { Uuid = "{E7807D0D-6223-4883-B15B-1F3883944C09}", - Type = Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas], + Type = CustomLayout.Canvas.TypeToString(), Name = "Canvas custom layout", Info = new CustomLayouts().ToJsonElement(new CanvasInfoWrapper { @@ -77,7 +76,7 @@ public class CustomLayoutsTests new CustomLayoutWrapper { Uuid = "{F1A94F38-82B6-4876-A653-70D0E882DE2A}", - Type = Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Grid], + Type = CustomLayout.Grid.TypeToString(), Name = "Grid custom layout spacing enabled", Info = new CustomLayouts().ToJsonElement(new GridInfoWrapper { @@ -280,7 +279,7 @@ public void HighlightDistance_Initialize() var slider = _session?.FindByAccessibilityId(AccessibilityId.SensitivitySlider); Assert.IsNotNull(slider); - var expected = layout.Type == Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas] ? + var expected = layout.Type == CustomLayout.Canvas.TypeToString() ? new CustomLayouts().CanvasFromJsonElement(layout.Info.GetRawText()).SensitivityRadius : new CustomLayouts().GridFromJsonElement(layout.Info.GetRawText()).SensitivityRadius; Assert.AreEqual($"{expected}", slider.Text); @@ -301,7 +300,7 @@ public void HighlightDistance_Save() Assert.IsNotNull(slider); slider.SendKeys(Keys.Right); - var value = type == Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas] ? + var value = type == CustomLayout.Canvas.TypeToString() ? new CustomLayouts().CanvasFromJsonElement(layout.Info.GetRawText()).SensitivityRadius : new CustomLayouts().GridFromJsonElement(layout.Info.GetRawText()).SensitivityRadius; var expected = value + 1; // one step right @@ -314,7 +313,7 @@ public void HighlightDistance_Save() // verify the file var customLayouts = new CustomLayouts(); var data = customLayouts.Read(customLayouts.File); - var actual = type == Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas] ? + var actual = type == CustomLayout.Canvas.TypeToString() ? new CustomLayouts().CanvasFromJsonElement(data.CustomLayouts.Find(x => x.Uuid == layout.Uuid).Info.GetRawText()).SensitivityRadius : new CustomLayouts().GridFromJsonElement(data.CustomLayouts.Find(x => x.Uuid == layout.Uuid).Info.GetRawText()).SensitivityRadius; Assert.AreEqual(expected, actual); @@ -331,7 +330,7 @@ public void HighlightDistance_Cancel() Assert.IsNotNull(slider); slider.SendKeys(Keys.Right); - var expected = type == Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas] ? + var expected = type == CustomLayout.Canvas.TypeToString() ? new CustomLayouts().CanvasFromJsonElement(layout.Info.GetRawText()).SensitivityRadius : new CustomLayouts().GridFromJsonElement(layout.Info.GetRawText()).SensitivityRadius; @@ -341,7 +340,7 @@ public void HighlightDistance_Cancel() // verify the file var customLayouts = new CustomLayouts(); var data = customLayouts.Read(customLayouts.File); - var actual = type == Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas] ? + var actual = type == CustomLayout.Canvas.TypeToString() ? new CustomLayouts().CanvasFromJsonElement(data.CustomLayouts.Find(x => x.Uuid == layout.Uuid).Info.GetRawText()).SensitivityRadius : new CustomLayouts().GridFromJsonElement(data.CustomLayouts.Find(x => x.Uuid == layout.Uuid).Info.GetRawText()).SensitivityRadius; Assert.AreEqual(expected, actual); @@ -352,7 +351,7 @@ public void SpaceAroundZones_Initialize() { foreach (var layout in Layouts.CustomLayouts) { - if (layout.Type != Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Grid]) + if (layout.Type != CustomLayout.Grid.TypeToString()) { // only for grid layouts continue; @@ -380,7 +379,7 @@ public void SpaceAroundZones_Initialize() [TestMethod] public void SpaceAroundZones_Slider_Save() { - var layout = Layouts.CustomLayouts.Find(x => x.Type == Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Grid] && new CustomLayouts().GridFromJsonElement(x.Info.GetRawText()).ShowSpacing); + var layout = Layouts.CustomLayouts.Find(x => x.Type == CustomLayout.Grid.TypeToString() && new CustomLayouts().GridFromJsonElement(x.Info.GetRawText()).ShowSpacing); var expected = new CustomLayouts().GridFromJsonElement(layout.Info.GetRawText()).Spacing + 1; // one step right _session?.ClickEditLayout(layout.Name); @@ -402,7 +401,7 @@ public void SpaceAroundZones_Slider_Save() [TestMethod] public void SpaceAroundZones_Slider_Cancel() { - var layout = Layouts.CustomLayouts.Find(x => x.Type == Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Grid] && new CustomLayouts().GridFromJsonElement(x.Info.GetRawText()).ShowSpacing); + var layout = Layouts.CustomLayouts.Find(x => x.Type == CustomLayout.Grid.TypeToString() && new CustomLayouts().GridFromJsonElement(x.Info.GetRawText()).ShowSpacing); _session?.ClickEditLayout(layout.Name); var expected = new CustomLayouts().GridFromJsonElement(layout.Info.GetRawText()).Spacing; @@ -422,7 +421,7 @@ public void SpaceAroundZones_Slider_Cancel() [TestMethod] public void SpaceAroundZones_Toggle_Save() { - var layout = Layouts.CustomLayouts.Find(x => x.Type == Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Grid]); + var layout = Layouts.CustomLayouts.Find(x => x.Type == CustomLayout.Grid.TypeToString()); var value = new CustomLayouts().GridFromJsonElement(layout.Info.GetRawText()).ShowSpacing; var expected = !value; _session?.ClickEditLayout(layout.Name); @@ -446,7 +445,7 @@ public void SpaceAroundZones_Toggle_Save() [TestMethod] public void SpaceAroundZones_Toggle_Cancel() { - var layout = Layouts.CustomLayouts.Find(x => x.Type == Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Grid]); + var layout = Layouts.CustomLayouts.Find(x => x.Type == CustomLayout.Grid.TypeToString()); var expected = new CustomLayouts().GridFromJsonElement(layout.Info.GetRawText()).ShowSpacing; _session?.ClickEditLayout(layout.Name); diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/DefaultLayoutsTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/DefaultLayoutsTests.cs index 477aaf65d87b..9182f6a6fb17 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/DefaultLayoutsTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/DefaultLayoutsTests.cs @@ -6,7 +6,6 @@ using FancyZonesEditorCommon.Data; using Microsoft.FancyZonesEditor.UnitTests.Utils; using Microsoft.VisualStudio.TestTools.UnitTesting; -using static FancyZonesEditorCommon.Data.Constants; using static FancyZonesEditorCommon.Data.CustomLayouts; using static FancyZonesEditorCommon.Data.DefaultLayouts; using static FancyZonesEditorCommon.Data.EditorParameters; @@ -27,7 +26,7 @@ public class DefaultLayoutsTests new CustomLayoutWrapper { Uuid = "{0D6D2F58-9184-4804-81E4-4E4CC3476DC1}", - Type = Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas], + Type = CustomLayout.Canvas.TypeToString(), Name = "Layout 0", Info = new CustomLayouts().ToJsonElement(new CanvasInfoWrapper { @@ -40,7 +39,7 @@ public class DefaultLayoutsTests new CustomLayoutWrapper { Uuid = "{E7807D0D-6223-4883-B15B-1F3883944C09}", - Type = Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas], + Type = CustomLayout.Canvas.TypeToString(), Name = "Layout 1", Info = new CustomLayouts().ToJsonElement(new CanvasInfoWrapper { @@ -53,7 +52,7 @@ public class DefaultLayoutsTests new CustomLayoutWrapper { Uuid = "{F1A94F38-82B6-4876-A653-70D0E882DE2A}", - Type = Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas], + Type = CustomLayout.Canvas.TypeToString(), Name = "Layout 2", Info = new CustomLayouts().ToJsonElement(new CanvasInfoWrapper { @@ -66,7 +65,7 @@ public class DefaultLayoutsTests new CustomLayoutWrapper { Uuid = "{F5FDBC04-0760-4776-9F05-96AAC4AE613F}", - Type = Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas], + Type = CustomLayout.Canvas.TypeToString(), Name = "Layout 3", Info = new CustomLayouts().ToJsonElement(new CanvasInfoWrapper { diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/DeleteLayoutTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/DeleteLayoutTests.cs index 96c17de969ae..19b1c79f51a7 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/DeleteLayoutTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/DeleteLayoutTests.cs @@ -6,7 +6,6 @@ using FancyZonesEditorCommon.Data; using Microsoft.FancyZonesEditor.UnitTests.Utils; using Microsoft.VisualStudio.TestTools.UnitTesting; -using static FancyZonesEditorCommon.Data.Constants; using static FancyZonesEditorCommon.Data.CustomLayouts; using static FancyZonesEditorCommon.Data.DefaultLayouts; using static FancyZonesEditorCommon.Data.EditorParameters; @@ -25,7 +24,7 @@ public class DeleteLayoutTests new CustomLayoutWrapper { Uuid = "{0D6D2F58-9184-4804-81E4-4E4CC3476DC1}", - Type = Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Grid], + Type = CustomLayout.Grid.TypeToString(), Name = "Custom layout 1", Info = new CustomLayouts().ToJsonElement(new CustomLayouts.GridInfoWrapper { @@ -42,7 +41,7 @@ public class DeleteLayoutTests new CustomLayoutWrapper { Uuid = "{E7807D0D-6223-4883-B15B-1F3883944C09}", - Type = Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas], + Type = CustomLayout.Canvas.TypeToString(), Name = "Custom layout 2", Info = new CustomLayouts().ToJsonElement(new CanvasInfoWrapper { diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/EditLayoutTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/EditLayoutTests.cs index ef86dfd7337e..95dd73b2cd4e 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/EditLayoutTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/EditLayoutTests.cs @@ -8,7 +8,6 @@ using Microsoft.FancyZonesEditor.UnitTests.Utils; using Microsoft.VisualStudio.TestTools.UnitTesting; using OpenQA.Selenium.Appium.Windows; -using static FancyZonesEditorCommon.Data.Constants; using static FancyZonesEditorCommon.Data.CustomLayouts; using static Microsoft.FancyZonesEditor.UnitTests.Utils.FancyZonesEditorSession; @@ -24,7 +23,7 @@ public class EditLayoutTests new CustomLayoutWrapper { Uuid = "{0D6D2F58-9184-4804-81E4-4E4CC3476DC1}", - Type = Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Grid], + Type = CustomLayout.Grid.TypeToString(), Name = "Grid custom layout", Info = new CustomLayouts().ToJsonElement(new GridInfoWrapper { @@ -41,7 +40,7 @@ public class EditLayoutTests new CustomLayoutWrapper { Uuid = "{0EB9BF3E-010E-46D7-8681-1879D1E111E1}", - Type = Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Grid], + Type = CustomLayout.Grid.TypeToString(), Name = "Grid-9", Info = new CustomLayouts().ToJsonElement(new GridInfoWrapper { @@ -58,7 +57,7 @@ public class EditLayoutTests new CustomLayoutWrapper { Uuid = "{E7807D0D-6223-4883-B15B-1F3883944C09}", - Type = Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas], + Type = CustomLayout.Canvas.TypeToString(), Name = "Canvas custom layout", Info = new CustomLayouts().ToJsonElement(new CanvasInfoWrapper { @@ -216,7 +215,7 @@ public void OpenEditModeFromContextMenu() [TestMethod] public void Canvas_AddZone_Save() { - var canvas = Layouts.CustomLayouts.Find(x => x.Type == Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas]); + var canvas = Layouts.CustomLayouts.Find(x => x.Type == CustomLayout.Canvas.TypeToString()); _session?.ClickContextMenuItem(canvas.Name, FancyZonesEditorSession.ElementName.EditZones); _session?.Click(_session?.FindByAccessibilityId(AccessibilityId.NewZoneButton)); _session?.Click(ElementName.Save); @@ -232,7 +231,7 @@ public void Canvas_AddZone_Save() [TestMethod] public void Canvas_AddZone_Cancel() { - var canvas = Layouts.CustomLayouts.Find(x => x.Type == Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas]); + var canvas = Layouts.CustomLayouts.Find(x => x.Type == CustomLayout.Canvas.TypeToString()); _session?.ClickContextMenuItem(canvas.Name, FancyZonesEditorSession.ElementName.EditZones); _session?.Click(_session?.FindByAccessibilityId(AccessibilityId.NewZoneButton)); _session?.Click(ElementName.Cancel); @@ -248,7 +247,7 @@ public void Canvas_AddZone_Cancel() [TestMethod] public void Canvas_DeleteZone_Save() { - var canvas = Layouts.CustomLayouts.Find(x => x.Type == Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas]); + var canvas = Layouts.CustomLayouts.Find(x => x.Type == CustomLayout.Canvas.TypeToString()); _session?.ClickContextMenuItem(canvas.Name, FancyZonesEditorSession.ElementName.EditZones); _session?.WaitElementDisplayedByName(FancyZonesEditorSession.ElementName.CanvasEditorWindow); _session?.ClickDeleteZone(1); @@ -265,7 +264,7 @@ public void Canvas_DeleteZone_Save() [TestMethod] public void Canvas_DeleteZone_Cancel() { - var canvas = Layouts.CustomLayouts.Find(x => x.Type == Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas]); + var canvas = Layouts.CustomLayouts.Find(x => x.Type == CustomLayout.Canvas.TypeToString()); _session?.ClickContextMenuItem(canvas.Name, FancyZonesEditorSession.ElementName.EditZones); _session?.ClickDeleteZone(1); _session?.Click(ElementName.Cancel); @@ -284,7 +283,7 @@ public void Canvas_MoveZone_Save() int zoneNumber = 1; int xOffset = 100; int yOffset = 100; - var canvas = Layouts.CustomLayouts.Find(x => x.Type == Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas]); + var canvas = Layouts.CustomLayouts.Find(x => x.Type == CustomLayout.Canvas.TypeToString()); _session?.ClickContextMenuItem(canvas.Name, FancyZonesEditorSession.ElementName.EditZones); _session?.Drag(_session.GetZone(zoneNumber, FancyZonesEditorSession.ClassName.CanvasZone)!, xOffset, yOffset); @@ -319,7 +318,7 @@ public void Canvas_MoveZone_Save() public void Canvas_MoveZone_Cancel() { int zoneNumber = 1; - var canvas = Layouts.CustomLayouts.Find(x => x.Type == Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas]); + var canvas = Layouts.CustomLayouts.Find(x => x.Type == CustomLayout.Canvas.TypeToString()); _session?.ClickContextMenuItem(canvas.Name, FancyZonesEditorSession.ElementName.EditZones); _session?.Drag(_session.GetZone(zoneNumber, FancyZonesEditorSession.ClassName.CanvasZone)!, 100, 100); @@ -345,7 +344,7 @@ public void Canvas_ResizeZone_Save() int zoneNumber = 1; int xOffset = 100; int yOffset = 100; - var canvas = Layouts.CustomLayouts.Find(x => x.Type == Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas]); + var canvas = Layouts.CustomLayouts.Find(x => x.Type == CustomLayout.Canvas.TypeToString()); _session?.ClickContextMenuItem(canvas.Name, FancyZonesEditorSession.ElementName.EditZones); _session?.Drag((WindowsElement)_session.GetZone(zoneNumber, FancyZonesEditorSession.ClassName.CanvasZone)?.FindElementByAccessibilityId(FancyZonesEditorSession.AccessibilityId.TopRightCorner)!, xOffset, yOffset); @@ -382,7 +381,7 @@ public void Canvas_ResizeZone_Cancel() int zoneNumber = 1; int xOffset = 100; int yOffset = 100; - var canvas = Layouts.CustomLayouts.Find(x => x.Type == Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas]); + var canvas = Layouts.CustomLayouts.Find(x => x.Type == CustomLayout.Canvas.TypeToString()); _session?.ClickContextMenuItem(canvas.Name, FancyZonesEditorSession.ElementName.EditZones); _session?.Drag((WindowsElement)_session.GetZone(zoneNumber, FancyZonesEditorSession.ClassName.CanvasZone)?.FindElementByAccessibilityId(FancyZonesEditorSession.AccessibilityId.TopRightCorner)!, xOffset, yOffset); @@ -407,7 +406,7 @@ public void Canvas_ResizeZone_Cancel() public void Grid_SplitZone_Save() { int zoneNumber = 1; - var grid = Layouts.CustomLayouts.Find(x => x.Type == Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Grid]); + var grid = Layouts.CustomLayouts.Find(x => x.Type == CustomLayout.Grid.TypeToString()); _session?.ClickContextMenuItem(grid.Name, FancyZonesEditorSession.ElementName.EditZones); _session?.GetZone(zoneNumber, FancyZonesEditorSession.ClassName.GridZone)!.Click(); // horizontal split in the middle of the zone @@ -436,7 +435,7 @@ public void Grid_SplitZone_Save() public void Grid_SplitZone_Cancel() { int zoneNumber = 1; - var grid = Layouts.CustomLayouts.Find(x => x.Type == Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Grid]); + var grid = Layouts.CustomLayouts.Find(x => x.Type == CustomLayout.Grid.TypeToString()); _session?.ClickContextMenuItem(grid.Name, FancyZonesEditorSession.ElementName.EditZones); _session?.GetZone(zoneNumber, FancyZonesEditorSession.ClassName.GridZone)!.Click(); // horizontal split in the middle of the zone @@ -466,7 +465,7 @@ public void Grid_SplitZone_Cancel() [TestMethod] public void Grid_MergeZones_Save() { - var grid = Layouts.CustomLayouts.Find(x => x.Type == Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Grid]); + var grid = Layouts.CustomLayouts.Find(x => x.Type == CustomLayout.Grid.TypeToString()); _session?.ClickContextMenuItem(grid.Name, FancyZonesEditorSession.ElementName.EditZones); _session?.MergeGridZones(1, 2); @@ -500,7 +499,7 @@ public void Grid_MergeZones_Save() [TestMethod] public void Grid_MergeZones_Cancel() { - var grid = Layouts.CustomLayouts.Find(x => x.Type == Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Grid]); + var grid = Layouts.CustomLayouts.Find(x => x.Type == CustomLayout.Grid.TypeToString()); _session?.ClickContextMenuItem(grid.Name, FancyZonesEditorSession.ElementName.EditZones); _session?.MergeGridZones(1, 2); @@ -536,7 +535,7 @@ public void Grid_MergeZones_Cancel() [TestMethod] public void Grid_MoveSplitter_Save() { - var grid = Layouts.CustomLayouts.Find(x => x.Type == Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Grid] && x.Name == "Grid-9"); + var grid = Layouts.CustomLayouts.Find(x => x.Type == CustomLayout.Grid.TypeToString() && x.Name == "Grid-9"); _session?.ClickContextMenuItem(grid.Name, FancyZonesEditorSession.ElementName.EditZones); _session?.MoveSplitter(0, -100); @@ -572,7 +571,7 @@ public void Grid_MoveSplitter_Save() [TestMethod] public void Grid_MoveSplitter_Cancel() { - var grid = Layouts.CustomLayouts.Find(x => x.Type == Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Grid] && x.Name == "Grid-9"); + var grid = Layouts.CustomLayouts.Find(x => x.Type == CustomLayout.Grid.TypeToString() && x.Name == "Grid-9"); _session?.ClickContextMenuItem(grid.Name, FancyZonesEditorSession.ElementName.EditZones); _session?.MoveSplitter(0, -100); diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/LayoutHotkeysTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/LayoutHotkeysTests.cs index fcc097950ce2..e29e904ee061 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/LayoutHotkeysTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/LayoutHotkeysTests.cs @@ -9,7 +9,6 @@ using FancyZonesEditorCommon.Data; using Microsoft.FancyZonesEditor.UnitTests.Utils; using Microsoft.VisualStudio.TestTools.UnitTesting; -using static FancyZonesEditorCommon.Data.Constants; using static FancyZonesEditorCommon.Data.CustomLayouts; using static FancyZonesEditorCommon.Data.EditorParameters; using static FancyZonesEditorCommon.Data.LayoutHotkeys; @@ -27,7 +26,7 @@ public class LayoutHotkeysTests new CustomLayoutWrapper { Uuid = "{0D6D2F58-9184-4804-81E4-4E4CC3476DC1}", - Type = Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas], + Type = CustomLayout.Canvas.TypeToString(), Name = "Layout 0", Info = new CustomLayouts().ToJsonElement(new CanvasInfoWrapper { @@ -40,7 +39,7 @@ public class LayoutHotkeysTests new CustomLayoutWrapper { Uuid = "{E7807D0D-6223-4883-B15B-1F3883944C09}", - Type = Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas], + Type = CustomLayout.Canvas.TypeToString(), Name = "Layout 1", Info = new CustomLayouts().ToJsonElement(new CanvasInfoWrapper { @@ -53,7 +52,7 @@ public class LayoutHotkeysTests new CustomLayoutWrapper { Uuid = "{F1A94F38-82B6-4876-A653-70D0E882DE2A}", - Type = Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas], + Type = CustomLayout.Canvas.TypeToString(), Name = "Layout 2", Info = new CustomLayouts().ToJsonElement(new CanvasInfoWrapper { @@ -66,7 +65,7 @@ public class LayoutHotkeysTests new CustomLayoutWrapper { Uuid = "{F5FDBC04-0760-4776-9F05-96AAC4AE613F}", - Type = Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas], + Type = CustomLayout.Canvas.TypeToString(), Name = "Layout 3", Info = new CustomLayouts().ToJsonElement(new CanvasInfoWrapper { @@ -79,7 +78,7 @@ public class LayoutHotkeysTests new CustomLayoutWrapper { Uuid = "{1CDB1CC5-51B1-4E49-9C8C-B7A371CCB489}", - Type = Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas], + Type = CustomLayout.Canvas.TypeToString(), Name = "Layout 4", Info = new CustomLayouts().ToJsonElement(new CanvasInfoWrapper { @@ -92,7 +91,7 @@ public class LayoutHotkeysTests new CustomLayoutWrapper { Uuid = "{B1F600A5-9C2B-44C1-BF96-42D39E9DC004}", - Type = Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas], + Type = CustomLayout.Canvas.TypeToString(), Name = "Layout 5", Info = new CustomLayouts().ToJsonElement(new CanvasInfoWrapper { @@ -105,7 +104,7 @@ public class LayoutHotkeysTests new CustomLayoutWrapper { Uuid = "{DFBE08C3-7C34-482B-811F-C7DBFE368A96}", - Type = Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas], + Type = CustomLayout.Canvas.TypeToString(), Name = "Layout 6", Info = new CustomLayouts().ToJsonElement(new CanvasInfoWrapper { @@ -118,7 +117,7 @@ public class LayoutHotkeysTests new CustomLayoutWrapper { Uuid = "{4DB29206-24CE-421C-BFF4-35987D1A744B}", - Type = Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas], + Type = CustomLayout.Canvas.TypeToString(), Name = "Layout 7", Info = new CustomLayouts().ToJsonElement(new CanvasInfoWrapper { @@ -131,7 +130,7 @@ public class LayoutHotkeysTests new CustomLayoutWrapper { Uuid = "{51E1BBBA-1C6F-4E3C-85A2-4BFBAE154963}", - Type = Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas], + Type = CustomLayout.Canvas.TypeToString(), Name = "Layout 8", Info = new CustomLayouts().ToJsonElement(new CanvasInfoWrapper { @@ -144,7 +143,7 @@ public class LayoutHotkeysTests new CustomLayoutWrapper { Uuid = "{61F9E568-DB74-44FF-8AA8-4093E80D9BCF}", - Type = Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas], + Type = CustomLayout.Canvas.TypeToString(), Name = "Layout 9", Info = new CustomLayouts().ToJsonElement(new CanvasInfoWrapper { @@ -157,7 +156,7 @@ public class LayoutHotkeysTests new CustomLayoutWrapper { Uuid = "{8D328880-9E16-4CA8-B4A3-F6AE1C762CD5}", - Type = Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas], + Type = CustomLayout.Canvas.TypeToString(), Name = "Layout 10", Info = new CustomLayouts().ToJsonElement(new CanvasInfoWrapper { diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/RunFancyZonesEditorTest.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/RunFancyZonesEditorTest.cs index f0fb5a6bdabc..eb361078f65f 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/RunFancyZonesEditorTest.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/RunFancyZonesEditorTest.cs @@ -6,7 +6,6 @@ using FancyZonesEditorCommon.Data; using Microsoft.FancyZonesEditor.UnitTests.Utils; using Microsoft.VisualStudio.TestTools.UnitTesting; -using static FancyZonesEditorCommon.Data.Constants; using static Microsoft.FancyZonesEditor.UnitTests.Utils.FancyZonesEditorSession; namespace Microsoft.FancyZonesEditor.UITests @@ -124,7 +123,7 @@ public static void ClassInitialize(TestContext testContext) new CustomLayouts.CustomLayoutWrapper { Uuid = "{E7807D0D-6223-4883-B15B-1F3883944C09}", - Type = Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas], + Type = CustomLayout.Canvas.TypeToString(), Name = "Custom layout", Info = new CustomLayouts().ToJsonElement(new CustomLayouts.CanvasInfoWrapper { diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs index 123c9425c0f4..8b0cece70cf3 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/TemplateLayoutsTests.cs @@ -8,7 +8,6 @@ using Microsoft.VisualStudio.TestTools.UnitTesting; using OpenQA.Selenium; using static FancyZonesEditorCommon.Data.AppliedLayouts; -using static FancyZonesEditorCommon.Data.Constants; using static FancyZonesEditorCommon.Data.DefaultLayouts; using static FancyZonesEditorCommon.Data.EditorParameters; using static FancyZonesEditorCommon.Data.LayoutTemplates; diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializationTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializationTests.cs index 4b81e3414c6b..5d2e580e1eed 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializationTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializationTests.cs @@ -7,7 +7,6 @@ using FancyZonesEditorCommon.Data; using Microsoft.FancyZonesEditor.UnitTests.Utils; using Microsoft.VisualStudio.TestTools.UnitTesting; -using static FancyZonesEditorCommon.Data.Constants; using static FancyZonesEditorCommon.Data.EditorParameters; using static Microsoft.FancyZonesEditor.UnitTests.Utils.FancyZonesEditorSession; @@ -334,7 +333,7 @@ public void AppliedLayouts_LayoutsApplied() new CustomLayouts.CustomLayoutWrapper { Uuid = "{0D6D2F58-9184-4804-81E4-4E4CC3476DC1}", - Type = Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas], + Type = CustomLayout.Canvas.TypeToString(), Name = "Layout 0", Info = new CustomLayouts().ToJsonElement(new CustomLayouts.CanvasInfoWrapper { @@ -445,7 +444,7 @@ public void AppliedLayouts_CustomLayoutsApplied_LayoutIdNotFound() new CustomLayouts.CustomLayoutWrapper { Uuid = "{0D6D2F58-9184-4804-81E4-4E4CC3476DC1}", - Type = Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas], + Type = CustomLayout.Canvas.TypeToString(), Name = "Layout 0", Info = new CustomLayouts().ToJsonElement(new CustomLayouts.CanvasInfoWrapper { @@ -529,7 +528,7 @@ public void AppliedLayouts_NoLayoutsApplied_CustomDefaultLayout() new CustomLayouts.CustomLayoutWrapper { Uuid = "{0D6D2F58-9184-4804-81E4-4E4CC3476DC1}", - Type = Constants.CustomLayoutTypeNames[Constants.CustomLayoutType.Canvas], + Type = CustomLayout.Canvas.TypeToString(), Name = "Layout 0", Info = new CustomLayouts().ToJsonElement(new CustomLayouts.CanvasInfoWrapper { diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs index 23383a7371a6..359fdcfc98dc 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs @@ -8,6 +8,7 @@ using System.Globalization; using System.IO; using System.Reflection; +using FancyZonesEditorCommon.Data; using Microsoft.FancyZonesEditor.UITests; using Microsoft.FancyZonesEditor.UITests.Utils; using Microsoft.VisualStudio.TestTools.UnitTesting; @@ -417,15 +418,15 @@ public void MoveSplitter(int xOffset, int yOffset) actions.Build().Perform(); } - public void SelectNewLayoutType(Constants.CustomLayoutType type) + public void SelectNewLayoutType(CustomLayout type) { WindowsElement? button = null; switch (type) { - case Constants.CustomLayoutType.Canvas: + case CustomLayout.Canvas: button = FindByAccessibilityId(AccessibilityId.CanvasRadioButton); break; - case Constants.CustomLayoutType.Grid: + case CustomLayout.Grid: button = FindByAccessibilityId(AccessibilityId.GridRadioButton); break; } diff --git a/src/modules/fancyzones/editor/FancyZonesEditor/Models/CanvasLayoutModel.cs b/src/modules/fancyzones/editor/FancyZonesEditor/Models/CanvasLayoutModel.cs index 19410caa1c4a..aff372ac34d1 100644 --- a/src/modules/fancyzones/editor/FancyZonesEditor/Models/CanvasLayoutModel.cs +++ b/src/modules/fancyzones/editor/FancyZonesEditor/Models/CanvasLayoutModel.cs @@ -12,9 +12,6 @@ namespace FancyZonesEditor.Models // Free form Layout Model, which specifies independent zone rects public class CanvasLayoutModel : LayoutModel { - // Non-localizable strings - public const string ModelTypeID = "canvas"; - // Default distance from the top and left borders to the zone. private const int DefaultOffset = 100; diff --git a/src/modules/fancyzones/editor/FancyZonesEditor/Models/GridLayoutModel.cs b/src/modules/fancyzones/editor/FancyZonesEditor/Models/GridLayoutModel.cs index 9808c1b2e104..21f79a0791fd 100644 --- a/src/modules/fancyzones/editor/FancyZonesEditor/Models/GridLayoutModel.cs +++ b/src/modules/fancyzones/editor/FancyZonesEditor/Models/GridLayoutModel.cs @@ -12,9 +12,6 @@ namespace FancyZonesEditor.Models // Grid-styled Layout Model, which specifies rows, columns, percentage sizes, and row/column spans public class GridLayoutModel : LayoutModel { - // Non-localizable strings - public const string ModelTypeID = "grid"; - public const int GridMultiplier = 10000; // hard coded data for all the "Priority Grid" configurations that are unique to "Grid" diff --git a/src/modules/fancyzones/editor/FancyZonesEditor/Utils/FancyZonesEditorIO.cs b/src/modules/fancyzones/editor/FancyZonesEditor/Utils/FancyZonesEditorIO.cs index 88a2e4fec001..551bbec86bed 100644 --- a/src/modules/fancyzones/editor/FancyZonesEditor/Utils/FancyZonesEditorIO.cs +++ b/src/modules/fancyzones/editor/FancyZonesEditor/Utils/FancyZonesEditorIO.cs @@ -385,7 +385,7 @@ public void SerializeCustomLayouts() if (layout is CanvasLayoutModel) { - type = CanvasLayoutModel.ModelTypeID; + type = CustomLayout.Canvas.TypeToString(); var canvasLayout = layout as CanvasLayoutModel; var canvasRect = canvasLayout.CanvasRect; @@ -417,7 +417,7 @@ public void SerializeCustomLayouts() } else if (layout is GridLayoutModel) { - type = GridLayoutModel.ModelTypeID; + type = CustomLayout.Grid.TypeToString(); var gridLayout = layout as GridLayoutModel; var cells = new int[gridLayout.Rows][]; @@ -685,11 +685,11 @@ private bool SetCustomLayouts(List customLayo LayoutModel layout = null; try { - if (zoneSet.Type == CanvasLayoutModel.ModelTypeID) + if (zoneSet.Type == CustomLayout.Canvas.TypeToString()) { layout = ParseCanvasInfo(zoneSet); } - else if (zoneSet.Type == GridLayoutModel.ModelTypeID) + else if (zoneSet.Type == CustomLayout.Grid.TypeToString()) { layout = ParseGridInfo(zoneSet); } From 063887d5b3293c58a4462938bc22bd52ce570c18 Mon Sep 17 00:00:00 2001 From: seraphima Date: Fri, 22 Mar 2024 23:01:32 +0100 Subject: [PATCH 70/78] layout type enum order --- .../FancyZonesEditorCommon/Data/LayoutTypeEnumExtension.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/fancyzones/FancyZonesEditorCommon/Data/LayoutTypeEnumExtension.cs b/src/modules/fancyzones/FancyZonesEditorCommon/Data/LayoutTypeEnumExtension.cs index 58bb3992063b..7956e69ed4dd 100644 --- a/src/modules/fancyzones/FancyZonesEditorCommon/Data/LayoutTypeEnumExtension.cs +++ b/src/modules/fancyzones/FancyZonesEditorCommon/Data/LayoutTypeEnumExtension.cs @@ -8,8 +8,8 @@ public enum LayoutType { Blank, Focus, - Rows, Columns, + Rows, Grid, PriorityGrid, Custom, From eeb83c82f740f2882ef4a5f43227edcd44b342a8 Mon Sep 17 00:00:00 2001 From: seraphima Date: Mon, 25 Mar 2024 13:46:26 +0100 Subject: [PATCH 71/78] fix: hotkey change cancel --- .../editor/FancyZonesEditor/Models/LayoutHotkeysModel.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/modules/fancyzones/editor/FancyZonesEditor/Models/LayoutHotkeysModel.cs b/src/modules/fancyzones/editor/FancyZonesEditor/Models/LayoutHotkeysModel.cs index f8b783768a1b..59704a066d55 100644 --- a/src/modules/fancyzones/editor/FancyZonesEditor/Models/LayoutHotkeysModel.cs +++ b/src/modules/fancyzones/editor/FancyZonesEditor/Models/LayoutHotkeysModel.cs @@ -63,7 +63,11 @@ public bool SelectKey(string key, string uuid) } } - SelectedKeys[key] = uuid; + if (key != Properties.Resources.Quick_Key_None) + { + SelectedKeys[key] = uuid; + } + FirePropertyChanged(); return true; } From 83bb5af9185be61b42ff4d93075d19a11e402da9 Mon Sep 17 00:00:00 2001 From: seraphima Date: Mon, 25 Mar 2024 13:47:06 +0100 Subject: [PATCH 72/78] release splitter --- .../Utils/FancyZonesEditorSession.cs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs index 359fdcfc98dc..52ff982ff14a 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs @@ -398,16 +398,16 @@ public void MergeGridZones(int zoneNumber1, int zoneNumber2) Click(Session.FindElementByName(ElementName.MergeZonesButton)!); } - public void MoveSplitter(int xOffset, int yOffset) + public void MoveSplitter(int index, int xOffset, int yOffset) { ReadOnlyCollection thumbs = Session.FindElementsByClassName(ClassName.Thumb); - if (thumbs.Count == 0) + if (thumbs.Count == 0 || index >= thumbs.Count) { return; } Actions actions = new Actions(Session); - actions.MoveToElement(thumbs[0]).ClickAndHold(); + actions.MoveToElement(thumbs[index]).ClickAndHold(); int dx = xOffset / 10; int dy = yOffset / 10; for (int i = 0; i < 10; i++) @@ -415,6 +415,7 @@ public void MoveSplitter(int xOffset, int yOffset) actions.MoveByOffset(dx, dy); } + actions.Release(); actions.Build().Perform(); } From 288fee6bcc875455e5f9f482af15ea55dc5e549a Mon Sep 17 00:00:00 2001 From: seraphima Date: Mon, 25 Mar 2024 13:47:19 +0100 Subject: [PATCH 73/78] editing tests update --- .../EditLayoutTests.cs | 72 +++++++++++++------ 1 file changed, 49 insertions(+), 23 deletions(-) diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/EditLayoutTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/EditLayoutTests.cs index 95dd73b2cd4e..ffc5d33aa958 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/EditLayoutTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/EditLayoutTests.cs @@ -9,6 +9,7 @@ using Microsoft.VisualStudio.TestTools.UnitTesting; using OpenQA.Selenium.Appium.Windows; using static FancyZonesEditorCommon.Data.CustomLayouts; +using static FancyZonesEditorCommon.Data.EditorParameters; using static Microsoft.FancyZonesEditor.UnitTests.Utils.FancyZonesEditorSession; namespace Microsoft.FancyZonesEditor.UITests @@ -61,8 +62,8 @@ public class EditLayoutTests Name = "Canvas custom layout", Info = new CustomLayouts().ToJsonElement(new CanvasInfoWrapper { - RefHeight = 952, - RefWidth = 1500, + RefHeight = 1040, + RefWidth = 1920, SensitivityRadius = 10, Zones = new List { @@ -70,22 +71,22 @@ public class EditLayoutTests { X = 0, Y = 0, - Width = 900, - Height = 522, + Width = 500, + Height = 250, }, new CanvasInfoWrapper.CanvasZoneWrapper { - X = 900, + X = 500, Y = 0, - Width = 600, - Height = 750, + Width = 1420, + Height = 500, }, new CanvasInfoWrapper.CanvasZoneWrapper { X = 0, - Y = 522, - Width = 1500, - Height = 430, + Y = 250, + Width = 1920, + Height = 500, }, }, }), @@ -111,6 +112,33 @@ public static void ClassCleanup() [TestInitialize] public void TestInitialize() { + EditorParameters editorParameters = new EditorParameters(); + ParamsWrapper parameters = new ParamsWrapper + { + ProcessId = 1, + SpanZonesAcrossMonitors = false, + Monitors = new List + { + new NativeMonitorDataWrapper + { + Monitor = "monitor-1", + MonitorInstanceId = "instance-id-1", + MonitorSerialNumber = "serial-number-1", + MonitorNumber = 1, + VirtualDesktop = "{FF34D993-73F3-4B8C-AA03-73730A01D6A8}", + Dpi = 192, + LeftCoordinate = 0, + TopCoordinate = 0, + WorkAreaHeight = 1040, + WorkAreaWidth = 1920, + MonitorHeight = 1080, + MonitorWidth = 1920, + IsSelected = true, + }, + }, + }; + FancyZonesEditorSession.Files.ParamsIOHelper.WriteData(editorParameters.Serialize(parameters)); + LayoutTemplates layoutTemplates = new LayoutTemplates(); LayoutTemplates.TemplateLayoutsListWrapper templateLayoutsListWrapper = new LayoutTemplates.TemplateLayoutsListWrapper { @@ -538,9 +566,8 @@ public void Grid_MoveSplitter_Save() var grid = Layouts.CustomLayouts.Find(x => x.Type == CustomLayout.Grid.TypeToString() && x.Name == "Grid-9"); _session?.ClickContextMenuItem(grid.Name, FancyZonesEditorSession.ElementName.EditZones); - _session?.MoveSplitter(0, -100); + _session?.MoveSplitter(2, -100, 0); _session?.Click(ElementName.Save); - _session?.Click(ElementName.Save); // single click doesn't work after moving a splitter // check the file var customLayouts = new CustomLayouts(); @@ -548,18 +575,18 @@ public void Grid_MoveSplitter_Save() var expected = customLayouts.GridFromJsonElement(grid.Info.ToString()); var actual = customLayouts.GridFromJsonElement(data.CustomLayouts.Find(x => x.Uuid == grid.Uuid).Info.GetRawText()); - // columns are not changed - Assert.AreEqual(expected.Columns, actual.Columns); - for (int i = 0; i < expected.Columns; i++) + // rows are not changed + Assert.AreEqual(expected.Rows, actual.Rows); + for (int i = 0; i < expected.Rows; i++) { - Assert.AreEqual(expected.ColumnsPercentage[i], actual.ColumnsPercentage[i]); + Assert.AreEqual(expected.RowsPercentage[i], actual.RowsPercentage[i]); } - // rows are changed - Assert.AreEqual(expected.Rows, actual.Rows); - Assert.IsTrue(expected.RowsPercentage[0] > actual.RowsPercentage[0]); - Assert.IsTrue(expected.RowsPercentage[1] < actual.RowsPercentage[1]); - Assert.AreEqual(expected.RowsPercentage[2], actual.RowsPercentage[2]); + // Columns are changed + Assert.AreEqual(expected.Columns, actual.Columns); + Assert.IsTrue(expected.ColumnsPercentage[0] > actual.ColumnsPercentage[0]); + Assert.IsTrue(expected.ColumnsPercentage[1] < actual.ColumnsPercentage[1]); + Assert.AreEqual(expected.ColumnsPercentage[2], actual.ColumnsPercentage[2]); // cells are not changed for (int i = 0; i < expected.CellChildMap.Length; i++) @@ -574,9 +601,8 @@ public void Grid_MoveSplitter_Cancel() var grid = Layouts.CustomLayouts.Find(x => x.Type == CustomLayout.Grid.TypeToString() && x.Name == "Grid-9"); _session?.ClickContextMenuItem(grid.Name, FancyZonesEditorSession.ElementName.EditZones); - _session?.MoveSplitter(0, -100); + _session?.MoveSplitter(2, -100, 0); _session?.Click(ElementName.Cancel); - _session?.Click(ElementName.Cancel); // single click doesn't work after moving a splitter // check the file var customLayouts = new CustomLayouts(); From 95749c17ceddcbf8ef75aa156d1671ecf32ad710 Mon Sep 17 00:00:00 2001 From: seraphima Date: Mon, 25 Mar 2024 16:07:21 +0100 Subject: [PATCH 74/78] removed clicks --- .../fancyzones/UITests-FancyZonesEditor/CopyLayoutTests.cs | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/CopyLayoutTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/CopyLayoutTests.cs index 6ca82c3bcb9b..68026517737c 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/CopyLayoutTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/CopyLayoutTests.cs @@ -229,7 +229,6 @@ public void CopyTemplate_DefaultLayout() _session?.ClickCopyLayout(); // verify the layout is copied - _session?.Click(ElementName.Save); Assert.IsNotNull(_session?.GetLayout(copiedLayoutName)); // new name is presented // verify the file @@ -296,7 +295,6 @@ public void CopyCustomLayout_DefaultLayout() _session?.ClickCopyLayout(); // verify the layout is copied - _session?.Click(ElementName.Save); Assert.IsNotNull(_session?.GetLayout(copiedLayoutName)); // new name is presented // verify the file @@ -329,7 +327,6 @@ public void CopyCustomLayout_Hotkey() _session?.ClickCopyLayout(); // verify the layout is copied - _session?.Click(ElementName.Save); Assert.IsNotNull(_session?.GetLayout(copiedLayoutName)); // new name is presented // verify the file From c421e2878f47b225bb7dd9c33338130e2d4d3a7e Mon Sep 17 00:00:00 2001 From: seraphima Date: Tue, 26 Mar 2024 15:31:31 +0100 Subject: [PATCH 75/78] fix selected monitor --- .../UITests-FancyZonesEditor/DefaultLayoutsTests.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/DefaultLayoutsTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/DefaultLayoutsTests.cs index 9182f6a6fb17..419366d651d2 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/DefaultLayoutsTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/DefaultLayoutsTests.cs @@ -168,7 +168,7 @@ public void TestInitialize() WorkAreaWidth = 1920, MonitorHeight = 1080, MonitorWidth = 1920, - IsSelected = true, + IsSelected = false, }, }, }; @@ -287,7 +287,7 @@ public void Assign_Save() var verticalDefaultButton = _session?.GetVerticalDefaultButton(false); verticalDefaultButton?.Click(); - // cancel + // save _session?.Click(ElementName.Save); _session?.WaitUntilHidden(horizontalDefaultButton!); From 029db21078de60f50f201c0837862d6c44620640 Mon Sep 17 00:00:00 2001 From: seraphima Date: Tue, 26 Mar 2024 15:52:43 +0100 Subject: [PATCH 76/78] changed waiting --- .../Utils/FancyZonesEditorSession.cs | 87 ++++++++++++++----- 1 file changed, 66 insertions(+), 21 deletions(-) diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs index 52ff982ff14a..8cd542eba3d8 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/Utils/FancyZonesEditorSession.cs @@ -8,8 +8,8 @@ using System.Globalization; using System.IO; using System.Reflection; +using System.Xml.Linq; using FancyZonesEditorCommon.Data; -using Microsoft.FancyZonesEditor.UITests; using Microsoft.FancyZonesEditor.UITests.Utils; using Microsoft.VisualStudio.TestTools.UnitTesting; using OpenQA.Selenium; @@ -291,13 +291,15 @@ public void ClickEditLayout(string layoutName) while (!opened && retryAttempts > 0) { var editButton = layout?.FindElementByAccessibilityId(AccessibilityId.EditLayoutButton); - Assert.IsNotNull(editButton, "Edit button not found"); + Assert.IsNotNull(editButton, $"Edit button at \"{layoutName}\" not found"); editButton.Click(); // wait until the dialog is opened opened = WaitElementDisplayedByName($"Edit '{layoutName}'"); retryAttempts--; } + + Assert.IsTrue(WaitElementDisplayedByName($"Edit '{layoutName}'"), $"Edit window for \"{layoutName}\" not found"); } public void RightClickLayout(string layoutName) @@ -482,49 +484,92 @@ public bool WaitElementDisplayedByName(string name) WebDriverWait wait = new WebDriverWait(Session, TimeSpan.FromSeconds(1)); return wait.Until(pred => { - var element = Session.FindElementByName(name); - if (element != null) + try + { + var element = Session.FindElementByName(name); + if (element != null) + { + return element.Displayed; + } + } + catch (Exception e) { - return element.Displayed; + context.WriteLine(e.Message); } return false; }); } - catch + catch (Exception e) { + context.WriteLine(e.Message); return false; } } - public void WaitElementDisplayedById(string id) + public bool WaitElementDisplayedById(string id) { - WebDriverWait wait = new WebDriverWait(Session, TimeSpan.FromSeconds(1)); - wait.Until(pred => + try { - var element = Session.FindElementByAccessibilityId(id); - if (element != null) + WebDriverWait wait = new WebDriverWait(Session, TimeSpan.FromSeconds(1)); + return wait.Until(pred => { - return element.Displayed; - } + try + { + var element = Session.FindElementByAccessibilityId(id); + if (element != null) + { + return element.Displayed; + } + } + catch (Exception e) + { + context.WriteLine(e.Message); + } + return false; + }); + } + catch (Exception e) + { + context.WriteLine(e.Message); return false; - }); + } } - public void WaitElementDisplayedByClassName(string className) + public bool WaitElementDisplayedByClassName(string className) { - WebDriverWait wait = new WebDriverWait(Session, TimeSpan.FromSeconds(1)); - wait.Until(pred => + try { - var element = Session.FindElementByClassName(className); - return element.Displayed; - }); + WebDriverWait wait = new WebDriverWait(Session, TimeSpan.FromSeconds(1)); + return wait.Until(pred => + { + try + { + var element = Session.FindElementByClassName(className); + if (element != null) + { + return element.Displayed; + } + } + catch (Exception e) + { + context.WriteLine(e.Message); + } + + return false; + }); + } + catch (Exception e) + { + context.WriteLine(e.Message); + return false; + } } public void WaitUntilHidden(WindowsElement element) { - WebDriverWait wait = new WebDriverWait(Session, TimeSpan.FromSeconds(1)); + WebDriverWait wait = new WebDriverWait(Session, TimeSpan.FromSeconds(3)); wait.Until(pred => { return !element.Displayed; From 25a80d019df0674d7741a024ff0fe3fb05f3ea95 Mon Sep 17 00:00:00 2001 From: seraphima Date: Tue, 26 Mar 2024 19:39:47 +0100 Subject: [PATCH 77/78] first launch test --- .../UIInitializationTests.cs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializationTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializationTests.cs index 5d2e580e1eed..1bc461de9d49 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializationTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializationTests.cs @@ -804,5 +804,19 @@ public void AppliedLayouts_VerifyOtherVirtualDesktopsAreNotChanged() Assert.AreEqual(appliedLayoutsWrapper.AppliedLayouts[0].AppliedLayout.Type, data.AppliedLayouts.Find(x => x.Device.VirtualDesktop == virtualDesktop2).AppliedLayout.Type); Assert.AreEqual(LayoutType.Rows.TypeToString(), data.AppliedLayouts.Find(x => x.Device.VirtualDesktop == virtualDesktop1).AppliedLayout.Type); } + + [TestMethod] + public void FirstLaunch() + { + // files not yet exist + FancyZonesEditorSession.Files.LayoutTemplatesIOHelper.DeleteFile(); + FancyZonesEditorSession.Files.CustomLayoutsIOHelper.DeleteFile(); + FancyZonesEditorSession.Files.LayoutHotkeysIOHelper.DeleteFile(); + FancyZonesEditorSession.Files.DefaultLayoutsIOHelper.DeleteFile(); + + // verify editor opens without errors + _session = new FancyZonesEditorSession(_context!); + Assert.IsNotNull(_session.FindByAccessibilityId(FancyZonesEditorSession.AccessibilityId.MainWindow)); + } } } From 91365a31464283e5581bad159ce59dc2415eba49 Mon Sep 17 00:00:00 2001 From: seraphima Date: Thu, 28 Mar 2024 14:31:59 +0100 Subject: [PATCH 78/78] missing data in test --- .../UIInitializationTests.cs | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializationTests.cs b/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializationTests.cs index 1bc461de9d49..6c35a7608c9b 100644 --- a/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializationTests.cs +++ b/src/modules/fancyzones/UITests-FancyZonesEditor/UIInitializationTests.cs @@ -808,6 +808,33 @@ public void AppliedLayouts_VerifyOtherVirtualDesktopsAreNotChanged() [TestMethod] public void FirstLaunch() { + EditorParameters editorParameters = new EditorParameters(); + ParamsWrapper parameters = new ParamsWrapper + { + ProcessId = 1, + SpanZonesAcrossMonitors = false, + Monitors = new List + { + new NativeMonitorDataWrapper + { + Monitor = "monitor-1", + MonitorInstanceId = "instance-id-1", + MonitorSerialNumber = "serial-number-1", + MonitorNumber = 1, + VirtualDesktop = "{FF34D993-73F3-4B8C-AA03-73730A01D6A8}", + Dpi = 192, // 200% scaling + LeftCoordinate = 0, + TopCoordinate = 0, + WorkAreaHeight = 1040, + WorkAreaWidth = 1920, + MonitorHeight = 1080, + MonitorWidth = 1920, + IsSelected = true, + }, + }, + }; + FancyZonesEditorSession.Files.ParamsIOHelper.WriteData(editorParameters.Serialize(parameters)); + // files not yet exist FancyZonesEditorSession.Files.LayoutTemplatesIOHelper.DeleteFile(); FancyZonesEditorSession.Files.CustomLayoutsIOHelper.DeleteFile();