mirror of
https://github.com/microsoft/PowerToys.git
synced 2026-04-06 03:07:04 +02:00
* tray button fix * settings closing changed * ignore old settings tests * changed test init * changed launch * separated app history file * select enabled modules on launch
301 lines
13 KiB
C#
301 lines
13 KiB
C#
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
|
using OpenQA.Selenium.Appium;
|
|
using OpenQA.Selenium.Appium.Windows;
|
|
using OpenQA.Selenium.Interactions;
|
|
using System.Windows.Forms;
|
|
|
|
namespace PowerToysTests
|
|
{
|
|
[TestClass]
|
|
public class FancyZonesEditorCanvasZoneResizeTests : FancyZonesEditor
|
|
{
|
|
private void MoveCorner(WindowsElement corner, bool shiftLeft, bool shiftUp, int xOffset, int yOffset)
|
|
{
|
|
int shiftX = shiftLeft ? -(corner.Rect.Width / 2) + 1 : (corner.Rect.Width / 2) - 1;
|
|
int shiftY = shiftUp ? -(corner.Rect.Height / 2) + 1 : (corner.Rect.Height / 2) - 1;
|
|
|
|
new Actions(session).MoveToElement(corner)
|
|
.MoveByOffset(shiftX, shiftY)
|
|
.ClickAndHold().MoveByOffset(xOffset, yOffset).Release().Perform();
|
|
}
|
|
|
|
[TestMethod]
|
|
public void MoveTopBorder()
|
|
{
|
|
WindowsElement topBorder = session.FindElementByAccessibilityId("NResize");
|
|
WindowsElement bottomBorder = session.FindElementByAccessibilityId("SResize");
|
|
Assert.IsNotNull(topBorder);
|
|
Assert.IsNotNull(bottomBorder);
|
|
|
|
int height = bottomBorder.Rect.Y - topBorder.Rect.Y;
|
|
|
|
//up
|
|
new Actions(session).MoveToElement(topBorder).ClickAndHold().MoveByOffset(0, -5000).Release().Perform();
|
|
Assert.IsTrue(topBorder.Rect.Y >= 0);
|
|
Assert.IsTrue(height < bottomBorder.Rect.Y - topBorder.Rect.Y);
|
|
height = bottomBorder.Rect.Y - topBorder.Rect.Y;
|
|
|
|
//down
|
|
new Actions(session).MoveToElement(topBorder).ClickAndHold().MoveByOffset(0, 5000).Release().Perform();
|
|
Assert.IsTrue(topBorder.Rect.Y <= bottomBorder.Rect.Y);
|
|
Assert.IsTrue(height > bottomBorder.Rect.Y - topBorder.Rect.Y);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void MoveBottomBorder()
|
|
{
|
|
WindowsElement topBorder = session.FindElementByAccessibilityId("NResize");
|
|
WindowsElement bottomBorder = session.FindElementByAccessibilityId("SResize");
|
|
Assert.IsNotNull(topBorder);
|
|
Assert.IsNotNull(bottomBorder);
|
|
|
|
int height = bottomBorder.Rect.Y - topBorder.Rect.Y;
|
|
|
|
//up
|
|
new Actions(session).MoveToElement(bottomBorder).ClickAndHold().MoveByOffset(0, -5000).Release().Perform();
|
|
Assert.IsTrue(topBorder.Rect.Y <= bottomBorder.Rect.Y);
|
|
Assert.IsTrue(height > bottomBorder.Rect.Y - topBorder.Rect.Y);
|
|
height = bottomBorder.Rect.Y - topBorder.Rect.Y;
|
|
|
|
//down
|
|
new Actions(session).MoveToElement(bottomBorder).ClickAndHold().MoveByOffset(0, 5000).Release().Perform();
|
|
Assert.IsTrue(bottomBorder.Rect.Y <= Screen.PrimaryScreen.WorkingArea.Bottom);
|
|
Assert.IsTrue(height < bottomBorder.Rect.Y - topBorder.Rect.Y);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void MoveLeftBorder()
|
|
{
|
|
WindowsElement leftBorder = session.FindElementByAccessibilityId("WResize");
|
|
WindowsElement rightBorder = session.FindElementByAccessibilityId("EResize");
|
|
Assert.IsNotNull(leftBorder);
|
|
Assert.IsNotNull(rightBorder);
|
|
|
|
int width = rightBorder.Rect.X - leftBorder.Rect.X;
|
|
|
|
//to the left
|
|
new Actions(session).MoveToElement(leftBorder).ClickAndHold().MoveByOffset(-5000, 0).Release().Perform();
|
|
Assert.IsTrue(leftBorder.Rect.Y <= Screen.PrimaryScreen.WorkingArea.Bottom);
|
|
Assert.IsTrue(width < rightBorder.Rect.X - leftBorder.Rect.X);
|
|
width = rightBorder.Rect.X - leftBorder.Rect.X;
|
|
|
|
//to the right
|
|
new Actions(session).MoveToElement(leftBorder).ClickAndHold().MoveByOffset(5000, 0).Release().Perform();
|
|
Assert.IsTrue(leftBorder.Rect.X <= rightBorder.Rect.X);
|
|
Assert.IsTrue(width > rightBorder.Rect.X - leftBorder.Rect.X);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void MoveRightBorder()
|
|
{
|
|
WindowsElement leftBorder = session.FindElementByAccessibilityId("WResize");
|
|
WindowsElement rightBorder = session.FindElementByAccessibilityId("EResize");
|
|
Assert.IsNotNull(leftBorder);
|
|
Assert.IsNotNull(rightBorder);
|
|
|
|
int width = rightBorder.Rect.X - leftBorder.Rect.X;
|
|
|
|
//to the left
|
|
new Actions(session).MoveToElement(rightBorder).ClickAndHold().MoveByOffset(-5000, 0).Release().Perform();
|
|
Assert.IsTrue(leftBorder.Rect.X <= rightBorder.Rect.X);
|
|
Assert.IsTrue(width > rightBorder.Rect.X - leftBorder.Rect.X);
|
|
width = rightBorder.Rect.X - leftBorder.Rect.X;
|
|
|
|
//to the right
|
|
new Actions(session).MoveToElement(rightBorder).ClickAndHold().MoveByOffset(5000, 0).Release().Perform();
|
|
Assert.IsTrue(leftBorder.Rect.X <= Screen.PrimaryScreen.WorkingArea.Right);
|
|
Assert.IsTrue(width < rightBorder.Rect.X - leftBorder.Rect.X);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void MoveTopLeftCorner()
|
|
{
|
|
WindowsElement topLeftCorner = session.FindElementByAccessibilityId("NWResize");
|
|
WindowsElement bottomBorder = session.FindElementByAccessibilityId("SResize");
|
|
WindowsElement rightBorder = session.FindElementByAccessibilityId("EResize");
|
|
Assert.IsNotNull(topLeftCorner);
|
|
Assert.IsNotNull(bottomBorder);
|
|
Assert.IsNotNull(rightBorder);
|
|
|
|
int expectedWidth = rightBorder.Rect.X - topLeftCorner.Rect.X;
|
|
int expectedHeight = bottomBorder.Rect.Y - topLeftCorner.Rect.Y;
|
|
int actualWidth, actualHeight;
|
|
|
|
//up-left
|
|
MoveCorner(topLeftCorner, true, true, -5000, -5000);
|
|
actualHeight = bottomBorder.Rect.Y - topLeftCorner.Rect.Y;
|
|
actualWidth = rightBorder.Rect.X - topLeftCorner.Rect.X;
|
|
|
|
Assert.IsTrue(topLeftCorner.Rect.Y >= 0);
|
|
Assert.IsTrue(topLeftCorner.Rect.X >= 0);
|
|
Assert.IsTrue(actualHeight > expectedHeight);
|
|
Assert.IsTrue(actualWidth > expectedWidth);
|
|
|
|
expectedHeight = actualHeight;
|
|
expectedWidth = actualWidth;
|
|
|
|
//down-right
|
|
MoveCorner(topLeftCorner, true, true, 5000, 5000);
|
|
actualHeight = bottomBorder.Rect.Y - topLeftCorner.Rect.Y;
|
|
actualWidth = rightBorder.Rect.X - topLeftCorner.Rect.X;
|
|
|
|
Assert.IsTrue(topLeftCorner.Rect.Y <= bottomBorder.Rect.Y);
|
|
Assert.IsTrue(topLeftCorner.Rect.X <= rightBorder.Rect.X);
|
|
Assert.IsTrue(actualHeight < expectedHeight);
|
|
Assert.IsTrue(actualWidth < expectedWidth);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void MoveTopRightCorner()
|
|
{
|
|
WindowsElement topRightCorner = session.FindElementByAccessibilityId("NEResize");
|
|
WindowsElement bottomBorder = session.FindElementByAccessibilityId("SResize");
|
|
WindowsElement leftBorder = session.FindElementByAccessibilityId("WResize");
|
|
Assert.IsNotNull(topRightCorner);
|
|
Assert.IsNotNull(bottomBorder);
|
|
Assert.IsNotNull(leftBorder);
|
|
|
|
int expectedWidth = topRightCorner.Rect.X - leftBorder.Rect.X;
|
|
int expectedHeight = bottomBorder.Rect.Y - topRightCorner.Rect.Y;
|
|
int actualWidth, actualHeight;
|
|
|
|
//up-right
|
|
MoveCorner(topRightCorner, false, true, 5000, -5000);
|
|
actualHeight = bottomBorder.Rect.Y - topRightCorner.Rect.Y;
|
|
actualWidth = topRightCorner.Rect.X - leftBorder.Rect.X;
|
|
|
|
Assert.IsTrue(topRightCorner.Rect.Y >= 0);
|
|
Assert.IsTrue(leftBorder.Rect.X <= Screen.PrimaryScreen.WorkingArea.Right);
|
|
Assert.IsTrue(actualHeight > expectedHeight);
|
|
Assert.IsTrue(actualWidth > expectedWidth);
|
|
|
|
expectedHeight = actualHeight;
|
|
expectedWidth = actualWidth;
|
|
|
|
//down-left
|
|
MoveCorner(topRightCorner, false, true, -5000, 5000);
|
|
actualHeight = bottomBorder.Rect.Y - topRightCorner.Rect.Y;
|
|
actualWidth = topRightCorner.Rect.X - leftBorder.Rect.X;
|
|
|
|
Assert.IsTrue(topRightCorner.Rect.Y <= bottomBorder.Rect.Y);
|
|
Assert.IsTrue(topRightCorner.Rect.X >= leftBorder.Rect.X);
|
|
Assert.IsTrue(actualHeight < expectedHeight);
|
|
Assert.IsTrue(actualWidth < expectedWidth);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void MoveBottomLeftCorner()
|
|
{
|
|
WindowsElement bottomLeftCorner = session.FindElementByAccessibilityId("SWResize");
|
|
WindowsElement topBorder = session.FindElementByAccessibilityId("NResize");
|
|
WindowsElement rightBorder = session.FindElementByAccessibilityId("EResize");
|
|
Assert.IsNotNull(bottomLeftCorner);
|
|
Assert.IsNotNull(topBorder);
|
|
Assert.IsNotNull(rightBorder);
|
|
|
|
int expectedWidth = rightBorder.Rect.X - bottomLeftCorner.Rect.X;
|
|
int expectedHeight = bottomLeftCorner.Rect.Y - topBorder.Rect.Y;
|
|
int actualWidth, actualHeight;
|
|
|
|
//up-left
|
|
MoveCorner(bottomLeftCorner, true, false, 5000, -5000);
|
|
actualHeight = bottomLeftCorner.Rect.Y - topBorder.Rect.Y;
|
|
actualWidth = rightBorder.Rect.X - bottomLeftCorner.Rect.X;
|
|
|
|
Assert.IsTrue(bottomLeftCorner.Rect.Y >= topBorder.Rect.Y);
|
|
Assert.IsTrue(bottomLeftCorner.Rect.X <= rightBorder.Rect.X);
|
|
Assert.IsTrue(actualHeight < expectedHeight);
|
|
Assert.IsTrue(actualWidth < expectedWidth);
|
|
|
|
expectedHeight = actualHeight;
|
|
expectedWidth = actualWidth;
|
|
|
|
//down-right
|
|
MoveCorner(bottomLeftCorner, true, false, -5000, 5000);
|
|
actualHeight = bottomLeftCorner.Rect.Y - topBorder.Rect.Y;
|
|
actualWidth = rightBorder.Rect.X - bottomLeftCorner.Rect.X;
|
|
|
|
Assert.IsTrue(bottomLeftCorner.Rect.Y <= Screen.PrimaryScreen.WorkingArea.Bottom);
|
|
Assert.IsTrue(bottomLeftCorner.Rect.X >= 0);
|
|
Assert.IsTrue(actualHeight > expectedHeight);
|
|
Assert.IsTrue(actualWidth > expectedWidth);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void MoveBottomRightCorner()
|
|
{
|
|
WindowsElement zone = session.FindElementByAccessibilityId("Caption");
|
|
Assert.IsNotNull(zone, "Unable to move zone");
|
|
new Actions(session).MoveToElement(zone).ClickAndHold().MoveByOffset(creatorWindow.Rect.Width / 2, 0).Release().Perform();
|
|
WindowsElement bottomRightCorner = session.FindElementByAccessibilityId("SEResize");
|
|
WindowsElement topBorder = session.FindElementByAccessibilityId("NResize");
|
|
WindowsElement leftBorder = session.FindElementByAccessibilityId("WResize");
|
|
Assert.IsNotNull(bottomRightCorner);
|
|
Assert.IsNotNull(topBorder);
|
|
Assert.IsNotNull(leftBorder);
|
|
|
|
int expectedWidth = bottomRightCorner.Rect.X - leftBorder.Rect.X;
|
|
int expectedHeight = bottomRightCorner.Rect.Y - topBorder.Rect.Y;
|
|
int actualWidth, actualHeight;
|
|
|
|
//up-left
|
|
MoveCorner(bottomRightCorner, false, false, -5000, -5000);
|
|
actualHeight = bottomRightCorner.Rect.Y - topBorder.Rect.Y;
|
|
actualWidth = bottomRightCorner.Rect.X - leftBorder.Rect.X;
|
|
|
|
Assert.IsTrue(bottomRightCorner.Rect.Y >= topBorder.Rect.Y);
|
|
Assert.IsTrue(bottomRightCorner.Rect.X >= leftBorder.Rect.X);
|
|
Assert.IsTrue(actualHeight < expectedHeight);
|
|
Assert.IsTrue(actualWidth < expectedWidth);
|
|
|
|
expectedHeight = actualHeight;
|
|
expectedWidth = actualWidth;
|
|
|
|
//down-right
|
|
MoveCorner(bottomRightCorner, false, false, 5000, 5000);
|
|
actualHeight = bottomRightCorner.Rect.Y - topBorder.Rect.Y;
|
|
actualWidth = bottomRightCorner.Rect.X - leftBorder.Rect.X;
|
|
|
|
Assert.IsTrue(bottomRightCorner.Rect.Y <= Screen.PrimaryScreen.WorkingArea.Bottom);
|
|
Assert.IsTrue(bottomRightCorner.Rect.X <= Screen.PrimaryScreen.WorkingArea.Right);
|
|
Assert.IsTrue(actualHeight > expectedHeight);
|
|
}
|
|
|
|
[ClassInitialize]
|
|
public static void ClassInitialize(TestContext context)
|
|
{
|
|
Setup(context);
|
|
Assert.IsNotNull(session);
|
|
|
|
EnableModules(false, true, false, false, false, false, false, false);
|
|
ResetSettings();
|
|
|
|
Assert.IsTrue(OpenEditor());
|
|
OpenCustomLayouts();
|
|
}
|
|
|
|
[ClassCleanup]
|
|
public static void ClassCleanup()
|
|
{
|
|
CloseEditor();
|
|
ExitPowerToys();
|
|
TearDown();
|
|
}
|
|
|
|
[TestInitialize]
|
|
public void TestInitialize()
|
|
{
|
|
//create canvas zone
|
|
OpenCreatorWindow("Create new custom");
|
|
creatorWindow.FindElementByAccessibilityId("newZoneButton").Click();
|
|
}
|
|
|
|
[TestCleanup]
|
|
public void TestCleanup()
|
|
{
|
|
AppiumWebElement cancelButton = creatorWindow.FindElementByName("Cancel");
|
|
Assert.IsNotNull(cancelButton);
|
|
new Actions(session).MoveToElement(cancelButton).Click().Perform();
|
|
}
|
|
}
|
|
} |