Chromium Code Reviews| Index: chrome/common/extensions/manifest_handlers/settings_overrides_handler_unittest.cc |
| diff --git a/chrome/common/extensions/manifest_handlers/settings_overrides_handler_unittest.cc b/chrome/common/extensions/manifest_handlers/settings_overrides_handler_unittest.cc |
| index 6b9a3320ea8f0ff0ea8271ac839444fee668c031..201e2bc1a71ee9e9a38d621097de900d191ccc03 100644 |
| --- a/chrome/common/extensions/manifest_handlers/settings_overrides_handler_unittest.cc |
| +++ b/chrome/common/extensions/manifest_handlers/settings_overrides_handler_unittest.cc |
| @@ -32,17 +32,34 @@ const char kManifest[] = "{" |
| " }" |
| "}"; |
| +const char kBrokenManifest[] = "{" |
| + " \"version\" : \"1.0.0.0\"," |
| + " \"name\" : \"Test\"," |
| + " \"chrome_settings_overrides\" : {" |
| + " \"homepage\" : \"{invalid}\"," |
| + " \"search_provider\" : {" |
| + " \"name\" : \"first\"," |
| + " \"keyword\" : \"firstkey\"," |
| + " \"search_url\" : \"{invalid}/s?q={searchTerms}\"," |
| + " \"favicon_url\" : \"{invalid}/favicon.ico\"," |
| + " \"encoding\" : \"UTF-8\"," |
| + " \"is_default\" : true" |
| + " }," |
| + " \"startup_pages\" : [\"{invalid}\"]" |
| + " }" |
| + "}"; |
| + |
| using extensions::api::manifest_types::ChromeSettingsOverrides; |
| using extensions::Extension; |
| using extensions::Manifest; |
| using extensions::SettingsOverrides; |
| namespace manifest_keys = extensions::manifest_keys; |
| -class DeclarativeSettingsTest : public testing::Test { |
| +class OverrideSettingsTest : public testing::Test { |
| }; |
| -TEST_F(DeclarativeSettingsTest, ParseManifest) { |
| +TEST_F(OverrideSettingsTest, ParseManifest) { |
| extensions::ScopedCurrentChannel channel(chrome::VersionInfo::CHANNEL_DEV); |
| std::string manifest(kManifest); |
| JSONStringValueSerializer json(&manifest); |
| @@ -60,7 +77,7 @@ TEST_F(DeclarativeSettingsTest, ParseManifest) { |
| ASSERT_TRUE(extension->manifest()->HasPath(manifest_keys::kSettingsOverride)); |
| SettingsOverrides* settings_override = static_cast<SettingsOverrides*>( |
| - extension->GetManifestData(manifest_keys::kSettingsOverride)); |
| + extension->GetManifestData(manifest_keys::kSettingsOverride)); |
| ASSERT_TRUE(settings_override); |
| ASSERT_TRUE(settings_override->search_engine); |
| EXPECT_TRUE(settings_override->search_engine->is_default); |
| @@ -81,4 +98,21 @@ TEST_F(DeclarativeSettingsTest, ParseManifest) { |
| EXPECT_EQ(GURL("http://www.homepage.com"), *settings_override->homepage); |
| } |
| +TEST_F(OverrideSettingsTest, ParseBrokenManifest) { |
| + extensions::ScopedCurrentChannel channel(chrome::VersionInfo::CHANNEL_DEV); |
| + std::string manifest(kBrokenManifest); |
| + JSONStringValueSerializer json(&manifest); |
| + std::string error; |
| + scoped_ptr<base::Value> root(json.Deserialize(NULL, &error)); |
| + ASSERT_TRUE(root); |
| + ASSERT_TRUE(root->IsType(base::Value::TYPE_DICTIONARY)); |
| + scoped_refptr<Extension> extension = Extension::Create( |
| + base::FilePath(FILE_PATH_LITERAL("//nonexistent")), |
| + Manifest::INVALID_LOCATION, |
| + *static_cast<base::DictionaryValue*>(root.get()), |
| + Extension::NO_FLAGS, |
| + &error); |
|
not at google - send to devlin
2013/11/16 00:38:30
EXPECT_EQ(that error you just added, error) ?
vasilii
2013/11/16 00:55:38
Done.
|
| + EXPECT_FALSE(extension); |
| +} |
| + |
| } // namespace |