Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(46)

Side by Side Diff: chrome/browser/renderer_context_menu/render_view_context_menu_unittest.cc

Issue 2850153002: Disable Open in Incognito context item for urls disallowed in Incognito (Closed)
Patch Set: Use IsURLAllowedInIncognito function to control link Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 "chrome/browser/renderer_context_menu/render_view_context_menu.h" 5 #include "chrome/browser/renderer_context_menu/render_view_context_menu.h"
6 6
7 #include "base/memory/ptr_util.h" 7 #include "base/memory/ptr_util.h"
8 #include "base/run_loop.h" 8 #include "base/run_loop.h"
9 #include "base/strings/utf_string_conversions.h" 9 #include "base/strings/utf_string_conversions.h"
10 #include "base/threading/thread_task_runner_handle.h" 10 #include "base/threading/thread_task_runner_handle.h"
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
89 ProtocolHandlerRegistry* registry) { 89 ProtocolHandlerRegistry* registry) {
90 content::ContextMenuParams params = CreateParams(MenuItem::LINK); 90 content::ContextMenuParams params = CreateParams(MenuItem::LINK);
91 params.unfiltered_link_url = params.link_url; 91 params.unfiltered_link_url = params.link_url;
92 std::unique_ptr<TestRenderViewContextMenu> menu( 92 std::unique_ptr<TestRenderViewContextMenu> menu(
93 new TestRenderViewContextMenu(web_contents->GetMainFrame(), params)); 93 new TestRenderViewContextMenu(web_contents->GetMainFrame(), params));
94 menu->set_protocol_handler_registry(registry); 94 menu->set_protocol_handler_registry(registry);
95 menu->Init(); 95 menu->Init();
96 return menu; 96 return menu;
97 } 97 }
98 98
99 // Returns a test context menu for a chrome:// url not permitted to open in
100 // incognito mode.
101 std::unique_ptr<TestRenderViewContextMenu> CreateContextMenuOnChromeLink(
102 content::WebContents* web_contents,
103 ProtocolHandlerRegistry* registry) {
104 content::ContextMenuParams params = CreateParams(MenuItem::LINK);
105 params.unfiltered_link_url = params.link_url = GURL("chrome://settings");
106 std::unique_ptr<TestRenderViewContextMenu> menu(
107 new TestRenderViewContextMenu(web_contents->GetMainFrame(), params));
108 menu->set_protocol_handler_registry(registry);
109 menu->Init();
110 return menu;
111 }
112
99 } // namespace 113 } // namespace
100 114
101 class RenderViewContextMenuTest : public testing::Test { 115 class RenderViewContextMenuTest : public testing::Test {
102 protected: 116 protected:
103 RenderViewContextMenuTest() = default; 117 RenderViewContextMenuTest() = default;
104 118
105 // Proxy defined here to minimize friend classes in RenderViewContextMenu 119 // Proxy defined here to minimize friend classes in RenderViewContextMenu
106 static bool ExtensionContextAndPatternMatch( 120 static bool ExtensionContextAndPatternMatch(
107 const content::ContextMenuParams& params, 121 const content::ContextMenuParams& params,
108 MenuItem::ContextList contexts, 122 MenuItem::ContextList contexts,
(...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after
373 387
374 void TearDown() override { 388 void TearDown() override {
375 registry_.reset(); 389 registry_.reset();
376 ChromeRenderViewHostTestHarness::TearDown(); 390 ChromeRenderViewHostTestHarness::TearDown();
377 } 391 }
378 392
379 std::unique_ptr<TestRenderViewContextMenu> CreateContextMenu() { 393 std::unique_ptr<TestRenderViewContextMenu> CreateContextMenu() {
380 return ::CreateContextMenu(web_contents(), registry_.get()); 394 return ::CreateContextMenu(web_contents(), registry_.get());
381 } 395 }
382 396
397 std::unique_ptr<TestRenderViewContextMenu> CreateContextMenuOnChromeLink() {
398 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
399 }
400
383 void AppendImageItems(TestRenderViewContextMenu* menu) { 401 void AppendImageItems(TestRenderViewContextMenu* menu) {
384 menu->AppendImageItems(); 402 menu->AppendImageItems();
385 } 403 }
386 404
387 void SetupDataReductionProxy(bool enable_data_reduction_proxy) { 405 void SetupDataReductionProxy(bool enable_data_reduction_proxy) {
388 drp_test_context_ = 406 drp_test_context_ =
389 data_reduction_proxy::DataReductionProxyTestContext::Builder() 407 data_reduction_proxy::DataReductionProxyTestContext::Builder()
390 .WithParamsFlags( 408 .WithParamsFlags(
391 data_reduction_proxy::DataReductionProxyParams::kPromoAllowed) 409 data_reduction_proxy::DataReductionProxyParams::kPromoAllowed)
392 .WithMockConfig() 410 .WithMockConfig()
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
448 466
449 // Disable Incognito mode. 467 // Disable Incognito mode.
450 IncognitoModePrefs::SetAvailability(profile()->GetPrefs(), 468 IncognitoModePrefs::SetAvailability(profile()->GetPrefs(),
451 IncognitoModePrefs::DISABLED); 469 IncognitoModePrefs::DISABLED);
452 menu = CreateContextMenu(); 470 menu = CreateContextMenu();
453 ASSERT_TRUE(menu->IsItemPresent(IDC_CONTENT_CONTEXT_OPENLINKOFFTHERECORD)); 471 ASSERT_TRUE(menu->IsItemPresent(IDC_CONTENT_CONTEXT_OPENLINKOFFTHERECORD));
454 EXPECT_FALSE( 472 EXPECT_FALSE(
455 menu->IsCommandIdEnabled(IDC_CONTENT_CONTEXT_OPENLINKOFFTHERECORD)); 473 menu->IsCommandIdEnabled(IDC_CONTENT_CONTEXT_OPENLINKOFFTHERECORD));
456 } 474 }
457 475
476 // Verifies Incognito Mode is not enabled for links disallowed in Incognito.
477 TEST_F(RenderViewContextMenuPrefsTest,
478 DisableOpenInIncognitoWindowForChromeUrls) {
479 std::unique_ptr<TestRenderViewContextMenu> menu(
480 CreateContextMenuOnChromeLink());
481
482 ASSERT_TRUE(menu->IsItemPresent(IDC_CONTENT_CONTEXT_OPENLINKOFFTHERECORD));
483 EXPECT_FALSE(
484 menu->IsCommandIdEnabled(IDC_CONTENT_CONTEXT_OPENLINKOFFTHERECORD));
485 }
486
458 // Make sure the checking custom command id that is not enabled will not 487 // Make sure the checking custom command id that is not enabled will not
459 // cause DCHECK failure. 488 // cause DCHECK failure.
460 TEST_F(RenderViewContextMenuPrefsTest, 489 TEST_F(RenderViewContextMenuPrefsTest,
461 IsCustomCommandIdEnabled) { 490 IsCustomCommandIdEnabled) {
462 std::unique_ptr<TestRenderViewContextMenu> menu(CreateContextMenu()); 491 std::unique_ptr<TestRenderViewContextMenu> menu(CreateContextMenu());
463 492
464 EXPECT_FALSE(menu->IsCommandIdEnabled(IDC_CONTENT_CONTEXT_CUSTOM_FIRST)); 493 EXPECT_FALSE(menu->IsCommandIdEnabled(IDC_CONTENT_CONTEXT_CUSTOM_FIRST));
465 } 494 }
466 495
467 // Verify that request headers specify that data reduction proxy should return 496 // Verify that request headers specify that data reduction proxy should return
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
520 params.unfiltered_link_url = params.link_url; 549 params.unfiltered_link_url = params.link_url;
521 content::WebContents* wc = web_contents(); 550 content::WebContents* wc = web_contents();
522 std::unique_ptr<TestRenderViewContextMenu> menu( 551 std::unique_ptr<TestRenderViewContextMenu> menu(
523 new TestRenderViewContextMenu(wc->GetMainFrame(), params)); 552 new TestRenderViewContextMenu(wc->GetMainFrame(), params));
524 AppendImageItems(menu.get()); 553 AppendImageItems(menu.get());
525 554
526 ASSERT_TRUE(menu->IsItemPresent(IDC_CONTENT_CONTEXT_LOAD_ORIGINAL_IMAGE)); 555 ASSERT_TRUE(menu->IsItemPresent(IDC_CONTENT_CONTEXT_LOAD_ORIGINAL_IMAGE));
527 556
528 DestroyDataReductionProxySettings(); 557 DestroyDataReductionProxySettings();
529 } 558 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698