OLD | NEW |
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/ui/browser.h" | 6 #include "chrome/browser/ui/browser.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/common/url_constants.h" | 9 #include "chrome/common/url_constants.h" |
9 #include "chrome/test/base/in_process_browser_test.h" | 10 #include "chrome/test/base/in_process_browser_test.h" |
10 #include "chrome/test/base/ui_test_utils.h" | 11 #include "chrome/test/base/ui_test_utils.h" |
11 #include "content/browser/tab_contents/tab_contents.h" | 12 #include "content/browser/tab_contents/tab_contents.h" |
12 #include "googleurl/src/gurl.h" | 13 #include "googleurl/src/gurl.h" |
13 | 14 |
14 namespace { | 15 namespace { |
15 | 16 |
16 typedef InProcessBrowserTest PrintPreviewTabControllerBrowserTest; | 17 typedef InProcessBrowserTest PrintPreviewTabControllerBrowserTest; |
17 | 18 |
18 // Test to verify that when a preview tab navigates, we can create a new print | 19 // Test to verify that when a preview tab navigates, we can create a new print |
19 // preview tab for both initiator tab and new preview tab contents. | 20 // preview tab for both initiator tab and new preview tab contents. |
20 IN_PROC_BROWSER_TEST_F(PrintPreviewTabControllerBrowserTest, | 21 IN_PROC_BROWSER_TEST_F(PrintPreviewTabControllerBrowserTest, |
21 NavigateFromPrintPreviewTab) { | 22 NavigateFromPrintPreviewTab) { |
22 ASSERT_TRUE(browser()); | 23 ASSERT_TRUE(browser()); |
23 BrowserList::SetLastActive(browser()); | 24 BrowserList::SetLastActive(browser()); |
24 ASSERT_TRUE(BrowserList::GetLastActive()); | 25 ASSERT_TRUE(BrowserList::GetLastActive()); |
25 | 26 |
26 // Lets start with one window with one tab. | 27 // Lets start with one window with one tab. |
27 EXPECT_EQ(1u, BrowserList::size()); | 28 EXPECT_EQ(1u, BrowserList::size()); |
28 EXPECT_EQ(1, browser()->tab_count()); | 29 EXPECT_EQ(1, browser()->tab_count()); |
29 | 30 |
30 // Create a reference to initiator tab contents. | 31 // Create a reference to initiator tab contents. |
31 TabContents* initiator_tab = browser()->GetSelectedTabContents(); | 32 TabContentsWrapper* initiator_tab = |
| 33 browser()->GetSelectedTabContentsWrapper(); |
32 ASSERT_TRUE(initiator_tab); | 34 ASSERT_TRUE(initiator_tab); |
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 GURL url(chrome::kAboutBlankURL); | 48 GURL url(chrome::kAboutBlankURL); |
47 ui_test_utils::NavigateToURL(browser(), url); | 49 ui_test_utils::NavigateToURL(browser(), url); |
48 EXPECT_EQ(url, preview_tab->GetURL()); | 50 EXPECT_EQ(url, preview_tab->tab_contents()->GetURL()); |
49 | 51 |
50 // Get the print preview tab for initiator tab. | 52 // Get the print preview tab for initiator tab. |
51 TabContents* new_preview_tab = | 53 TabContentsWrapper* new_preview_tab = |
52 tab_controller->GetOrCreatePreviewTab(initiator_tab); | 54 tab_controller->GetOrCreatePreviewTab(initiator_tab); |
53 | 55 |
54 // New preview tab is created. | 56 // New preview tab is created. |
55 EXPECT_EQ(3, browser()->tab_count()); | 57 EXPECT_EQ(3, browser()->tab_count()); |
56 EXPECT_NE(new_preview_tab, preview_tab); | 58 EXPECT_NE(new_preview_tab, preview_tab); |
57 | 59 |
58 // Get the print preview tab for old preview tab. | 60 // Get the print preview tab for old preview tab. |
59 TabContents* newest_preview_tab = | 61 TabContentsWrapper* newest_preview_tab = |
60 tab_controller->GetOrCreatePreviewTab(preview_tab); | 62 tab_controller->GetOrCreatePreviewTab(preview_tab); |
61 | 63 |
62 // Newest preview tab is created and the previously created preview tab is not | 64 // Newest preview tab is created and the previously created preview tab is not |
63 // merely activated. | 65 // merely activated. |
64 EXPECT_EQ(4, browser()->tab_count()); | 66 EXPECT_EQ(4, browser()->tab_count()); |
65 EXPECT_NE(newest_preview_tab, new_preview_tab); | 67 EXPECT_NE(newest_preview_tab, new_preview_tab); |
66 } | 68 } |
67 | 69 |
68 // Test to verify that when a initiator tab navigates, we can create a new | 70 // Test to verify that when a initiator tab navigates, we can create a new |
69 // preview tab for the new tab contents. But we cannot create a preview tab for | 71 // preview tab for the new tab contents. But we cannot create a preview tab for |
70 // the old preview tab. | 72 // the old preview tab. |
71 IN_PROC_BROWSER_TEST_F(PrintPreviewTabControllerBrowserTest, | 73 IN_PROC_BROWSER_TEST_F(PrintPreviewTabControllerBrowserTest, |
72 NavigateFromInitiatorTab) { | 74 NavigateFromInitiatorTab) { |
73 ASSERT_TRUE(browser()); | 75 ASSERT_TRUE(browser()); |
74 BrowserList::SetLastActive(browser()); | 76 BrowserList::SetLastActive(browser()); |
75 ASSERT_TRUE(BrowserList::GetLastActive()); | 77 ASSERT_TRUE(BrowserList::GetLastActive()); |
76 | 78 |
77 // Lets start with one window with one tab. | 79 // Lets start with one window with one tab. |
78 EXPECT_EQ(1u, BrowserList::size()); | 80 EXPECT_EQ(1u, BrowserList::size()); |
79 EXPECT_EQ(1, browser()->tab_count()); | 81 EXPECT_EQ(1, browser()->tab_count()); |
80 | 82 |
81 // Create a reference to initiator tab contents. | 83 // Create a reference to initiator tab contents. |
82 TabContents* initiator_tab = browser()->GetSelectedTabContents(); | 84 TabContentsWrapper* initiator_tab = |
| 85 browser()->GetSelectedTabContentsWrapper(); |
83 ASSERT_TRUE(initiator_tab); | 86 ASSERT_TRUE(initiator_tab); |
84 | 87 |
85 scoped_refptr<printing::PrintPreviewTabController> | 88 scoped_refptr<printing::PrintPreviewTabController> |
86 tab_controller(new printing::PrintPreviewTabController()); | 89 tab_controller(new printing::PrintPreviewTabController()); |
87 ASSERT_TRUE(tab_controller); | 90 ASSERT_TRUE(tab_controller); |
88 | 91 |
89 // Get the preview tab for initiator tab. | 92 // Get the preview tab for initiator tab. |
90 TabContents* preview_tab = | 93 TabContentsWrapper* preview_tab = |
91 tab_controller->GetOrCreatePreviewTab(initiator_tab); | 94 tab_controller->GetOrCreatePreviewTab(initiator_tab); |
92 | 95 |
93 // New print preview tab is created. Current focus is on preview tab. | 96 // New print preview tab is created. Current focus is on preview tab. |
94 EXPECT_EQ(2, browser()->tab_count()); | 97 EXPECT_EQ(2, browser()->tab_count()); |
95 EXPECT_NE(initiator_tab, preview_tab); | 98 EXPECT_NE(initiator_tab, preview_tab); |
96 | 99 |
97 // Activate initiator tab. | 100 // Activate initiator tab. |
98 browser()->ActivateTabAt(0, true); | 101 browser()->ActivateTabAt(0, true); |
99 GURL url(chrome::kChromeUINewTabURL); | 102 GURL url(chrome::kChromeUINewTabURL); |
100 ui_test_utils::NavigateToURL(browser(), url); | 103 ui_test_utils::NavigateToURL(browser(), url); |
101 | 104 |
102 // Get the print preview tab for initiator tab. | 105 // Get the print preview tab for initiator tab. |
103 TabContents* new_preview_tab = | 106 TabContentsWrapper* new_preview_tab = |
104 tab_controller->GetOrCreatePreviewTab(initiator_tab); | 107 tab_controller->GetOrCreatePreviewTab(initiator_tab); |
105 | 108 |
106 // New preview tab is created. | 109 // New preview tab is created. |
107 EXPECT_EQ(3, browser()->tab_count()); | 110 EXPECT_EQ(3, browser()->tab_count()); |
108 EXPECT_NE(new_preview_tab, preview_tab); | 111 EXPECT_NE(new_preview_tab, preview_tab); |
109 | 112 |
110 // Get the print preview tab for old preview tab. | 113 // Get the print preview tab for old preview tab. |
111 TabContents* newest_preview_tab = | 114 TabContentsWrapper* newest_preview_tab = |
112 tab_controller->GetOrCreatePreviewTab(preview_tab); | 115 tab_controller->GetOrCreatePreviewTab(preview_tab); |
113 | 116 |
114 // Make sure preview tab is not created for |preview_tab|. | 117 // Make sure preview tab is not created for |preview_tab|. |
115 EXPECT_EQ(3, browser()->tab_count()); | 118 EXPECT_EQ(3, browser()->tab_count()); |
116 EXPECT_EQ(newest_preview_tab, preview_tab); | 119 EXPECT_EQ(newest_preview_tab, preview_tab); |
117 } | 120 } |
118 | 121 |
119 // Test to verify that even after reloading initiator tab and preview tab, | 122 // Test to verify that even after reloading initiator tab and preview tab, |
120 // their association exists. | 123 // their association exists. |
121 IN_PROC_BROWSER_TEST_F(PrintPreviewTabControllerBrowserTest, | 124 IN_PROC_BROWSER_TEST_F(PrintPreviewTabControllerBrowserTest, |
122 ReloadInitiatorTabAndPreviewTab) { | 125 ReloadInitiatorTabAndPreviewTab) { |
123 ASSERT_TRUE(browser()); | 126 ASSERT_TRUE(browser()); |
124 BrowserList::SetLastActive(browser()); | 127 BrowserList::SetLastActive(browser()); |
125 ASSERT_TRUE(BrowserList::GetLastActive()); | 128 ASSERT_TRUE(BrowserList::GetLastActive()); |
126 | 129 |
127 // Lets start with one window with one tab. | 130 // Lets start with one window with one tab. |
128 EXPECT_EQ(1u, BrowserList::size()); | 131 EXPECT_EQ(1u, BrowserList::size()); |
129 EXPECT_EQ(1, browser()->tab_count()); | 132 EXPECT_EQ(1, browser()->tab_count()); |
130 | 133 |
131 // Create a reference to initiator tab contents. | 134 // Create a reference to initiator tab contents. |
132 TabContents* initiator_tab = browser()->GetSelectedTabContents(); | 135 TabContentsWrapper* initiator_tab = |
| 136 browser()->GetSelectedTabContentsWrapper(); |
133 ASSERT_TRUE(initiator_tab); | 137 ASSERT_TRUE(initiator_tab); |
134 | 138 |
135 scoped_refptr<printing::PrintPreviewTabController> | 139 scoped_refptr<printing::PrintPreviewTabController> |
136 tab_controller(new printing::PrintPreviewTabController()); | 140 tab_controller(new printing::PrintPreviewTabController()); |
137 ASSERT_TRUE(tab_controller); | 141 ASSERT_TRUE(tab_controller); |
138 | 142 |
139 // Get the preview tab for initiator tab. | 143 // Get the preview tab for initiator tab. |
140 TabContents* preview_tab = | 144 TabContentsWrapper* preview_tab = |
141 tab_controller->GetOrCreatePreviewTab(initiator_tab); | 145 tab_controller->GetOrCreatePreviewTab(initiator_tab); |
142 | 146 |
143 // 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. |
144 EXPECT_EQ(2, browser()->tab_count()); | 148 EXPECT_EQ(2, browser()->tab_count()); |
145 EXPECT_NE(initiator_tab, preview_tab); | 149 EXPECT_NE(initiator_tab, preview_tab); |
146 | 150 |
147 // Activate initiator tab and reload. | 151 // Activate initiator tab and reload. |
148 browser()->ActivateTabAt(0, true); | 152 browser()->ActivateTabAt(0, true); |
149 browser()->Reload(CURRENT_TAB); | 153 browser()->Reload(CURRENT_TAB); |
150 | 154 |
151 // Get the print preview tab for initiator tab. | 155 // Get the print preview tab for initiator tab. |
152 TabContents* new_preview_tab = | 156 TabContentsWrapper* new_preview_tab = |
153 tab_controller->GetOrCreatePreviewTab(initiator_tab); | 157 tab_controller->GetOrCreatePreviewTab(initiator_tab); |
154 | 158 |
155 // Old preview tab is activated. | 159 // Old preview tab is activated. |
156 EXPECT_EQ(2, browser()->tab_count()); | 160 EXPECT_EQ(2, browser()->tab_count()); |
157 EXPECT_EQ(new_preview_tab, preview_tab); | 161 EXPECT_EQ(new_preview_tab, preview_tab); |
158 | 162 |
159 // Reload preview tab. | 163 // Reload preview tab. |
160 browser()->Reload(CURRENT_TAB); | 164 browser()->Reload(CURRENT_TAB); |
161 // Get the print preview tab for old preview tab. | 165 // Get the print preview tab for old preview tab. |
162 TabContents* newest_preview_tab = | 166 TabContentsWrapper* newest_preview_tab = |
163 tab_controller->GetOrCreatePreviewTab(preview_tab); | 167 tab_controller->GetOrCreatePreviewTab(preview_tab); |
164 | 168 |
165 // Make sure new preview tab is not created for |preview_tab|. | 169 // Make sure new preview tab is not created for |preview_tab|. |
166 EXPECT_EQ(2, browser()->tab_count()); | 170 EXPECT_EQ(2, browser()->tab_count()); |
167 EXPECT_EQ(newest_preview_tab, preview_tab); | 171 EXPECT_EQ(newest_preview_tab, preview_tab); |
168 } | 172 } |
169 | 173 |
170 } // namespace | 174 } // namespace |
OLD | NEW |