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

Unified Diff: chrome/browser/chromeos/arc/arc_policy_bridge_unittest.cc

Issue 2441563002: arc: Create intermediate directories in c/b/c/arc (Closed)
Patch Set: Re-rebase to ToT Created 4 years, 2 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
« no previous file with comments | « chrome/browser/chromeos/arc/arc_policy_bridge.cc ('k') | chrome/browser/chromeos/arc/arc_print_service.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/chromeos/arc/arc_policy_bridge_unittest.cc
diff --git a/chrome/browser/chromeos/arc/arc_policy_bridge_unittest.cc b/chrome/browser/chromeos/arc/arc_policy_bridge_unittest.cc
deleted file mode 100644
index ff0afe98bba86bed8b6ab8dad21a9dfc56cb208d..0000000000000000000000000000000000000000
--- a/chrome/browser/chromeos/arc/arc_policy_bridge_unittest.cc
+++ /dev/null
@@ -1,347 +0,0 @@
-// Copyright 2016 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 <memory>
-#include <string>
-
-#include "base/macros.h"
-#include "base/memory/ptr_util.h"
-#include "base/message_loop/message_loop.h"
-#include "base/values.h"
-#include "chrome/browser/chromeos/arc/arc_policy_bridge.h"
-#include "components/arc/test/fake_arc_bridge_service.h"
-#include "components/arc/test/fake_policy_instance.h"
-#include "components/policy/core/common/mock_policy_service.h"
-#include "components/policy/core/common/policy_map.h"
-#include "components/policy/core/common/policy_namespace.h"
-#include "components/policy/core/common/policy_types.h"
-#include "components/policy/policy_constants.h"
-#include "mojo/public/cpp/bindings/string.h"
-#include "testing/gmock/include/gmock/gmock.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace {
-
-char kFakeONC[] =
- "{\"NetworkConfigurations\":["
- "{\"GUID\":\"{485d6076-dd44-6b6d-69787465725f5040}\","
- "\"Type\":\"WiFi\","
- "\"Name\":\"My WiFi Network\","
- "\"WiFi\":{"
- "\"HexSSID\":\"737369642D6E6F6E65\"," // "ssid-none"
- "\"Security\":\"None\"}"
- "}"
- "],"
- "\"GlobalNetworkConfiguration\":{"
- "\"AllowOnlyPolicyNetworksToAutoconnect\":true,"
- "},"
- "\"Certificates\":["
- "{ \"GUID\":\"{f998f760-272b-6939-4c2beffe428697ac}\","
- "\"PKCS12\":\"abc\","
- "\"Type\":\"Client\"},"
- "{\"Type\":\"Authority\","
- "\"TrustBits\":[\"Web\"],"
- "\"X509\":\"TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ"
- "1dCBieSB0aGlzIHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpc"
- "yBhIGx1c3Qgb2YgdGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCB"
- "pbiB0aGUgY29udGludWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZ"
- "GdlLCBleGNlZWRzIHRoZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4"
- "=\","
- "\"GUID\":\"{00f79111-51e0-e6e0-76b3b55450d80a1b}\"}"
- "]}";
-
-// Helper class to define a PolicyStringCallback which verifies that it was run.
-// Wraps a bool initially set to |false| and verifies that it's been set to
-// |true| before destruction.
-class CheckedBoolean {
- public:
- CheckedBoolean() {}
- ~CheckedBoolean() { EXPECT_TRUE(value_); }
-
- void set_value(bool value) { value_ = value; }
-
- private:
- bool value_ = false;
-
- DISALLOW_COPY_AND_ASSIGN(CheckedBoolean);
-};
-
-void ExpectPolicyString(std::unique_ptr<CheckedBoolean> was_run,
- mojo::String expected,
- mojo::String policies) {
- EXPECT_EQ(expected, policies);
- was_run->set_value(true);
-}
-
-arc::ArcPolicyBridge::GetPoliciesCallback PolicyStringCallback(
- mojo::String expected) {
- std::unique_ptr<CheckedBoolean> was_run(new CheckedBoolean);
- return base::Bind(&ExpectPolicyString, base::Passed(&was_run),
- base::Passed(&expected));
-}
-
-} // namespace
-
-using testing::_;
-using testing::ReturnRef;
-
-namespace arc {
-
-class ArcPolicyBridgeTest : public testing::Test {
- public:
- ArcPolicyBridgeTest() {}
-
- void SetUp() override {
- bridge_service_.reset(new FakeArcBridgeService());
- policy_bridge_.reset(
- new ArcPolicyBridge(bridge_service_.get(), &policy_service_));
- policy_bridge_->OverrideIsManagedForTesting(true);
-
- EXPECT_CALL(policy_service_,
- GetPolicies(policy::PolicyNamespace(
- policy::POLICY_DOMAIN_CHROME, std::string())))
- .WillRepeatedly(ReturnRef(policy_map_));
- EXPECT_CALL(policy_service_, AddObserver(policy::POLICY_DOMAIN_CHROME, _))
- .Times(1);
-
- policy_instance_.reset(new FakePolicyInstance);
- bridge_service_->policy()->SetInstance(policy_instance_.get());
- }
-
- protected:
- ArcPolicyBridge* policy_bridge() { return policy_bridge_.get(); }
- FakePolicyInstance* policy_instance() { return policy_instance_.get(); }
- policy::PolicyMap& policy_map() { return policy_map_; }
-
- private:
- // Not an unused variable. Unit tests do not have a message loop by themselves
- // and mojo needs a message loop for communication.
- base::MessageLoop loop_;
- std::unique_ptr<FakeArcBridgeService> bridge_service_;
- std::unique_ptr<ArcPolicyBridge> policy_bridge_;
- // Always keep policy_instance_ below bridge_service_, so that
- // policy_instance_ is destructed first. It needs to remove itself as
- // observer.
- std::unique_ptr<FakePolicyInstance> policy_instance_;
- policy::PolicyMap policy_map_;
- policy::MockPolicyService policy_service_;
-
- DISALLOW_COPY_AND_ASSIGN(ArcPolicyBridgeTest);
-};
-
-TEST_F(ArcPolicyBridgeTest, UnmanagedTest) {
- policy_bridge()->OverrideIsManagedForTesting(false);
- policy_bridge()->GetPolicies(PolicyStringCallback(""));
-}
-
-TEST_F(ArcPolicyBridgeTest, EmptyPolicyTest) {
- // No policy is set, result should be empty.
- policy_bridge()->GetPolicies(PolicyStringCallback("{}"));
-}
-
-TEST_F(ArcPolicyBridgeTest, ArcPolicyTest) {
- policy_map().Set(
- policy::key::kArcPolicy, policy::POLICY_LEVEL_MANDATORY,
- policy::POLICY_SCOPE_USER, policy::POLICY_SOURCE_CLOUD,
- base::MakeUnique<base::StringValue>(
- "{\"applications\":"
- "[{\"packageName\":\"com.google.android.apps.youtube.kids\","
- "\"installType\":\"REQUIRED\","
- "\"lockTaskAllowed\":false,"
- "\"permissionGrants\":[]"
- "}],"
- "\"defaultPermissionPolicy\":\"GRANT\""
- "}"),
- nullptr);
- policy_bridge()->GetPolicies(PolicyStringCallback(
- "{\"applications\":"
- "[{\"installType\":\"REQUIRED\","
- "\"lockTaskAllowed\":false,"
- "\"packageName\":\"com.google.android.apps.youtube.kids\","
- "\"permissionGrants\":[]"
- "}],"
- "\"defaultPermissionPolicy\":\"GRANT\""
- "}"));
-}
-
-TEST_F(ArcPolicyBridgeTest, HompageLocationTest) {
- // This policy will not be passed on, result should be empty.
- policy_map().Set(
- policy::key::kHomepageLocation, policy::POLICY_LEVEL_MANDATORY,
- policy::POLICY_SCOPE_USER, policy::POLICY_SOURCE_CLOUD,
- base::MakeUnique<base::StringValue>("http://chromium.org"), nullptr);
- policy_bridge()->GetPolicies(PolicyStringCallback("{}"));
-}
-
-TEST_F(ArcPolicyBridgeTest, DisableScreenshotsTest) {
- policy_map().Set(policy::key::kDisableScreenshots,
- policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER,
- policy::POLICY_SOURCE_CLOUD,
- base::MakeUnique<base::FundamentalValue>(true), nullptr);
- policy_bridge()->GetPolicies(
- PolicyStringCallback("{\"screenCaptureDisabled\":true}"));
-}
-
-TEST_F(ArcPolicyBridgeTest, VideoCaptureAllowedTest) {
- policy_map().Set(policy::key::kVideoCaptureAllowed,
- policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER,
- policy::POLICY_SOURCE_CLOUD,
- base::MakeUnique<base::FundamentalValue>(false), nullptr);
- policy_bridge()->GetPolicies(
- PolicyStringCallback("{\"cameraDisabled\":true}"));
-}
-
-TEST_F(ArcPolicyBridgeTest, AudioCaptureAllowedTest) {
- policy_map().Set(policy::key::kAudioCaptureAllowed,
- policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER,
- policy::POLICY_SOURCE_CLOUD,
- base::MakeUnique<base::FundamentalValue>(false), nullptr);
- policy_bridge()->GetPolicies(
- PolicyStringCallback("{\"unmuteMicrophoneDisabled\":true}"));
-}
-
-TEST_F(ArcPolicyBridgeTest, DefaultGeolocationSettingTest) {
- policy_map().Set(policy::key::kDefaultGeolocationSetting,
- policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER,
- policy::POLICY_SOURCE_CLOUD,
- base::MakeUnique<base::FundamentalValue>(1), nullptr);
- policy_bridge()->GetPolicies(
- PolicyStringCallback("{\"shareLocationDisabled\":false}"));
- policy_map().Set(policy::key::kDefaultGeolocationSetting,
- policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER,
- policy::POLICY_SOURCE_CLOUD,
- base::MakeUnique<base::FundamentalValue>(2), nullptr);
- policy_bridge()->GetPolicies(
- PolicyStringCallback("{\"shareLocationDisabled\":true}"));
- policy_map().Set(policy::key::kDefaultGeolocationSetting,
- policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER,
- policy::POLICY_SOURCE_CLOUD,
- base::MakeUnique<base::FundamentalValue>(3), nullptr);
- policy_bridge()->GetPolicies(
- PolicyStringCallback("{\"shareLocationDisabled\":false}"));
-}
-
-TEST_F(ArcPolicyBridgeTest, ExternalStorageDisabledTest) {
- policy_map().Set(policy::key::kExternalStorageDisabled,
- policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER,
- policy::POLICY_SOURCE_CLOUD,
- base::MakeUnique<base::FundamentalValue>(true), nullptr);
- policy_bridge()->GetPolicies(
- PolicyStringCallback("{\"mountPhysicalMediaDisabled\":true}"));
-}
-
-TEST_F(ArcPolicyBridgeTest, URLBlacklistTest) {
- base::ListValue blacklist;
- blacklist.AppendString("www.blacklist1.com");
- blacklist.AppendString("www.blacklist2.com");
- policy_map().Set(policy::key::kURLBlacklist, policy::POLICY_LEVEL_MANDATORY,
- policy::POLICY_SCOPE_USER, policy::POLICY_SOURCE_CLOUD,
- blacklist.CreateDeepCopy(), nullptr);
- policy_bridge()->GetPolicies(
- PolicyStringCallback("{\"globalAppRestrictions\":"
- "{\"com.android.browser:URLBlacklist\":"
- "[\"www.blacklist1.com\","
- "\"www.blacklist2.com\""
- "]}}"));
-}
-
-TEST_F(ArcPolicyBridgeTest, URLWhitelistTest) {
- base::ListValue whitelist;
- whitelist.AppendString("www.whitelist1.com");
- whitelist.AppendString("www.whitelist2.com");
- policy_map().Set(policy::key::kURLWhitelist, policy::POLICY_LEVEL_MANDATORY,
- policy::POLICY_SCOPE_USER, policy::POLICY_SOURCE_CLOUD,
- whitelist.CreateDeepCopy(), nullptr);
- policy_bridge()->GetPolicies(
- PolicyStringCallback("{\"globalAppRestrictions\":"
- "{\"com.android.browser:URLWhitelist\":"
- "[\"www.whitelist1.com\","
- "\"www.whitelist2.com\""
- "]}}"));
-}
-
-TEST_F(ArcPolicyBridgeTest, CaCertificateTest) {
- // Enable CA certificates sync.
- policy_map().Set(
- policy::key::kArcCertificatesSyncMode, policy::POLICY_LEVEL_MANDATORY,
- policy::POLICY_SCOPE_USER, policy::POLICY_SOURCE_CLOUD,
- base::MakeUnique<base::FundamentalValue>(ArcCertsSyncMode::COPY_CA_CERTS),
- nullptr);
- policy_map().Set(policy::key::kOpenNetworkConfiguration,
- policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER,
- policy::POLICY_SOURCE_CLOUD,
- base::MakeUnique<base::StringValue>(kFakeONC), nullptr);
- policy_bridge()->GetPolicies(PolicyStringCallback(
- "{\"caCerts\":"
- "[{\"X509\":\"TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24"
- "sIGJ1dCBieSB0aGlzIHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGl"
- "jaCBpcyBhIGx1c3Qgb2YgdGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGV"
- "saWdodCBpbiB0aGUgY29udGludWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Y"
- "ga25vd2xlZGdlLCBleGNlZWRzIHRoZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCB"
- "wbGVhc3VyZS4=\"}"
- "]}"));
-
- // Disable CA certificates sync.
- policy_map().Set(
- policy::key::kArcCertificatesSyncMode, policy::POLICY_LEVEL_MANDATORY,
- policy::POLICY_SCOPE_USER, policy::POLICY_SOURCE_CLOUD,
- base::MakeUnique<base::FundamentalValue>(ArcCertsSyncMode::SYNC_DISABLED),
- nullptr);
- policy_bridge()->GetPolicies(PolicyStringCallback("{}"));
-}
-
-TEST_F(ArcPolicyBridgeTest, DeveloperToolsDisabledTest) {
- policy_map().Set(policy::key::kDeveloperToolsDisabled,
- policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER,
- policy::POLICY_SOURCE_CLOUD,
- base::MakeUnique<base::FundamentalValue>(true), nullptr);
- policy_bridge()->GetPolicies(
- PolicyStringCallback("{\"debuggingFeaturesDisabled\":true}"));
-}
-
-TEST_F(ArcPolicyBridgeTest, MultiplePoliciesTest) {
- policy_map().Set(
- policy::key::kArcPolicy, policy::POLICY_LEVEL_MANDATORY,
- policy::POLICY_SCOPE_USER, policy::POLICY_SOURCE_CLOUD,
- base::MakeUnique<base::StringValue>(
- "{\"applications\":"
- "[{\"packageName\":\"com.google.android.apps.youtube.kids\","
- "\"installType\":\"REQUIRED\","
- "\"lockTaskAllowed\":false,"
- "\"permissionGrants\":[]"
- "}],"
- "\"defaultPermissionPolicy\":\"GRANT\"}"),
- nullptr);
- policy_map().Set(
- policy::key::kHomepageLocation, policy::POLICY_LEVEL_MANDATORY,
- policy::POLICY_SCOPE_USER, policy::POLICY_SOURCE_CLOUD,
- base::MakeUnique<base::StringValue>("http://chromium.org"), nullptr);
- policy_map().Set(policy::key::kVideoCaptureAllowed,
- policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER,
- policy::POLICY_SOURCE_CLOUD,
- base::MakeUnique<base::FundamentalValue>(false), nullptr);
- policy_bridge()->GetPolicies(PolicyStringCallback(
- "{\"applications\":"
- "[{\"installType\":\"REQUIRED\","
- "\"lockTaskAllowed\":false,"
- "\"packageName\":\"com.google.android.apps.youtube.kids\","
- "\"permissionGrants\":[]"
- "}],"
- "\"cameraDisabled\":true,"
- "\"defaultPermissionPolicy\":\"GRANT\""
- "}"));
-}
-
-// This and the following test send the policies through a mojo connection
-// between a PolicyInstance and the PolicyBridge.
-TEST_F(ArcPolicyBridgeTest, PolicyInstanceUnmanagedTest) {
- policy_bridge()->OverrideIsManagedForTesting(false);
- policy_instance()->CallGetPolicies(PolicyStringCallback(""));
-}
-
-TEST_F(ArcPolicyBridgeTest, PolicyInstanceManagedTest) {
- policy_instance()->CallGetPolicies(PolicyStringCallback("{}"));
-}
-
-} // namespace arc
« no previous file with comments | « chrome/browser/chromeos/arc/arc_policy_bridge.cc ('k') | chrome/browser/chromeos/arc/arc_print_service.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698