| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/chromeos/policy/device_local_account_policy_service.h" | 5 #include "chrome/browser/chromeos/policy/device_local_account_policy_service.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/bind_helpers.h" | 8 #include "base/bind_helpers.h" |
| 9 #include "base/callback.h" | 9 #include "base/callback.h" |
| 10 #include "base/memory/scoped_ptr.h" | |
| 11 #include "chrome/browser/chromeos/policy/device_local_account.h" | 10 #include "chrome/browser/chromeos/policy/device_local_account.h" |
| 12 #include "chrome/browser/chromeos/policy/device_local_account_policy_provider.h" | 11 #include "chrome/browser/chromeos/policy/device_local_account_policy_provider.h" |
| 13 #include "chrome/browser/chromeos/settings/cros_settings.h" | 12 #include "chrome/browser/chromeos/settings/cros_settings.h" |
| 14 #include "chrome/browser/chromeos/settings/device_settings_service.h" | 13 #include "chrome/browser/chromeos/settings/device_settings_service.h" |
| 15 #include "chrome/browser/chromeos/settings/device_settings_test_helper.h" | 14 #include "chrome/browser/chromeos/settings/device_settings_test_helper.h" |
| 16 #include "chrome/browser/policy/cloud/cloud_policy_client.h" | 15 #include "chrome/browser/policy/cloud/cloud_policy_client.h" |
| 17 #include "chrome/browser/policy/cloud/cloud_policy_constants.h" | 16 #include "chrome/browser/policy/cloud/cloud_policy_constants.h" |
| 18 #include "chrome/browser/policy/cloud/cloud_policy_service.h" | 17 #include "chrome/browser/policy/cloud/cloud_policy_service.h" |
| 19 #include "chrome/browser/policy/cloud/mock_device_management_service.h" | 18 #include "chrome/browser/policy/cloud/mock_device_management_service.h" |
| 20 #include "chrome/browser/policy/cloud/policy_builder.h" | 19 #include "chrome/browser/policy/cloud/policy_builder.h" |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 73 expected_policy_map_.Set(key::kShowLogoutButtonInTray, | 72 expected_policy_map_.Set(key::kShowLogoutButtonInTray, |
| 74 POLICY_LEVEL_MANDATORY, | 73 POLICY_LEVEL_MANDATORY, |
| 75 POLICY_SCOPE_USER, | 74 POLICY_SCOPE_USER, |
| 76 Value::CreateBooleanValue(true), | 75 Value::CreateBooleanValue(true), |
| 77 NULL); | 76 NULL); |
| 78 expected_policy_map_.Set(key::kFullscreenAllowed, | 77 expected_policy_map_.Set(key::kFullscreenAllowed, |
| 79 POLICY_LEVEL_MANDATORY, | 78 POLICY_LEVEL_MANDATORY, |
| 80 POLICY_SCOPE_USER, | 79 POLICY_SCOPE_USER, |
| 81 Value::CreateBooleanValue(false), | 80 Value::CreateBooleanValue(false), |
| 82 NULL); | 81 NULL); |
| 83 scoped_ptr<base::ListValue> allowed_extension_types(new base::ListValue()); | |
| 84 allowed_extension_types->AppendString("hosted_app"); | |
| 85 expected_policy_map_.Set(key::kExtensionAllowedTypes, | |
| 86 POLICY_LEVEL_MANDATORY, | |
| 87 POLICY_SCOPE_USER, | |
| 88 allowed_extension_types.release(), | |
| 89 NULL); | |
| 90 | 82 |
| 91 // Explicitly set value. | 83 // Explicitly set value. |
| 92 expected_policy_map_.Set(key::kDisableSpdy, | 84 expected_policy_map_.Set(key::kDisableSpdy, |
| 93 POLICY_LEVEL_MANDATORY, | 85 POLICY_LEVEL_MANDATORY, |
| 94 POLICY_SCOPE_USER, | 86 POLICY_SCOPE_USER, |
| 95 Value::CreateBooleanValue(true), | 87 Value::CreateBooleanValue(true), |
| 96 NULL); | 88 NULL); |
| 97 | 89 |
| 98 device_local_account_policy_.payload().mutable_disablespdy()->set_value( | 90 device_local_account_policy_.payload().mutable_disablespdy()->set_value( |
| 99 true); | 91 true); |
| (...skipping 395 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 495 NULL); | 487 NULL); |
| 496 EXPECT_TRUE(expected_policy_bundle.Equals(provider_.policies())); | 488 EXPECT_TRUE(expected_policy_bundle.Equals(provider_.policies())); |
| 497 | 489 |
| 498 // Any values set for the |ShelfAutoHideBehavior|, |ShowLogoutButtonInTray| | 490 // Any values set for the |ShelfAutoHideBehavior|, |ShowLogoutButtonInTray| |
| 499 // and |ExtensionAllowedTypes| policies should be overridden. | 491 // and |ExtensionAllowedTypes| policies should be overridden. |
| 500 EXPECT_CALL(provider_observer_, OnUpdatePolicy(&provider_)).Times(AtLeast(1)); | 492 EXPECT_CALL(provider_observer_, OnUpdatePolicy(&provider_)).Times(AtLeast(1)); |
| 501 device_local_account_policy_.payload().mutable_shelfautohidebehavior()-> | 493 device_local_account_policy_.payload().mutable_shelfautohidebehavior()-> |
| 502 set_value("Always"); | 494 set_value("Always"); |
| 503 device_local_account_policy_.payload().mutable_showlogoutbuttonintray()-> | 495 device_local_account_policy_.payload().mutable_showlogoutbuttonintray()-> |
| 504 set_value(false); | 496 set_value(false); |
| 505 device_local_account_policy_.payload().mutable_extensionallowedtypes()-> | |
| 506 mutable_value()->mutable_entries()->Clear(); | |
| 507 device_local_account_policy_.Build(); | 497 device_local_account_policy_.Build(); |
| 508 device_settings_test_helper_.set_device_local_account_policy_blob( | 498 device_settings_test_helper_.set_device_local_account_policy_blob( |
| 509 PolicyBuilder::kFakeUsername, device_local_account_policy_.GetBlob()); | 499 PolicyBuilder::kFakeUsername, device_local_account_policy_.GetBlob()); |
| 510 broker->core()->store()->Load(); | 500 broker->core()->store()->Load(); |
| 511 FlushDeviceSettings(); | 501 FlushDeviceSettings(); |
| 512 Mock::VerifyAndClearExpectations(&provider_observer_); | 502 Mock::VerifyAndClearExpectations(&provider_observer_); |
| 513 EXPECT_TRUE(expected_policy_bundle.Equals(provider_.policies())); | 503 EXPECT_TRUE(expected_policy_bundle.Equals(provider_.policies())); |
| 514 | 504 |
| 515 // Account disappears, policy should stay in effect. | 505 // Account disappears, policy should stay in effect. |
| 516 EXPECT_CALL(provider_observer_, OnUpdatePolicy(&provider_)) | 506 EXPECT_CALL(provider_observer_, OnUpdatePolicy(&provider_)) |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 576 ASSERT_TRUE(request_job); | 566 ASSERT_TRUE(request_job); |
| 577 em::DeviceManagementResponse response; | 567 em::DeviceManagementResponse response; |
| 578 response.mutable_policy_response()->add_response()->CopyFrom( | 568 response.mutable_policy_response()->add_response()->CopyFrom( |
| 579 device_local_account_policy_.policy()); | 569 device_local_account_policy_.policy()); |
| 580 request_job->SendResponse(DM_STATUS_SUCCESS, response); | 570 request_job->SendResponse(DM_STATUS_SUCCESS, response); |
| 581 FlushDeviceSettings(); | 571 FlushDeviceSettings(); |
| 582 Mock::VerifyAndClearExpectations(&provider_observer_); | 572 Mock::VerifyAndClearExpectations(&provider_observer_); |
| 583 } | 573 } |
| 584 | 574 |
| 585 } // namespace policy | 575 } // namespace policy |
| OLD | NEW |