| 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,
|
|
|