Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(706)

Unified Diff: chrome/browser/chromeos/device_settings_provider_unittest.cc

Issue 10824112: Move Chrome OS device settings stuff to chrome/browser/chromeos/settings. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase. Created 8 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chromeos/device_settings_provider_unittest.cc
diff --git a/chrome/browser/chromeos/device_settings_provider_unittest.cc b/chrome/browser/chromeos/device_settings_provider_unittest.cc
deleted file mode 100644
index 887f93441cfacbb15ab1d9c62597bf08c800960f..0000000000000000000000000000000000000000
--- a/chrome/browser/chromeos/device_settings_provider_unittest.cc
+++ /dev/null
@@ -1,257 +0,0 @@
-// Copyright (c) 2012 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/chromeos/device_settings_provider.h"
-
-#include <string>
-
-#include "base/bind.h"
-#include "base/message_loop.h"
-#include "base/values.h"
-#include "chrome/browser/chromeos/cros/cros_library.h"
-#include "chrome/browser/chromeos/cros_settings_names.h"
-#include "chrome/browser/chromeos/login/mock_signed_settings_helper.h"
-#include "chrome/browser/chromeos/login/mock_user_manager.h"
-#include "chrome/browser/chromeos/login/ownership_service.h"
-#include "chrome/browser/policy/proto/chrome_device_policy.pb.h"
-#include "chrome/browser/policy/proto/device_management_backend.pb.h"
-#include "chrome/test/base/testing_browser_process.h"
-#include "chrome/test/base/testing_pref_service.h"
-#include "content/public/test/test_browser_thread.h"
-#include "testing/gmock/include/gmock/gmock.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace em = enterprise_management;
-namespace chromeos {
-
-using ::testing::_;
-using ::testing::AnyNumber;
-using ::testing::Mock;
-using ::testing::Return;
-using ::testing::SaveArg;
-
-class DeviceSettingsProviderTest: public testing::Test {
-public:
- MOCK_METHOD1(SettingChanged, void(const std::string&));
- MOCK_METHOD0(GetTrustedCallback, void(void));
-
-protected:
- DeviceSettingsProviderTest()
- : message_loop_(MessageLoop::TYPE_UI),
- ui_thread_(content::BrowserThread::UI, &message_loop_),
- file_thread_(content::BrowserThread::FILE, &message_loop_),
- local_state_(static_cast<TestingBrowserProcess*>(g_browser_process)) {
- }
-
- virtual ~DeviceSettingsProviderTest() {
- }
-
- virtual void SetUp() OVERRIDE {
- PrepareEmptyPolicy();
-
- EXPECT_CALL(*this, SettingChanged(_))
- .Times(AnyNumber());
-
- EXPECT_CALL(signed_settings_helper_, StartRetrievePolicyOp(_))
- .WillRepeatedly(
- MockSignedSettingsHelperRetrievePolicy(SignedSettings::SUCCESS,
- policy_blob_));
- EXPECT_CALL(signed_settings_helper_, StartStorePolicyOp(_,_))
- .WillRepeatedly(DoAll(
- SaveArg<0>(&policy_blob_),
- MockSignedSettingsHelperStorePolicy(SignedSettings::SUCCESS)));
-
- EXPECT_CALL(*mock_user_manager_.user_manager(), IsCurrentUserOwner())
- .WillRepeatedly(Return(true));
-
- provider_.reset(
- new DeviceSettingsProvider(
- base::Bind(&DeviceSettingsProviderTest::SettingChanged,
- base::Unretained(this)),
- &signed_settings_helper_));
- provider_->set_ownership_status(OwnershipService::OWNERSHIP_TAKEN);
- // To prevent flooding the logs.
- provider_->set_retries_left(1);
- provider_->Reload();
- }
-
- void PrepareEmptyPolicy() {
- em::PolicyData policy;
- em::ChromeDeviceSettingsProto pol;
- // Set metrics to disabled to prevent us from running into code that is not
- // mocked.
- pol.mutable_metrics_enabled()->set_metrics_enabled(false);
- policy.set_policy_type(chromeos::kDevicePolicyType);
- policy.set_username("me@owner");
- policy.set_policy_value(pol.SerializeAsString());
- // Wipe the signed settings store.
- policy_blob_.set_policy_data(policy.SerializeAsString());
- policy_blob_.set_policy_data_signature("false");
- }
-
- em::PolicyFetchResponse policy_blob_;
-
- scoped_ptr<DeviceSettingsProvider> provider_;
-
- MessageLoop message_loop_;
- content::TestBrowserThread ui_thread_;
- content::TestBrowserThread file_thread_;
-
- ScopedTestingLocalState local_state_;
-
- MockSignedSettingsHelper signed_settings_helper_;
-
- ScopedStubCrosEnabler stub_cros_enabler_;
- ScopedMockUserManagerEnabler mock_user_manager_;
-};
-
-TEST_F(DeviceSettingsProviderTest, InitializationTest) {
- // Verify that the policy blob has been correctly parsed and trusted.
- // The trusted flag should be set before the call to PrepareTrustedValues.
- EXPECT_EQ(CrosSettingsProvider::TRUSTED,
- provider_->PrepareTrustedValues(
- base::Bind(&DeviceSettingsProviderTest::GetTrustedCallback,
- base::Unretained(this))));
- const base::Value* value = provider_->Get(kStatsReportingPref);
- ASSERT_TRUE(value);
- bool bool_value;
- EXPECT_TRUE(value->GetAsBoolean(&bool_value));
- EXPECT_FALSE(bool_value);
-}
-
-TEST_F(DeviceSettingsProviderTest, InitializationTestUnowned) {
- // No calls to the SignedSettingsHelper should occur in this case!
- Mock::VerifyAndClear(&signed_settings_helper_);
-
- provider_->set_ownership_status(OwnershipService::OWNERSHIP_NONE);
- provider_->Reload();
- // The trusted flag should be set before the call to PrepareTrustedValues.
- EXPECT_EQ(CrosSettingsProvider::TRUSTED,
- provider_->PrepareTrustedValues(
- base::Bind(&DeviceSettingsProviderTest::GetTrustedCallback,
- base::Unretained(this))));
- const base::Value* value = provider_->Get(kReleaseChannel);
- ASSERT_TRUE(value);
- std::string string_value;
- EXPECT_TRUE(value->GetAsString(&string_value));
- EXPECT_TRUE(string_value.empty());
-
- // Sets should succeed though and be readable from the cache.
- base::StringValue new_value("stable-channel");
- provider_->Set(kReleaseChannel, new_value);
- // Do one more reload here to make sure we don't flip randomly between stores.
- provider_->Reload();
- // Verify the change has not been applied.
- const base::Value* saved_value = provider_->Get(kReleaseChannel);
- ASSERT_TRUE(saved_value);
- EXPECT_TRUE(saved_value->GetAsString(&string_value));
- ASSERT_EQ("stable-channel", string_value);
-}
-
-TEST_F(DeviceSettingsProviderTest, SetPrefFailed) {
- // If we are not the owner no sets should work.
- EXPECT_CALL(*mock_user_manager_.user_manager(), IsCurrentUserOwner())
- .WillOnce(Return(false));
- base::FundamentalValue value(true);
- provider_->Set(kStatsReportingPref, value);
- // Verify the change has not been applied.
- const base::Value* saved_value = provider_->Get(kStatsReportingPref);
- ASSERT_TRUE(saved_value);
- bool bool_value;
- EXPECT_TRUE(saved_value->GetAsBoolean(&bool_value));
- EXPECT_FALSE(bool_value);
-}
-
-TEST_F(DeviceSettingsProviderTest, SetPrefSucceed) {
- base::FundamentalValue value(true);
- provider_->Set(kStatsReportingPref, value);
- // Verify the change has not been applied.
- const base::Value* saved_value = provider_->Get(kStatsReportingPref);
- ASSERT_TRUE(saved_value);
- bool bool_value;
- EXPECT_TRUE(saved_value->GetAsBoolean(&bool_value));
- EXPECT_TRUE(bool_value);
-}
-
-TEST_F(DeviceSettingsProviderTest, PolicyRetrievalFailedBadSingature) {
- // No calls to the SignedSettingsHelper should occur in this case!
- Mock::VerifyAndClear(&signed_settings_helper_);
- EXPECT_CALL(signed_settings_helper_, StartRetrievePolicyOp(_))
- .WillRepeatedly(
- MockSignedSettingsHelperRetrievePolicy(
- SignedSettings::BAD_SIGNATURE,
- policy_blob_));
- provider_->Reload();
- // Verify that the cache policy blob is not "trusted".
- EXPECT_EQ(CrosSettingsProvider::PERMANENTLY_UNTRUSTED,
- provider_->PrepareTrustedValues(
- base::Bind(&DeviceSettingsProviderTest::GetTrustedCallback,
- base::Unretained(this))));
-}
-
-TEST_F(DeviceSettingsProviderTest, PolicyRetrievalOperationFailedPermanently) {
- // No calls to the SignedSettingsHelper should occur in this case!
- Mock::VerifyAndClear(&signed_settings_helper_);
- EXPECT_CALL(signed_settings_helper_, StartRetrievePolicyOp(_))
- .WillRepeatedly(
- MockSignedSettingsHelperRetrievePolicy(
- SignedSettings::OPERATION_FAILED,
- policy_blob_));
- provider_->Reload();
- // Verify that the cache policy blob is not "trusted".
- EXPECT_EQ(CrosSettingsProvider::PERMANENTLY_UNTRUSTED,
- provider_->PrepareTrustedValues(
- base::Bind(&DeviceSettingsProviderTest::GetTrustedCallback,
- base::Unretained(this))));
-}
-
-TEST_F(DeviceSettingsProviderTest, PolicyRetrievalOperationFailedOnce) {
- // No calls to the SignedSettingsHelper should occur in this case!
- Mock::VerifyAndClear(&signed_settings_helper_);
- EXPECT_CALL(signed_settings_helper_, StartRetrievePolicyOp(_))
- .WillOnce(
- MockSignedSettingsHelperRetrievePolicy(
- SignedSettings::OPERATION_FAILED,
- policy_blob_))
- .WillRepeatedly(
- MockSignedSettingsHelperRetrievePolicy(
- SignedSettings::SUCCESS,
- policy_blob_));
- // Should be trusted after an automatic reload.
- provider_->Reload();
- // Verify that the cache policy blob is not "trusted".
- EXPECT_EQ(CrosSettingsProvider::TRUSTED,
- provider_->PrepareTrustedValues(
- base::Bind(&DeviceSettingsProviderTest::GetTrustedCallback,
- base::Unretained(this))));
-}
-
-TEST_F(DeviceSettingsProviderTest, PolicyFailedPermanentlyNotification) {
- Mock::VerifyAndClear(&signed_settings_helper_);
- EXPECT_CALL(signed_settings_helper_, StartRetrievePolicyOp(_))
- .WillRepeatedly(
- MockSignedSettingsHelperRetrievePolicy(
- SignedSettings::OPERATION_FAILED,
- policy_blob_));
-
- provider_->set_trusted_status(CrosSettingsProvider::TEMPORARILY_UNTRUSTED);
- EXPECT_CALL(*this, GetTrustedCallback());
- EXPECT_EQ(CrosSettingsProvider::TEMPORARILY_UNTRUSTED,
- provider_->PrepareTrustedValues(
- base::Bind(&DeviceSettingsProviderTest::GetTrustedCallback,
- base::Unretained(this))));
- provider_->Reload();
-}
-
-TEST_F(DeviceSettingsProviderTest, PolicyLoadNotification) {
- provider_->set_trusted_status(CrosSettingsProvider::TEMPORARILY_UNTRUSTED);
- EXPECT_CALL(*this, GetTrustedCallback());
- EXPECT_EQ(CrosSettingsProvider::TEMPORARILY_UNTRUSTED,
- provider_->PrepareTrustedValues(
- base::Bind(&DeviceSettingsProviderTest::GetTrustedCallback,
- base::Unretained(this))));
- provider_->Reload();
-}
-
-} // namespace chromeos
« no previous file with comments | « chrome/browser/chromeos/device_settings_provider.cc ('k') | chrome/browser/chromeos/kiosk_mode/kiosk_mode_settings.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698