| // Copyright 2024 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #import "ios/chrome/browser/web/model/annotations/annotations_util.h" |
| |
| #import "base/values.h" |
| #import "components/prefs/pref_registry_simple.h" |
| #import "components/prefs/testing_pref_service.h" |
| #import "ios/chrome/browser/shared/model/prefs/pref_names.h" |
| #import "testing/gtest_mac.h" |
| #import "testing/platform_test.h" |
| |
| class AnnotationUtilTest : public PlatformTest { |
| public: |
| void SetUp() override { |
| PlatformTest::SetUp(); |
| prefs_ = std::make_unique<TestingPrefServiceSimple>(); |
| prefs_->registry()->RegisterDictionaryPref(prefs::kWebAnnotationsPolicy); |
| } |
| |
| std::unique_ptr<TestingPrefServiceSimple> prefs_; |
| }; |
| |
| TEST_F(AnnotationUtilTest, TestPolicyDefaultEnabled) { |
| EXPECT_EQ(WebAnnotationPolicyValue::kEnabled, |
| GetPolicyForType(prefs_.get(), WebAnnotationType::kAddresses)); |
| EXPECT_EQ(WebAnnotationPolicyValue::kEnabled, |
| GetPolicyForType(prefs_.get(), WebAnnotationType::kPhoneNumbers)); |
| } |
| |
| TEST_F(AnnotationUtilTest, TestGetPolicyForType) { |
| base::Value::Dict dict; |
| dict.Set("default", "enabled"); |
| dict.Set("calendar", "longpressonly"); |
| dict.Set("email", "disabled"); |
| |
| prefs_->SetDict(prefs::kWebAnnotationsPolicy, std::move(dict)); |
| EXPECT_EQ(WebAnnotationPolicyValue::kLongPressOnly, |
| GetPolicyForType(prefs_.get(), WebAnnotationType::kCalendar)); |
| EXPECT_EQ(WebAnnotationPolicyValue::kEnabled, |
| GetPolicyForType(prefs_.get(), WebAnnotationType::kPhoneNumbers)); |
| EXPECT_EQ(WebAnnotationPolicyValue::kDisabled, |
| GetPolicyForType(prefs_.get(), WebAnnotationType::kEMailAddresses)); |
| } |