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 "chrome/browser/printing/print_preview_tab_controller.h" | 5 #include "chrome/browser/printing/print_preview_tab_controller.h" |
6 #include "chrome/browser/printing/print_preview_unit_test_base.h" | 6 #include "chrome/browser/printing/print_preview_unit_test_base.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_list.h" | 8 #include "chrome/browser/ui/browser_list.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/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 // Test crashes on Aura due to initiator tab's native view having no parent. | 17 // Test crashes on Aura due to initiator tab's native view having no parent. |
18 // http://crbug.com/104284 | 18 // http://crbug.com/104284 |
19 #if defined(USE_AURA) | 19 #if defined(USE_AURA) |
(...skipping 14 matching lines...) Expand all Loading... |
34 | 34 |
35 // Create/Get a preview tab for initiator tab. | 35 // Create/Get a preview tab for initiator tab. |
36 TEST_F(PrintPreviewTabControllerUnitTest, MAYBE_GetOrCreatePreviewTab) { | 36 TEST_F(PrintPreviewTabControllerUnitTest, MAYBE_GetOrCreatePreviewTab) { |
37 // Lets start with one window with one tab. | 37 // Lets start with one window with one tab. |
38 EXPECT_EQ(1u, BrowserList::size()); | 38 EXPECT_EQ(1u, BrowserList::size()); |
39 EXPECT_EQ(0, browser()->tab_count()); | 39 EXPECT_EQ(0, browser()->tab_count()); |
40 browser()->NewTab(); | 40 browser()->NewTab(); |
41 EXPECT_EQ(1, browser()->tab_count()); | 41 EXPECT_EQ(1, browser()->tab_count()); |
42 | 42 |
43 // Create a reference to initiator tab contents. | 43 // Create a reference to initiator tab contents. |
44 TabContentsWrapper* initiator_tab = | 44 TabContents* initiator_tab = browser()->GetActiveTabContents(); |
45 browser()->GetSelectedTabContentsWrapper(); | |
46 | 45 |
47 printing::PrintPreviewTabController* tab_controller = | 46 printing::PrintPreviewTabController* tab_controller = |
48 printing::PrintPreviewTabController::GetInstance(); | 47 printing::PrintPreviewTabController::GetInstance(); |
49 ASSERT_TRUE(tab_controller); | 48 ASSERT_TRUE(tab_controller); |
50 | 49 |
51 // Get the preview tab for initiator tab. | 50 // Get the preview tab for initiator tab. |
52 initiator_tab->print_view_manager()->PrintPreviewNow(); | 51 initiator_tab->print_view_manager()->PrintPreviewNow(); |
53 TabContentsWrapper* preview_tab = | 52 TabContents* preview_tab = |
54 tab_controller->GetOrCreatePreviewTab(initiator_tab); | 53 tab_controller->GetOrCreatePreviewTab(initiator_tab); |
55 | 54 |
56 // New print preview tab is created. | 55 // New print preview tab is created. |
57 EXPECT_EQ(1, browser()->tab_count()); | 56 EXPECT_EQ(1, browser()->tab_count()); |
58 EXPECT_NE(initiator_tab, preview_tab); | 57 EXPECT_NE(initiator_tab, preview_tab); |
59 | 58 |
60 // Get the print preview tab for initiator tab. | 59 // Get the print preview tab for initiator tab. |
61 TabContentsWrapper* new_preview_tab = | 60 TabContents* new_preview_tab = |
62 tab_controller->GetOrCreatePreviewTab(initiator_tab); | 61 tab_controller->GetOrCreatePreviewTab(initiator_tab); |
63 | 62 |
64 // Preview tab already exists. Tab count remains the same. | 63 // Preview tab already exists. Tab count remains the same. |
65 EXPECT_EQ(1, browser()->tab_count()); | 64 EXPECT_EQ(1, browser()->tab_count()); |
66 | 65 |
67 // 1:1 relationship between initiator and preview tab. | 66 // 1:1 relationship between initiator and preview tab. |
68 EXPECT_EQ(new_preview_tab, preview_tab); | 67 EXPECT_EQ(new_preview_tab, preview_tab); |
69 } | 68 } |
70 | 69 |
71 // To show multiple print preview tabs exist in the same browser for | 70 // To show multiple print preview tabs exist in the same browser for |
72 // different initiator tabs. If preview tab already exists for an initiator, it | 71 // different initiator tabs. If preview tab already exists for an initiator, it |
73 // gets focused. | 72 // gets focused. |
74 TEST_F(PrintPreviewTabControllerUnitTest, MAYBE_MultiplePreviewTabs) { | 73 TEST_F(PrintPreviewTabControllerUnitTest, MAYBE_MultiplePreviewTabs) { |
75 // Lets start with one window and two tabs. | 74 // Lets start with one window and two tabs. |
76 EXPECT_EQ(1u, BrowserList::size()); | 75 EXPECT_EQ(1u, BrowserList::size()); |
77 EXPECT_EQ(0, browser()->tab_count()); | 76 EXPECT_EQ(0, browser()->tab_count()); |
78 | 77 |
79 browser()->NewTab(); | 78 browser()->NewTab(); |
80 TabContentsWrapper* tab_contents_1 = | 79 TabContents* tab_contents_1 = browser()->GetActiveTabContents(); |
81 browser()->GetSelectedTabContentsWrapper(); | |
82 ASSERT_TRUE(tab_contents_1); | 80 ASSERT_TRUE(tab_contents_1); |
83 | 81 |
84 browser()->NewTab(); | 82 browser()->NewTab(); |
85 TabContentsWrapper* tab_contents_2 = | 83 TabContents* tab_contents_2 = browser()->GetActiveTabContents(); |
86 browser()->GetSelectedTabContentsWrapper(); | |
87 ASSERT_TRUE(tab_contents_2); | 84 ASSERT_TRUE(tab_contents_2); |
88 EXPECT_EQ(2, browser()->tab_count()); | 85 EXPECT_EQ(2, browser()->tab_count()); |
89 | 86 |
90 printing::PrintPreviewTabController* tab_controller = | 87 printing::PrintPreviewTabController* tab_controller = |
91 printing::PrintPreviewTabController::GetInstance(); | 88 printing::PrintPreviewTabController::GetInstance(); |
92 ASSERT_TRUE(tab_controller); | 89 ASSERT_TRUE(tab_controller); |
93 | 90 |
94 // Create preview tab for |tab_contents_1| | 91 // Create preview tab for |tab_contents_1| |
95 tab_contents_1->print_view_manager()->PrintPreviewNow(); | 92 tab_contents_1->print_view_manager()->PrintPreviewNow(); |
96 TabContentsWrapper* preview_tab_1 = | 93 TabContents* preview_tab_1 = |
97 tab_controller->GetOrCreatePreviewTab(tab_contents_1); | 94 tab_controller->GetOrCreatePreviewTab(tab_contents_1); |
98 | 95 |
99 EXPECT_NE(tab_contents_1, preview_tab_1); | 96 EXPECT_NE(tab_contents_1, preview_tab_1); |
100 EXPECT_EQ(2, browser()->tab_count()); | 97 EXPECT_EQ(2, browser()->tab_count()); |
101 | 98 |
102 // Create preview tab for |tab_contents_2| | 99 // Create preview tab for |tab_contents_2| |
103 tab_contents_2->print_view_manager()->PrintPreviewNow(); | 100 tab_contents_2->print_view_manager()->PrintPreviewNow(); |
104 TabContentsWrapper* preview_tab_2 = | 101 TabContents* preview_tab_2 = |
105 tab_controller->GetOrCreatePreviewTab(tab_contents_2); | 102 tab_controller->GetOrCreatePreviewTab(tab_contents_2); |
106 | 103 |
107 EXPECT_NE(tab_contents_2, preview_tab_2); | 104 EXPECT_NE(tab_contents_2, preview_tab_2); |
108 // 2 initiator tab and 2 preview tabs exist in the same browser. | 105 // 2 initiator tab and 2 preview tabs exist in the same browser. |
109 // The preview tabs are constrained in their respective initiator tabs. | 106 // The preview tabs are constrained in their respective initiator tabs. |
110 EXPECT_EQ(2, browser()->tab_count()); | 107 EXPECT_EQ(2, browser()->tab_count()); |
111 | 108 |
112 TabStripModel* model = browser()->tab_strip_model(); | 109 TabStripModel* model = browser()->tab_strip_model(); |
113 ASSERT_TRUE(model); | 110 ASSERT_TRUE(model); |
114 | 111 |
(...skipping 14 matching lines...) Expand all Loading... |
129 | 126 |
130 // Clear the initiator tab details associated with preview tab. | 127 // Clear the initiator tab details associated with preview tab. |
131 TEST_F(PrintPreviewTabControllerUnitTest, MAYBE_ClearInitiatorTabDetails) { | 128 TEST_F(PrintPreviewTabControllerUnitTest, MAYBE_ClearInitiatorTabDetails) { |
132 // Lets start with one window with one tab. | 129 // Lets start with one window with one tab. |
133 EXPECT_EQ(1u, BrowserList::size()); | 130 EXPECT_EQ(1u, BrowserList::size()); |
134 EXPECT_EQ(0, browser()->tab_count()); | 131 EXPECT_EQ(0, browser()->tab_count()); |
135 browser()->NewTab(); | 132 browser()->NewTab(); |
136 EXPECT_EQ(1, browser()->tab_count()); | 133 EXPECT_EQ(1, browser()->tab_count()); |
137 | 134 |
138 // Create a reference to initiator tab contents. | 135 // Create a reference to initiator tab contents. |
139 TabContentsWrapper* initiator_tab = | 136 TabContents* initiator_tab = browser()->GetActiveTabContents(); |
140 browser()->GetSelectedTabContentsWrapper(); | |
141 | 137 |
142 printing::PrintPreviewTabController* tab_controller = | 138 printing::PrintPreviewTabController* tab_controller = |
143 printing::PrintPreviewTabController::GetInstance(); | 139 printing::PrintPreviewTabController::GetInstance(); |
144 ASSERT_TRUE(tab_controller); | 140 ASSERT_TRUE(tab_controller); |
145 | 141 |
146 // Get the preview tab for initiator tab. | 142 // Get the preview tab for initiator tab. |
147 initiator_tab->print_view_manager()->PrintPreviewNow(); | 143 initiator_tab->print_view_manager()->PrintPreviewNow(); |
148 TabContentsWrapper* preview_tab = | 144 TabContents* preview_tab = |
149 tab_controller->GetOrCreatePreviewTab(initiator_tab); | 145 tab_controller->GetOrCreatePreviewTab(initiator_tab); |
150 | 146 |
151 // New print preview tab is created. Current focus is on preview tab. | 147 // New print preview tab is created. Current focus is on preview tab. |
152 EXPECT_EQ(1, browser()->tab_count()); | 148 EXPECT_EQ(1, browser()->tab_count()); |
153 EXPECT_NE(initiator_tab, preview_tab); | 149 EXPECT_NE(initiator_tab, preview_tab); |
154 | 150 |
155 // Clear the initiator tab details associated with the preview tab. | 151 // Clear the initiator tab details associated with the preview tab. |
156 tab_controller->EraseInitiatorTabInfo(preview_tab); | 152 tab_controller->EraseInitiatorTabInfo(preview_tab); |
157 | 153 |
158 // Get the print preview tab for initiator tab. | 154 // Get the print preview tab for initiator tab. |
159 TabContentsWrapper* new_preview_tab = | 155 TabContents* new_preview_tab = |
160 tab_controller->GetOrCreatePreviewTab(initiator_tab); | 156 tab_controller->GetOrCreatePreviewTab(initiator_tab); |
161 | 157 |
162 // New preview tab is created. | 158 // New preview tab is created. |
163 EXPECT_EQ(1, browser()->tab_count()); | 159 EXPECT_EQ(1, browser()->tab_count()); |
164 EXPECT_NE(new_preview_tab, preview_tab); | 160 EXPECT_NE(new_preview_tab, preview_tab); |
165 } | 161 } |
OLD | NEW |