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

Side by Side 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/common/extensions/feature.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/common/extensions/feature.h" 5 #include "chrome/common/extensions/feature.h"
6 6
7 #include "testing/gtest/include/gtest/gtest.h" 7 #include "testing/gtest/include/gtest/gtest.h"
8 8
9 using chrome::VersionInfo;
9 using extensions::Feature; 10 using extensions::Feature;
10 11
11 namespace { 12 namespace {
12 13
13 struct IsAvailableTestData { 14 struct IsAvailableTestData {
14 std::string extension_id; 15 std::string extension_id;
15 Extension::Type extension_type; 16 Extension::Type extension_type;
16 Feature::Location location; 17 Feature::Location location;
17 Feature::Platform platform; 18 Feature::Platform platform;
18 int manifest_version; 19 int manifest_version;
19 Feature::Availability expected_result; 20 Feature::Availability expected_result;
20 }; 21 };
21 22
22 } // namespace
23
24 TEST(ExtensionFeatureTest, IsAvailableNullCase) { 23 TEST(ExtensionFeatureTest, IsAvailableNullCase) {
25 const IsAvailableTestData tests[] = { 24 const IsAvailableTestData tests[] = {
26 { "", Extension::TYPE_UNKNOWN, 25 { "", Extension::TYPE_UNKNOWN,
27 Feature::UNSPECIFIED_LOCATION, Feature::UNSPECIFIED_PLATFORM, -1, 26 Feature::UNSPECIFIED_LOCATION, Feature::UNSPECIFIED_PLATFORM, -1,
28 Feature::IS_AVAILABLE }, 27 Feature::IS_AVAILABLE },
29 { "random-extension", Extension::TYPE_UNKNOWN, 28 { "random-extension", Extension::TYPE_UNKNOWN,
30 Feature::UNSPECIFIED_LOCATION, Feature::UNSPECIFIED_PLATFORM, -1, 29 Feature::UNSPECIFIED_LOCATION, Feature::UNSPECIFIED_PLATFORM, -1,
31 Feature::IS_AVAILABLE }, 30 Feature::IS_AVAILABLE },
32 { "", Extension::TYPE_PACKAGED_APP, 31 { "", Extension::TYPE_PACKAGED_APP,
33 Feature::UNSPECIFIED_LOCATION, Feature::UNSPECIFIED_PLATFORM, -1, 32 Feature::UNSPECIFIED_LOCATION, Feature::UNSPECIFIED_PLATFORM, -1,
(...skipping 374 matching lines...) Expand 10 before | Expand all | Expand 10 after
408 EXPECT_FALSE(feature2.Equals(feature)); 407 EXPECT_FALSE(feature2.Equals(feature));
409 408
410 feature2 = feature; 409 feature2 = feature;
411 feature2.set_min_manifest_version(0); 410 feature2.set_min_manifest_version(0);
412 EXPECT_FALSE(feature2.Equals(feature)); 411 EXPECT_FALSE(feature2.Equals(feature));
413 412
414 feature2 = feature; 413 feature2 = feature;
415 feature2.set_max_manifest_version(0); 414 feature2.set_max_manifest_version(0);
416 EXPECT_FALSE(feature2.Equals(feature)); 415 EXPECT_FALSE(feature2.Equals(feature));
417 } 416 }
417
418 Feature::Availability IsAvailableInChannel(
419 const std::string& supported_channel, VersionInfo::Channel channel) {
420 Feature::SetChannelForTesting(channel);
421
422 Feature feature;
423 if (!supported_channel.empty()) {
424 DictionaryValue feature_value;
425 feature_value.SetString("supported_channel", supported_channel);
426 feature.Parse(&feature_value);
427 }
428
429 return feature.IsAvailableToManifest(
430 "random-extension",
431 Extension::TYPE_UNKNOWN,
432 Feature::UNSPECIFIED_LOCATION,
433 -1);
434 }
435
436 TEST(ExtensionFeatureTest, SupportedChannel) {
437 // stable supported.
438 EXPECT_EQ(Feature::IS_AVAILABLE,
439 IsAvailableInChannel("stable", VersionInfo::CHANNEL_UNKNOWN));
440 EXPECT_EQ(Feature::IS_AVAILABLE,
441 IsAvailableInChannel("stable", VersionInfo::CHANNEL_CANARY));
442 EXPECT_EQ(Feature::IS_AVAILABLE,
443 IsAvailableInChannel("stable", VersionInfo::CHANNEL_DEV));
444 EXPECT_EQ(Feature::IS_AVAILABLE,
445 IsAvailableInChannel("stable", VersionInfo::CHANNEL_BETA));
446 EXPECT_EQ(Feature::IS_AVAILABLE,
447 IsAvailableInChannel("stable", VersionInfo::CHANNEL_STABLE));
448
449 // beta supported.
450 EXPECT_EQ(Feature::IS_AVAILABLE,
451 IsAvailableInChannel("beta", VersionInfo::CHANNEL_UNKNOWN));
452 EXPECT_EQ(Feature::IS_AVAILABLE,
453 IsAvailableInChannel("beta", VersionInfo::CHANNEL_CANARY));
454 EXPECT_EQ(Feature::IS_AVAILABLE,
455 IsAvailableInChannel("beta", VersionInfo::CHANNEL_DEV));
456 EXPECT_EQ(Feature::IS_AVAILABLE,
457 IsAvailableInChannel("beta", VersionInfo::CHANNEL_BETA));
458 EXPECT_EQ(Feature::UNSUPPORTED_CHANNEL,
459 IsAvailableInChannel("beta", VersionInfo::CHANNEL_STABLE));
460
461 // dev supported.
462 EXPECT_EQ(Feature::IS_AVAILABLE,
463 IsAvailableInChannel("dev", VersionInfo::CHANNEL_UNKNOWN));
464 EXPECT_EQ(Feature::IS_AVAILABLE,
465 IsAvailableInChannel("dev", VersionInfo::CHANNEL_CANARY));
466 EXPECT_EQ(Feature::IS_AVAILABLE,
467 IsAvailableInChannel("dev", VersionInfo::CHANNEL_DEV));
468 EXPECT_EQ(Feature::UNSUPPORTED_CHANNEL,
469 IsAvailableInChannel("dev", VersionInfo::CHANNEL_BETA));
470 EXPECT_EQ(Feature::UNSUPPORTED_CHANNEL,
471 IsAvailableInChannel("dev", VersionInfo::CHANNEL_STABLE));
472
473 // canary supported.
474 EXPECT_EQ(Feature::IS_AVAILABLE,
475 IsAvailableInChannel("canary", VersionInfo::CHANNEL_UNKNOWN));
476 EXPECT_EQ(Feature::IS_AVAILABLE,
477 IsAvailableInChannel("canary", VersionInfo::CHANNEL_CANARY));
478 EXPECT_EQ(Feature::UNSUPPORTED_CHANNEL,
479 IsAvailableInChannel("canary", VersionInfo::CHANNEL_DEV));
480 EXPECT_EQ(Feature::UNSUPPORTED_CHANNEL,
481 IsAvailableInChannel("canary", VersionInfo::CHANNEL_BETA));
482 EXPECT_EQ(Feature::UNSUPPORTED_CHANNEL,
483 IsAvailableInChannel("canary", VersionInfo::CHANNEL_STABLE));
484
485 // trunk supported.
486 EXPECT_EQ(Feature::IS_AVAILABLE,
487 IsAvailableInChannel("trunk", VersionInfo::CHANNEL_UNKNOWN));
488 EXPECT_EQ(Feature::UNSUPPORTED_CHANNEL,
489 IsAvailableInChannel("trunk", VersionInfo::CHANNEL_CANARY));
490 EXPECT_EQ(Feature::UNSUPPORTED_CHANNEL,
491 IsAvailableInChannel("trunk", VersionInfo::CHANNEL_DEV));
492 EXPECT_EQ(Feature::UNSUPPORTED_CHANNEL,
493 IsAvailableInChannel("trunk", VersionInfo::CHANNEL_BETA));
494 EXPECT_EQ(Feature::UNSUPPORTED_CHANNEL,
495 IsAvailableInChannel("trunk", VersionInfo::CHANNEL_STABLE));
496
497 // Default supported channel (trunk).
498 EXPECT_EQ(Feature::IS_AVAILABLE,
499 IsAvailableInChannel("", VersionInfo::CHANNEL_UNKNOWN));
500 EXPECT_EQ(Feature::UNSUPPORTED_CHANNEL,
501 IsAvailableInChannel("", VersionInfo::CHANNEL_CANARY));
502 EXPECT_EQ(Feature::UNSUPPORTED_CHANNEL,
503 IsAvailableInChannel("", VersionInfo::CHANNEL_DEV));
504 EXPECT_EQ(Feature::UNSUPPORTED_CHANNEL,
505 IsAvailableInChannel("", VersionInfo::CHANNEL_BETA));
506 EXPECT_EQ(Feature::UNSUPPORTED_CHANNEL,
507 IsAvailableInChannel("", VersionInfo::CHANNEL_STABLE));
508
509 Feature::SetChannelForTesting(VersionInfo::CHANNEL_UNKNOWN);
510 }
511
512 } // namespace
OLDNEW
« 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