Chromium Code Reviews| Index: extensions/browser/process_map_unittest.cc |
| diff --git a/extensions/browser/process_map_unittest.cc b/extensions/browser/process_map_unittest.cc |
| index 5512f75043ada137bb77e431c4dfe810f187422b..9f63a3495a0363837b5f2e939d9e810455cfca8f 100644 |
| --- a/extensions/browser/process_map_unittest.cc |
| +++ b/extensions/browser/process_map_unittest.cc |
| @@ -4,8 +4,59 @@ |
| #include "extensions/browser/process_map.h" |
| +#include "base/memory/ref_counted.h" |
| +#include "base/values.h" |
| +#include "extensions/common/extension.h" |
| +#include "extensions/common/extension_builder.h" |
| +#include "extensions/common/features/feature.h" |
| +#include "extensions/common/value_builder.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| +namespace extensions { |
| +namespace { |
| + |
| +enum class TypeToCreate { kExtension, kHostedApp, kPlatformApp }; |
| + |
| +scoped_refptr<const Extension> CreateExtensionWithFlags(TypeToCreate type, |
| + const std::string& id) { |
| + DictionaryBuilder manifest_builder; |
| + manifest_builder.Set("name", "Test extension") |
| + .Set("version", "1.0") |
| + .Set("manifest_version", 2); |
| + |
| + if (type == TypeToCreate::kExtension) { |
|
Devlin
2017/06/01 22:17:58
prefer a switch
tbarzic
2017/06/02 00:49:05
Done.
|
| + manifest_builder.Set( |
| + "background", |
| + DictionaryBuilder() |
| + .Set("scripts", ListBuilder().Append("background.js").Build()) |
| + .Build()); |
| + } else if (type == TypeToCreate::kHostedApp) { |
| + manifest_builder.Set( |
| + "app", DictionaryBuilder() |
| + .Set("launch", DictionaryBuilder() |
| + .Set("web_url", "https://www.foo.bar") |
| + .Build()) |
| + .Build()); |
| + } else if (type == TypeToCreate::kPlatformApp) { |
| + manifest_builder.Set( |
| + "app", DictionaryBuilder() |
| + .Set("background", |
| + DictionaryBuilder() |
| + .Set("scripts", |
| + ListBuilder().Append("background.js").Build()) |
| + .Build()) |
| + .Build()); |
| + } |
| + |
| + return ExtensionBuilder() |
| + .SetID(id) |
| + .SetManifest(manifest_builder.Build()) |
| + .Build(); |
| +} |
| + |
| +} // namespace |
| +} // namespace extensions |
| + |
| using extensions::ProcessMap; |
| TEST(ExtensionProcessMapTest, Test) { |
| @@ -63,3 +114,48 @@ TEST(ExtensionProcessMapTest, Test) { |
| EXPECT_EQ(0, map.RemoveAllFromProcess(2)); |
| EXPECT_EQ(1u, map.size()); |
| } |
| + |
| +TEST(ExtensionProcessMapTest, GetMostLikelyContextType) { |
| + ProcessMap map; |
| + |
| + EXPECT_EQ(extensions::Feature::WEB_PAGE_CONTEXT, |
| + map.GetMostLikelyContextType(nullptr, 1)); |
| + |
| + scoped_refptr<const extensions::Extension> extension = |
| + CreateExtensionWithFlags(extensions::TypeToCreate::kExtension, "a"); |
| + |
| + EXPECT_EQ(extensions::Feature::CONTENT_SCRIPT_CONTEXT, |
| + map.GetMostLikelyContextType(extension.get(), 2)); |
| + |
| + map.Insert("b", 3, 1); |
| + extension = |
| + CreateExtensionWithFlags(extensions::TypeToCreate::kExtension, "b"); |
| + EXPECT_EQ(extensions::Feature::BLESSED_EXTENSION_CONTEXT, |
| + map.GetMostLikelyContextType(extension.get(), 3)); |
| + |
| + map.Insert("c", 4, 2); |
| + extension = |
| + CreateExtensionWithFlags(extensions::TypeToCreate::kPlatformApp, "c"); |
| + EXPECT_EQ(extensions::Feature::BLESSED_EXTENSION_CONTEXT, |
| + map.GetMostLikelyContextType(extension.get(), 4)); |
| + |
| + map.set_is_lock_screen_context(true); |
| + |
| + map.Insert("d", 5, 3); |
| + extension = |
| + CreateExtensionWithFlags(extensions::TypeToCreate::kPlatformApp, "d"); |
| + EXPECT_EQ(extensions::Feature::LOCK_SCREEN_EXTENSION_CONTEXT, |
| + map.GetMostLikelyContextType(extension.get(), 5)); |
| + |
| + map.Insert("e", 6, 4); |
| + extension = |
| + CreateExtensionWithFlags(extensions::TypeToCreate::kExtension, "e"); |
| + EXPECT_EQ(extensions::Feature::LOCK_SCREEN_EXTENSION_CONTEXT, |
| + map.GetMostLikelyContextType(extension.get(), 6)); |
| + |
| + map.Insert("f", 7, 5); |
| + extension = |
| + CreateExtensionWithFlags(extensions::TypeToCreate::kHostedApp, "f"); |
| + EXPECT_EQ(extensions::Feature::BLESSED_WEB_PAGE_CONTEXT, |
| + map.GetMostLikelyContextType(extension.get(), 7)); |
| +} |