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

Unified Diff: chrome/common/extensions/feature_unittest.cc

Issue 10054035: Allow extension APIs to be restricted to a subset of Chrome channels using the (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: make default channel "trunk" Created 8 years, 8 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 | « chrome/common/extensions/feature.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/common/extensions/feature_unittest.cc
diff --git a/chrome/common/extensions/feature_unittest.cc b/chrome/common/extensions/feature_unittest.cc
index c4cc1a3addafdc3c74a463b28097f5ed825450ef..a7f91017a17ef8b4107a1f572ce73a8590a612b9 100644
--- a/chrome/common/extensions/feature_unittest.cc
+++ b/chrome/common/extensions/feature_unittest.cc
@@ -6,6 +6,7 @@
#include "testing/gtest/include/gtest/gtest.h"
+using chrome::VersionInfo;
using extensions::Feature;
namespace {
@@ -19,8 +20,6 @@ struct IsAvailableTestData {
Feature::Availability expected_result;
};
-} // namespace
-
TEST(ExtensionFeatureTest, IsAvailableNullCase) {
const IsAvailableTestData tests[] = {
{ "", Extension::TYPE_UNKNOWN,
@@ -415,3 +414,99 @@ TEST(ExtensionFeatureTest, Equals) {
feature2.set_max_manifest_version(0);
EXPECT_FALSE(feature2.Equals(feature));
}
+
+Feature::Availability IsAvailableInChannel(
+ const std::string& supported_channel, VersionInfo::Channel channel) {
+ Feature::SetChannelForTesting(channel);
+
+ Feature feature;
+ if (!supported_channel.empty()) {
+ DictionaryValue feature_value;
+ feature_value.SetString("supported_channel", supported_channel);
+ feature.Parse(&feature_value);
+ }
+
+ return feature.IsAvailableToManifest(
+ "random-extension",
+ Extension::TYPE_UNKNOWN,
+ Feature::UNSPECIFIED_LOCATION,
+ -1);
+}
+
+TEST(ExtensionFeatureTest, SupportedChannel) {
+ // stable supported.
+ EXPECT_EQ(Feature::IS_AVAILABLE,
+ IsAvailableInChannel("stable", VersionInfo::CHANNEL_UNKNOWN));
+ EXPECT_EQ(Feature::IS_AVAILABLE,
+ IsAvailableInChannel("stable", VersionInfo::CHANNEL_CANARY));
+ EXPECT_EQ(Feature::IS_AVAILABLE,
+ IsAvailableInChannel("stable", VersionInfo::CHANNEL_DEV));
+ EXPECT_EQ(Feature::IS_AVAILABLE,
+ IsAvailableInChannel("stable", VersionInfo::CHANNEL_BETA));
+ EXPECT_EQ(Feature::IS_AVAILABLE,
+ IsAvailableInChannel("stable", VersionInfo::CHANNEL_STABLE));
+
+ // beta supported.
+ EXPECT_EQ(Feature::IS_AVAILABLE,
+ IsAvailableInChannel("beta", VersionInfo::CHANNEL_UNKNOWN));
+ EXPECT_EQ(Feature::IS_AVAILABLE,
+ IsAvailableInChannel("beta", VersionInfo::CHANNEL_CANARY));
+ EXPECT_EQ(Feature::IS_AVAILABLE,
+ IsAvailableInChannel("beta", VersionInfo::CHANNEL_DEV));
+ EXPECT_EQ(Feature::IS_AVAILABLE,
+ IsAvailableInChannel("beta", VersionInfo::CHANNEL_BETA));
+ EXPECT_EQ(Feature::UNSUPPORTED_CHANNEL,
+ IsAvailableInChannel("beta", VersionInfo::CHANNEL_STABLE));
+
+ // dev supported.
+ EXPECT_EQ(Feature::IS_AVAILABLE,
+ IsAvailableInChannel("dev", VersionInfo::CHANNEL_UNKNOWN));
+ EXPECT_EQ(Feature::IS_AVAILABLE,
+ IsAvailableInChannel("dev", VersionInfo::CHANNEL_CANARY));
+ EXPECT_EQ(Feature::IS_AVAILABLE,
+ IsAvailableInChannel("dev", VersionInfo::CHANNEL_DEV));
+ EXPECT_EQ(Feature::UNSUPPORTED_CHANNEL,
+ IsAvailableInChannel("dev", VersionInfo::CHANNEL_BETA));
+ EXPECT_EQ(Feature::UNSUPPORTED_CHANNEL,
+ IsAvailableInChannel("dev", VersionInfo::CHANNEL_STABLE));
+
+ // canary supported.
+ EXPECT_EQ(Feature::IS_AVAILABLE,
+ IsAvailableInChannel("canary", VersionInfo::CHANNEL_UNKNOWN));
+ EXPECT_EQ(Feature::IS_AVAILABLE,
+ IsAvailableInChannel("canary", VersionInfo::CHANNEL_CANARY));
+ EXPECT_EQ(Feature::UNSUPPORTED_CHANNEL,
+ IsAvailableInChannel("canary", VersionInfo::CHANNEL_DEV));
+ EXPECT_EQ(Feature::UNSUPPORTED_CHANNEL,
+ IsAvailableInChannel("canary", VersionInfo::CHANNEL_BETA));
+ EXPECT_EQ(Feature::UNSUPPORTED_CHANNEL,
+ IsAvailableInChannel("canary", VersionInfo::CHANNEL_STABLE));
+
+ // trunk supported.
+ EXPECT_EQ(Feature::IS_AVAILABLE,
+ IsAvailableInChannel("trunk", VersionInfo::CHANNEL_UNKNOWN));
+ EXPECT_EQ(Feature::UNSUPPORTED_CHANNEL,
+ IsAvailableInChannel("trunk", VersionInfo::CHANNEL_CANARY));
+ EXPECT_EQ(Feature::UNSUPPORTED_CHANNEL,
+ IsAvailableInChannel("trunk", VersionInfo::CHANNEL_DEV));
+ EXPECT_EQ(Feature::UNSUPPORTED_CHANNEL,
+ IsAvailableInChannel("trunk", VersionInfo::CHANNEL_BETA));
+ EXPECT_EQ(Feature::UNSUPPORTED_CHANNEL,
+ IsAvailableInChannel("trunk", VersionInfo::CHANNEL_STABLE));
+
+ // Default supported channel (trunk).
+ EXPECT_EQ(Feature::IS_AVAILABLE,
+ IsAvailableInChannel("", VersionInfo::CHANNEL_UNKNOWN));
+ EXPECT_EQ(Feature::UNSUPPORTED_CHANNEL,
+ IsAvailableInChannel("", VersionInfo::CHANNEL_CANARY));
+ EXPECT_EQ(Feature::UNSUPPORTED_CHANNEL,
+ IsAvailableInChannel("", VersionInfo::CHANNEL_DEV));
+ EXPECT_EQ(Feature::UNSUPPORTED_CHANNEL,
+ IsAvailableInChannel("", VersionInfo::CHANNEL_BETA));
+ EXPECT_EQ(Feature::UNSUPPORTED_CHANNEL,
+ IsAvailableInChannel("", VersionInfo::CHANNEL_STABLE));
+
+ Feature::SetChannelForTesting(VersionInfo::CHANNEL_UNKNOWN);
+}
+
+} // namespace
« no previous file with comments | « chrome/common/extensions/feature.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698