Index: chrome/browser/renderer_context_menu/render_view_context_menu_unittest.cc |
diff --git a/chrome/browser/renderer_context_menu/render_view_context_menu_unittest.cc b/chrome/browser/renderer_context_menu/render_view_context_menu_unittest.cc |
index f7c69fc06e4898b368fe4fb096fb492749dfbe77..04acece95f16e3f5afae9a4d0c37b75ab1ef74f1 100644 |
--- a/chrome/browser/renderer_context_menu/render_view_context_menu_unittest.cc |
+++ b/chrome/browser/renderer_context_menu/render_view_context_menu_unittest.cc |
@@ -96,6 +96,20 @@ std::unique_ptr<TestRenderViewContextMenu> CreateContextMenu( |
return menu; |
} |
+// Returns a test context menu for a chrome:// url not permitted to open in |
+// incognito mode. |
+std::unique_ptr<TestRenderViewContextMenu> CreateContextMenuOnChromeLink( |
+ content::WebContents* web_contents, |
+ ProtocolHandlerRegistry* registry) { |
+ content::ContextMenuParams params = CreateParams(MenuItem::LINK); |
+ params.unfiltered_link_url = params.link_url = GURL("chrome://settings"); |
+ std::unique_ptr<TestRenderViewContextMenu> menu( |
+ new TestRenderViewContextMenu(web_contents->GetMainFrame(), params)); |
+ menu->set_protocol_handler_registry(registry); |
+ menu->Init(); |
+ return menu; |
+} |
+ |
} // namespace |
class RenderViewContextMenuTest : public testing::Test { |
@@ -380,6 +394,10 @@ class RenderViewContextMenuPrefsTest : public ChromeRenderViewHostTestHarness { |
return ::CreateContextMenu(web_contents(), registry_.get()); |
} |
+ std::unique_ptr<TestRenderViewContextMenu> CreateContextMenuOnChromeLink() { |
+ return ::CreateContextMenuOnChromeLink(web_contents(), registry_.get()); |
lazyboy
2017/05/02 23:44:55
Is there a reason not to put the implementation ri
elawrence
2017/05/03 01:44:47
Done.
I was mimic'ing the pattern of CreateContex
|
+ } |
+ |
void AppendImageItems(TestRenderViewContextMenu* menu) { |
menu->AppendImageItems(); |
} |
@@ -455,6 +473,17 @@ TEST_F(RenderViewContextMenuPrefsTest, |
menu->IsCommandIdEnabled(IDC_CONTENT_CONTEXT_OPENLINKOFFTHERECORD)); |
} |
+// Verifies Incognito Mode is not enabled for links disallowed in Incognito. |
+TEST_F(RenderViewContextMenuPrefsTest, |
+ DisableOpenInIncognitoWindowForChromeUrls) { |
+ std::unique_ptr<TestRenderViewContextMenu> menu( |
+ CreateContextMenuOnChromeLink()); |
+ |
+ ASSERT_TRUE(menu->IsItemPresent(IDC_CONTENT_CONTEXT_OPENLINKOFFTHERECORD)); |
+ EXPECT_FALSE( |
+ menu->IsCommandIdEnabled(IDC_CONTENT_CONTEXT_OPENLINKOFFTHERECORD)); |
+} |
+ |
// Make sure the checking custom command id that is not enabled will not |
// cause DCHECK failure. |
TEST_F(RenderViewContextMenuPrefsTest, |