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

Side by Side Diff: chrome/browser/chromeos/policy/consumer_unenrollment_handler_unittest.cc

Issue 751703003: Implemented consumer management unenrollment. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@dcpm
Patch Set: Rebase. Created 6 years 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/browser/chromeos/policy/consumer_unenrollment_handler.h"
6
7 #include "base/bind.h"
8 #include "base/bind_helpers.h"
9 #include "base/memory/scoped_ptr.h"
10 #include "base/thread_task_runner_handle.h"
11 #include "chrome/browser/chromeos/policy/consumer_management_service.h"
12 #include "chrome/browser/chromeos/policy/consumer_management_stage.h"
13 #include "chrome/browser/chromeos/policy/device_cloud_policy_store_chromeos.h"
14 #include "chrome/browser/chromeos/policy/enterprise_install_attributes.h"
15 #include "chrome/browser/chromeos/policy/fake_consumer_management_service.h"
16 #include "chrome/browser/chromeos/policy/fake_device_cloud_policy_manager.h"
17 #include "chrome/browser/chromeos/settings/device_settings_service.h"
18 #include "chrome/browser/chromeos/settings/device_settings_test_helper.h"
19 #include "chromeos/dbus/fake_cryptohome_client.h"
20 #include "components/ownership/mock_owner_key_util.h"
21 #include "policy/proto/device_management_backend.pb.h"
22 #include "testing/gtest/include/gtest/gtest.h"
23
24 namespace policy {
25
26 class ConsumerUnenrollmentHandlerTest
27 : public chromeos::DeviceSettingsTestBase {
28 public:
29 ConsumerUnenrollmentHandlerTest()
30 : fake_service_(new FakeConsumerManagementService()),
31 fake_cryptohome_client_(new chromeos::FakeCryptohomeClient()),
32 install_attributes_(
33 new EnterpriseInstallAttributes(fake_cryptohome_client_)) {
34 // Set up FakeConsumerManagementService.
35 fake_service_->SetStatusAndStage(
36 ConsumerManagementService::STATUS_ENROLLED,
37 ConsumerManagementStage::None());
38
39 }
40
41 void SetUp() override {
42 DeviceSettingsTestBase::SetUp();
43
44 // Set up the ownership, so that we can modify device settings.
45 owner_key_util_->SetPrivateKey(device_policy_.GetSigningKey());
46 InitOwner(device_policy_.policy_data().username(), true);
47 FlushDeviceSettings();
48
49 // Set up DeviceSettingsService.
50 device_settings_service_.SetManagementSettings(
51 enterprise_management::PolicyData::CONSUMER_MANAGED,
52 "fake_request_token",
53 "fake_device_id",
54 base::Bind(&ConsumerUnenrollmentHandlerTest::OnManagementSettingsSet,
55 base::Unretained(this)));
56 FlushDeviceSettings();
57
58 // Set up FakeDeviceCloudPolicyManager.
59 scoped_ptr<DeviceCloudPolicyStoreChromeOS> store_(
60 new DeviceCloudPolicyStoreChromeOS(
61 &device_settings_service_,
62 install_attributes_.get(),
63 base::ThreadTaskRunnerHandle::Get()));
64 fake_manager_.reset(new FakeDeviceCloudPolicyManager(
65 store_.Pass(),
66 base::ThreadTaskRunnerHandle::Get()));
67 }
68
69 void OnManagementSettingsSet() {
70 EXPECT_EQ(chromeos::DeviceSettingsService::STORE_SUCCESS,
71 device_settings_service_.status());
72 }
73
74 void RunUnenrollment() {
75 handler_.reset(new ConsumerUnenrollmentHandler(
76 &device_settings_service_,
77 fake_service_.get(),
78 fake_manager_.get()));
79 handler_->Start();
80 FlushDeviceSettings();
81 }
82
83 scoped_ptr<FakeConsumerManagementService> fake_service_;
84 chromeos::FakeCryptohomeClient* fake_cryptohome_client_;
85 scoped_ptr<EnterpriseInstallAttributes> install_attributes_;
86 scoped_ptr<FakeDeviceCloudPolicyManager> fake_manager_;
87
88 scoped_ptr<ConsumerUnenrollmentHandler> handler_;
89 };
90
91 TEST_F(ConsumerUnenrollmentHandlerTest, UnenrollmentSucceeds) {
92 EXPECT_EQ(ConsumerManagementStage::None(), fake_service_->GetStage());
93
94 RunUnenrollment();
95
96 EXPECT_EQ(ConsumerManagementStage::UnenrollmentSuccess(),
97 fake_service_->GetStage());
98 EXPECT_EQ(enterprise_management::PolicyData::LOCAL_OWNER,
99 device_settings_service_.policy_data()->management_mode());
100 EXPECT_FALSE(device_settings_service_.policy_data()->has_request_token());
101 EXPECT_FALSE(device_settings_service_.policy_data()->has_device_id());
102 }
103
104 TEST_F(ConsumerUnenrollmentHandlerTest,
105 UnenrollmentFailsOnServerError) {
106 EXPECT_EQ(ConsumerManagementStage::None(), fake_service_->GetStage());
107 fake_manager_->set_unregister_result(false);
108
109 RunUnenrollment();
110
111 EXPECT_EQ(ConsumerManagementStage::UnenrollmentDMServerFailed(),
112 fake_service_->GetStage());
113 EXPECT_EQ(enterprise_management::PolicyData::CONSUMER_MANAGED,
114 device_settings_service_.policy_data()->management_mode());
115 EXPECT_EQ("fake_request_token",
116 device_settings_service_.policy_data()->request_token());
117 EXPECT_EQ("fake_device_id",
118 device_settings_service_.policy_data()->device_id());
119 }
120
121 } // namespace policy
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698