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

Side by Side Diff: chrome/browser/pdf/pdf_extension_test.cc

Issue 2166193002: Handle ctrl + shift + left click on links in PDF. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Handle ctrl + shift + left click on links in PDF. Created 4 years, 4 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
« no previous file with comments | « no previous file | chrome/browser/resources/pdf/navigator.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 <stddef.h> 5 #include <stddef.h>
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/base_paths.h" 9 #include "base/base_paths.h"
10 #include "base/files/file_enumerator.h" 10 #include "base/files/file_enumerator.h"
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
53 #include "net/test/embedded_test_server/embedded_test_server.h" 53 #include "net/test/embedded_test_server/embedded_test_server.h"
54 #include "ui/base/resource/resource_bundle.h" 54 #include "ui/base/resource/resource_bundle.h"
55 #include "url/gurl.h" 55 #include "url/gurl.h"
56 56
57 #if defined(TOOLKIT_VIEWS) && !defined(OS_MACOSX) 57 #if defined(TOOLKIT_VIEWS) && !defined(OS_MACOSX)
58 #include "chrome/browser/ui/views/location_bar/zoom_bubble_view.h" 58 #include "chrome/browser/ui/views/location_bar/zoom_bubble_view.h"
59 #endif 59 #endif
60 60
61 const int kNumberLoadTestParts = 10; 61 const int kNumberLoadTestParts = 10;
62 62
63 #if defined(OS_MACOSX)
64 const int kDefaultKeyModifier = blink::WebInputEvent::MetaKey;
65 #else
66 const int kDefaultKeyModifier = blink::WebInputEvent::ControlKey;
67 #endif
68
63 // Using ASSERT_TRUE deliberately instead of ASSERT_EQ or ASSERT_STREQ 69 // Using ASSERT_TRUE deliberately instead of ASSERT_EQ or ASSERT_STREQ
64 // in order to print a more readable message if the strings differ. 70 // in order to print a more readable message if the strings differ.
65 #define ASSERT_MULTILINE_STREQ(expected, actual) \ 71 #define ASSERT_MULTILINE_STREQ(expected, actual) \
66 ASSERT_TRUE(expected == actual) \ 72 ASSERT_TRUE(expected == actual) \
67 << "Expected:\n" << expected \ 73 << "Expected:\n" << expected \
68 << "\n\nActual:\n" << actual 74 << "\n\nActual:\n" << actual
69 75
70 bool GetGuestCallback(content::WebContents** guest_out, 76 bool GetGuestCallback(content::WebContents** guest_out,
71 content::WebContents* guest) { 77 content::WebContents* guest) {
72 EXPECT_FALSE(*guest_out); 78 EXPECT_FALSE(*guest_out);
(...skipping 635 matching lines...) Expand 10 before | Expand all | Expand 10 after
708 ASSERT_TRUE(guest_contents); 714 ASSERT_TRUE(guest_contents);
709 715
710 // The link position of the test-link.pdf in page coordinates is (110, 110). 716 // The link position of the test-link.pdf in page coordinates is (110, 110).
711 // Convert the link position from page coordinates to screen coordinates. 717 // Convert the link position from page coordinates to screen coordinates.
712 gfx::Point link_position(110, 110); 718 gfx::Point link_position(110, 110);
713 ConvertPageCoordToScreenCoord(guest_contents, &link_position); 719 ConvertPageCoordToScreenCoord(guest_contents, &link_position);
714 720
715 content::WebContents* web_contents = 721 content::WebContents* web_contents =
716 browser()->tab_strip_model()->GetActiveWebContents(); 722 browser()->tab_strip_model()->GetActiveWebContents();
717 723
718 #if defined(OS_MACOSX)
719 int modifiers = blink::WebInputEvent::MetaKey;
720 #else
721 int modifiers = blink::WebInputEvent::ControlKey;
722 #endif
723
724 content::WindowedNotificationObserver observer( 724 content::WindowedNotificationObserver observer(
725 chrome::NOTIFICATION_TAB_ADDED, 725 chrome::NOTIFICATION_TAB_ADDED,
726 content::NotificationService::AllSources()); 726 content::NotificationService::AllSources());
727 content::SimulateMouseClickAt(web_contents, modifiers, 727 content::SimulateMouseClickAt(web_contents, kDefaultKeyModifier,
728 blink::WebMouseEvent::ButtonLeft, link_position); 728 blink::WebMouseEvent::ButtonLeft, link_position);
729 observer.Wait(); 729 observer.Wait();
730 730
731 int tab_count = browser()->tab_strip_model()->count(); 731 int tab_count = browser()->tab_strip_model()->count();
732 ASSERT_EQ(2, tab_count); 732 ASSERT_EQ(2, tab_count);
733 733
734 content::WebContents* active_web_contents = 734 content::WebContents* active_web_contents =
735 browser()->tab_strip_model()->GetActiveWebContents(); 735 browser()->tab_strip_model()->GetActiveWebContents();
736 ASSERT_EQ(web_contents, active_web_contents); 736 ASSERT_EQ(web_contents, active_web_contents);
737 737
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
773 ASSERT_EQ(web_contents, active_web_contents); 773 ASSERT_EQ(web_contents, active_web_contents);
774 774
775 content::WebContents* new_web_contents = 775 content::WebContents* new_web_contents =
776 browser()->tab_strip_model()->GetWebContentsAt(1); 776 browser()->tab_strip_model()->GetWebContentsAt(1);
777 ASSERT_TRUE(new_web_contents); 777 ASSERT_TRUE(new_web_contents);
778 ASSERT_NE(web_contents, new_web_contents); 778 ASSERT_NE(web_contents, new_web_contents);
779 779
780 const GURL& url = new_web_contents->GetURL(); 780 const GURL& url = new_web_contents->GetURL();
781 ASSERT_EQ(std::string("http://www.example.com/"), url.spec()); 781 ASSERT_EQ(std::string("http://www.example.com/"), url.spec());
782 } 782 }
783
784 IN_PROC_BROWSER_TEST_F(PDFExtensionTest, LinkCtrlShiftLeftClick) {
785 host_resolver()->AddRule("www.example.com", "127.0.0.1");
786 GURL test_pdf_url(embedded_test_server()->GetURL("/pdf/test-link.pdf"));
787 content::WebContents* guest_contents = LoadPdfGetGuestContents(test_pdf_url);
788 ASSERT_TRUE(guest_contents);
789
790 // The link position of the test-link.pdf in page coordinates is (110, 110).
791 // Convert the link position from page coordinates to screen coordinates.
792 gfx::Point link_position(110, 110);
793 ConvertPageCoordToScreenCoord(guest_contents, &link_position);
794
795 content::WebContents* web_contents =
796 browser()->tab_strip_model()->GetActiveWebContents();
797
798 int modifiers = blink::WebInputEvent::ShiftKey | kDefaultKeyModifier;
799
800 content::WindowedNotificationObserver observer(
801 chrome::NOTIFICATION_TAB_ADDED,
802 content::NotificationService::AllSources());
803 content::SimulateMouseClickAt(web_contents, modifiers,
804 blink::WebMouseEvent::ButtonLeft, link_position);
805 observer.Wait();
806
807 int tab_count = browser()->tab_strip_model()->count();
808 ASSERT_EQ(2, tab_count);
809
810 content::WebContents* active_web_contents =
811 browser()->tab_strip_model()->GetActiveWebContents();
812 ASSERT_NE(web_contents, active_web_contents);
813
814 const GURL& url = active_web_contents->GetURL();
815 ASSERT_EQ(std::string("http://www.example.com/"), url.spec());
816 }
817
818 IN_PROC_BROWSER_TEST_F(PDFExtensionTest, LinkShiftMiddleClick) {
819 host_resolver()->AddRule("www.example.com", "127.0.0.1");
820 GURL test_pdf_url(embedded_test_server()->GetURL("/pdf/test-link.pdf"));
821 content::WebContents* guest_contents = LoadPdfGetGuestContents(test_pdf_url);
822 ASSERT_TRUE(guest_contents);
823
824 // The link position of the test-link.pdf in page coordinates is (110, 110).
825 // Convert the link position from page coordinates to screen coordinates.
826 gfx::Point link_position(110, 110);
827 ConvertPageCoordToScreenCoord(guest_contents, &link_position);
828
829 content::WebContents* web_contents =
830 browser()->tab_strip_model()->GetActiveWebContents();
831
832 content::WindowedNotificationObserver observer(
833 chrome::NOTIFICATION_TAB_ADDED,
834 content::NotificationService::AllSources());
835 content::SimulateMouseClickAt(web_contents, blink::WebInputEvent::ShiftKey,
836 blink::WebMouseEvent::ButtonMiddle, link_position);
837 observer.Wait();
838
839 int tab_count = browser()->tab_strip_model()->count();
840 ASSERT_EQ(2, tab_count);
841
842 content::WebContents* active_web_contents =
843 browser()->tab_strip_model()->GetActiveWebContents();
844 ASSERT_NE(web_contents, active_web_contents);
845
846 const GURL& url = active_web_contents->GetURL();
847 ASSERT_EQ(std::string("http://www.example.com/"), url.spec());
848 }
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/resources/pdf/navigator.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698