| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 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 "sandbox/mac/policy.h" | 5 #include "sandbox/mac/policy.h" |
| 6 | 6 |
| 7 #include "testing/gtest/include/gtest/gtest.h" | 7 #include "testing/gtest/include/gtest/gtest.h" |
| 8 | 8 |
| 9 namespace sandbox { | 9 namespace sandbox { |
| 10 | 10 |
| 11 TEST(PolicyTest, ValidEmptyPolicy) { | 11 TEST(PolicyTest, ValidEmptyPolicy) { |
| 12 EXPECT_TRUE(IsPolicyValid(BootstrapSandboxPolicy())); | 12 EXPECT_TRUE(IsPolicyValid(BootstrapSandboxPolicy())); |
| 13 } | 13 } |
| 14 | 14 |
| 15 TEST(PolicyTest, ValidPolicy) { | 15 TEST(PolicyTest, ValidPolicy) { |
| 16 BootstrapSandboxPolicy policy; | 16 BootstrapSandboxPolicy policy; |
| 17 policy["allow"] = Rule(POLICY_ALLOW); | 17 policy.rules["allow"] = Rule(POLICY_ALLOW); |
| 18 policy["deny_error"] = Rule(POLICY_DENY_ERROR); | 18 policy.rules["deny_error"] = Rule(POLICY_DENY_ERROR); |
| 19 policy["deny_dummy"] = Rule(POLICY_DENY_DUMMY_PORT); | 19 policy.rules["deny_dummy"] = Rule(POLICY_DENY_DUMMY_PORT); |
| 20 policy["substitue"] = Rule(mach_task_self()); | 20 policy.rules["substitue"] = Rule(mach_task_self()); |
| 21 EXPECT_TRUE(IsPolicyValid(policy)); | 21 EXPECT_TRUE(IsPolicyValid(policy)); |
| 22 } | 22 } |
| 23 | 23 |
| 24 TEST(PolicyTest, InvalidPolicyEmptyRule) { | 24 TEST(PolicyTest, InvalidPolicyEmptyRule) { |
| 25 Rule rule; | 25 Rule rule; |
| 26 BootstrapSandboxPolicy policy; | 26 BootstrapSandboxPolicy policy; |
| 27 policy["test"] = rule; | 27 policy.rules["test"] = rule; |
| 28 EXPECT_FALSE(IsPolicyValid(policy)); | 28 EXPECT_FALSE(IsPolicyValid(policy)); |
| 29 } | 29 } |
| 30 | 30 |
| 31 TEST(PolicyTest, InvalidPolicySubstitue) { | 31 TEST(PolicyTest, InvalidPolicySubstitue) { |
| 32 Rule rule(POLICY_SUBSTITUTE_PORT); | 32 Rule rule(POLICY_SUBSTITUTE_PORT); |
| 33 BootstrapSandboxPolicy policy; | 33 BootstrapSandboxPolicy policy; |
| 34 policy["test"] = rule; | 34 policy.rules["test"] = rule; |
| 35 EXPECT_FALSE(IsPolicyValid(policy)); | 35 EXPECT_FALSE(IsPolicyValid(policy)); |
| 36 } | 36 } |
| 37 | 37 |
| 38 TEST(PolicyTest, InvalidPolicyWithPortAllow) { | 38 TEST(PolicyTest, InvalidPolicyWithPortAllow) { |
| 39 Rule rule(POLICY_ALLOW); | 39 Rule rule(POLICY_ALLOW); |
| 40 rule.substitute_port = mach_task_self(); | 40 rule.substitute_port = mach_task_self(); |
| 41 BootstrapSandboxPolicy policy; | 41 BootstrapSandboxPolicy policy; |
| 42 policy["allow"] = rule; | 42 policy.rules["allow"] = rule; |
| 43 EXPECT_FALSE(IsPolicyValid(policy)); | 43 EXPECT_FALSE(IsPolicyValid(policy)); |
| 44 } | 44 } |
| 45 | 45 |
| 46 TEST(PolicyTest, InvalidPolicyWithPortDenyError) { | 46 TEST(PolicyTest, InvalidPolicyWithPortDenyError) { |
| 47 Rule rule(POLICY_DENY_ERROR); | 47 Rule rule(POLICY_DENY_ERROR); |
| 48 rule.substitute_port = mach_task_self(); | 48 rule.substitute_port = mach_task_self(); |
| 49 BootstrapSandboxPolicy policy; | 49 BootstrapSandboxPolicy policy; |
| 50 policy["deny_error"] = rule; | 50 policy.rules["deny_error"] = rule; |
| 51 EXPECT_FALSE(IsPolicyValid(policy)); | 51 EXPECT_FALSE(IsPolicyValid(policy)); |
| 52 } | 52 } |
| 53 | 53 |
| 54 TEST(PolicyTest, InvalidPolicyWithPortDummy) { | 54 TEST(PolicyTest, InvalidPolicyWithPortDummy) { |
| 55 Rule rule(POLICY_DENY_DUMMY_PORT); | 55 Rule rule(POLICY_DENY_DUMMY_PORT); |
| 56 rule.substitute_port = mach_task_self(); | 56 rule.substitute_port = mach_task_self(); |
| 57 BootstrapSandboxPolicy policy; | 57 BootstrapSandboxPolicy policy; |
| 58 policy["deny_dummy"] = rule; | 58 policy.rules["deny_dummy"] = rule; |
| 59 EXPECT_FALSE(IsPolicyValid(policy)); | 59 EXPECT_FALSE(IsPolicyValid(policy)); |
| 60 } | 60 } |
| 61 | 61 |
| 62 TEST(PolicyTest, InvalidPolicyDefaultRule) { |
| 63 BootstrapSandboxPolicy policy; |
| 64 policy.default_rule = Rule(); |
| 65 EXPECT_FALSE(IsPolicyValid(policy)); |
| 66 } |
| 67 |
| 68 TEST(PolicyTest, InvalidPolicyDefaultRuleSubstitue) { |
| 69 BootstrapSandboxPolicy policy; |
| 70 policy.default_rule = Rule(POLICY_SUBSTITUTE_PORT); |
| 71 EXPECT_FALSE(IsPolicyValid(policy)); |
| 72 } |
| 73 |
| 74 TEST(PolicyTest, InvalidPolicyDefaultRuleWithPortAllow) { |
| 75 Rule rule(POLICY_ALLOW); |
| 76 rule.substitute_port = mach_task_self(); |
| 77 BootstrapSandboxPolicy policy; |
| 78 policy.default_rule = rule; |
| 79 EXPECT_FALSE(IsPolicyValid(policy)); |
| 80 } |
| 81 |
| 82 TEST(PolicyTest, InvalidPolicyDefaultRuleWithPortDenyError) { |
| 83 Rule rule(POLICY_DENY_ERROR); |
| 84 rule.substitute_port = mach_task_self(); |
| 85 BootstrapSandboxPolicy policy; |
| 86 policy.default_rule = rule; |
| 87 EXPECT_FALSE(IsPolicyValid(policy)); |
| 88 } |
| 89 |
| 90 TEST(PolicyTest, InvalidPolicyDefaultRuleWithPortDummy) { |
| 91 Rule rule(POLICY_DENY_DUMMY_PORT); |
| 92 rule.substitute_port = mach_task_self(); |
| 93 BootstrapSandboxPolicy policy; |
| 94 policy.default_rule = rule; |
| 95 EXPECT_FALSE(IsPolicyValid(policy)); |
| 96 } |
| 97 |
| 62 } // namespace sandbox | 98 } // namespace sandbox |
| OLD | NEW |