mirror of
https://github.com/microsoft/PowerToys.git
synced 2026-04-05 18:57:19 +02:00
[File Explorer] Fix enable/disable for File Explorer PowerToy (#6883)
* Commented out enable/disable for File Explorer * Revert UI changes * Disable the toggles if PT is not running elevated * Fixed compilation errors in tests * Cleaned up preview pane code to separate thumbnail and preview panes as separate classes * Fixed broken settings format and added elevation check and registry updated required logic. Preview Handler tested manually working, Thumbnail Enable/Disable needs to be fixed * Updated Thumbnail enable/disable logic and added warning messages * Update tests for File Explorer * Fixed RegGetValue failing in Release config * Renamed new classes * Split wrappers for disable to work * Modified enabled flag check to also check if user is on new settings. Fixed casing issue in powerpreview.h that caused a dialog prompt on first launch after install * Update fontweight and margin * Fixed release build not working * Move UseNewSettings usage to powerpreview.cpp to avoid tests breaking. For new settings the enable check is done in constructor and for old settings it is done in enable * Update src/core/Microsoft.PowerToys.Settings.UI/Strings/en-us/Resources.resw Co-authored-by: htcfreek <61519853+htcfreek@users.noreply.github.com> * Update src/core/Microsoft.PowerToys.Settings.UI/Strings/en-us/Resources.resw Co-authored-by: htcfreek <61519853+htcfreek@users.noreply.github.com> * Update src/core/Microsoft.PowerToys.Settings.UI/Strings/en-us/Resources.resw Co-authored-by: htcfreek <61519853+htcfreek@users.noreply.github.com> * Moved dup code to method * Use correct versions of general settings for backwards compat test Co-authored-by: htcfreek <61519853+htcfreek@users.noreply.github.com>
This commit is contained in:
@@ -5,12 +5,14 @@
|
||||
#include <powerpreview/trace.cpp>
|
||||
#include <common.h>
|
||||
#include <powerpreview/registry_wrapper.h>
|
||||
#include <powerpreview/preview_handler.cpp>
|
||||
#include <powerpreview/thumbnail_provider.cpp>
|
||||
|
||||
using namespace Microsoft::VisualStudio::CppUnitTestFramework;
|
||||
using namespace PowerToysSettings;
|
||||
using namespace PowerPreviewSettings;
|
||||
|
||||
namespace PreviewHandlerSettingsTest
|
||||
namespace FileExplorerPreviewSettingsTest
|
||||
{
|
||||
extern "C" IMAGE_DOS_HEADER __ImageBase;
|
||||
|
||||
@@ -22,10 +24,14 @@ namespace PreviewHandlerSettingsTest
|
||||
HKEY Scope = NULL;
|
||||
LPCWSTR SubKey;
|
||||
LPCWSTR ValueName;
|
||||
wchar_t ValueData[255] = { 0 };
|
||||
};
|
||||
|
||||
class RegistryMock : public RegistryWrapperIface
|
||||
{
|
||||
private:
|
||||
wchar_t mockData[255] = { 0 };
|
||||
|
||||
public:
|
||||
FunctionProperties SetRegistryMockProperties;
|
||||
FunctionProperties DeleteRegistryMockProperties;
|
||||
@@ -37,6 +43,7 @@ namespace PreviewHandlerSettingsTest
|
||||
SetRegistryMockProperties.Scope = keyScope;
|
||||
SetRegistryMockProperties.SubKey = subKey;
|
||||
SetRegistryMockProperties.ValueName = valueName;
|
||||
wcscpy_s(SetRegistryMockProperties.ValueData, cbData, (WCHAR*)data);
|
||||
return SetRegistryMockProperties.ReturnValue;
|
||||
}
|
||||
|
||||
@@ -49,26 +56,32 @@ namespace PreviewHandlerSettingsTest
|
||||
return DeleteRegistryMockProperties.ReturnValue;
|
||||
}
|
||||
|
||||
LONG GetRegistryValue(HKEY keyScope, LPCWSTR subKey, LPCWSTR valueName, DWORD dwType, LPDWORD pdwType, PVOID pvData, LPDWORD pcbData)
|
||||
LONG GetRegistryValue(HKEY keyScope, LPCWSTR subKey, LPCWSTR valueName, LPDWORD pdwType, PVOID pvData, LPDWORD pcbData)
|
||||
{
|
||||
GetRegistryMockProperties.NumOfCalls++;
|
||||
GetRegistryMockProperties.Scope = keyScope;
|
||||
GetRegistryMockProperties.SubKey = subKey;
|
||||
GetRegistryMockProperties.ValueName = valueName;
|
||||
*pdwType = REG_SZ;
|
||||
wcscpy_s((LPWSTR)pvData, 255, mockData);
|
||||
return GetRegistryMockProperties.ReturnValue;
|
||||
}
|
||||
|
||||
void SetMockData(std::wstring data)
|
||||
{
|
||||
wcscpy_s(mockData, data.c_str());
|
||||
}
|
||||
};
|
||||
|
||||
TEST_CLASS(BaseSettingsTest)
|
||||
{
|
||||
public:
|
||||
|
||||
TEST_CLASS (BaseSettingsTest)
|
||||
{
|
||||
public:
|
||||
TEST_METHOD (LoadState_ShouldLoadValidState_IfInitalStateIsPresent)
|
||||
{
|
||||
// Arrange
|
||||
bool defaultState = true;
|
||||
RegistryMock* mockRegistryWrapper = new RegistryMock();
|
||||
FileExplorerPreviewSettings previewSettings = GetSettingsObject(defaultState, mockRegistryWrapper);
|
||||
PreviewHandlerSettings previewSettings = GetPreviewHandlerSettingsObject(defaultState, mockRegistryWrapper);
|
||||
auto settings = PowerToyValues::from_json_string(GetJSONSettings(previewSettings.GetToggleSettingName(), L"false"));
|
||||
|
||||
// Act
|
||||
@@ -83,7 +96,7 @@ namespace PreviewHandlerSettingsTest
|
||||
// Arrange
|
||||
bool defaultState = true;
|
||||
RegistryMock* mockRegistryWrapper = new RegistryMock();
|
||||
FileExplorerPreviewSettings previewSettings = GetSettingsObject(defaultState, mockRegistryWrapper);
|
||||
PreviewHandlerSettings previewSettings = GetPreviewHandlerSettingsObject(defaultState, mockRegistryWrapper);
|
||||
auto settings = PowerToyValues::from_json_string(L"{\"name\":\"Module Name\"}");
|
||||
|
||||
// Act
|
||||
@@ -93,50 +106,223 @@ namespace PreviewHandlerSettingsTest
|
||||
Assert::AreEqual(previewSettings.GetToggleSettingState(), defaultState);
|
||||
}
|
||||
|
||||
TEST_METHOD (UpdateState_ShouldDisablePreview_IfPreviewsAreEnabledAndNewSettingsStateIsFalse)
|
||||
TEST_METHOD (PreviewHandlerSettingsUpdateState_ShouldDisableInRegistry_IfPreviewsAreEnabledAndNewSettingsStateIsFalseAndPowerToysIsElevatedAndRegistryContainsThePreview)
|
||||
{
|
||||
// Arrange
|
||||
bool enabled = true;
|
||||
bool elevated = true;
|
||||
RegistryMock* mockRegistryWrapper = new RegistryMock();
|
||||
FileExplorerPreviewSettings previewSettings = GetSettingsObject(true, mockRegistryWrapper);
|
||||
PreviewHandlerSettings previewSettings = GetPreviewHandlerSettingsObject(true, mockRegistryWrapper);
|
||||
auto settings = PowerToyValues::from_json_string(GetJSONSettings(previewSettings.GetToggleSettingName(), L"false"));
|
||||
previewSettings.UpdateToggleSettingState(true);
|
||||
// Add expected data in registry
|
||||
mockRegistryWrapper->SetMockData(previewSettings.GetRegistryValueData());
|
||||
|
||||
// Act
|
||||
previewSettings.UpdateState(settings, enabled);
|
||||
previewSettings.UpdateState(settings, enabled, elevated);
|
||||
|
||||
// Assert
|
||||
Assert::IsFalse(previewSettings.GetToggleSettingState());
|
||||
Assert::AreEqual(mockRegistryWrapper->DeleteRegistryMockProperties.NumOfCalls, 1);
|
||||
Assert::AreEqual(mockRegistryWrapper->GetRegistryMockProperties.NumOfCalls, 1);
|
||||
}
|
||||
|
||||
TEST_METHOD (UpdateState_ShouldEnablePreview_IfPreviewsAreEnabledAndNewSettingsStateIsTrue)
|
||||
TEST_METHOD (ThumbnailProviderSettingsUpdateState_ShouldDisableInRegistry_IfPreviewsAreEnabledAndNewSettingsStateIsFalseAndPowerToysIsElevatedAndRegistryContainsThePreview)
|
||||
{
|
||||
// Arrange
|
||||
bool enabled = true;
|
||||
bool elevated = true;
|
||||
RegistryMock* mockRegistryWrapper = new RegistryMock();
|
||||
FileExplorerPreviewSettings previewSettings = GetSettingsObject(true, mockRegistryWrapper);
|
||||
ThumbnailProviderSettings thumbnailSettings = GetThumbnailProviderSettingsObject(true, mockRegistryWrapper);
|
||||
auto settings = PowerToyValues::from_json_string(GetJSONSettings(thumbnailSettings.GetToggleSettingName(), L"false"));
|
||||
thumbnailSettings.UpdateToggleSettingState(true);
|
||||
// Add expected data in registry
|
||||
mockRegistryWrapper->SetMockData(thumbnailSettings.GetCLSID());
|
||||
|
||||
// Act
|
||||
thumbnailSettings.UpdateState(settings, enabled, elevated);
|
||||
|
||||
// Assert
|
||||
Assert::IsFalse(thumbnailSettings.GetToggleSettingState());
|
||||
Assert::AreEqual(mockRegistryWrapper->DeleteRegistryMockProperties.NumOfCalls, 1);
|
||||
Assert::AreEqual(mockRegistryWrapper->GetRegistryMockProperties.NumOfCalls, 1);
|
||||
}
|
||||
|
||||
TEST_METHOD (UpdateState_ShouldNotDisableInRegistry_IfPreviewsAreEnabledAndNewSettingsStateIsFalseAndPowerToysIsElevatedAndRegistryDoesNotContainThePreview)
|
||||
{
|
||||
// Arrange
|
||||
bool enabled = true;
|
||||
bool elevated = true;
|
||||
RegistryMock* mockRegistryWrapper = new RegistryMock();
|
||||
PreviewHandlerSettings previewSettings = GetPreviewHandlerSettingsObject(true, mockRegistryWrapper);
|
||||
auto settings = PowerToyValues::from_json_string(GetJSONSettings(previewSettings.GetToggleSettingName(), L"false"));
|
||||
previewSettings.UpdateToggleSettingState(true);
|
||||
|
||||
// Act
|
||||
previewSettings.UpdateState(settings, enabled, elevated);
|
||||
|
||||
// Assert
|
||||
Assert::IsFalse(previewSettings.GetToggleSettingState());
|
||||
Assert::AreEqual(mockRegistryWrapper->DeleteRegistryMockProperties.NumOfCalls, 0);
|
||||
Assert::AreEqual(mockRegistryWrapper->GetRegistryMockProperties.NumOfCalls, 1);
|
||||
}
|
||||
|
||||
TEST_METHOD (UpdateState_ShouldNotDisableInRegistry_IfPreviewsAreEnabledAndNewSettingsStateIsFalseAndPowerToysIsNotElevated)
|
||||
{
|
||||
// Arrange
|
||||
bool enabled = true;
|
||||
bool elevated = false;
|
||||
RegistryMock* mockRegistryWrapper = new RegistryMock();
|
||||
PreviewHandlerSettings previewSettings = GetPreviewHandlerSettingsObject(true, mockRegistryWrapper);
|
||||
auto settings = PowerToyValues::from_json_string(GetJSONSettings(previewSettings.GetToggleSettingName(), L"false"));
|
||||
previewSettings.UpdateToggleSettingState(true);
|
||||
|
||||
// Act
|
||||
previewSettings.UpdateState(settings, enabled, elevated);
|
||||
|
||||
// Assert
|
||||
Assert::IsFalse(previewSettings.GetToggleSettingState());
|
||||
Assert::AreEqual(mockRegistryWrapper->DeleteRegistryMockProperties.NumOfCalls, 0);
|
||||
Assert::AreEqual(mockRegistryWrapper->GetRegistryMockProperties.NumOfCalls, 1);
|
||||
}
|
||||
|
||||
TEST_METHOD (UpdateState_ShouldEnableInRegistry_IfPreviewsAreEnabledAndNewSettingsStateIsTrueAndPowerToysIsElevatedAndRegistryDoesNotContainThePreview)
|
||||
{
|
||||
// Arrange
|
||||
bool enabled = true;
|
||||
bool elevated = true;
|
||||
RegistryMock* mockRegistryWrapper = new RegistryMock();
|
||||
PreviewHandlerSettings previewSettings = GetPreviewHandlerSettingsObject(true, mockRegistryWrapper);
|
||||
auto settings = PowerToyValues::from_json_string(GetJSONSettings(previewSettings.GetToggleSettingName(), L"true"));
|
||||
previewSettings.UpdateToggleSettingState(false);
|
||||
|
||||
// Act
|
||||
previewSettings.UpdateState(settings, enabled);
|
||||
previewSettings.UpdateState(settings, enabled, elevated);
|
||||
|
||||
// Assert
|
||||
Assert::IsTrue(previewSettings.GetToggleSettingState());
|
||||
Assert::AreEqual(mockRegistryWrapper->SetRegistryMockProperties.NumOfCalls, 1);
|
||||
Assert::AreEqual(mockRegistryWrapper->GetRegistryMockProperties.NumOfCalls, 1);
|
||||
}
|
||||
|
||||
TEST_METHOD (UpdateState_ShouldOnlyUpdateToggleSettingState_IfPreviewsAreDisabled)
|
||||
TEST_METHOD (PreviewHandlerSettingsUpdateState_ShouldNotEnableInRegistry_IfPreviewsAreEnabledAndNewSettingsStateIsTrueAndPowerToysIsElevatedAndRegistryContainsThePreview)
|
||||
{
|
||||
// Arrange
|
||||
bool enabled = true;
|
||||
bool elevated = true;
|
||||
RegistryMock* mockRegistryWrapper = new RegistryMock();
|
||||
PreviewHandlerSettings previewSettings = GetPreviewHandlerSettingsObject(true, mockRegistryWrapper);
|
||||
auto settings = PowerToyValues::from_json_string(GetJSONSettings(previewSettings.GetToggleSettingName(), L"true"));
|
||||
previewSettings.UpdateToggleSettingState(false);
|
||||
// Add expected data in registry
|
||||
mockRegistryWrapper->SetMockData(previewSettings.GetRegistryValueData());
|
||||
|
||||
// Act
|
||||
previewSettings.UpdateState(settings, enabled, elevated);
|
||||
|
||||
// Assert
|
||||
Assert::AreEqual(mockRegistryWrapper->SetRegistryMockProperties.NumOfCalls, 0);
|
||||
Assert::AreEqual(mockRegistryWrapper->GetRegistryMockProperties.NumOfCalls, 1);
|
||||
}
|
||||
|
||||
TEST_METHOD (ThumbnailProviderSettingsUpdateState_ShouldNotEnableInRegistry_IfPreviewsAreEnabledAndNewSettingsStateIsTrueAndPowerToysIsElevatedAndRegistryContainsThePreview)
|
||||
{
|
||||
// Arrange
|
||||
bool enabled = true;
|
||||
bool elevated = true;
|
||||
RegistryMock* mockRegistryWrapper = new RegistryMock();
|
||||
ThumbnailProviderSettings thumbnailSettings = GetThumbnailProviderSettingsObject(true, mockRegistryWrapper);
|
||||
auto settings = PowerToyValues::from_json_string(GetJSONSettings(thumbnailSettings.GetToggleSettingName(), L"true"));
|
||||
thumbnailSettings.UpdateToggleSettingState(false);
|
||||
// Add expected data in registry
|
||||
mockRegistryWrapper->SetMockData(thumbnailSettings.GetCLSID());
|
||||
|
||||
// Act
|
||||
thumbnailSettings.UpdateState(settings, enabled, elevated);
|
||||
|
||||
// Assert
|
||||
Assert::AreEqual(mockRegistryWrapper->SetRegistryMockProperties.NumOfCalls, 0);
|
||||
Assert::AreEqual(mockRegistryWrapper->GetRegistryMockProperties.NumOfCalls, 1);
|
||||
}
|
||||
|
||||
TEST_METHOD (UpdateState_ShouldNotEnableInRegistry_IfPreviewsAreEnabledAndNewSettingsStateIsTrueAndPowerToysIsNotElevated)
|
||||
{
|
||||
// Arrange
|
||||
bool enabled = true;
|
||||
bool elevated = false;
|
||||
RegistryMock* mockRegistryWrapper = new RegistryMock();
|
||||
PreviewHandlerSettings previewSettings = GetPreviewHandlerSettingsObject(true, mockRegistryWrapper);
|
||||
auto settings = PowerToyValues::from_json_string(GetJSONSettings(previewSettings.GetToggleSettingName(), L"true"));
|
||||
previewSettings.UpdateToggleSettingState(false);
|
||||
|
||||
// Act
|
||||
previewSettings.UpdateState(settings, enabled, elevated);
|
||||
|
||||
// Assert
|
||||
Assert::AreEqual(mockRegistryWrapper->SetRegistryMockProperties.NumOfCalls, 0);
|
||||
Assert::AreEqual(mockRegistryWrapper->GetRegistryMockProperties.NumOfCalls, 1);
|
||||
}
|
||||
|
||||
TEST_METHOD (UpdateState_ShouldUpdateToggleSettingState_IfPreviewsAreEnabledAndPowerToysIsElevated)
|
||||
{
|
||||
// Arrange
|
||||
bool enabled = false;
|
||||
bool elevated = true;
|
||||
RegistryMock* mockRegistryWrapper = new RegistryMock();
|
||||
FileExplorerPreviewSettings previewSettings = GetSettingsObject(true, mockRegistryWrapper);
|
||||
PreviewHandlerSettings previewSettings = GetPreviewHandlerSettingsObject(true, mockRegistryWrapper);
|
||||
auto settings = PowerToyValues::from_json_string(GetJSONSettings(previewSettings.GetToggleSettingName(), L"false"));
|
||||
|
||||
// Act
|
||||
previewSettings.UpdateState(settings, enabled);
|
||||
previewSettings.UpdateState(settings, enabled, elevated);
|
||||
|
||||
// Assert
|
||||
Assert::IsFalse(previewSettings.GetToggleSettingState());
|
||||
}
|
||||
|
||||
TEST_METHOD (UpdateState_ShouldUpdateToggleSettingState_IfPreviewsAreEnabledAndPowerToysIsNotElevated)
|
||||
{
|
||||
// Arrange
|
||||
bool enabled = false;
|
||||
bool elevated = false;
|
||||
RegistryMock* mockRegistryWrapper = new RegistryMock();
|
||||
PreviewHandlerSettings previewSettings = GetPreviewHandlerSettingsObject(true, mockRegistryWrapper);
|
||||
auto settings = PowerToyValues::from_json_string(GetJSONSettings(previewSettings.GetToggleSettingName(), L"false"));
|
||||
|
||||
// Act
|
||||
previewSettings.UpdateState(settings, enabled, elevated);
|
||||
|
||||
// Assert
|
||||
Assert::IsFalse(previewSettings.GetToggleSettingState());
|
||||
}
|
||||
|
||||
TEST_METHOD (UpdateState_ShouldOnlyUpdateToggleSettingState_IfPreviewsAreDisabledAndPowerToysIsElevated)
|
||||
{
|
||||
// Arrange
|
||||
bool enabled = false;
|
||||
bool elevated = true;
|
||||
RegistryMock* mockRegistryWrapper = new RegistryMock();
|
||||
PreviewHandlerSettings previewSettings = GetPreviewHandlerSettingsObject(true, mockRegistryWrapper);
|
||||
auto settings = PowerToyValues::from_json_string(GetJSONSettings(previewSettings.GetToggleSettingName(), L"false"));
|
||||
|
||||
// Act
|
||||
previewSettings.UpdateState(settings, enabled, elevated);
|
||||
|
||||
// Assert
|
||||
Assert::IsFalse(previewSettings.GetToggleSettingState());
|
||||
Assert::AreEqual(mockRegistryWrapper->SetRegistryMockProperties.NumOfCalls, 0);
|
||||
Assert::AreEqual(mockRegistryWrapper->DeleteRegistryMockProperties.NumOfCalls, 0);
|
||||
}
|
||||
|
||||
TEST_METHOD (UpdateState_ShouldOnlyUpdateToggleSettingState_IfPreviewsAreDisabledAndPowerToysIsNotElevated)
|
||||
{
|
||||
// Arrange
|
||||
bool enabled = false;
|
||||
bool elevated = false;
|
||||
RegistryMock* mockRegistryWrapper = new RegistryMock();
|
||||
PreviewHandlerSettings previewSettings = GetPreviewHandlerSettingsObject(true, mockRegistryWrapper);
|
||||
auto settings = PowerToyValues::from_json_string(GetJSONSettings(previewSettings.GetToggleSettingName(), L"false"));
|
||||
|
||||
// Act
|
||||
previewSettings.UpdateState(settings, enabled, elevated);
|
||||
|
||||
// Assert
|
||||
Assert::IsFalse(previewSettings.GetToggleSettingState());
|
||||
@@ -148,7 +334,7 @@ namespace PreviewHandlerSettingsTest
|
||||
{
|
||||
// Arrange
|
||||
bool updatedState = false;
|
||||
FileExplorerPreviewSettings previewSettings = GetSettingsObject(true, new RegistryMock());
|
||||
PreviewHandlerSettings previewSettings = GetPreviewHandlerSettingsObject(true, new RegistryMock());
|
||||
|
||||
// Act
|
||||
previewSettings.UpdateToggleSettingState(updatedState);
|
||||
@@ -157,52 +343,98 @@ namespace PreviewHandlerSettingsTest
|
||||
Assert::AreEqual(previewSettings.GetToggleSettingState(), updatedState);
|
||||
}
|
||||
|
||||
TEST_METHOD(EnablePreview_ShouldCallSetRegistryValueWithValidArguments_WhenCalled)
|
||||
TEST_METHOD (PreviewHandlerSettingsEnable_ShouldCallSetRegistryValueWithValidArguments_WhenCalled)
|
||||
{
|
||||
// Arrange
|
||||
RegistryMock* mockRegistryWrapper = new RegistryMock();
|
||||
FileExplorerPreviewSettings previewSettings = GetSettingsObject(true, mockRegistryWrapper);
|
||||
PreviewHandlerSettings previewSettings = GetPreviewHandlerSettingsObject(true, mockRegistryWrapper);
|
||||
|
||||
// Act
|
||||
previewSettings.EnablePreview();
|
||||
previewSettings.Enable();
|
||||
|
||||
// Assert
|
||||
Assert::AreEqual(mockRegistryWrapper->SetRegistryMockProperties.NumOfCalls, 1);
|
||||
Assert::AreEqual(mockRegistryWrapper->SetRegistryMockProperties.SubKey, preview_handlers_subkey);
|
||||
Assert::AreEqual(mockRegistryWrapper->SetRegistryMockProperties.SubKey, PreviewHandlerSettings::GetSubkey());
|
||||
Assert::AreEqual(mockRegistryWrapper->SetRegistryMockProperties.ValueName, previewSettings.GetCLSID());
|
||||
Assert::AreEqual((ULONG_PTR)(mockRegistryWrapper->SetRegistryMockProperties.Scope), (ULONG_PTR)(HKEY_CURRENT_USER));
|
||||
Assert::AreEqual(mockRegistryWrapper->SetRegistryMockProperties.ValueData, previewSettings.GetRegistryValueData().c_str());
|
||||
Assert::AreEqual((ULONG_PTR)(mockRegistryWrapper->SetRegistryMockProperties.Scope), (ULONG_PTR)(HKEY_LOCAL_MACHINE));
|
||||
}
|
||||
|
||||
TEST_METHOD(DisablePreview_ShouldCallDeleteRegistryValueWithValidArguments_WhenCalled)
|
||||
TEST_METHOD (PreviewHandlerDisable_ShouldCallDeleteRegistryValueWithValidArguments_WhenCalled)
|
||||
{
|
||||
// Arrange
|
||||
RegistryMock* mockRegistryWrapper = new RegistryMock();
|
||||
FileExplorerPreviewSettings previewSettings = GetSettingsObject(true, mockRegistryWrapper);
|
||||
PreviewHandlerSettings previewSettings = GetPreviewHandlerSettingsObject(true, mockRegistryWrapper);
|
||||
|
||||
// Act
|
||||
previewSettings.DisablePreview();
|
||||
previewSettings.Disable();
|
||||
|
||||
// Assert
|
||||
Assert::AreEqual(mockRegistryWrapper->DeleteRegistryMockProperties.NumOfCalls, 1);
|
||||
Assert::AreEqual(mockRegistryWrapper->DeleteRegistryMockProperties.SubKey, preview_handlers_subkey);
|
||||
Assert::AreEqual(mockRegistryWrapper->DeleteRegistryMockProperties.SubKey, PreviewHandlerSettings::GetSubkey());
|
||||
Assert::AreEqual(mockRegistryWrapper->DeleteRegistryMockProperties.ValueName, previewSettings.GetCLSID());
|
||||
Assert::AreEqual((ULONG_PTR)(mockRegistryWrapper->DeleteRegistryMockProperties.Scope), (ULONG_PTR)(HKEY_CURRENT_USER));
|
||||
Assert::AreEqual((ULONG_PTR)(mockRegistryWrapper->DeleteRegistryMockProperties.Scope), (ULONG_PTR)(HKEY_LOCAL_MACHINE));
|
||||
}
|
||||
|
||||
FileExplorerPreviewSettings GetSettingsObject(bool defaultState, RegistryWrapperIface* registryMock)
|
||||
{
|
||||
return FileExplorerPreviewSettings(
|
||||
TEST_METHOD (ThumbnailProviderSettingsEnable_ShouldCallSetRegistryValueWithValidArguments_WhenCalled)
|
||||
{
|
||||
// Arrange
|
||||
RegistryMock* mockRegistryWrapper = new RegistryMock();
|
||||
ThumbnailProviderSettings thumbnailSettings = GetThumbnailProviderSettingsObject(true, mockRegistryWrapper);
|
||||
|
||||
// Act
|
||||
thumbnailSettings.Enable();
|
||||
|
||||
// Assert
|
||||
Assert::AreEqual(mockRegistryWrapper->SetRegistryMockProperties.NumOfCalls, 1);
|
||||
Assert::AreEqual(mockRegistryWrapper->SetRegistryMockProperties.SubKey, thumbnailSettings.GetSubkey());
|
||||
Assert::AreEqual(mockRegistryWrapper->SetRegistryMockProperties.ValueName, nullptr);
|
||||
Assert::AreEqual(mockRegistryWrapper->SetRegistryMockProperties.ValueData, thumbnailSettings.GetCLSID());
|
||||
Assert::AreEqual((ULONG_PTR)(mockRegistryWrapper->SetRegistryMockProperties.Scope), (ULONG_PTR)(HKEY_CLASSES_ROOT));
|
||||
}
|
||||
|
||||
TEST_METHOD (ThumbnailProviderSettingsDisable_ShouldCallDeleteRegistryValueWithValidArguments_WhenCalled)
|
||||
{
|
||||
// Arrange
|
||||
RegistryMock* mockRegistryWrapper = new RegistryMock();
|
||||
ThumbnailProviderSettings thumbnailSettings = GetThumbnailProviderSettingsObject(true, mockRegistryWrapper);
|
||||
|
||||
// Act
|
||||
thumbnailSettings.Disable();
|
||||
|
||||
// Assert
|
||||
Assert::AreEqual(mockRegistryWrapper->DeleteRegistryMockProperties.NumOfCalls, 1);
|
||||
Assert::AreEqual(mockRegistryWrapper->DeleteRegistryMockProperties.SubKey, thumbnailSettings.GetSubkey());
|
||||
Assert::AreEqual(mockRegistryWrapper->DeleteRegistryMockProperties.ValueName, nullptr);
|
||||
Assert::AreEqual((ULONG_PTR)(mockRegistryWrapper->DeleteRegistryMockProperties.Scope), (ULONG_PTR)(HKEY_CLASSES_ROOT));
|
||||
}
|
||||
|
||||
PreviewHandlerSettings GetPreviewHandlerSettingsObject(bool defaultState, RegistryWrapperIface* registryMock)
|
||||
{
|
||||
return PreviewHandlerSettings(
|
||||
defaultState,
|
||||
L"valid-name",
|
||||
L"valid-description",
|
||||
L"valid-guid",
|
||||
L"valid-handler",
|
||||
registryMock);
|
||||
}
|
||||
}
|
||||
|
||||
std::wstring GetJSONSettings(const std::wstring &_settingsNameId, const std::wstring &_value) const
|
||||
{
|
||||
return L"{\"name\":\"Module Name\",\"properties\" : {\"" + _settingsNameId + L"\":{\"value\":" + _value + L"}},\"version\" : \"1.0\" }";
|
||||
}
|
||||
};
|
||||
ThumbnailProviderSettings GetThumbnailProviderSettingsObject(bool defaultState, RegistryWrapperIface* registryMock)
|
||||
{
|
||||
return ThumbnailProviderSettings(
|
||||
defaultState,
|
||||
L"valid-name",
|
||||
L"valid-description",
|
||||
L"valid-guid",
|
||||
L"valid-handler",
|
||||
registryMock,
|
||||
L"valid-subkey");
|
||||
}
|
||||
|
||||
std::wstring GetJSONSettings(const std::wstring& _settingsNameId, const std::wstring& _value) const
|
||||
{
|
||||
return L"{\"name\":\"Module Name\",\"properties\" : {\"" + _settingsNameId + L"\":{\"value\":" + _value + L"}},\"version\" : \"1.0\" }";
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user