AdminSettings.cpp (3060B)
1 // Copyright (c) Microsoft Corporation. 2 // Licensed under the MIT License. 3 #include "pch.h" 4 #include "TestCommon.h" 5 #include "TestSettings.h" 6 #include <winget/AdminSettings.h> 7 8 using namespace AppInstaller::Settings; 9 using namespace TestCommon; 10 11 TEST_CASE("AdminSetting_Enable", "[adminSettings]") 12 { 13 WHEN("Group policy") 14 { 15 SECTION("Not configured") 16 { 17 GroupPolicyTestOverride policies; 18 policies.SetState(TogglePolicy::Policy::LocalManifestFiles, PolicyState::NotConfigured); 19 REQUIRE(EnableAdminSetting(BoolAdminSetting::LocalManifestFiles)); 20 } 21 22 SECTION("Enabled") 23 { 24 GroupPolicyTestOverride policies; 25 policies.SetState(TogglePolicy::Policy::LocalManifestFiles, PolicyState::Enabled); 26 REQUIRE(EnableAdminSetting(BoolAdminSetting::LocalManifestFiles)); 27 } 28 29 SECTION("Disabled") 30 { 31 GroupPolicyTestOverride policies; 32 policies.SetState(TogglePolicy::Policy::LocalManifestFiles, PolicyState::Disabled); 33 REQUIRE_FALSE(EnableAdminSetting(BoolAdminSetting::LocalManifestFiles)); 34 } 35 } 36 } 37 38 TEST_CASE("AdminSetting_Disable", "[adminSettings]") 39 { 40 WHEN("Group policy") 41 { 42 SECTION("Not configured") 43 { 44 GroupPolicyTestOverride policies; 45 policies.SetState(TogglePolicy::Policy::LocalManifestFiles, PolicyState::NotConfigured); 46 REQUIRE(DisableAdminSetting(BoolAdminSetting::LocalManifestFiles)); 47 } 48 49 SECTION("Enabled") 50 { 51 GroupPolicyTestOverride policies; 52 policies.SetState(TogglePolicy::Policy::LocalManifestFiles, PolicyState::Enabled); 53 REQUIRE_FALSE(DisableAdminSetting(BoolAdminSetting::LocalManifestFiles)); 54 } 55 56 SECTION("Disabled") 57 { 58 GroupPolicyTestOverride policies; 59 policies.SetState(TogglePolicy::Policy::LocalManifestFiles, PolicyState::Disabled); 60 REQUIRE(DisableAdminSetting(BoolAdminSetting::LocalManifestFiles)); 61 } 62 } 63 } 64 65 TEST_CASE("AdminSetting_AllSettingsAreImplemented", "[adminSettings]") 66 { 67 for (auto adminSetting : GetAllBoolAdminSettings()) 68 { 69 // If we forget to add it to the conversion, it returns Unknown/None 70 REQUIRE(AdminSettingToString(adminSetting) != AdminSettingToString(BoolAdminSetting::Unknown)); 71 REQUIRE(StringToBoolAdminSetting(AdminSettingToString(adminSetting)) != BoolAdminSetting::Unknown); 72 REQUIRE(GetAdminSettingPolicy(adminSetting) != TogglePolicy::Policy::None); 73 74 GroupPolicyTestOverride policies; 75 policies.SetState(GetAdminSettingPolicy(adminSetting), PolicyState::NotConfigured); 76 77 // We should be able to configure the state. 78 // If we forget to add it, it won't persist. 79 REQUIRE(EnableAdminSetting(adminSetting)); 80 REQUIRE(IsAdminSettingEnabled(adminSetting)); 81 REQUIRE(DisableAdminSetting(adminSetting)); 82 REQUIRE_FALSE(IsAdminSettingEnabled(adminSetting)); 83 } 84 }