Index: chrome/browser/extensions/extension_web_ui_unittest.cc |
diff --git a/chrome/browser/extensions/extension_web_ui_unittest.cc b/chrome/browser/extensions/extension_web_ui_unittest.cc |
index b68d613678718a1657349593e596b6abe427d341..12cb23a2d2d9caa0795374c18b8763ca26ad01bf 100644 |
--- a/chrome/browser/extensions/extension_web_ui_unittest.cc |
+++ b/chrome/browser/extensions/extension_web_ui_unittest.cc |
@@ -71,12 +71,13 @@ class ExtensionWebUITest : public testing::Test { |
// Test that component extension url overrides have lower priority than |
// non-component extension url overrides. |
TEST_F(ExtensionWebUITest, ExtensionURLOverride) { |
+ const char kOverrideResource[] = "1.html"; |
// Register a non-component extension. |
DictionaryBuilder manifest; |
manifest.Set(manifest_keys::kName, "ext1") |
.Set(manifest_keys::kVersion, "0.1") |
.Set(std::string(manifest_keys::kChromeURLOverrides), |
- std::move(DictionaryBuilder().Set("bookmarks", "1.html"))); |
+ std::move(DictionaryBuilder().Set("bookmarks", kOverrideResource))); |
scoped_refptr<Extension> ext_unpacked( |
ExtensionBuilder() |
.SetManifest(std::move(manifest)) |
@@ -85,18 +86,33 @@ TEST_F(ExtensionWebUITest, ExtensionURLOverride) { |
.Build()); |
extension_service_->AddExtension(ext_unpacked.get()); |
- GURL expected_unpacked_override_url(std::string(ext_unpacked->url().spec()) + |
- "1.html"); |
- GURL url("chrome://bookmarks"); |
- EXPECT_TRUE(ExtensionWebUI::HandleChromeURLOverride(&url, profile_.get())); |
- EXPECT_EQ(url, expected_unpacked_override_url); |
+ const GURL kExpectedUnpackedOverrideUrl = |
+ ext_unpacked->GetResourceURL(kOverrideResource); |
+ const GURL kBookmarksUrl("chrome://bookmarks"); |
+ GURL changed_url = kBookmarksUrl; |
+ EXPECT_TRUE( |
+ ExtensionWebUI::HandleChromeURLOverride(&changed_url, profile_.get())); |
+ EXPECT_EQ(kExpectedUnpackedOverrideUrl, changed_url); |
+ EXPECT_TRUE(ExtensionWebUI::HandleChromeURLOverrideReverse(&changed_url, |
+ profile_.get())); |
+ EXPECT_EQ(kBookmarksUrl, changed_url); |
+ |
+ GURL url_plus_fragment = kBookmarksUrl.Resolve("#1"); |
+ EXPECT_TRUE(ExtensionWebUI::HandleChromeURLOverride(&url_plus_fragment, |
+ profile_.get())); |
+ EXPECT_EQ(kExpectedUnpackedOverrideUrl.Resolve("#1"), |
+ url_plus_fragment); |
+ EXPECT_TRUE(ExtensionWebUI::HandleChromeURLOverrideReverse(&url_plus_fragment, |
+ profile_.get())); |
+ EXPECT_EQ(kBookmarksUrl.Resolve("#1"), url_plus_fragment); |
// Register a component extension |
+ const char kOverrideResource2[] = "2.html"; |
DictionaryBuilder manifest2; |
manifest2.Set(manifest_keys::kName, "ext2") |
.Set(manifest_keys::kVersion, "0.1") |
.Set(std::string(manifest_keys::kChromeURLOverrides), |
- std::move(DictionaryBuilder().Set("bookmarks", "2.html"))); |
+ std::move(DictionaryBuilder().Set("bookmarks", kOverrideResource2))); |
scoped_refptr<Extension> ext_component( |
ExtensionBuilder() |
.SetManifest(std::move(manifest2)) |
@@ -107,27 +123,39 @@ TEST_F(ExtensionWebUITest, ExtensionURLOverride) { |
// Despite being registered more recently, the component extension should |
// not take precedence over the non-component extension. |
- url = GURL("chrome://bookmarks"); |
- EXPECT_TRUE(ExtensionWebUI::HandleChromeURLOverride(&url, profile_.get())); |
- EXPECT_EQ(url, expected_unpacked_override_url); |
+ changed_url = kBookmarksUrl; |
+ EXPECT_TRUE( |
+ ExtensionWebUI::HandleChromeURLOverride(&changed_url, profile_.get())); |
+ EXPECT_EQ(kExpectedUnpackedOverrideUrl, changed_url); |
+ EXPECT_TRUE(ExtensionWebUI::HandleChromeURLOverrideReverse(&changed_url, |
+ profile_.get())); |
+ EXPECT_EQ(kBookmarksUrl, changed_url); |
- GURL expected_component_override_url( |
- std::string(ext_component->url().spec()) + "2.html"); |
+ GURL kExpectedComponentOverrideUrl = |
+ ext_component->GetResourceURL(kOverrideResource2); |
// Unregister non-component extension. Only component extension remaining. |
ExtensionWebUI::UnregisterChromeURLOverrides( |
profile_.get(), URLOverrides::GetChromeURLOverrides(ext_unpacked.get())); |
- url = GURL("chrome://bookmarks"); |
- EXPECT_TRUE(ExtensionWebUI::HandleChromeURLOverride(&url, profile_.get())); |
- EXPECT_EQ(url, expected_component_override_url); |
+ changed_url = kBookmarksUrl; |
+ EXPECT_TRUE( |
+ ExtensionWebUI::HandleChromeURLOverride(&changed_url, profile_.get())); |
+ EXPECT_EQ(kExpectedComponentOverrideUrl, changed_url); |
+ EXPECT_TRUE(ExtensionWebUI::HandleChromeURLOverrideReverse(&changed_url, |
+ profile_.get())); |
+ EXPECT_EQ(kBookmarksUrl, changed_url); |
// This time the non-component extension was registered more recently and |
// should still take precedence. |
ExtensionWebUI::RegisterOrActivateChromeURLOverrides( |
profile_.get(), URLOverrides::GetChromeURLOverrides(ext_unpacked.get())); |
- url = GURL("chrome://bookmarks"); |
- EXPECT_TRUE(ExtensionWebUI::HandleChromeURLOverride(&url, profile_.get())); |
- EXPECT_EQ(url, expected_unpacked_override_url); |
+ changed_url = kBookmarksUrl; |
+ EXPECT_TRUE( |
+ ExtensionWebUI::HandleChromeURLOverride(&changed_url, profile_.get())); |
+ EXPECT_EQ(kExpectedUnpackedOverrideUrl, changed_url); |
+ EXPECT_TRUE(ExtensionWebUI::HandleChromeURLOverrideReverse(&changed_url, |
+ profile_.get())); |
+ EXPECT_EQ(kBookmarksUrl, changed_url); |
} |
} // namespace extensions |