| Index: chrome/common/extensions/manifest_handlers/ui_overrides_handler_unittest.cc
|
| diff --git a/chrome/common/extensions/manifest_handlers/ui_overrides_handler_unittest.cc b/chrome/common/extensions/manifest_handlers/ui_overrides_handler_unittest.cc
|
| index 2c3ffd97be7468c7b37f55a5b830f42b42c64761..da5ad3a1c0137807fa4d84b0b9f5e45d5abe5b8a 100644
|
| --- a/chrome/common/extensions/manifest_handlers/ui_overrides_handler_unittest.cc
|
| +++ b/chrome/common/extensions/manifest_handlers/ui_overrides_handler_unittest.cc
|
| @@ -4,10 +4,12 @@
|
|
|
| #include "chrome/common/extensions/manifest_handlers/ui_overrides_handler.h"
|
|
|
| +#include "base/command_line.h"
|
| #include "base/json/json_string_value_serializer.h"
|
| #include "base/strings/utf_string_conversions.h"
|
| #include "chrome/common/extensions/features/feature_channel.h"
|
| #include "chrome/common/extensions/manifest_url_handler.h"
|
| +#include "extensions/common/error_utils.h"
|
| #include "extensions/common/extension.h"
|
| #include "extensions/common/manifest_constants.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
| @@ -17,50 +19,37 @@ namespace {
|
| const char kManifest[] = "{"
|
| " \"version\" : \"1.0.0.0\","
|
| " \"name\" : \"Test\","
|
| - " \"chrome_settings_overrides\" : {"
|
| - " \"homepage\" : \"http://www.homepage.com\","
|
| - " \"search_provider\" : {"
|
| - " \"name\" : \"first\","
|
| - " \"keyword\" : \"firstkey\","
|
| - " \"search_url\" : \"http://www.foo.com/s?q={searchTerms}\","
|
| - " \"favicon_url\" : \"http://www.foo.com/favicon.ico\","
|
| - " \"suggest_url\" : \"http://www.foo.com/s?q={searchTerms}\","
|
| - " \"encoding\" : \"UTF-8\","
|
| - " \"is_default\" : true"
|
| - " },"
|
| - " \"startup_pages\" : [\"http://www.startup.com\"]"
|
| + " \"chrome_ui_overrides\" : {"
|
| + " \"bookmarks_ui\" : {"
|
| + " \"remove_button\" : true,"
|
| + " \"remove_bookmark_shortcut\" : true"
|
| + " }"
|
| " }"
|
| "}";
|
|
|
| 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}\"]"
|
| + " \"chrome_ui_overrides\" : {"
|
| " }"
|
| "}";
|
|
|
| -using extensions::api::manifest_types::ChromeSettingsOverrides;
|
| +using extensions::api::manifest_types::ChromeUIOverrides;
|
| using extensions::Extension;
|
| using extensions::Manifest;
|
| -using extensions::SettingsOverrides;
|
| +using extensions::UIOverrides;
|
| namespace manifest_keys = extensions::manifest_keys;
|
|
|
| -class OverrideSettingsTest : public testing::Test {
|
| +class UIOverrideTest : public testing::Test {
|
| };
|
|
|
|
|
| -TEST_F(OverrideSettingsTest, ParseManifest) {
|
| +TEST_F(UIOverrideTest, ParseManifest) {
|
| extensions::ScopedCurrentChannel channel(chrome::VersionInfo::CHANNEL_DEV);
|
| + // This functionality requires a feature flag.
|
| + CommandLine::ForCurrentProcess()->AppendSwitchASCII(
|
| + "--enable-override-bookmarks-ui",
|
| + "1");
|
| std::string manifest(kManifest);
|
| JSONStringValueSerializer json(&manifest);
|
| std::string error;
|
| @@ -73,38 +62,23 @@ TEST_F(OverrideSettingsTest, ParseManifest) {
|
| *static_cast<base::DictionaryValue*>(root.get()),
|
| Extension::NO_FLAGS,
|
| &error);
|
| - ASSERT_TRUE(extension);
|
| -#if defined(OS_WIN)
|
| - ASSERT_TRUE(extension->manifest()->HasPath(manifest_keys::kSettingsOverride));
|
| + ASSERT_TRUE(extension) << error;
|
| + ASSERT_TRUE(extension->manifest()->HasPath(manifest_keys::kUIOverride));
|
|
|
| - SettingsOverrides* settings_override = static_cast<SettingsOverrides*>(
|
| - extension->GetManifestData(manifest_keys::kSettingsOverride));
|
| - ASSERT_TRUE(settings_override);
|
| - ASSERT_TRUE(settings_override->search_engine);
|
| - EXPECT_TRUE(settings_override->search_engine->is_default);
|
| - const ChromeSettingsOverrides::Search_provider* search_engine =
|
| - settings_override->search_engine.get();
|
| - EXPECT_EQ("first", search_engine->name);
|
| - EXPECT_EQ("firstkey", search_engine->keyword);
|
| - EXPECT_EQ("http://www.foo.com/s?q={searchTerms}", search_engine->search_url);
|
| - EXPECT_EQ("http://www.foo.com/favicon.ico", search_engine->favicon_url);
|
| - EXPECT_EQ("http://www.foo.com/s?q={searchTerms}",
|
| - *search_engine->suggest_url);
|
| - EXPECT_EQ("UTF-8", search_engine->encoding);
|
| -
|
| - EXPECT_EQ(std::vector<GURL>(1, GURL("http://www.startup.com")),
|
| - settings_override->startup_pages);
|
| -
|
| - ASSERT_TRUE(settings_override->homepage);
|
| - EXPECT_EQ(GURL("http://www.homepage.com"), *settings_override->homepage);
|
| -#else
|
| - EXPECT_FALSE(
|
| - extension->manifest()->HasPath(manifest_keys::kSettingsOverride));
|
| -#endif
|
| + UIOverrides* ui_override = static_cast<UIOverrides*>(
|
| + extension->GetManifestData(manifest_keys::kUIOverride));
|
| + ASSERT_TRUE(ui_override);
|
| + ASSERT_TRUE(ui_override->bookmarks_ui);
|
| + EXPECT_TRUE(ui_override->bookmarks_ui->remove_button);
|
| + EXPECT_TRUE(ui_override->bookmarks_ui->remove_bookmark_shortcut);
|
| }
|
|
|
| -TEST_F(OverrideSettingsTest, ParseBrokenManifest) {
|
| +TEST_F(UIOverrideTest, ParseBrokenManifest) {
|
| extensions::ScopedCurrentChannel channel(chrome::VersionInfo::CHANNEL_DEV);
|
| + // This functionality requires a feature flag.
|
| + CommandLine::ForCurrentProcess()->AppendSwitchASCII(
|
| + "--enable-override-bookmarks-ui",
|
| + "1");
|
| std::string manifest(kBrokenManifest);
|
| JSONStringValueSerializer json(&manifest);
|
| std::string error;
|
| @@ -117,16 +91,12 @@ TEST_F(OverrideSettingsTest, ParseBrokenManifest) {
|
| *static_cast<base::DictionaryValue*>(root.get()),
|
| Extension::NO_FLAGS,
|
| &error);
|
| -#if defined(OS_WIN)
|
| EXPECT_FALSE(extension);
|
| EXPECT_EQ(
|
| - std::string(extensions::manifest_errors::kInvalidEmptySettingsOverrides),
|
| + extensions::ErrorUtils::FormatErrorMessage(
|
| + extensions::manifest_errors::kInvalidEmptyDictionary,
|
| + extensions::manifest_keys::kUIOverride),
|
| error);
|
| -#else
|
| - EXPECT_TRUE(extension);
|
| - EXPECT_FALSE(
|
| - extension->manifest()->HasPath(manifest_keys::kSettingsOverride));
|
| -#endif
|
| }
|
|
|
| } // namespace
|
|
|