Editor opening tests (#1633)
* editor opening tests * moved fancy zones opening method * moved settings restore to base class * changed launch * fixed tray button search * added exit function
This commit is contained in:
parent
f507ef5e56
commit
35054c1f59
293
src/tests/win-app-driver/FancyZonesTests/EditorOpeningTests.cs
Normal file
293
src/tests/win-app-driver/FancyZonesTests/EditorOpeningTests.cs
Normal file
|
@ -0,0 +1,293 @@
|
|||
using System.IO;
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using OpenQA.Selenium.Appium.Windows;
|
||||
using OpenQA.Selenium.Interactions;
|
||||
|
||||
namespace PowerToysTests
|
||||
{
|
||||
[TestClass]
|
||||
public class FancyZonesEditorOpeningTests : PowerToysSession
|
||||
{
|
||||
WindowsElement editorWindow;
|
||||
|
||||
static void ResetDefaultFancyZonesSettings()
|
||||
{
|
||||
if (!Directory.Exists(_settingsFolderPath))
|
||||
{
|
||||
Directory.CreateDirectory(_settingsFolderPath);
|
||||
}
|
||||
|
||||
string settings = "{\"version\":\"1.0\",\"name\":\"FancyZones\",\"properties\":{\"fancyzones_shiftDrag\":{\"value\":true},\"fancyzones_overrideSnapHotkeys\":{\"value\":false},\"fancyzones_zoneSetChange_flashZones\":{\"value\":false},\"fancyzones_displayChange_moveWindows\":{\"value\":false},\"fancyzones_zoneSetChange_moveWindows\":{\"value\":false},\"fancyzones_virtualDesktopChange_moveWindows\":{\"value\":false},\"fancyzones_appLastZone_moveWindows\":{\"value\":false},\"use_cursorpos_editor_startupscreen\":{\"value\":true},\"fancyzones_zoneHighlightColor\":{\"value\":\"#0078D7\"},\"fancyzones_highlight_opacity\":{\"value\":90},\"fancyzones_editor_hotkey\":{\"value\":{\"win\":true,\"ctrl\":false,\"alt\":false,\"shift\":false,\"code\":192,\"key\":\"`\"}},\"fancyzones_excluded_apps\":{\"value\":\"\"}}}";
|
||||
File.WriteAllText(_settingsPath, settings);
|
||||
}
|
||||
|
||||
void RemoveSettingsFile()
|
||||
{
|
||||
File.Delete(_zoneSettingsPath);
|
||||
}
|
||||
|
||||
void RemoveSettingsFolder()
|
||||
{
|
||||
Directory.Delete(_settingsFolderPath, true);
|
||||
}
|
||||
|
||||
void CreateEmptySettingsFile()
|
||||
{
|
||||
string zoneSettings = "";
|
||||
File.WriteAllText(_zoneSettingsPath, zoneSettings);
|
||||
}
|
||||
|
||||
void CreateDefaultSettingsFile()
|
||||
{
|
||||
string zoneSettings = "{\"app-zone-history\":[],\"devices\":[],\"custom-zone-sets\":[]}";
|
||||
File.WriteAllText(_zoneSettingsPath, zoneSettings);
|
||||
}
|
||||
|
||||
void CreateValidSettingsFile()
|
||||
{
|
||||
string zoneSettings = "{\"app-zone-history\":[{\"app-path\":\"C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\Common7\\IDE\\Extensions\\TestPlatform\\testhost.exe\",\"zone-index\":3,\"device-id\":\"DELA026#5&10a58c63&0&UID16777488_1920_1200_{39B25DD2-130D-4B5D-8851-4791D66B1539}\",\"zoneset-uuid\":\"{D13ABB6D-7721-4176-9647-C8C0836D99CC}\"}],\"devices\":[{\"device-id\":\"DELA026#5&10a58c63&0&UID16777488_1920_1200_{39B25DD2-130D-4B5D-8851-4791D66B1539}\",\"active-zoneset\":{\"uuid\":\"{D13ABB6D-7721-4176-9647-C8C0836D99CC}\",\"type\":\"columns\"},\"editor-show-spacing\":true,\"editor-spacing\":16,\"editor-zone-count\":3}],\"custom-zone-sets\":[]}";
|
||||
File.WriteAllText(_zoneSettingsPath, zoneSettings);
|
||||
}
|
||||
|
||||
void CreateValidSettingsFileWithUtf8()
|
||||
{
|
||||
string zoneSettings = "{\"app-zone-history\":[{\"app-path\":\"C:\\Program Files (x86)\\йцукен\\testhost.exe\",\"zone-index\":3,\"device-id\":\"DELA026#5&10a58c63&0&UID16777488_1920_1200_{39B25DD2-130D-4B5D-8851-4791D66B1539}\",\"zoneset-uuid\":\"{D13ABB6D-7721-4176-9647-C8C0836D99CC}\"}],\"devices\":[{\"device-id\":\"DELA026#5&10a58c63&0&UID16777488_1920_1200_{39B25DD2-130D-4B5D-8851-4791D66B1539}\",\"active-zoneset\":{\"uuid\":\"{D13ABB6D-7721-4176-9647-C8C0836D99CC}\",\"type\":\"columns\"},\"editor-show-spacing\":true,\"editor-spacing\":16,\"editor-zone-count\":3}],\"custom-zone-sets\":[]}";
|
||||
File.WriteAllText(_zoneSettingsPath, zoneSettings);
|
||||
}
|
||||
|
||||
void CreateInvalidSettingsFile()
|
||||
{
|
||||
string zoneSettings = "{\"app-zone-history\":[{\"app-path\":\"C:\\Program Files (x86)\\Microsoft Visual Studio\\testhost.exe\",\"zone-index\":3,\"device-id\":\"wrong-device-id\",\"zoneset-uuid\":\"{D13ABB6D-invalid-uuid-C8C0836D99CC}\"}],\"devices\":[{\"device-id\":\"DELA026#5&10a58c63&0&UID16777488_1920_1200_{39B25DD2-130D-4B5D-8851-4791D66B1539}\",\"active-zoneset\":{\"uuid\":\"{D13ABB6D-7721-4176-9647-C8C0836D99CC}\",\"type\":\"columns\"},\"editor-show-spacing\":true,\"editor-spacing\":16,\"editor-zone-count\":3}],\"custom-zone-sets\":[]}";
|
||||
File.WriteAllText(_zoneSettingsPath, zoneSettings);
|
||||
}
|
||||
|
||||
void CreateCroppedSettingsFile()
|
||||
{
|
||||
string zoneSettings = "{\"app-zone-history\":[],\"devices\":[],\"custom-zone-sets\":[{\"uuid\":\"{8BEC7183-C90E-4D41-AD1C-1AC2BC4760BA}\",\"name\":\"";
|
||||
File.WriteAllText(_zoneSettingsPath, zoneSettings);
|
||||
}
|
||||
|
||||
void TestEditorOpened()
|
||||
{
|
||||
WindowsElement errorMessage = null;
|
||||
try
|
||||
{
|
||||
errorMessage = session.FindElementByName("FancyZones Editor Exception Handler");
|
||||
if (errorMessage != null)
|
||||
{
|
||||
errorMessage.FindElementByName("OK").Click();
|
||||
ShortWait();
|
||||
}
|
||||
}
|
||||
catch (OpenQA.Selenium.WebDriverException)
|
||||
{
|
||||
//no error message, it's ok
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
editorWindow = session.FindElementByXPath("//Window[@Name=\"FancyZones Editor\"]");
|
||||
}
|
||||
catch (OpenQA.Selenium.WebDriverException)
|
||||
{
|
||||
}
|
||||
|
||||
Assert.IsNotNull(editorWindow);
|
||||
Assert.IsNull(errorMessage);
|
||||
}
|
||||
|
||||
void OpenEditorBySettingsButton()
|
||||
{
|
||||
OpenSettings();
|
||||
OpenFancyZonesSettings();
|
||||
|
||||
WindowsElement editorButton = session.FindElementByXPath("//Button[@Name=\"Edit zones\"]");
|
||||
Assert.IsNotNull(editorButton);
|
||||
|
||||
editorButton.Click();
|
||||
ShortWait();
|
||||
|
||||
TestEditorOpened();
|
||||
}
|
||||
|
||||
void OpenEditorByHotkey()
|
||||
{
|
||||
new Actions(session).KeyDown(OpenQA.Selenium.Keys.Command).SendKeys("`").KeyUp(OpenQA.Selenium.Keys.Command).Perform();
|
||||
ShortWait();
|
||||
|
||||
TestEditorOpened();
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void OpenEditorBySettingsButtonNoSettings()
|
||||
{
|
||||
RemoveSettingsFile();
|
||||
OpenEditorBySettingsButton();
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void OpenEditorBySettingsButtonNoSettingsFolder()
|
||||
{
|
||||
/*
|
||||
if (isPowerToysLaunched)
|
||||
{
|
||||
ExitPowerToys();
|
||||
}
|
||||
RemoveSettingsFolder();
|
||||
LaunchPowerToys();
|
||||
*/
|
||||
|
||||
RemoveSettingsFolder();
|
||||
OpenEditorBySettingsButton();
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void OpenEditorBySettingsButtonEmptySettings()
|
||||
{
|
||||
CreateEmptySettingsFile();
|
||||
OpenEditorBySettingsButton();
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void OpenEditorBySettingsButtonDefaultSettings()
|
||||
{
|
||||
CreateDefaultSettingsFile();
|
||||
OpenEditorBySettingsButton();
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void OpenEditorBySettingsButtonValidSettings()
|
||||
{
|
||||
CreateValidSettingsFile();
|
||||
OpenEditorBySettingsButton();
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void OpenEditorBySettingsButtonValidUtf8Settings()
|
||||
{
|
||||
CreateValidSettingsFileWithUtf8();
|
||||
OpenEditorBySettingsButton();
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void OpenEditorBySettingsButtonInvalidSettings()
|
||||
{
|
||||
CreateInvalidSettingsFile();
|
||||
OpenEditorBySettingsButton();
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void OpenEditorBySettingsButtonCroppedSettings()
|
||||
{
|
||||
CreateCroppedSettingsFile();
|
||||
OpenEditorBySettingsButton();
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void OpenEditorByHotkeyNoSettings()
|
||||
{
|
||||
RemoveSettingsFile();
|
||||
OpenEditorByHotkey();
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void OpenEditorByHotkeyNoSettingsFolder()
|
||||
{
|
||||
/*
|
||||
if (isPowerToysLaunched)
|
||||
{
|
||||
ExitPowerToys();
|
||||
}
|
||||
RemoveSettingsFolder();
|
||||
LaunchPowerToys();
|
||||
*/
|
||||
RemoveSettingsFolder();
|
||||
OpenEditorByHotkey();
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void OpenEditorByHotkeyEmptySettings()
|
||||
{
|
||||
CreateEmptySettingsFile();
|
||||
OpenEditorByHotkey();
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void OpenEditorByHotkeyDefaultSettings()
|
||||
{
|
||||
CreateDefaultSettingsFile();
|
||||
OpenEditorByHotkey();
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void OpenEditorByHotkeyValidSettings()
|
||||
{
|
||||
CreateValidSettingsFile();
|
||||
OpenEditorByHotkey();
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void OpenEditorByHotkeyValidUtf8Settings()
|
||||
{
|
||||
CreateValidSettingsFileWithUtf8();
|
||||
OpenEditorByHotkey();
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void OpenEditorByHotkeyInvalidSettings()
|
||||
{
|
||||
CreateInvalidSettingsFile();
|
||||
OpenEditorByHotkey();
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void OpenEditorByHotkeyCroppedSettings()
|
||||
{
|
||||
CreateCroppedSettingsFile();
|
||||
OpenEditorByHotkey();
|
||||
}
|
||||
|
||||
[ClassInitialize]
|
||||
public static void ClassInitialize(TestContext context)
|
||||
{
|
||||
Setup(context, false);
|
||||
|
||||
if (isPowerToysLaunched)
|
||||
{
|
||||
ExitPowerToys();
|
||||
}
|
||||
ResetDefaultFancyZonesSettings();
|
||||
LaunchPowerToys();
|
||||
}
|
||||
|
||||
[ClassCleanup]
|
||||
public static void ClassCleanup()
|
||||
{
|
||||
CloseSettings();
|
||||
ExitPowerToys();
|
||||
TearDown();
|
||||
}
|
||||
|
||||
[TestInitialize]
|
||||
public void TestInitialize()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
[TestCleanup]
|
||||
public void TestCleanup()
|
||||
{
|
||||
//Close editor
|
||||
if (editorWindow != null)
|
||||
{
|
||||
editorWindow.SendKeys(OpenQA.Selenium.Keys.Alt + OpenQA.Selenium.Keys.F4);
|
||||
ShortWait();
|
||||
}
|
||||
|
||||
if (!Directory.Exists(_settingsFolderPath))
|
||||
{
|
||||
Directory.CreateDirectory(_settingsFolderPath);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -14,9 +14,7 @@ namespace PowerToysTests
|
|||
{
|
||||
[TestClass]
|
||||
public class FancyZonesSettingsTests : PowerToysSession
|
||||
{
|
||||
private static string _settingsPath = "";
|
||||
private string _initialSettings = "";
|
||||
{
|
||||
private JObject _initialSettingsJson;
|
||||
|
||||
private static WindowsElement _saveButton;
|
||||
|
@ -41,23 +39,19 @@ namespace PowerToysTests
|
|||
_scrollDown = new Actions(session).MoveToElement(_saveButton).MoveByOffset(0, _saveButton.Rect.Height).ContextClick()
|
||||
.SendKeys(OpenQA.Selenium.Keys.PageDown + OpenQA.Selenium.Keys.PageDown);
|
||||
Assert.IsNotNull(_scrollDown);
|
||||
}
|
||||
|
||||
private static void OpenFancyZonesSettings()
|
||||
{
|
||||
WindowsElement fzNavigationButton = session.FindElementByXPath("//Button[@Name=\"FancyZones\"]");
|
||||
Assert.IsNotNull(fzNavigationButton);
|
||||
|
||||
fzNavigationButton.Click();
|
||||
fzNavigationButton.Click();
|
||||
|
||||
ShortWait();
|
||||
}
|
||||
|
||||
private JObject getProperties()
|
||||
{
|
||||
JObject settings = JObject.Parse(File.ReadAllText(_settingsPath));
|
||||
return settings["properties"].ToObject<JObject>();
|
||||
}
|
||||
|
||||
private JObject getProperties()
|
||||
{
|
||||
try
|
||||
{
|
||||
JObject settings = JObject.Parse(File.ReadAllText(_settingsPath));
|
||||
return settings["properties"].ToObject<JObject>();
|
||||
}
|
||||
catch (Newtonsoft.Json.JsonReaderException)
|
||||
{
|
||||
return new JObject();
|
||||
}
|
||||
}
|
||||
|
||||
private T getPropertyValue<T>(string propertyName)
|
||||
|
@ -237,19 +231,7 @@ namespace PowerToysTests
|
|||
WindowsElement fzTitle = session.FindElementByName("FancyZones Settings");
|
||||
Assert.IsNotNull(fzTitle);
|
||||
}
|
||||
/*
|
||||
[TestMethod]
|
||||
public void EditorOpen()
|
||||
{
|
||||
session.FindElementByXPath("//Button[@Name=\"Edit zones\"]").Click();
|
||||
ShortWait();
|
||||
|
||||
WindowsElement editorWindow = session.FindElementByName("FancyZones Editor");
|
||||
Assert.IsNotNull(editorWindow);
|
||||
|
||||
editorWindow.SendKeys(OpenQA.Selenium.Keys.Alt + OpenQA.Selenium.Keys.F4);
|
||||
}
|
||||
*/
|
||||
/*
|
||||
* click each toggle,
|
||||
* save changes,
|
||||
|
@ -721,14 +703,6 @@ namespace PowerToysTests
|
|||
public static void ClassInitialize(TestContext context)
|
||||
{
|
||||
Setup(context);
|
||||
|
||||
string settingsFolderPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "Microsoft/PowerToys/FancyZones");
|
||||
if (!Directory.Exists(settingsFolderPath))
|
||||
{
|
||||
Directory.CreateDirectory(settingsFolderPath);
|
||||
}
|
||||
_settingsPath = settingsFolderPath + "/settings.json";
|
||||
|
||||
Init();
|
||||
}
|
||||
|
||||
|
@ -751,31 +725,25 @@ namespace PowerToysTests
|
|||
}
|
||||
|
||||
TearDown();
|
||||
}
|
||||
|
||||
[TestInitialize]
|
||||
public void TestInitialize()
|
||||
{
|
||||
try
|
||||
{
|
||||
_initialSettings = File.ReadAllText(_settingsPath);
|
||||
_initialSettingsJson = JObject.Parse(_initialSettings);
|
||||
}
|
||||
catch (System.IO.FileNotFoundException)
|
||||
{
|
||||
_initialSettings = "";
|
||||
}
|
||||
}
|
||||
|
||||
[TestInitialize]
|
||||
public void TestInitialize()
|
||||
{
|
||||
try
|
||||
{
|
||||
_initialSettingsJson = JObject.Parse(_initialSettings);
|
||||
}
|
||||
catch (Newtonsoft.Json.JsonReaderException)
|
||||
{
|
||||
//empty settings
|
||||
}
|
||||
}
|
||||
|
||||
[TestCleanup]
|
||||
public void TestCleanup()
|
||||
{
|
||||
ScrollUp();
|
||||
|
||||
if (_initialSettings.Length > 0)
|
||||
{
|
||||
File.WriteAllText(_settingsPath, _initialSettings);
|
||||
}
|
||||
ScrollUp();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,36 +4,38 @@
|
|||
- [x] Test if settings are saved in file properly
|
||||
|
||||
## Editor
|
||||
- [] Open editor by clicking button from settings
|
||||
- [] without settings file
|
||||
- [] with valid settings file
|
||||
- [] with invalid settings file
|
||||
- [] Open editor by hotkey with opened settings window
|
||||
- [] without settings file
|
||||
- [] with valid settings file
|
||||
- [] with invalid settings file
|
||||
- [] Open editor by hotkey with closed settings window
|
||||
- [] without settings file
|
||||
- [] with valid settings file
|
||||
- [] with invalid settings file
|
||||
- [] Increase/decrease zone count, check min and max possible values
|
||||
- [] Test if settings are saved in file properly
|
||||
- [] `Show spacing` checked/unchecked
|
||||
- [] `Space around zone` saved correctly
|
||||
- [] `Space around zone` possible input values
|
||||
- [] Edit templates, check settings files
|
||||
- [] Create new custom layout
|
||||
- [] empty
|
||||
- [] one zone
|
||||
- [] fullscreen
|
||||
- [] not fullscreen
|
||||
- [] many zones
|
||||
- [] overlapping
|
||||
- [] non-overlapping
|
||||
- [] utf-16 layout name
|
||||
- [] empty layout name
|
||||
- [] special characters in layout name
|
||||
- [] Remove custom layout
|
||||
- [] Edit selected layout
|
||||
- [x] Open editor by clicking button from settings
|
||||
- [x] without settings file
|
||||
- [x] without settings folder
|
||||
- [x] with valid settings file
|
||||
- [x] with valid settings file contained cyrillic characters
|
||||
- [x] with invalid settings file
|
||||
- [x] with cropped file
|
||||
- [x] Open editor by hotkey
|
||||
- [x] without settings file
|
||||
- [x] without settings folder
|
||||
- [x] with valid settings file
|
||||
- [x] with valid settings file contained cyrillic characters
|
||||
- [x] with invalid settings file
|
||||
- [x] with cropped file
|
||||
- [ ] Increase/decrease zone count, check min and max possible values
|
||||
- [ ] Test if settings are saved in file properly
|
||||
- [ ] `Show spacing` checked/unchecked
|
||||
- [ ] `Space around zone` saved correctly
|
||||
- [ ] `Space around zone` possible input values
|
||||
- [ ] Edit templates, check settings files
|
||||
- [ ] Create new custom layout
|
||||
- [ ] empty
|
||||
- [ ] one zone
|
||||
- [ ] fullscreen
|
||||
- [ ] not fullscreen
|
||||
- [ ] many zones
|
||||
- [ ] overlapping
|
||||
- [ ] non-overlapping
|
||||
- [ ] utf-16 layout name
|
||||
- [ ] empty layout name
|
||||
- [ ] special characters in layout name
|
||||
- [ ] Remove custom layout
|
||||
- [ ] Edit selected layout
|
||||
|
||||
### Usage
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
using System;
|
||||
using System.IO;
|
||||
using System.Threading;
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using OpenQA.Selenium;
|
||||
using OpenQA.Selenium.Appium;
|
||||
using OpenQA.Selenium.Appium.Windows;
|
||||
using OpenQA.Selenium;
|
||||
using OpenQA.Selenium.Interactions;
|
||||
|
||||
namespace PowerToysTests
|
||||
{
|
||||
|
@ -14,8 +16,29 @@ namespace PowerToysTests
|
|||
protected static bool isPowerToysLaunched = false;
|
||||
protected static WindowsElement trayButton;
|
||||
|
||||
public static void Setup(TestContext context)
|
||||
protected static string _settingsFolderPath = "";
|
||||
protected static string _settingsPath = "";
|
||||
protected static string _zoneSettingsPath = "";
|
||||
protected static string _initialSettings = "";
|
||||
protected static string _initialZoneSettings = "";
|
||||
|
||||
public static void Setup(TestContext context, bool isLaunchRequired = true)
|
||||
{
|
||||
//read settings before running tests to restore them after
|
||||
_settingsFolderPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "Microsoft\\PowerToys\\FancyZones");
|
||||
_settingsPath = _settingsFolderPath + "\\settings.json";
|
||||
_zoneSettingsPath = _settingsFolderPath + "\\zones-settings.json";
|
||||
try
|
||||
{
|
||||
_initialSettings = File.ReadAllText(_settingsPath);
|
||||
_initialZoneSettings = File.ReadAllText(_zoneSettingsPath);
|
||||
}
|
||||
catch(Exception)
|
||||
{
|
||||
//failed to read settings
|
||||
}
|
||||
|
||||
|
||||
if (session == null)
|
||||
{
|
||||
// Create a new Desktop session to use PowerToys.
|
||||
|
@ -28,7 +51,7 @@ namespace PowerToysTests
|
|||
trayButton = session.FindElementByAccessibilityId("1502");
|
||||
|
||||
isPowerToysLaunched = CheckPowerToysLaunched();
|
||||
if (!isPowerToysLaunched)
|
||||
if (!isPowerToysLaunched && isLaunchRequired)
|
||||
{
|
||||
LaunchPowerToys();
|
||||
}
|
||||
|
@ -38,11 +61,35 @@ namespace PowerToysTests
|
|||
|
||||
public static void TearDown()
|
||||
{
|
||||
if (session!=null)
|
||||
//restore initial settings files
|
||||
if (_initialSettings.Length > 0)
|
||||
{
|
||||
File.WriteAllText(_settingsPath, _initialSettings);
|
||||
}
|
||||
else
|
||||
{
|
||||
File.Delete(_settingsPath);
|
||||
}
|
||||
|
||||
if (_initialZoneSettings.Length > 0)
|
||||
{
|
||||
File.WriteAllText(_zoneSettingsPath, _initialZoneSettings);
|
||||
}
|
||||
else
|
||||
{
|
||||
File.Delete(_zoneSettingsPath);
|
||||
}
|
||||
|
||||
if (session != null)
|
||||
{
|
||||
session.Quit();
|
||||
session = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void WaitSeconds(int seconds)
|
||||
{
|
||||
Thread.Sleep(TimeSpan.FromSeconds(seconds));
|
||||
}
|
||||
|
||||
public static void ShortWait()
|
||||
|
@ -53,14 +100,35 @@ namespace PowerToysTests
|
|||
public static void OpenSettings()
|
||||
{
|
||||
trayButton.Click();
|
||||
session.FindElementByName("PowerToys").Click();
|
||||
session.FindElementByXPath("//Button[@Name=\"PowerToys\"]").Click();
|
||||
trayButton.Click();
|
||||
}
|
||||
|
||||
public static void OpenFancyZonesSettings()
|
||||
{
|
||||
WindowsElement fzNavigationButton = session.FindElementByXPath("//Button[@Name=\"FancyZones\"]");
|
||||
Assert.IsNotNull(fzNavigationButton);
|
||||
|
||||
fzNavigationButton.Click();
|
||||
fzNavigationButton.Click();
|
||||
|
||||
ShortWait();
|
||||
}
|
||||
|
||||
public static void CloseSettings()
|
||||
{
|
||||
WindowsElement settings = session.FindElementByName("PowerToys Settings");
|
||||
settings.SendKeys(Keys.Alt + Keys.F4);
|
||||
try
|
||||
{
|
||||
WindowsElement settings = session.FindElementByName("PowerToys Settings");
|
||||
if (settings != null)
|
||||
{
|
||||
settings.SendKeys(Keys.Alt + Keys.F4);
|
||||
}
|
||||
}
|
||||
catch(Exception)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private static bool CheckPowerToysLaunched()
|
||||
|
@ -70,7 +138,7 @@ namespace PowerToysTests
|
|||
|
||||
try
|
||||
{
|
||||
WindowsElement pt = session.FindElementByName("PowerToys");
|
||||
WindowsElement pt = session.FindElementByXPath("//Button[@Name=\"PowerToys\"]");
|
||||
isLaunched = (pt != null);
|
||||
}
|
||||
catch(OpenQA.Selenium.WebDriverException)
|
||||
|
@ -99,5 +167,18 @@ namespace PowerToysTests
|
|||
//exception could be thrown even if app launched successfully
|
||||
}
|
||||
}
|
||||
|
||||
public static void ExitPowerToys()
|
||||
{
|
||||
trayButton.Click();
|
||||
ShortWait();
|
||||
|
||||
WindowsElement pt = session.FindElementByXPath("//Button[@Name=\"PowerToys\"]");
|
||||
new Actions(session).MoveToElement(pt).ContextClick().Perform();
|
||||
ShortWait();
|
||||
|
||||
session.FindElementByXPath("//MenuItem[@Name=\"Exit\"]").Click();
|
||||
trayButton.Click(); //close tray
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="..\..\..\packages\MSTest.TestAdapter.2.1.0\build\net45\MSTest.TestAdapter.props" Condition="Exists('..\..\..\packages\MSTest.TestAdapter.2.1.0\build\net45\MSTest.TestAdapter.props')" />
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
|
@ -83,6 +83,7 @@
|
|||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="FancyZonesTests\EditorOpeningTests.cs" />
|
||||
<Compile Include="FancyZonesTests\FancyZonesSettingsTests.cs" />
|
||||
<Compile Include="PowerToysSession.cs" />
|
||||
<Compile Include="PowerToysTrayTests.cs" />
|
||||
|
|
Loading…
Reference in a new issue