mirror of
https://github.com/microsoft/PowerToys.git
synced 2026-04-05 18:57:19 +02:00
[FancyZones] Split zones-settings: app zone history (#15690)
This commit is contained in:
@@ -0,0 +1,129 @@
|
||||
#include "pch.h"
|
||||
#include <filesystem>
|
||||
|
||||
#include <FancyZonesLib/FancyZonesData/AppZoneHistory.h>
|
||||
|
||||
#include "util.h"
|
||||
|
||||
using namespace Microsoft::VisualStudio::CppUnitTestFramework;
|
||||
|
||||
namespace FancyZonesUnitTests
|
||||
{
|
||||
TEST_CLASS (AppZoneHistoryUnitTests)
|
||||
{
|
||||
HINSTANCE m_hInst{};
|
||||
|
||||
TEST_METHOD_INITIALIZE(Init)
|
||||
{
|
||||
m_hInst = (HINSTANCE)GetModuleHandleW(nullptr);
|
||||
AppZoneHistory::instance().LoadData();
|
||||
}
|
||||
|
||||
TEST_METHOD_CLEANUP(CleanUp)
|
||||
{
|
||||
std::filesystem::remove(AppZoneHistory::instance().AppZoneHistoryFileName());
|
||||
}
|
||||
|
||||
TEST_METHOD (AppLastZoneInvalidWindow)
|
||||
{
|
||||
const std::wstring zoneSetId = L"{2FEC41DA-3A0B-4E31-9CE1-9473C65D99F2}";
|
||||
const FancyZonesDataTypes::DeviceIdData deviceId{ L"DELA026#5&10a58c63&0&UID16777488_2194_1234_{39B25DD2-130D-4B5D-8851-4791D66B1539}" };
|
||||
const auto window = Mocks::Window();
|
||||
|
||||
Assert::IsTrue(std::vector<ZoneIndex>{} == AppZoneHistory::instance().GetAppLastZoneIndexSet(window, deviceId, zoneSetId));
|
||||
|
||||
const int expectedZoneIndex = 1;
|
||||
Assert::IsFalse(AppZoneHistory::instance().SetAppLastZones(window, deviceId, zoneSetId, { expectedZoneIndex }));
|
||||
}
|
||||
|
||||
TEST_METHOD (AppLastZoneNullWindow)
|
||||
{
|
||||
const std::wstring zoneSetId = L"{2FEC41DA-3A0B-4E31-9CE1-9473C65D99F2}";
|
||||
const FancyZonesDataTypes::DeviceIdData deviceId{ L"DELA026#5&10a58c63&0&UID16777488_2194_1234_{39B25DD2-130D-4B5D-8851-4791D66B1539}" };
|
||||
const auto window = nullptr;
|
||||
|
||||
const int expectedZoneIndex = 1;
|
||||
Assert::IsFalse(AppZoneHistory::instance().SetAppLastZones(window, deviceId, zoneSetId, { expectedZoneIndex }));
|
||||
}
|
||||
|
||||
TEST_METHOD (AppLastdeviceIdTest)
|
||||
{
|
||||
const std::wstring zoneSetId = L"{2FEC41DA-3A0B-4E31-9CE1-9473C65D99F2}";
|
||||
const FancyZonesDataTypes::DeviceIdData deviceId1{ L"DELA026#5&10a58c63&0&UID16777488_2194_1234_{39B25DD2-130D-4B5D-8851-4791D66B1539}" };
|
||||
const FancyZonesDataTypes::DeviceIdData deviceId2{ L"DELA026#5&10a58c63&0&UID16777489_2194_1234_{39B25DD2-130D-4B5D-8851-4791D66B1539}" };
|
||||
const auto window = Mocks::WindowCreate(m_hInst);
|
||||
|
||||
const int expectedZoneIndex = 10;
|
||||
Assert::IsTrue(AppZoneHistory::instance().SetAppLastZones(window, deviceId1, zoneSetId, { expectedZoneIndex }));
|
||||
Assert::IsTrue(std::vector<ZoneIndex>{ expectedZoneIndex } == AppZoneHistory::instance().GetAppLastZoneIndexSet(window, deviceId1, zoneSetId));
|
||||
Assert::IsTrue(std::vector<ZoneIndex>{} == AppZoneHistory::instance().GetAppLastZoneIndexSet(window, deviceId2, zoneSetId));
|
||||
}
|
||||
|
||||
TEST_METHOD (AppLastZoneSetIdTest)
|
||||
{
|
||||
const std::wstring zoneSetId1 = L"{B7A1F5A9-9DC2-4505-84AB-993253839093}";
|
||||
const std::wstring zoneSetId2 = L"{B7A1F5A9-9DC2-4505-84AB-993253839094}";
|
||||
const FancyZonesDataTypes::DeviceIdData deviceId{ L"DELA026#5&10a58c63&0&UID16777488_2194_1234_{39B25DD2-130D-4B5D-8851-4791D66B1539}" };
|
||||
const auto window = Mocks::WindowCreate(m_hInst);
|
||||
|
||||
const int expectedZoneIndex = 10;
|
||||
Assert::IsTrue(AppZoneHistory::instance().SetAppLastZones(window, deviceId, zoneSetId1, { expectedZoneIndex }));
|
||||
Assert::IsTrue(std::vector<ZoneIndex>{ expectedZoneIndex } == AppZoneHistory::instance().GetAppLastZoneIndexSet(window, deviceId, zoneSetId1));
|
||||
Assert::IsTrue(std::vector<ZoneIndex>{} == AppZoneHistory::instance().GetAppLastZoneIndexSet(window, deviceId, zoneSetId2));
|
||||
}
|
||||
|
||||
TEST_METHOD (AppLastZoneRemoveWindow)
|
||||
{
|
||||
const std::wstring zoneSetId = L"{B7A1F5A9-9DC2-4505-84AB-993253839093}";
|
||||
const FancyZonesDataTypes::DeviceIdData deviceId{ L"DELA026#5&10a58c63&0&UID16777488_2194_1234_{39B25DD2-130D-4B5D-8851-4791D66B1539}" };
|
||||
const auto window = Mocks::WindowCreate(m_hInst);
|
||||
|
||||
Assert::IsTrue(AppZoneHistory::instance().SetAppLastZones(window, deviceId, zoneSetId, { 1 }));
|
||||
Assert::IsTrue(AppZoneHistory::instance().RemoveAppLastZone(window, deviceId, zoneSetId));
|
||||
Assert::IsTrue(std::vector<ZoneIndex>{} == AppZoneHistory::instance().GetAppLastZoneIndexSet(window, deviceId, zoneSetId));
|
||||
}
|
||||
|
||||
TEST_METHOD (AppLastZoneRemoveUnknownWindow)
|
||||
{
|
||||
const std::wstring zoneSetId = L"{2FEC41DA-3A0B-4E31-9CE1-9473C65D99F2}";
|
||||
const FancyZonesDataTypes::DeviceIdData deviceId{ L"DELA026#5&10a58c63&0&UID16777488_2194_1234_{39B25DD2-130D-4B5D-8851-4791D66B1539}" };
|
||||
const auto window = Mocks::WindowCreate(m_hInst);
|
||||
|
||||
Assert::IsFalse(AppZoneHistory::instance().RemoveAppLastZone(window, deviceId, zoneSetId));
|
||||
Assert::IsTrue(std::vector<ZoneIndex>{} == AppZoneHistory::instance().GetAppLastZoneIndexSet(window, deviceId, zoneSetId));
|
||||
}
|
||||
|
||||
TEST_METHOD (AppLastZoneRemoveUnknownZoneSetId)
|
||||
{
|
||||
const std::wstring zoneSetIdToInsert = L"{2FEC41DA-3A0B-4E31-9CE1-9473C65D99F2}";
|
||||
const std::wstring zoneSetIdToRemove = L"{2FEC41DA-3A0B-4E31-9CE1-9473C65D99F1}";
|
||||
const FancyZonesDataTypes::DeviceIdData deviceId{ L"DELA026#5&10a58c63&0&UID16777488_2194_1234_{39B25DD2-130D-4B5D-8851-4791D66B1539}" };
|
||||
const auto window = Mocks::WindowCreate(m_hInst);
|
||||
|
||||
Assert::IsTrue(AppZoneHistory::instance().SetAppLastZones(window, deviceId, zoneSetIdToInsert, { 1 }));
|
||||
Assert::IsFalse(AppZoneHistory::instance().RemoveAppLastZone(window, deviceId, zoneSetIdToRemove));
|
||||
Assert::IsTrue(std::vector<ZoneIndex>{ 1 } == AppZoneHistory::instance().GetAppLastZoneIndexSet(window, deviceId, zoneSetIdToInsert));
|
||||
}
|
||||
|
||||
TEST_METHOD (AppLastZoneRemoveUnknownWindowId)
|
||||
{
|
||||
const std::wstring zoneSetId = L"{2FEC41DA-3A0B-4E31-9CE1-9473C65D99F2}";
|
||||
const FancyZonesDataTypes::DeviceIdData deviceIdToInsert{ L"DELA026#5&10a58c63&0&UID16777488_2194_1234_{39B25DD2-130D-4B5D-8851-4791D66B1539}" };
|
||||
const FancyZonesDataTypes::DeviceIdData deviceIdToRemove{ L"DELA026#5&10a58c63&0&UID16777489_2194_1234_{39B25DD2-130D-4B5D-8851-4791D66B1539}" };
|
||||
const auto window = Mocks::WindowCreate(m_hInst);
|
||||
|
||||
Assert::IsTrue(AppZoneHistory::instance().SetAppLastZones(window, deviceIdToInsert, zoneSetId, { 1 }));
|
||||
Assert::IsFalse(AppZoneHistory::instance().RemoveAppLastZone(window, deviceIdToRemove, zoneSetId));
|
||||
Assert::IsTrue(std::vector<ZoneIndex>{ 1 } == AppZoneHistory::instance().GetAppLastZoneIndexSet(window, deviceIdToInsert, zoneSetId));
|
||||
}
|
||||
|
||||
TEST_METHOD (AppLastZoneRemoveNullWindow)
|
||||
{
|
||||
const std::wstring zoneSetId = L"{2FEC41DA-3A0B-4E31-9CE1-9473C65D99F2}";
|
||||
const FancyZonesDataTypes::DeviceIdData deviceId{ L"DELA026#5&10a58c63&0&UID16777488_2194_1234_{39B25DD2-130D-4B5D-8851-4791D66B1539}" };
|
||||
const auto window = Mocks::WindowCreate(m_hInst);
|
||||
|
||||
Assert::IsFalse(AppZoneHistory::instance().RemoveAppLastZone(nullptr, deviceId, zoneSetId));
|
||||
}
|
||||
};
|
||||
}
|
||||
@@ -4,6 +4,7 @@
|
||||
#include <utility>
|
||||
|
||||
#include <FancyZonesLib/FancyZonesData.h>
|
||||
#include <FancyZonesLib/FancyZonesData/AppZoneHistory.h>
|
||||
#include <FancyZonesLib/FancyZonesDataTypes.h>
|
||||
#include <FancyZonesLib/JsonHelpers.h>
|
||||
#include <FancyZonesLib/util.h>
|
||||
@@ -1499,7 +1500,6 @@ namespace FancyZonesUnitTests
|
||||
std::filesystem::remove(jsonPath);
|
||||
}
|
||||
|
||||
Assert::IsFalse(fancyZonesData.GetAppZoneHistoryMap().empty());
|
||||
Assert::IsFalse(fancyZonesData.GetDeviceInfoMap().empty());
|
||||
}
|
||||
|
||||
@@ -1509,11 +1509,10 @@ namespace FancyZonesUnitTests
|
||||
data.SetSettingsModulePath(m_moduleName);
|
||||
const auto& jsonPath = data.zonesSettingsFileName;
|
||||
|
||||
std::wofstream{ jsonPath.data(), std::ios::binary } << L"{ \"app-zone-history\": [], \"devices\": [{\"device-id\": \"";
|
||||
std::wofstream{ jsonPath.data(), std::ios::binary } << L"{ \"devices\": [{\"device-id\": \"";
|
||||
|
||||
data.LoadFancyZonesData();
|
||||
|
||||
Assert::IsTrue(data.GetAppZoneHistoryMap().empty());
|
||||
Assert::IsTrue(data.GetDeviceInfoMap().empty());
|
||||
}
|
||||
|
||||
@@ -1523,10 +1522,9 @@ namespace FancyZonesUnitTests
|
||||
data.SetSettingsModulePath(m_moduleName);
|
||||
const auto& jsonPath = data.zonesSettingsFileName;
|
||||
|
||||
std::wofstream{ jsonPath.data(), std::ios::binary } << L"{ \"app-zone-history\": [], \"devices\": [{\"device-id\": \"кириллица\"}], \"custom-zone-sets\": []}";
|
||||
std::wofstream{ jsonPath.data(), std::ios::binary } << L"{ \"devices\": [{\"device-id\": \"кириллица\"}], \"custom-zone-sets\": []}";
|
||||
data.LoadFancyZonesData();
|
||||
|
||||
Assert::IsTrue(data.GetAppZoneHistoryMap().empty());
|
||||
Assert::IsTrue(data.GetDeviceInfoMap().empty());
|
||||
}
|
||||
|
||||
@@ -1536,10 +1534,9 @@ namespace FancyZonesUnitTests
|
||||
data.SetSettingsModulePath(m_moduleName);
|
||||
const auto& jsonPath = data.zonesSettingsFileName;
|
||||
|
||||
std::wofstream{ jsonPath.data(), std::ios::binary } << L"{ \"app-zone-history\": null, \"devices\": [{\"device-id\":\"AOC2460#4&fe3a015&0&UID65793_1920_1200_{39B25DD2-130D-4B5D-8851-4791D66B1539}\",\"active-zoneset\":{\"uuid\":\"{568EBC3A-C09C-483E-A64D-6F1F2AF4E48D}\",\"type\":\"columns\"},\"editor-show-spacing\":true,\"editor-spacing\":16,\"editor-zone-count\":3}], \"custom-zone-sets\": []}";
|
||||
std::wofstream{ jsonPath.data(), std::ios::binary } << L"{ \"devices\": [{\"device-id\":\"AOC2460#4&fe3a015&0&UID65793_1920_1200_{39B25DD2-130D-4B5D-8851-4791D66B1539}\",\"active-zoneset\":{\"uuid\":\"{568EBC3A-C09C-483E-A64D-6F1F2AF4E48D}\",\"type\":\"columns\"},\"editor-show-spacing\":true,\"editor-spacing\":16,\"editor-zone-count\":3}], \"custom-zone-sets\": null}";
|
||||
data.LoadFancyZonesData();
|
||||
|
||||
Assert::IsTrue(data.GetAppZoneHistoryMap().empty());
|
||||
Assert::IsFalse(data.GetDeviceInfoMap().empty());
|
||||
}
|
||||
|
||||
@@ -1561,201 +1558,12 @@ namespace FancyZonesUnitTests
|
||||
data.SetSettingsModulePath(m_moduleName);
|
||||
const auto& jsonPath = data.zonesSettingsFileName;
|
||||
|
||||
data.SaveAppZoneHistoryAndZoneSettings();
|
||||
data.SaveZoneSettings();
|
||||
bool actual = std::filesystem::exists(jsonPath);
|
||||
|
||||
Assert::IsTrue(actual);
|
||||
}
|
||||
|
||||
TEST_METHOD (AppLastZoneIndex)
|
||||
{
|
||||
const FancyZonesDataTypes::DeviceIdData deviceId{ L"device-id" };
|
||||
const std::wstring zoneSetId = L"zoneset-uuid";
|
||||
const auto window = Mocks::WindowCreate(m_hInst);
|
||||
FancyZonesData data;
|
||||
data.SetSettingsModulePath(m_moduleName);
|
||||
|
||||
Assert::IsTrue(std::vector<ZoneIndex>{} == data.GetAppLastZoneIndexSet(window, deviceId, zoneSetId));
|
||||
|
||||
const int expectedZoneIndex = 10;
|
||||
Assert::IsTrue(data.SetAppLastZones(window, deviceId, zoneSetId, { expectedZoneIndex } ));
|
||||
Assert::IsTrue(std::vector<ZoneIndex>{ expectedZoneIndex } == data.GetAppLastZoneIndexSet(window, deviceId, zoneSetId));
|
||||
}
|
||||
|
||||
TEST_METHOD (AppLastZoneIndexZero)
|
||||
{
|
||||
const std::wstring zoneSetId = L"zoneset-uuid";
|
||||
const FancyZonesDataTypes::DeviceIdData deviceId{ L"device-id" };
|
||||
const auto window = Mocks::WindowCreate(m_hInst);
|
||||
FancyZonesData data;
|
||||
data.SetSettingsModulePath(m_moduleName);
|
||||
|
||||
const int expectedZoneIndex = 0;
|
||||
Assert::IsTrue(data.SetAppLastZones(window, deviceId, zoneSetId, { expectedZoneIndex }));
|
||||
Assert::IsTrue(std::vector<ZoneIndex>{ expectedZoneIndex } == data.GetAppLastZoneIndexSet(window, deviceId, zoneSetId));
|
||||
}
|
||||
|
||||
TEST_METHOD (AppLastZoneIndexNegative)
|
||||
{
|
||||
const std::wstring zoneSetId = L"zoneset-uuid";
|
||||
const FancyZonesDataTypes::DeviceIdData deviceId{ L"device-id" };
|
||||
const auto window = Mocks::WindowCreate(m_hInst);
|
||||
FancyZonesData data;
|
||||
data.SetSettingsModulePath(m_moduleName);
|
||||
|
||||
const ZoneIndex expectedZoneIndex = -1;
|
||||
Assert::IsTrue(data.SetAppLastZones(window, deviceId, zoneSetId, { expectedZoneIndex }));
|
||||
Assert::IsTrue(std::vector<ZoneIndex>{ expectedZoneIndex } == data.GetAppLastZoneIndexSet(window, deviceId, zoneSetId));
|
||||
}
|
||||
|
||||
TEST_METHOD (AppLastZoneIndexOverflow)
|
||||
{
|
||||
const std::wstring zoneSetId = L"zoneset-uuid";
|
||||
const FancyZonesDataTypes::DeviceIdData deviceId{ L"device-id" };
|
||||
const auto window = Mocks::WindowCreate(m_hInst);
|
||||
FancyZonesData data;
|
||||
data.SetSettingsModulePath(m_moduleName);
|
||||
|
||||
const ZoneIndex expectedZoneIndex = ULLONG_MAX;
|
||||
Assert::IsTrue(data.SetAppLastZones(window, deviceId, zoneSetId, { expectedZoneIndex }));
|
||||
Assert::IsTrue(std::vector<ZoneIndex>{ expectedZoneIndex } == data.GetAppLastZoneIndexSet(window, deviceId, zoneSetId));
|
||||
}
|
||||
|
||||
TEST_METHOD (AppLastZoneIndexOverride)
|
||||
{
|
||||
const std::wstring zoneSetId = L"zoneset-uuid";
|
||||
const FancyZonesDataTypes::DeviceIdData deviceId{ L"device-id" };
|
||||
const auto window = Mocks::WindowCreate(m_hInst);
|
||||
FancyZonesData data;
|
||||
data.SetSettingsModulePath(m_moduleName);
|
||||
|
||||
const int expectedZoneIndex = 3;
|
||||
Assert::IsTrue(data.SetAppLastZones(window, deviceId, zoneSetId, { 1 }));
|
||||
Assert::IsTrue(data.SetAppLastZones(window, deviceId, zoneSetId, { 2 }));
|
||||
Assert::IsTrue(data.SetAppLastZones(window, deviceId, zoneSetId, { expectedZoneIndex }));
|
||||
Assert::IsTrue(std::vector<ZoneIndex>{ expectedZoneIndex } == data.GetAppLastZoneIndexSet(window, deviceId, zoneSetId));
|
||||
}
|
||||
|
||||
TEST_METHOD (AppLastZoneInvalidWindow)
|
||||
{
|
||||
const std::wstring zoneSetId = L"zoneset-uuid";
|
||||
const FancyZonesDataTypes::DeviceIdData deviceId{ L"device-id" };
|
||||
const auto window = Mocks::Window();
|
||||
FancyZonesData data;
|
||||
data.SetSettingsModulePath(m_moduleName);
|
||||
|
||||
Assert::IsTrue(std::vector<ZoneIndex>{} == data.GetAppLastZoneIndexSet(window, deviceId, zoneSetId));
|
||||
|
||||
const int expectedZoneIndex = 1;
|
||||
Assert::IsFalse(data.SetAppLastZones(window, deviceId, zoneSetId, { expectedZoneIndex }));
|
||||
}
|
||||
|
||||
TEST_METHOD (AppLastZoneNullWindow)
|
||||
{
|
||||
const std::wstring zoneSetId = L"zoneset-uuid";
|
||||
const FancyZonesDataTypes::DeviceIdData deviceId{ L"device-id" };
|
||||
const auto window = nullptr;
|
||||
FancyZonesData data;
|
||||
data.SetSettingsModulePath(m_moduleName);
|
||||
|
||||
const int expectedZoneIndex = 1;
|
||||
Assert::IsFalse(data.SetAppLastZones(window, deviceId, zoneSetId, { expectedZoneIndex }));
|
||||
}
|
||||
|
||||
TEST_METHOD (AppLastdeviceIdTest)
|
||||
{
|
||||
const std::wstring zoneSetId = L"zoneset-uuid";
|
||||
const FancyZonesDataTypes::DeviceIdData deviceId1{ L"device-id-1" };
|
||||
const FancyZonesDataTypes::DeviceIdData deviceId2{ L"device-id-2" };
|
||||
const auto window = Mocks::WindowCreate(m_hInst);
|
||||
FancyZonesData data;
|
||||
data.SetSettingsModulePath(m_moduleName);
|
||||
|
||||
const int expectedZoneIndex = 10;
|
||||
Assert::IsTrue(data.SetAppLastZones(window, deviceId1, zoneSetId, { expectedZoneIndex }));
|
||||
Assert::IsTrue(std::vector<ZoneIndex>{ expectedZoneIndex } == data.GetAppLastZoneIndexSet(window, deviceId1, zoneSetId));
|
||||
Assert::IsTrue(std::vector<ZoneIndex>{} == data.GetAppLastZoneIndexSet(window, deviceId2, zoneSetId));
|
||||
}
|
||||
|
||||
TEST_METHOD (AppLastZoneSetIdTest)
|
||||
{
|
||||
const std::wstring zoneSetId1 = L"zoneset-uuid-1";
|
||||
const std::wstring zoneSetId2 = L"zoneset-uuid-2";
|
||||
const FancyZonesDataTypes::DeviceIdData deviceId{ L"device-id" };
|
||||
const auto window = Mocks::WindowCreate(m_hInst);
|
||||
FancyZonesData data;
|
||||
data.SetSettingsModulePath(m_moduleName);
|
||||
|
||||
const int expectedZoneIndex = 10;
|
||||
Assert::IsTrue(data.SetAppLastZones(window, deviceId, zoneSetId1, { expectedZoneIndex }));
|
||||
Assert::IsTrue(std::vector<ZoneIndex>{ expectedZoneIndex } == data.GetAppLastZoneIndexSet(window, deviceId, zoneSetId1));
|
||||
Assert::IsTrue(std::vector<ZoneIndex>{} == data.GetAppLastZoneIndexSet(window, deviceId, zoneSetId2));
|
||||
}
|
||||
|
||||
TEST_METHOD (AppLastZoneRemoveWindow)
|
||||
{
|
||||
const std::wstring zoneSetId = L"zoneset-uuid";
|
||||
const FancyZonesDataTypes::DeviceIdData deviceId{ L"device-id" };
|
||||
const auto window = Mocks::WindowCreate(m_hInst);
|
||||
FancyZonesData data;
|
||||
data.SetSettingsModulePath(m_moduleName);
|
||||
|
||||
Assert::IsTrue(data.SetAppLastZones(window, deviceId, zoneSetId, { 1 }));
|
||||
Assert::IsTrue(data.RemoveAppLastZone(window, deviceId, zoneSetId));
|
||||
Assert::IsTrue(std::vector<ZoneIndex>{} == data.GetAppLastZoneIndexSet(window, deviceId, zoneSetId));
|
||||
}
|
||||
|
||||
TEST_METHOD (AppLastZoneRemoveUnknownWindow)
|
||||
{
|
||||
const std::wstring zoneSetId = L"zoneset-uuid";
|
||||
const FancyZonesDataTypes::DeviceIdData deviceId{ L"device-id" };
|
||||
const auto window = Mocks::WindowCreate(m_hInst);
|
||||
FancyZonesData data;
|
||||
data.SetSettingsModulePath(m_moduleName);
|
||||
|
||||
Assert::IsFalse(data.RemoveAppLastZone(window, deviceId, zoneSetId));
|
||||
Assert::IsTrue(std::vector<ZoneIndex>{} == data.GetAppLastZoneIndexSet(window, deviceId, zoneSetId));
|
||||
}
|
||||
|
||||
TEST_METHOD (AppLastZoneRemoveUnknownZoneSetId)
|
||||
{
|
||||
const std::wstring zoneSetIdToInsert = L"zoneset-uuid-to-insert";
|
||||
const std::wstring zoneSetIdToRemove = L"zoneset-uuid-to-remove";
|
||||
const FancyZonesDataTypes::DeviceIdData deviceId{ L"device-id" };
|
||||
const auto window = Mocks::WindowCreate(m_hInst);
|
||||
FancyZonesData data;
|
||||
data.SetSettingsModulePath(m_moduleName);
|
||||
|
||||
Assert::IsTrue(data.SetAppLastZones(window, deviceId, zoneSetIdToInsert, { 1 }));
|
||||
Assert::IsFalse(data.RemoveAppLastZone(window, deviceId, zoneSetIdToRemove));
|
||||
Assert::IsTrue(std::vector<ZoneIndex>{ 1 } == data.GetAppLastZoneIndexSet(window, deviceId, zoneSetIdToInsert));
|
||||
}
|
||||
|
||||
TEST_METHOD (AppLastZoneRemoveUnknownWindowId)
|
||||
{
|
||||
const std::wstring zoneSetId = L"zoneset-uuid";
|
||||
const FancyZonesDataTypes::DeviceIdData deviceIdToInsert{ L"device-id-insert" };
|
||||
const FancyZonesDataTypes::DeviceIdData deviceIdToRemove{ L"device-id-remove" };
|
||||
const auto window = Mocks::WindowCreate(m_hInst);
|
||||
FancyZonesData data;
|
||||
data.SetSettingsModulePath(m_moduleName);
|
||||
|
||||
Assert::IsTrue(data.SetAppLastZones(window, deviceIdToInsert, zoneSetId, { 1 }));
|
||||
Assert::IsFalse(data.RemoveAppLastZone(window, deviceIdToRemove, zoneSetId));
|
||||
Assert::IsTrue(std::vector<ZoneIndex>{ 1 } == data.GetAppLastZoneIndexSet(window, deviceIdToInsert, zoneSetId));
|
||||
}
|
||||
|
||||
TEST_METHOD (AppLastZoneRemoveNullWindow)
|
||||
{
|
||||
const std::wstring zoneSetId = L"zoneset-uuid";
|
||||
const FancyZonesDataTypes::DeviceIdData deviceId{ L"device-id" };
|
||||
const auto window = Mocks::WindowCreate(m_hInst);
|
||||
FancyZonesData data;
|
||||
data.SetSettingsModulePath(m_moduleName);
|
||||
|
||||
Assert::IsFalse(data.RemoveAppLastZone(nullptr, deviceId, zoneSetId));
|
||||
}
|
||||
|
||||
TEST_METHOD (AddDevice)
|
||||
{
|
||||
FancyZonesDataTypes::DeviceIdData expected{
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="AppZoneHistoryTests.Spec.cpp" />
|
||||
<ClCompile Include="CustomLayoutsTests.Spec.cpp" />
|
||||
<ClCompile Include="FancyZones.Spec.cpp" />
|
||||
<ClCompile Include="FancyZonesSettings.Spec.cpp" />
|
||||
|
||||
@@ -51,6 +51,9 @@
|
||||
<ClCompile Include="CustomLayoutsTests.Spec.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="AppZoneHistoryTests.Spec.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="pch.h">
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
#include <FancyZonesLib/WorkArea.h>
|
||||
#include <FancyZonesLib/FancyZones.h>
|
||||
#include <FancyZonesLib/FancyZonesData.h>
|
||||
#include <FancyZonesLib/FancyZonesData/AppZoneHistory.h>
|
||||
#include <FancyZonesLib/FancyZonesDataTypes.h>
|
||||
#include <FancyZonesLib/JsonHelpers.h>
|
||||
#include <FancyZonesLib/ZoneColors.h>
|
||||
@@ -211,31 +212,33 @@ namespace FancyZonesUnitTests
|
||||
OverlappingZonesAlgorithm m_overlappingAlgorithm = OverlappingZonesAlgorithm::Positional;
|
||||
bool m_showZoneText = true;
|
||||
|
||||
FancyZonesData& m_fancyZonesData = FancyZonesDataInstance();
|
||||
|
||||
TEST_METHOD_INITIALIZE(Init)
|
||||
{
|
||||
m_hInst = (HINSTANCE)GetModuleHandleW(nullptr);
|
||||
{
|
||||
m_hInst = (HINSTANCE)GetModuleHandleW(nullptr);
|
||||
|
||||
m_monitor = MonitorFromPoint(POINT{ 0, 0 }, MONITOR_DEFAULTTOPRIMARY);
|
||||
m_monitorInfo.cbSize = sizeof(m_monitorInfo);
|
||||
Assert::AreNotEqual(0, GetMonitorInfoW(m_monitor, &m_monitorInfo));
|
||||
|
||||
m_monitor = MonitorFromPoint(POINT{ 0, 0 }, MONITOR_DEFAULTTOPRIMARY);
|
||||
m_monitorInfo.cbSize = sizeof(m_monitorInfo);
|
||||
Assert::AreNotEqual(0, GetMonitorInfoW(m_monitor, &m_monitorInfo));
|
||||
|
||||
m_uniqueId.deviceName = L"DELA026#5&10a58c63&0&UID16777488";
|
||||
m_uniqueId.width = m_monitorInfo.rcMonitor.right - m_monitorInfo.rcMonitor.left;
|
||||
m_uniqueId.height = m_monitorInfo.rcMonitor.bottom - m_monitorInfo.rcMonitor.top;
|
||||
CLSIDFromString(L"{39B25DD2-130D-4B5D-8851-4791D66B1539}", &m_uniqueId.virtualDesktopId);
|
||||
m_uniqueId.deviceName = L"DELA026#5&10a58c63&0&UID16777488";
|
||||
m_uniqueId.width = m_monitorInfo.rcMonitor.right - m_monitorInfo.rcMonitor.left;
|
||||
m_uniqueId.height = m_monitorInfo.rcMonitor.bottom - m_monitorInfo.rcMonitor.top;
|
||||
CLSIDFromString(L"{39B25DD2-130D-4B5D-8851-4791D66B1539}", &m_uniqueId.virtualDesktopId);
|
||||
|
||||
m_fancyZonesData.SetSettingsModulePath(L"FancyZonesUnitTests");
|
||||
m_fancyZonesData.clear_data();
|
||||
m_zoneColors = ZoneColors{
|
||||
.primaryColor = FancyZonesUtils::HexToRGB(L"#4287f5"),
|
||||
.borderColor = FancyZonesUtils::HexToRGB(L"#FFFFFF"),
|
||||
.highlightColor = FancyZonesUtils::HexToRGB(L"#42eff5"),
|
||||
.highlightOpacity = 50,
|
||||
};
|
||||
|
||||
m_zoneColors = ZoneColors{
|
||||
.primaryColor = FancyZonesUtils::HexToRGB(L"#4287f5"),
|
||||
.borderColor = FancyZonesUtils::HexToRGB(L"#FFFFFF"),
|
||||
.highlightColor = FancyZonesUtils::HexToRGB(L"#42eff5"),
|
||||
.highlightOpacity = 50,
|
||||
};
|
||||
}
|
||||
AppZoneHistory::instance().LoadData();
|
||||
}
|
||||
|
||||
TEST_METHOD_CLEANUP(CleanUp)
|
||||
{
|
||||
std::filesystem::remove(AppZoneHistory::AppZoneHistoryFileName());
|
||||
}
|
||||
|
||||
public:
|
||||
TEST_METHOD (MoveSizeEnter)
|
||||
@@ -381,7 +384,7 @@ namespace FancyZonesUnitTests
|
||||
const auto window = Mocks::WindowCreate(m_hInst);
|
||||
workArea->MoveWindowIntoZoneByDirectionAndIndex(window, VK_RIGHT, true);
|
||||
|
||||
const auto& actualAppZoneHistory = m_fancyZonesData.GetAppZoneHistoryMap();
|
||||
const auto& actualAppZoneHistory = AppZoneHistory::instance().GetFullAppZoneHistory();
|
||||
Assert::AreEqual((size_t)1, actualAppZoneHistory.size());
|
||||
const auto& appHistoryArray = actualAppZoneHistory.begin()->second;
|
||||
Assert::AreEqual((size_t)1, appHistoryArray.size());
|
||||
@@ -398,7 +401,7 @@ namespace FancyZonesUnitTests
|
||||
workArea->MoveWindowIntoZoneByDirectionAndIndex(window, VK_RIGHT, true);
|
||||
workArea->MoveWindowIntoZoneByDirectionAndIndex(window, VK_RIGHT, true);
|
||||
|
||||
const auto& actualAppZoneHistory = m_fancyZonesData.GetAppZoneHistoryMap();
|
||||
const auto& actualAppZoneHistory = AppZoneHistory::instance().GetFullAppZoneHistory();
|
||||
Assert::AreEqual((size_t)1, actualAppZoneHistory.size());
|
||||
const auto& appHistoryArray = actualAppZoneHistory.begin()->second;
|
||||
Assert::AreEqual((size_t)1, appHistoryArray.size());
|
||||
@@ -412,7 +415,7 @@ namespace FancyZonesUnitTests
|
||||
|
||||
workArea->SaveWindowProcessToZoneIndex(nullptr);
|
||||
|
||||
const auto actualAppZoneHistory = m_fancyZonesData.GetAppZoneHistoryMap();
|
||||
const auto actualAppZoneHistory = AppZoneHistory::instance().GetFullAppZoneHistory();
|
||||
Assert::IsTrue(actualAppZoneHistory.empty());
|
||||
}
|
||||
|
||||
@@ -427,7 +430,7 @@ namespace FancyZonesUnitTests
|
||||
|
||||
workArea->SaveWindowProcessToZoneIndex(window);
|
||||
|
||||
const auto actualAppZoneHistory = m_fancyZonesData.GetAppZoneHistoryMap();
|
||||
const auto actualAppZoneHistory = AppZoneHistory::instance().GetFullAppZoneHistory();
|
||||
Assert::IsTrue(actualAppZoneHistory.empty());
|
||||
}
|
||||
|
||||
@@ -442,9 +445,9 @@ namespace FancyZonesUnitTests
|
||||
const auto zoneSetId = workArea->ZoneSet()->Id();
|
||||
|
||||
// fill app zone history map
|
||||
Assert::IsTrue(m_fancyZonesData.SetAppLastZones(window, deviceId, Helpers::GuidToString(zoneSetId), { 0 }));
|
||||
Assert::AreEqual((size_t)1, m_fancyZonesData.GetAppZoneHistoryMap().size());
|
||||
const auto& appHistoryArray1 = m_fancyZonesData.GetAppZoneHistoryMap().at(processPath);
|
||||
Assert::IsTrue(AppZoneHistory::instance().SetAppLastZones(window, deviceId, Helpers::GuidToString(zoneSetId), { 0 }));
|
||||
Assert::AreEqual((size_t)1, AppZoneHistory::instance().GetFullAppZoneHistory().size());
|
||||
const auto& appHistoryArray1 = AppZoneHistory::instance().GetFullAppZoneHistory().at(processPath);
|
||||
Assert::AreEqual((size_t)1, appHistoryArray1.size());
|
||||
Assert::IsTrue(std::vector<ZoneIndex>{ 0 } == appHistoryArray1[0].zoneIndexSet);
|
||||
|
||||
@@ -453,8 +456,8 @@ namespace FancyZonesUnitTests
|
||||
workArea->ZoneSet()->AddZone(zone);
|
||||
|
||||
workArea->SaveWindowProcessToZoneIndex(window);
|
||||
Assert::AreEqual((size_t)1, m_fancyZonesData.GetAppZoneHistoryMap().size());
|
||||
const auto& appHistoryArray2 = m_fancyZonesData.GetAppZoneHistoryMap().at(processPath);
|
||||
Assert::AreEqual((size_t)1, AppZoneHistory::instance().GetFullAppZoneHistory().size());
|
||||
const auto& appHistoryArray2 = AppZoneHistory::instance().GetFullAppZoneHistory().at(processPath);
|
||||
Assert::AreEqual((size_t)1, appHistoryArray2.size());
|
||||
Assert::IsTrue(std::vector<ZoneIndex>{ 0 } == appHistoryArray2[0].zoneIndexSet);
|
||||
}
|
||||
@@ -474,15 +477,15 @@ namespace FancyZonesUnitTests
|
||||
workArea->MoveWindowIntoZoneByIndex(window, 0);
|
||||
|
||||
//fill app zone history map
|
||||
Assert::IsTrue(m_fancyZonesData.SetAppLastZones(window, deviceId, Helpers::GuidToString(zoneSetId), { 2 }));
|
||||
Assert::AreEqual((size_t)1, m_fancyZonesData.GetAppZoneHistoryMap().size());
|
||||
const auto& appHistoryArray = m_fancyZonesData.GetAppZoneHistoryMap().at(processPath);
|
||||
Assert::IsTrue(AppZoneHistory::instance().SetAppLastZones(window, deviceId, Helpers::GuidToString(zoneSetId), { 2 }));
|
||||
Assert::AreEqual((size_t)1, AppZoneHistory::instance().GetFullAppZoneHistory().size());
|
||||
const auto& appHistoryArray = AppZoneHistory::instance().GetFullAppZoneHistory().at(processPath);
|
||||
Assert::AreEqual((size_t)1, appHistoryArray.size());
|
||||
Assert::IsTrue(std::vector<ZoneIndex>{ 2 } == appHistoryArray[0].zoneIndexSet);
|
||||
|
||||
workArea->SaveWindowProcessToZoneIndex(window);
|
||||
|
||||
const auto& actualAppZoneHistory = m_fancyZonesData.GetAppZoneHistoryMap();
|
||||
const auto& actualAppZoneHistory = AppZoneHistory::instance().GetFullAppZoneHistory();
|
||||
Assert::AreEqual((size_t)1, actualAppZoneHistory.size());
|
||||
const auto& expected = workArea->ZoneSet()->GetZoneIndexSetFromWindow(window);
|
||||
const auto& actual = appHistoryArray[0].zoneIndexSet;
|
||||
|
||||
Reference in New Issue
Block a user