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

Side by Side Diff: chrome/browser/ui/blocked_content/popup_blocker_browsertest.cc

Issue 2048533002: Add code and key into the browser test key simulation methods. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix chromeos build Created 4 years, 6 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 <stdint.h> 5 #include <stdint.h>
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/files/file_path.h" 8 #include "base/files/file_path.h"
9 #include "base/macros.h" 9 #include "base/macros.h"
10 #include "base/message_loop/message_loop.h" 10 #include "base/message_loop/message_loop.h"
(...skipping 533 matching lines...) Expand 10 before | Expand all | Expand 10 after
544 static_cast<app_modal::JavaScriptAppModalDialog*>(dialog); 544 static_cast<app_modal::JavaScriptAppModalDialog*>(dialog);
545 545
546 BrowserActivationObserver activation_observer; 546 BrowserActivationObserver activation_observer;
547 js_dialog->native_dialog()->AcceptAppModalDialog(); 547 js_dialog->native_dialog()->AcceptAppModalDialog();
548 548
549 if (popup_browser != chrome::FindLastActive()) 549 if (popup_browser != chrome::FindLastActive())
550 activation_observer.WaitForActivation(); 550 activation_observer.WaitForActivation();
551 ASSERT_EQ(popup_browser, chrome::FindLastActive()); 551 ASSERT_EQ(popup_browser, chrome::FindLastActive());
552 } 552 }
553 553
554 void BuildSimpleWebKeyEvent(blink::WebInputEvent::Type type,
555 ui::KeyboardCode key_code,
556 int native_key_code,
557 int modifiers,
558 NativeWebKeyboardEvent* event) {
559 event->nativeKeyCode = native_key_code;
560 event->windowsKeyCode = key_code;
561 event->setKeyIdentifierFromWindowsKeyCode();
562 event->type = type;
563 event->modifiers = modifiers;
564 event->isSystemKey = false;
565 event->timeStampSeconds =
566 (base::TimeTicks::Now() - base::TimeTicks()).InSecondsF();
567 event->skip_in_browser = true;
568
569 if (type == blink::WebInputEvent::Char ||
570 type == blink::WebInputEvent::RawKeyDown) {
571 event->text[0] = key_code;
572 event->unmodifiedText[0] = key_code;
573 }
574 }
575
576 void InjectRawKeyEvent(WebContents* web_contents,
577 blink::WebInputEvent::Type type,
578 ui::KeyboardCode key_code,
579 int native_key_code,
580 int modifiers) {
581 NativeWebKeyboardEvent event;
582 BuildSimpleWebKeyEvent(type, key_code, native_key_code, modifiers, &event);
583 web_contents->GetRenderViewHost()->GetWidget()->ForwardKeyboardEvent(event);
584 }
585
586 // Tests that Ctrl+Enter/Cmd+Enter keys on a link open the backgournd tab. 554 // Tests that Ctrl+Enter/Cmd+Enter keys on a link open the backgournd tab.
587 IN_PROC_BROWSER_TEST_F(PopupBlockerBrowserTest, CtrlEnterKey) { 555 IN_PROC_BROWSER_TEST_F(PopupBlockerBrowserTest, CtrlEnterKey) {
588 WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents(); 556 WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents();
589 557
590 GURL url(embedded_test_server()->GetURL( 558 GURL url(embedded_test_server()->GetURL(
591 "/popup_blocker/popup-simulated-click-on-anchor.html")); 559 "/popup_blocker/popup-simulated-click-on-anchor.html"));
592 ui_test_utils::NavigateToURL(browser(), url); 560 ui_test_utils::NavigateToURL(browser(), url);
593 561
594 content::WindowedNotificationObserver wait_for_new_tab( 562 content::WindowedNotificationObserver wait_for_new_tab(
595 chrome::NOTIFICATION_TAB_ADDED, 563 chrome::NOTIFICATION_TAB_ADDED,
596 content::NotificationService::AllSources()); 564 content::NotificationService::AllSources());
597 565
566 bool command = false;
598 #if defined(OS_MACOSX) 567 #if defined(OS_MACOSX)
599 int modifiers = blink::WebInputEvent::MetaKey; 568 command = true;
600 InjectRawKeyEvent(
601 tab, blink::WebInputEvent::RawKeyDown, ui::VKEY_COMMAND,
602 ui::KeycodeConverter::DomCodeToNativeKeycode(ui::DomCode::META_LEFT),
603 modifiers);
604 #else
605 int modifiers = blink::WebInputEvent::ControlKey;
606 InjectRawKeyEvent(
607 tab, blink::WebInputEvent::RawKeyDown, ui::VKEY_CONTROL,
608 ui::KeycodeConverter::DomCodeToNativeKeycode(ui::DomCode::CONTROL_LEFT),
609 modifiers);
610 #endif 569 #endif
611 570
612 InjectRawKeyEvent(tab, blink::WebInputEvent::RawKeyDown, ui::VKEY_RETURN, 571 SimulateKeyPress(tab, ui::DomKey::ENTER, ui::DomCode::ENTER, ui::VKEY_RETURN,
613 ui::KeycodeConverter::InvalidNativeKeycode(), modifiers); 572 !command, false, false, command);
614 573
615 InjectRawKeyEvent(tab, blink::WebInputEvent::Char, ui::VKEY_RETURN,
616 ui::KeycodeConverter::InvalidNativeKeycode(), modifiers);
617
618 InjectRawKeyEvent(tab, blink::WebInputEvent::KeyUp, ui::VKEY_RETURN,
619 ui::KeycodeConverter::InvalidNativeKeycode(), modifiers);
620
621 #if defined(OS_MACOSX)
622 InjectRawKeyEvent(
623 tab, blink::WebInputEvent::KeyUp, ui::VKEY_COMMAND,
624 ui::KeycodeConverter::DomCodeToNativeKeycode(ui::DomCode::META_LEFT),
625 modifiers);
626 #else
627 InjectRawKeyEvent(
628 tab, blink::WebInputEvent::KeyUp, ui::VKEY_CONTROL,
629 ui::KeycodeConverter::DomCodeToNativeKeycode(ui::DomCode::CONTROL_LEFT),
630 modifiers);
631 #endif
632 wait_for_new_tab.Wait(); 574 wait_for_new_tab.Wait();
633 575
634 ASSERT_EQ(1u, chrome::GetBrowserCount(browser()->profile())); 576 ASSERT_EQ(1u, chrome::GetBrowserCount(browser()->profile()));
635 ASSERT_EQ(2, browser()->tab_strip_model()->count()); 577 ASSERT_EQ(2, browser()->tab_strip_model()->count());
636 // Check that we create the background tab. 578 // Check that we create the background tab.
637 ASSERT_EQ(0, browser()->tab_strip_model()->active_index()); 579 ASSERT_EQ(0, browser()->tab_strip_model()->active_index());
638 } 580 }
639 581
640 // Tests that the tapping gesture with cntl/cmd key on a link open the 582 // Tests that the tapping gesture with cntl/cmd key on a link open the
641 // backgournd tab. 583 // backgournd tab.
(...skipping 17 matching lines...) Expand all
659 601
660 wait_for_new_tab.Wait(); 602 wait_for_new_tab.Wait();
661 603
662 ASSERT_EQ(1u, chrome::GetBrowserCount(browser()->profile())); 604 ASSERT_EQ(1u, chrome::GetBrowserCount(browser()->profile()));
663 ASSERT_EQ(2, browser()->tab_strip_model()->count()); 605 ASSERT_EQ(2, browser()->tab_strip_model()->count());
664 // Check that we create the background tab. 606 // Check that we create the background tab.
665 ASSERT_EQ(0, browser()->tab_strip_model()->active_index()); 607 ASSERT_EQ(0, browser()->tab_strip_model()->active_index());
666 } 608 }
667 609
668 } // namespace 610 } // namespace
OLDNEW
« no previous file with comments | « chrome/browser/site_per_process_interactive_browsertest.cc ('k') | chrome/test/remoting/remote_desktop_browsertest.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698