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

Side by Side Diff: extensions/common/features/simple_feature_unittest.cc

Issue 1908633002: Introduce ScopedCommandLine (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Update CrOS Unit Test Created 4 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "extensions/common/features/simple_feature.h" 5 #include "extensions/common/features/simple_feature.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <string> 9 #include <string>
10 10
11 #include "base/command_line.h" 11 #include "base/command_line.h"
12 #include "base/macros.h" 12 #include "base/macros.h"
13 #include "base/stl_util.h" 13 #include "base/stl_util.h"
14 #include "base/test/command_line_test_util.h"
14 #include "base/values.h" 15 #include "base/values.h"
15 #include "extensions/common/manifest.h" 16 #include "extensions/common/manifest.h"
16 #include "extensions/common/value_builder.h" 17 #include "extensions/common/value_builder.h"
17 #include "testing/gtest/include/gtest/gtest.h" 18 #include "testing/gtest/include/gtest/gtest.h"
18 19
19 namespace extensions { 20 namespace extensions {
20 21
21 namespace { 22 namespace {
22 23
23 struct IsAvailableTestData { 24 struct IsAvailableTestData {
24 std::string extension_id; 25 std::string extension_id;
25 Manifest::Type extension_type; 26 Manifest::Type extension_type;
26 Manifest::Location location; 27 Manifest::Location location;
27 Feature::Platform platform; 28 Feature::Platform platform;
28 int manifest_version; 29 int manifest_version;
29 Feature::AvailabilityResult expected_result; 30 Feature::AvailabilityResult expected_result;
30 }; 31 };
31 32
32 class ScopedCommandLineSwitch {
33 public:
34 explicit ScopedCommandLineSwitch(const std::string& arg)
35 : original_command_line_(*base::CommandLine::ForCurrentProcess()) {
36 base::CommandLine::ForCurrentProcess()->AppendSwitch(arg);
37 }
38
39 ~ScopedCommandLineSwitch() {
40 *base::CommandLine::ForCurrentProcess() = original_command_line_;
41 }
42
43 private:
44 base::CommandLine original_command_line_;
45 };
46
47 } // namespace 33 } // namespace
48 34
49 class SimpleFeatureTest : public testing::Test { 35 class SimpleFeatureTest : public testing::Test {
50 protected: 36 protected:
51 bool LocationIsAvailable(SimpleFeature::Location feature_location, 37 bool LocationIsAvailable(SimpleFeature::Location feature_location,
52 Manifest::Location manifest_location) { 38 Manifest::Location manifest_location) {
53 SimpleFeature feature; 39 SimpleFeature feature;
54 feature.set_location(feature_location); 40 feature.set_location(feature_location);
55 Feature::AvailabilityResult availability_result = 41 Feature::AvailabilityResult availability_result =
56 feature.IsAvailableToManifest(std::string(), 42 feature.IsAvailableToManifest(std::string(),
(...skipping 640 matching lines...) Expand 10 before | Expand all | Expand 10 after
697 } 683 }
698 684
699 TEST_F(SimpleFeatureTest, CommandLineSwitch) { 685 TEST_F(SimpleFeatureTest, CommandLineSwitch) {
700 SimpleFeature feature; 686 SimpleFeature feature;
701 feature.set_command_line_switch("laser-beams"); 687 feature.set_command_line_switch("laser-beams");
702 { 688 {
703 EXPECT_EQ(Feature::MISSING_COMMAND_LINE_SWITCH, 689 EXPECT_EQ(Feature::MISSING_COMMAND_LINE_SWITCH,
704 feature.IsAvailableToEnvironment().result()); 690 feature.IsAvailableToEnvironment().result());
705 } 691 }
706 { 692 {
707 ScopedCommandLineSwitch scoped_switch("laser-beams"); 693 base::test::ScopedCommandLine scoped_command_line;
694 scoped_command_line.GetProcessCommandLine()->AppendSwitch("laser-beams");
708 EXPECT_EQ(Feature::MISSING_COMMAND_LINE_SWITCH, 695 EXPECT_EQ(Feature::MISSING_COMMAND_LINE_SWITCH,
709 feature.IsAvailableToEnvironment().result()); 696 feature.IsAvailableToEnvironment().result());
710 } 697 }
711 { 698 {
712 ScopedCommandLineSwitch scoped_switch("enable-laser-beams"); 699 base::test::ScopedCommandLine scoped_command_line;
700 scoped_command_line.GetProcessCommandLine()->AppendSwitch(
701 "enable-laser-beams");
713 EXPECT_EQ(Feature::IS_AVAILABLE, 702 EXPECT_EQ(Feature::IS_AVAILABLE,
714 feature.IsAvailableToEnvironment().result()); 703 feature.IsAvailableToEnvironment().result());
715 } 704 }
716 { 705 {
717 ScopedCommandLineSwitch scoped_switch("disable-laser-beams"); 706 base::test::ScopedCommandLine scoped_command_line;
707 scoped_command_line.GetProcessCommandLine()->AppendSwitch(
708 "disable-laser-beams");
718 EXPECT_EQ(Feature::MISSING_COMMAND_LINE_SWITCH, 709 EXPECT_EQ(Feature::MISSING_COMMAND_LINE_SWITCH,
719 feature.IsAvailableToEnvironment().result()); 710 feature.IsAvailableToEnvironment().result());
720 } 711 }
721 { 712 {
722 ScopedCommandLineSwitch scoped_switch("laser-beams=1"); 713 base::test::ScopedCommandLine scoped_command_line;
714 scoped_command_line.GetProcessCommandLine()->AppendSwitch("laser-beams=1");
723 EXPECT_EQ(Feature::IS_AVAILABLE, 715 EXPECT_EQ(Feature::IS_AVAILABLE,
724 feature.IsAvailableToEnvironment().result()); 716 feature.IsAvailableToEnvironment().result());
725 } 717 }
726 { 718 {
727 ScopedCommandLineSwitch scoped_switch("laser-beams=0"); 719 base::test::ScopedCommandLine scoped_command_line;
720 scoped_command_line.GetProcessCommandLine()->AppendSwitch("laser-beams=0");
728 EXPECT_EQ(Feature::MISSING_COMMAND_LINE_SWITCH, 721 EXPECT_EQ(Feature::MISSING_COMMAND_LINE_SWITCH,
729 feature.IsAvailableToEnvironment().result()); 722 feature.IsAvailableToEnvironment().result());
730 } 723 }
731 } 724 }
732 725
733 TEST_F(SimpleFeatureTest, IsIdInArray) { 726 TEST_F(SimpleFeatureTest, IsIdInArray) {
734 EXPECT_FALSE(SimpleFeature::IsIdInArray("", {}, 0)); 727 EXPECT_FALSE(SimpleFeature::IsIdInArray("", {}, 0));
735 EXPECT_FALSE(SimpleFeature::IsIdInArray( 728 EXPECT_FALSE(SimpleFeature::IsIdInArray(
736 "bbbbccccdddddddddeeeeeeffffgghhh", {}, 0)); 729 "bbbbccccdddddddddeeeeeeffffgghhh", {}, 0));
737 730
738 const char* const kIdArray[] = { 731 const char* const kIdArray[] = {
739 "bbbbccccdddddddddeeeeeeffffgghhh", 732 "bbbbccccdddddddddeeeeeeffffgghhh",
740 // aaaabbbbccccddddeeeeffffgggghhhh 733 // aaaabbbbccccddddeeeeffffgggghhhh
741 "9A0417016F345C934A1A88F55CA17C05014EEEBA" 734 "9A0417016F345C934A1A88F55CA17C05014EEEBA"
742 }; 735 };
743 EXPECT_FALSE(SimpleFeature::IsIdInArray("", kIdArray, arraysize(kIdArray))); 736 EXPECT_FALSE(SimpleFeature::IsIdInArray("", kIdArray, arraysize(kIdArray)));
744 EXPECT_FALSE(SimpleFeature::IsIdInArray( 737 EXPECT_FALSE(SimpleFeature::IsIdInArray(
745 "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", kIdArray, arraysize(kIdArray))); 738 "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", kIdArray, arraysize(kIdArray)));
746 EXPECT_TRUE(SimpleFeature::IsIdInArray( 739 EXPECT_TRUE(SimpleFeature::IsIdInArray(
747 "bbbbccccdddddddddeeeeeeffffgghhh", kIdArray, arraysize(kIdArray))); 740 "bbbbccccdddddddddeeeeeeffffgghhh", kIdArray, arraysize(kIdArray)));
748 EXPECT_TRUE(SimpleFeature::IsIdInArray( 741 EXPECT_TRUE(SimpleFeature::IsIdInArray(
749 "aaaabbbbccccddddeeeeffffgggghhhh", kIdArray, arraysize(kIdArray))); 742 "aaaabbbbccccddddeeeeffffgggghhhh", kIdArray, arraysize(kIdArray)));
750 } 743 }
751 744
752 } // namespace extensions 745 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698