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

Side by Side Diff: tools/json_schema_compiler/test/features_generation_unittest.cc

Issue 2494653005: Support API aliases (Closed)
Patch Set: . Created 4 years 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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/api_feature.h" 5 #include "extensions/common/features/api_feature.h"
6 #include "extensions/common/features/complex_feature.h" 6 #include "extensions/common/features/complex_feature.h"
7 #include "extensions/common/features/feature.h" 7 #include "extensions/common/features/feature.h"
8 #include "extensions/common/features/simple_feature.h" 8 #include "extensions/common/features/simple_feature.h"
9 #include "testing/gtest/include/gtest/gtest.h" 9 #include "testing/gtest/include/gtest/gtest.h"
10 #include "tools/json_schema_compiler/test/features_compiler_test.h" 10 #include "tools/json_schema_compiler/test/features_compiler_test.h"
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 std::vector<Feature::Context> contexts; 46 std::vector<Feature::Context> contexts;
47 std::vector<Feature::Platform> platforms; 47 std::vector<Feature::Platform> platforms;
48 URLPatternSet matches; 48 URLPatternSet matches;
49 SimpleFeature::Location location; 49 SimpleFeature::Location location;
50 int min_manifest_version; 50 int min_manifest_version;
51 int max_manifest_version; 51 int max_manifest_version;
52 bool component_extensions_auto_granted; 52 bool component_extensions_auto_granted;
53 std::string command_line_switch; 53 std::string command_line_switch;
54 std::unique_ptr<version_info::Channel> channel; 54 std::unique_ptr<version_info::Channel> channel;
55 bool internal; 55 bool internal;
56 std::string alias;
57 std::string source;
56 }; 58 };
57 59
58 FeatureComparator::FeatureComparator(const std::string& name) 60 FeatureComparator::FeatureComparator(const std::string& name)
59 : name(name), 61 : name(name),
60 location(kDefaultLocation), 62 location(kDefaultLocation),
61 min_manifest_version(kDefaultMinVersion), 63 min_manifest_version(kDefaultMinVersion),
62 max_manifest_version(kDefaultMaxVersion), 64 max_manifest_version(kDefaultMaxVersion),
63 component_extensions_auto_granted(kDefaultAutoGrant), 65 component_extensions_auto_granted(kDefaultAutoGrant),
64 internal(kDefaultInternal) {} 66 internal(kDefaultInternal) {}
65 67
(...skipping 13 matching lines...) Expand all
79 EXPECT_EQ(min_manifest_version, feature->min_manifest_version()) << name; 81 EXPECT_EQ(min_manifest_version, feature->min_manifest_version()) << name;
80 EXPECT_EQ(max_manifest_version, feature->max_manifest_version()) << name; 82 EXPECT_EQ(max_manifest_version, feature->max_manifest_version()) << name;
81 EXPECT_EQ(component_extensions_auto_granted, 83 EXPECT_EQ(component_extensions_auto_granted,
82 feature->component_extensions_auto_granted()) 84 feature->component_extensions_auto_granted())
83 << name; 85 << name;
84 EXPECT_EQ(command_line_switch, feature->command_line_switch()) << name; 86 EXPECT_EQ(command_line_switch, feature->command_line_switch()) << name;
85 ASSERT_EQ(channel.get() != nullptr, feature->has_channel()) << name; 87 ASSERT_EQ(channel.get() != nullptr, feature->has_channel()) << name;
86 if (channel) 88 if (channel)
87 EXPECT_EQ(*channel, feature->channel()) << name; 89 EXPECT_EQ(*channel, feature->channel()) << name;
88 EXPECT_EQ(internal, feature->IsInternal()) << name; 90 EXPECT_EQ(internal, feature->IsInternal()) << name;
91 EXPECT_EQ(alias, feature->alias()) << name;
92 EXPECT_EQ(source, feature->source()) << name;
89 } 93 }
90 94
91 TEST(FeaturesGenerationTest, FeaturesTest) { 95 TEST(FeaturesGenerationTest, FeaturesTest) {
92 CompilerTestFeatureProvider provider; 96 CompilerTestFeatureProvider provider;
93 97
94 auto GetAPIFeature = [&provider](const std::string& name) { 98 auto GetAPIFeature = [&provider](const std::string& name) {
95 Feature* feature = provider.GetFeature(name); 99 Feature* feature = provider.GetFeature(name);
96 // Shame we can't test this more safely, but if our feature is declared as 100 // Shame we can't test this more safely, but if our feature is declared as
97 // the wrong class, things should blow up in a spectacular fashion. 101 // the wrong class, things should blow up in a spectacular fashion.
98 return static_cast<APIFeature*>(feature); 102 return static_cast<APIFeature*>(feature);
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
255 // Finally, check the branch of the complex feature. 259 // Finally, check the branch of the complex feature.
256 FeatureComparator comparator("complex"); 260 FeatureComparator comparator("complex");
257 comparator.channel.reset( 261 comparator.channel.reset(
258 new version_info::Channel(version_info::Channel::BETA)); 262 new version_info::Channel(version_info::Channel::BETA));
259 comparator.contexts = {Feature::BLESSED_EXTENSION_CONTEXT}; 263 comparator.contexts = {Feature::BLESSED_EXTENSION_CONTEXT};
260 comparator.extension_types = {Manifest::TYPE_EXTENSION}; 264 comparator.extension_types = {Manifest::TYPE_EXTENSION};
261 comparator.whitelist = {"aaa"}; 265 comparator.whitelist = {"aaa"};
262 comparator.CompareFeature(other_parent); 266 comparator.CompareFeature(other_parent);
263 } 267 }
264 } 268 }
269
270 // Test API aliases.
271 {
272 APIFeature* feature = GetAPIFeature("alias");
273 FeatureComparator comparator("alias");
274 comparator.contexts = {Feature::BLESSED_EXTENSION_CONTEXT};
275 comparator.channel.reset(
276 new version_info::Channel(version_info::Channel::STABLE));
277 comparator.source = "alias_source";
278 comparator.CompareFeature(feature);
279 }
280 {
281 APIFeature* feature = GetAPIFeature("alias_source");
282 FeatureComparator comparator("alias_source");
283 comparator.contexts = {Feature::BLESSED_EXTENSION_CONTEXT};
284 comparator.channel.reset(
285 new version_info::Channel(version_info::Channel::STABLE));
286 comparator.alias = "alias";
287 comparator.CompareFeature(feature);
288 }
289 {
290 Feature* feature = GetAPIFeature("complex_alias");
291 ASSERT_EQ("", feature->alias());
292 ASSERT_EQ("complex_alias_source", feature->source());
293 }
294 {
295 Feature* feature = GetAPIFeature("complex_alias_source");
296 ASSERT_EQ("complex_alias", feature->alias());
297 ASSERT_EQ("", feature->source());
298 }
299 {
300 Feature* feature = GetAPIFeature("parent_source");
301 ASSERT_EQ("parent_source_alias", feature->alias());
302 ASSERT_EQ("", feature->source());
303 }
304 {
305 Feature* feature = GetAPIFeature("parent_source.child");
306 ASSERT_EQ("parent_source_alias", feature->alias());
307 ASSERT_EQ("", feature->source());
308 }
309 {
310 Feature* feature = GetAPIFeature("parent_source.child_source");
311 ASSERT_EQ("parent_source_child_alias", feature->alias());
312 ASSERT_EQ("", feature->source());
313 }
314 {
315 Feature* feature = GetAPIFeature("alias_parent");
316 ASSERT_EQ("", feature->alias());
317 ASSERT_EQ("", feature->source());
318 }
319 {
320 Feature* feature = GetAPIFeature("alias_parent.child");
321 ASSERT_EQ("", feature->alias());
322 ASSERT_EQ("child_source", feature->source());
323 }
265 } 324 }
266 325
267 } // namespace extensions 326 } // namespace extensions
OLDNEW
« no previous file with comments | « tools/json_schema_compiler/feature_compiler_test.py ('k') | tools/json_schema_compiler/test/features_test.json » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698