OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "chrome/browser/printing/print_preview_tab_controller.h" | 6 #include "chrome/browser/printing/print_preview_tab_controller.h" |
7 #include "chrome/browser/printing/print_view_manager.h" | 7 #include "chrome/browser/printing/print_view_manager.h" |
8 #include "chrome/browser/ui/browser.h" | 8 #include "chrome/browser/ui/browser.h" |
9 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" | 9 #include "chrome/browser/ui/tab_contents/tab_contents.h" |
10 #include "chrome/common/chrome_switches.h" | 10 #include "chrome/common/chrome_switches.h" |
11 #include "chrome/common/url_constants.h" | 11 #include "chrome/common/url_constants.h" |
12 #include "chrome/test/base/in_process_browser_test.h" | 12 #include "chrome/test/base/in_process_browser_test.h" |
13 #include "chrome/test/base/ui_test_utils.h" | 13 #include "chrome/test/base/ui_test_utils.h" |
14 #include "content/public/browser/notification_service.h" | 14 #include "content/public/browser/notification_service.h" |
15 #include "content/public/browser/notification_types.h" | 15 #include "content/public/browser/notification_types.h" |
16 #include "content/public/browser/web_contents_observer.h" | 16 #include "content/public/browser/web_contents_observer.h" |
17 #include "googleurl/src/gurl.h" | 17 #include "googleurl/src/gurl.h" |
18 | 18 |
19 using content::WebContents; | 19 using content::WebContents; |
(...skipping 29 matching lines...) Expand all Loading... |
49 }; | 49 }; |
50 | 50 |
51 // Test to verify that when a initiator tab navigates, we can create a new | 51 // Test to verify that when a initiator tab navigates, we can create a new |
52 // preview tab for the new tab contents. | 52 // preview tab for the new tab contents. |
53 IN_PROC_BROWSER_TEST_F(PrintPreviewTabControllerBrowserTest, | 53 IN_PROC_BROWSER_TEST_F(PrintPreviewTabControllerBrowserTest, |
54 NavigateFromInitiatorTab) { | 54 NavigateFromInitiatorTab) { |
55 // Lets start with one tab. | 55 // Lets start with one tab. |
56 EXPECT_EQ(1, browser()->tab_count()); | 56 EXPECT_EQ(1, browser()->tab_count()); |
57 | 57 |
58 // Create a reference to initiator tab contents. | 58 // Create a reference to initiator tab contents. |
59 TabContentsWrapper* initiator_tab = | 59 TabContents* initiator_tab = browser()->GetActiveTabContents(); |
60 browser()->GetSelectedTabContentsWrapper(); | |
61 ASSERT_TRUE(initiator_tab); | 60 ASSERT_TRUE(initiator_tab); |
62 | 61 |
63 printing::PrintPreviewTabController* tab_controller = | 62 printing::PrintPreviewTabController* tab_controller = |
64 printing::PrintPreviewTabController::GetInstance(); | 63 printing::PrintPreviewTabController::GetInstance(); |
65 ASSERT_TRUE(tab_controller); | 64 ASSERT_TRUE(tab_controller); |
66 | 65 |
67 // Get the preview tab for initiator tab. | 66 // Get the preview tab for initiator tab. |
68 initiator_tab->print_view_manager()->PrintPreviewNow(); | 67 initiator_tab->print_view_manager()->PrintPreviewNow(); |
69 TabContentsWrapper* preview_tab = | 68 TabContents* preview_tab = |
70 tab_controller->GetOrCreatePreviewTab(initiator_tab); | 69 tab_controller->GetOrCreatePreviewTab(initiator_tab); |
71 | 70 |
72 // New print preview tab is created. | 71 // New print preview tab is created. |
73 EXPECT_EQ(1, browser()->tab_count()); | 72 EXPECT_EQ(1, browser()->tab_count()); |
74 ASSERT_TRUE(preview_tab); | 73 ASSERT_TRUE(preview_tab); |
75 ASSERT_NE(initiator_tab, preview_tab); | 74 ASSERT_NE(initiator_tab, preview_tab); |
76 TabDestroyedObserver observer(preview_tab->web_contents()); | 75 TabDestroyedObserver observer(preview_tab->web_contents()); |
77 | 76 |
78 // Navigate in the initiator tab. | 77 // Navigate in the initiator tab. |
79 GURL url(chrome::kChromeUINewTabURL); | 78 GURL url(chrome::kChromeUINewTabURL); |
80 ui_test_utils::NavigateToURL(browser(), url); | 79 ui_test_utils::NavigateToURL(browser(), url); |
81 | 80 |
82 ASSERT_TRUE(observer.tab_destroyed()); | 81 ASSERT_TRUE(observer.tab_destroyed()); |
83 | 82 |
84 // Get the print preview tab for initiator tab. | 83 // Get the print preview tab for initiator tab. |
85 initiator_tab->print_view_manager()->PrintPreviewNow(); | 84 initiator_tab->print_view_manager()->PrintPreviewNow(); |
86 TabContentsWrapper* new_preview_tab = | 85 TabContents* new_preview_tab = |
87 tab_controller->GetOrCreatePreviewTab(initiator_tab); | 86 tab_controller->GetOrCreatePreviewTab(initiator_tab); |
88 | 87 |
89 // New preview tab is created. | 88 // New preview tab is created. |
90 EXPECT_EQ(1, browser()->tab_count()); | 89 EXPECT_EQ(1, browser()->tab_count()); |
91 EXPECT_TRUE(new_preview_tab); | 90 EXPECT_TRUE(new_preview_tab); |
92 } | 91 } |
93 | 92 |
94 // Test to verify that after reloading the initiator tab, it creates a new | 93 // Test to verify that after reloading the initiator tab, it creates a new |
95 // print preview tab. | 94 // print preview tab. |
96 IN_PROC_BROWSER_TEST_F(PrintPreviewTabControllerBrowserTest, | 95 IN_PROC_BROWSER_TEST_F(PrintPreviewTabControllerBrowserTest, |
97 ReloadInitiatorTab) { | 96 ReloadInitiatorTab) { |
98 // Lets start with one tab. | 97 // Lets start with one tab. |
99 EXPECT_EQ(1, browser()->tab_count()); | 98 EXPECT_EQ(1, browser()->tab_count()); |
100 | 99 |
101 // Create a reference to initiator tab contents. | 100 // Create a reference to initiator tab contents. |
102 TabContentsWrapper* initiator_tab = | 101 TabContents* initiator_tab = browser()->GetActiveTabContents(); |
103 browser()->GetSelectedTabContentsWrapper(); | |
104 ASSERT_TRUE(initiator_tab); | 102 ASSERT_TRUE(initiator_tab); |
105 | 103 |
106 printing::PrintPreviewTabController* tab_controller = | 104 printing::PrintPreviewTabController* tab_controller = |
107 printing::PrintPreviewTabController::GetInstance(); | 105 printing::PrintPreviewTabController::GetInstance(); |
108 ASSERT_TRUE(tab_controller); | 106 ASSERT_TRUE(tab_controller); |
109 | 107 |
110 // Get the preview tab for initiator tab. | 108 // Get the preview tab for initiator tab. |
111 initiator_tab->print_view_manager()->PrintPreviewNow(); | 109 initiator_tab->print_view_manager()->PrintPreviewNow(); |
112 TabContentsWrapper* preview_tab = | 110 TabContents* preview_tab = |
113 tab_controller->GetOrCreatePreviewTab(initiator_tab); | 111 tab_controller->GetOrCreatePreviewTab(initiator_tab); |
114 | 112 |
115 // New print preview tab is created. | 113 // New print preview tab is created. |
116 EXPECT_EQ(1, browser()->tab_count()); | 114 EXPECT_EQ(1, browser()->tab_count()); |
117 ASSERT_TRUE(preview_tab); | 115 ASSERT_TRUE(preview_tab); |
118 ASSERT_NE(initiator_tab, preview_tab); | 116 ASSERT_NE(initiator_tab, preview_tab); |
119 TabDestroyedObserver tab_destroyed_observer(preview_tab->web_contents()); | 117 TabDestroyedObserver tab_destroyed_observer(preview_tab->web_contents()); |
120 | 118 |
121 // Reload the initiator tab. | 119 // Reload the initiator tab. |
122 ui_test_utils::WindowedNotificationObserver notification_observer( | 120 ui_test_utils::WindowedNotificationObserver notification_observer( |
123 content::NOTIFICATION_LOAD_STOP, | 121 content::NOTIFICATION_LOAD_STOP, |
124 content::NotificationService::AllSources()); | 122 content::NotificationService::AllSources()); |
125 browser()->Reload(CURRENT_TAB); | 123 browser()->Reload(CURRENT_TAB); |
126 notification_observer.Wait(); | 124 notification_observer.Wait(); |
127 | 125 |
128 ASSERT_TRUE(tab_destroyed_observer.tab_destroyed()); | 126 ASSERT_TRUE(tab_destroyed_observer.tab_destroyed()); |
129 | 127 |
130 // Get the print preview tab for initiator tab. | 128 // Get the print preview tab for initiator tab. |
131 initiator_tab->print_view_manager()->PrintPreviewNow(); | 129 initiator_tab->print_view_manager()->PrintPreviewNow(); |
132 TabContentsWrapper* new_preview_tab = | 130 TabContents* new_preview_tab = |
133 tab_controller->GetOrCreatePreviewTab(initiator_tab); | 131 tab_controller->GetOrCreatePreviewTab(initiator_tab); |
134 | 132 |
135 EXPECT_EQ(1, browser()->tab_count()); | 133 EXPECT_EQ(1, browser()->tab_count()); |
136 EXPECT_TRUE(new_preview_tab); | 134 EXPECT_TRUE(new_preview_tab); |
137 } | 135 } |
OLD | NEW |