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,
std::unique_ptr<TemplateURLData> ConvertSearchProvider(
PrefService* prefs,
const ChromeSettingsOverrides::Search_provider& search_provider,
const ChromeSettingsOverrides::SearchProvider& search_provider,
const std::string& install_parameter) {
std::unique_ptr<TemplateURLData> data;
if (search_provider.prepopulated_id) {
......
......@@ -70,16 +70,16 @@ std::vector<GURL> ParseStartupPage(const ChromeSettingsOverrides& overrides,
return urls;
}
std::unique_ptr<ChromeSettingsOverrides::Search_provider> ParseSearchEngine(
std::unique_ptr<ChromeSettingsOverrides::SearchProvider> ParseSearchEngine(
ChromeSettingsOverrides* overrides,
base::string16* error) {
if (!overrides->search_provider)
return std::unique_ptr<ChromeSettingsOverrides::Search_provider>();
return std::unique_ptr<ChromeSettingsOverrides::SearchProvider>();
if (!CreateManifestURL(overrides->search_provider->search_url)) {
*error = extensions::ErrorUtils::FormatErrorMessageUTF16(
manifest_errors::kInvalidSearchEngineURL,
overrides->search_provider->search_url);
return std::unique_ptr<ChromeSettingsOverrides::Search_provider>();
return std::unique_ptr<ChromeSettingsOverrides::SearchProvider>();
}
if (overrides->search_provider->prepopulated_id)
return std::move(overrides->search_provider);
......@@ -109,7 +109,7 @@ std::unique_ptr<ChromeSettingsOverrides::Search_provider> ParseSearchEngine(
*error = extensions::ErrorUtils::FormatErrorMessageUTF16(
manifest_errors::kInvalidSearchEngineURL,
*overrides->search_provider->favicon_url);
return std::unique_ptr<ChromeSettingsOverrides::Search_provider>();
return std::unique_ptr<ChromeSettingsOverrides::SearchProvider>();
}
return std::move(overrides->search_provider);
}
......
......@@ -29,7 +29,7 @@ struct SettingsOverrides : public Extension::ManifestData {
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;
std::unique_ptr<GURL> homepage;
std::vector<GURL> startup_pages;
......
......@@ -162,7 +162,7 @@ TEST(OverrideSettingsTest, ParseManifest) {
ASSERT_TRUE(settings_override);
ASSERT_TRUE(settings_override->search_engine);
EXPECT_TRUE(settings_override->search_engine->is_default);
const ChromeSettingsOverrides::Search_provider* search_engine =
const ChromeSettingsOverrides::SearchProvider* search_engine =
settings_override->search_engine.get();
EXPECT_EQ("first", *search_engine->name);
EXPECT_EQ("firstkey", *search_engine->keyword);
......@@ -196,7 +196,7 @@ TEST(OverrideSettingsTest, ParsePrepopulatedId) {
ASSERT_TRUE(settings_override);
ASSERT_TRUE(settings_override->search_engine);
EXPECT_TRUE(settings_override->search_engine->is_default);
const ChromeSettingsOverrides::Search_provider* search_engine =
const ChromeSettingsOverrides::SearchProvider* search_engine =
settings_override->search_engine.get();
ASSERT_TRUE(search_engine->prepopulated_id);
EXPECT_EQ("http://www.foo.com/s?q={searchTerms}", search_engine->search_url);
......
......@@ -34,10 +34,13 @@ def Classname(s):
suited to C++.
eg experimental.downloads -> Experimental_Downloads
updateAll -> UpdateAll.
updateAll -> UpdateAll
update_all -> UpdateAll
"""
if s == '':
return 'EMPTY_STRING'
if IsUnixName(s):
return CamelCase(s)
return '_'.join([x[0].upper() + x[1:] for x in re.split(r'\W', s)])
......@@ -138,6 +141,12 @@ def UnixNameToConstantName(unix_name):
return ('k' + ''.join(word[0].upper() + word[1:]
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):
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