| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/command_line.h" | 5 #include "base/command_line.h" |
| 6 #include "base/message_loop/message_loop.h" | 6 #include "base/message_loop/message_loop.h" |
| 7 #include "build/build_config.h" | 7 #include "build/build_config.h" |
| 8 #include "chrome/browser/extensions/extension_service.h" | 8 #include "chrome/browser/extensions/extension_service.h" |
| 9 #include "chrome/browser/extensions/extension_web_ui.h" | 9 #include "chrome/browser/extensions/extension_web_ui.h" |
| 10 #include "chrome/browser/extensions/extension_web_ui_override_registrar.h" | 10 #include "chrome/browser/extensions/extension_web_ui_override_registrar.h" |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 70 | 70 |
| 71 // Test that component extension url overrides have lower priority than | 71 // Test that component extension url overrides have lower priority than |
| 72 // non-component extension url overrides. | 72 // non-component extension url overrides. |
| 73 TEST_F(ExtensionWebUITest, ExtensionURLOverride) { | 73 TEST_F(ExtensionWebUITest, ExtensionURLOverride) { |
| 74 const char kOverrideResource[] = "1.html"; | 74 const char kOverrideResource[] = "1.html"; |
| 75 // Register a non-component extension. | 75 // Register a non-component extension. |
| 76 DictionaryBuilder manifest; | 76 DictionaryBuilder manifest; |
| 77 manifest.Set(manifest_keys::kName, "ext1") | 77 manifest.Set(manifest_keys::kName, "ext1") |
| 78 .Set(manifest_keys::kVersion, "0.1") | 78 .Set(manifest_keys::kVersion, "0.1") |
| 79 .Set(std::string(manifest_keys::kChromeURLOverrides), | 79 .Set(std::string(manifest_keys::kChromeURLOverrides), |
| 80 std::move(DictionaryBuilder().Set("bookmarks", kOverrideResource))); | 80 DictionaryBuilder().Set("bookmarks", kOverrideResource).Build()); |
| 81 scoped_refptr<Extension> ext_unpacked( | 81 scoped_refptr<Extension> ext_unpacked( |
| 82 ExtensionBuilder() | 82 ExtensionBuilder() |
| 83 .SetManifest(std::move(manifest)) | 83 .SetManifest(manifest.Build()) |
| 84 .SetLocation(Manifest::UNPACKED) | 84 .SetLocation(Manifest::UNPACKED) |
| 85 .SetID("abcdefghijabcdefghijabcdefghijaa") | 85 .SetID("abcdefghijabcdefghijabcdefghijaa") |
| 86 .Build()); | 86 .Build()); |
| 87 extension_service_->AddExtension(ext_unpacked.get()); | 87 extension_service_->AddExtension(ext_unpacked.get()); |
| 88 | 88 |
| 89 const GURL kExpectedUnpackedOverrideUrl = | 89 const GURL kExpectedUnpackedOverrideUrl = |
| 90 ext_unpacked->GetResourceURL(kOverrideResource); | 90 ext_unpacked->GetResourceURL(kOverrideResource); |
| 91 const GURL kBookmarksUrl("chrome://bookmarks"); | 91 const GURL kBookmarksUrl("chrome://bookmarks"); |
| 92 GURL changed_url = kBookmarksUrl; | 92 GURL changed_url = kBookmarksUrl; |
| 93 EXPECT_TRUE( | 93 EXPECT_TRUE( |
| (...skipping 11 matching lines...) Expand all Loading... |
| 105 EXPECT_TRUE(ExtensionWebUI::HandleChromeURLOverrideReverse(&url_plus_fragment, | 105 EXPECT_TRUE(ExtensionWebUI::HandleChromeURLOverrideReverse(&url_plus_fragment, |
| 106 profile_.get())); | 106 profile_.get())); |
| 107 EXPECT_EQ(kBookmarksUrl.Resolve("#1"), url_plus_fragment); | 107 EXPECT_EQ(kBookmarksUrl.Resolve("#1"), url_plus_fragment); |
| 108 | 108 |
| 109 // Register a component extension | 109 // Register a component extension |
| 110 const char kOverrideResource2[] = "2.html"; | 110 const char kOverrideResource2[] = "2.html"; |
| 111 DictionaryBuilder manifest2; | 111 DictionaryBuilder manifest2; |
| 112 manifest2.Set(manifest_keys::kName, "ext2") | 112 manifest2.Set(manifest_keys::kName, "ext2") |
| 113 .Set(manifest_keys::kVersion, "0.1") | 113 .Set(manifest_keys::kVersion, "0.1") |
| 114 .Set(std::string(manifest_keys::kChromeURLOverrides), | 114 .Set(std::string(manifest_keys::kChromeURLOverrides), |
| 115 std::move(DictionaryBuilder().Set("bookmarks", kOverrideResource2))); | 115 DictionaryBuilder().Set("bookmarks", kOverrideResource2).Build()); |
| 116 scoped_refptr<Extension> ext_component( | 116 scoped_refptr<Extension> ext_component( |
| 117 ExtensionBuilder() | 117 ExtensionBuilder() |
| 118 .SetManifest(std::move(manifest2)) | 118 .SetManifest(manifest2.Build()) |
| 119 .SetLocation(Manifest::COMPONENT) | 119 .SetLocation(Manifest::COMPONENT) |
| 120 .SetID("bbabcdefghijabcdefghijabcdefghij") | 120 .SetID("bbabcdefghijabcdefghijabcdefghij") |
| 121 .Build()); | 121 .Build()); |
| 122 extension_service_->AddComponentExtension(ext_component.get()); | 122 extension_service_->AddComponentExtension(ext_component.get()); |
| 123 | 123 |
| 124 // Despite being registered more recently, the component extension should | 124 // Despite being registered more recently, the component extension should |
| 125 // not take precedence over the non-component extension. | 125 // not take precedence over the non-component extension. |
| 126 changed_url = kBookmarksUrl; | 126 changed_url = kBookmarksUrl; |
| 127 EXPECT_TRUE( | 127 EXPECT_TRUE( |
| 128 ExtensionWebUI::HandleChromeURLOverride(&changed_url, profile_.get())); | 128 ExtensionWebUI::HandleChromeURLOverride(&changed_url, profile_.get())); |
| (...skipping 23 matching lines...) Expand all Loading... |
| 152 changed_url = kBookmarksUrl; | 152 changed_url = kBookmarksUrl; |
| 153 EXPECT_TRUE( | 153 EXPECT_TRUE( |
| 154 ExtensionWebUI::HandleChromeURLOverride(&changed_url, profile_.get())); | 154 ExtensionWebUI::HandleChromeURLOverride(&changed_url, profile_.get())); |
| 155 EXPECT_EQ(kExpectedUnpackedOverrideUrl, changed_url); | 155 EXPECT_EQ(kExpectedUnpackedOverrideUrl, changed_url); |
| 156 EXPECT_TRUE(ExtensionWebUI::HandleChromeURLOverrideReverse(&changed_url, | 156 EXPECT_TRUE(ExtensionWebUI::HandleChromeURLOverrideReverse(&changed_url, |
| 157 profile_.get())); | 157 profile_.get())); |
| 158 EXPECT_EQ(kBookmarksUrl, changed_url); | 158 EXPECT_EQ(kBookmarksUrl, changed_url); |
| 159 } | 159 } |
| 160 | 160 |
| 161 } // namespace extensions | 161 } // namespace extensions |
| OLD | NEW |