Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 "components/crx_file/id_util.h" | 5 #include "components/crx_file/id_util.h" |
| 6 #include "extensions/common/extension.h" | 6 #include "extensions/common/extension.h" |
| 7 #include "extensions/common/extension_builder.h" | 7 #include "extensions/common/extension_builder.h" |
| 8 #include "extensions/common/extension_messages.h" | 8 #include "extensions/common/extension_messages.h" |
| 9 #include "extensions/common/manifest_handlers/permissions_parser.h" | 9 #include "extensions/common/manifest_handlers/permissions_parser.h" |
| 10 #include "extensions/common/permissions/extensions_api_permissions.h" | 10 #include "extensions/common/permissions/extensions_api_permissions.h" |
| (...skipping 16 matching lines...) Expand all Loading... | |
| 27 EXPECT_TRUE(extension1.manifest()->Equals(extension2.manifest())); | 27 EXPECT_TRUE(extension1.manifest()->Equals(extension2.manifest())); |
| 28 const PermissionsData::TabPermissionsMap& second_tab_permissions = | 28 const PermissionsData::TabPermissionsMap& second_tab_permissions = |
| 29 extension2.permissions_data()->tab_specific_permissions(); | 29 extension2.permissions_data()->tab_specific_permissions(); |
| 30 for (const auto& tab_permissions : | 30 for (const auto& tab_permissions : |
| 31 extension1.permissions_data()->tab_specific_permissions()) { | 31 extension1.permissions_data()->tab_specific_permissions()) { |
| 32 ASSERT_NE(0u, second_tab_permissions.count(tab_permissions.first)); | 32 ASSERT_NE(0u, second_tab_permissions.count(tab_permissions.first)); |
| 33 EXPECT_EQ(*tab_permissions.second, | 33 EXPECT_EQ(*tab_permissions.second, |
| 34 *(second_tab_permissions.at(tab_permissions.first))) | 34 *(second_tab_permissions.at(tab_permissions.first))) |
| 35 << tab_permissions.first; | 35 << tab_permissions.first; |
| 36 } | 36 } |
| 37 EXPECT_EQ(extension1.permissions_data()->policy_blocked_hosts(), | |
| 38 extension2.permissions_data()->policy_blocked_hosts()); | |
| 39 EXPECT_EQ(extension1.permissions_data()->policy_allowed_hosts(), | |
| 40 extension2.permissions_data()->policy_allowed_hosts()); | |
| 41 } | |
| 42 | |
| 43 static void AddPattern(URLPatternSet* extent, const std::string& pattern) { | |
|
lazyboy
2017/06/30 20:43:22
nit: since this is already in anonymous namespace,
nrpeter
2017/06/30 21:22:15
Done.
| |
| 44 URLPattern parsed(URLPattern::SCHEME_ALL); | |
| 45 parsed.Parse(pattern, URLPattern::ALLOW_WILDCARD_FOR_EFFECTIVE_TLD); | |
| 46 extent->AddPattern(parsed); | |
| 37 } | 47 } |
| 38 | 48 |
| 39 } // namespace | 49 } // namespace |
| 40 | 50 |
| 41 TEST(ExtensionMessageTypesTest, TestLoadedParams) { | 51 TEST(ExtensionMessageTypesTest, TestLoadedParams) { |
| 42 std::unique_ptr<base::DictionaryValue> manifest = | 52 std::unique_ptr<base::DictionaryValue> manifest = |
| 43 DictionaryBuilder() | 53 DictionaryBuilder() |
| 44 .Set("name", "extension") | 54 .Set("name", "extension") |
| 45 .Set("description", "an extension") | 55 .Set("description", "an extension") |
| 46 .Set("permissions", ListBuilder().Append("alarms").Build()) | 56 .Set("permissions", ListBuilder().Append("alarms").Build()) |
| 47 .Set("manifest_version", 2) | 57 .Set("manifest_version", 2) |
| 48 .Set("version", "0.1") | 58 .Set("version", "0.1") |
| 49 .Build(); | 59 .Build(); |
| 50 scoped_refptr<const Extension> extension = | 60 scoped_refptr<const Extension> extension = |
| 51 ExtensionBuilder() | 61 ExtensionBuilder() |
| 52 .SetManifest(std::move(manifest)) | 62 .SetManifest(std::move(manifest)) |
| 53 .SetID(crx_file::id_util::GenerateId("foo")) | 63 .SetID(crx_file::id_util::GenerateId("foo")) |
| 54 .Build(); | 64 .Build(); |
| 55 const PermissionSet& required_permissions = | 65 const PermissionSet& required_permissions = |
| 56 PermissionsParser::GetRequiredPermissions(extension.get()); | 66 PermissionsParser::GetRequiredPermissions(extension.get()); |
| 57 LOG(WARNING) << required_permissions.apis().size(); | 67 LOG(WARNING) << required_permissions.apis().size(); |
| 58 EXPECT_TRUE( | 68 EXPECT_TRUE( |
| 59 extension->permissions_data()->HasAPIPermission(APIPermission::kAlarms)); | 69 extension->permissions_data()->HasAPIPermission(APIPermission::kAlarms)); |
| 60 APIPermissionSet tab_permissions; | 70 APIPermissionSet tab_permissions; |
| 61 tab_permissions.insert(APIPermission::kDns); | 71 tab_permissions.insert(APIPermission::kDns); |
| 62 extension->permissions_data()->UpdateTabSpecificPermissions( | 72 extension->permissions_data()->UpdateTabSpecificPermissions( |
| 63 1, PermissionSet(tab_permissions, ManifestPermissionSet(), | 73 1, PermissionSet(tab_permissions, ManifestPermissionSet(), |
| 64 URLPatternSet(), URLPatternSet())); | 74 URLPatternSet(), URLPatternSet())); |
| 75 URLPatternSet runtime_blocked_hosts; | |
| 76 AddPattern(&runtime_blocked_hosts, "*://*.example.*/*"); | |
| 77 URLPatternSet runtime_allowed_hosts; | |
| 78 AddPattern(&runtime_allowed_hosts, "*://good.example.com/*"); | |
| 79 extension->permissions_data()->SetPolicyHostRestrictions( | |
| 80 runtime_blocked_hosts, runtime_allowed_hosts); | |
| 65 | 81 |
| 66 ExtensionMsg_Loaded_Params params_in(extension.get(), true); | 82 ExtensionMsg_Loaded_Params params_in(extension.get(), true); |
| 67 EXPECT_EQ(extension->id(), params_in.id); | 83 EXPECT_EQ(extension->id(), params_in.id); |
| 68 | 84 |
| 69 { | 85 { |
| 70 // First, test just converting back to an extension. | 86 // First, test just converting back to an extension. |
| 71 std::string error; | 87 std::string error; |
| 72 scoped_refptr<const Extension> extension_out = | 88 scoped_refptr<const Extension> extension_out = |
| 73 params_in.ConvertToExtension(&error); | 89 params_in.ConvertToExtension(&error); |
| 74 EXPECT_TRUE(error.empty()); | 90 EXPECT_TRUE(error.empty()); |
| (...skipping 21 matching lines...) Expand all Loading... | |
| 96 std::string error; | 112 std::string error; |
| 97 scoped_refptr<const Extension> extension_out = | 113 scoped_refptr<const Extension> extension_out = |
| 98 params_out.ConvertToExtension(&error); | 114 params_out.ConvertToExtension(&error); |
| 99 EXPECT_TRUE(error.empty()); | 115 EXPECT_TRUE(error.empty()); |
| 100 ASSERT_TRUE(extension_out); | 116 ASSERT_TRUE(extension_out); |
| 101 CompareExtension(*extension, *extension_out); | 117 CompareExtension(*extension, *extension_out); |
| 102 } | 118 } |
| 103 } | 119 } |
| 104 | 120 |
| 105 } // namespace extensions | 121 } // namespace extensions |
| OLD | NEW |