Merge pull request #912 from ryanbodrug-microsoft/user/ryanbod/fix_unit_tests_fancyzones

[FancyZones][UnitTests] Fixing TestDeviceId, and TestUniqueId.
This commit is contained in:
ryanbodrug-microsoft 2019-12-11 08:49:45 -08:00 committed by GitHub
commit 9fad2d68af
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -5,8 +5,27 @@ using namespace Microsoft::VisualStudio::CppUnitTestFramework;
namespace FancyZonesUnitTests
{
struct MockZoneWindowHost : public winrt::implements<MockZoneWindowHost, IZoneWindowHost>
{
IFACEMETHODIMP_(void)
MoveWindowsOnActiveZoneSetChange() noexcept {};
IFACEMETHODIMP_(COLORREF)
GetZoneHighlightColor() noexcept
{
return RGB(0xFF, 0xFF, 0xFF);
}
IFACEMETHODIMP_(GUID)
GetCurrentMonitorZoneSetId(HMONITOR monitor) noexcept
{
return m_guid;
}
GUID m_guid;
};
TEST_CLASS(ZoneWindowUnitTests){
public:
TEST_METHOD(TestCreateZoneWindow){
winrt::com_ptr<IZoneWindow> zoneWindow = MakeZoneWindow(nullptr, Mocks::Instance(), Mocks::Monitor(), L"DeviceId", L"MyVirtualDesktopId", false);
Assert::IsNotNull(zoneWindow.get());
@ -15,10 +34,12 @@ namespace FancyZonesUnitTests
TEST_METHOD(TestDeviceId)
{
// Window initialization requires a valid HMONITOR - just use the primary for now.
HMONITOR pimaryMonitor = MonitorFromWindow(nullptr, MONITOR_DEFAULTTOPRIMARY);
winrt::com_ptr<IZoneWindow> zoneWindow = MakeZoneWindow(nullptr, Mocks::Instance(), pimaryMonitor, L"SomeRandomValue", L"MyVirtualDesktopId", false);
// We have no way to test the correctness, just do our best and check its not an empty string.
Assert::IsTrue(zoneWindow->DeviceId().size() > 0);
HMONITOR pimaryMonitor = MonitorFromWindow(HWND(), MONITOR_DEFAULTTOPRIMARY);
MockZoneWindowHost host;
std::wstring expectedDeviceId = L"SomeRandomValue";
winrt::com_ptr<IZoneWindow> zoneWindow = MakeZoneWindow(dynamic_cast<IZoneWindowHost*>(&host), Mocks::Instance(), pimaryMonitor, expectedDeviceId.c_str(), L"MyVirtualDesktopId", false);
Assert::AreEqual(expectedDeviceId, zoneWindow->DeviceId());
}
TEST_METHOD(TestUniqueId)
@ -27,7 +48,7 @@ TEST_METHOD(TestUniqueId)
// Example: "DELA026#5&10a58c63&0&UID16777488_1024_768_MyVirtualDesktopId"
std::wstring deviceId(L"\\\\?\\DISPLAY#DELA026#5&10a58c63&0&UID16777488#{e6f07b5f-ee97-4a90-b076-33f57bf4eaa7}");
// Window initialization requires a valid HMONITOR - just use the primary for now.
HMONITOR pimaryMonitor = MonitorFromWindow(nullptr, MONITOR_DEFAULTTOPRIMARY);
HMONITOR pimaryMonitor = MonitorFromWindow(HWND(), MONITOR_DEFAULTTOPRIMARY);
MONITORINFO info;
info.cbSize = sizeof(info);
Assert::IsTrue(GetMonitorInfo(pimaryMonitor, &info));
@ -36,7 +57,8 @@ TEST_METHOD(TestUniqueId)
std::wstringstream ss;
ss << L"DELA026#5&10a58c63&0&UID16777488_" << monitorRect.width() << "_" << monitorRect.height() << "_MyVirtualDesktopId";
winrt::com_ptr<IZoneWindow> zoneWindow = MakeZoneWindow(nullptr, Mocks::Instance(), pimaryMonitor, deviceId.c_str(), L"MyVirtualDesktopId", false);
MockZoneWindowHost host;
winrt::com_ptr<IZoneWindow> zoneWindow = MakeZoneWindow(dynamic_cast<IZoneWindowHost*>(&host), Mocks::Instance(), pimaryMonitor, deviceId.c_str(), L"MyVirtualDesktopId", false);
Assert::AreEqual(zoneWindow->UniqueId().compare(ss.str()), 0);
}
}