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 <vector> | 5 #include <vector> |
6 | 6 |
7 #include "base/memory/ref_counted_memory.h" | 7 #include "base/memory/ref_counted_memory.h" |
8 #include "chrome/browser/printing/print_preview_tab_controller.h" | 8 #include "chrome/browser/printing/print_preview_tab_controller.h" |
9 #include "chrome/browser/printing/print_preview_unit_test_base.h" | 9 #include "chrome/browser/printing/print_preview_unit_test_base.h" |
10 #include "chrome/browser/printing/print_view_manager.h" | 10 #include "chrome/browser/printing/print_view_manager.h" |
11 #include "chrome/browser/ui/browser_list.h" | 11 #include "chrome/browser/ui/browser_list.h" |
12 #include "chrome/browser/ui/constrained_window_tab_helper.h" | 12 #include "chrome/browser/ui/constrained_window_tab_helper.h" |
13 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" | 13 #include "chrome/browser/ui/tab_contents/tab_contents.h" |
14 #include "chrome/browser/ui/webui/print_preview/print_preview_ui.h" | 14 #include "chrome/browser/ui/webui/print_preview/print_preview_ui.h" |
15 #include "content/public/browser/site_instance.h" | 15 #include "content/public/browser/site_instance.h" |
16 #include "content/public/browser/web_contents.h" | 16 #include "content/public/browser/web_contents.h" |
17 #include "content/public/test/web_contents_tester.h" | 17 #include "content/public/test/web_contents_tester.h" |
18 #include "printing/print_job_constants.h" | 18 #include "printing/print_job_constants.h" |
19 | 19 |
20 using content::WebContents; | 20 using content::WebContents; |
21 using content::WebContentsTester; | 21 using content::WebContentsTester; |
22 | 22 |
23 namespace { | 23 namespace { |
24 | 24 |
25 const unsigned char blob1[] = | 25 const unsigned char blob1[] = |
26 "12346102356120394751634516591348710478123649165419234519234512349134"; | 26 "12346102356120394751634516591348710478123649165419234519234512349134"; |
27 | 27 |
28 size_t GetConstrainedWindowCount(TabContentsWrapper* tab) { | 28 size_t GetConstrainedWindowCount(TabContents* tab) { |
29 return tab->constrained_window_tab_helper()->constrained_window_count(); | 29 return tab->constrained_window_tab_helper()->constrained_window_count(); |
30 } | 30 } |
31 | 31 |
32 } // namespace | 32 } // namespace |
33 | 33 |
34 class PrintPreviewUIUnitTest : public PrintPreviewUnitTestBase { | 34 class PrintPreviewUIUnitTest : public PrintPreviewUnitTestBase { |
35 public: | 35 public: |
36 PrintPreviewUIUnitTest() {} | 36 PrintPreviewUIUnitTest() {} |
37 virtual ~PrintPreviewUIUnitTest() {} | 37 virtual ~PrintPreviewUIUnitTest() {} |
38 | 38 |
39 protected: | 39 protected: |
40 virtual void SetUp() OVERRIDE { | 40 virtual void SetUp() OVERRIDE { |
41 PrintPreviewUnitTestBase::SetUp(); | 41 PrintPreviewUnitTestBase::SetUp(); |
42 | 42 |
43 browser()->NewTab(); | 43 browser()->NewTab(); |
44 } | 44 } |
45 }; | 45 }; |
46 | 46 |
47 // Create/Get a preview tab for initiator tab. | 47 // Create/Get a preview tab for initiator tab. |
48 TEST_F(PrintPreviewUIUnitTest, PrintPreviewData) { | 48 TEST_F(PrintPreviewUIUnitTest, PrintPreviewData) { |
49 TabContentsWrapper* initiator_tab = | 49 TabContents* initiator_tab = browser()->GetActiveTabContents(); |
50 browser()->GetSelectedTabContentsWrapper(); | |
51 ASSERT_TRUE(initiator_tab); | 50 ASSERT_TRUE(initiator_tab); |
52 EXPECT_EQ(0U, GetConstrainedWindowCount(initiator_tab)); | 51 EXPECT_EQ(0U, GetConstrainedWindowCount(initiator_tab)); |
53 | 52 |
54 printing::PrintPreviewTabController* controller = | 53 printing::PrintPreviewTabController* controller = |
55 printing::PrintPreviewTabController::GetInstance(); | 54 printing::PrintPreviewTabController::GetInstance(); |
56 ASSERT_TRUE(controller); | 55 ASSERT_TRUE(controller); |
57 | 56 |
58 initiator_tab->print_view_manager()->PrintPreviewNow(); | 57 initiator_tab->print_view_manager()->PrintPreviewNow(); |
59 TabContentsWrapper* preview_tab = | 58 TabContents* preview_tab = controller->GetOrCreatePreviewTab(initiator_tab); |
60 controller->GetOrCreatePreviewTab(initiator_tab); | |
61 | 59 |
62 EXPECT_NE(initiator_tab, preview_tab); | 60 EXPECT_NE(initiator_tab, preview_tab); |
63 EXPECT_EQ(1, browser()->tab_count()); | 61 EXPECT_EQ(1, browser()->tab_count()); |
64 EXPECT_EQ(1U, GetConstrainedWindowCount(initiator_tab)); | 62 EXPECT_EQ(1U, GetConstrainedWindowCount(initiator_tab)); |
65 | 63 |
66 PrintPreviewUI* preview_ui = static_cast<PrintPreviewUI*>( | 64 PrintPreviewUI* preview_ui = static_cast<PrintPreviewUI*>( |
67 preview_tab->web_contents()->GetWebUI()->GetController()); | 65 preview_tab->web_contents()->GetWebUI()->GetController()); |
68 ASSERT_TRUE(preview_ui != NULL); | 66 ASSERT_TRUE(preview_ui != NULL); |
69 | 67 |
70 scoped_refptr<base::RefCountedBytes> data; | 68 scoped_refptr<base::RefCountedBytes> data; |
(...skipping 24 matching lines...) Expand all Loading... |
95 preview_ui->ClearAllPreviewData(); | 93 preview_ui->ClearAllPreviewData(); |
96 | 94 |
97 preview_ui->GetPrintPreviewDataForIndex( | 95 preview_ui->GetPrintPreviewDataForIndex( |
98 printing::COMPLETE_PREVIEW_DOCUMENT_INDEX, | 96 printing::COMPLETE_PREVIEW_DOCUMENT_INDEX, |
99 &data); | 97 &data); |
100 EXPECT_EQ(NULL, data.get()); | 98 EXPECT_EQ(NULL, data.get()); |
101 } | 99 } |
102 | 100 |
103 // Set and get the individual draft pages. | 101 // Set and get the individual draft pages. |
104 TEST_F(PrintPreviewUIUnitTest, PrintPreviewDraftPages) { | 102 TEST_F(PrintPreviewUIUnitTest, PrintPreviewDraftPages) { |
105 TabContentsWrapper* initiator_tab = | 103 TabContents* initiator_tab = browser()->GetActiveTabContents(); |
106 browser()->GetSelectedTabContentsWrapper(); | |
107 ASSERT_TRUE(initiator_tab); | 104 ASSERT_TRUE(initiator_tab); |
108 | 105 |
109 printing::PrintPreviewTabController* controller = | 106 printing::PrintPreviewTabController* controller = |
110 printing::PrintPreviewTabController::GetInstance(); | 107 printing::PrintPreviewTabController::GetInstance(); |
111 ASSERT_TRUE(controller); | 108 ASSERT_TRUE(controller); |
112 | 109 |
113 initiator_tab->print_view_manager()->PrintPreviewNow(); | 110 initiator_tab->print_view_manager()->PrintPreviewNow(); |
114 TabContentsWrapper* preview_tab = | 111 TabContents* preview_tab = controller->GetOrCreatePreviewTab(initiator_tab); |
115 controller->GetOrCreatePreviewTab(initiator_tab); | |
116 | 112 |
117 EXPECT_NE(initiator_tab, preview_tab); | 113 EXPECT_NE(initiator_tab, preview_tab); |
118 EXPECT_EQ(1, browser()->tab_count()); | 114 EXPECT_EQ(1, browser()->tab_count()); |
119 EXPECT_EQ(1U, GetConstrainedWindowCount(initiator_tab)); | 115 EXPECT_EQ(1U, GetConstrainedWindowCount(initiator_tab)); |
120 | 116 |
121 PrintPreviewUI* preview_ui = static_cast<PrintPreviewUI*>( | 117 PrintPreviewUI* preview_ui = static_cast<PrintPreviewUI*>( |
122 preview_tab->web_contents()->GetWebUI()->GetController()); | 118 preview_tab->web_contents()->GetWebUI()->GetController()); |
123 ASSERT_TRUE(preview_ui != NULL); | 119 ASSERT_TRUE(preview_ui != NULL); |
124 | 120 |
125 scoped_refptr<base::RefCountedBytes> data; | 121 scoped_refptr<base::RefCountedBytes> data; |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
157 EXPECT_EQ(dummy_data.get(), data.get()); | 153 EXPECT_EQ(dummy_data.get(), data.get()); |
158 | 154 |
159 // Clear the preview data. | 155 // Clear the preview data. |
160 preview_ui->ClearAllPreviewData(); | 156 preview_ui->ClearAllPreviewData(); |
161 preview_ui->GetPrintPreviewDataForIndex(printing::FIRST_PAGE_INDEX, &data); | 157 preview_ui->GetPrintPreviewDataForIndex(printing::FIRST_PAGE_INDEX, &data); |
162 EXPECT_EQ(NULL, data.get()); | 158 EXPECT_EQ(NULL, data.get()); |
163 } | 159 } |
164 | 160 |
165 // Test the browser-side print preview cancellation functionality. | 161 // Test the browser-side print preview cancellation functionality. |
166 TEST_F(PrintPreviewUIUnitTest, GetCurrentPrintPreviewStatus) { | 162 TEST_F(PrintPreviewUIUnitTest, GetCurrentPrintPreviewStatus) { |
167 TabContentsWrapper* initiator_tab = | 163 TabContents* initiator_tab = browser()->GetActiveTabContents(); |
168 browser()->GetSelectedTabContentsWrapper(); | |
169 ASSERT_TRUE(initiator_tab); | 164 ASSERT_TRUE(initiator_tab); |
170 | 165 |
171 printing::PrintPreviewTabController* controller = | 166 printing::PrintPreviewTabController* controller = |
172 printing::PrintPreviewTabController::GetInstance(); | 167 printing::PrintPreviewTabController::GetInstance(); |
173 ASSERT_TRUE(controller); | 168 ASSERT_TRUE(controller); |
174 | 169 |
175 initiator_tab->print_view_manager()->PrintPreviewNow(); | 170 initiator_tab->print_view_manager()->PrintPreviewNow(); |
176 TabContentsWrapper* preview_tab = | 171 TabContents* preview_tab = controller->GetOrCreatePreviewTab(initiator_tab); |
177 controller->GetOrCreatePreviewTab(initiator_tab); | |
178 | 172 |
179 EXPECT_NE(initiator_tab, preview_tab); | 173 EXPECT_NE(initiator_tab, preview_tab); |
180 EXPECT_EQ(1, browser()->tab_count()); | 174 EXPECT_EQ(1, browser()->tab_count()); |
181 EXPECT_EQ(1U, GetConstrainedWindowCount(initiator_tab)); | 175 EXPECT_EQ(1U, GetConstrainedWindowCount(initiator_tab)); |
182 | 176 |
183 PrintPreviewUI* preview_ui = static_cast<PrintPreviewUI*>( | 177 PrintPreviewUI* preview_ui = static_cast<PrintPreviewUI*>( |
184 preview_tab->web_contents()->GetWebUI()->GetController()); | 178 preview_tab->web_contents()->GetWebUI()->GetController()); |
185 ASSERT_TRUE(preview_ui != NULL); | 179 ASSERT_TRUE(preview_ui != NULL); |
186 | 180 |
187 // Test with invalid |preview_ui_addr|. | 181 // Test with invalid |preview_ui_addr|. |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
221 TEST_F(PrintPreviewUIUnitTest, InitiatorTabGetsFocusOnPrintPreviewTabClose) { | 215 TEST_F(PrintPreviewUIUnitTest, InitiatorTabGetsFocusOnPrintPreviewTabClose) { |
222 EXPECT_EQ(1, browser()->tab_count()); | 216 EXPECT_EQ(1, browser()->tab_count()); |
223 WebContents* initiator_contents = | 217 WebContents* initiator_contents = |
224 WebContentsTester::CreateTestWebContentsCountFocus(profile(), NULL); | 218 WebContentsTester::CreateTestWebContentsCountFocus(profile(), NULL); |
225 WebContentsTester* initiator_tester = | 219 WebContentsTester* initiator_tester = |
226 WebContentsTester::For(initiator_contents); | 220 WebContentsTester::For(initiator_contents); |
227 browser()->AddWebContents(initiator_contents, | 221 browser()->AddWebContents(initiator_contents, |
228 NEW_FOREGROUND_TAB, | 222 NEW_FOREGROUND_TAB, |
229 gfx::Rect(), | 223 gfx::Rect(), |
230 false); | 224 false); |
231 TabContentsWrapper* initiator_tab = | 225 TabContents* initiator_tab = |
232 TabContentsWrapper::GetCurrentWrapperForContents(initiator_contents); | 226 TabContents::GetCurrentWrapperForContents(initiator_contents); |
233 ASSERT_TRUE(initiator_tab); | 227 ASSERT_TRUE(initiator_tab); |
234 EXPECT_EQ(2, browser()->tab_count()); | 228 EXPECT_EQ(2, browser()->tab_count()); |
235 EXPECT_EQ(0, initiator_tester->GetNumberOfFocusCalls()); | 229 EXPECT_EQ(0, initiator_tester->GetNumberOfFocusCalls()); |
236 | 230 |
237 printing::PrintPreviewTabController* controller = | 231 printing::PrintPreviewTabController* controller = |
238 printing::PrintPreviewTabController::GetInstance(); | 232 printing::PrintPreviewTabController::GetInstance(); |
239 ASSERT_TRUE(controller); | 233 ASSERT_TRUE(controller); |
240 | 234 |
241 initiator_tab->print_view_manager()->PrintPreviewNow(); | 235 initiator_tab->print_view_manager()->PrintPreviewNow(); |
242 TabContentsWrapper* preview_tab = | 236 TabContents* preview_tab = controller->GetOrCreatePreviewTab(initiator_tab); |
243 controller->GetOrCreatePreviewTab(initiator_tab); | |
244 | 237 |
245 EXPECT_NE(initiator_tab, preview_tab); | 238 EXPECT_NE(initiator_tab, preview_tab); |
246 EXPECT_EQ(2, browser()->tab_count()); | 239 EXPECT_EQ(2, browser()->tab_count()); |
247 EXPECT_EQ(1U, GetConstrainedWindowCount(initiator_tab)); | 240 EXPECT_EQ(1U, GetConstrainedWindowCount(initiator_tab)); |
248 EXPECT_EQ(0, initiator_tester->GetNumberOfFocusCalls()); | 241 EXPECT_EQ(0, initiator_tester->GetNumberOfFocusCalls()); |
249 | 242 |
250 PrintPreviewUI* preview_ui = static_cast<PrintPreviewUI*>( | 243 PrintPreviewUI* preview_ui = static_cast<PrintPreviewUI*>( |
251 preview_tab->web_contents()->GetWebUI()->GetController()); | 244 preview_tab->web_contents()->GetWebUI()->GetController()); |
252 ASSERT_TRUE(preview_ui != NULL); | 245 ASSERT_TRUE(preview_ui != NULL); |
253 | 246 |
254 preview_ui->OnPrintPreviewTabClosed(); | 247 preview_ui->OnPrintPreviewTabClosed(); |
255 | 248 |
256 EXPECT_EQ(2, browser()->tab_count()); | 249 EXPECT_EQ(2, browser()->tab_count()); |
257 EXPECT_EQ(0U, GetConstrainedWindowCount(initiator_tab)); | 250 EXPECT_EQ(0U, GetConstrainedWindowCount(initiator_tab)); |
258 EXPECT_EQ(1, initiator_tester->GetNumberOfFocusCalls()); | 251 EXPECT_EQ(1, initiator_tester->GetNumberOfFocusCalls()); |
259 } | 252 } |
OLD | NEW |