Commit 4b95fe35 authored by Karandeep Bhatia's avatar Karandeep Bhatia Committed by Commit Bot

JsonSchemaCompiler: Generate better class names when the type's name is

in hacker_case.

When the type name is in hacker_case, generate HackerCase as the class
name instead of Hacker_case.

BUG=1113513

Change-Id: Ie94419b088a8c5de9434a2f6bcb962ca0a1a20cf
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2360508
Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
Reviewed-by: default avatarDevlin <rdevlin.cronin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#799867}
parent 6a7f4e4d
...@@ -46,7 +46,7 @@ std::string SubstituteInstallParam(std::string str, ...@@ -46,7 +46,7 @@ std::string SubstituteInstallParam(std::string str,
std::unique_ptr<TemplateURLData> ConvertSearchProvider( std::unique_ptr<TemplateURLData> ConvertSearchProvider(
PrefService* prefs, PrefService* prefs,
const ChromeSettingsOverrides::Search_provider& search_provider, const ChromeSettingsOverrides::SearchProvider& search_provider,
const std::string& install_parameter) { const std::string& install_parameter) {
std::unique_ptr<TemplateURLData> data; std::unique_ptr<TemplateURLData> data;
if (search_provider.prepopulated_id) { if (search_provider.prepopulated_id) {
......
...@@ -70,16 +70,16 @@ std::vector<GURL> ParseStartupPage(const ChromeSettingsOverrides& overrides, ...@@ -70,16 +70,16 @@ std::vector<GURL> ParseStartupPage(const ChromeSettingsOverrides& overrides,
return urls; return urls;
} }
std::unique_ptr<ChromeSettingsOverrides::Search_provider> ParseSearchEngine( std::unique_ptr<ChromeSettingsOverrides::SearchProvider> ParseSearchEngine(
ChromeSettingsOverrides* overrides, ChromeSettingsOverrides* overrides,
base::string16* error) { base::string16* error) {
if (!overrides->search_provider) if (!overrides->search_provider)
return std::unique_ptr<ChromeSettingsOverrides::Search_provider>(); return std::unique_ptr<ChromeSettingsOverrides::SearchProvider>();
if (!CreateManifestURL(overrides->search_provider->search_url)) { if (!CreateManifestURL(overrides->search_provider->search_url)) {
*error = extensions::ErrorUtils::FormatErrorMessageUTF16( *error = extensions::ErrorUtils::FormatErrorMessageUTF16(
manifest_errors::kInvalidSearchEngineURL, manifest_errors::kInvalidSearchEngineURL,
overrides->search_provider->search_url); overrides->search_provider->search_url);
return std::unique_ptr<ChromeSettingsOverrides::Search_provider>(); return std::unique_ptr<ChromeSettingsOverrides::SearchProvider>();
} }
if (overrides->search_provider->prepopulated_id) if (overrides->search_provider->prepopulated_id)
return std::move(overrides->search_provider); return std::move(overrides->search_provider);
...@@ -109,7 +109,7 @@ std::unique_ptr<ChromeSettingsOverrides::Search_provider> ParseSearchEngine( ...@@ -109,7 +109,7 @@ std::unique_ptr<ChromeSettingsOverrides::Search_provider> ParseSearchEngine(
*error = extensions::ErrorUtils::FormatErrorMessageUTF16( *error = extensions::ErrorUtils::FormatErrorMessageUTF16(
manifest_errors::kInvalidSearchEngineURL, manifest_errors::kInvalidSearchEngineURL,
*overrides->search_provider->favicon_url); *overrides->search_provider->favicon_url);
return std::unique_ptr<ChromeSettingsOverrides::Search_provider>(); return std::unique_ptr<ChromeSettingsOverrides::SearchProvider>();
} }
return std::move(overrides->search_provider); return std::move(overrides->search_provider);
} }
......
...@@ -29,7 +29,7 @@ struct SettingsOverrides : public Extension::ManifestData { ...@@ -29,7 +29,7 @@ struct SettingsOverrides : public Extension::ManifestData {
static const SettingsOverrides* Get(const Extension* extension); static const SettingsOverrides* Get(const Extension* extension);
std::unique_ptr<api::manifest_types::ChromeSettingsOverrides::Search_provider> std::unique_ptr<api::manifest_types::ChromeSettingsOverrides::SearchProvider>
search_engine; search_engine;
std::unique_ptr<GURL> homepage; std::unique_ptr<GURL> homepage;
std::vector<GURL> startup_pages; std::vector<GURL> startup_pages;
......
...@@ -162,7 +162,7 @@ TEST(OverrideSettingsTest, ParseManifest) { ...@@ -162,7 +162,7 @@ TEST(OverrideSettingsTest, ParseManifest) {
ASSERT_TRUE(settings_override); ASSERT_TRUE(settings_override);
ASSERT_TRUE(settings_override->search_engine); ASSERT_TRUE(settings_override->search_engine);
EXPECT_TRUE(settings_override->search_engine->is_default); EXPECT_TRUE(settings_override->search_engine->is_default);
const ChromeSettingsOverrides::Search_provider* search_engine = const ChromeSettingsOverrides::SearchProvider* search_engine =
settings_override->search_engine.get(); settings_override->search_engine.get();
EXPECT_EQ("first", *search_engine->name); EXPECT_EQ("first", *search_engine->name);
EXPECT_EQ("firstkey", *search_engine->keyword); EXPECT_EQ("firstkey", *search_engine->keyword);
...@@ -196,7 +196,7 @@ TEST(OverrideSettingsTest, ParsePrepopulatedId) { ...@@ -196,7 +196,7 @@ TEST(OverrideSettingsTest, ParsePrepopulatedId) {
ASSERT_TRUE(settings_override); ASSERT_TRUE(settings_override);
ASSERT_TRUE(settings_override->search_engine); ASSERT_TRUE(settings_override->search_engine);
EXPECT_TRUE(settings_override->search_engine->is_default); EXPECT_TRUE(settings_override->search_engine->is_default);
const ChromeSettingsOverrides::Search_provider* search_engine = const ChromeSettingsOverrides::SearchProvider* search_engine =
settings_override->search_engine.get(); settings_override->search_engine.get();
ASSERT_TRUE(search_engine->prepopulated_id); ASSERT_TRUE(search_engine->prepopulated_id);
EXPECT_EQ("http://www.foo.com/s?q={searchTerms}", search_engine->search_url); EXPECT_EQ("http://www.foo.com/s?q={searchTerms}", search_engine->search_url);
......
...@@ -34,10 +34,13 @@ def Classname(s): ...@@ -34,10 +34,13 @@ def Classname(s):
suited to C++. suited to C++.
eg experimental.downloads -> Experimental_Downloads eg experimental.downloads -> Experimental_Downloads
updateAll -> UpdateAll. updateAll -> UpdateAll
update_all -> UpdateAll
""" """
if s == '': if s == '':
return 'EMPTY_STRING' return 'EMPTY_STRING'
if IsUnixName(s):
return CamelCase(s)
return '_'.join([x[0].upper() + x[1:] for x in re.split(r'\W', s)]) return '_'.join([x[0].upper() + x[1:] for x in re.split(r'\W', s)])
...@@ -138,6 +141,12 @@ def UnixNameToConstantName(unix_name): ...@@ -138,6 +141,12 @@ def UnixNameToConstantName(unix_name):
return ('k' + ''.join(word[0].upper() + word[1:] return ('k' + ''.join(word[0].upper() + word[1:]
for word in unix_name.split('_'))) for word in unix_name.split('_')))
def IsUnixName(s):
# type (str) -> bool
"""Returns true if |s| is of the type unix_name i.e. only has lower cased
characters and underscores with at least one underscore.
"""
return all(x.islower() or x == '_' for x in s) and '_' in s
def CamelCase(unix_name): def CamelCase(unix_name):
return ''.join(word.capitalize() for word in unix_name.split('_')) return ''.join(word.capitalize() for word in unix_name.split('_'))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment