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

Unified Diff: remoting/host/policy_watcher_unittest.cc

Issue 2682473003: Add support for multiple allowed domains (Closed)
Patch Set: Rebase patch Created 3 years, 8 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: remoting/host/policy_watcher_unittest.cc
diff --git a/remoting/host/policy_watcher_unittest.cc b/remoting/host/policy_watcher_unittest.cc
index ccbdf6d8f46dc993d2bcc1188270a4120a3ebea2..4b70a6ad5b09acadae868a5b1512677c136c8e2b 100644
--- a/remoting/host/policy_watcher_unittest.cc
+++ b/remoting/host/policy_watcher_unittest.cc
@@ -74,13 +74,29 @@ class PolicyWatcherTest : public testing::Test {
policy_watcher_ = PolicyWatcher::CreateFromPolicyLoaderForTesting(
base::WrapUnique(policy_loader_));
+ base::ListValue host_domain;
+ host_domain.AppendString(kHostDomain);
+ base::ListValue client_domain;
+ client_domain.AppendString(kClientDomain);
+ base::ListValue multiple_host_domains;
+ multiple_host_domains.AppendString("a.com");
+ multiple_host_domains.AppendString("b.com");
+ multiple_host_domains.AppendString("c.com");
+ base::ListValue multiple_client_domains;
+ multiple_client_domains.AppendString("d.com");
+ multiple_client_domains.AppendString("e.com");
+ multiple_client_domains.AppendString("f.com");
+
nat_true_.SetBoolean(key::kRemoteAccessHostFirewallTraversal, true);
nat_false_.SetBoolean(key::kRemoteAccessHostFirewallTraversal, false);
nat_one_.SetInteger(key::kRemoteAccessHostFirewallTraversal, 1);
nat_one_domain_full_.SetInteger(key::kRemoteAccessHostFirewallTraversal, 1);
- nat_one_domain_full_.SetString(key::kRemoteAccessHostDomain, kHostDomain);
- domain_empty_.SetString(key::kRemoteAccessHostDomain, std::string());
- domain_full_.SetString(key::kRemoteAccessHostDomain, kHostDomain);
+ nat_one_domain_full_.Set(key::kRemoteAccessHostDomainList,
+ host_domain.CreateDeepCopy());
+ domain_empty_.Set(key::kRemoteAccessHostDomainList,
+ base::MakeUnique<base::ListValue>());
+ domain_full_.Set(key::kRemoteAccessHostDomainList,
+ host_domain.CreateDeepCopy());
SetDefaults(nat_true_others_default_);
nat_true_others_default_.SetBoolean(key::kRemoteAccessHostFirewallTraversal,
true);
@@ -88,30 +104,32 @@ class PolicyWatcherTest : public testing::Test {
nat_false_others_default_.SetBoolean(
key::kRemoteAccessHostFirewallTraversal, false);
SetDefaults(domain_empty_others_default_);
- domain_empty_others_default_.SetString(key::kRemoteAccessHostDomain,
- std::string());
+ domain_empty_others_default_.Set(key::kRemoteAccessHostDomainList,
+ base::MakeUnique<base::ListValue>());
SetDefaults(domain_full_others_default_);
- domain_full_others_default_.SetString(key::kRemoteAccessHostDomain,
- kHostDomain);
+ domain_full_others_default_.Set(key::kRemoteAccessHostDomainList,
+ host_domain.CreateDeepCopy());
nat_true_domain_empty_.SetBoolean(key::kRemoteAccessHostFirewallTraversal,
true);
- nat_true_domain_empty_.SetString(key::kRemoteAccessHostDomain,
- std::string());
+ nat_true_domain_empty_.Set(key::kRemoteAccessHostDomainList,
+ base::MakeUnique<base::ListValue>());
nat_true_domain_full_.SetBoolean(key::kRemoteAccessHostFirewallTraversal,
true);
- nat_true_domain_full_.SetString(key::kRemoteAccessHostDomain, kHostDomain);
+ nat_true_domain_full_.Set(key::kRemoteAccessHostDomainList,
+ host_domain.CreateDeepCopy());
nat_false_domain_empty_.SetBoolean(key::kRemoteAccessHostFirewallTraversal,
false);
- nat_false_domain_empty_.SetString(key::kRemoteAccessHostDomain,
- std::string());
+ nat_false_domain_empty_.Set(key::kRemoteAccessHostDomainList,
+ base::MakeUnique<base::ListValue>());
nat_false_domain_full_.SetBoolean(key::kRemoteAccessHostFirewallTraversal,
false);
- nat_false_domain_full_.SetString(key::kRemoteAccessHostDomain, kHostDomain);
+ nat_false_domain_full_.Set(key::kRemoteAccessHostDomainList,
+ host_domain.CreateDeepCopy());
SetDefaults(nat_true_domain_empty_others_default_);
nat_true_domain_empty_others_default_.SetBoolean(
key::kRemoteAccessHostFirewallTraversal, true);
- nat_true_domain_empty_others_default_.SetString(
- key::kRemoteAccessHostDomain, std::string());
+ nat_true_domain_empty_others_default_.Set(
+ key::kRemoteAccessHostDomainList, base::MakeUnique<base::ListValue>());
unknown_policies_.SetString("UnknownPolicyOne", std::string());
unknown_policies_.SetString("UnknownPolicyTwo", std::string());
unknown_policies_.SetBoolean("RemoteAccessHostUnknownPolicyThree", true);
@@ -129,8 +147,8 @@ class PolicyWatcherTest : public testing::Test {
port_range_malformed_.SetString(key::kRemoteAccessHostUdpPortRange,
"malformed");
port_range_malformed_domain_full_.MergeDictionary(&port_range_malformed_);
- port_range_malformed_domain_full_.SetString(key::kRemoteAccessHostDomain,
- kHostDomain);
+ port_range_malformed_domain_full_.Set(key::kRemoteAccessHostDomainList,
+ host_domain.CreateDeepCopy());
curtain_true_.SetBoolean(key::kRemoteAccessHostRequireCurtain, true);
curtain_false_.SetBoolean(key::kRemoteAccessHostRequireCurtain, false);
@@ -152,6 +170,37 @@ class PolicyWatcherTest : public testing::Test {
key::kRemoteAccessHostAllowUiAccessForRemoteAssistance, true);
remote_assistance_uiaccess_false_.SetBoolean(
key::kRemoteAccessHostAllowUiAccessForRemoteAssistance, false);
+
+ deprecated_policies_.SetString(key::kRemoteAccessHostDomain, kHostDomain);
+ deprecated_policies_.SetString(key::kRemoteAccessHostClientDomain,
+ kClientDomain);
+ // Deprecated policies should get converted if new ones aren't present.
+ SetDefaults(deprecated_policies_expected_);
+ deprecated_policies_expected_.Set(key::kRemoteAccessHostDomainList,
+ host_domain.CreateDeepCopy());
+ deprecated_policies_expected_.Set(key::kRemoteAccessHostClientDomainList,
+ client_domain.CreateDeepCopy());
+
+ deprecated_and_new_policies_.SetString(key::kRemoteAccessHostDomain,
+ kHostDomain);
+ deprecated_and_new_policies_.SetString(key::kRemoteAccessHostClientDomain,
+ kClientDomain);
+ deprecated_and_new_policies_.Set(key::kRemoteAccessHostDomainList,
+ multiple_host_domains.CreateDeepCopy());
+ deprecated_and_new_policies_.Set(key::kRemoteAccessHostClientDomainList,
+ multiple_client_domains.CreateDeepCopy());
+ // Deprecated policies should just be dropped in new ones are present.
+ SetDefaults(deprecated_and_new_policies_expected_);
+ deprecated_and_new_policies_expected_.Set(
+ key::kRemoteAccessHostDomainList,
+ multiple_host_domains.CreateDeepCopy());
+ deprecated_and_new_policies_expected_.Set(
+ key::kRemoteAccessHostClientDomainList,
+ multiple_client_domains.CreateDeepCopy());
+
+ // Empty strings should be treated as not set.
+ deprecated_empty_strings_.SetString(key::kRemoteAccessHostDomain, "");
+ deprecated_empty_strings_.SetString(key::kRemoteAccessHostClientDomain, "");
}
void TearDown() override {
@@ -197,6 +246,7 @@ class PolicyWatcherTest : public testing::Test {
MOCK_METHOD0(PostPolicyWatcherShutdown, void());
static const char* kHostDomain;
+ static const char* kClientDomain;
static const char* kPortRange;
base::MessageLoop message_loop_;
MockPolicyCallback mock_policy_callback_;
@@ -244,14 +294,21 @@ class PolicyWatcherTest : public testing::Test {
base::DictionaryValue third_party_auth_cert_empty_;
base::DictionaryValue remote_assistance_uiaccess_true_;
base::DictionaryValue remote_assistance_uiaccess_false_;
+ base::DictionaryValue deprecated_policies_;
+ base::DictionaryValue deprecated_policies_expected_;
+ base::DictionaryValue deprecated_and_new_policies_;
+ base::DictionaryValue deprecated_and_new_policies_expected_;
+ base::DictionaryValue deprecated_empty_strings_;
private:
void SetDefaults(base::DictionaryValue& dict) {
dict.SetBoolean(key::kRemoteAccessHostFirewallTraversal, true);
dict.SetBoolean(key::kRemoteAccessHostAllowRelayedConnection, true);
dict.SetString(key::kRemoteAccessHostUdpPortRange, "");
- dict.SetString(key::kRemoteAccessHostClientDomain, std::string());
- dict.SetString(key::kRemoteAccessHostDomain, std::string());
+ dict.Set(key::kRemoteAccessHostClientDomainList,
+ base::MakeUnique<base::ListValue>());
+ dict.Set(key::kRemoteAccessHostDomainList,
+ base::MakeUnique<base::ListValue>());
dict.SetBoolean(key::kRemoteAccessHostMatchUsername, false);
dict.SetString(key::kRemoteAccessHostTalkGadgetPrefix,
kDefaultHostTalkGadgetPrefix);
@@ -271,6 +328,7 @@ class PolicyWatcherTest : public testing::Test {
};
const char* PolicyWatcherTest::kHostDomain = "google.com";
+const char* PolicyWatcherTest::kClientDomain = "client.com";
const char* PolicyWatcherTest::kPortRange = "12400-12409";
TEST_F(PolicyWatcherTest, None) {
@@ -659,6 +717,11 @@ TEST_F(PolicyWatcherTest, PolicySchemaAndPolicyWatcherShouldBeInSync) {
// policies, so we have to skip them here.
continue;
}
+ if (key == policy::key::kRemoteAccessHostDomain ||
+ key == policy::key::kRemoteAccessHostClientDomain) {
+ // These policies are deprecated and get removed during normalization
+ continue;
+ }
actual_schema[key] = it.schema().type();
}
@@ -684,4 +747,26 @@ TEST_F(PolicyWatcherTest, SchemaTypeCheck) {
EXPECT_EQ(boolean_schema.type(), base::Value::Type::BOOLEAN);
}
+TEST_F(PolicyWatcherTest, DeprecatedOnly) {
+ EXPECT_CALL(mock_policy_callback_,
+ OnPolicyUpdatePtr(IsPolicies(&deprecated_policies_expected_)));
+ SetPolicies(deprecated_policies_);
+ StartWatching();
+}
+
+TEST_F(PolicyWatcherTest, DeprecatedAndNew) {
+ EXPECT_CALL(
+ mock_policy_callback_,
+ OnPolicyUpdatePtr(IsPolicies(&deprecated_and_new_policies_expected_)));
+ SetPolicies(deprecated_and_new_policies_);
+ StartWatching();
+}
+
+TEST_F(PolicyWatcherTest, DeprecatedEmpty) {
+ EXPECT_CALL(mock_policy_callback_,
+ OnPolicyUpdatePtr(IsPolicies(&GetDefaultValues())));
+ SetPolicies(deprecated_empty_strings_);
+ StartWatching();
+}
+
} // namespace remoting

Powered by Google App Engine
This is Rietveld 408576698