diff --git a/.pipelines/ci/templates/build-powertoys-ci.yml b/.pipelines/ci/templates/build-powertoys-ci.yml index ae35f56afa..b8af463b10 100644 --- a/.pipelines/ci/templates/build-powertoys-ci.yml +++ b/.pipelines/ci/templates/build-powertoys-ci.yml @@ -14,4 +14,4 @@ jobs: steps: - template: build-powertoys-steps.yml parameters: - additionalBuildArguments: ${{ parameters.additionalBuildArguments }} \ No newline at end of file + additionalBuildArguments: ${{ parameters.additionalBuildArguments }} diff --git a/.pipelines/ci/templates/build-powertoys-steps.yml b/.pipelines/ci/templates/build-powertoys-steps.yml index 40416e5e9f..652e35a1ba 100644 --- a/.pipelines/ci/templates/build-powertoys-steps.yml +++ b/.pipelines/ci/templates/build-powertoys-steps.yml @@ -73,29 +73,34 @@ steps: maximumCpuCount: true -# directly not doing WinAppDriver testing +# Running VSTest@2 step seperatly for .netframework and .netcore. +# .NetCore assemblies - task: VSTest@2 + displayName: 'Run .Net Core Tests' inputs: platform: '$(BuildPlatform)' configuration: '$(BuildConfiguration)' testSelector: 'testAssemblies' testAssemblyVer2: | - !**\*PowerToysTests.dll - !**\*TestAdapter.dll + #**\Microsoft.Plugin.Program.UnitTests.dll + #**\Microsoft.Plugin.Uri.UnitTests.dll + #**\Wox.Test.dll + **\*Microsoft.PowerToys.Settings.UI.UnitTests.dll !**\obj\** +# .NetFramework assemblies +- task: VSTest@2 + displayName: 'Run .Net Framework Tests' + inputs: + platform: '$(BuildPlatform)' + configuration: '$(BuildConfiguration)' + testSelector: 'testAssemblies' + testAssemblyVer2: | **\ImageResizer.Test.dll **\KeyboardManagerTest.dll - **\Microsoft.Plugin.Program.UnitTests.dll - **\Microsoft.Plugin.Uri.UnitTests.dll **\PowerRenameUnitTests.dll **\UnitTests-CommonLib.dll **\PreviewPaneUnitTests.dll #this is the markdown tests **\UnitTests-PreviewHandlerCommon.dll **\UnitTests-SvgPreviewHandler.dll - **\Wox.Test.dll **\powerpreviewTest.dll - # Can't get working, says no tests - # #**\Microsoft.PowerToys.Settings.UnitTest.exe - # crashes CI - #**\interop-tests.dll - #**\UnitTests-FancyZones.dll + !**\obj\** diff --git a/PowerToys.sln b/PowerToys.sln index db9b22afda..8a3175ba09 100644 --- a/PowerToys.sln +++ b/PowerToys.sln @@ -234,8 +234,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.PowerToys.Settings.UI.Lib", "src\core\Microsoft.PowerToys.Settings.UI.Lib\Microsoft.PowerToys.Settings.UI.Lib.csproj", "{B1BCC8C6-46B5-4BFA-8F22-20F32D99EC6A}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.PowerToys.Settings.UnitTest", "src\core\Microsoft.PowerToys.Settings.UnitTest\Microsoft.PowerToys.Settings.UnitTest.csproj", "{A80355C2-780D-4245-BD80-25B8DE698EE3}" -EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "interop", "src\common\interop\interop.vcxproj", "{F055103B-F80B-4D0C-BF48-057C55620033}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "common-md-flag", "src\common\common-md-flag\common-md-flag.vcxproj", "{985B3F2F-CEED-4C0A-A249-69257E719145}" @@ -268,272 +266,414 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Plugin.Uri", "src EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Plugin.Uri.UnitTests", "src\modules\launcher\Plugins\Microsoft.Plugin.Uri.UnitTests\Microsoft.Plugin.Uri.UnitTests.csproj", "{B81FB7B6-D30E-428F-908A-41422EFC1172}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.PowerToys.Settings.UI.UnitTests", "src\core\Microsoft.PowerToys.Settings.UI.UnitTests\Microsoft.PowerToys.Settings.UI.UnitTests.csproj", "{0F85E674-34AE-443D-954C-8321EB8B93B1}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU Debug|x64 = Debug|x64 + Release|Any CPU = Release|Any CPU Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution + {9412D5C6-2CF2-4FC2-A601-B55508EA9B27}.Debug|Any CPU.ActiveCfg = Debug|x64 {9412D5C6-2CF2-4FC2-A601-B55508EA9B27}.Debug|x64.ActiveCfg = Debug|x64 {9412D5C6-2CF2-4FC2-A601-B55508EA9B27}.Debug|x64.Build.0 = Debug|x64 + {9412D5C6-2CF2-4FC2-A601-B55508EA9B27}.Release|Any CPU.ActiveCfg = Release|x64 {9412D5C6-2CF2-4FC2-A601-B55508EA9B27}.Release|x64.ActiveCfg = Release|x64 {9412D5C6-2CF2-4FC2-A601-B55508EA9B27}.Release|x64.Build.0 = Release|x64 + {74485049-C722-400F-ABE5-86AC52D929B3}.Debug|Any CPU.ActiveCfg = Debug|x64 {74485049-C722-400F-ABE5-86AC52D929B3}.Debug|x64.ActiveCfg = Debug|x64 {74485049-C722-400F-ABE5-86AC52D929B3}.Debug|x64.Build.0 = Debug|x64 + {74485049-C722-400F-ABE5-86AC52D929B3}.Release|Any CPU.ActiveCfg = Release|x64 {74485049-C722-400F-ABE5-86AC52D929B3}.Release|x64.ActiveCfg = Release|x64 {74485049-C722-400F-ABE5-86AC52D929B3}.Release|x64.Build.0 = Release|x64 + {A46629C4-1A6C-40FA-A8B6-10E5102BB0BA}.Debug|Any CPU.ActiveCfg = Debug|x64 {A46629C4-1A6C-40FA-A8B6-10E5102BB0BA}.Debug|x64.ActiveCfg = Debug|x64 {A46629C4-1A6C-40FA-A8B6-10E5102BB0BA}.Debug|x64.Build.0 = Debug|x64 + {A46629C4-1A6C-40FA-A8B6-10E5102BB0BA}.Release|Any CPU.ActiveCfg = Release|x64 {A46629C4-1A6C-40FA-A8B6-10E5102BB0BA}.Release|x64.ActiveCfg = Release|x64 {A46629C4-1A6C-40FA-A8B6-10E5102BB0BA}.Release|x64.Build.0 = Release|x64 + {07C389E3-6BC8-41CF-923E-307B1265FA2D}.Debug|Any CPU.ActiveCfg = Debug|x64 {07C389E3-6BC8-41CF-923E-307B1265FA2D}.Debug|x64.ActiveCfg = Debug|x64 {07C389E3-6BC8-41CF-923E-307B1265FA2D}.Debug|x64.Build.0 = Debug|x64 + {07C389E3-6BC8-41CF-923E-307B1265FA2D}.Release|Any CPU.ActiveCfg = Release|x64 {07C389E3-6BC8-41CF-923E-307B1265FA2D}.Release|x64.ActiveCfg = Release|x64 {07C389E3-6BC8-41CF-923E-307B1265FA2D}.Release|x64.Build.0 = Release|x64 + {F9C68EDF-AC74-4B77-9AF1-005D9C9F6A99}.Debug|Any CPU.ActiveCfg = Debug|x64 {F9C68EDF-AC74-4B77-9AF1-005D9C9F6A99}.Debug|x64.ActiveCfg = Debug|x64 {F9C68EDF-AC74-4B77-9AF1-005D9C9F6A99}.Debug|x64.Build.0 = Debug|x64 + {F9C68EDF-AC74-4B77-9AF1-005D9C9F6A99}.Release|Any CPU.ActiveCfg = Release|x64 {F9C68EDF-AC74-4B77-9AF1-005D9C9F6A99}.Release|x64.ActiveCfg = Release|x64 {F9C68EDF-AC74-4B77-9AF1-005D9C9F6A99}.Release|x64.Build.0 = Release|x64 + {48804216-2A0E-4168-A6D8-9CD068D14227}.Debug|Any CPU.ActiveCfg = Debug|x64 {48804216-2A0E-4168-A6D8-9CD068D14227}.Debug|x64.ActiveCfg = Debug|x64 {48804216-2A0E-4168-A6D8-9CD068D14227}.Debug|x64.Build.0 = Debug|x64 + {48804216-2A0E-4168-A6D8-9CD068D14227}.Release|Any CPU.ActiveCfg = Release|x64 {48804216-2A0E-4168-A6D8-9CD068D14227}.Release|x64.ActiveCfg = Release|x64 {48804216-2A0E-4168-A6D8-9CD068D14227}.Release|x64.Build.0 = Release|x64 + {9C6A7905-72D4-4BF5-B256-ABFDAEF68AE9}.Debug|Any CPU.ActiveCfg = Debug|x64 {9C6A7905-72D4-4BF5-B256-ABFDAEF68AE9}.Debug|x64.ActiveCfg = Debug|x64 {9C6A7905-72D4-4BF5-B256-ABFDAEF68AE9}.Debug|x64.Build.0 = Debug|x64 + {9C6A7905-72D4-4BF5-B256-ABFDAEF68AE9}.Release|Any CPU.ActiveCfg = Release|x64 {9C6A7905-72D4-4BF5-B256-ABFDAEF68AE9}.Release|x64.ActiveCfg = Release|x64 {9C6A7905-72D4-4BF5-B256-ABFDAEF68AE9}.Release|x64.Build.0 = Release|x64 + {1A066C63-64B3-45F8-92FE-664E1CCE8077}.Debug|Any CPU.ActiveCfg = Debug|x64 {1A066C63-64B3-45F8-92FE-664E1CCE8077}.Debug|x64.ActiveCfg = Debug|x64 {1A066C63-64B3-45F8-92FE-664E1CCE8077}.Debug|x64.Build.0 = Debug|x64 + {1A066C63-64B3-45F8-92FE-664E1CCE8077}.Release|Any CPU.ActiveCfg = Release|x64 {1A066C63-64B3-45F8-92FE-664E1CCE8077}.Release|x64.ActiveCfg = Release|x64 {1A066C63-64B3-45F8-92FE-664E1CCE8077}.Release|x64.Build.0 = Release|x64 + {5CCC8468-DEC8-4D36-99D4-5C891BEBD481}.Debug|Any CPU.ActiveCfg = Debug|x64 {5CCC8468-DEC8-4D36-99D4-5C891BEBD481}.Debug|x64.ActiveCfg = Debug|x64 {5CCC8468-DEC8-4D36-99D4-5C891BEBD481}.Debug|x64.Build.0 = Debug|x64 + {5CCC8468-DEC8-4D36-99D4-5C891BEBD481}.Release|Any CPU.ActiveCfg = Release|x64 {5CCC8468-DEC8-4D36-99D4-5C891BEBD481}.Release|x64.ActiveCfg = Release|x64 {5CCC8468-DEC8-4D36-99D4-5C891BEBD481}.Release|x64.Build.0 = Release|x64 + {B25AC7A5-FB9F-4789-B392-D5C85E948670}.Debug|Any CPU.ActiveCfg = Debug|Win32 {B25AC7A5-FB9F-4789-B392-D5C85E948670}.Debug|x64.ActiveCfg = Debug|x64 {B25AC7A5-FB9F-4789-B392-D5C85E948670}.Debug|x64.Build.0 = Debug|x64 + {B25AC7A5-FB9F-4789-B392-D5C85E948670}.Release|Any CPU.ActiveCfg = Release|Win32 {B25AC7A5-FB9F-4789-B392-D5C85E948670}.Release|x64.ActiveCfg = Release|x64 {B25AC7A5-FB9F-4789-B392-D5C85E948670}.Release|x64.Build.0 = Release|x64 + {51920F1F-C28C-4ADF-8660-4238766796C2}.Debug|Any CPU.ActiveCfg = Debug|Win32 {51920F1F-C28C-4ADF-8660-4238766796C2}.Debug|x64.ActiveCfg = Debug|x64 {51920F1F-C28C-4ADF-8660-4238766796C2}.Debug|x64.Build.0 = Debug|x64 + {51920F1F-C28C-4ADF-8660-4238766796C2}.Release|Any CPU.ActiveCfg = Release|Win32 {51920F1F-C28C-4ADF-8660-4238766796C2}.Release|x64.ActiveCfg = Release|x64 {51920F1F-C28C-4ADF-8660-4238766796C2}.Release|x64.Build.0 = Release|x64 + {0E072714-D127-460B-AFAD-B4C40B412798}.Debug|Any CPU.ActiveCfg = Debug|x64 {0E072714-D127-460B-AFAD-B4C40B412798}.Debug|x64.ActiveCfg = Debug|x64 {0E072714-D127-460B-AFAD-B4C40B412798}.Debug|x64.Build.0 = Debug|x64 + {0E072714-D127-460B-AFAD-B4C40B412798}.Release|Any CPU.ActiveCfg = Release|x64 {0E072714-D127-460B-AFAD-B4C40B412798}.Release|x64.ActiveCfg = Release|x64 {0E072714-D127-460B-AFAD-B4C40B412798}.Release|x64.Build.0 = Release|x64 + {A3935CF4-46C5-4A88-84D3-6B12E16E6BA2}.Debug|Any CPU.ActiveCfg = Debug|Win32 {A3935CF4-46C5-4A88-84D3-6B12E16E6BA2}.Debug|x64.ActiveCfg = Debug|x64 {A3935CF4-46C5-4A88-84D3-6B12E16E6BA2}.Debug|x64.Build.0 = Debug|x64 + {A3935CF4-46C5-4A88-84D3-6B12E16E6BA2}.Release|Any CPU.ActiveCfg = Release|Win32 {A3935CF4-46C5-4A88-84D3-6B12E16E6BA2}.Release|x64.ActiveCfg = Release|x64 {A3935CF4-46C5-4A88-84D3-6B12E16E6BA2}.Release|x64.Build.0 = Release|x64 + {2151F984-E006-4A9F-92EF-C6DDE3DC8413}.Debug|Any CPU.ActiveCfg = Debug|Win32 {2151F984-E006-4A9F-92EF-C6DDE3DC8413}.Debug|x64.ActiveCfg = Debug|x64 {2151F984-E006-4A9F-92EF-C6DDE3DC8413}.Debug|x64.Build.0 = Debug|x64 + {2151F984-E006-4A9F-92EF-C6DDE3DC8413}.Release|Any CPU.ActiveCfg = Release|Win32 {2151F984-E006-4A9F-92EF-C6DDE3DC8413}.Release|x64.ActiveCfg = Release|x64 {2151F984-E006-4A9F-92EF-C6DDE3DC8413}.Release|x64.Build.0 = Release|x64 + {64A80062-4D8B-4229-8A38-DFA1D7497749}.Debug|Any CPU.ActiveCfg = Debug|x64 {64A80062-4D8B-4229-8A38-DFA1D7497749}.Debug|x64.ActiveCfg = Debug|x64 {64A80062-4D8B-4229-8A38-DFA1D7497749}.Debug|x64.Build.0 = Debug|x64 + {64A80062-4D8B-4229-8A38-DFA1D7497749}.Release|Any CPU.ActiveCfg = Release|x64 {64A80062-4D8B-4229-8A38-DFA1D7497749}.Release|x64.ActiveCfg = Release|x64 {64A80062-4D8B-4229-8A38-DFA1D7497749}.Release|x64.Build.0 = Release|x64 + {0485F45C-EA7A-4BB5-804B-3E8D14699387}.Debug|Any CPU.ActiveCfg = Debug|x64 {0485F45C-EA7A-4BB5-804B-3E8D14699387}.Debug|x64.ActiveCfg = Debug|x64 {0485F45C-EA7A-4BB5-804B-3E8D14699387}.Debug|x64.Build.0 = Debug|x64 + {0485F45C-EA7A-4BB5-804B-3E8D14699387}.Release|Any CPU.ActiveCfg = Release|x64 {0485F45C-EA7A-4BB5-804B-3E8D14699387}.Release|x64.ActiveCfg = Release|x64 {0485F45C-EA7A-4BB5-804B-3E8D14699387}.Release|x64.Build.0 = Release|x64 + {0B593A6C-4143-4337-860E-DB5710FB87DB}.Debug|Any CPU.ActiveCfg = Debug|Win32 {0B593A6C-4143-4337-860E-DB5710FB87DB}.Debug|x64.ActiveCfg = Debug|x64 {0B593A6C-4143-4337-860E-DB5710FB87DB}.Debug|x64.Build.0 = Debug|x64 + {0B593A6C-4143-4337-860E-DB5710FB87DB}.Release|Any CPU.ActiveCfg = Release|Win32 {0B593A6C-4143-4337-860E-DB5710FB87DB}.Release|x64.ActiveCfg = Release|x64 {0B593A6C-4143-4337-860E-DB5710FB87DB}.Release|x64.Build.0 = Release|x64 + {031AC72E-FA28-4AB7-B690-6F7B9C28AA73}.Debug|Any CPU.ActiveCfg = Debug|Win32 {031AC72E-FA28-4AB7-B690-6F7B9C28AA73}.Debug|x64.ActiveCfg = Debug|x64 {031AC72E-FA28-4AB7-B690-6F7B9C28AA73}.Debug|x64.Build.0 = Debug|x64 + {031AC72E-FA28-4AB7-B690-6F7B9C28AA73}.Release|Any CPU.ActiveCfg = Release|Win32 {031AC72E-FA28-4AB7-B690-6F7B9C28AA73}.Release|x64.ActiveCfg = Release|x64 {031AC72E-FA28-4AB7-B690-6F7B9C28AA73}.Release|x64.Build.0 = Release|x64 + {89F34AF7-1C34-4A72-AA6E-534BCF972BD9}.Debug|Any CPU.ActiveCfg = Debug|x64 {89F34AF7-1C34-4A72-AA6E-534BCF972BD9}.Debug|x64.ActiveCfg = Debug|x64 {89F34AF7-1C34-4A72-AA6E-534BCF972BD9}.Debug|x64.Build.0 = Debug|x64 + {89F34AF7-1C34-4A72-AA6E-534BCF972BD9}.Release|Any CPU.ActiveCfg = Release|x64 {89F34AF7-1C34-4A72-AA6E-534BCF972BD9}.Release|x64.ActiveCfg = Release|x64 {89F34AF7-1C34-4A72-AA6E-534BCF972BD9}.Release|x64.Build.0 = Release|x64 + {2BE46397-4DFA-414C-9BD4-41E4BBF8CB34}.Debug|Any CPU.ActiveCfg = Debug|x64 {2BE46397-4DFA-414C-9BD4-41E4BBF8CB34}.Debug|x64.ActiveCfg = Debug|x64 {2BE46397-4DFA-414C-9BD4-41E4BBF8CB34}.Debug|x64.Build.0 = Debug|x64 + {2BE46397-4DFA-414C-9BD4-41E4BBF8CB34}.Release|Any CPU.ActiveCfg = Release|x64 {2BE46397-4DFA-414C-9BD4-41E4BBF8CB34}.Release|x64.ActiveCfg = Release|x64 {2BE46397-4DFA-414C-9BD4-41E4BBF8CB34}.Release|x64.Build.0 = Release|x64 + {0B43679E-EDFA-4DA0-AD30-F4628B308B1B}.Debug|Any CPU.ActiveCfg = Debug|Win32 {0B43679E-EDFA-4DA0-AD30-F4628B308B1B}.Debug|x64.ActiveCfg = Debug|x64 {0B43679E-EDFA-4DA0-AD30-F4628B308B1B}.Debug|x64.Build.0 = Debug|x64 + {0B43679E-EDFA-4DA0-AD30-F4628B308B1B}.Release|Any CPU.ActiveCfg = Release|Win32 {0B43679E-EDFA-4DA0-AD30-F4628B308B1B}.Release|x64.ActiveCfg = Release|x64 {0B43679E-EDFA-4DA0-AD30-F4628B308B1B}.Release|x64.Build.0 = Release|x64 + {E0CC7526-D85E-43AC-844F-D5DF0D2F5AB8}.Debug|Any CPU.ActiveCfg = Debug|x64 {E0CC7526-D85E-43AC-844F-D5DF0D2F5AB8}.Debug|x64.ActiveCfg = Debug|x64 {E0CC7526-D85E-43AC-844F-D5DF0D2F5AB8}.Debug|x64.Build.0 = Debug|x64 + {E0CC7526-D85E-43AC-844F-D5DF0D2F5AB8}.Release|Any CPU.ActiveCfg = Release|x64 {E0CC7526-D85E-43AC-844F-D5DF0D2F5AB8}.Release|x64.ActiveCfg = Release|x64 {E0CC7526-D85E-43AC-844F-D5DF0D2F5AB8}.Release|x64.Build.0 = Release|x64 + {EAF23649-EF6E-478B-980E-81FAD96CCA2A}.Debug|Any CPU.ActiveCfg = Debug|x64 {EAF23649-EF6E-478B-980E-81FAD96CCA2A}.Debug|x64.ActiveCfg = Debug|x64 {EAF23649-EF6E-478B-980E-81FAD96CCA2A}.Debug|x64.Build.0 = Debug|x64 + {EAF23649-EF6E-478B-980E-81FAD96CCA2A}.Release|Any CPU.ActiveCfg = Release|x64 {EAF23649-EF6E-478B-980E-81FAD96CCA2A}.Release|x64.ActiveCfg = Release|x64 {EAF23649-EF6E-478B-980E-81FAD96CCA2A}.Release|x64.Build.0 = Release|x64 + {D29DDD63-E2CF-4657-9FD5-2AEDE4257E5D}.Debug|Any CPU.ActiveCfg = Debug|Win32 {D29DDD63-E2CF-4657-9FD5-2AEDE4257E5D}.Debug|x64.ActiveCfg = Debug|x64 {D29DDD63-E2CF-4657-9FD5-2AEDE4257E5D}.Debug|x64.Build.0 = Debug|x64 + {D29DDD63-E2CF-4657-9FD5-2AEDE4257E5D}.Release|Any CPU.ActiveCfg = Release|Win32 {D29DDD63-E2CF-4657-9FD5-2AEDE4257E5D}.Release|x64.ActiveCfg = Release|x64 {D29DDD63-E2CF-4657-9FD5-2AEDE4257E5D}.Release|x64.Build.0 = Release|x64 + {17DA04DF-E393-4397-9CF0-84DABE11032E}.Debug|Any CPU.ActiveCfg = Debug|Win32 {17DA04DF-E393-4397-9CF0-84DABE11032E}.Debug|x64.ActiveCfg = Debug|x64 {17DA04DF-E393-4397-9CF0-84DABE11032E}.Debug|x64.Build.0 = Debug|x64 + {17DA04DF-E393-4397-9CF0-84DABE11032E}.Release|Any CPU.ActiveCfg = Release|Win32 {17DA04DF-E393-4397-9CF0-84DABE11032E}.Release|x64.ActiveCfg = Release|x64 {17DA04DF-E393-4397-9CF0-84DABE11032E}.Release|x64.Build.0 = Release|x64 + {8AFFA899-0B73-49EC-8C50-0FADDA57B2FC}.Debug|Any CPU.ActiveCfg = Debug|x64 {8AFFA899-0B73-49EC-8C50-0FADDA57B2FC}.Debug|x64.ActiveCfg = Debug|x64 {8AFFA899-0B73-49EC-8C50-0FADDA57B2FC}.Debug|x64.Build.0 = Debug|x64 + {8AFFA899-0B73-49EC-8C50-0FADDA57B2FC}.Release|Any CPU.ActiveCfg = Release|x64 {8AFFA899-0B73-49EC-8C50-0FADDA57B2FC}.Release|x64.ActiveCfg = Release|x64 {8AFFA899-0B73-49EC-8C50-0FADDA57B2FC}.Release|x64.Build.0 = Release|x64 + {B749F0DB-8E75-47DB-9E5E-265D16D0C0D2}.Debug|Any CPU.ActiveCfg = Debug|x64 {B749F0DB-8E75-47DB-9E5E-265D16D0C0D2}.Debug|x64.ActiveCfg = Debug|x64 {B749F0DB-8E75-47DB-9E5E-265D16D0C0D2}.Debug|x64.Build.0 = Debug|x64 + {B749F0DB-8E75-47DB-9E5E-265D16D0C0D2}.Release|Any CPU.ActiveCfg = Release|x64 {B749F0DB-8E75-47DB-9E5E-265D16D0C0D2}.Release|x64.ActiveCfg = Release|x64 {B749F0DB-8E75-47DB-9E5E-265D16D0C0D2}.Release|x64.Build.0 = Release|x64 + {4FD29318-A8AB-4D8F-AA47-60BC241B8DA3}.Debug|Any CPU.ActiveCfg = Debug|x64 {4FD29318-A8AB-4D8F-AA47-60BC241B8DA3}.Debug|x64.ActiveCfg = Debug|x64 {4FD29318-A8AB-4D8F-AA47-60BC241B8DA3}.Debug|x64.Build.0 = Debug|x64 + {4FD29318-A8AB-4D8F-AA47-60BC241B8DA3}.Release|Any CPU.ActiveCfg = Release|x64 {4FD29318-A8AB-4D8F-AA47-60BC241B8DA3}.Release|x64.ActiveCfg = Release|x64 {4FD29318-A8AB-4D8F-AA47-60BC241B8DA3}.Release|x64.Build.0 = Release|x64 + {8451ECDD-2EA4-4966-BB0A-7BBC40138E80}.Debug|Any CPU.ActiveCfg = Debug|x64 {8451ECDD-2EA4-4966-BB0A-7BBC40138E80}.Debug|x64.ActiveCfg = Debug|x64 {8451ECDD-2EA4-4966-BB0A-7BBC40138E80}.Debug|x64.Build.0 = Debug|x64 + {8451ECDD-2EA4-4966-BB0A-7BBC40138E80}.Release|Any CPU.ActiveCfg = Release|x64 {8451ECDD-2EA4-4966-BB0A-7BBC40138E80}.Release|x64.ActiveCfg = Release|x64 {8451ECDD-2EA4-4966-BB0A-7BBC40138E80}.Release|x64.Build.0 = Release|x64 + {FF742965-9A80-41A5-B042-D6C7D3A21708}.Debug|Any CPU.ActiveCfg = Debug|x64 {FF742965-9A80-41A5-B042-D6C7D3A21708}.Debug|x64.ActiveCfg = Debug|x64 {FF742965-9A80-41A5-B042-D6C7D3A21708}.Debug|x64.Build.0 = Debug|x64 + {FF742965-9A80-41A5-B042-D6C7D3A21708}.Release|Any CPU.ActiveCfg = Release|x64 {FF742965-9A80-41A5-B042-D6C7D3A21708}.Release|x64.ActiveCfg = Release|x64 {FF742965-9A80-41A5-B042-D6C7D3A21708}.Release|x64.Build.0 = Release|x64 + {59BD9891-3837-438A-958D-ADC7F91F6F7E}.Debug|Any CPU.ActiveCfg = Debug|x64 {59BD9891-3837-438A-958D-ADC7F91F6F7E}.Debug|x64.ActiveCfg = Debug|x64 {59BD9891-3837-438A-958D-ADC7F91F6F7E}.Debug|x64.Build.0 = Debug|x64 + {59BD9891-3837-438A-958D-ADC7F91F6F7E}.Release|Any CPU.ActiveCfg = Release|x64 {59BD9891-3837-438A-958D-ADC7F91F6F7E}.Release|x64.ActiveCfg = Release|x64 {59BD9891-3837-438A-958D-ADC7F91F6F7E}.Release|x64.Build.0 = Release|x64 + {74F1B9ED-F59C-4FE7-B473-7B453E30837E}.Debug|Any CPU.ActiveCfg = Debug|x64 {74F1B9ED-F59C-4FE7-B473-7B453E30837E}.Debug|x64.ActiveCfg = Debug|x64 {74F1B9ED-F59C-4FE7-B473-7B453E30837E}.Debug|x64.Build.0 = Debug|x64 + {74F1B9ED-F59C-4FE7-B473-7B453E30837E}.Release|Any CPU.ActiveCfg = Release|x64 {74F1B9ED-F59C-4FE7-B473-7B453E30837E}.Release|x64.ActiveCfg = Release|x64 {74F1B9ED-F59C-4FE7-B473-7B453E30837E}.Release|x64.Build.0 = Release|x64 + {FDB3555B-58EF-4AE6-B5F1-904719637AB4}.Debug|Any CPU.ActiveCfg = Debug|x64 {FDB3555B-58EF-4AE6-B5F1-904719637AB4}.Debug|x64.ActiveCfg = Debug|x64 {FDB3555B-58EF-4AE6-B5F1-904719637AB4}.Debug|x64.Build.0 = Debug|x64 + {FDB3555B-58EF-4AE6-B5F1-904719637AB4}.Release|Any CPU.ActiveCfg = Release|x64 {FDB3555B-58EF-4AE6-B5F1-904719637AB4}.Release|x64.ActiveCfg = Release|x64 {FDB3555B-58EF-4AE6-B5F1-904719637AB4}.Release|x64.Build.0 = Release|x64 + {C21BFF9C-2C99-4B5F-B7C9-A5E6DDDB37B0}.Debug|Any CPU.ActiveCfg = Debug|x64 {C21BFF9C-2C99-4B5F-B7C9-A5E6DDDB37B0}.Debug|x64.ActiveCfg = Debug|x64 {C21BFF9C-2C99-4B5F-B7C9-A5E6DDDB37B0}.Debug|x64.Build.0 = Debug|x64 + {C21BFF9C-2C99-4B5F-B7C9-A5E6DDDB37B0}.Release|Any CPU.ActiveCfg = Release|x64 {C21BFF9C-2C99-4B5F-B7C9-A5E6DDDB37B0}.Release|x64.ActiveCfg = Release|x64 {C21BFF9C-2C99-4B5F-B7C9-A5E6DDDB37B0}.Release|x64.Build.0 = Release|x64 + {F8B870EB-D5F5-45BA-9CF7-A5C459818820}.Debug|Any CPU.ActiveCfg = Debug|x64 {F8B870EB-D5F5-45BA-9CF7-A5C459818820}.Debug|x64.ActiveCfg = Debug|x64 {F8B870EB-D5F5-45BA-9CF7-A5C459818820}.Debug|x64.Build.0 = Debug|x64 + {F8B870EB-D5F5-45BA-9CF7-A5C459818820}.Release|Any CPU.ActiveCfg = Release|x64 {F8B870EB-D5F5-45BA-9CF7-A5C459818820}.Release|x64.ActiveCfg = Release|x64 {F8B870EB-D5F5-45BA-9CF7-A5C459818820}.Release|x64.Build.0 = Release|x64 + {E364F67B-BB12-4E91-B639-355866EBCD8B}.Debug|Any CPU.ActiveCfg = Debug|x64 {E364F67B-BB12-4E91-B639-355866EBCD8B}.Debug|x64.ActiveCfg = Debug|x64 {E364F67B-BB12-4E91-B639-355866EBCD8B}.Debug|x64.Build.0 = Debug|x64 + {E364F67B-BB12-4E91-B639-355866EBCD8B}.Release|Any CPU.ActiveCfg = Release|x64 {E364F67B-BB12-4E91-B639-355866EBCD8B}.Release|x64.ActiveCfg = Release|x64 {E364F67B-BB12-4E91-B639-355866EBCD8B}.Release|x64.Build.0 = Release|x64 + {F97E5003-F263-4D4A-A964-0F1F3C82DEF2}.Debug|Any CPU.ActiveCfg = Debug|x64 {F97E5003-F263-4D4A-A964-0F1F3C82DEF2}.Debug|x64.ActiveCfg = Debug|x64 {F97E5003-F263-4D4A-A964-0F1F3C82DEF2}.Debug|x64.Build.0 = Debug|x64 + {F97E5003-F263-4D4A-A964-0F1F3C82DEF2}.Release|Any CPU.ActiveCfg = Release|x64 {F97E5003-F263-4D4A-A964-0F1F3C82DEF2}.Release|x64.ActiveCfg = Release|x64 {F97E5003-F263-4D4A-A964-0F1F3C82DEF2}.Release|x64.Build.0 = Release|x64 + {880ED251-9E16-4713-9A70-D35FE0C01669}.Debug|Any CPU.ActiveCfg = Debug|x64 {880ED251-9E16-4713-9A70-D35FE0C01669}.Debug|x64.ActiveCfg = Debug|x64 {880ED251-9E16-4713-9A70-D35FE0C01669}.Debug|x64.Build.0 = Debug|x64 + {880ED251-9E16-4713-9A70-D35FE0C01669}.Release|Any CPU.ActiveCfg = Release|x64 {880ED251-9E16-4713-9A70-D35FE0C01669}.Release|x64.ActiveCfg = Release|x64 {880ED251-9E16-4713-9A70-D35FE0C01669}.Release|x64.Build.0 = Release|x64 + {AF2349B8-E5B6-4004-9502-687C1C7730B1}.Debug|Any CPU.ActiveCfg = Debug|x64 {AF2349B8-E5B6-4004-9502-687C1C7730B1}.Debug|x64.ActiveCfg = Debug|x64 {AF2349B8-E5B6-4004-9502-687C1C7730B1}.Debug|x64.Build.0 = Debug|x64 + {AF2349B8-E5B6-4004-9502-687C1C7730B1}.Release|Any CPU.ActiveCfg = Release|x64 {AF2349B8-E5B6-4004-9502-687C1C7730B1}.Release|x64.ActiveCfg = Release|x64 {AF2349B8-E5B6-4004-9502-687C1C7730B1}.Release|x64.Build.0 = Release|x64 + {6A71162E-FC4C-4A2C-B90F-3CF94F59A9BB}.Debug|Any CPU.ActiveCfg = Debug|x64 {6A71162E-FC4C-4A2C-B90F-3CF94F59A9BB}.Debug|x64.ActiveCfg = Debug|x64 {6A71162E-FC4C-4A2C-B90F-3CF94F59A9BB}.Debug|x64.Build.0 = Debug|x64 + {6A71162E-FC4C-4A2C-B90F-3CF94F59A9BB}.Release|Any CPU.ActiveCfg = Release|x64 {6A71162E-FC4C-4A2C-B90F-3CF94F59A9BB}.Release|x64.ActiveCfg = Release|x64 {6A71162E-FC4C-4A2C-B90F-3CF94F59A9BB}.Release|x64.Build.0 = Release|x64 + {A2B51B8B-8F90-424E-BC97-F9AB7D76CA1A}.Debug|Any CPU.ActiveCfg = Debug|x64 {A2B51B8B-8F90-424E-BC97-F9AB7D76CA1A}.Debug|x64.ActiveCfg = Debug|x64 {A2B51B8B-8F90-424E-BC97-F9AB7D76CA1A}.Debug|x64.Build.0 = Debug|x64 + {A2B51B8B-8F90-424E-BC97-F9AB7D76CA1A}.Release|Any CPU.ActiveCfg = Release|x64 {A2B51B8B-8F90-424E-BC97-F9AB7D76CA1A}.Release|x64.ActiveCfg = Release|x64 {A2B51B8B-8F90-424E-BC97-F9AB7D76CA1A}.Release|x64.Build.0 = Release|x64 + {DA425894-6E13-404F-8DCB-78584EC0557A}.Debug|Any CPU.ActiveCfg = Debug|x64 {DA425894-6E13-404F-8DCB-78584EC0557A}.Debug|x64.ActiveCfg = Debug|x64 {DA425894-6E13-404F-8DCB-78584EC0557A}.Debug|x64.Build.0 = Debug|x64 + {DA425894-6E13-404F-8DCB-78584EC0557A}.Release|Any CPU.ActiveCfg = Release|x64 {DA425894-6E13-404F-8DCB-78584EC0557A}.Release|x64.ActiveCfg = Release|x64 {DA425894-6E13-404F-8DCB-78584EC0557A}.Release|x64.Build.0 = Release|x64 + {060D75DA-2D1C-48E6-A4A1-6F0718B64661}.Debug|Any CPU.ActiveCfg = Debug|x64 {060D75DA-2D1C-48E6-A4A1-6F0718B64661}.Debug|x64.ActiveCfg = Debug|x64 {060D75DA-2D1C-48E6-A4A1-6F0718B64661}.Debug|x64.Build.0 = Debug|x64 + {060D75DA-2D1C-48E6-A4A1-6F0718B64661}.Release|Any CPU.ActiveCfg = Release|x64 {060D75DA-2D1C-48E6-A4A1-6F0718B64661}.Release|x64.ActiveCfg = Release|x64 {060D75DA-2D1C-48E6-A4A1-6F0718B64661}.Release|x64.Build.0 = Release|x64 + {748417CA-F17E-487F-9411-CAFB6D3F4877}.Debug|Any CPU.ActiveCfg = Debug|x64 {748417CA-F17E-487F-9411-CAFB6D3F4877}.Debug|x64.ActiveCfg = Debug|x64 {748417CA-F17E-487F-9411-CAFB6D3F4877}.Debug|x64.Build.0 = Debug|x64 + {748417CA-F17E-487F-9411-CAFB6D3F4877}.Release|Any CPU.ActiveCfg = Release|x64 {748417CA-F17E-487F-9411-CAFB6D3F4877}.Release|x64.ActiveCfg = Release|x64 {748417CA-F17E-487F-9411-CAFB6D3F4877}.Release|x64.Build.0 = Release|x64 + {217DF501-135C-4E38-BFC8-99D4821032EA}.Debug|Any CPU.ActiveCfg = Debug|x64 {217DF501-135C-4E38-BFC8-99D4821032EA}.Debug|x64.ActiveCfg = Debug|x64 {217DF501-135C-4E38-BFC8-99D4821032EA}.Debug|x64.Build.0 = Debug|x64 + {217DF501-135C-4E38-BFC8-99D4821032EA}.Release|Any CPU.ActiveCfg = Release|x64 {217DF501-135C-4E38-BFC8-99D4821032EA}.Release|x64.ActiveCfg = Release|x64 {217DF501-135C-4E38-BFC8-99D4821032EA}.Release|x64.Build.0 = Release|x64 + {47310AB4-9034-4BD1-8D8B-E88AD21A171B}.Debug|Any CPU.ActiveCfg = Debug|Win32 {47310AB4-9034-4BD1-8D8B-E88AD21A171B}.Debug|x64.ActiveCfg = Debug|x64 {47310AB4-9034-4BD1-8D8B-E88AD21A171B}.Debug|x64.Build.0 = Debug|x64 + {47310AB4-9034-4BD1-8D8B-E88AD21A171B}.Release|Any CPU.ActiveCfg = Release|Win32 {47310AB4-9034-4BD1-8D8B-E88AD21A171B}.Release|x64.ActiveCfg = Release|x64 {47310AB4-9034-4BD1-8D8B-E88AD21A171B}.Release|x64.Build.0 = Release|x64 + {E4E0D2AE-B17D-4BD4-8BEE-AFC8CC464C5F}.Debug|Any CPU.ActiveCfg = Debug|x64 {E4E0D2AE-B17D-4BD4-8BEE-AFC8CC464C5F}.Debug|x64.ActiveCfg = Debug|x64 {E4E0D2AE-B17D-4BD4-8BEE-AFC8CC464C5F}.Debug|x64.Build.0 = Debug|x64 + {E4E0D2AE-B17D-4BD4-8BEE-AFC8CC464C5F}.Release|Any CPU.ActiveCfg = Release|x64 {E4E0D2AE-B17D-4BD4-8BEE-AFC8CC464C5F}.Release|x64.ActiveCfg = Release|x64 {E4E0D2AE-B17D-4BD4-8BEE-AFC8CC464C5F}.Release|x64.Build.0 = Release|x64 + {A7D5099E-F0FD-4BF3-8522-5A682759F915}.Debug|Any CPU.ActiveCfg = Debug|x64 {A7D5099E-F0FD-4BF3-8522-5A682759F915}.Debug|x64.ActiveCfg = Debug|x64 {A7D5099E-F0FD-4BF3-8522-5A682759F915}.Debug|x64.Build.0 = Debug|x64 + {A7D5099E-F0FD-4BF3-8522-5A682759F915}.Release|Any CPU.ActiveCfg = Release|x64 {A7D5099E-F0FD-4BF3-8522-5A682759F915}.Release|x64.ActiveCfg = Release|x64 {A7D5099E-F0FD-4BF3-8522-5A682759F915}.Release|x64.Build.0 = Release|x64 + {B1BCC8C6-46B5-4BFA-8F22-20F32D99EC6A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B1BCC8C6-46B5-4BFA-8F22-20F32D99EC6A}.Debug|Any CPU.Build.0 = Debug|Any CPU {B1BCC8C6-46B5-4BFA-8F22-20F32D99EC6A}.Debug|x64.ActiveCfg = Debug|x64 {B1BCC8C6-46B5-4BFA-8F22-20F32D99EC6A}.Debug|x64.Build.0 = Debug|x64 + {B1BCC8C6-46B5-4BFA-8F22-20F32D99EC6A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B1BCC8C6-46B5-4BFA-8F22-20F32D99EC6A}.Release|Any CPU.Build.0 = Release|Any CPU {B1BCC8C6-46B5-4BFA-8F22-20F32D99EC6A}.Release|x64.ActiveCfg = Release|x64 {B1BCC8C6-46B5-4BFA-8F22-20F32D99EC6A}.Release|x64.Build.0 = Release|x64 - {A80355C2-780D-4245-BD80-25B8DE698EE3}.Debug|x64.ActiveCfg = Debug|x64 - {A80355C2-780D-4245-BD80-25B8DE698EE3}.Debug|x64.Build.0 = Debug|x64 - {A80355C2-780D-4245-BD80-25B8DE698EE3}.Release|x64.ActiveCfg = Release|x64 - {A80355C2-780D-4245-BD80-25B8DE698EE3}.Release|x64.Build.0 = Release|x64 + {F055103B-F80B-4D0C-BF48-057C55620033}.Debug|Any CPU.ActiveCfg = Debug|x64 {F055103B-F80B-4D0C-BF48-057C55620033}.Debug|x64.ActiveCfg = Debug|x64 {F055103B-F80B-4D0C-BF48-057C55620033}.Debug|x64.Build.0 = Debug|x64 + {F055103B-F80B-4D0C-BF48-057C55620033}.Release|Any CPU.ActiveCfg = Release|x64 {F055103B-F80B-4D0C-BF48-057C55620033}.Release|x64.ActiveCfg = Release|x64 {F055103B-F80B-4D0C-BF48-057C55620033}.Release|x64.Build.0 = Release|x64 + {985B3F2F-CEED-4C0A-A249-69257E719145}.Debug|Any CPU.ActiveCfg = Debug|x64 {985B3F2F-CEED-4C0A-A249-69257E719145}.Debug|x64.ActiveCfg = Debug|x64 {985B3F2F-CEED-4C0A-A249-69257E719145}.Debug|x64.Build.0 = Debug|x64 + {985B3F2F-CEED-4C0A-A249-69257E719145}.Release|Any CPU.ActiveCfg = Release|x64 {985B3F2F-CEED-4C0A-A249-69257E719145}.Release|x64.ActiveCfg = Release|x64 {985B3F2F-CEED-4C0A-A249-69257E719145}.Release|x64.Build.0 = Release|x64 + {437AD818-3F1F-4CA5-A79B-25233A157026}.Debug|Any CPU.ActiveCfg = Debug|x64 {437AD818-3F1F-4CA5-A79B-25233A157026}.Debug|x64.ActiveCfg = Debug|x64 {437AD818-3F1F-4CA5-A79B-25233A157026}.Debug|x64.Build.0 = Debug|x64 + {437AD818-3F1F-4CA5-A79B-25233A157026}.Release|Any CPU.ActiveCfg = Release|x64 {437AD818-3F1F-4CA5-A79B-25233A157026}.Release|x64.ActiveCfg = Release|x64 {437AD818-3F1F-4CA5-A79B-25233A157026}.Release|x64.Build.0 = Release|x64 + {787B8AA6-CA93-4C84-96FE-DF31110AD1C4}.Debug|Any CPU.ActiveCfg = Debug|x64 {787B8AA6-CA93-4C84-96FE-DF31110AD1C4}.Debug|x64.ActiveCfg = Debug|x64 {787B8AA6-CA93-4C84-96FE-DF31110AD1C4}.Debug|x64.Build.0 = Debug|x64 + {787B8AA6-CA93-4C84-96FE-DF31110AD1C4}.Release|Any CPU.ActiveCfg = Release|x64 {787B8AA6-CA93-4C84-96FE-DF31110AD1C4}.Release|x64.ActiveCfg = Release|x64 {787B8AA6-CA93-4C84-96FE-DF31110AD1C4}.Release|x64.Build.0 = Release|x64 + {08C8C05F-0362-41BC-818C-724572DF8B06}.Debug|Any CPU.ActiveCfg = Debug|x64 {08C8C05F-0362-41BC-818C-724572DF8B06}.Debug|x64.ActiveCfg = Debug|x64 {08C8C05F-0362-41BC-818C-724572DF8B06}.Debug|x64.Build.0 = Debug|x64 + {08C8C05F-0362-41BC-818C-724572DF8B06}.Release|Any CPU.ActiveCfg = Release|x64 {08C8C05F-0362-41BC-818C-724572DF8B06}.Release|x64.ActiveCfg = Release|x64 {08C8C05F-0362-41BC-818C-724572DF8B06}.Release|x64.Build.0 = Release|x64 + {5D00D290-4016-4CFE-9E41-1E7C724509BA}.Debug|Any CPU.ActiveCfg = Debug|x64 {5D00D290-4016-4CFE-9E41-1E7C724509BA}.Debug|x64.ActiveCfg = Debug|x64 {5D00D290-4016-4CFE-9E41-1E7C724509BA}.Debug|x64.Build.0 = Debug|x64 + {5D00D290-4016-4CFE-9E41-1E7C724509BA}.Release|Any CPU.ActiveCfg = Release|x64 {5D00D290-4016-4CFE-9E41-1E7C724509BA}.Release|x64.ActiveCfg = Release|x64 {5D00D290-4016-4CFE-9E41-1E7C724509BA}.Release|x64.Build.0 = Release|x64 + {62173D9A-6724-4C00-A1C8-FB646480A9EC}.Debug|Any CPU.ActiveCfg = Debug|x64 {62173D9A-6724-4C00-A1C8-FB646480A9EC}.Debug|x64.ActiveCfg = Debug|x64 {62173D9A-6724-4C00-A1C8-FB646480A9EC}.Debug|x64.Build.0 = Debug|x64 + {62173D9A-6724-4C00-A1C8-FB646480A9EC}.Release|Any CPU.ActiveCfg = Release|x64 {62173D9A-6724-4C00-A1C8-FB646480A9EC}.Release|x64.ActiveCfg = Release|x64 {62173D9A-6724-4C00-A1C8-FB646480A9EC}.Release|x64.Build.0 = Release|x64 + {4AED67B6-55FD-486F-B917-E543DEE2CB3C}.Debug|Any CPU.ActiveCfg = Debug|x64 {4AED67B6-55FD-486F-B917-E543DEE2CB3C}.Debug|x64.ActiveCfg = Debug|x64 {4AED67B6-55FD-486F-B917-E543DEE2CB3C}.Debug|x64.Build.0 = Debug|x64 + {4AED67B6-55FD-486F-B917-E543DEE2CB3C}.Release|Any CPU.ActiveCfg = Release|x64 {4AED67B6-55FD-486F-B917-E543DEE2CB3C}.Release|x64.ActiveCfg = Release|x64 {4AED67B6-55FD-486F-B917-E543DEE2CB3C}.Release|x64.Build.0 = Release|x64 + {42851751-CBC8-45A6-97F5-7A0753F7B4D1}.Debug|Any CPU.ActiveCfg = Debug|x64 {42851751-CBC8-45A6-97F5-7A0753F7B4D1}.Debug|x64.ActiveCfg = Debug|x64 {42851751-CBC8-45A6-97F5-7A0753F7B4D1}.Debug|x64.Build.0 = Debug|x64 + {42851751-CBC8-45A6-97F5-7A0753F7B4D1}.Release|Any CPU.ActiveCfg = Release|x64 {42851751-CBC8-45A6-97F5-7A0753F7B4D1}.Release|x64.ActiveCfg = Release|x64 {42851751-CBC8-45A6-97F5-7A0753F7B4D1}.Release|x64.Build.0 = Release|x64 + {1EF1EEF0-10F0-4F2E-8550-39B6D8044D3E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1EF1EEF0-10F0-4F2E-8550-39B6D8044D3E}.Debug|Any CPU.Build.0 = Debug|Any CPU {1EF1EEF0-10F0-4F2E-8550-39B6D8044D3E}.Debug|x64.ActiveCfg = Debug|x64 {1EF1EEF0-10F0-4F2E-8550-39B6D8044D3E}.Debug|x64.Build.0 = Debug|x64 + {1EF1EEF0-10F0-4F2E-8550-39B6D8044D3E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1EF1EEF0-10F0-4F2E-8550-39B6D8044D3E}.Release|Any CPU.Build.0 = Release|Any CPU {1EF1EEF0-10F0-4F2E-8550-39B6D8044D3E}.Release|x64.ActiveCfg = Release|x64 {1EF1EEF0-10F0-4F2E-8550-39B6D8044D3E}.Release|x64.Build.0 = Release|x64 + {8FFE09DA-FA4F-4EE1-B3A2-AD5497FBD1AD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8FFE09DA-FA4F-4EE1-B3A2-AD5497FBD1AD}.Debug|Any CPU.Build.0 = Debug|Any CPU {8FFE09DA-FA4F-4EE1-B3A2-AD5497FBD1AD}.Debug|x64.ActiveCfg = Debug|x64 {8FFE09DA-FA4F-4EE1-B3A2-AD5497FBD1AD}.Debug|x64.Build.0 = Debug|x64 + {8FFE09DA-FA4F-4EE1-B3A2-AD5497FBD1AD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8FFE09DA-FA4F-4EE1-B3A2-AD5497FBD1AD}.Release|Any CPU.Build.0 = Release|Any CPU {8FFE09DA-FA4F-4EE1-B3A2-AD5497FBD1AD}.Release|x64.ActiveCfg = Release|x64 {8FFE09DA-FA4F-4EE1-B3A2-AD5497FBD1AD}.Release|x64.Build.0 = Release|x64 + {655C9AF2-18D3-4DA6-80E4-85504A7722BA}.Debug|Any CPU.ActiveCfg = Debug|x64 {655C9AF2-18D3-4DA6-80E4-85504A7722BA}.Debug|x64.ActiveCfg = Debug|x64 {655C9AF2-18D3-4DA6-80E4-85504A7722BA}.Debug|x64.Build.0 = Debug|x64 + {655C9AF2-18D3-4DA6-80E4-85504A7722BA}.Release|Any CPU.ActiveCfg = Release|x64 {655C9AF2-18D3-4DA6-80E4-85504A7722BA}.Release|x64.ActiveCfg = Release|x64 {655C9AF2-18D3-4DA6-80E4-85504A7722BA}.Release|x64.Build.0 = Release|x64 + {BA58206B-1493-4C75-BFEA-A85768A1E156}.Debug|Any CPU.ActiveCfg = Debug|x64 {BA58206B-1493-4C75-BFEA-A85768A1E156}.Debug|x64.ActiveCfg = Debug|x64 {BA58206B-1493-4C75-BFEA-A85768A1E156}.Debug|x64.Build.0 = Debug|x64 + {BA58206B-1493-4C75-BFEA-A85768A1E156}.Release|Any CPU.ActiveCfg = Release|x64 {BA58206B-1493-4C75-BFEA-A85768A1E156}.Release|x64.ActiveCfg = Release|x64 {BA58206B-1493-4C75-BFEA-A85768A1E156}.Release|x64.Build.0 = Release|x64 + {03276A39-D4E9-417C-8FFD-200B0EE5E871}.Debug|Any CPU.ActiveCfg = Debug|x64 {03276A39-D4E9-417C-8FFD-200B0EE5E871}.Debug|x64.ActiveCfg = Debug|x64 {03276A39-D4E9-417C-8FFD-200B0EE5E871}.Debug|x64.Build.0 = Debug|x64 + {03276A39-D4E9-417C-8FFD-200B0EE5E871}.Release|Any CPU.ActiveCfg = Release|x64 {03276A39-D4E9-417C-8FFD-200B0EE5E871}.Release|x64.ActiveCfg = Release|x64 {03276A39-D4E9-417C-8FFD-200B0EE5E871}.Release|x64.Build.0 = Release|x64 + {B81FB7B6-D30E-428F-908A-41422EFC1172}.Debug|Any CPU.ActiveCfg = Debug|x64 {B81FB7B6-D30E-428F-908A-41422EFC1172}.Debug|x64.ActiveCfg = Debug|x64 {B81FB7B6-D30E-428F-908A-41422EFC1172}.Debug|x64.Build.0 = Debug|x64 + {B81FB7B6-D30E-428F-908A-41422EFC1172}.Release|Any CPU.ActiveCfg = Release|x64 {B81FB7B6-D30E-428F-908A-41422EFC1172}.Release|x64.ActiveCfg = Release|x64 {B81FB7B6-D30E-428F-908A-41422EFC1172}.Release|x64.Build.0 = Release|x64 + {0F85E674-34AE-443D-954C-8321EB8B93B1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0F85E674-34AE-443D-954C-8321EB8B93B1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0F85E674-34AE-443D-954C-8321EB8B93B1}.Debug|x64.ActiveCfg = Debug|x64 + {0F85E674-34AE-443D-954C-8321EB8B93B1}.Debug|x64.Build.0 = Debug|x64 + {0F85E674-34AE-443D-954C-8321EB8B93B1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0F85E674-34AE-443D-954C-8321EB8B93B1}.Release|Any CPU.Build.0 = Release|Any CPU + {0F85E674-34AE-443D-954C-8321EB8B93B1}.Release|x64.ActiveCfg = Release|x64 + {0F85E674-34AE-443D-954C-8321EB8B93B1}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -593,7 +733,6 @@ Global {E4E0D2AE-B17D-4BD4-8BEE-AFC8CC464C5F} = {C3081D9A-1586-441A-B5F4-ED815B3719C1} {A7D5099E-F0FD-4BF3-8522-5A682759F915} = {C3081D9A-1586-441A-B5F4-ED815B3719C1} {B1BCC8C6-46B5-4BFA-8F22-20F32D99EC6A} = {C3081D9A-1586-441A-B5F4-ED815B3719C1} - {A80355C2-780D-4245-BD80-25B8DE698EE3} = {C3081D9A-1586-441A-B5F4-ED815B3719C1} {F055103B-F80B-4D0C-BF48-057C55620033} = {1AFB6476-670D-4E80-A464-657E01DFF482} {985B3F2F-CEED-4C0A-A249-69257E719145} = {1AFB6476-670D-4E80-A464-657E01DFF482} {437AD818-3F1F-4CA5-A79B-25233A157026} = {1AFB6476-670D-4E80-A464-657E01DFF482} @@ -610,6 +749,7 @@ Global {1D78B84B-CA39-406C-98F4-71F7EC266CC0} = {4574FDD0-F61D-4376-98BF-E5A1262C11EC} {03276A39-D4E9-417C-8FFD-200B0EE5E871} = {4AFC9975-2456-4C70-94A4-84073C1CED93} {B81FB7B6-D30E-428F-908A-41422EFC1172} = {4AFC9975-2456-4C70-94A4-84073C1CED93} + {0F85E674-34AE-443D-954C-8321EB8B93B1} = {C3081D9A-1586-441A-B5F4-ED815B3719C1} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {C3A2F9D1-7930-4EF4-A6FC-7EE0A99821D0} diff --git a/src/core/Microsoft.PowerToys.Settings.UI.UnitTests/General.cs b/src/core/Microsoft.PowerToys.Settings.UI.UnitTests/General.cs new file mode 100644 index 0000000000..0d125e4d91 --- /dev/null +++ b/src/core/Microsoft.PowerToys.Settings.UI.UnitTests/General.cs @@ -0,0 +1,32 @@ +// Copyright (c) Microsoft Corporation +// The Microsoft Corporation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System; +using System.IO; +using System.Text.Json; +using Microsoft.PowerToys.Settings.UI.Lib; +using Microsoft.VisualStudio.TestTools.UnitTesting; + +namespace ViewModelTests +{ + [TestClass] + public class SampleTest + { + [TestInitialize] + public void Setup() + { + } + + [TestCleanup] + public void CleanUp() + { + } + + [TestMethod] + public void SampleTest_For_Settings() + { + + } + } +} diff --git a/src/core/Microsoft.PowerToys.Settings.UI.UnitTests/Microsoft.PowerToys.Settings.UI.UnitTests.csproj b/src/core/Microsoft.PowerToys.Settings.UI.UnitTests/Microsoft.PowerToys.Settings.UI.UnitTests.csproj new file mode 100644 index 0000000000..b8c6488b03 --- /dev/null +++ b/src/core/Microsoft.PowerToys.Settings.UI.UnitTests/Microsoft.PowerToys.Settings.UI.UnitTests.csproj @@ -0,0 +1,30 @@ + + + + netcoreapp3.1 + + false + + AnyCPU;x64 + + + + ..\..\..\x64\Debug\SettingsTests\ + + + + ..\..\..\x64\Release\SettingsTest\ + + + + + + + + + + + + + + diff --git a/src/core/Microsoft.PowerToys.Settings.UnitTest/Assets/LockScreenLogo.scale-200.png b/src/core/Microsoft.PowerToys.Settings.UnitTest/Assets/LockScreenLogo.scale-200.png deleted file mode 100644 index 735f57adb5..0000000000 Binary files a/src/core/Microsoft.PowerToys.Settings.UnitTest/Assets/LockScreenLogo.scale-200.png and /dev/null differ diff --git a/src/core/Microsoft.PowerToys.Settings.UnitTest/Assets/SplashScreen.scale-200.png b/src/core/Microsoft.PowerToys.Settings.UnitTest/Assets/SplashScreen.scale-200.png deleted file mode 100644 index 023e7f1fed..0000000000 Binary files a/src/core/Microsoft.PowerToys.Settings.UnitTest/Assets/SplashScreen.scale-200.png and /dev/null differ diff --git a/src/core/Microsoft.PowerToys.Settings.UnitTest/Assets/Square150x150Logo.scale-200.png b/src/core/Microsoft.PowerToys.Settings.UnitTest/Assets/Square150x150Logo.scale-200.png deleted file mode 100644 index af49fec1a5..0000000000 Binary files a/src/core/Microsoft.PowerToys.Settings.UnitTest/Assets/Square150x150Logo.scale-200.png and /dev/null differ diff --git a/src/core/Microsoft.PowerToys.Settings.UnitTest/Assets/Square44x44Logo.scale-200.png b/src/core/Microsoft.PowerToys.Settings.UnitTest/Assets/Square44x44Logo.scale-200.png deleted file mode 100644 index ce342a2ec8..0000000000 Binary files a/src/core/Microsoft.PowerToys.Settings.UnitTest/Assets/Square44x44Logo.scale-200.png and /dev/null differ diff --git a/src/core/Microsoft.PowerToys.Settings.UnitTest/Assets/Square44x44Logo.targetsize-24_altform-unplated.png b/src/core/Microsoft.PowerToys.Settings.UnitTest/Assets/Square44x44Logo.targetsize-24_altform-unplated.png deleted file mode 100644 index f6c02ce97e..0000000000 Binary files a/src/core/Microsoft.PowerToys.Settings.UnitTest/Assets/Square44x44Logo.targetsize-24_altform-unplated.png and /dev/null differ diff --git a/src/core/Microsoft.PowerToys.Settings.UnitTest/Assets/StoreLogo.png b/src/core/Microsoft.PowerToys.Settings.UnitTest/Assets/StoreLogo.png deleted file mode 100644 index 7385b56c0e..0000000000 Binary files a/src/core/Microsoft.PowerToys.Settings.UnitTest/Assets/StoreLogo.png and /dev/null differ diff --git a/src/core/Microsoft.PowerToys.Settings.UnitTest/Assets/Wide310x150Logo.scale-200.png b/src/core/Microsoft.PowerToys.Settings.UnitTest/Assets/Wide310x150Logo.scale-200.png deleted file mode 100644 index 288995b397..0000000000 Binary files a/src/core/Microsoft.PowerToys.Settings.UnitTest/Assets/Wide310x150Logo.scale-200.png and /dev/null differ diff --git a/src/core/Microsoft.PowerToys.Settings.UnitTest/Microsoft.PowerToys.Settings.UnitTest.csproj b/src/core/Microsoft.PowerToys.Settings.UnitTest/Microsoft.PowerToys.Settings.UnitTest.csproj deleted file mode 100644 index 72c8505267..0000000000 --- a/src/core/Microsoft.PowerToys.Settings.UnitTest/Microsoft.PowerToys.Settings.UnitTest.csproj +++ /dev/null @@ -1,253 +0,0 @@ - - - - - - - Microsoft.PowerToys.Settings.UnitTest - PowerToys Settings UnitTest - Microsoft Corp. - Copyright (C) 2020 Microsoft Corp. - PowerToys - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Debug - x86 - {A80355C2-780D-4245-BD80-25B8DE698EE3} - AppContainerExe - Properties - Microsoft.PowerToys.Settings.UnitTest - Microsoft.PowerToys.Settings.UnitTest - en-US - UAP - 10.0.18362.0 - 10.0.18362.0 - 14 - 512 - {A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - $(VisualStudioVersion) - false - - - true - bin\x86\Debug\ - DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP - ;2008 - full - x86 - false - prompt - true - - - bin\x86\Release\ - TRACE;NETFX_CORE;WINDOWS_UWP - true - ;2008 - pdbonly - x86 - false - prompt - true - true - - - true - bin\ARM\Debug\ - DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP - ;2008 - full - ARM - false - prompt - true - - - bin\ARM\Release\ - TRACE;NETFX_CORE;WINDOWS_UWP - true - ;2008 - pdbonly - ARM - false - prompt - true - true - - - true - bin\ARM64\Debug\ - DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP - ;2008 - full - ARM64 - false - prompt - true - true - - - bin\ARM64\Release\ - TRACE;NETFX_CORE;WINDOWS_UWP - true - ;2008 - pdbonly - ARM64 - false - prompt - true - true - - - true - bin\x64\Debug\Test\ - DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP - ;2008 - full - x64 - false - prompt - true - - - bin\x64\Release\ - TRACE;NETFX_CORE;WINDOWS_UWP - true - ;2008 - pdbonly - x64 - false - prompt - true - false - - - PackageReference - - - - - - - Code - - - - - - - - - - - UnitTestApp.xaml - - - - - - - - - - MSBuild:Compile - Designer - - - - - Designer - - - - - - - - - - - - - - 6.2.10 - - - 2.1.2 - - - 2.1.2 - - - 16.6.1 - - - - - GlobalSuppressions.cs - - - StyleCop.json - - - - - 1.1.118 - runtime; build; native; contentfiles; analyzers; buildtransitive - all - - - - - {5d00d290-4016-4cfe-9e41-1e7c724509ba} - Telemetry - - - {b1bcc8c6-46b5-4bfa-8f22-20f32d99ec6a} - Microsoft.PowerToys.Settings.UI.Lib - - - {a7d5099e-f0fd-4bf3-8522-5a682759f915} - Microsoft.PowerToys.Settings.UI - - - - 14.0 - - - - \ No newline at end of file diff --git a/src/core/Microsoft.PowerToys.Settings.UnitTest/ModelsTests/BasePTModuleSettingsTest.cs b/src/core/Microsoft.PowerToys.Settings.UnitTest/ModelsTests/BasePTModuleSettingsTest.cs deleted file mode 100644 index 84bba538c8..0000000000 --- a/src/core/Microsoft.PowerToys.Settings.UnitTest/ModelsTests/BasePTModuleSettingsTest.cs +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright (c) Microsoft Corporation -// The Microsoft Corporation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System; -using Microsoft.PowerToys.Settings.UI.Lib; -using Microsoft.PowerToys.Settings.UnitTest; -using Microsoft.VisualStudio.TestTools.UnitTesting; -using Newtonsoft.Json.Linq; -using Newtonsoft.Json.Schema; - -namespace CommonLibTest -{ - [TestClass] - public class BasePTModuleSettingsTest - { - // Work around for System.JSON required properties: - // https://docs.microsoft.com/en-us/dotnet/standard/serialization/system-text-json-migrate-from-newtonsoft-how-to. - // Test also fails when the attributes are not initialized i.e they have null values. - [TestMethod] - [Obsolete] - public void ToJsonString_ShouldReturnValidJSONOfModel_WhenSuccessful() - { - // Arrange - string file_name = "test\\BasePTModuleSettingsTest"; - string expectedSchemaText = @" - { - '$schema': 'http://json-schema.org/draft-04/schema#', - 'type': 'object', - 'properties': { - 'name': { - 'type': 'string' - }, - 'version': { - 'type': 'string' - } - }, - 'additionalProperties': false - }"; - - string testSettingsConfigs = new BasePTSettingsTest().ToJsonString(); - SettingsUtils.SaveSettings(testSettingsConfigs, file_name); - JsonSchema expectedSchema = JsonSchema.Parse(expectedSchemaText); - - // Act - JObject actualSchema = JObject.Parse(SettingsUtils.GetSettings(file_name).ToJsonString()); - bool valid = actualSchema.IsValid(expectedSchema); - - // Assert - Assert.IsTrue(valid); - } - } -} diff --git a/src/core/Microsoft.PowerToys.Settings.UnitTest/ModelsTests/BasePTSettingsTest.cs b/src/core/Microsoft.PowerToys.Settings.UnitTest/ModelsTests/BasePTSettingsTest.cs deleted file mode 100644 index 2bec4be724..0000000000 --- a/src/core/Microsoft.PowerToys.Settings.UnitTest/ModelsTests/BasePTSettingsTest.cs +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright (c) Microsoft Corporation -// The Microsoft Corporation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using Microsoft.PowerToys.Settings.UI.Lib; - -namespace Microsoft.PowerToys.Settings.UnitTest -{ - public class BasePTSettingsTest : BasePTModuleSettings - { - public BasePTSettingsTest() - { - Name = string.Empty; - Version = string.Empty; - } - } -} diff --git a/src/core/Microsoft.PowerToys.Settings.UnitTest/ModelsTests/HelperTest.cs b/src/core/Microsoft.PowerToys.Settings.UnitTest/ModelsTests/HelperTest.cs deleted file mode 100644 index 7e4306e087..0000000000 --- a/src/core/Microsoft.PowerToys.Settings.UnitTest/ModelsTests/HelperTest.cs +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright (c) Microsoft Corporation -// The Microsoft Corporation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System; -using Microsoft.PowerToys.Settings.UI.Lib.Utilities; -using Microsoft.VisualStudio.TestTools.UnitTesting; - -namespace CommonLibTest -{ - [TestClass] - public class HelperTest - { - public static void TestStringIsSmaller(string v1, string v2) - { - var res = Helper.CompareVersions(v1, v2); - Assert.IsTrue(res < 0); - } - - public static void TestStringsAreEqual(string v1, string v2) - { - var res = Helper.CompareVersions(v1, v2); - Assert.IsTrue(res == 0); - } - - [TestMethod] - public void Helper_CompareVersions_ShouldBeEqual_WhenSuccessful() - { - TestStringsAreEqual("v0.0.0", "v0.0.0"); - TestStringsAreEqual("v0.1.1", "v0.1.1"); - TestStringsAreEqual("v1.1.1", "v1.1.1"); - TestStringsAreEqual("v1.999.99", "v1.999.99"); - } - - [TestMethod] - public void Helper_CompareVersions_ShouldBeSmaller_WhenSuccessful() - { - TestStringIsSmaller("v0.0.0", "v0.0.1"); - TestStringIsSmaller("v0.0.0", "v0.1.0"); - TestStringIsSmaller("v0.0.0", "v1.0.0"); - TestStringIsSmaller("v1.0.1", "v1.0.2"); - TestStringIsSmaller("v1.1.1", "v1.1.2"); - TestStringIsSmaller("v1.1.1", "v1.2.0"); - TestStringIsSmaller("v1.999.99", "v2.0.0"); - TestStringIsSmaller("v1.0.99", "v1.2.0"); - } - - [TestMethod] - [ExpectedException(typeof(FormatException))] - public void Helper_CompareVersions_ShouldThrowBadFormat_WhenNoVersionString() - { - Helper.CompareVersions("v0.0.1", string.Empty); - } - - [TestMethod] - [ExpectedException(typeof(FormatException))] - public void Helper_CompareVersions_ShouldThrowBadFormat_WhenShortVersionString() - { - Helper.CompareVersions("v0.0.1", "v0.1"); - } - - [TestMethod] - [ExpectedException(typeof(FormatException))] - public void Helper_CompareVersions_ShouldThrowBadFormat_WhenLongVersionString() - { - Helper.CompareVersions("v0.0.1", "v0.0.0.1"); - } - - [TestMethod] - [ExpectedException(typeof(FormatException))] - public void Helper_CompareVersions_ShouldThrowBadFormat_WhenItIsNotAVersionString() - { - Helper.CompareVersions("v0.0.1", "HelloWorld"); - } - } -} diff --git a/src/core/Microsoft.PowerToys.Settings.UnitTest/ModelsTests/SettingsUtilsTests.cs b/src/core/Microsoft.PowerToys.Settings.UnitTest/ModelsTests/SettingsUtilsTests.cs deleted file mode 100644 index dcb83fcba8..0000000000 --- a/src/core/Microsoft.PowerToys.Settings.UnitTest/ModelsTests/SettingsUtilsTests.cs +++ /dev/null @@ -1,123 +0,0 @@ -// Copyright (c) Microsoft Corporation -// The Microsoft Corporation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System; -using System.IO; -using System.Linq; -using System.Text.Json; -using Microsoft.PowerToys.Settings.UI.Lib; -using Microsoft.PowerToys.Settings.UnitTest; -using Microsoft.VisualStudio.TestTools.UnitTesting; - -namespace CommonLibTest -{ - [TestClass] - public class SettingsUtilsTests - { - public SettingsUtilsTests() - { - string file_name = "\\test"; - if (SettingsUtils.SettingsFolderExists(file_name)) - { - DeleteFolder(file_name); - } - } - - [TestCleanup] - public void Cleanup() - { - string file_name = "\\test"; - if (SettingsUtils.SettingsFolderExists(file_name)) - { - DeleteFolder(file_name); - } - } - - [TestMethod] - public void SaveSettings_SaveSettingsToFile_WhenFilePathExists() - { - // Arrange - string file_name = "\\test"; - string file_contents_correct_json_content = "{\"name\":\"powertoy module name\",\"version\":\"powertoy version\"}"; - - BasePTSettingsTest expected_json = JsonSerializer.Deserialize(file_contents_correct_json_content); - - // Act - SettingsUtils.SaveSettings(file_contents_correct_json_content, file_name); - BasePTSettingsTest actual_json = SettingsUtils.GetSettings(file_name); - - // Assert - Assert.IsTrue(actual_json.Equals(actual_json)); - } - - [TestMethod] - public void SaveSettings_ShouldCreateFile_WhenFilePathIsNotFound() - { - // Arrange - string file_name = "test\\Test Folder"; - string file_contents_correct_json_content = "{\"name\":\"powertoy module name\",\"version\":\"powertoy version\"}"; - - BasePTSettingsTest expected_json = JsonSerializer.Deserialize(file_contents_correct_json_content); - - // Act - if (SettingsUtils.SettingsFolderExists(file_name)) - { - DeleteFolder(file_name); - } - - SettingsUtils.SaveSettings(file_contents_correct_json_content, file_name); - BasePTSettingsTest actual_json = SettingsUtils.GetSettings(file_name); - - // Assert - Assert.IsTrue(actual_json.Equals(actual_json)); - } - - [TestMethod] - public void SettingsFolderExists_ShouldReturnFalse_WhenFilePathIsNotFound() - { - // Arrange - string file_name_random = "test\\" + RandomString(); - string file_name_exists = "test\\exists"; - string file_contents_correct_json_content = "{\"name\":\"powertoy module name\",\"version\":\"powertoy version\"}"; - - // Act - bool pathNotFound = SettingsUtils.SettingsFolderExists(file_name_random); - - SettingsUtils.SaveSettings(file_contents_correct_json_content, file_name_exists); - bool pathFound = SettingsUtils.SettingsFolderExists(file_name_exists); - - // Assert - Assert.IsFalse(pathNotFound); - Assert.IsTrue(pathFound); - } - - [TestMethod] - public void CreateSettingsFolder_ShouldCreateFolder_WhenSuccessful() - { - // Arrange - string file_name = "test\\" + RandomString(); - - // Act - SettingsUtils.CreateSettingsFolder(file_name); - - // Assert - Assert.IsTrue(SettingsUtils.SettingsFolderExists(file_name)); - } - - public void DeleteFolder(string powertoy) - { - Directory.Delete(Path.Combine(SettingsUtils.LocalApplicationDataFolder(), $"Microsoft\\PowerToys\\{powertoy}"), true); - } - - public static string RandomString() - { - Random random = new Random(); - int length = 20; - const string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; - - return new string(Enumerable.Repeat(chars, length) - .Select(s => s[random.Next(s.Length)]).ToArray()); - } - } -} diff --git a/src/core/Microsoft.PowerToys.Settings.UnitTest/Package.appxmanifest b/src/core/Microsoft.PowerToys.Settings.UnitTest/Package.appxmanifest deleted file mode 100644 index cc8fe316af..0000000000 --- a/src/core/Microsoft.PowerToys.Settings.UnitTest/Package.appxmanifest +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - Microsoft.PowerToys.Settings.UnitTest - lamotile - Assets\StoreLogo.png - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/core/Microsoft.PowerToys.Settings.UnitTest/UnitTestApp.xaml b/src/core/Microsoft.PowerToys.Settings.UnitTest/UnitTestApp.xaml deleted file mode 100644 index 50ff71f962..0000000000 --- a/src/core/Microsoft.PowerToys.Settings.UnitTest/UnitTestApp.xaml +++ /dev/null @@ -1,7 +0,0 @@ - - - diff --git a/src/core/Microsoft.PowerToys.Settings.UnitTest/UnitTestApp.xaml.cs b/src/core/Microsoft.PowerToys.Settings.UnitTest/UnitTestApp.xaml.cs deleted file mode 100644 index c7c710a438..0000000000 --- a/src/core/Microsoft.PowerToys.Settings.UnitTest/UnitTestApp.xaml.cs +++ /dev/null @@ -1,97 +0,0 @@ -// Copyright (c) Microsoft Corporation -// The Microsoft Corporation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System; -using Windows.ApplicationModel; -using Windows.ApplicationModel.Activation; -using Windows.UI.Xaml; -using Windows.UI.Xaml.Controls; -using Windows.UI.Xaml.Navigation; - -namespace Microsoft.PowerToys.Settings.UnitTest -{ - /// - /// Provides application-specific behavior to supplement the default Application class. - /// - public sealed partial class App : Application - { - /// - /// Initializes a new instance of the class. - /// This is the first line of authored code - /// executed, and as such is the logical equivalent of main() or WinMain(). - /// - public App() - { - InitializeComponent(); - Suspending += OnSuspending; - } - - /// - /// Invoked when the application is launched normally by the end user. Other entry points - /// will be used such as when the application is launched to open a specific file. - /// - /// Details about the launch request and process. - protected override void OnLaunched(LaunchActivatedEventArgs e) - { -#if DEBUG - if (System.Diagnostics.Debugger.IsAttached) - { - DebugSettings.EnableFrameRateCounter = true; - } -#endif - - Frame rootFrame = Window.Current.Content as Frame; - - // Do not repeat app initialization when the Window already has content, - // just ensure that the window is active - if (rootFrame == null) - { - // Create a Frame to act as the navigation context and navigate to the first page - rootFrame = new Frame(); - - rootFrame.NavigationFailed += OnNavigationFailed; - - if (e.PreviousExecutionState == ApplicationExecutionState.Terminated) - { - // TODO: Load state from previously suspended application - } - - // Place the frame in the current Window - Window.Current.Content = rootFrame; - } - - Microsoft.VisualStudio.TestPlatform.TestExecutor.UnitTestClient.CreateDefaultUI(); - - // Ensure the current window is active - Window.Current.Activate(); - - Microsoft.VisualStudio.TestPlatform.TestExecutor.UnitTestClient.Run(e.Arguments); - } - - /// - /// Invoked when Navigation to a certain page fails - /// - /// The Frame which failed navigation - /// Details about the navigation failure - private void OnNavigationFailed(object sender, NavigationFailedEventArgs e) - { - throw new Exception("Failed to load Page " + e.SourcePageType.FullName); - } - - /// - /// Invoked when application execution is being suspended. Application state is saved - /// without knowing whether the application will be terminated or resumed with the contents - /// of memory still intact. - /// - /// The source of the suspend request. - /// Details about the suspend request. - private void OnSuspending(object sender, SuspendingEventArgs e) - { - var deferral = e.SuspendingOperation.GetDeferral(); - - // TODO: Save application state and stop any background activity - deferral.Complete(); - } - } -} diff --git a/src/core/Microsoft.PowerToys.Settings.UnitTest/ViewModelTests/ColorPicker.cs b/src/core/Microsoft.PowerToys.Settings.UnitTest/ViewModelTests/ColorPicker.cs deleted file mode 100644 index d129d86590..0000000000 --- a/src/core/Microsoft.PowerToys.Settings.UnitTest/ViewModelTests/ColorPicker.cs +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright (c) Microsoft Corporation -// The Microsoft Corporation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System.IO; -using System.Text.Json; -using Microsoft.PowerToys.Settings.UI.Lib; -using Microsoft.PowerToys.Settings.UI.ViewModels; -using Microsoft.PowerToys.Settings.UI.Views; -using Microsoft.VisualStudio.TestTools.UnitTesting; - -namespace ViewModelTests -{ - [TestClass] - public class ColorPicker - { - private const string ModuleName = "ColorPicker"; - - [TestInitialize] - public void Setup() - { - var generalSettings = new GeneralSettings(); - var colorPickerSettings = new ColorPickerSettings(); - - SettingsUtils.SaveSettings(generalSettings.ToJsonString()); - SettingsUtils.SaveSettings(colorPickerSettings.ToJsonString(), colorPickerSettings.Name, ModuleName + ".json"); - } - - [TestCleanup] - public void CleanUp() - { - string generalSettings_file_name = string.Empty; - if (SettingsUtils.SettingsFolderExists(generalSettings_file_name)) - { - DeleteFolder(generalSettings_file_name); - } - - if (SettingsUtils.SettingsFolderExists(ModuleName)) - { - DeleteFolder(ModuleName); - } - - ShellPage.DefaultSndMSGCallback = null; - } - - [TestMethod] - public void ColorPickerIsEnabledByDefault() - { - var viewModel = new ColorPickerViewModel(); - - ShellPage.DefaultSndMSGCallback = msg => - { - OutGoingGeneralSettings snd = JsonSerializer.Deserialize(msg); - Assert.IsTrue(snd.GeneralSettings.Enabled.ColorPicker); - }; - - Assert.IsTrue(viewModel.IsEnabled); - } - - private static void DeleteFolder(string powertoy) - { - Directory.Delete(Path.Combine(SettingsUtils.LocalApplicationDataFolder(), $"Microsoft\\PowerToys\\{powertoy}"), true); - } - } -} diff --git a/src/core/Microsoft.PowerToys.Settings.UnitTest/ViewModelTests/FancyZones.cs b/src/core/Microsoft.PowerToys.Settings.UnitTest/ViewModelTests/FancyZones.cs deleted file mode 100644 index 77c99014af..0000000000 --- a/src/core/Microsoft.PowerToys.Settings.UnitTest/ViewModelTests/FancyZones.cs +++ /dev/null @@ -1,382 +0,0 @@ -// Copyright (c) Microsoft Corporation -// The Microsoft Corporation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System.IO; -using System.Text.Json; -using Microsoft.PowerToys.Settings.UI.Lib; -using Microsoft.PowerToys.Settings.UI.ViewModels; -using Microsoft.PowerToys.Settings.UI.Views; -using Microsoft.VisualStudio.TestTools.UnitTesting; -using Windows.UI; - -namespace ViewModelTests -{ - [TestClass] - public class FancyZones - { - public const string ModuleName = "FancyZones"; - - [TestInitialize] - public void Setup() - { - // initialize creation of test settings file. - GeneralSettings generalSettings = new GeneralSettings(); - FZConfigProperties fZConfigProperties = new FZConfigProperties(); - - SettingsUtils.SaveSettings(generalSettings.ToJsonString()); - SettingsUtils.SaveSettings(fZConfigProperties.ToJsonString(), ModuleName); - } - - [TestCleanup] - public void CleanUp() - { - // delete folder created. - string generalSettings_file_name = string.Empty; - if (SettingsUtils.SettingsFolderExists(generalSettings_file_name)) - { - DeleteFolder(generalSettings_file_name); - } - - if (SettingsUtils.SettingsFolderExists(ModuleName)) - { - DeleteFolder(ModuleName); - } - - ShellPage.DefaultSndMSGCallback = null; - } - - public void DeleteFolder(string powertoy) - { - Directory.Delete(Path.Combine(SettingsUtils.LocalApplicationDataFolder(), $"Microsoft\\PowerToys\\{powertoy}"), true); - } - - [TestMethod] - public void IsEnabled_ShouldDisableModule_WhenSuccessful() - { - // arrange - FancyZonesViewModel viewModel = new FancyZonesViewModel(); - Assert.IsTrue(viewModel.IsEnabled); // check if the module is enabled. - - // Assert - ShellPage.DefaultSndMSGCallback = msg => - { - OutGoingGeneralSettings snd = JsonSerializer.Deserialize(msg); - Assert.IsFalse(snd.GeneralSettings.Enabled.FancyZones); - }; - - // act - viewModel.IsEnabled = false; - } - - [TestMethod] - public void ShiftDrag_ShouldSetValue2False_WhenSuccessful() - { - // arrange - FancyZonesViewModel viewModel = new FancyZonesViewModel(); - Assert.IsTrue(viewModel.ShiftDrag); // check if value was initialized to false. - - // Assert - ShellPage.DefaultSndMSGCallback = msg => - { - FancyZonesSettingsIPCMessage snd = JsonSerializer.Deserialize(msg); - Assert.IsFalse(snd.Powertoys.FancyZones.Properties.FancyzonesShiftDrag.Value); - }; - - // act - viewModel.ShiftDrag = false; - } - - [TestMethod] - public void OverrideSnapHotkeys_ShouldSetValue2True_WhenSuccessful() - { - // arrange - FancyZonesViewModel viewModel = new FancyZonesViewModel(); - Assert.IsFalse(viewModel.OverrideSnapHotkeys); // check if value was initialized to false. - - // Assert - ShellPage.DefaultSndMSGCallback = msg => - { - FancyZonesSettingsIPCMessage snd = JsonSerializer.Deserialize(msg); - Assert.IsTrue(snd.Powertoys.FancyZones.Properties.FancyzonesOverrideSnapHotkeys.Value); - }; - - // act - viewModel.OverrideSnapHotkeys = true; - } - - [TestMethod] - public void ZoneSetChangeFlashZones_ShouldSetValue2False_WhenSuccessful() - { - // arrange - FancyZonesViewModel viewModel = new FancyZonesViewModel(); - Assert.IsFalse(viewModel.MakeDraggedWindowsTransparent); // check if value was initialized to false. - - // Assert - ShellPage.DefaultSndMSGCallback = msg => - { - FancyZonesSettingsIPCMessage snd = JsonSerializer.Deserialize(msg); - Assert.IsTrue(snd.Powertoys.FancyZones.Properties.FancyzonesMakeDraggedWindowTransparent.Value); - }; - - // act - viewModel.MakeDraggedWindowsTransparent = true; - } - - [TestMethod] - public void MouseSwitch_ShouldSetValue2True_WhenSuccessful() - { - // arrange - FancyZonesViewModel viewModel = new FancyZonesViewModel(); - Assert.IsFalse(viewModel.MouseSwitch); // check if value was initialized to false. - - // Assert - ShellPage.DefaultSndMSGCallback = msg => - { - FancyZonesSettingsIPCMessage snd = JsonSerializer.Deserialize(msg); - Assert.IsTrue(snd.Powertoys.FancyZones.Properties.FancyzonesMouseSwitch.Value); - }; - - // act - viewModel.MouseSwitch = true; - } - - [TestMethod] - public void DisplayChangeMoveWindows_ShouldSetValue2True_WhenSuccessful() - { - // arrange - FancyZonesViewModel viewModel = new FancyZonesViewModel(); - Assert.IsFalse(viewModel.DisplayChangeMoveWindows); // check if value was initialized to false. - - // Assert - ShellPage.DefaultSndMSGCallback = msg => - { - FancyZonesSettingsIPCMessage snd = JsonSerializer.Deserialize(msg); - Assert.IsTrue(snd.Powertoys.FancyZones.Properties.FancyzonesDisplayChangeMoveWindows.Value); - }; - - // act - viewModel.DisplayChangeMoveWindows = true; - } - - [TestMethod] - public void ZoneSetChangeMoveWindows_ShouldSetValue2True_WhenSuccessful() - { - // arrange - FancyZonesViewModel viewModel = new FancyZonesViewModel(); - Assert.IsFalse(viewModel.ZoneSetChangeMoveWindows); // check if value was initialized to false. - - // Assert - ShellPage.DefaultSndMSGCallback = msg => - { - FancyZonesSettingsIPCMessage snd = JsonSerializer.Deserialize(msg); - Assert.IsTrue(snd.Powertoys.FancyZones.Properties.FancyzonesZoneSetChangeMoveWindows.Value); - }; - - // act - viewModel.ZoneSetChangeMoveWindows = true; - } - - [TestMethod] - public void AppLastZoneMoveWindows_ShouldSetValue2True_WhenSuccessful() - { - // arrange - FancyZonesViewModel viewModel = new FancyZonesViewModel(); - Assert.IsFalse(viewModel.AppLastZoneMoveWindows); // check if value was initialized to false. - - // Assert - ShellPage.DefaultSndMSGCallback = msg => - { - FancyZonesSettingsIPCMessage snd = JsonSerializer.Deserialize(msg); - Assert.IsTrue(snd.Powertoys.FancyZones.Properties.FancyzonesAppLastZoneMoveWindows.Value); - }; - - // act - viewModel.AppLastZoneMoveWindows = true; - } - - public void OpenWindowOnActiveMonitor_ShouldSetValue2True_WhenSuccessful() - { - // arrange - FancyZonesViewModel viewModel = new FancyZonesViewModel(); - Assert.IsFalse(viewModel.OpenWindowOnActiveMonitor); // check if value was initialized to false. - - // Assert - ShellPage.DefaultSndMSGCallback = msg => - { - FancyZonesSettingsIPCMessage snd = JsonSerializer.Deserialize(msg); - Assert.IsTrue(snd.Powertoys.FancyZones.Properties.FancyzonesOpenWindowOnActiveMonitor.Value); - }; - - // act - viewModel.OpenWindowOnActiveMonitor = true; - } - - [TestMethod] - public void RestoreSize_ShouldSetValue2True_WhenSuccessful() - { - // arrange - FancyZonesViewModel viewModel = new FancyZonesViewModel(); - Assert.IsFalse(viewModel.RestoreSize); // check if value was initialized to false. - - // Assert - ShellPage.DefaultSndMSGCallback = msg => - { - FancyZonesSettingsIPCMessage snd = JsonSerializer.Deserialize(msg); - Assert.IsTrue(snd.Powertoys.FancyZones.Properties.FancyzonesRestoreSize.Value); - }; - - // act - viewModel.RestoreSize = true; - } - - [TestMethod] - public void UseCursorPosEditorStartupScreen_ShouldSetValue2False_WhenSuccessful() - { - // arrange - FancyZonesViewModel viewModel = new FancyZonesViewModel(); - Assert.IsTrue(viewModel.UseCursorPosEditorStartupScreen); // check if value was initialized to false. - - // Assert - ShellPage.DefaultSndMSGCallback = msg => - { - FancyZonesSettingsIPCMessage snd = JsonSerializer.Deserialize(msg); - Assert.IsTrue(snd.Powertoys.FancyZones.Properties.UseCursorposEditorStartupscreen.Value); - }; - - // act - viewModel.UseCursorPosEditorStartupScreen = true; - } - - [TestMethod] - public void ShowOnAllMonitors_ShouldSetValue2True_WhenSuccessful() - { - // arrange - FancyZonesViewModel viewModel = new FancyZonesViewModel(); - Assert.IsFalse(viewModel.ShowOnAllMonitors); // check if value was initialized to false. - - // Assert - ShellPage.DefaultSndMSGCallback = msg => - { - FancyZonesSettingsIPCMessage snd = JsonSerializer.Deserialize(msg); - Assert.IsTrue(snd.Powertoys.FancyZones.Properties.FancyzonesShowOnAllMonitors.Value); - }; - - // act - viewModel.ShowOnAllMonitors = true; - } - - [TestMethod] - public void SpanZonesAcrossMonitors_ShouldSetValue2True_WhenSuccessful() - { - // arrange - FancyZonesViewModel viewModel = new FancyZonesViewModel(); - Assert.IsFalse(viewModel.SpanZonesAcrossMonitors); // check if value was initialized to false. - - // Assert - ShellPage.DefaultSndMSGCallback = msg => - { - FancyZonesSettingsIPCMessage snd = JsonSerializer.Deserialize(msg); - Assert.IsTrue(snd.Powertoys.FancyZones.Properties.FancyzonesSpanZonesAcrossMonitors.Value); - }; - - // act - viewModel.SpanZonesAcrossMonitors = true; - } - - [TestMethod] - public void ZoneHighlightColor_ShouldSetColorValue2White_WhenSuccessful() - { - // arrange - FancyZonesViewModel viewModel = new FancyZonesViewModel(); - Assert.AreEqual(ConfigDefaults.DefaultFancyZonesZoneHighlightColor, ToRGBHex(viewModel.ZoneHighlightColor)); - - // Assert - ShellPage.DefaultSndMSGCallback = msg => - { - FancyZonesSettingsIPCMessage snd = JsonSerializer.Deserialize(msg); - Assert.AreEqual("#E1E1E1", snd.Powertoys.FancyZones.Properties.FancyzonesZoneHighlightColor.Value); - }; - - // act - viewModel.ZoneHighlightColor = Color.FromArgb(0, 225, 225, 225); - } - - [TestMethod] - public void ZoneBorderColor_ShouldSetColorValue2White_WhenSuccessful() - { - // arrange - FancyZonesViewModel viewModel = new FancyZonesViewModel(); - Assert.AreEqual(ConfigDefaults.DefaultFancyzonesBorderColor, ToRGBHex(viewModel.ZoneBorderColor)); - - // Assert - ShellPage.DefaultSndMSGCallback = msg => - { - FancyZonesSettingsIPCMessage snd = JsonSerializer.Deserialize(msg); - Assert.AreEqual("#E1E1E1", snd.Powertoys.FancyZones.Properties.FancyzonesBorderColor.Value); - }; - - // act - viewModel.ZoneBorderColor = Color.FromArgb(0, 225, 225, 225); - } - - [TestMethod] - public void ZoneInActiveColor_ShouldSetColorValue2White_WhenSuccessful() - { - // arrange - FancyZonesViewModel viewModel = new FancyZonesViewModel(); - Assert.AreEqual(ConfigDefaults.DefaultFancyZonesInActiveColor, ToRGBHex(viewModel.ZoneInActiveColor)); - - // Assert - ShellPage.DefaultSndMSGCallback = msg => - { - FancyZonesSettingsIPCMessage snd = JsonSerializer.Deserialize(msg); - Assert.AreEqual("#E1E1E1", snd.Powertoys.FancyZones.Properties.FancyzonesInActiveColor.Value); - }; - - // act - viewModel.ZoneInActiveColor = Color.FromArgb(0, 225, 225, 225); - } - - [TestMethod] - public void ExcludedApps_ShouldSetColorValue2White_WhenSuccessful() - { - // arrange - FancyZonesViewModel viewModel = new FancyZonesViewModel(); - Assert.AreEqual(string.Empty, viewModel.ExcludedApps); - - // Assert - ShellPage.DefaultSndMSGCallback = msg => - { - FancyZonesSettingsIPCMessage snd = JsonSerializer.Deserialize(msg); - Assert.AreEqual("Sample", snd.Powertoys.FancyZones.Properties.FancyzonesExcludedApps.Value); - }; - - // act - viewModel.ExcludedApps = "Sample"; - } - - [TestMethod] - public void HighlightOpacity_ShouldSetOpacityValueTo60_WhenSuccessful() - { - // arrange - FancyZonesViewModel viewModel = new FancyZonesViewModel(); - Assert.AreEqual(50, viewModel.HighlightOpacity); - - // Assert - ShellPage.DefaultSndMSGCallback = msg => - { - FancyZonesSettingsIPCMessage snd = JsonSerializer.Deserialize(msg); - Assert.AreEqual(60, snd.Powertoys.FancyZones.Properties.FancyzonesHighlightOpacity.Value); - }; - - // act - viewModel.HighlightOpacity = 60; - } - - private string ToRGBHex(Color color) - { - return "#" + color.R.ToString("X2") + color.G.ToString("X2") + color.B.ToString("X2"); - } - } -} diff --git a/src/core/Microsoft.PowerToys.Settings.UnitTest/ViewModelTests/General.cs b/src/core/Microsoft.PowerToys.Settings.UnitTest/ViewModelTests/General.cs deleted file mode 100644 index 29a86171d4..0000000000 --- a/src/core/Microsoft.PowerToys.Settings.UnitTest/ViewModelTests/General.cs +++ /dev/null @@ -1,153 +0,0 @@ -// Copyright (c) Microsoft Corporation -// The Microsoft Corporation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System.IO; -using System.Text.Json; -using Microsoft.PowerToys.Settings.UI.Lib; -using Microsoft.PowerToys.Settings.UI.ViewModels; -using Microsoft.PowerToys.Settings.UI.Views; -using Microsoft.VisualStudio.TestTools.UnitTesting; - -namespace ViewModelTests -{ - [TestClass] - public class General - { - [TestInitialize] - public void Setup() - { - // initialize creation of test settings file. - GeneralSettings generalSettings = new GeneralSettings(); - SettingsUtils.SaveSettings(generalSettings.ToJsonString()); - } - - [TestCleanup] - public void CleanUp() - { - // delete folder created. - string generalSettings_file_name = string.Empty; - if (SettingsUtils.SettingsFolderExists(generalSettings_file_name)) - { - DeleteFolder(generalSettings_file_name); - } - - if (SettingsUtils.SettingsFolderExists(string.Empty)) - { - DeleteFolder(string.Empty); - } - } - - public void DeleteFolder(string powertoy) - { - Directory.Delete(Path.Combine(SettingsUtils.LocalApplicationDataFolder(), $"Microsoft\\PowerToys\\{powertoy}"), true); - } - - [TestMethod] - public void IsElevated_ShouldUpdateRunasAdminStatusAttrs_WhenSuccessful() - { - // Arrange - GeneralViewModel viewModel = new GeneralViewModel(); - - Assert.AreEqual(viewModel.RunningAsUserDefaultText, viewModel.RunningAsText); - Assert.IsFalse(viewModel.IsElevated); - - // Act - viewModel.IsElevated = true; - - // Assert - Assert.AreEqual(viewModel.RunningAsAdminDefaultText, viewModel.RunningAsText); - Assert.IsTrue(viewModel.IsElevated); - } - - [TestMethod] - public void Startup_ShouldEnableRunOnStartUp_WhenSuccessful() - { - // Arrange - GeneralViewModel viewModel = new GeneralViewModel(); - Assert.IsFalse(viewModel.Startup); - - // Assert - ShellPage.DefaultSndMSGCallback = msg => - { - OutGoingGeneralSettings snd = JsonSerializer.Deserialize(msg); - Assert.IsTrue(snd.GeneralSettings.Startup); - }; - - // act - viewModel.Startup = true; - } - - [TestMethod] - public void RunElevated_ShouldEnableAlwaysRunElevated_WhenSuccessful() - { - // Arrange - GeneralViewModel viewModel = new GeneralViewModel(); - Assert.IsFalse(viewModel.RunElevated); - - // Assert - ShellPage.DefaultSndMSGCallback = msg => - { - OutGoingGeneralSettings snd = JsonSerializer.Deserialize(msg); - Assert.IsTrue(snd.GeneralSettings.RunElevated); - }; - - // act - viewModel.RunElevated = true; - } - - [TestMethod] - public void AutoDownloadUpdates_ShouldEnableAutoDownloadUpdates_WhenSuccessful() - { - // Arrange - GeneralViewModel viewModel = new GeneralViewModel(); - Assert.IsFalse(viewModel.AutoDownloadUpdates); - - // Assert - ShellPage.DefaultSndMSGCallback = msg => - { - OutGoingGeneralSettings snd = JsonSerializer.Deserialize(msg); - Assert.IsTrue(snd.GeneralSettings.AutoDownloadUpdates); - }; - - // act - viewModel.AutoDownloadUpdates = true; - } - - [TestMethod] - public void IsLightThemeRadioButtonChecked_ShouldThemeToLight_WhenSuccessful() - { - // Arrange - GeneralViewModel viewModel = new GeneralViewModel(); - Assert.IsFalse(viewModel.IsLightThemeRadioButtonChecked); - - // Assert - ShellPage.DefaultSndMSGCallback = msg => - { - OutGoingGeneralSettings snd = JsonSerializer.Deserialize(msg); - Assert.AreEqual("light", snd.GeneralSettings.Theme); - }; - - // act - viewModel.IsLightThemeRadioButtonChecked = true; - } - - [TestMethod] - public void IsDarkThemeRadioButtonChecked_ShouldThemeToDark_WhenSuccessful() - { - // Arrange - GeneralViewModel viewModel = new GeneralViewModel(); - Assert.IsFalse(viewModel.IsDarkThemeRadioButtonChecked); - - // Assert - ShellPage.DefaultSndMSGCallback = msg => - { - OutGoingGeneralSettings snd = JsonSerializer.Deserialize(msg); - Assert.AreEqual("dark", snd.GeneralSettings.Theme); - }; - - // act - viewModel.IsDarkThemeRadioButtonChecked = true; - } - } -} diff --git a/src/core/Microsoft.PowerToys.Settings.UnitTest/ViewModelTests/ImageResizer.cs b/src/core/Microsoft.PowerToys.Settings.UnitTest/ViewModelTests/ImageResizer.cs deleted file mode 100644 index fa742b48aa..0000000000 --- a/src/core/Microsoft.PowerToys.Settings.UnitTest/ViewModelTests/ImageResizer.cs +++ /dev/null @@ -1,221 +0,0 @@ -// Copyright (c) Microsoft Corporation -// The Microsoft Corporation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System.IO; -using System.Linq; -using System.Text.Json; -using Microsoft.PowerToys.Settings.UI.Lib; -using Microsoft.PowerToys.Settings.UI.ViewModels; -using Microsoft.PowerToys.Settings.UI.Views; -using Microsoft.VisualStudio.TestTools.UnitTesting; - -namespace ViewModelTests -{ - [TestClass] - public class ImageResizer - { - public const string Module = "ImageResizer"; - - [TestInitialize] - public void Setup() - { - // initialize creation of test settings file. - // Test base path: - // C:\Users\\AppData\Local\Packages\08e1807b-8b6d-4bfa-adc4-79c64aae8e78_9abkseg265h2m\LocalState\Microsoft\PowerToys\ - GeneralSettings generalSettings = new GeneralSettings(); - ImageResizerSettings imageResizer = new ImageResizerSettings(); - - SettingsUtils.SaveSettings(generalSettings.ToJsonString()); - SettingsUtils.SaveSettings(imageResizer.ToJsonString(), imageResizer.Name); - } - - [TestCleanup] - public void CleanUp() - { - // delete folder created. - string generalSettings_file_name = string.Empty; - if (SettingsUtils.SettingsFolderExists(generalSettings_file_name)) - { - DeleteFolder(generalSettings_file_name); - } - - if (SettingsUtils.SettingsFolderExists(Module)) - { - DeleteFolder(Module); - } - } - - public void DeleteFolder(string powertoy) - { - Directory.Delete(Path.Combine(SettingsUtils.LocalApplicationDataFolder(), $"Microsoft\\PowerToys\\{powertoy}"), true); - } - - [TestMethod] - public void IsEnabled_ShouldEnableModule_WhenSuccessful() - { - // arrange - ImageResizerViewModel viewModel = new ImageResizerViewModel(); - - // Assert - ShellPage.DefaultSndMSGCallback = msg => - { - OutGoingGeneralSettings snd = JsonSerializer.Deserialize(msg); - Assert.IsTrue(snd.GeneralSettings.Enabled.ImageResizer); - }; - - // act - viewModel.IsEnabled = true; - } - - [TestMethod] - public void JPEGQualityLevel_ShouldSetValueToTen_WhenSuccessful() - { - // arrange - ImageResizerViewModel viewModel = new ImageResizerViewModel(); - - // act - viewModel.JPEGQualityLevel = 10; - - // Assert - viewModel = new ImageResizerViewModel(); - Assert.AreEqual(10, viewModel.JPEGQualityLevel); - } - - [TestMethod] - public void PngInterlaceOption_ShouldSetValueToTen_WhenSuccessful() - { - // arrange - ImageResizerViewModel viewModel = new ImageResizerViewModel(); - - // act - viewModel.PngInterlaceOption = 10; - - // Assert - viewModel = new ImageResizerViewModel(); - Assert.AreEqual(10, viewModel.PngInterlaceOption); - } - - [TestMethod] - public void TiffCompressOption_ShouldSetValueToTen_WhenSuccessful() - { - // arrange - ImageResizerViewModel viewModel = new ImageResizerViewModel(); - - // act - viewModel.TiffCompressOption = 10; - - // Assert - viewModel = new ImageResizerViewModel(); - Assert.AreEqual(10, viewModel.TiffCompressOption); - } - - [TestMethod] - public void FileName_ShouldUpdateValue_WhenSuccessful() - { - // arrange - ImageResizerViewModel viewModel = new ImageResizerViewModel(); - string expectedValue = "%1 (%3)"; - - // act - viewModel.FileName = expectedValue; - - // Assert - viewModel = new ImageResizerViewModel(); - Assert.AreEqual(expectedValue, viewModel.FileName); - } - - [TestMethod] - public void KeepDateModified_ShouldUpdateValue_WhenSuccessful() - { - // arrange - ImageResizerViewModel viewModel = new ImageResizerViewModel(); - - // act - viewModel.KeepDateModified = true; - - // Assert - ImageResizerSettings settings = SettingsUtils.GetSettings(Module); - Assert.AreEqual(true, settings.Properties.ImageresizerKeepDateModified.Value); - } - - [TestMethod] - public void Encoder_ShouldUpdateValue_WhenSuccessful() - { - // arrange - ImageResizerViewModel viewModel = new ImageResizerViewModel(); - - // act - viewModel.Encoder = 3; - - // Assert - viewModel = new ImageResizerViewModel(); - Assert.AreEqual("163bcc30-e2e9-4f0b-961d-a3e9fdb788a3", viewModel.GetEncoderGuid(viewModel.Encoder)); - Assert.AreEqual(3, viewModel.Encoder); - } - - [TestMethod] - public void AddRow_ShouldAddEmptyImageSize_WhenSuccessful() - { - // arrange - ImageResizerViewModel viewModel = new ImageResizerViewModel(); - int sizeOfOriginalArray = viewModel.Sizes.Count; - - // act - viewModel.AddRow(); - - // Assert - Assert.AreEqual(viewModel.Sizes.Count, sizeOfOriginalArray + 1); - } - - [TestMethod] - public void DeleteImageSize_ShouldDeleteImageSize_WhenSuccessful() - { - // arrange - ImageResizerViewModel viewModel = new ImageResizerViewModel(); - int sizeOfOriginalArray = viewModel.Sizes.Count; - ImageSize deleteCandidate = viewModel.Sizes.Where(x => x.Id == 0).First(); - - // act - viewModel.DeleteImageSize(0); - - // Assert - Assert.AreEqual(viewModel.Sizes.Count, sizeOfOriginalArray - 1); - Assert.IsFalse(viewModel.Sizes.Contains(deleteCandidate)); - } - - [TestMethod] - public void UpdateWidthAndHeight_ShouldUpateSize_WhenCorrectValuesAreProvided() - { - // arrange - ImageSize imageSize = new ImageSize() - { - Id = 0, - Name = "Test", - Fit = (int)ResizeFit.Fit, - Width = 30, - Height = 30, - Unit = (int)ResizeUnit.Pixel, - }; - - double negativeWidth = -2.0; - double negativeHeight = -2.0; - - // Act - imageSize.Width = negativeWidth; - imageSize.Height = negativeHeight; - - // Assert - Assert.AreEqual(0, imageSize.Width); - Assert.AreEqual(0, imageSize.Height); - - // Act - imageSize.Width = 50; - imageSize.Height = 50; - - // Assert - Assert.AreEqual(50, imageSize.Width); - Assert.AreEqual(50, imageSize.Height); - } - } -} diff --git a/src/core/Microsoft.PowerToys.Settings.UnitTest/ViewModelTests/KeyboardManager.cs b/src/core/Microsoft.PowerToys.Settings.UnitTest/ViewModelTests/KeyboardManager.cs deleted file mode 100644 index 797927ee04..0000000000 --- a/src/core/Microsoft.PowerToys.Settings.UnitTest/ViewModelTests/KeyboardManager.cs +++ /dev/null @@ -1,135 +0,0 @@ -// Copyright (c) Microsoft Corporation -// The Microsoft Corporation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System.Collections.Generic; -using System.Linq; -using Microsoft.PowerToys.Settings.UI.Lib; -using Microsoft.PowerToys.Settings.UI.ViewModels; -using Microsoft.VisualStudio.TestTools.UnitTesting; -using Windows.System; - -namespace ViewModelTests -{ - [TestClass] - public class KeyboardManager - { - public const string Module = "Keyboard Manager"; - - [TestInitialize] - public void Setup() - { - } - - [TestCleanup] - public void CleanUp() - { - } - - [TestMethod] - public void CombineShortcutLists_ShouldReturnEmptyList_WhenBothArgumentsAreEmptyLists() - { - // arrange - var firstList = new List(); - var secondList = new List(); - - // act - var result = KeyboardManagerViewModel.CombineShortcutLists(firstList, secondList); - - // Assert - var expectedResult = new List(); - - Assert.AreEqual(expectedResult.Count(), result.Count()); - } - - [TestMethod] - public void CombineShortcutLists_ShouldReturnListWithOneAllAppsEntry_WhenFirstArgumentHasOneEntryAndSecondArgumentIsEmpty() - { - // arrange - var firstList = new List(); - var entry = new KeysDataModel(); - entry.OriginalKeys = VirtualKey.Control + ";" + VirtualKey.A; - entry.NewRemapKeys = VirtualKey.Control + ";" + VirtualKey.V; - firstList.Add(entry); - var secondList = new List(); - - // act - var result = KeyboardManagerViewModel.CombineShortcutLists(firstList, secondList); - - // Assert - var expectedResult = new List(); - var expectedEntry = new AppSpecificKeysDataModel(); - expectedEntry.OriginalKeys = entry.OriginalKeys; - expectedEntry.NewRemapKeys = entry.NewRemapKeys; - expectedEntry.TargetApp = "All Apps"; - expectedResult.Add(expectedEntry); - var x = expectedResult[0].Equals(result[0]); - Assert.AreEqual(expectedResult.Count(), result.Count()); - Assert.IsTrue(expectedResult[0].Compare(result[0])); - } - - [TestMethod] - public void CombineShortcutLists_ShouldReturnListWithOneAppSpecificEntry_WhenFirstArgumentIsEmptyAndSecondArgumentHasOneEntry() - { - // arrange - var firstList = new List(); - var secondList = new List(); - var entry = new AppSpecificKeysDataModel(); - entry.OriginalKeys = VirtualKey.Control + ";" + VirtualKey.A; - entry.NewRemapKeys = VirtualKey.Control + ";" + VirtualKey.V; - entry.TargetApp = "msedge"; - secondList.Add(entry); - - // act - var result = KeyboardManagerViewModel.CombineShortcutLists(firstList, secondList); - - // Assert - var expectedResult = new List(); - var expectedEntry = new AppSpecificKeysDataModel(); - expectedEntry.OriginalKeys = entry.OriginalKeys; - expectedEntry.NewRemapKeys = entry.NewRemapKeys; - expectedEntry.TargetApp = entry.TargetApp; - expectedResult.Add(expectedEntry); - - Assert.AreEqual(expectedResult.Count(), result.Count()); - Assert.IsTrue(expectedResult[0].Compare(result[0])); - } - - [TestMethod] - public void CombineShortcutLists_ShouldReturnListWithOneAllAppsEntryAndOneAppSpecificEntry_WhenFirstArgumentHasOneEntryAndSecondArgumentHasOneEntry() - { - // arrange - var firstList = new List(); - var firstListEntry = new KeysDataModel(); - firstListEntry.OriginalKeys = VirtualKey.Control + ";" + VirtualKey.A; - firstListEntry.NewRemapKeys = VirtualKey.Control + ";" + VirtualKey.V; - firstList.Add(firstListEntry); - var secondList = new List(); - var secondListEntry = new AppSpecificKeysDataModel(); - secondListEntry.OriginalKeys = VirtualKey.Control + ";" + VirtualKey.B; - secondListEntry.NewRemapKeys = VirtualKey.Control + ";" + VirtualKey.W; - secondListEntry.TargetApp = "msedge"; - secondList.Add(secondListEntry); - - // act - var result = KeyboardManagerViewModel.CombineShortcutLists(firstList, secondList); - - // Assert - var expectedResult = new List(); - var expectedFirstEntry = new AppSpecificKeysDataModel(); - expectedFirstEntry.OriginalKeys = firstListEntry.OriginalKeys; - expectedFirstEntry.NewRemapKeys = firstListEntry.NewRemapKeys; - expectedFirstEntry.TargetApp = "All Apps"; - expectedResult.Add(expectedFirstEntry); - var expectedSecondEntry = new AppSpecificKeysDataModel(); - expectedSecondEntry.OriginalKeys = secondListEntry.OriginalKeys; - expectedSecondEntry.NewRemapKeys = secondListEntry.NewRemapKeys; - expectedSecondEntry.TargetApp = secondListEntry.TargetApp; - expectedResult.Add(expectedSecondEntry); - - Assert.AreEqual(expectedResult.Count(), result.Count()); - Assert.IsTrue(expectedResult[0].Compare(result[0])); - Assert.IsTrue(expectedResult[1].Compare(result[1])); - } - } -} diff --git a/src/core/Microsoft.PowerToys.Settings.UnitTest/ViewModelTests/PowerLauncherViewModelTest.cs b/src/core/Microsoft.PowerToys.Settings.UnitTest/ViewModelTests/PowerLauncherViewModelTest.cs deleted file mode 100644 index 51fe04d17a..0000000000 --- a/src/core/Microsoft.PowerToys.Settings.UnitTest/ViewModelTests/PowerLauncherViewModelTest.cs +++ /dev/null @@ -1,138 +0,0 @@ -// Copyright (c) Microsoft Corporation -// The Microsoft Corporation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using Microsoft.PowerToys.Settings.UI.Lib; -using Microsoft.PowerToys.Settings.UI.ViewModels; -using Microsoft.VisualStudio.TestTools.UnitTesting; - -namespace ViewModelTests -{ - [TestClass] - public class PowerLauncherViewModelTest - { - private class SendCallbackMock - { - public int TimesSent { get; set; } - - public void OnSend(PowerLauncherSettings settings) - { - TimesSent++; - } - } - - private PowerLauncherViewModel viewModel; - private PowerLauncherSettings mockSettings; - private SendCallbackMock sendCallbackMock; - - [TestInitialize] - public void Initialize() - { - mockSettings = new PowerLauncherSettings(); - sendCallbackMock = new SendCallbackMock(); - - viewModel = new PowerLauncherViewModel( - mockSettings, - new PowerLauncherViewModel.SendCallback(sendCallbackMock.OnSend)); - } - - [TestMethod] - public void SearchPreference_ShouldUpdatePreferences() - { - viewModel.SearchResultPreference = "SearchOptionsAreNotValidated"; - viewModel.SearchTypePreference = "SearchOptionsAreNotValidated"; - - Assert.AreEqual(sendCallbackMock.TimesSent, 2); - Assert.IsTrue(mockSettings.Properties.SearchResultPreference == "SearchOptionsAreNotValidated"); - Assert.IsTrue(mockSettings.Properties.SearchTypePreference == "SearchOptionsAreNotValidated"); - } - - public void AssertHotkeySettings(HotkeySettings setting, bool win, bool ctrl, bool alt, bool shift, int code) - { - Assert.AreEqual(win, setting.Win); - Assert.AreEqual(ctrl, setting.Ctrl); - Assert.AreEqual(alt, setting.Alt); - Assert.AreEqual(shift, setting.Shift); - Assert.AreEqual(code, setting.Code); - } - - [TestMethod] - public void Hotkeys_ShouldUpdateHotkeys() - { - var openPowerLauncher = new HotkeySettings(); - openPowerLauncher.Win = true; - openPowerLauncher.Code = (int)Windows.System.VirtualKey.S; - - var openFileLocation = new HotkeySettings(); - openFileLocation.Ctrl = true; - openFileLocation.Code = (int)Windows.System.VirtualKey.A; - - var openConsole = new HotkeySettings(); - openConsole.Alt = true; - openConsole.Code = (int)Windows.System.VirtualKey.D; - - var copyFileLocation = new HotkeySettings(); - copyFileLocation.Shift = true; - copyFileLocation.Code = (int)Windows.System.VirtualKey.F; - - viewModel.OpenPowerLauncher = openPowerLauncher; - viewModel.OpenFileLocation = openFileLocation; - viewModel.OpenConsole = openConsole; - viewModel.CopyPathLocation = copyFileLocation; - - Assert.AreEqual(4, sendCallbackMock.TimesSent); - - AssertHotkeySettings( - mockSettings.Properties.OpenPowerLauncher, - true, - false, - false, - false, - (int)Windows.System.VirtualKey.S); - AssertHotkeySettings( - mockSettings.Properties.OpenFileLocation, - false, - true, - false, - false, - (int)Windows.System.VirtualKey.A); - AssertHotkeySettings( - mockSettings.Properties.OpenConsole, - false, - false, - true, - false, - (int)Windows.System.VirtualKey.D); - AssertHotkeySettings( - mockSettings.Properties.CopyPathLocation, - false, - false, - false, - true, - (int)Windows.System.VirtualKey.F); - } - - [TestMethod] - public void Override_ShouldUpdateOverrides() - { - viewModel.OverrideWinRKey = true; - viewModel.OverrideWinSKey = false; - - Assert.AreEqual(1, sendCallbackMock.TimesSent); - - Assert.IsTrue(mockSettings.Properties.OverrideWinkeyR); - Assert.IsFalse(mockSettings.Properties.OverrideWinkeyS); - } - - [TestMethod] - public void DriveDetectionViewModel_WhenSet_MustUpdateOverrides() - { - // Act - viewModel.DisableDriveDetectionWarning = true; - - // Assert - Assert.AreEqual(1, sendCallbackMock.TimesSent); - Assert.IsTrue(mockSettings.Properties.DisableDriveDetectionWarning); - } - } -} diff --git a/src/core/Microsoft.PowerToys.Settings.UnitTest/ViewModelTests/PowerPreview.cs b/src/core/Microsoft.PowerToys.Settings.UnitTest/ViewModelTests/PowerPreview.cs deleted file mode 100644 index 9d4681c8ce..0000000000 --- a/src/core/Microsoft.PowerToys.Settings.UnitTest/ViewModelTests/PowerPreview.cs +++ /dev/null @@ -1,102 +0,0 @@ -// Copyright (c) Microsoft Corporation -// The Microsoft Corporation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System.IO; -using System.Text.Json; -using Microsoft.PowerToys.Settings.UI.Lib; -using Microsoft.PowerToys.Settings.UI.ViewModels; -using Microsoft.PowerToys.Settings.UI.Views; -using Microsoft.VisualStudio.TestTools.UnitTesting; - -namespace ViewModelTests -{ - [TestClass] - public class PowerPreview - { - public const string Module = "File Explorer"; - - [TestInitialize] - public void Setup() - { - // initialize creation of test settings file. - GeneralSettings generalSettings = new GeneralSettings(); - PowerPreviewSettings powerpreview = new PowerPreviewSettings(); - - SettingsUtils.SaveSettings(generalSettings.ToJsonString()); - SettingsUtils.SaveSettings(powerpreview.ToJsonString(), powerpreview.Name); - } - - [TestCleanup] - public void CleanUp() - { - // delete folder created. - string generalSettings_file_name = string.Empty; - if (SettingsUtils.SettingsFolderExists(generalSettings_file_name)) - { - DeleteFolder(generalSettings_file_name); - } - - if (SettingsUtils.SettingsFolderExists(Module)) - { - DeleteFolder(Module); - } - } - - public void DeleteFolder(string powertoy) - { - Directory.Delete(Path.Combine(SettingsUtils.LocalApplicationDataFolder(), $"Microsoft\\PowerToys\\{powertoy}"), true); - } - - [TestMethod] - public void SVGRenderIsEnabled_ShouldPrevHandler_WhenSuccessful() - { - // arrange - PowerPreviewViewModel viewModel = new PowerPreviewViewModel(); - - // Assert - ShellPage.DefaultSndMSGCallback = msg => - { - SndModuleSettings snd = JsonSerializer.Deserialize>(msg); - Assert.IsTrue(snd.powertoys.FileExplorerPreviewSettings.Properties.EnableSvgPreview); - }; - - // act - viewModel.SVGRenderIsEnabled = true; - } - - [TestMethod] - public void SVGThumbnailIsEnabled_ShouldPrevHandler_WhenSuccessful() - { - // arrange - PowerPreviewViewModel viewModel = new PowerPreviewViewModel(); - - // Assert - ShellPage.DefaultSndMSGCallback = msg => - { - SndModuleSettings snd = JsonSerializer.Deserialize>(msg); - Assert.IsTrue(snd.powertoys.FileExplorerPreviewSettings.Properties.EnableSvgThumbnail); - }; - - // act - viewModel.SVGThumbnailIsEnabled = true; - } - - [TestMethod] - public void MDRenderIsEnabled_ShouldPrevHandler_WhenSuccessful() - { - // arrange - PowerPreviewViewModel viewModel = new PowerPreviewViewModel(); - - // Assert - ShellPage.DefaultSndMSGCallback = msg => - { - SndModuleSettings snd = JsonSerializer.Deserialize>(msg); - Assert.IsTrue(snd.powertoys.FileExplorerPreviewSettings.Properties.EnableMdPreview); - }; - - // act - viewModel.MDRenderIsEnabled = true; - } - } -} diff --git a/src/core/Microsoft.PowerToys.Settings.UnitTest/ViewModelTests/PowerRename.cs b/src/core/Microsoft.PowerToys.Settings.UnitTest/ViewModelTests/PowerRename.cs deleted file mode 100644 index 586ba111fc..0000000000 --- a/src/core/Microsoft.PowerToys.Settings.UnitTest/ViewModelTests/PowerRename.cs +++ /dev/null @@ -1,202 +0,0 @@ -// Copyright (c) Microsoft Corporation -// The Microsoft Corporation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System.IO; -using System.Text.Json; -using Microsoft.PowerToys.Settings.UI.Lib; -using Microsoft.PowerToys.Settings.UI.ViewModels; -using Microsoft.PowerToys.Settings.UI.Views; -using Microsoft.VisualStudio.TestTools.UnitTesting; - -namespace ViewModelTests -{ - [TestClass] - public class PowerRename - { - public const string ModuleName = "PowerRename"; - - [TestInitialize] - public void Setup() - { - // initialize creation of test settings file. - GeneralSettings generalSettings = new GeneralSettings(); - PowerRenameSettings powerRename = new PowerRenameSettings(); - - SettingsUtils.SaveSettings(generalSettings.ToJsonString()); - SettingsUtils.SaveSettings(powerRename.ToJsonString(), powerRename.Name, "power-rename-settings.json"); - } - - [TestCleanup] - public void CleanUp() - { - // delete folder created. - string generalSettings_file_name = string.Empty; - if (SettingsUtils.SettingsFolderExists(generalSettings_file_name)) - { - DeleteFolder(generalSettings_file_name); - } - - // delete folder created. - if (SettingsUtils.SettingsFolderExists(ModuleName)) - { - DeleteFolder(ModuleName); - } - } - - [TestMethod] - public void IsEnabled_ShouldEnableModule_WhenSuccessful() - { - // arrange - PowerRenameViewModel viewModel = new PowerRenameViewModel(); - - // Assert - ShellPage.DefaultSndMSGCallback = msg => - { - OutGoingGeneralSettings snd = JsonSerializer.Deserialize(msg); - Assert.IsTrue(snd.GeneralSettings.Enabled.PowerRename); - }; - - // act - viewModel.IsEnabled = true; - } - - [TestMethod] - public void MRUEnabled_ShouldSetValue2True_WhenSuccessful() - { - // arrange - PowerRenameViewModel viewModel = new PowerRenameViewModel(); - - // Assert - ShellPage.DefaultSndMSGCallback = msg => - { - PowerRenameSettingsIPCMessage snd = JsonSerializer.Deserialize(msg); - Assert.IsTrue(snd.Powertoys.PowerRename.Properties.MRUEnabled.Value); - }; - - // act - viewModel.MRUEnabled = true; - } - - [TestMethod] - public void WhenIsEnabledIsOffAndMRUEnabledIsOffGlobalAndMruShouldBeOff() - { - PowerRenameViewModel viewModel = new PowerRenameViewModel(); - ShellPage.DefaultSndMSGCallback = msg => { }; - - viewModel.IsEnabled = false; - viewModel.MRUEnabled = false; - - Assert.IsFalse(viewModel.GlobalAndMruEnabled); - } - - [TestMethod] - public void WhenIsEnabledIsOffAndMRUEnabledIsOnGlobalAndMruShouldBeOff() - { - PowerRenameViewModel viewModel = new PowerRenameViewModel(); - ShellPage.DefaultSndMSGCallback = msg => { }; - - viewModel.IsEnabled = false; - viewModel.MRUEnabled = true; - - Assert.IsFalse(viewModel.GlobalAndMruEnabled); - } - - [TestMethod] - public void WhenIsEnabledIsOnAndMRUEnabledIsOffGlobalAndMruShouldBeOff() - { - PowerRenameViewModel viewModel = new PowerRenameViewModel(); - ShellPage.DefaultSndMSGCallback = msg => { }; - - viewModel.IsEnabled = true; - viewModel.MRUEnabled = false; - - Assert.IsFalse(viewModel.GlobalAndMruEnabled); - } - - [TestMethod] - public void WhenIsEnabledIsOnAndMRUEnabledIsOnGlobalAndMruShouldBeOn() - { - PowerRenameViewModel viewModel = new PowerRenameViewModel(); - ShellPage.DefaultSndMSGCallback = msg => { }; - - viewModel.IsEnabled = true; - viewModel.MRUEnabled = true; - - Assert.IsTrue(viewModel.GlobalAndMruEnabled); - } - - [TestMethod] - public void EnabledOnContextMenu_ShouldSetValue2True_WhenSuccessful() - { - // arrange - PowerRenameViewModel viewModel = new PowerRenameViewModel(); - - // Assert - ShellPage.DefaultSndMSGCallback = msg => - { - PowerRenameSettingsIPCMessage snd = JsonSerializer.Deserialize(msg); - Assert.IsTrue(snd.Powertoys.PowerRename.Properties.ShowIcon.Value); - }; - - // act - viewModel.EnabledOnContextMenu = true; - } - - [TestMethod] - public void EnabledOnContextExtendedMenu_ShouldSetValue2True_WhenSuccessful() - { - // arrange - PowerRenameViewModel viewModel = new PowerRenameViewModel(); - - // Assert - ShellPage.DefaultSndMSGCallback = msg => - { - PowerRenameSettingsIPCMessage snd = JsonSerializer.Deserialize(msg); - Assert.IsTrue(snd.Powertoys.PowerRename.Properties.ShowIcon.Value); - }; - - // act - viewModel.EnabledOnContextMenu = true; - } - - [TestMethod] - public void RestoreFlagsOnLaunch_ShouldSetValue2True_WhenSuccessful() - { - // arrange - PowerRenameViewModel viewModel = new PowerRenameViewModel(); - - // Assert - ShellPage.DefaultSndMSGCallback = msg => - { - PowerRenameSettingsIPCMessage snd = JsonSerializer.Deserialize(msg); - Assert.IsTrue(snd.Powertoys.PowerRename.Properties.PersistState.Value); - }; - - // act - viewModel.RestoreFlagsOnLaunch = true; - } - - [TestMethod] - public void MaxDispListNum_ShouldSetMaxSuggListTo20_WhenSuccessful() - { - // arrange - PowerRenameViewModel viewModel = new PowerRenameViewModel(); - - // Assert - ShellPage.DefaultSndMSGCallback = msg => - { - PowerRenameSettingsIPCMessage snd = JsonSerializer.Deserialize(msg); - Assert.AreEqual(20, snd.Powertoys.PowerRename.Properties.MaxMRUSize.Value); - }; - - // act - viewModel.MaxDispListNum = 20; - } - - public void DeleteFolder(string powertoy) - { - Directory.Delete(Path.Combine(SettingsUtils.LocalApplicationDataFolder(), $"Microsoft\\PowerToys\\{powertoy}"), true); - } - } -} diff --git a/src/core/Microsoft.PowerToys.Settings.UnitTest/ViewModelTests/ShortcutGuide.cs b/src/core/Microsoft.PowerToys.Settings.UnitTest/ViewModelTests/ShortcutGuide.cs deleted file mode 100644 index 2279c6a8ee..0000000000 --- a/src/core/Microsoft.PowerToys.Settings.UnitTest/ViewModelTests/ShortcutGuide.cs +++ /dev/null @@ -1,130 +0,0 @@ -// Copyright (c) Microsoft Corporation -// The Microsoft Corporation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System.IO; -using System.Text.Json; -using Microsoft.PowerToys.Settings.UI.Lib; -using Microsoft.PowerToys.Settings.UI.ViewModels; -using Microsoft.PowerToys.Settings.UI.Views; -using Microsoft.VisualStudio.TestTools.UnitTesting; - -namespace ViewModelTests -{ - [TestClass] - public class ShortcutGuide - { - private const string ModuleName = "Shortcut Guide"; - - [TestInitialize] - public void Setup() - { - // initialize creation of test settings file. - // Test base path: - // C:\Users\\AppData\Local\Packages\08e1807b-8b6d-4bfa-adc4-79c64aae8e78_9abkseg265h2m\LocalState\Microsoft\PowerToys\ - GeneralSettings generalSettings = new GeneralSettings(); - ShortcutGuideSettings shortcutGuide = new ShortcutGuideSettings(); - - SettingsUtils.SaveSettings(generalSettings.ToJsonString()); - SettingsUtils.SaveSettings(shortcutGuide.ToJsonString(), shortcutGuide.Name); - } - - [TestCleanup] - public void CleanUp() - { - // delete folder created. - string generalSettings_file_name = string.Empty; - if (SettingsUtils.SettingsFolderExists(generalSettings_file_name)) - { - DeleteFolder(generalSettings_file_name); - } - - if (SettingsUtils.SettingsFolderExists(ModuleName)) - { - DeleteFolder(ModuleName); - } - } - - public void DeleteFolder(string powertoy) - { - Directory.Delete(Path.Combine(SettingsUtils.LocalApplicationDataFolder(), $"Microsoft\\PowerToys\\{powertoy}"), true); - } - - [TestMethod] - public void IsEnabled_ShouldEnableModule_WhenSuccessful() - { - // Arrange - ShortcutGuideViewModel viewModel = new ShortcutGuideViewModel(); - - // Assert - // Initialize mock function of sending IPC message. - ShellPage.DefaultSndMSGCallback = msg => - { - OutGoingGeneralSettings snd = JsonSerializer.Deserialize(msg); - Assert.IsTrue(snd.GeneralSettings.Enabled.ShortcutGuide); - }; - - // Act - viewModel.IsEnabled = true; - } - - [TestMethod] - public void ThemeIndex_ShouldSetThemeToDark_WhenSuccessful() - { - // Arrange - ShortcutGuideViewModel viewModel = new ShortcutGuideViewModel(); - Assert.AreEqual(1, viewModel.ThemeIndex); - - // Assert - // Initialize mock function of sending IPC message. - ShellPage.DefaultSndMSGCallback = msg => - { - ShortcutGuideSettingsIPCMessage snd = JsonSerializer.Deserialize(msg); - Assert.AreEqual("dark", snd.Powertoys.ShortcutGuide.Properties.Theme.Value); - }; - - // Act - viewModel.ThemeIndex = 0; - } - - [TestMethod] - public void PressTime_ShouldSetPressTimeToOneHundred_WhenSuccessful() - { - // Arrange - ShortcutGuideViewModel viewModel = new ShortcutGuideViewModel(); - Assert.AreEqual(900, viewModel.PressTime); - - // Assert - // Initialize mock function of sending IPC message. - ShellPage.DefaultSndMSGCallback = msg => - { - ShortcutGuideSettingsIPCMessage snd = JsonSerializer.Deserialize(msg); - Assert.AreEqual(100, snd.Powertoys.ShortcutGuide.Properties.PressTime.Value); - }; - - // Act - viewModel.PressTime = 100; - } - - [TestMethod] - public void OverlayOpacity_ShouldSeOverlayOpacityToOneHundred_WhenSuccessful() - { - // Arrange - ShortcutGuideViewModel viewModel = new ShortcutGuideViewModel(); - Assert.AreEqual(90, viewModel.OverlayOpacity); - - // Assert - // Initialize mock function of sending IPC message. - ShellPage.DefaultSndMSGCallback = msg => - { - ShortcutGuideSettingsIPCMessage snd = JsonSerializer.Deserialize(msg); - - // Serialisation not working as expected in the test project: - Assert.AreEqual(100, snd.Powertoys.ShortcutGuide.Properties.OverlayOpacity.Value); - }; - - // Act - viewModel.OverlayOpacity = 100; - } - } -}