| Index: chrome/browser/content_settings/content_settings_supervised_provider_unittest.cc
|
| diff --git a/chrome/browser/content_settings/content_settings_supervised_provider_unittest.cc b/chrome/browser/content_settings/content_settings_supervised_provider_unittest.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..46fff91d0906648e76d6d78bf67d8c66961aef01
|
| --- /dev/null
|
| +++ b/chrome/browser/content_settings/content_settings_supervised_provider_unittest.cc
|
| @@ -0,0 +1,121 @@
|
| +// Copyright (c) 2015 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "chrome/browser/content_settings/content_settings_supervised_provider.h"
|
| +
|
| +#include <string>
|
| +
|
| +#include "base/memory/scoped_ptr.h"
|
| +#include "base/prefs/testing_pref_store.h"
|
| +#include "chrome/browser/content_settings/content_settings_mock_observer.h"
|
| +#include "chrome/browser/supervised_user/supervised_user_constants.h"
|
| +#include "chrome/browser/supervised_user/supervised_user_settings_service.h"
|
| +#include "components/content_settings/core/browser/content_settings_rule.h"
|
| +#include "components/content_settings/core/browser/content_settings_utils.h"
|
| +#include "testing/gtest/include/gtest/gtest.h"
|
| +
|
| +using ::testing::_;
|
| +
|
| +namespace content_settings {
|
| +
|
| +class SupervisedUserProviderTest : public ::testing::Test {
|
| + public:
|
| + void SetUp() override;
|
| + void TearDown() override;
|
| +
|
| + protected:
|
| + SupervisedUserSettingsService service_;
|
| + scoped_refptr<TestingPrefStore> pref_store_;
|
| + scoped_ptr<SupervisedProvider> provider_;
|
| + content_settings::MockObserver mock_observer_;
|
| +};
|
| +
|
| +void SupervisedUserProviderTest::SetUp() {
|
| + pref_store_ = new TestingPrefStore();
|
| + pref_store_->NotifyInitializationCompleted();
|
| + service_.Init(pref_store_);
|
| + service_.SetActive(true);
|
| + provider_.reset(new SupervisedProvider(&service_));
|
| + provider_->AddObserver(&mock_observer_);
|
| +}
|
| +
|
| +void SupervisedUserProviderTest::TearDown() {
|
| + provider_->RemoveObserver(&mock_observer_);
|
| + provider_->ShutdownOnUIThread();
|
| + service_.Shutdown();
|
| +}
|
| +
|
| +TEST_F(SupervisedUserProviderTest, GeolocationTest) {
|
| + scoped_ptr<RuleIterator> rule_iterator(provider_->GetRuleIterator(
|
| + CONTENT_SETTINGS_TYPE_GEOLOCATION, std::string(), false));
|
| + EXPECT_FALSE(rule_iterator->HasNext());
|
| + rule_iterator.reset();
|
| +
|
| + // Disable the default geolocation setting.
|
| + EXPECT_CALL(mock_observer_, OnContentSettingChanged(
|
| + _, _, CONTENT_SETTINGS_TYPE_GEOLOCATION, ""));
|
| + service_.SetLocalSetting(
|
| + supervised_users::kGeolocationDisabled,
|
| + scoped_ptr<base::Value>(new base::FundamentalValue(true)));
|
| +
|
| + rule_iterator.reset(provider_->GetRuleIterator(
|
| + CONTENT_SETTINGS_TYPE_GEOLOCATION, std::string(), false));
|
| + ASSERT_TRUE(rule_iterator->HasNext());
|
| + Rule rule = rule_iterator->Next();
|
| + EXPECT_FALSE(rule_iterator->HasNext());
|
| +
|
| + EXPECT_EQ(ContentSettingsPattern::Wildcard(), rule.primary_pattern);
|
| + EXPECT_EQ(ContentSettingsPattern::Wildcard(), rule.secondary_pattern);
|
| + EXPECT_EQ(CONTENT_SETTING_BLOCK, ValueToContentSetting(rule.value.get()));
|
| + rule_iterator.reset();
|
| +
|
| + // Re-enable the default geolocation setting.
|
| + EXPECT_CALL(mock_observer_, OnContentSettingChanged(
|
| + _, _, CONTENT_SETTINGS_TYPE_GEOLOCATION, ""));
|
| + service_.SetLocalSetting(
|
| + supervised_users::kGeolocationDisabled,
|
| + scoped_ptr<base::Value>(new base::FundamentalValue(false)));
|
| +
|
| + rule_iterator.reset(provider_->GetRuleIterator(
|
| + CONTENT_SETTINGS_TYPE_GEOLOCATION, std::string(), false));
|
| + EXPECT_FALSE(rule_iterator->HasNext());
|
| +}
|
| +
|
| +TEST_F(SupervisedUserProviderTest, CameraMicTest) {
|
| + scoped_ptr<RuleIterator> rule_iterator(provider_->GetRuleIterator(
|
| + CONTENT_SETTINGS_TYPE_MEDIASTREAM, std::string(), false));
|
| + EXPECT_FALSE(rule_iterator->HasNext());
|
| + rule_iterator.reset();
|
| +
|
| + // Disable the default camera and microphone setting.
|
| + EXPECT_CALL(mock_observer_, OnContentSettingChanged(
|
| + _, _, CONTENT_SETTINGS_TYPE_MEDIASTREAM, ""));
|
| + service_.SetLocalSetting(
|
| + supervised_users::kCameraMicDisabled,
|
| + scoped_ptr<base::Value>(new base::FundamentalValue(true)));
|
| +
|
| + rule_iterator.reset(provider_->GetRuleIterator(
|
| + CONTENT_SETTINGS_TYPE_MEDIASTREAM, std::string(), false));
|
| + ASSERT_TRUE(rule_iterator->HasNext());
|
| + Rule rule = rule_iterator->Next();
|
| + EXPECT_FALSE(rule_iterator->HasNext());
|
| +
|
| + EXPECT_EQ(ContentSettingsPattern::Wildcard(), rule.primary_pattern);
|
| + EXPECT_EQ(ContentSettingsPattern::Wildcard(), rule.secondary_pattern);
|
| + EXPECT_EQ(CONTENT_SETTING_BLOCK, ValueToContentSetting(rule.value.get()));
|
| + rule_iterator.reset();
|
| +
|
| + // Re-enable the default camera and microphone setting.
|
| + EXPECT_CALL(mock_observer_, OnContentSettingChanged(
|
| + _, _, CONTENT_SETTINGS_TYPE_MEDIASTREAM, ""));
|
| + service_.SetLocalSetting(
|
| + supervised_users::kCameraMicDisabled,
|
| + scoped_ptr<base::Value>(new base::FundamentalValue(false)));
|
| +
|
| + rule_iterator.reset(provider_->GetRuleIterator(
|
| + CONTENT_SETTINGS_TYPE_MEDIASTREAM, std::string(), false));
|
| + EXPECT_FALSE(rule_iterator->HasNext());
|
| +}
|
| +
|
| +} // namespace content_settings
|
|
|