added sample tests

This commit is contained in:
seraphima
2023-11-14 13:07:23 +01:00
parent 13571d168d
commit 3991e202cf
2 changed files with 96 additions and 2 deletions

View File

@@ -2,6 +2,7 @@
// 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 Microsoft.FancyZonesEditor.UnitTests.Utils;
using Microsoft.VisualStudio.TestTools.UnitTesting;
@@ -13,23 +14,75 @@ namespace UITests_FancyZonesEditor
private static FancyZonesEditorSession? _session;
private static TestContext? _context;
private enum Layouts
{
Empty,
Focus,
Rows,
Columns,
Grid,
PriorityGrid,
}
private static readonly Dictionary<Layouts, string> LayoutNames = new Dictionary<Layouts, string>()
{
{ Layouts.Empty, "No layout" },
{ Layouts.Focus, "Focus" },
{ Layouts.Rows, "Rows" },
{ Layouts.Columns, "Columns" },
{ Layouts.Grid, "Grid" },
{ Layouts.PriorityGrid, "PriorityGrid" },
};
[ClassInitialize]
public static void ClassInitialize(TestContext testContext)
{
_context = testContext;
_session = new FancyZonesEditorSession(testContext);
}
[ClassCleanup]
public static void ClassCleanup()
{
_context = null;
}
[TestInitialize]
public void TestInitialize()
{
_session = new FancyZonesEditorSession(_context!);
}
[TestCleanup]
public void TestCleanup()
{
_session?.Close(_context!);
}
[TestMethod]
public void RunFancyZonesEditor()
public void OpenEditorWindow() // verify the session is initialized
{
Assert.IsNotNull(_session?.Session);
}
[TestMethod]
public void OpenNewLayoutDialog() // verify the new layout dialog is opened
{
_session?.Click_CreateNewLayout();
Assert.IsNotNull(_session?.Session?.FindElementsByName("Choose layout type")); // check the pane header
}
[TestMethod]
public void OpenEditLayoutDialog() // verify the edit layout dialog is opened
{
_session?.Click_EditLayout(LayoutNames[Layouts.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
}
[TestMethod]
public void OpenContextMenu() // verify the context menu is opened
{
Assert.IsNotNull(_session?.OpenContextMenu(LayoutNames[Layouts.Columns]));
}
}
}

View File

@@ -9,6 +9,7 @@ using Microsoft.VisualStudio.TestTools.UnitTesting;
using OpenQA.Selenium;
using OpenQA.Selenium.Appium;
using OpenQA.Selenium.Appium.Windows;
using OpenQA.Selenium.Interactions;
namespace Microsoft.FancyZonesEditor.UnitTests.Utils
{
@@ -67,5 +68,45 @@ namespace Microsoft.FancyZonesEditor.UnitTests.Utils
Session.Dispose();
}
}
private WindowsElement? GetLayout(string layoutName)
{
var listItem = Session?.FindElementByName(layoutName);
Assert.IsNotNull(listItem, "Layout " + layoutName + " not found");
return listItem;
}
public WindowsElement? OpenContextMenu(string layoutName)
{
RightClick_Layout(layoutName);
var menu = Session?.FindElementByClassName("ContextMenu");
Assert.IsNotNull(menu, "Context menu not found");
return menu;
}
public void Click_CreateNewLayout()
{
var button = Session?.FindElementByAccessibilityId("NewLayoutButton");
Assert.IsNotNull(button, "Create new layout button not found");
button?.Click();
}
public void Click_EditLayout(string layoutName)
{
var layout = GetLayout(layoutName);
var editButton = layout?.FindElementByAccessibilityId("EditLayoutButton");
Assert.IsNotNull(editButton, "Edit button not found");
editButton.Click();
}
public void RightClick_Layout(string layoutName)
{
var layout = GetLayout(layoutName);
Actions actions = new Actions(Session);
actions.MoveToElement(layout);
actions.MoveByOffset(30, 30);
actions.ContextClick();
actions.Build().Perform();
}
}
}