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

Side by Side Diff: chrome/browser/printing/print_preview_dialog_controller_unittest.cc

Issue 12250008: Cleanup: Remove more uses of deprecated PrintPreviewDialogController methods. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 7 years, 10 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 | Annotate | Revision Log
OLDNEW
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 "chrome/browser/printing/print_preview_dialog_controller.h" 5 #include "chrome/browser/printing/print_preview_dialog_controller.h"
6 #include "chrome/browser/printing/print_preview_test.h" 6 #include "chrome/browser/printing/print_preview_test.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_commands.h" 8 #include "chrome/browser/ui/browser_commands.h"
9 #include "chrome/browser/ui/browser_list.h" 9 #include "chrome/browser/ui/browser_list.h"
10 #include "chrome/browser/ui/tabs/tab_strip_model.h" 10 #include "chrome/browser/ui/tabs/tab_strip_model.h"
11 #include "chrome/browser/ui/webui/print_preview/print_preview_ui.h" 11 #include "chrome/browser/ui/webui/print_preview/print_preview_ui.h"
12 #include "content/public/browser/navigation_details.h" 12 #include "content/public/browser/navigation_details.h"
13 #include "content/public/browser/notification_service.h" 13 #include "content/public/browser/notification_service.h"
14 #include "content/public/browser/notification_types.h" 14 #include "content/public/browser/notification_types.h"
15 #include "content/public/common/url_constants.h" 15 #include "content/public/common/url_constants.h"
16 16
17 using content::WebContents; 17 using content::WebContents;
18 18
19 // Test crashes on Aura due to initiator tab's native view having no parent. 19 // Test crashes on Aura due to initiator tab's native view having no parent.
20 // http://crbug.com/104284 20 // http://crbug.com/104284
21 #if defined(USE_AURA) 21 #if defined(USE_AURA)
22 #define MAYBE_GetOrCreatePreviewTab DISABLED_GetOrCreatePreviewTab 22 #define MAYBE_GetOrCreatePreviewDialog DISABLED_GetOrCreatePreviewDialog
23 #define MAYBE_MultiplePreviewTabs DISABLED_MultiplePreviewTabs 23 #define MAYBE_MultiplePreviewTabs DISABLED_MultiplePreviewTabs
24 #define MAYBE_ClearInitiatorTabDetails DISABLED_ClearInitiatorTabDetails 24 #define MAYBE_ClearInitiatorTabDetails DISABLED_ClearInitiatorTabDetails
25 #else 25 #else
26 #define MAYBE_GetOrCreatePreviewTab GetOrCreatePreviewTab 26 #define MAYBE_GetOrCreatePreviewDialog GetOrCreatePreviewDialog
27 #define MAYBE_MultiplePreviewTabs MultiplePreviewTabs 27 #define MAYBE_MultiplePreviewTabs MultiplePreviewTabs
28 #define MAYBE_ClearInitiatorTabDetails ClearInitiatorTabDetails 28 #define MAYBE_ClearInitiatorTabDetails ClearInitiatorTabDetails
29 #endif 29 #endif
30 30
31 namespace printing {
32
31 typedef PrintPreviewTest PrintPreviewDialogControllerUnitTest; 33 typedef PrintPreviewTest PrintPreviewDialogControllerUnitTest;
32 34
33 // Create/Get a preview tab for initiator tab. 35 // Create/Get a preview dialog for initiator tab.
34 TEST_F(PrintPreviewDialogControllerUnitTest, MAYBE_GetOrCreatePreviewTab) { 36 TEST_F(PrintPreviewDialogControllerUnitTest, MAYBE_GetOrCreatePreviewDialog) {
35 // Lets start with one window with one tab. 37 // Lets start with one window with one tab.
36 EXPECT_EQ(1u, BrowserList::size()); 38 EXPECT_EQ(1u, BrowserList::size());
37 EXPECT_EQ(0, browser()->tab_strip_model()->count()); 39 EXPECT_EQ(0, browser()->tab_strip_model()->count());
38 chrome::NewTab(browser()); 40 chrome::NewTab(browser());
39 EXPECT_EQ(1, browser()->tab_strip_model()->count()); 41 EXPECT_EQ(1, browser()->tab_strip_model()->count());
40 42
41 // Create a reference to initiator tab contents. 43 // Create a reference to initiator tab contents.
42 WebContents* initiator_tab = 44 WebContents* initiator_tab =
43 browser()->tab_strip_model()->GetActiveWebContents(); 45 browser()->tab_strip_model()->GetActiveWebContents();
44 46
45 printing::PrintPreviewDialogController* tab_controller = 47 PrintPreviewDialogController* dialog_controller =
46 printing::PrintPreviewDialogController::GetInstance(); 48 PrintPreviewDialogController::GetInstance();
47 ASSERT_TRUE(tab_controller); 49 ASSERT_TRUE(dialog_controller);
48 50
49 // Get the preview tab for initiator tab. 51 // Get the preview dialog for initiator tab.
50 printing::PrintViewManager::FromWebContents(initiator_tab)-> 52 PrintViewManager::FromWebContents(initiator_tab)->PrintPreviewNow(false);
51 PrintPreviewNow(false); 53 WebContents* preview_dialog =
52 WebContents* preview_tab = 54 dialog_controller->GetOrCreatePreviewDialog(initiator_tab);
53 tab_controller->GetOrCreatePreviewTab(initiator_tab);
54 55
55 // New print preview tab is created. 56 // New print preview dialog is a constrained window, so the number of tabs is
57 // still 1.
56 EXPECT_EQ(1, browser()->tab_strip_model()->count()); 58 EXPECT_EQ(1, browser()->tab_strip_model()->count());
57 EXPECT_NE(initiator_tab, preview_tab); 59 EXPECT_NE(initiator_tab, preview_dialog);
58 60
59 // Get the print preview tab for initiator tab. 61 // Get the print preview dialog for the same initiator tab.
60 WebContents* new_preview_tab = 62 WebContents* new_preview_dialog =
61 tab_controller->GetOrCreatePreviewTab(initiator_tab); 63 dialog_controller->GetOrCreatePreviewDialog(initiator_tab);
62 64
63 // Preview tab already exists. Tab count remains the same. 65 // Preview dialog already exists. Tab count remains the same.
64 EXPECT_EQ(1, browser()->tab_strip_model()->count()); 66 EXPECT_EQ(1, browser()->tab_strip_model()->count());
65 67
66 // 1:1 relationship between initiator and preview tab. 68 // 1:1 relationship between initiator tab and preview dialog.
67 EXPECT_EQ(new_preview_tab, preview_tab); 69 EXPECT_EQ(new_preview_dialog, preview_dialog);
68 } 70 }
69 71
70 // To show multiple print preview tabs exist in the same browser for 72 // Tests multiple print preview dialogs exist in the same browser for
71 // different initiator tabs. If preview tab already exists for an initiator, it 73 // different initiator tabs. If a preview dialog already exists for an
72 // gets focused. 74 // initiator tab, that initiator tab gets focused.
73 TEST_F(PrintPreviewDialogControllerUnitTest, MAYBE_MultiplePreviewTabs) { 75 TEST_F(PrintPreviewDialogControllerUnitTest, MAYBE_MultiplePreviewDialogs) {
74 // Lets start with one window and two tabs. 76 // Lets start with one window and two tabs.
75 EXPECT_EQ(1u, BrowserList::size()); 77 EXPECT_EQ(1u, BrowserList::size());
76 TabStripModel* model = browser()->tab_strip_model(); 78 TabStripModel* tab_strip_model = browser()->tab_strip_model();
77 ASSERT_TRUE(model); 79 ASSERT_TRUE(tab_strip_model);
78 80
79 EXPECT_EQ(0, model->count()); 81 EXPECT_EQ(0, tab_strip_model->count());
80 82
83 // Create some new initiator tabs.
81 chrome::NewTab(browser()); 84 chrome::NewTab(browser());
82 WebContents* web_contents_1 = model->GetActiveWebContents(); 85 WebContents* web_contents_1 = tab_strip_model->GetActiveWebContents();
83 ASSERT_TRUE(web_contents_1); 86 ASSERT_TRUE(web_contents_1);
84 87
85 chrome::NewTab(browser()); 88 chrome::NewTab(browser());
86 WebContents* web_contents_2 = model->GetActiveWebContents(); 89 WebContents* web_contents_2 = tab_strip_model->GetActiveWebContents();
87 ASSERT_TRUE(web_contents_2); 90 ASSERT_TRUE(web_contents_2);
88 EXPECT_EQ(2, model->count()); 91 EXPECT_EQ(2, tab_strip_model->count());
89 92
90 printing::PrintPreviewDialogController* tab_controller = 93 PrintPreviewDialogController* dialog_controller =
91 printing::PrintPreviewDialogController::GetInstance(); 94 PrintPreviewDialogController::GetInstance();
92 ASSERT_TRUE(tab_controller); 95 ASSERT_TRUE(dialog_controller);
93 96
94 // Create preview tab for |tab_contents_1| 97 // Create preview dialog for |web_contents_1|
95 printing::PrintViewManager::FromWebContents(web_contents_1)-> 98 PrintViewManager::FromWebContents(web_contents_1)->PrintPreviewNow(false);
96 PrintPreviewNow(false); 99 WebContents* preview_dialog_1 =
97 WebContents* preview_tab_1 = 100 dialog_controller->GetOrCreatePreviewDialog(web_contents_1);
98 tab_controller->GetOrCreatePreviewTab(web_contents_1);
99 101
100 EXPECT_NE(web_contents_1, preview_tab_1); 102 EXPECT_NE(web_contents_1, preview_dialog_1);
101 EXPECT_EQ(2, model->count()); 103 EXPECT_EQ(2, tab_strip_model->count());
102 104
103 // Create preview tab for |tab_contents_2| 105 // Create preview dialog for |web_contents_2|
104 printing::PrintViewManager::FromWebContents(web_contents_2)-> 106 PrintViewManager::FromWebContents(web_contents_2)->PrintPreviewNow(false);
105 PrintPreviewNow(false); 107 WebContents* preview_dialog_2 =
106 WebContents* preview_tab_2 = 108 dialog_controller->GetOrCreatePreviewDialog(web_contents_2);
107 tab_controller->GetOrCreatePreviewTab(web_contents_2);
108 109
109 EXPECT_NE(web_contents_2, preview_tab_2); 110 EXPECT_NE(web_contents_2, preview_dialog_2);
110 // 2 initiator tab and 2 preview tabs exist in the same browser. 111 EXPECT_NE(preview_dialog_1, preview_dialog_2);
111 // The preview tabs are constrained in their respective initiator tabs. 112 // 2 initiator tabs and 2 preview dialogs exist in the same browser.
112 EXPECT_EQ(2, model->count()); 113 // The preview dialogs are constrained in their respective initiator tabs.
114 EXPECT_EQ(2, tab_strip_model->count());
113 115
114 int tab_1_index = model->GetIndexOfWebContents(web_contents_1); 116 int tab_1_index = tab_strip_model->GetIndexOfWebContents(web_contents_1);
115 int tab_2_index = model->GetIndexOfWebContents(web_contents_2); 117 int tab_2_index = tab_strip_model->GetIndexOfWebContents(web_contents_2);
116 int preview_tab_1_index = model->GetIndexOfWebContents(preview_tab_1); 118 int preview_dialog_1_index =
117 int preview_tab_2_index = model->GetIndexOfWebContents(preview_tab_2); 119 tab_strip_model->GetIndexOfWebContents(preview_dialog_1);
120 int preview_dialog_2_index =
121 tab_strip_model->GetIndexOfWebContents(preview_dialog_2);
118 122
119 EXPECT_EQ(-1, preview_tab_1_index); 123 // Constrained dialogs are not in the TabStripModel.
120 EXPECT_EQ(-1, preview_tab_2_index); 124 EXPECT_EQ(-1, preview_dialog_1_index);
121 EXPECT_EQ(tab_2_index, model->active_index()); 125 EXPECT_EQ(-1, preview_dialog_2_index);
122 126
123 // When we get the preview tab for |tab_contents_1|, 127 // Since |preview_dialog_2_index| was the most recently created dialog, its
124 // |preview_tab_1| is activated and focused. 128 // initiator tab should have focus.
125 tab_controller->GetOrCreatePreviewTab(web_contents_1); 129 EXPECT_EQ(tab_2_index, tab_strip_model->active_index());
126 EXPECT_EQ(tab_1_index, model->active_index()); 130
131 // When we get the preview dialog for |web_contents_1|,
132 // |preview_dialog_1| is activated and focused.
133 dialog_controller->GetOrCreatePreviewDialog(web_contents_1);
134 EXPECT_EQ(tab_1_index, tab_strip_model->active_index());
127 } 135 }
128 136
129 // Clear the initiator tab details associated with preview tab. 137 // Check clearing the initiator tab details associated with a print preview
138 // dialog allows the initiator tab to create another print preview dialog.
130 TEST_F(PrintPreviewDialogControllerUnitTest, MAYBE_ClearInitiatorTabDetails) { 139 TEST_F(PrintPreviewDialogControllerUnitTest, MAYBE_ClearInitiatorTabDetails) {
131 // Lets start with one window with one tab. 140 // Lets start with one window with one tab.
132 EXPECT_EQ(1u, BrowserList::size()); 141 EXPECT_EQ(1u, BrowserList::size());
133 EXPECT_EQ(0, browser()->tab_strip_model()->count()); 142 EXPECT_EQ(0, browser()->tab_strip_model()->count());
134 chrome::NewTab(browser()); 143 chrome::NewTab(browser());
135 EXPECT_EQ(1, browser()->tab_strip_model()->count()); 144 EXPECT_EQ(1, browser()->tab_strip_model()->count());
136 145
137 // Create a reference to initiator tab contents. 146 // Create a reference to initiator tab contents.
138 WebContents* initiator_tab = 147 WebContents* initiator_tab =
139 browser()->tab_strip_model()->GetActiveWebContents(); 148 browser()->tab_strip_model()->GetActiveWebContents();
140 149
141 printing::PrintPreviewDialogController* tab_controller = 150 PrintPreviewDialogController* dialog_controller =
142 printing::PrintPreviewDialogController::GetInstance(); 151 PrintPreviewDialogController::GetInstance();
143 ASSERT_TRUE(tab_controller); 152 ASSERT_TRUE(dialog_controller);
144 153
145 // Get the preview tab for initiator tab. 154 // Get the preview dialog for the initiator tab.
146 printing::PrintViewManager::FromWebContents(initiator_tab)-> 155 PrintViewManager::FromWebContents(initiator_tab)->PrintPreviewNow(false);
147 PrintPreviewNow(false); 156 WebContents* preview_dialog =
148 WebContents* preview_tab = 157 dialog_controller->GetOrCreatePreviewDialog(initiator_tab);
149 tab_controller->GetOrCreatePreviewTab(initiator_tab);
150 158
151 // New print preview tab is created. Current focus is on preview tab. 159 // New print preview dialog is a constrained window, so the number of tabs is
160 // still 1.
152 EXPECT_EQ(1, browser()->tab_strip_model()->count()); 161 EXPECT_EQ(1, browser()->tab_strip_model()->count());
153 EXPECT_NE(initiator_tab, preview_tab); 162 EXPECT_NE(initiator_tab, preview_dialog);
154 163
155 // Clear the initiator tab details associated with the preview tab. 164 // Clear the initiator tab details associated with the preview dialog.
156 tab_controller->EraseInitiatorTabInfo(preview_tab); 165 dialog_controller->EraseInitiatorTabInfo(preview_dialog);
157 166
158 // Get the print preview tab for initiator tab. 167 // Get a new print preview dialog for the initiator tab.
159 WebContents* new_preview_tab = 168 WebContents* new_preview_dialog =
160 tab_controller->GetOrCreatePreviewTab(initiator_tab); 169 dialog_controller->GetOrCreatePreviewDialog(initiator_tab);
161 170
162 // New preview tab is created. 171 // New print preview dialog is a constrained window, so the number of tabs is
172 // still 1.
163 EXPECT_EQ(1, browser()->tab_strip_model()->count()); 173 EXPECT_EQ(1, browser()->tab_strip_model()->count());
164 EXPECT_NE(new_preview_tab, preview_tab); 174 // Verify a new print preview dialog has been created.
175 EXPECT_NE(new_preview_dialog, preview_dialog);
165 } 176 }
177
178 } // namespace printing
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698