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/app/chrome_command_ids.h" | 5 #include "chrome/app/chrome_command_ids.h" |
6 #include "chrome/browser/bookmarks/bookmark_model.h" | 6 #include "chrome/browser/bookmarks/bookmark_model.h" |
7 #include "chrome/browser/ui/browser_list.h" | 7 #include "chrome/browser/ui/browser_list.h" |
8 #include "chrome/common/url_constants.h" | 8 #include "chrome/common/url_constants.h" |
9 #include "chrome/test/base/browser_with_test_window_test.h" | 9 #include "chrome/test/base/browser_with_test_window_test.h" |
10 #include "chrome/test/base/testing_profile.h" | 10 #include "chrome/test/base/testing_profile.h" |
11 #include "content/browser/tab_contents/tab_contents.h" | |
12 #include "content/public/browser/navigation_controller.h" | 11 #include "content/public/browser/navigation_controller.h" |
13 #include "content/public/browser/navigation_entry.h" | 12 #include "content/public/browser/navigation_entry.h" |
| 13 #include "content/public/browser/web_contents.h" |
14 #include "content/test/test_browser_thread.h" | 14 #include "content/test/test_browser_thread.h" |
15 | 15 |
16 typedef BrowserWithTestWindowTest BrowserCommandsTest; | 16 typedef BrowserWithTestWindowTest BrowserCommandsTest; |
17 | 17 |
18 using content::OpenURLParams; | 18 using content::OpenURLParams; |
19 using content::Referrer; | 19 using content::Referrer; |
| 20 using content::WebContents; |
20 | 21 |
21 // Tests IDC_SELECT_TAB_0, IDC_SELECT_NEXT_TAB, IDC_SELECT_PREVIOUS_TAB and | 22 // Tests IDC_SELECT_TAB_0, IDC_SELECT_NEXT_TAB, IDC_SELECT_PREVIOUS_TAB and |
22 // IDC_SELECT_LAST_TAB. | 23 // IDC_SELECT_LAST_TAB. |
23 TEST_F(BrowserCommandsTest, TabNavigationAccelerators) { | 24 TEST_F(BrowserCommandsTest, TabNavigationAccelerators) { |
24 GURL about_blank(chrome::kAboutBlankURL); | 25 GURL about_blank(chrome::kAboutBlankURL); |
25 | 26 |
26 // Create three tabs. | 27 // Create three tabs. |
27 AddTab(browser(), about_blank); | 28 AddTab(browser(), about_blank); |
28 AddTab(browser(), about_blank); | 29 AddTab(browser(), about_blank); |
29 AddTab(browser(), about_blank); | 30 AddTab(browser(), about_blank); |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
66 | 67 |
67 // The duplicated tab should not end up in a new window. | 68 // The duplicated tab should not end up in a new window. |
68 size_t window_count = BrowserList::size(); | 69 size_t window_count = BrowserList::size(); |
69 ASSERT_EQ(initial_window_count, window_count); | 70 ASSERT_EQ(initial_window_count, window_count); |
70 | 71 |
71 // And we should have a newly duplicated tab. | 72 // And we should have a newly duplicated tab. |
72 ASSERT_EQ(2, browser()->tab_count()); | 73 ASSERT_EQ(2, browser()->tab_count()); |
73 | 74 |
74 // Verify the stack of urls. | 75 // Verify the stack of urls. |
75 content::NavigationController& controller = | 76 content::NavigationController& controller = |
76 browser()->GetTabContentsAt(1)->GetController(); | 77 browser()->GetWebContentsAt(1)->GetController(); |
77 ASSERT_EQ(3, controller.GetEntryCount()); | 78 ASSERT_EQ(3, controller.GetEntryCount()); |
78 ASSERT_EQ(2, controller.GetCurrentEntryIndex()); | 79 ASSERT_EQ(2, controller.GetCurrentEntryIndex()); |
79 ASSERT_TRUE(url1 == controller.GetEntryAtIndex(0)->GetURL()); | 80 ASSERT_TRUE(url1 == controller.GetEntryAtIndex(0)->GetURL()); |
80 ASSERT_TRUE(url2 == controller.GetEntryAtIndex(1)->GetURL()); | 81 ASSERT_TRUE(url2 == controller.GetEntryAtIndex(1)->GetURL()); |
81 ASSERT_TRUE(url3 == controller.GetEntryAtIndex(2)->GetURL()); | 82 ASSERT_TRUE(url3 == controller.GetEntryAtIndex(2)->GetURL()); |
82 } | 83 } |
83 | 84 |
84 TEST_F(BrowserCommandsTest, BookmarkCurrentPage) { | 85 TEST_F(BrowserCommandsTest, BookmarkCurrentPage) { |
85 // We use profile() here, since it's a TestingProfile. | 86 // We use profile() here, since it's a TestingProfile. |
86 profile()->CreateBookmarkModel(true); | 87 profile()->CreateBookmarkModel(true); |
(...skipping 26 matching lines...) Expand all Loading... |
113 // Make a tab with the two pages navigated in it. | 114 // Make a tab with the two pages navigated in it. |
114 AddTab(browser(), url1); | 115 AddTab(browser(), url1); |
115 NavigateAndCommitActiveTab(url2); | 116 NavigateAndCommitActiveTab(url2); |
116 | 117 |
117 // Go back in a new background tab. | 118 // Go back in a new background tab. |
118 browser()->GoBack(NEW_BACKGROUND_TAB); | 119 browser()->GoBack(NEW_BACKGROUND_TAB); |
119 EXPECT_EQ(0, browser()->active_index()); | 120 EXPECT_EQ(0, browser()->active_index()); |
120 ASSERT_EQ(2, browser()->tab_count()); | 121 ASSERT_EQ(2, browser()->tab_count()); |
121 | 122 |
122 // The original tab should be unchanged. | 123 // The original tab should be unchanged. |
123 TabContents* zeroth = browser()->GetTabContentsAt(0); | 124 WebContents* zeroth = browser()->GetWebContentsAt(0); |
124 EXPECT_EQ(url2, zeroth->GetURL()); | 125 EXPECT_EQ(url2, zeroth->GetURL()); |
125 EXPECT_TRUE(zeroth->GetController().CanGoBack()); | 126 EXPECT_TRUE(zeroth->GetController().CanGoBack()); |
126 EXPECT_FALSE(zeroth->GetController().CanGoForward()); | 127 EXPECT_FALSE(zeroth->GetController().CanGoForward()); |
127 | 128 |
128 // The new tab should be like the first one but navigated back. | 129 // The new tab should be like the first one but navigated back. |
129 TabContents* first = browser()->GetTabContentsAt(1); | 130 WebContents* first = browser()->GetWebContentsAt(1); |
130 EXPECT_EQ(url1, browser()->GetTabContentsAt(1)->GetURL()); | 131 EXPECT_EQ(url1, browser()->GetWebContentsAt(1)->GetURL()); |
131 EXPECT_FALSE(first->GetController().CanGoBack()); | 132 EXPECT_FALSE(first->GetController().CanGoBack()); |
132 EXPECT_TRUE(first->GetController().CanGoForward()); | 133 EXPECT_TRUE(first->GetController().CanGoForward()); |
133 | 134 |
134 // Select the second tab and make it go forward in a new background tab. | 135 // Select the second tab and make it go forward in a new background tab. |
135 browser()->ActivateTabAt(1, true); | 136 browser()->ActivateTabAt(1, true); |
136 // TODO(brettw) bug 11055: It should not be necessary to commit the load here, | 137 // TODO(brettw) bug 11055: It should not be necessary to commit the load here, |
137 // but because of this bug, it will assert later if we don't. When the bug is | 138 // but because of this bug, it will assert later if we don't. When the bug is |
138 // fixed, one of the three commits here related to this bug should be removed | 139 // fixed, one of the three commits here related to this bug should be removed |
139 // (to test both codepaths). | 140 // (to test both codepaths). |
140 CommitPendingLoad(&first->GetController()); | 141 CommitPendingLoad(&first->GetController()); |
141 EXPECT_EQ(1, browser()->active_index()); | 142 EXPECT_EQ(1, browser()->active_index()); |
142 browser()->GoForward(NEW_BACKGROUND_TAB); | 143 browser()->GoForward(NEW_BACKGROUND_TAB); |
143 | 144 |
144 // The previous tab should be unchanged and still in the foreground. | 145 // The previous tab should be unchanged and still in the foreground. |
145 EXPECT_EQ(url1, first->GetURL()); | 146 EXPECT_EQ(url1, first->GetURL()); |
146 EXPECT_FALSE(first->GetController().CanGoBack()); | 147 EXPECT_FALSE(first->GetController().CanGoBack()); |
147 EXPECT_TRUE(first->GetController().CanGoForward()); | 148 EXPECT_TRUE(first->GetController().CanGoForward()); |
148 EXPECT_EQ(1, browser()->active_index()); | 149 EXPECT_EQ(1, browser()->active_index()); |
149 | 150 |
150 // There should be a new tab navigated forward. | 151 // There should be a new tab navigated forward. |
151 ASSERT_EQ(3, browser()->tab_count()); | 152 ASSERT_EQ(3, browser()->tab_count()); |
152 TabContents* second = browser()->GetTabContentsAt(2); | 153 WebContents* second = browser()->GetWebContentsAt(2); |
153 EXPECT_EQ(url2, second->GetURL()); | 154 EXPECT_EQ(url2, second->GetURL()); |
154 EXPECT_TRUE(second->GetController().CanGoBack()); | 155 EXPECT_TRUE(second->GetController().CanGoBack()); |
155 EXPECT_FALSE(second->GetController().CanGoForward()); | 156 EXPECT_FALSE(second->GetController().CanGoForward()); |
156 | 157 |
157 // Now do back in a new foreground tab. Don't bother re-checking every sngle | 158 // Now do back in a new foreground tab. Don't bother re-checking every sngle |
158 // thing above, just validate that it's opening properly. | 159 // thing above, just validate that it's opening properly. |
159 browser()->ActivateTabAt(2, true); | 160 browser()->ActivateTabAt(2, true); |
160 // TODO(brettw) bug 11055: see the comment above about why we need this. | 161 // TODO(brettw) bug 11055: see the comment above about why we need this. |
161 CommitPendingLoad(&second->GetController()); | 162 CommitPendingLoad(&second->GetController()); |
162 browser()->GoBack(NEW_FOREGROUND_TAB); | 163 browser()->GoBack(NEW_FOREGROUND_TAB); |
(...skipping 27 matching lines...) Expand all Loading... |
190 | 191 |
191 // Pressing it a second time while the NTP is open shouldn't change anything. | 192 // Pressing it a second time while the NTP is open shouldn't change anything. |
192 browser()->Search(); | 193 browser()->Search(); |
193 ASSERT_EQ(2, browser()->tab_count()); | 194 ASSERT_EQ(2, browser()->tab_count()); |
194 ASSERT_EQ(1, browser()->active_index()); | 195 ASSERT_EQ(1, browser()->active_index()); |
195 current_url = browser()->GetSelectedWebContents()->GetURL(); | 196 current_url = browser()->GetSelectedWebContents()->GetURL(); |
196 EXPECT_TRUE(current_url.SchemeIs(chrome::kChromeUIScheme)); | 197 EXPECT_TRUE(current_url.SchemeIs(chrome::kChromeUIScheme)); |
197 EXPECT_EQ(chrome::kChromeUINewTabHost, current_url.host()); | 198 EXPECT_EQ(chrome::kChromeUINewTabHost, current_url.host()); |
198 } | 199 } |
199 #endif | 200 #endif |
OLD | NEW |