| 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..cffd96c0fc7d8cf8a6d8d9e138be2bb1c5e2b4f0 100644
|
| --- a/extensions/browser/process_map_unittest.cc
|
| +++ b/extensions/browser/process_map_unittest.cc
|
| @@ -4,8 +4,64 @@
|
|
|
| #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);
|
| +
|
| + switch (type) {
|
| + case TypeToCreate::kExtension:
|
| + manifest_builder.Set(
|
| + "background",
|
| + DictionaryBuilder()
|
| + .Set("scripts", ListBuilder().Append("background.js").Build())
|
| + .Build());
|
| + break;
|
| + case TypeToCreate::kHostedApp:
|
| + manifest_builder.Set(
|
| + "app", DictionaryBuilder()
|
| + .Set("launch", DictionaryBuilder()
|
| + .Set("web_url", "https://www.foo.bar")
|
| + .Build())
|
| + .Build());
|
| + break;
|
| + case TypeToCreate::kPlatformApp:
|
| + manifest_builder.Set(
|
| + "app",
|
| + DictionaryBuilder()
|
| + .Set("background",
|
| + DictionaryBuilder()
|
| + .Set("scripts",
|
| + ListBuilder().Append("background.js").Build())
|
| + .Build())
|
| + .Build());
|
| + break;
|
| + }
|
| +
|
| + return ExtensionBuilder()
|
| + .SetID(id)
|
| + .SetManifest(manifest_builder.Build())
|
| + .Build();
|
| +}
|
| +
|
| +} // namespace
|
| +} // namespace extensions
|
| +
|
| using extensions::ProcessMap;
|
|
|
| TEST(ExtensionProcessMapTest, Test) {
|
| @@ -63,3 +119,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));
|
| +}
|
|
|