#include "components/contextual_search/search_content_sharing_policy_handler.h"
#include "base/values.h"
#include "components/contextual_search/pref_names.h"
#include "components/policy/core/common/policy_map.h"
#include "components/policy/policy_constants.h"
#include "components/prefs/pref_value_map.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace contextual_search {
class SearchContentSharingPolicyHandlerTest : public testing::Test {
protected:
void SetUp() override {}
policy::PolicyMap policy_map_;
PrefValueMap prefs_;
};
TEST_F(SearchContentSharingPolicyHandlerTest, NonBooleanConversion) {
SearchContentSharingPolicyHandler handler(
"test.pref.non_boolean",
false);
policy_map_.Set(policy::key::kSearchContentSharingSettings,
policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER,
policy::POLICY_SOURCE_CLOUD, base::Value(1), nullptr);
handler.ApplyPolicySettings(policy_map_, &prefs_);
const base::Value* value;
EXPECT_TRUE(prefs_.GetValue("test.pref.non_boolean", &value));
EXPECT_EQ(base::Value(1), *value);
const base::Value* content_value;
EXPECT_TRUE(prefs_.GetValue(kSearchContentSharingSettings, &content_value));
EXPECT_EQ(base::Value(1), *content_value);
}
TEST_F(SearchContentSharingPolicyHandlerTest, BooleanConversion_Enabled) {
SearchContentSharingPolicyHandler handler(
"test.pref.boolean_enabled",
true);
policy_map_.Set(policy::key::kSearchContentSharingSettings,
policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER,
policy::POLICY_SOURCE_CLOUD, base::Value(0), nullptr);
handler.ApplyPolicySettings(policy_map_, &prefs_);
const base::Value* value;
EXPECT_TRUE(prefs_.GetValue("test.pref.boolean_enabled", &value));
EXPECT_EQ(base::Value(true), *value);
const base::Value* content_value;
EXPECT_TRUE(prefs_.GetValue(kSearchContentSharingSettings, &content_value));
EXPECT_EQ(base::Value(0), *content_value);
}
TEST_F(SearchContentSharingPolicyHandlerTest, BooleanConversion_Disabled) {
SearchContentSharingPolicyHandler handler(
"test.pref.boolean_disabled",
true);
policy_map_.Set(policy::key::kSearchContentSharingSettings,
policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER,
policy::POLICY_SOURCE_CLOUD, base::Value(1), nullptr);
handler.ApplyPolicySettings(policy_map_, &prefs_);
const base::Value* value;
EXPECT_TRUE(prefs_.GetValue("test.pref.boolean_disabled", &value));
EXPECT_EQ(base::Value(false), *value);
const base::Value* content_value;
EXPECT_TRUE(prefs_.GetValue(kSearchContentSharingSettings, &content_value));
EXPECT_EQ(base::Value(1), *content_value);
}
TEST_F(SearchContentSharingPolicyHandlerTest, PolicyNotSet) {
SearchContentSharingPolicyHandler handler(
"test.pref", false);
handler.ApplyPolicySettings(policy_map_, &prefs_);
EXPECT_TRUE(prefs_.empty());
}
}