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

Unified Diff: extensions/common/features/simple_feature_unittest.cc

Issue 2255613003: Introduce session type parameter to extension features (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Introduce session type parameter to extension features Created 4 years, 4 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
Index: extensions/common/features/simple_feature_unittest.cc
diff --git a/extensions/common/features/simple_feature_unittest.cc b/extensions/common/features/simple_feature_unittest.cc
index b55ebfc5802be6f9c99603ff6b2326dcb011254b..cbf469b55a8d76c3aae5df43eccfac807b554001 100644
--- a/extensions/common/features/simple_feature_unittest.cc
+++ b/extensions/common/features/simple_feature_unittest.cc
@@ -422,6 +422,86 @@ TEST_F(SimpleFeatureTest, Context) {
feature.set_max_manifest_version(25);
}
+TEST_F(SimpleFeatureTest, SessionType) {
+ base::DictionaryValue manifest;
+ manifest.SetString("name", "test");
+ manifest.SetString("version", "1");
+ manifest.SetInteger("manifest_version", 21);
+ manifest.SetString("app.launch.local_path", "foo.html");
+
+ std::string error;
+ scoped_refptr<const Extension> extension(
+ Extension::Create(base::FilePath(), Manifest::INTERNAL, manifest,
+ Extension::NO_FLAGS, &error));
+ EXPECT_EQ("", error);
+ ASSERT_TRUE(extension.get());
+
+ SimpleFeature kiosk_feature;
+ kiosk_feature.session_types_.push_back(Feature::SESSION_TYPE_KIOSK);
+ EXPECT_EQ(Feature::IS_AVAILABLE,
+ kiosk_feature
+ .IsAvailableToContext(
+ extension.get(), Feature::BLESSED_EXTENSION_CONTEXT,
+ Feature::SESSION_TYPE_KIOSK, Feature::CHROMEOS_PLATFORM)
+ .result());
+ EXPECT_EQ(Feature::INVALID_SESSION_TYPE,
+ kiosk_feature
+ .IsAvailableToContext(
+ extension.get(), Feature::BLESSED_EXTENSION_CONTEXT,
+ Feature::SESSION_TYPE_REGULAR, Feature::CHROMEOS_PLATFORM)
+ .result());
+ EXPECT_EQ(Feature::INVALID_SESSION_TYPE,
+ kiosk_feature
+ .IsAvailableToContext(extension.get(),
+ Feature::BLESSED_EXTENSION_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED,
+ Feature::CHROMEOS_PLATFORM)
+ .result());
+
+ SimpleFeature non_kiosk_feature;
+ non_kiosk_feature.session_types_.push_back(Feature::SESSION_TYPE_REGULAR);
+ EXPECT_EQ(Feature::INVALID_SESSION_TYPE,
+ non_kiosk_feature
+ .IsAvailableToContext(
+ extension.get(), Feature::BLESSED_EXTENSION_CONTEXT,
+ Feature::SESSION_TYPE_KIOSK, Feature::CHROMEOS_PLATFORM)
+ .result());
+ EXPECT_EQ(Feature::IS_AVAILABLE,
+ non_kiosk_feature
+ .IsAvailableToContext(
+ extension.get(), Feature::BLESSED_EXTENSION_CONTEXT,
+ Feature::SESSION_TYPE_REGULAR, Feature::CHROMEOS_PLATFORM)
+ .result());
+ EXPECT_EQ(Feature::INVALID_SESSION_TYPE,
+ non_kiosk_feature
+ .IsAvailableToContext(extension.get(),
+ Feature::BLESSED_EXTENSION_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED,
+ Feature::CHROMEOS_PLATFORM)
+ .result());
+
+ SimpleFeature session_agnostic_feature;
+ EXPECT_EQ(Feature::IS_AVAILABLE,
+ session_agnostic_feature
+ .IsAvailableToContext(
+ extension.get(), Feature::BLESSED_EXTENSION_CONTEXT,
+ Feature::SESSION_TYPE_KIOSK, Feature::CHROMEOS_PLATFORM)
+ .result());
+ EXPECT_EQ(Feature::IS_AVAILABLE,
+ session_agnostic_feature
+ .IsAvailableToContext(
+ extension.get(), Feature::BLESSED_EXTENSION_CONTEXT,
+ Feature::SESSION_TYPE_REGULAR, Feature::CHROMEOS_PLATFORM)
+ .result());
+ EXPECT_EQ(Feature::IS_AVAILABLE,
+ session_agnostic_feature
+ .IsAvailableToContext(extension.get(),
+ Feature::BLESSED_EXTENSION_CONTEXT,
+ Feature::SESSION_TYPE_UNSPECIFIED,
+ Feature::CHROMEOS_PLATFORM)
+ .result());
+}
+
TEST_F(SimpleFeatureTest, Location) {
// Component extensions can access any location.
EXPECT_TRUE(LocationIsAvailable(SimpleFeature::COMPONENT_LOCATION,

Powered by Google App Engine
This is Rietveld 408576698