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 |