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_wrapper.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/browser/tab_contents/test_tab_contents.h" | |
16 #include "content/public/browser/site_instance.h" | 15 #include "content/public/browser/site_instance.h" |
17 #include "content/public/browser/web_contents.h" | 16 #include "content/public/browser/web_contents.h" |
| 17 #include "content/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; |
| 21 using content::WebContentsTester; |
| 22 |
20 namespace { | 23 namespace { |
21 | 24 |
22 const unsigned char blob1[] = | 25 const unsigned char blob1[] = |
23 "12346102356120394751634516591348710478123649165419234519234512349134"; | 26 "12346102356120394751634516591348710478123649165419234519234512349134"; |
24 | 27 |
25 size_t GetConstrainedWindowCount(TabContentsWrapper* tab) { | 28 size_t GetConstrainedWindowCount(TabContentsWrapper* tab) { |
26 return tab->constrained_window_tab_helper()->constrained_window_count(); | 29 return tab->constrained_window_tab_helper()->constrained_window_count(); |
27 } | 30 } |
28 | 31 |
29 class FocusTestTabContents : public TestTabContents { | |
30 public: | |
31 FocusTestTabContents(content::BrowserContext* browser_context, | |
32 content::SiteInstance* instance) | |
33 : TestTabContents(browser_context, instance), focus_called_(0) { | |
34 } | |
35 | |
36 int focus_called() const { return focus_called_; } | |
37 | |
38 virtual void Focus() OVERRIDE { | |
39 focus_called_++; | |
40 } | |
41 | |
42 private: | |
43 int focus_called_; | |
44 }; | |
45 | |
46 } // namespace | 32 } // namespace |
47 | 33 |
48 class PrintPreviewUIUnitTest : public PrintPreviewUnitTestBase { | 34 class PrintPreviewUIUnitTest : public PrintPreviewUnitTestBase { |
49 public: | 35 public: |
50 PrintPreviewUIUnitTest() {} | 36 PrintPreviewUIUnitTest() {} |
51 virtual ~PrintPreviewUIUnitTest() {} | 37 virtual ~PrintPreviewUIUnitTest() {} |
52 | 38 |
53 protected: | 39 protected: |
54 virtual void SetUp() OVERRIDE { | 40 virtual void SetUp() OVERRIDE { |
55 PrintPreviewUnitTestBase::SetUp(); | 41 PrintPreviewUnitTestBase::SetUp(); |
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
225 EXPECT_TRUE(cancel); | 211 EXPECT_TRUE(cancel); |
226 | 212 |
227 cancel = true; | 213 cancel = true; |
228 preview_ui->GetCurrentPrintPreviewStatus(preview_ui_addr, kSecondRequestId, | 214 preview_ui->GetCurrentPrintPreviewStatus(preview_ui_addr, kSecondRequestId, |
229 &cancel); | 215 &cancel); |
230 EXPECT_FALSE(cancel); | 216 EXPECT_FALSE(cancel); |
231 } | 217 } |
232 | 218 |
233 TEST_F(PrintPreviewUIUnitTest, InitiatorTabGetsFocusOnPrintPreviewTabClose) { | 219 TEST_F(PrintPreviewUIUnitTest, InitiatorTabGetsFocusOnPrintPreviewTabClose) { |
234 EXPECT_EQ(1, browser()->tab_count()); | 220 EXPECT_EQ(1, browser()->tab_count()); |
235 FocusTestTabContents* initiator_contents = | 221 WebContents* initiator_contents = |
236 new FocusTestTabContents(profile(), NULL); | 222 WebContentsTester::CreateTestWebContentsCountFocus(profile(), NULL); |
| 223 WebContentsTester* initiator_tester = |
| 224 WebContentsTester::For(initiator_contents); |
237 browser()->AddWebContents(initiator_contents, | 225 browser()->AddWebContents(initiator_contents, |
238 NEW_FOREGROUND_TAB, | 226 NEW_FOREGROUND_TAB, |
239 gfx::Rect(), | 227 gfx::Rect(), |
240 false); | 228 false); |
241 TabContentsWrapper* initiator_tab = | 229 TabContentsWrapper* initiator_tab = |
242 TabContentsWrapper::GetCurrentWrapperForContents(initiator_contents); | 230 TabContentsWrapper::GetCurrentWrapperForContents(initiator_contents); |
243 ASSERT_TRUE(initiator_tab); | 231 ASSERT_TRUE(initiator_tab); |
244 EXPECT_EQ(2, browser()->tab_count()); | 232 EXPECT_EQ(2, browser()->tab_count()); |
245 EXPECT_EQ(0, initiator_contents->focus_called()); | 233 EXPECT_EQ(0, initiator_tester->GetNumberOfFocusCalls()); |
246 | 234 |
247 printing::PrintPreviewTabController* controller = | 235 printing::PrintPreviewTabController* controller = |
248 printing::PrintPreviewTabController::GetInstance(); | 236 printing::PrintPreviewTabController::GetInstance(); |
249 ASSERT_TRUE(controller); | 237 ASSERT_TRUE(controller); |
250 | 238 |
251 initiator_tab->print_view_manager()->PrintPreviewNow(); | 239 initiator_tab->print_view_manager()->PrintPreviewNow(); |
252 TabContentsWrapper* preview_tab = | 240 TabContentsWrapper* preview_tab = |
253 controller->GetOrCreatePreviewTab(initiator_tab); | 241 controller->GetOrCreatePreviewTab(initiator_tab); |
254 | 242 |
255 EXPECT_NE(initiator_tab, preview_tab); | 243 EXPECT_NE(initiator_tab, preview_tab); |
256 EXPECT_EQ(2, browser()->tab_count()); | 244 EXPECT_EQ(2, browser()->tab_count()); |
257 EXPECT_EQ(1U, GetConstrainedWindowCount(initiator_tab)); | 245 EXPECT_EQ(1U, GetConstrainedWindowCount(initiator_tab)); |
258 EXPECT_EQ(0, initiator_contents->focus_called()); | 246 EXPECT_EQ(0, initiator_tester->GetNumberOfFocusCalls()); |
259 | 247 |
260 PrintPreviewUI* preview_ui = static_cast<PrintPreviewUI*>( | 248 PrintPreviewUI* preview_ui = static_cast<PrintPreviewUI*>( |
261 preview_tab->web_contents()->GetWebUI()->GetController()); | 249 preview_tab->web_contents()->GetWebUI()->GetController()); |
262 ASSERT_TRUE(preview_ui != NULL); | 250 ASSERT_TRUE(preview_ui != NULL); |
263 | 251 |
264 preview_ui->OnPrintPreviewTabClosed(); | 252 preview_ui->OnPrintPreviewTabClosed(); |
265 | 253 |
266 EXPECT_EQ(2, browser()->tab_count()); | 254 EXPECT_EQ(2, browser()->tab_count()); |
267 EXPECT_EQ(0U, GetConstrainedWindowCount(initiator_tab)); | 255 EXPECT_EQ(0U, GetConstrainedWindowCount(initiator_tab)); |
268 EXPECT_EQ(1, initiator_contents->focus_called()); | 256 EXPECT_EQ(1, initiator_tester->GetNumberOfFocusCalls()); |
269 } | 257 } |
OLD | NEW |