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

Unified Diff: chrome/browser/chromeos/login/signed_settings_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/login/signed_settings_unittest.cc
diff --git a/chrome/browser/chromeos/login/signed_settings_unittest.cc b/chrome/browser/chromeos/login/signed_settings_unittest.cc
deleted file mode 100644
index a6083a71ce6b7cc1c66646581a8c1fb2894a4173..0000000000000000000000000000000000000000
--- a/chrome/browser/chromeos/login/signed_settings_unittest.cc
+++ /dev/null
@@ -1,398 +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/login/signed_settings.h"
-
-#include "base/logging.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_owner_key_utils.h"
-#include "chrome/browser/chromeos/login/mock_ownership_service.h"
-#include "chrome/browser/chromeos/login/owner_manager_unittest.h"
-#include "chrome/browser/policy/proto/chrome_device_policy.pb.h"
-#include "chrome/browser/policy/proto/device_management_backend.pb.h"
-#include "chromeos/dbus/mock_dbus_thread_manager.h"
-#include "chromeos/dbus/mock_session_manager_client.h"
-#include "content/public/test/test_browser_thread.h"
-#include "testing/gmock/include/gmock/gmock.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-using ::testing::A;
-using ::testing::AnyNumber;
-using ::testing::Return;
-using ::testing::ReturnRef;
-using ::testing::SaveArg;
-using ::testing::StrEq;
-using ::testing::WithArg;
-using ::testing::_;
-using content::BrowserThread;
-using google::protobuf::RepeatedPtrField;
-
-namespace em = enterprise_management;
-namespace chromeos {
-
-namespace {
-template <class T>
-class DummyDelegate : public SignedSettings::Delegate<T> {
- public:
- explicit DummyDelegate(T to_expect)
- : expect_success_(false),
- expected_failure_(SignedSettings::SUCCESS),
- expected_(to_expect),
- run_(false) {}
- virtual ~DummyDelegate() { EXPECT_TRUE(run_); }
- virtual void OnSettingsOpCompleted(SignedSettings::ReturnCode code,
- T value) {
- run_ = true;
- if (expect_success_)
- compare_expected(value);
- EXPECT_EQ(expected_failure_, code);
- }
- virtual void expect_success() {
- expect_success_ = true;
- expected_failure_ = SignedSettings::SUCCESS;
- }
- virtual void expect_failure(SignedSettings::ReturnCode code) {
- expect_success_ = false;
- expected_failure_ = code;
- }
-
- protected:
- bool expect_success_;
- SignedSettings::ReturnCode expected_failure_;
- T expected_;
- bool run_;
- virtual void compare_expected(T to_compare) = 0;
-};
-
-template <class T>
-class NormalDelegate : public DummyDelegate<T> {
- public:
- explicit NormalDelegate(T to_expect) : DummyDelegate<T>(to_expect) {}
- virtual ~NormalDelegate() {}
- protected:
- virtual void compare_expected(T to_compare) {
- // without this-> this won't build.
- EXPECT_EQ(this->expected_, to_compare);
- }
-};
-
-class ProtoDelegate : public DummyDelegate<const em::PolicyFetchResponse&> {
- public:
- explicit ProtoDelegate(const em::PolicyFetchResponse& e)
- : DummyDelegate<const em::PolicyFetchResponse&>(e) {
- }
- virtual ~ProtoDelegate() {}
- protected:
- virtual void compare_expected(const em::PolicyFetchResponse& to_compare) {
- std::string ex_string, comp_string;
- EXPECT_TRUE(expected_.SerializeToString(&ex_string));
- EXPECT_TRUE(to_compare.SerializeToString(&comp_string));
- EXPECT_EQ(ex_string, comp_string);
- }
-};
-
-} // anonymous namespace
-
-class SignedSettingsTest : public testing::Test {
- public:
- SignedSettingsTest()
- : fake_prop_(kAccountsPrefAllowGuest),
- fake_signature_("false"),
- fake_value_(false),
- fake_value_signature_(
- fake_signature_.c_str(),
- fake_signature_.c_str() + fake_signature_.length()),
- message_loop_(MessageLoop::TYPE_UI),
- ui_thread_(BrowserThread::UI, &message_loop_),
- file_thread_(BrowserThread::FILE),
- mock_(new MockKeyUtils),
- injector_(mock_) /* injector_ takes ownership of mock_ */,
- mock_dbus_thread_manager_(new MockDBusThreadManager) {
- }
-
- virtual ~SignedSettingsTest() {}
-
- virtual void SetUp() {
- file_thread_.Start();
- DBusThreadManager::InitializeForTesting(mock_dbus_thread_manager_);
- }
-
- virtual void TearDown() {
- OwnerKeyUtils::set_factory(NULL);
- DBusThreadManager::Shutdown();
- }
-
- void mock_service(SignedSettings* s, MockOwnershipService* m) {
- s->set_service(m);
- }
-
- void FailingStorePolicyOp(const OwnerManager::KeyOpCode return_code) {
- NormalDelegate<bool> d(false);
- d.expect_failure(SignedSettings::MapKeyOpCode(return_code));
-
- em::PolicyFetchResponse fake_policy;
- fake_policy.set_policy_data(fake_prop_);
- std::string serialized;
- ASSERT_TRUE(fake_policy.SerializeToString(&serialized));
-
- scoped_refptr<SignedSettings> s(
- SignedSettings::CreateStorePolicyOp(&fake_policy, &d));
-
- mock_service(s.get(), &m_);
- EXPECT_CALL(m_, StartSigningAttempt(StrEq(fake_prop_), _))
- .Times(1);
-
- s->Execute();
- s->OnKeyOpComplete(return_code, std::vector<uint8>());
- message_loop_.RunAllPending();
- }
-
- em::PolicyData BuildPolicyData(std::vector<std::string> whitelist) {
- em::PolicyData to_return;
- em::ChromeDeviceSettingsProto pol;
- em::GuestModeEnabledProto* allow = pol.mutable_guest_mode_enabled();
- allow->set_guest_mode_enabled(false);
- pol.mutable_device_proxy_settings()->set_proxy_mode("direct");
-
- if (!whitelist.empty()) {
- em::UserWhitelistProto* whitelist_proto = pol.mutable_user_whitelist();
- for (std::vector<std::string>::const_iterator it = whitelist.begin();
- it != whitelist.end();
- ++it) {
- whitelist_proto->add_user_whitelist(*it);
- }
- }
-
- to_return.set_policy_type(chromeos::kDevicePolicyType);
- to_return.set_policy_value(pol.SerializeAsString());
- return to_return;
- }
-
- em::PolicyFetchResponse BuildProto(const std::string& data,
- const std::string& sig,
- std::string* out_serialized) {
- em::PolicyFetchResponse fake_policy;
- if (!data.empty())
- fake_policy.set_policy_data(data);
- if (!sig.empty())
- fake_policy.set_policy_data_signature(sig);
- EXPECT_TRUE(fake_policy.SerializeToString(out_serialized));
- return fake_policy;
- }
-
- const std::string fake_prop_;
- const std::string fake_signature_;
- const base::FundamentalValue fake_value_;
- const std::vector<uint8> fake_value_signature_;
- MockOwnershipService m_;
-
- MessageLoop message_loop_;
- content::TestBrowserThread ui_thread_;
- content::TestBrowserThread file_thread_;
-
- MockKeyUtils* mock_;
- MockInjector injector_;
- MockDBusThreadManager* mock_dbus_thread_manager_;
-
- ScopedStubCrosEnabler stub_cros_enabler_;
-};
-
-ACTION_P(Retrieve, policy_blob) { arg0.Run(policy_blob); }
-ACTION_P(Store, success) { arg1.Run(success); }
-
-TEST_F(SignedSettingsTest, SignAndStorePolicy) {
- NormalDelegate<bool> d(true);
- d.expect_success();
-
- em::PolicyData in_pol = BuildPolicyData(std::vector<std::string>());
- std::string data_serialized = in_pol.SerializeAsString();
- std::string serialized;
- em::PolicyFetchResponse fake_policy = BuildProto(data_serialized,
- std::string(),
- &serialized);
- scoped_refptr<SignedSettings> s(
- SignedSettings::CreateStorePolicyOp(&fake_policy, &d));
-
- mock_service(s.get(), &m_);
- EXPECT_CALL(m_, StartSigningAttempt(StrEq(data_serialized), _))
- .Times(1);
- em::PolicyData out_pol;
-
- // Ask for signature over unsigned policy.
- s->Execute();
- message_loop_.RunAllPending();
-
- // Fake out a successful signing.
- std::string signed_serialized;
- em::PolicyFetchResponse signed_policy = BuildProto(data_serialized,
- fake_signature_,
- &signed_serialized);
- MockSessionManagerClient* client =
- mock_dbus_thread_manager_->mock_session_manager_client();
- EXPECT_CALL(*client, StoreDevicePolicy(signed_serialized, _))
- .WillOnce(Store(true))
- .RetiresOnSaturation();
- s->OnKeyOpComplete(OwnerManager::SUCCESS, fake_value_signature_);
- message_loop_.RunAllPending();
-}
-
-TEST_F(SignedSettingsTest, StoreSignedPolicy) {
- NormalDelegate<bool> d(true);
- d.expect_success();
-
- em::PolicyData in_pol = BuildPolicyData(std::vector<std::string>());
- std::string serialized = in_pol.SerializeAsString();
- std::string signed_serialized;
- em::PolicyFetchResponse signed_policy = BuildProto(serialized,
- fake_signature_,
- &signed_serialized);
- scoped_refptr<SignedSettings> s(
- SignedSettings::CreateStorePolicyOp(&signed_policy, &d));
- MockSessionManagerClient* client =
- mock_dbus_thread_manager_->mock_session_manager_client();
- EXPECT_CALL(*client, StoreDevicePolicy(signed_serialized, _))
- .WillOnce(Store(true))
- .RetiresOnSaturation();
-
- mock_service(s.get(), &m_);
- em::PolicyData out_pol;
-
- s->Execute();
- message_loop_.RunAllPending();
-}
-
-TEST_F(SignedSettingsTest, StorePolicyNoKey) {
- FailingStorePolicyOp(OwnerManager::KEY_UNAVAILABLE);
-}
-
-TEST_F(SignedSettingsTest, StorePolicyFailed) {
- FailingStorePolicyOp(OwnerManager::OPERATION_FAILED);
-}
-
-TEST_F(SignedSettingsTest, StorePolicyNoPolicyData) {
- NormalDelegate<bool> d(false);
- d.expect_failure(SignedSettings::OPERATION_FAILED);
-
- std::string serialized;
- em::PolicyFetchResponse fake_policy = BuildProto(std::string(),
- std::string(),
- &serialized);
- scoped_refptr<SignedSettings> s(
- SignedSettings::CreateStorePolicyOp(&fake_policy, &d));
-
- s->Execute();
- message_loop_.RunAllPending();
-}
-
-TEST_F(SignedSettingsTest, RetrievePolicy) {
- em::PolicyData in_pol = BuildPolicyData(std::vector<std::string>());
- std::string serialized = in_pol.SerializeAsString();
- std::string signed_serialized;
- em::PolicyFetchResponse signed_policy = BuildProto(serialized,
- fake_signature_,
- &signed_serialized);
- ProtoDelegate d(signed_policy);
- d.expect_success();
- scoped_refptr<SignedSettings> s(SignedSettings::CreateRetrievePolicyOp(&d));
-
- MockSessionManagerClient* client =
- mock_dbus_thread_manager_->mock_session_manager_client();
- EXPECT_CALL(*client, RetrieveDevicePolicy(_))
- .WillOnce(Retrieve(signed_serialized))
- .RetiresOnSaturation();
-
- mock_service(s.get(), &m_);
- EXPECT_CALL(m_, StartVerifyAttempt(serialized, fake_value_signature_, _))
- .Times(1);
- em::PolicyData out_pol;
-
- s->Execute();
- message_loop_.RunAllPending();
-
- s->OnKeyOpComplete(OwnerManager::SUCCESS, std::vector<uint8>());
- message_loop_.RunAllPending();
-}
-
-TEST_F(SignedSettingsTest, RetrieveNullPolicy) {
- em::PolicyFetchResponse policy;
- ProtoDelegate d(policy);
- d.expect_failure(SignedSettings::NOT_FOUND);
- scoped_refptr<SignedSettings> s(SignedSettings::CreateRetrievePolicyOp(&d));
-
- MockSessionManagerClient* client =
- mock_dbus_thread_manager_->mock_session_manager_client();
- EXPECT_CALL(*client, RetrieveDevicePolicy(_))
- .WillOnce(Retrieve(""))
- .RetiresOnSaturation();
-
- s->Execute();
- message_loop_.RunAllPending();
-}
-
-TEST_F(SignedSettingsTest, RetrieveEmptyPolicy) {
- std::string serialized;
- em::PolicyFetchResponse policy = BuildProto("", "", &serialized);
- ProtoDelegate d(policy);
- d.expect_failure(SignedSettings::NOT_FOUND);
- scoped_refptr<SignedSettings> s(SignedSettings::CreateRetrievePolicyOp(&d));
-
- MockSessionManagerClient* client =
- mock_dbus_thread_manager_->mock_session_manager_client();
- EXPECT_CALL(*client, RetrieveDevicePolicy(_))
- .WillOnce(Retrieve(""))
- .RetiresOnSaturation();
-
- s->Execute();
- message_loop_.RunAllPending();
-}
-
-TEST_F(SignedSettingsTest, RetrieveUnsignedPolicy) {
- std::string serialized;
- em::PolicyFetchResponse policy = BuildProto(fake_prop_,
- std::string(),
- &serialized);
- ProtoDelegate d(policy);
- d.expect_failure(SignedSettings::BAD_SIGNATURE);
- scoped_refptr<SignedSettings> s(SignedSettings::CreateRetrievePolicyOp(&d));
-
- MockSessionManagerClient* client =
- mock_dbus_thread_manager_->mock_session_manager_client();
- EXPECT_CALL(*client, RetrieveDevicePolicy(_))
- .WillOnce(Retrieve(serialized))
- .RetiresOnSaturation();
-
- s->Execute();
- message_loop_.RunAllPending();
-}
-
-TEST_F(SignedSettingsTest, RetrieveMalsignedPolicy) {
- std::string signed_serialized;
- em::PolicyFetchResponse signed_policy = BuildProto(fake_prop_,
- fake_signature_,
- &signed_serialized);
- ProtoDelegate d(signed_policy);
- d.expect_failure(SignedSettings::BAD_SIGNATURE);
- scoped_refptr<SignedSettings> s(SignedSettings::CreateRetrievePolicyOp(&d));
-
- MockSessionManagerClient* client =
- mock_dbus_thread_manager_->mock_session_manager_client();
- EXPECT_CALL(*client, RetrieveDevicePolicy(_))
- .WillOnce(Retrieve(signed_serialized))
- .RetiresOnSaturation();
-
- mock_service(s.get(), &m_);
- EXPECT_CALL(m_, StartVerifyAttempt(fake_prop_, fake_value_signature_, _))
- .Times(1);
-
- s->Execute();
- message_loop_.RunAllPending();
-
- s->OnKeyOpComplete(OwnerManager::OPERATION_FAILED, std::vector<uint8>());
- message_loop_.RunAllPending();
-}
-
-} // namespace chromeos
« no previous file with comments | « chrome/browser/chromeos/login/signed_settings_helper_unittest.cc ('k') | chrome/browser/chromeos/login/user_manager_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698