| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/policy/configuration_policy_handler_chromeos.h" | 5 #include "chrome/browser/policy/configuration_policy_handler_chromeos.h" |
| 6 | 6 |
| 7 #include "chrome/browser/policy/policy_error_map.h" | 7 #include "chrome/browser/policy/policy_error_map.h" |
| 8 #include "chrome/browser/policy/policy_map.h" | 8 #include "chrome/browser/policy/policy_map.h" |
| 9 #include "policy/policy_constants.h" |
| 9 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
| 10 | 11 |
| 11 namespace policy { | 12 namespace policy { |
| 12 | 13 |
| 13 TEST(NetworkConfigurationPolicyHandlerTest, Empty) { | 14 TEST(NetworkConfigurationPolicyHandlerTest, Empty) { |
| 14 PolicyMap policy_map; | 15 PolicyMap policy_map; |
| 15 NetworkConfigurationPolicyHandler handler( | 16 NetworkConfigurationPolicyHandler handler( |
| 16 kPolicyOpenNetworkConfiguration, | 17 key::kOpenNetworkConfiguration, |
| 17 chromeos::NetworkUIData::ONC_SOURCE_USER_POLICY); | 18 chromeos::NetworkUIData::ONC_SOURCE_USER_POLICY); |
| 18 PolicyErrorMap errors; | 19 PolicyErrorMap errors; |
| 19 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); | 20 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); |
| 20 EXPECT_TRUE(errors.GetErrors(kPolicyOpenNetworkConfiguration).empty()); | 21 EXPECT_TRUE(errors.GetErrors(key::kOpenNetworkConfiguration).empty()); |
| 21 } | 22 } |
| 22 | 23 |
| 23 TEST(NetworkConfigurationPolicyHandlerTest, ValidONC) { | 24 TEST(NetworkConfigurationPolicyHandlerTest, ValidONC) { |
| 24 const std::string kTestONC( | 25 const std::string kTestONC( |
| 25 "{" | 26 "{" |
| 26 " \"NetworkConfigurations\": [{" | 27 " \"NetworkConfigurations\": [{" |
| 27 " \"GUID\": \"{485d6076-dd44-6b6d-69787465725f5045}\"," | 28 " \"GUID\": \"{485d6076-dd44-6b6d-69787465725f5045}\"," |
| 28 " \"Type\": \"WiFi\"," | 29 " \"Type\": \"WiFi\"," |
| 29 " \"WiFi\": {" | 30 " \"WiFi\": {" |
| 30 " \"Security\": \"WEP\"," | 31 " \"Security\": \"WEP\"," |
| 31 " \"SSID\": \"ssid\"," | 32 " \"SSID\": \"ssid\"," |
| 32 " \"Passphrase\": \"pass\"," | 33 " \"Passphrase\": \"pass\"," |
| 33 " }" | 34 " }" |
| 34 " }]" | 35 " }]" |
| 35 "}"); | 36 "}"); |
| 36 | 37 |
| 37 PolicyMap policy_map; | 38 PolicyMap policy_map; |
| 38 policy_map.Set(kPolicyOpenNetworkConfiguration, | 39 policy_map.Set(key::kOpenNetworkConfiguration, |
| 40 POLICY_LEVEL_MANDATORY, |
| 41 POLICY_SCOPE_USER, |
| 39 Value::CreateStringValue(kTestONC)); | 42 Value::CreateStringValue(kTestONC)); |
| 40 NetworkConfigurationPolicyHandler handler( | 43 NetworkConfigurationPolicyHandler handler( |
| 41 kPolicyOpenNetworkConfiguration, | 44 key::kOpenNetworkConfiguration, |
| 42 chromeos::NetworkUIData::ONC_SOURCE_USER_POLICY); | 45 chromeos::NetworkUIData::ONC_SOURCE_USER_POLICY); |
| 43 PolicyErrorMap errors; | 46 PolicyErrorMap errors; |
| 44 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); | 47 EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); |
| 45 EXPECT_TRUE(errors.GetErrors(kPolicyOpenNetworkConfiguration).empty()); | 48 EXPECT_TRUE(errors.GetErrors(key::kOpenNetworkConfiguration).empty()); |
| 46 } | 49 } |
| 47 | 50 |
| 48 TEST(NetworkConfigurationPolicyHandlerTest, WrongType) { | 51 TEST(NetworkConfigurationPolicyHandlerTest, WrongType) { |
| 49 PolicyMap policy_map; | 52 PolicyMap policy_map; |
| 50 policy_map.Set(kPolicyOpenNetworkConfiguration, | 53 policy_map.Set(key::kOpenNetworkConfiguration, |
| 54 POLICY_LEVEL_MANDATORY, |
| 55 POLICY_SCOPE_USER, |
| 51 Value::CreateBooleanValue(false)); | 56 Value::CreateBooleanValue(false)); |
| 52 NetworkConfigurationPolicyHandler handler( | 57 NetworkConfigurationPolicyHandler handler( |
| 53 kPolicyOpenNetworkConfiguration, | 58 key::kOpenNetworkConfiguration, |
| 54 chromeos::NetworkUIData::ONC_SOURCE_USER_POLICY); | 59 chromeos::NetworkUIData::ONC_SOURCE_USER_POLICY); |
| 55 PolicyErrorMap errors; | 60 PolicyErrorMap errors; |
| 56 EXPECT_FALSE(handler.CheckPolicySettings(policy_map, &errors)); | 61 EXPECT_FALSE(handler.CheckPolicySettings(policy_map, &errors)); |
| 57 EXPECT_FALSE(errors.GetErrors(kPolicyOpenNetworkConfiguration).empty()); | 62 EXPECT_FALSE(errors.GetErrors(key::kOpenNetworkConfiguration).empty()); |
| 58 } | 63 } |
| 59 | 64 |
| 60 TEST(NetworkConfigurationPolicyHandlerTest, JSONParseError) { | 65 TEST(NetworkConfigurationPolicyHandlerTest, JSONParseError) { |
| 61 const std::string kTestONC("I'm not proper JSON!"); | 66 const std::string kTestONC("I'm not proper JSON!"); |
| 62 PolicyMap policy_map; | 67 PolicyMap policy_map; |
| 63 policy_map.Set(kPolicyOpenNetworkConfiguration, | 68 policy_map.Set(key::kOpenNetworkConfiguration, |
| 69 POLICY_LEVEL_MANDATORY, |
| 70 POLICY_SCOPE_USER, |
| 64 Value::CreateStringValue(kTestONC)); | 71 Value::CreateStringValue(kTestONC)); |
| 65 NetworkConfigurationPolicyHandler handler( | 72 NetworkConfigurationPolicyHandler handler( |
| 66 kPolicyOpenNetworkConfiguration, | 73 key::kOpenNetworkConfiguration, |
| 67 chromeos::NetworkUIData::ONC_SOURCE_USER_POLICY); | 74 chromeos::NetworkUIData::ONC_SOURCE_USER_POLICY); |
| 68 PolicyErrorMap errors; | 75 PolicyErrorMap errors; |
| 69 EXPECT_FALSE(handler.CheckPolicySettings(policy_map, &errors)); | 76 EXPECT_FALSE(handler.CheckPolicySettings(policy_map, &errors)); |
| 70 EXPECT_FALSE(errors.GetErrors(kPolicyOpenNetworkConfiguration).empty()); | 77 EXPECT_FALSE(errors.GetErrors(key::kOpenNetworkConfiguration).empty()); |
| 71 } | 78 } |
| 72 | 79 |
| 73 TEST(NetworkConfigurationPolicyHandlerTest, Sanitization) { | 80 TEST(NetworkConfigurationPolicyHandlerTest, Sanitization) { |
| 74 const std::string kTestONC( | 81 const std::string kTestONC( |
| 75 "{" | 82 "{" |
| 76 " \"NetworkConfigurations\": [{" | 83 " \"NetworkConfigurations\": [{" |
| 77 " \"GUID\": \"{485d6076-dd44-6b6d-69787465725f5045}\"," | 84 " \"GUID\": \"{485d6076-dd44-6b6d-69787465725f5045}\"," |
| 78 " \"Type\": \"WiFi\"," | 85 " \"Type\": \"WiFi\"," |
| 79 " \"WiFi\": {" | 86 " \"WiFi\": {" |
| 80 " \"Security\": \"WEP\"," | 87 " \"Security\": \"WEP\"," |
| 81 " \"SSID\": \"ssid\"," | 88 " \"SSID\": \"ssid\"," |
| 82 " \"Passphrase\": \"pass\"," | 89 " \"Passphrase\": \"pass\"," |
| 83 " }" | 90 " }" |
| 84 " }]" | 91 " }]" |
| 85 "}"); | 92 "}"); |
| 86 | 93 |
| 87 PolicyMap policy_map; | 94 PolicyMap policy_map; |
| 88 policy_map.Set(kPolicyOpenNetworkConfiguration, | 95 policy_map.Set(key::kOpenNetworkConfiguration, |
| 96 POLICY_LEVEL_MANDATORY, |
| 97 POLICY_SCOPE_USER, |
| 89 Value::CreateStringValue(kTestONC)); | 98 Value::CreateStringValue(kTestONC)); |
| 90 NetworkConfigurationPolicyHandler handler( | 99 NetworkConfigurationPolicyHandler handler( |
| 91 kPolicyOpenNetworkConfiguration, | 100 key::kOpenNetworkConfiguration, |
| 92 chromeos::NetworkUIData::ONC_SOURCE_USER_POLICY); | 101 chromeos::NetworkUIData::ONC_SOURCE_USER_POLICY); |
| 93 PolicyErrorMap errors; | 102 PolicyErrorMap errors; |
| 94 handler.PrepareForDisplaying(&policy_map); | 103 handler.PrepareForDisplaying(&policy_map); |
| 95 const Value* sanitized = policy_map.Get(kPolicyOpenNetworkConfiguration); | 104 const Value* sanitized = policy_map.GetValue(key::kOpenNetworkConfiguration); |
| 96 ASSERT_TRUE(sanitized); | 105 ASSERT_TRUE(sanitized); |
| 97 std::string sanitized_onc; | 106 std::string sanitized_onc; |
| 98 EXPECT_TRUE(sanitized->GetAsString(&sanitized_onc)); | 107 EXPECT_TRUE(sanitized->GetAsString(&sanitized_onc)); |
| 99 EXPECT_FALSE(sanitized_onc.empty()); | 108 EXPECT_FALSE(sanitized_onc.empty()); |
| 100 EXPECT_EQ(std::string::npos, sanitized_onc.find("pass")); | 109 EXPECT_EQ(std::string::npos, sanitized_onc.find("pass")); |
| 101 } | 110 } |
| 102 | 111 |
| 103 } // namespace policy | 112 } // namespace policy |
| OLD | NEW |