| 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 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 133 std::unique_ptr<base::ListValue> invalid_origins(origins->DeepCopy()); | 133 std::unique_ptr<base::ListValue> invalid_origins(origins->DeepCopy()); |
| 134 invalid_origins->AppendInteger(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::Value(2)); |
| 144 EXPECT_FALSE(Permissions::Populate(*value, &permissions_object)); | 144 EXPECT_FALSE(Permissions::Populate(*value, &permissions_object)); |
| 145 } | 145 } |
| 146 | 146 |
| 147 { | 147 { |
| 148 Permissions permissions_object; | 148 Permissions permissions_object; |
| 149 value->Clear(); | 149 value->Clear(); |
| 150 value->Set("permissions", new base::FundamentalValue(2)); | 150 value->Set("permissions", new base::Value(2)); |
| 151 EXPECT_FALSE(Permissions::Populate(*value, &permissions_object)); | 151 EXPECT_FALSE(Permissions::Populate(*value, &permissions_object)); |
| 152 } | 152 } |
| 153 | 153 |
| 154 // Additional fields should be allowed. | 154 // Additional fields should be allowed. |
| 155 { | 155 { |
| 156 Permissions permissions_object; | 156 Permissions permissions_object; |
| 157 value->Clear(); | 157 value->Clear(); |
| 158 value->Set("origins", origins->DeepCopy()); | 158 value->Set("origins", origins->DeepCopy()); |
| 159 value->Set("random", new base::FundamentalValue(3)); | 159 value->Set("random", new base::Value(3)); |
| 160 EXPECT_TRUE(Permissions::Populate(*value, &permissions_object)); | 160 EXPECT_TRUE(Permissions::Populate(*value, &permissions_object)); |
| 161 permissions = UnpackPermissionSet(permissions_object, true, &error); | 161 permissions = UnpackPermissionSet(permissions_object, true, &error); |
| 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->AppendString("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 |