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

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: 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
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 feature;
421 feature.SetChannelForTesting(channel);
422
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 // Default supported channel (stable).
Aaron Boodman 2012/04/11 23:35:53 I thought the default was going to be trunk.
not at google - send to devlin 2012/04/12 00:05:21 Mm, we went back and forth, I can't remember. Yeah
438 EXPECT_EQ(Feature::IS_AVAILABLE,
439 IsAvailableInChannel("", VersionInfo::CHANNEL_UNKNOWN));
440 EXPECT_EQ(Feature::IS_AVAILABLE,
441 IsAvailableInChannel("", VersionInfo::CHANNEL_CANARY));
442 EXPECT_EQ(Feature::IS_AVAILABLE,
443 IsAvailableInChannel("", VersionInfo::CHANNEL_DEV));
444 EXPECT_EQ(Feature::IS_AVAILABLE,
445 IsAvailableInChannel("", VersionInfo::CHANNEL_BETA));
446 EXPECT_EQ(Feature::IS_AVAILABLE,
447 IsAvailableInChannel("", VersionInfo::CHANNEL_STABLE));
448
449 // stable supported.
450 EXPECT_EQ(Feature::IS_AVAILABLE,
451 IsAvailableInChannel("stable", VersionInfo::CHANNEL_UNKNOWN));
452 EXPECT_EQ(Feature::IS_AVAILABLE,
453 IsAvailableInChannel("stable", VersionInfo::CHANNEL_CANARY));
454 EXPECT_EQ(Feature::IS_AVAILABLE,
455 IsAvailableInChannel("stable", VersionInfo::CHANNEL_DEV));
456 EXPECT_EQ(Feature::IS_AVAILABLE,
457 IsAvailableInChannel("stable", VersionInfo::CHANNEL_BETA));
458 EXPECT_EQ(Feature::IS_AVAILABLE,
459 IsAvailableInChannel("stable", VersionInfo::CHANNEL_STABLE));
460
461 // beta supported.
462 EXPECT_EQ(Feature::IS_AVAILABLE,
463 IsAvailableInChannel("beta", VersionInfo::CHANNEL_UNKNOWN));
464 EXPECT_EQ(Feature::IS_AVAILABLE,
465 IsAvailableInChannel("beta", VersionInfo::CHANNEL_CANARY));
466 EXPECT_EQ(Feature::IS_AVAILABLE,
467 IsAvailableInChannel("beta", VersionInfo::CHANNEL_DEV));
468 EXPECT_EQ(Feature::IS_AVAILABLE,
469 IsAvailableInChannel("beta", VersionInfo::CHANNEL_BETA));
470 EXPECT_EQ(Feature::UNSUPPORTED_CHANNEL,
471 IsAvailableInChannel("beta", VersionInfo::CHANNEL_STABLE));
472
473 // dev supported.
474 EXPECT_EQ(Feature::IS_AVAILABLE,
475 IsAvailableInChannel("dev", VersionInfo::CHANNEL_UNKNOWN));
476 EXPECT_EQ(Feature::IS_AVAILABLE,
477 IsAvailableInChannel("dev", VersionInfo::CHANNEL_CANARY));
478 EXPECT_EQ(Feature::IS_AVAILABLE,
479 IsAvailableInChannel("dev", VersionInfo::CHANNEL_DEV));
480 EXPECT_EQ(Feature::UNSUPPORTED_CHANNEL,
481 IsAvailableInChannel("dev", VersionInfo::CHANNEL_BETA));
482 EXPECT_EQ(Feature::UNSUPPORTED_CHANNEL,
483 IsAvailableInChannel("dev", VersionInfo::CHANNEL_STABLE));
484
485 // canary supported.
486 EXPECT_EQ(Feature::IS_AVAILABLE,
487 IsAvailableInChannel("canary", VersionInfo::CHANNEL_UNKNOWN));
488 EXPECT_EQ(Feature::IS_AVAILABLE,
489 IsAvailableInChannel("canary", VersionInfo::CHANNEL_CANARY));
490 EXPECT_EQ(Feature::UNSUPPORTED_CHANNEL,
491 IsAvailableInChannel("canary", VersionInfo::CHANNEL_DEV));
492 EXPECT_EQ(Feature::UNSUPPORTED_CHANNEL,
493 IsAvailableInChannel("canary", VersionInfo::CHANNEL_BETA));
494 EXPECT_EQ(Feature::UNSUPPORTED_CHANNEL,
495 IsAvailableInChannel("canary", VersionInfo::CHANNEL_STABLE));
496
497 // trunk supported.
498 EXPECT_EQ(Feature::IS_AVAILABLE,
499 IsAvailableInChannel("trunk", VersionInfo::CHANNEL_UNKNOWN));
500 EXPECT_EQ(Feature::UNSUPPORTED_CHANNEL,
501 IsAvailableInChannel("trunk", VersionInfo::CHANNEL_CANARY));
502 EXPECT_EQ(Feature::UNSUPPORTED_CHANNEL,
503 IsAvailableInChannel("trunk", VersionInfo::CHANNEL_DEV));
504 EXPECT_EQ(Feature::UNSUPPORTED_CHANNEL,
505 IsAvailableInChannel("trunk", VersionInfo::CHANNEL_BETA));
506 EXPECT_EQ(Feature::UNSUPPORTED_CHANNEL,
507 IsAvailableInChannel("trunk", VersionInfo::CHANNEL_STABLE));
508 }
509
510 } // namespace
OLDNEW
« chrome/common/extensions/feature.cc ('K') | « chrome/common/extensions/feature.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698