Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1515)

Unified Diff: extensions/browser/process_map_unittest.cc

Issue 2892403002: Introduce lock screen app context to extension features (Closed)
Patch Set: . Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « extensions/browser/process_map.cc ('k') | extensions/browser/renderer_startup_helper.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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));
+}
« no previous file with comments | « extensions/browser/process_map.cc ('k') | extensions/browser/renderer_startup_helper.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698