OLD | NEW |
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 extensions::Feature; | 9 using extensions::Feature; |
10 | 10 |
11 namespace { | 11 namespace { |
12 | 12 |
13 struct IsAvailableTestData { | 13 struct IsAvailableTestData { |
14 std::string extension_id; | 14 std::string extension_id; |
15 Extension::Type extension_type; | 15 Extension::Type extension_type; |
16 Feature::Context context; | 16 Feature::Context context; |
17 Feature::Location location; | 17 Feature::Location location; |
18 Feature::Platform platform; | 18 Feature::Platform platform; |
19 int manifest_version; | 19 int manifest_version; |
20 bool expected_result; | 20 Feature::Availability expected_result; |
21 }; | 21 }; |
22 | 22 |
23 } // namespace | 23 } // namespace |
24 | 24 |
25 TEST(ExtensionFeatureTest, IsAvailableNullCase) { | 25 TEST(ExtensionFeatureTest, IsAvailableNullCase) { |
26 const IsAvailableTestData tests[] = { | 26 const IsAvailableTestData tests[] = { |
27 { "", Extension::TYPE_UNKNOWN, Feature::UNSPECIFIED_CONTEXT, | 27 { "", Extension::TYPE_UNKNOWN, Feature::UNSPECIFIED_CONTEXT, |
28 Feature::UNSPECIFIED_LOCATION, Feature::UNSPECIFIED_PLATFORM, -1, true }, | 28 Feature::UNSPECIFIED_LOCATION, Feature::UNSPECIFIED_PLATFORM, -1, |
| 29 Feature::IS_AVAILABLE }, |
29 { "random-extension", Extension::TYPE_UNKNOWN, Feature::UNSPECIFIED_CONTEXT, | 30 { "random-extension", Extension::TYPE_UNKNOWN, Feature::UNSPECIFIED_CONTEXT, |
30 Feature::UNSPECIFIED_LOCATION, Feature::UNSPECIFIED_PLATFORM, -1, true }, | 31 Feature::UNSPECIFIED_LOCATION, Feature::UNSPECIFIED_PLATFORM, -1, |
| 32 Feature::IS_AVAILABLE }, |
31 { "", Extension::TYPE_PACKAGED_APP, Feature::UNSPECIFIED_CONTEXT, | 33 { "", Extension::TYPE_PACKAGED_APP, Feature::UNSPECIFIED_CONTEXT, |
32 Feature::UNSPECIFIED_LOCATION, Feature::UNSPECIFIED_PLATFORM, -1, true }, | 34 Feature::UNSPECIFIED_LOCATION, Feature::UNSPECIFIED_PLATFORM, -1, |
| 35 Feature::IS_AVAILABLE }, |
33 { "", Extension::TYPE_UNKNOWN, Feature::PRIVILEGED_CONTEXT, | 36 { "", Extension::TYPE_UNKNOWN, Feature::PRIVILEGED_CONTEXT, |
34 Feature::UNSPECIFIED_LOCATION, Feature::UNSPECIFIED_PLATFORM, -1, true }, | 37 Feature::UNSPECIFIED_LOCATION, Feature::UNSPECIFIED_PLATFORM, -1, |
| 38 Feature::IS_AVAILABLE }, |
35 { "", Extension::TYPE_UNKNOWN, Feature::UNSPECIFIED_CONTEXT, | 39 { "", Extension::TYPE_UNKNOWN, Feature::UNSPECIFIED_CONTEXT, |
36 Feature::COMPONENT_LOCATION, Feature::UNSPECIFIED_PLATFORM, -1, true }, | 40 Feature::COMPONENT_LOCATION, Feature::UNSPECIFIED_PLATFORM, -1, |
| 41 Feature::IS_AVAILABLE }, |
37 { "", Extension::TYPE_UNKNOWN, Feature::UNSPECIFIED_CONTEXT, | 42 { "", Extension::TYPE_UNKNOWN, Feature::UNSPECIFIED_CONTEXT, |
38 Feature::UNSPECIFIED_LOCATION, Feature::CHROMEOS_PLATFORM, -1, true }, | 43 Feature::UNSPECIFIED_LOCATION, Feature::CHROMEOS_PLATFORM, -1, |
| 44 Feature::IS_AVAILABLE }, |
39 { "", Extension::TYPE_UNKNOWN, Feature::UNSPECIFIED_CONTEXT, | 45 { "", Extension::TYPE_UNKNOWN, Feature::UNSPECIFIED_CONTEXT, |
40 Feature::UNSPECIFIED_LOCATION, Feature::UNSPECIFIED_PLATFORM, 25, true } | 46 Feature::UNSPECIFIED_LOCATION, Feature::UNSPECIFIED_PLATFORM, 25, |
| 47 Feature::IS_AVAILABLE } |
41 }; | 48 }; |
42 | 49 |
43 Feature feature; | 50 Feature feature; |
44 for (size_t i = 0; i < arraysize(tests); ++i) { | 51 for (size_t i = 0; i < arraysize(tests); ++i) { |
45 const IsAvailableTestData& test = tests[i]; | 52 const IsAvailableTestData& test = tests[i]; |
46 EXPECT_EQ(test.expected_result, | 53 EXPECT_EQ(test.expected_result, |
47 feature.IsAvailable(test.extension_id, test.extension_type, | 54 feature.IsAvailable(test.extension_id, test.extension_type, |
48 test.location, test.context, test.platform, | 55 test.location, test.context, test.platform, |
49 test.manifest_version)); | 56 test.manifest_version)); |
50 } | 57 } |
51 } | 58 } |
52 | 59 |
53 TEST(ExtensionFeatureTest, Whitelist) { | 60 TEST(ExtensionFeatureTest, Whitelist) { |
54 Feature feature; | 61 Feature feature; |
55 feature.whitelist()->insert("foo"); | 62 feature.whitelist()->insert("foo"); |
56 feature.whitelist()->insert("bar"); | 63 feature.whitelist()->insert("bar"); |
57 | 64 |
58 EXPECT_TRUE(feature.IsAvailable( | 65 EXPECT_EQ(Feature::IS_AVAILABLE, feature.IsAvailable( |
59 "foo", Extension::TYPE_UNKNOWN, Feature::UNSPECIFIED_LOCATION, | 66 "foo", Extension::TYPE_UNKNOWN, Feature::UNSPECIFIED_LOCATION, |
60 Feature::UNSPECIFIED_CONTEXT, Feature::UNSPECIFIED_PLATFORM, -1)); | 67 Feature::UNSPECIFIED_CONTEXT, Feature::UNSPECIFIED_PLATFORM, -1)); |
61 EXPECT_TRUE(feature.IsAvailable( | 68 EXPECT_EQ(Feature::IS_AVAILABLE, feature.IsAvailable( |
62 "bar", Extension::TYPE_UNKNOWN, Feature::UNSPECIFIED_LOCATION, | 69 "bar", Extension::TYPE_UNKNOWN, Feature::UNSPECIFIED_LOCATION, |
63 Feature::UNSPECIFIED_CONTEXT, Feature::UNSPECIFIED_PLATFORM, -1)); | 70 Feature::UNSPECIFIED_CONTEXT, Feature::UNSPECIFIED_PLATFORM, -1)); |
64 | 71 |
65 EXPECT_FALSE(feature.IsAvailable( | 72 EXPECT_EQ(Feature::NOT_FOUND_IN_WHITELIST, feature.IsAvailable( |
66 "baz", Extension::TYPE_UNKNOWN, Feature::UNSPECIFIED_LOCATION, | 73 "baz", Extension::TYPE_UNKNOWN, Feature::UNSPECIFIED_LOCATION, |
67 Feature::UNSPECIFIED_CONTEXT, Feature::UNSPECIFIED_PLATFORM, -1)); | 74 Feature::UNSPECIFIED_CONTEXT, Feature::UNSPECIFIED_PLATFORM, -1)); |
68 EXPECT_FALSE(feature.IsAvailable( | 75 EXPECT_EQ(Feature::NOT_FOUND_IN_WHITELIST, feature.IsAvailable( |
69 "", Extension::TYPE_UNKNOWN, Feature::UNSPECIFIED_LOCATION, | 76 "", Extension::TYPE_UNKNOWN, Feature::UNSPECIFIED_LOCATION, |
70 Feature::UNSPECIFIED_CONTEXT, Feature::UNSPECIFIED_PLATFORM, -1)); | 77 Feature::UNSPECIFIED_CONTEXT, Feature::UNSPECIFIED_PLATFORM, -1)); |
71 | 78 |
72 feature.extension_types()->insert(Extension::TYPE_PACKAGED_APP); | 79 feature.extension_types()->insert(Extension::TYPE_PACKAGED_APP); |
73 EXPECT_FALSE(feature.IsAvailable( | 80 EXPECT_EQ(Feature::NOT_FOUND_IN_WHITELIST, feature.IsAvailable( |
74 "baz", Extension::TYPE_PACKAGED_APP, Feature::UNSPECIFIED_LOCATION, | 81 "baz", Extension::TYPE_PACKAGED_APP, Feature::UNSPECIFIED_LOCATION, |
75 Feature::UNSPECIFIED_CONTEXT, Feature::UNSPECIFIED_PLATFORM, -1)); | 82 Feature::UNSPECIFIED_CONTEXT, Feature::UNSPECIFIED_PLATFORM, -1)); |
76 } | 83 } |
77 | 84 |
78 TEST(ExtensionFeatureTest, PackageType) { | 85 TEST(ExtensionFeatureTest, PackageType) { |
79 Feature feature; | 86 Feature feature; |
80 feature.extension_types()->insert(Extension::TYPE_EXTENSION); | 87 feature.extension_types()->insert(Extension::TYPE_EXTENSION); |
81 feature.extension_types()->insert(Extension::TYPE_PACKAGED_APP); | 88 feature.extension_types()->insert(Extension::TYPE_PACKAGED_APP); |
82 | 89 |
83 EXPECT_TRUE(feature.IsAvailable( | 90 EXPECT_EQ(Feature::IS_AVAILABLE, feature.IsAvailable( |
84 "", Extension::TYPE_EXTENSION, Feature::UNSPECIFIED_LOCATION, | 91 "", Extension::TYPE_EXTENSION, Feature::UNSPECIFIED_LOCATION, |
85 Feature::UNSPECIFIED_CONTEXT, Feature::UNSPECIFIED_PLATFORM, -1)); | 92 Feature::UNSPECIFIED_CONTEXT, Feature::UNSPECIFIED_PLATFORM, -1)); |
86 EXPECT_TRUE(feature.IsAvailable( | 93 EXPECT_EQ(Feature::IS_AVAILABLE, feature.IsAvailable( |
87 "", Extension::TYPE_PACKAGED_APP, Feature::UNSPECIFIED_LOCATION, | 94 "", Extension::TYPE_PACKAGED_APP, Feature::UNSPECIFIED_LOCATION, |
88 Feature::UNSPECIFIED_CONTEXT, Feature::UNSPECIFIED_PLATFORM, -1)); | 95 Feature::UNSPECIFIED_CONTEXT, Feature::UNSPECIFIED_PLATFORM, -1)); |
89 | 96 |
90 EXPECT_FALSE(feature.IsAvailable( | 97 EXPECT_EQ(Feature::INVALID_TYPE, feature.IsAvailable( |
91 "", Extension::TYPE_UNKNOWN, Feature::UNSPECIFIED_LOCATION, | 98 "", Extension::TYPE_UNKNOWN, Feature::UNSPECIFIED_LOCATION, |
92 Feature::UNSPECIFIED_CONTEXT, Feature::UNSPECIFIED_PLATFORM, -1)); | 99 Feature::UNSPECIFIED_CONTEXT, Feature::UNSPECIFIED_PLATFORM, -1)); |
93 EXPECT_FALSE(feature.IsAvailable( | 100 EXPECT_EQ(Feature::INVALID_TYPE, feature.IsAvailable( |
94 "", Extension::TYPE_THEME, Feature::UNSPECIFIED_LOCATION, | 101 "", Extension::TYPE_THEME, Feature::UNSPECIFIED_LOCATION, |
95 Feature::UNSPECIFIED_CONTEXT, Feature::UNSPECIFIED_PLATFORM, -1)); | 102 Feature::UNSPECIFIED_CONTEXT, Feature::UNSPECIFIED_PLATFORM, -1)); |
96 } | 103 } |
97 | 104 |
98 TEST(ExtensionFeatureTest, Context) { | 105 TEST(ExtensionFeatureTest, Context) { |
99 Feature feature; | 106 Feature feature; |
100 feature.contexts()->insert(Feature::PRIVILEGED_CONTEXT); | 107 feature.contexts()->insert(Feature::PRIVILEGED_CONTEXT); |
101 feature.contexts()->insert(Feature::CONTENT_SCRIPT_CONTEXT); | 108 feature.contexts()->insert(Feature::CONTENT_SCRIPT_CONTEXT); |
102 | 109 |
103 EXPECT_TRUE(feature.IsAvailable( | 110 EXPECT_EQ(Feature::IS_AVAILABLE, feature.IsAvailable( |
104 "", Extension::TYPE_UNKNOWN, Feature::UNSPECIFIED_LOCATION, | 111 "", Extension::TYPE_UNKNOWN, Feature::UNSPECIFIED_LOCATION, |
105 Feature::PRIVILEGED_CONTEXT, Feature::UNSPECIFIED_PLATFORM, -1)); | 112 Feature::PRIVILEGED_CONTEXT, Feature::UNSPECIFIED_PLATFORM, -1)); |
106 EXPECT_TRUE(feature.IsAvailable( | 113 EXPECT_EQ(Feature::IS_AVAILABLE, feature.IsAvailable( |
107 "", Extension::TYPE_UNKNOWN, Feature::UNSPECIFIED_LOCATION, | 114 "", Extension::TYPE_UNKNOWN, Feature::UNSPECIFIED_LOCATION, |
108 Feature::CONTENT_SCRIPT_CONTEXT, Feature::UNSPECIFIED_PLATFORM, -1)); | 115 Feature::CONTENT_SCRIPT_CONTEXT, Feature::UNSPECIFIED_PLATFORM, -1)); |
109 | 116 |
110 EXPECT_FALSE(feature.IsAvailable( | 117 EXPECT_EQ(Feature::INVALID_CONTEXT, feature.IsAvailable( |
111 "", Extension::TYPE_UNKNOWN, Feature::UNSPECIFIED_LOCATION, | 118 "", Extension::TYPE_UNKNOWN, Feature::UNSPECIFIED_LOCATION, |
112 Feature::UNPRIVILEGED_CONTEXT, Feature::UNSPECIFIED_PLATFORM, -1)); | 119 Feature::UNPRIVILEGED_CONTEXT, Feature::UNSPECIFIED_PLATFORM, -1)); |
113 EXPECT_FALSE(feature.IsAvailable( | 120 EXPECT_EQ(Feature::INVALID_CONTEXT, feature.IsAvailable( |
114 "", Extension::TYPE_UNKNOWN, Feature::UNSPECIFIED_LOCATION, | 121 "", Extension::TYPE_UNKNOWN, Feature::UNSPECIFIED_LOCATION, |
115 Feature::UNSPECIFIED_CONTEXT, Feature::UNSPECIFIED_PLATFORM, -1)); | 122 Feature::UNSPECIFIED_CONTEXT, Feature::UNSPECIFIED_PLATFORM, -1)); |
116 } | 123 } |
117 | 124 |
118 TEST(ExtensionFeatureTest, Location) { | 125 TEST(ExtensionFeatureTest, Location) { |
119 Feature feature; | 126 Feature feature; |
120 feature.set_location(Feature::COMPONENT_LOCATION); | 127 feature.set_location(Feature::COMPONENT_LOCATION); |
121 EXPECT_TRUE(feature.IsAvailable( | 128 EXPECT_EQ(Feature::IS_AVAILABLE, feature.IsAvailable( |
122 "", Extension::TYPE_UNKNOWN, Feature::COMPONENT_LOCATION, | 129 "", Extension::TYPE_UNKNOWN, Feature::COMPONENT_LOCATION, |
123 Feature::UNSPECIFIED_CONTEXT, Feature::UNSPECIFIED_PLATFORM, -1)); | 130 Feature::UNSPECIFIED_CONTEXT, Feature::UNSPECIFIED_PLATFORM, -1)); |
124 EXPECT_FALSE(feature.IsAvailable( | 131 EXPECT_EQ(Feature::INVALID_LOCATION, feature.IsAvailable( |
125 "", Extension::TYPE_UNKNOWN, Feature::UNSPECIFIED_LOCATION, | 132 "", Extension::TYPE_UNKNOWN, Feature::UNSPECIFIED_LOCATION, |
126 Feature::UNSPECIFIED_CONTEXT, Feature::UNSPECIFIED_PLATFORM, -1)); | 133 Feature::UNSPECIFIED_CONTEXT, Feature::UNSPECIFIED_PLATFORM, -1)); |
127 } | 134 } |
128 | 135 |
129 TEST(ExtensionFeatureTest, Platform) { | 136 TEST(ExtensionFeatureTest, Platform) { |
130 Feature feature; | 137 Feature feature; |
131 feature.set_platform(Feature::CHROMEOS_PLATFORM); | 138 feature.set_platform(Feature::CHROMEOS_PLATFORM); |
132 EXPECT_TRUE(feature.IsAvailable( | 139 EXPECT_EQ(Feature::IS_AVAILABLE, feature.IsAvailable( |
133 "", Extension::TYPE_UNKNOWN, Feature::UNSPECIFIED_LOCATION, | 140 "", Extension::TYPE_UNKNOWN, Feature::UNSPECIFIED_LOCATION, |
134 Feature::UNSPECIFIED_CONTEXT, Feature::CHROMEOS_PLATFORM, -1)); | 141 Feature::UNSPECIFIED_CONTEXT, Feature::CHROMEOS_PLATFORM, -1)); |
135 EXPECT_FALSE(feature.IsAvailable( | 142 EXPECT_EQ(Feature::INVALID_PLATFORM, feature.IsAvailable( |
136 "", Extension::TYPE_UNKNOWN, Feature::UNSPECIFIED_LOCATION, | 143 "", Extension::TYPE_UNKNOWN, Feature::UNSPECIFIED_LOCATION, |
137 Feature::UNSPECIFIED_CONTEXT, Feature::UNSPECIFIED_PLATFORM, -1)); | 144 Feature::UNSPECIFIED_CONTEXT, Feature::UNSPECIFIED_PLATFORM, -1)); |
138 } | 145 } |
139 | 146 |
140 TEST(ExtensionFeatureTest, Version) { | 147 TEST(ExtensionFeatureTest, Version) { |
141 Feature feature; | 148 Feature feature; |
142 feature.set_min_manifest_version(5); | 149 feature.set_min_manifest_version(5); |
143 | 150 |
144 EXPECT_FALSE(feature.IsAvailable( | 151 EXPECT_EQ(Feature::INVALID_MIN_MANIFEST_VERSION, feature.IsAvailable( |
145 "", Extension::TYPE_UNKNOWN, Feature::UNSPECIFIED_LOCATION, | 152 "", Extension::TYPE_UNKNOWN, Feature::UNSPECIFIED_LOCATION, |
146 Feature::UNSPECIFIED_CONTEXT, Feature::UNSPECIFIED_PLATFORM, 0)); | 153 Feature::UNSPECIFIED_CONTEXT, Feature::UNSPECIFIED_PLATFORM, 0)); |
147 EXPECT_FALSE(feature.IsAvailable( | 154 EXPECT_EQ(Feature::INVALID_MIN_MANIFEST_VERSION, feature.IsAvailable( |
148 "", Extension::TYPE_UNKNOWN, Feature::UNSPECIFIED_LOCATION, | 155 "", Extension::TYPE_UNKNOWN, Feature::UNSPECIFIED_LOCATION, |
149 Feature::UNSPECIFIED_CONTEXT, Feature::UNSPECIFIED_PLATFORM, 4)); | 156 Feature::UNSPECIFIED_CONTEXT, Feature::UNSPECIFIED_PLATFORM, 4)); |
150 | 157 |
151 EXPECT_TRUE(feature.IsAvailable( | 158 EXPECT_EQ(Feature::IS_AVAILABLE, feature.IsAvailable( |
152 "", Extension::TYPE_UNKNOWN, Feature::UNSPECIFIED_LOCATION, | 159 "", Extension::TYPE_UNKNOWN, Feature::UNSPECIFIED_LOCATION, |
153 Feature::UNSPECIFIED_CONTEXT, Feature::UNSPECIFIED_PLATFORM, 5)); | 160 Feature::UNSPECIFIED_CONTEXT, Feature::UNSPECIFIED_PLATFORM, 5)); |
154 EXPECT_TRUE(feature.IsAvailable( | 161 EXPECT_EQ(Feature::IS_AVAILABLE, feature.IsAvailable( |
155 "", Extension::TYPE_UNKNOWN, Feature::UNSPECIFIED_LOCATION, | 162 "", Extension::TYPE_UNKNOWN, Feature::UNSPECIFIED_LOCATION, |
156 Feature::UNSPECIFIED_CONTEXT, Feature::UNSPECIFIED_PLATFORM, 10)); | 163 Feature::UNSPECIFIED_CONTEXT, Feature::UNSPECIFIED_PLATFORM, 10)); |
157 | 164 |
158 feature.set_max_manifest_version(8); | 165 feature.set_max_manifest_version(8); |
159 | 166 |
160 EXPECT_FALSE(feature.IsAvailable( | 167 EXPECT_EQ(Feature::INVALID_MAX_MANIFEST_VERSION, feature.IsAvailable( |
161 "", Extension::TYPE_UNKNOWN, Feature::UNSPECIFIED_LOCATION, | 168 "", Extension::TYPE_UNKNOWN, Feature::UNSPECIFIED_LOCATION, |
162 Feature::UNSPECIFIED_CONTEXT, Feature::UNSPECIFIED_PLATFORM, 10)); | 169 Feature::UNSPECIFIED_CONTEXT, Feature::UNSPECIFIED_PLATFORM, 10)); |
163 EXPECT_TRUE(feature.IsAvailable( | 170 EXPECT_EQ(Feature::IS_AVAILABLE, feature.IsAvailable( |
164 "", Extension::TYPE_UNKNOWN, Feature::UNSPECIFIED_LOCATION, | 171 "", Extension::TYPE_UNKNOWN, Feature::UNSPECIFIED_LOCATION, |
165 Feature::UNSPECIFIED_CONTEXT, Feature::UNSPECIFIED_PLATFORM, 8)); | 172 Feature::UNSPECIFIED_CONTEXT, Feature::UNSPECIFIED_PLATFORM, 8)); |
166 EXPECT_TRUE(feature.IsAvailable( | 173 EXPECT_EQ(Feature::IS_AVAILABLE, feature.IsAvailable( |
167 "", Extension::TYPE_UNKNOWN, Feature::UNSPECIFIED_LOCATION, | 174 "", Extension::TYPE_UNKNOWN, Feature::UNSPECIFIED_LOCATION, |
168 Feature::UNSPECIFIED_CONTEXT, Feature::UNSPECIFIED_PLATFORM, 7)); | 175 Feature::UNSPECIFIED_CONTEXT, Feature::UNSPECIFIED_PLATFORM, 7)); |
169 } | 176 } |
170 | 177 |
171 TEST(ExtensionFeatureTest, ParseNull) { | 178 TEST(ExtensionFeatureTest, ParseNull) { |
172 scoped_ptr<DictionaryValue> value(new DictionaryValue()); | 179 scoped_ptr<DictionaryValue> value(new DictionaryValue()); |
173 scoped_ptr<Feature> feature(Feature::Parse(value.get())); | 180 scoped_ptr<Feature> feature(Feature::Parse(value.get())); |
174 EXPECT_TRUE(feature->whitelist()->empty()); | 181 EXPECT_TRUE(feature->whitelist()->empty()); |
175 EXPECT_TRUE(feature->extension_types()->empty()); | 182 EXPECT_TRUE(feature->extension_types()->empty()); |
176 EXPECT_TRUE(feature->contexts()->empty()); | 183 EXPECT_TRUE(feature->contexts()->empty()); |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
247 } | 254 } |
248 | 255 |
249 TEST(ExtensionFeatureTest, ManifestVersion) { | 256 TEST(ExtensionFeatureTest, ManifestVersion) { |
250 scoped_ptr<DictionaryValue> value(new DictionaryValue()); | 257 scoped_ptr<DictionaryValue> value(new DictionaryValue()); |
251 value->SetInteger("min_manifest_version", 1); | 258 value->SetInteger("min_manifest_version", 1); |
252 value->SetInteger("max_manifest_version", 5); | 259 value->SetInteger("max_manifest_version", 5); |
253 scoped_ptr<Feature> feature(Feature::Parse(value.get())); | 260 scoped_ptr<Feature> feature(Feature::Parse(value.get())); |
254 EXPECT_EQ(1, feature->min_manifest_version()); | 261 EXPECT_EQ(1, feature->min_manifest_version()); |
255 EXPECT_EQ(5, feature->max_manifest_version()); | 262 EXPECT_EQ(5, feature->max_manifest_version()); |
256 } | 263 } |
OLD | NEW |