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/extensions/api/permissions/permissions_api_helpers.h" | 5 #include "chrome/browser/extensions/api/permissions/permissions_api_helpers.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <memory> | 9 #include <memory> |
10 | 10 |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
78 UnpackPermissionSet(permissions_object, true, &error); | 78 UnpackPermissionSet(permissions_object, true, &error); |
79 EXPECT_TRUE(error.empty()); | 79 EXPECT_TRUE(error.empty()); |
80 | 80 |
81 EXPECT_EQ(permission_set, *from_value); | 81 EXPECT_EQ(permission_set, *from_value); |
82 } | 82 } |
83 | 83 |
84 // Tests various error conditions and edge cases when unpacking values | 84 // Tests various error conditions and edge cases when unpacking values |
85 // into PermissionSets. | 85 // into PermissionSets. |
86 TEST(ExtensionPermissionsAPIHelpers, Unpack) { | 86 TEST(ExtensionPermissionsAPIHelpers, Unpack) { |
87 std::unique_ptr<base::ListValue> apis(new base::ListValue()); | 87 std::unique_ptr<base::ListValue> apis(new base::ListValue()); |
88 apis->Append(new base::StringValue("tabs")); | 88 apis->AppendString("tabs"); |
89 std::unique_ptr<base::ListValue> origins(new base::ListValue()); | 89 std::unique_ptr<base::ListValue> origins(new base::ListValue()); |
90 origins->Append(new base::StringValue("http://a.com/*")); | 90 origins->AppendString("http://a.com/*"); |
91 | 91 |
92 std::unique_ptr<base::DictionaryValue> value(new base::DictionaryValue()); | 92 std::unique_ptr<base::DictionaryValue> value(new base::DictionaryValue()); |
93 std::unique_ptr<const PermissionSet> permissions; | 93 std::unique_ptr<const PermissionSet> permissions; |
94 std::string error; | 94 std::string error; |
95 | 95 |
96 // Origins shouldn't have to be present. | 96 // Origins shouldn't have to be present. |
97 { | 97 { |
98 Permissions permissions_object; | 98 Permissions permissions_object; |
99 value->Set("permissions", apis->DeepCopy()); | 99 value->Set("permissions", apis->DeepCopy()); |
100 EXPECT_TRUE(Permissions::Populate(*value, &permissions_object)); | 100 EXPECT_TRUE(Permissions::Populate(*value, &permissions_object)); |
(...skipping 13 matching lines...) Expand all Loading... |
114 EXPECT_TRUE(permissions.get()); | 114 EXPECT_TRUE(permissions.get()); |
115 EXPECT_TRUE(error.empty()); | 115 EXPECT_TRUE(error.empty()); |
116 EXPECT_TRUE(permissions->HasExplicitAccessToOrigin(GURL("http://a.com/"))); | 116 EXPECT_TRUE(permissions->HasExplicitAccessToOrigin(GURL("http://a.com/"))); |
117 } | 117 } |
118 | 118 |
119 // Throw errors for non-string API permissions. | 119 // Throw errors for non-string API permissions. |
120 { | 120 { |
121 Permissions permissions_object; | 121 Permissions permissions_object; |
122 value->Clear(); | 122 value->Clear(); |
123 std::unique_ptr<base::ListValue> invalid_apis(apis->DeepCopy()); | 123 std::unique_ptr<base::ListValue> invalid_apis(apis->DeepCopy()); |
124 invalid_apis->Append(new base::FundamentalValue(3)); | 124 invalid_apis->AppendInteger(3); |
125 value->Set("permissions", invalid_apis->DeepCopy()); | 125 value->Set("permissions", invalid_apis->DeepCopy()); |
126 EXPECT_FALSE(Permissions::Populate(*value, &permissions_object)); | 126 EXPECT_FALSE(Permissions::Populate(*value, &permissions_object)); |
127 } | 127 } |
128 | 128 |
129 // Throw errors for non-string origins. | 129 // Throw errors for non-string origins. |
130 { | 130 { |
131 Permissions permissions_object; | 131 Permissions permissions_object; |
132 value->Clear(); | 132 value->Clear(); |
133 std::unique_ptr<base::ListValue> invalid_origins(origins->DeepCopy()); | 133 std::unique_ptr<base::ListValue> invalid_origins(origins->DeepCopy()); |
134 invalid_origins->Append(new base::FundamentalValue(3)); | 134 invalid_origins->AppendInteger(3); |
135 value->Set("origins", invalid_origins->DeepCopy()); | 135 value->Set("origins", invalid_origins->DeepCopy()); |
136 EXPECT_FALSE(Permissions::Populate(*value, &permissions_object)); | 136 EXPECT_FALSE(Permissions::Populate(*value, &permissions_object)); |
137 } | 137 } |
138 | 138 |
139 // Throw errors when "origins" or "permissions" are not list values. | 139 // Throw errors when "origins" or "permissions" are not list values. |
140 { | 140 { |
141 Permissions permissions_object; | 141 Permissions permissions_object; |
142 value->Clear(); | 142 value->Clear(); |
143 value->Set("origins", new base::FundamentalValue(2)); | 143 value->Set("origins", new base::FundamentalValue(2)); |
144 EXPECT_FALSE(Permissions::Populate(*value, &permissions_object)); | 144 EXPECT_FALSE(Permissions::Populate(*value, &permissions_object)); |
(...skipping 17 matching lines...) Expand all Loading... |
162 EXPECT_TRUE(permissions.get()); | 162 EXPECT_TRUE(permissions.get()); |
163 EXPECT_TRUE(error.empty()); | 163 EXPECT_TRUE(error.empty()); |
164 EXPECT_TRUE(permissions->HasExplicitAccessToOrigin(GURL("http://a.com/"))); | 164 EXPECT_TRUE(permissions->HasExplicitAccessToOrigin(GURL("http://a.com/"))); |
165 } | 165 } |
166 | 166 |
167 // Unknown permissions should throw an error. | 167 // Unknown permissions should throw an error. |
168 { | 168 { |
169 Permissions permissions_object; | 169 Permissions permissions_object; |
170 value->Clear(); | 170 value->Clear(); |
171 std::unique_ptr<base::ListValue> invalid_apis(apis->DeepCopy()); | 171 std::unique_ptr<base::ListValue> invalid_apis(apis->DeepCopy()); |
172 invalid_apis->Append(new base::StringValue("unknown_permission")); | 172 invalid_apis->AppendString("unknown_permission"); |
173 value->Set("permissions", invalid_apis->DeepCopy()); | 173 value->Set("permissions", invalid_apis->DeepCopy()); |
174 EXPECT_TRUE(Permissions::Populate(*value, &permissions_object)); | 174 EXPECT_TRUE(Permissions::Populate(*value, &permissions_object)); |
175 permissions = UnpackPermissionSet(permissions_object, true, &error); | 175 permissions = UnpackPermissionSet(permissions_object, true, &error); |
176 EXPECT_FALSE(permissions.get()); | 176 EXPECT_FALSE(permissions.get()); |
177 EXPECT_FALSE(error.empty()); | 177 EXPECT_FALSE(error.empty()); |
178 EXPECT_EQ(error, "'unknown_permission' is not a recognized permission."); | 178 EXPECT_EQ(error, "'unknown_permission' is not a recognized permission."); |
179 } | 179 } |
180 } | 180 } |
181 | 181 |
182 } // namespace extensions | 182 } // namespace extensions |
OLD | NEW |