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

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

Issue 7790020: Cleanup: Convert PrintPreviewTabController to use TabContentsWrapper. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 3 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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_tab_controller.h" 5 #include "chrome/browser/printing/print_preview_tab_controller.h"
6 #include "chrome/browser/tabs/tab_strip_model.h" 6 #include "chrome/browser/tabs/tab_strip_model.h"
7 #include "chrome/browser/ui/browser_list.h" 7 #include "chrome/browser/ui/browser_list.h"
8 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h"
8 #include "chrome/browser/ui/webui/print_preview_ui.h" 9 #include "chrome/browser/ui/webui/print_preview_ui.h"
9 #include "chrome/test/base/browser_with_test_window_test.h" 10 #include "chrome/test/base/browser_with_test_window_test.h"
10 #include "chrome/test/base/testing_profile.h" 11 #include "chrome/test/base/testing_profile.h"
11 #include "content/browser/tab_contents/navigation_entry.h" 12 #include "content/browser/tab_contents/navigation_entry.h"
12 #include "content/browser/tab_contents/navigation_details.h" 13 #include "content/browser/tab_contents/navigation_details.h"
13 #include "content/browser/tab_contents/tab_contents.h" 14 #include "content/browser/tab_contents/tab_contents.h"
14 #include "content/common/notification_service.h" 15 #include "content/common/notification_service.h"
15 #include "content/common/url_constants.h" 16 #include "content/common/url_constants.h"
16 17
17 typedef BrowserWithTestWindowTest PrintPreviewTabControllerUnitTest; 18 typedef BrowserWithTestWindowTest PrintPreviewTabControllerUnitTest;
18 19
19 // Create/Get a preview tab for initiator tab. 20 // Create/Get a preview tab for initiator tab.
20 TEST_F(PrintPreviewTabControllerUnitTest, GetOrCreatePreviewTab) { 21 TEST_F(PrintPreviewTabControllerUnitTest, GetOrCreatePreviewTab) {
21 ASSERT_TRUE(browser()); 22 ASSERT_TRUE(browser());
22 BrowserList::SetLastActive(browser()); 23 BrowserList::SetLastActive(browser());
23 ASSERT_TRUE(BrowserList::GetLastActive()); 24 ASSERT_TRUE(BrowserList::GetLastActive());
24 25
25 // Lets start with one window with one tab. 26 // Lets start with one window with one tab.
26 EXPECT_EQ(1u, BrowserList::size()); 27 EXPECT_EQ(1u, BrowserList::size());
27 EXPECT_EQ(0, browser()->tab_count()); 28 EXPECT_EQ(0, browser()->tab_count());
28 browser()->NewTab(); 29 browser()->NewTab();
29 EXPECT_EQ(1, browser()->tab_count()); 30 EXPECT_EQ(1, browser()->tab_count());
30 31
31 // Create a reference to initiator tab contents. 32 // Create a reference to initiator tab contents.
32 TabContents* initiator_tab = browser()->GetSelectedTabContents(); 33 TabContentsWrapper* initiator_tab =
34 browser()->GetSelectedTabContentsWrapper();
33 35
34 scoped_refptr<printing::PrintPreviewTabController> 36 scoped_refptr<printing::PrintPreviewTabController>
35 tab_controller(new printing::PrintPreviewTabController()); 37 tab_controller(new printing::PrintPreviewTabController());
36 ASSERT_TRUE(tab_controller); 38 ASSERT_TRUE(tab_controller);
37 39
38 // Get the preview tab for initiator tab. 40 // Get the preview tab for initiator tab.
39 TabContents* preview_tab = 41 TabContentsWrapper* preview_tab =
40 tab_controller->GetOrCreatePreviewTab(initiator_tab); 42 tab_controller->GetOrCreatePreviewTab(initiator_tab);
41 43
42 // New print preview tab is created. Current focus is on preview tab. 44 // New print preview tab is created. Current focus is on preview tab.
43 EXPECT_EQ(2, browser()->tab_count()); 45 EXPECT_EQ(2, browser()->tab_count());
44 EXPECT_NE(initiator_tab, preview_tab); 46 EXPECT_NE(initiator_tab, preview_tab);
45 47
46 // Get the print preview tab for initiator tab. 48 // Get the print preview tab for initiator tab.
47 TabContents* new_preview_tab = 49 TabContentsWrapper* new_preview_tab =
48 tab_controller->GetOrCreatePreviewTab(initiator_tab); 50 tab_controller->GetOrCreatePreviewTab(initiator_tab);
49 51
50 // Preview tab already exists. Tab count remains the same. 52 // Preview tab already exists. Tab count remains the same.
51 EXPECT_EQ(2, browser()->tab_count()); 53 EXPECT_EQ(2, browser()->tab_count());
52 54
53 // 1:1 relationship between initiator and preview tab. 55 // 1:1 relationship between initiator and preview tab.
54 EXPECT_EQ(new_preview_tab, preview_tab); 56 EXPECT_EQ(new_preview_tab, preview_tab);
55 } 57 }
56 58
57 // Test to verify the initiator tab title is stored in |PrintPreviewUI| after 59 // Test to verify the initiator tab title is stored in |PrintPreviewUI| after
58 // preview tab reload. 60 // preview tab reload.
59 TEST_F(PrintPreviewTabControllerUnitTest, TitleAfterReload) { 61 TEST_F(PrintPreviewTabControllerUnitTest, TitleAfterReload) {
60 ASSERT_TRUE(browser()); 62 ASSERT_TRUE(browser());
61 BrowserList::SetLastActive(browser()); 63 BrowserList::SetLastActive(browser());
62 ASSERT_TRUE(BrowserList::GetLastActive()); 64 ASSERT_TRUE(BrowserList::GetLastActive());
63 65
64 // Lets start with one window with one tab. 66 // Lets start with one window with one tab.
65 EXPECT_EQ(1u, BrowserList::size()); 67 EXPECT_EQ(1u, BrowserList::size());
66 EXPECT_EQ(0, browser()->tab_count()); 68 EXPECT_EQ(0, browser()->tab_count());
67 browser()->NewTab(); 69 browser()->NewTab();
68 EXPECT_EQ(1, browser()->tab_count()); 70 EXPECT_EQ(1, browser()->tab_count());
69 71
70 // Create a reference to initiator tab contents. 72 // Create a reference to initiator tab contents.
71 TabContents* initiator_tab = browser()->GetSelectedTabContents(); 73 TabContentsWrapper* initiator_tab =
74 browser()->GetSelectedTabContentsWrapper();
72 75
73 scoped_refptr<printing::PrintPreviewTabController> 76 scoped_refptr<printing::PrintPreviewTabController>
74 tab_controller(new printing::PrintPreviewTabController()); 77 tab_controller(new printing::PrintPreviewTabController());
75 ASSERT_TRUE(tab_controller); 78 ASSERT_TRUE(tab_controller);
76 79
77 // Get the preview tab for initiator tab. 80 // Get the preview tab for initiator tab.
78 TabContents* preview_tab = 81 TabContentsWrapper* preview_tab =
79 tab_controller->GetOrCreatePreviewTab(initiator_tab); 82 tab_controller->GetOrCreatePreviewTab(initiator_tab);
80 83
81 // New print preview tab is created. Current focus is on preview tab. 84 // New print preview tab is created. Current focus is on preview tab.
82 EXPECT_EQ(2, browser()->tab_count()); 85 EXPECT_EQ(2, browser()->tab_count());
83 EXPECT_NE(initiator_tab, preview_tab); 86 EXPECT_NE(initiator_tab, preview_tab);
84 87
85 // Set up a PrintPreviewUI for |preview_tab|. 88 // Set up a PrintPreviewUI for |preview_tab|.
86 PrintPreviewUI* preview_ui = new PrintPreviewUI(preview_tab); 89 PrintPreviewUI* preview_ui = new PrintPreviewUI(preview_tab->tab_contents());
87 // RenderViewHostManager takes ownership of |preview_ui|. 90 // RenderViewHostManager takes ownership of |preview_ui|.
88 preview_tab->render_manager()->SetWebUIPostCommit(preview_ui); 91 preview_tab->tab_contents()->render_manager()->SetWebUIPostCommit(preview_ui);
89 92
90 // Simulate a reload event on |preview_tab|. 93 // Simulate a reload event on |preview_tab|.
91 scoped_ptr<NavigationEntry> entry; 94 scoped_ptr<NavigationEntry> entry;
92 entry.reset(new NavigationEntry()); 95 entry.reset(new NavigationEntry());
93 entry->set_transition_type(PageTransition::RELOAD); 96 entry->set_transition_type(PageTransition::RELOAD);
94 content::LoadCommittedDetails details; 97 content::LoadCommittedDetails details;
95 details.type = NavigationType::SAME_PAGE; 98 details.type = NavigationType::SAME_PAGE;
96 details.entry = entry.get(); 99 details.entry = entry.get();
97 NotificationService::current()->Notify( 100 NotificationService::current()->Notify(
98 content::NOTIFICATION_NAV_ENTRY_COMMITTED, 101 content::NOTIFICATION_NAV_ENTRY_COMMITTED,
99 Source<NavigationController>(&preview_tab->controller()), 102 Source<NavigationController>(&preview_tab->controller()),
100 Details<content::LoadCommittedDetails>(&details)); 103 Details<content::LoadCommittedDetails>(&details));
101 EXPECT_EQ(initiator_tab->GetTitle(), preview_ui->initiator_tab_title_); 104 EXPECT_EQ(initiator_tab->tab_contents()->GetTitle(),
105 preview_ui->initiator_tab_title_);
102 } 106 }
103 107
104 // To show multiple print preview tabs exist in the same browser for 108 // To show multiple print preview tabs exist in the same browser for
105 // different initiator tabs. If preview tab already exists for an initiator, it 109 // different initiator tabs. If preview tab already exists for an initiator, it
106 // gets focused. 110 // gets focused.
107 TEST_F(PrintPreviewTabControllerUnitTest, MultiplePreviewTabs) { 111 TEST_F(PrintPreviewTabControllerUnitTest, MultiplePreviewTabs) {
108 ASSERT_TRUE(browser()); 112 ASSERT_TRUE(browser());
109 BrowserList::SetLastActive(browser()); 113 BrowserList::SetLastActive(browser());
110 ASSERT_TRUE(BrowserList::GetLastActive()); 114 ASSERT_TRUE(BrowserList::GetLastActive());
111 115
112 // Lets start with one window and two tabs. 116 // Lets start with one window and two tabs.
113 EXPECT_EQ(1u, BrowserList::size()); 117 EXPECT_EQ(1u, BrowserList::size());
114 EXPECT_EQ(0, browser()->tab_count()); 118 EXPECT_EQ(0, browser()->tab_count());
115 119
116 browser()->NewTab(); 120 browser()->NewTab();
117 TabContents* tab_contents_1 = browser()->GetSelectedTabContents(); 121 TabContentsWrapper* tab_contents_1 =
122 browser()->GetSelectedTabContentsWrapper();
118 ASSERT_TRUE(tab_contents_1); 123 ASSERT_TRUE(tab_contents_1);
119 124
120 browser()->NewTab(); 125 browser()->NewTab();
121 TabContents* tab_contents_2 = browser()->GetSelectedTabContents(); 126 TabContentsWrapper* tab_contents_2 =
127 browser()->GetSelectedTabContentsWrapper();
122 ASSERT_TRUE(tab_contents_2); 128 ASSERT_TRUE(tab_contents_2);
123 EXPECT_EQ(2, browser()->tab_count()); 129 EXPECT_EQ(2, browser()->tab_count());
124 130
125 scoped_refptr<printing::PrintPreviewTabController> 131 scoped_refptr<printing::PrintPreviewTabController>
126 tab_controller(new printing::PrintPreviewTabController()); 132 tab_controller(new printing::PrintPreviewTabController());
127 ASSERT_TRUE(tab_controller); 133 ASSERT_TRUE(tab_controller);
128 134
129 // Create preview tab for |tab_contents_1| 135 // Create preview tab for |tab_contents_1|
130 TabContents* preview_tab_1 = 136 TabContentsWrapper* preview_tab_1 =
131 tab_controller->GetOrCreatePreviewTab(tab_contents_1); 137 tab_controller->GetOrCreatePreviewTab(tab_contents_1);
132 138
133 EXPECT_NE(tab_contents_1, preview_tab_1); 139 EXPECT_NE(tab_contents_1, preview_tab_1);
134 EXPECT_EQ(3, browser()->tab_count()); 140 EXPECT_EQ(3, browser()->tab_count());
135 141
136 // Create preview tab for |tab_contents_2| 142 // Create preview tab for |tab_contents_2|
137 TabContents* preview_tab_2 = 143 TabContentsWrapper* preview_tab_2 =
138 tab_controller->GetOrCreatePreviewTab(tab_contents_2); 144 tab_controller->GetOrCreatePreviewTab(tab_contents_2);
139 145
140 EXPECT_NE(tab_contents_2, preview_tab_2); 146 EXPECT_NE(tab_contents_2, preview_tab_2);
141 // 2 initiator tab and 2 preview tabs exist in the same browser. 147 // 2 initiator tab and 2 preview tabs exist in the same browser.
142 EXPECT_EQ(4, browser()->tab_count()); 148 EXPECT_EQ(4, browser()->tab_count());
143 149
144 TabStripModel* model = browser()->tabstrip_model(); 150 TabStripModel* model = browser()->tabstrip_model();
145 ASSERT_TRUE(model); 151 ASSERT_TRUE(model);
146 152
147 int preview_tab_1_index = model->GetWrapperIndex(preview_tab_1); 153 int preview_tab_1_index = model->GetIndexOfTabContents(preview_tab_1);
148 int preview_tab_2_index = model->GetWrapperIndex(preview_tab_2); 154 int preview_tab_2_index = model->GetIndexOfTabContents(preview_tab_2);
149 155
150 EXPECT_NE(-1, preview_tab_1_index); 156 EXPECT_NE(-1, preview_tab_1_index);
151 EXPECT_NE(-1, preview_tab_2_index); 157 EXPECT_NE(-1, preview_tab_2_index);
152 // Current tab is |preview_tab_2|. 158 // Current tab is |preview_tab_2|.
153 EXPECT_EQ(preview_tab_2_index, browser()->active_index()); 159 EXPECT_EQ(preview_tab_2_index, browser()->active_index());
154 160
155 // When we get the preview tab for |tab_contents_1|, 161 // When we get the preview tab for |tab_contents_1|,
156 // |preview_tab_1| is activated and focused. 162 // |preview_tab_1| is activated and focused.
157 tab_controller->GetOrCreatePreviewTab(tab_contents_1); 163 tab_controller->GetOrCreatePreviewTab(tab_contents_1);
158 EXPECT_EQ(preview_tab_1_index, browser()->active_index()); 164 EXPECT_EQ(preview_tab_1_index, browser()->active_index());
159 } 165 }
160 166
161 // Clear the initiator tab details associated with preview tab. 167 // Clear the initiator tab details associated with preview tab.
162 TEST_F(PrintPreviewTabControllerUnitTest, ClearInitiatorTabDetails) { 168 TEST_F(PrintPreviewTabControllerUnitTest, ClearInitiatorTabDetails) {
163 ASSERT_TRUE(browser()); 169 ASSERT_TRUE(browser());
164 BrowserList::SetLastActive(browser()); 170 BrowserList::SetLastActive(browser());
165 ASSERT_TRUE(BrowserList::GetLastActive()); 171 ASSERT_TRUE(BrowserList::GetLastActive());
166 172
167 // Lets start with one window with one tab. 173 // Lets start with one window with one tab.
168 EXPECT_EQ(1u, BrowserList::size()); 174 EXPECT_EQ(1u, BrowserList::size());
169 EXPECT_EQ(0, browser()->tab_count()); 175 EXPECT_EQ(0, browser()->tab_count());
170 browser()->NewTab(); 176 browser()->NewTab();
171 EXPECT_EQ(1, browser()->tab_count()); 177 EXPECT_EQ(1, browser()->tab_count());
172 178
173 // Create a reference to initiator tab contents. 179 // Create a reference to initiator tab contents.
174 TabContents* initiator_tab = browser()->GetSelectedTabContents(); 180 TabContentsWrapper* initiator_tab =
181 browser()->GetSelectedTabContentsWrapper();
175 182
176 scoped_refptr<printing::PrintPreviewTabController> 183 scoped_refptr<printing::PrintPreviewTabController>
177 tab_controller(new printing::PrintPreviewTabController()); 184 tab_controller(new printing::PrintPreviewTabController());
178 ASSERT_TRUE(tab_controller); 185 ASSERT_TRUE(tab_controller);
179 186
180 // Get the preview tab for initiator tab. 187 // Get the preview tab for initiator tab.
181 TabContents* preview_tab = 188 TabContentsWrapper* preview_tab =
182 tab_controller->GetOrCreatePreviewTab(initiator_tab); 189 tab_controller->GetOrCreatePreviewTab(initiator_tab);
183 190
184 // New print preview tab is created. Current focus is on preview tab. 191 // New print preview tab is created. Current focus is on preview tab.
185 EXPECT_EQ(2, browser()->tab_count()); 192 EXPECT_EQ(2, browser()->tab_count());
186 EXPECT_NE(initiator_tab, preview_tab); 193 EXPECT_NE(initiator_tab, preview_tab);
187 194
188 // Clear the initiator tab details associated with the preview tab. 195 // Clear the initiator tab details associated with the preview tab.
189 tab_controller->EraseInitiatorTabInfo(preview_tab); 196 tab_controller->EraseInitiatorTabInfo(preview_tab);
190 197
191 // Get the print preview tab for initiator tab. 198 // Get the print preview tab for initiator tab.
192 TabContents* new_preview_tab = 199 TabContentsWrapper* new_preview_tab =
193 tab_controller->GetOrCreatePreviewTab(initiator_tab); 200 tab_controller->GetOrCreatePreviewTab(initiator_tab);
194 201
195 // New preview tab is created. 202 // New preview tab is created.
196 EXPECT_EQ(3, browser()->tab_count()); 203 EXPECT_EQ(3, browser()->tab_count());
197 EXPECT_NE(new_preview_tab, preview_tab); 204 EXPECT_NE(new_preview_tab, preview_tab);
198 } 205 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698