| 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/test/base/ui_test_utils.h" | 5 #include "chrome/test/base/ui_test_utils.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <memory> | 9 #include <memory> |
| 10 | 10 |
| (...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 159 | 159 |
| 160 std::string post_data("test=body"); | 160 std::string post_data("test=body"); |
| 161 params.post_data = content::ResourceRequestBody::CreateFromBytes( | 161 params.post_data = content::ResourceRequestBody::CreateFromBytes( |
| 162 post_data.data(), post_data.size()); | 162 post_data.data(), post_data.size()); |
| 163 params.uses_post = true; | 163 params.uses_post = true; |
| 164 | 164 |
| 165 NavigateToURL(¶ms); | 165 NavigateToURL(¶ms); |
| 166 } | 166 } |
| 167 | 167 |
| 168 void NavigateToURL(Browser* browser, const GURL& url) { | 168 void NavigateToURL(Browser* browser, const GURL& url) { |
| 169 NavigateToURLWithDisposition(browser, url, CURRENT_TAB, | 169 NavigateToURLWithDisposition(browser, url, WindowOpenDisposition::CURRENT_TAB, |
| 170 BROWSER_TEST_WAIT_FOR_NAVIGATION); | 170 BROWSER_TEST_WAIT_FOR_NAVIGATION); |
| 171 } | 171 } |
| 172 | 172 |
| 173 void NavigateToURLWithDispositionBlockUntilNavigationsComplete( | 173 void NavigateToURLWithDispositionBlockUntilNavigationsComplete( |
| 174 Browser* browser, | 174 Browser* browser, |
| 175 const GURL& url, | 175 const GURL& url, |
| 176 int number_of_navigations, | 176 int number_of_navigations, |
| 177 WindowOpenDisposition disposition, | 177 WindowOpenDisposition disposition, |
| 178 int browser_test_flags) { | 178 int browser_test_flags) { |
| 179 TabStripModel* tab_strip = browser->tab_strip_model(); | 179 TabStripModel* tab_strip = browser->tab_strip_model(); |
| 180 if (disposition == CURRENT_TAB && tab_strip->GetActiveWebContents()) | 180 if (disposition == WindowOpenDisposition::CURRENT_TAB && |
| 181 content::WaitForLoadStop(tab_strip->GetActiveWebContents()); | 181 tab_strip->GetActiveWebContents()) |
| 182 content::WaitForLoadStop(tab_strip->GetActiveWebContents()); |
| 182 content::TestNavigationObserver same_tab_observer( | 183 content::TestNavigationObserver same_tab_observer( |
| 183 tab_strip->GetActiveWebContents(), | 184 tab_strip->GetActiveWebContents(), |
| 184 number_of_navigations); | 185 number_of_navigations); |
| 185 | 186 |
| 186 std::set<Browser*> initial_browsers; | 187 std::set<Browser*> initial_browsers; |
| 187 for (auto* browser : *BrowserList::GetInstance()) | 188 for (auto* browser : *BrowserList::GetInstance()) |
| 188 initial_browsers.insert(browser); | 189 initial_browsers.insert(browser); |
| 189 | 190 |
| 190 content::WindowedNotificationObserver tab_added_observer( | 191 content::WindowedNotificationObserver tab_added_observer( |
| 191 chrome::NOTIFICATION_TAB_ADDED, | 192 chrome::NOTIFICATION_TAB_ADDED, |
| 192 content::NotificationService::AllSources()); | 193 content::NotificationService::AllSources()); |
| 193 | 194 |
| 194 browser->OpenURL(OpenURLParams( | 195 browser->OpenURL(OpenURLParams( |
| 195 url, Referrer(), disposition, ui::PAGE_TRANSITION_TYPED, false)); | 196 url, Referrer(), disposition, ui::PAGE_TRANSITION_TYPED, false)); |
| 196 if (browser_test_flags & BROWSER_TEST_WAIT_FOR_BROWSER) | 197 if (browser_test_flags & BROWSER_TEST_WAIT_FOR_BROWSER) |
| 197 browser = WaitForBrowserNotInSet(initial_browsers); | 198 browser = WaitForBrowserNotInSet(initial_browsers); |
| 198 if (browser_test_flags & BROWSER_TEST_WAIT_FOR_TAB) | 199 if (browser_test_flags & BROWSER_TEST_WAIT_FOR_TAB) |
| 199 tab_added_observer.Wait(); | 200 tab_added_observer.Wait(); |
| 200 if (!(browser_test_flags & BROWSER_TEST_WAIT_FOR_NAVIGATION)) { | 201 if (!(browser_test_flags & BROWSER_TEST_WAIT_FOR_NAVIGATION)) { |
| 201 // Some other flag caused the wait prior to this. | 202 // Some other flag caused the wait prior to this. |
| 202 return; | 203 return; |
| 203 } | 204 } |
| 204 WebContents* web_contents = NULL; | 205 WebContents* web_contents = NULL; |
| 205 if (disposition == NEW_BACKGROUND_TAB) { | 206 if (disposition == WindowOpenDisposition::NEW_BACKGROUND_TAB) { |
| 206 // We've opened up a new tab, but not selected it. | 207 // We've opened up a new tab, but not selected it. |
| 207 TabStripModel* tab_strip = browser->tab_strip_model(); | 208 TabStripModel* tab_strip = browser->tab_strip_model(); |
| 208 web_contents = tab_strip->GetWebContentsAt(tab_strip->active_index() + 1); | 209 web_contents = tab_strip->GetWebContentsAt(tab_strip->active_index() + 1); |
| 209 EXPECT_TRUE(web_contents != NULL) | 210 EXPECT_TRUE(web_contents != NULL) |
| 210 << " Unable to wait for navigation to \"" << url.spec() | 211 << " Unable to wait for navigation to \"" << url.spec() |
| 211 << "\" because the new tab is not available yet"; | 212 << "\" because the new tab is not available yet"; |
| 212 if (!web_contents) | 213 if (!web_contents) |
| 213 return; | 214 return; |
| 214 } else if ((disposition == CURRENT_TAB) || | 215 } else if ((disposition == WindowOpenDisposition::CURRENT_TAB) || |
| 215 (disposition == NEW_FOREGROUND_TAB) || | 216 (disposition == WindowOpenDisposition::NEW_FOREGROUND_TAB) || |
| 216 (disposition == SINGLETON_TAB)) { | 217 (disposition == WindowOpenDisposition::SINGLETON_TAB)) { |
| 217 // The currently selected tab is the right one. | 218 // The currently selected tab is the right one. |
| 218 web_contents = browser->tab_strip_model()->GetActiveWebContents(); | 219 web_contents = browser->tab_strip_model()->GetActiveWebContents(); |
| 219 } | 220 } |
| 220 if (disposition == CURRENT_TAB) { | 221 if (disposition == WindowOpenDisposition::CURRENT_TAB) { |
| 221 same_tab_observer.Wait(); | 222 same_tab_observer.Wait(); |
| 222 return; | 223 return; |
| 223 } else if (web_contents) { | 224 } else if (web_contents) { |
| 224 content::TestNavigationObserver observer(web_contents, | 225 content::TestNavigationObserver observer(web_contents, |
| 225 number_of_navigations); | 226 number_of_navigations); |
| 226 observer.Wait(); | 227 observer.Wait(); |
| 227 return; | 228 return; |
| 228 } | 229 } |
| 229 EXPECT_TRUE(NULL != web_contents) << " Unable to wait for navigation to \"" | 230 EXPECT_TRUE(NULL != web_contents) << " Unable to wait for navigation to \"" |
| 230 << url.spec() << "\"" | 231 << url.spec() << "\"" |
| 231 << " because we can't get the tab contents"; | 232 << " because we can't get the tab contents"; |
| 232 } | 233 } |
| 233 | 234 |
| 234 void NavigateToURLWithDisposition(Browser* browser, | 235 void NavigateToURLWithDisposition(Browser* browser, |
| 235 const GURL& url, | 236 const GURL& url, |
| 236 WindowOpenDisposition disposition, | 237 WindowOpenDisposition disposition, |
| 237 int browser_test_flags) { | 238 int browser_test_flags) { |
| 238 NavigateToURLWithDispositionBlockUntilNavigationsComplete( | 239 NavigateToURLWithDispositionBlockUntilNavigationsComplete( |
| 239 browser, | 240 browser, |
| 240 url, | 241 url, |
| 241 1, | 242 1, |
| 242 disposition, | 243 disposition, |
| 243 browser_test_flags); | 244 browser_test_flags); |
| 244 } | 245 } |
| 245 | 246 |
| 246 void NavigateToURLBlockUntilNavigationsComplete(Browser* browser, | 247 void NavigateToURLBlockUntilNavigationsComplete(Browser* browser, |
| 247 const GURL& url, | 248 const GURL& url, |
| 248 int number_of_navigations) { | 249 int number_of_navigations) { |
| 249 NavigateToURLWithDispositionBlockUntilNavigationsComplete( | 250 NavigateToURLWithDispositionBlockUntilNavigationsComplete( |
| 250 browser, | 251 browser, url, number_of_navigations, WindowOpenDisposition::CURRENT_TAB, |
| 251 url, | |
| 252 number_of_navigations, | |
| 253 CURRENT_TAB, | |
| 254 BROWSER_TEST_WAIT_FOR_NAVIGATION); | 252 BROWSER_TEST_WAIT_FOR_NAVIGATION); |
| 255 } | 253 } |
| 256 | 254 |
| 257 base::FilePath GetTestFilePath(const base::FilePath& dir, | 255 base::FilePath GetTestFilePath(const base::FilePath& dir, |
| 258 const base::FilePath& file) { | 256 const base::FilePath& file) { |
| 259 base::FilePath path; | 257 base::FilePath path; |
| 260 PathService::Get(chrome::DIR_TEST_DATA, &path); | 258 PathService::Get(chrome::DIR_TEST_DATA, &path); |
| 261 return path.Append(dir).Append(file); | 259 return path.Append(dir).Append(file); |
| 262 } | 260 } |
| 263 | 261 |
| (...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 536 new content::MessageLoopRunner; | 534 new content::MessageLoopRunner; |
| 537 WaitHistoryLoadedObserver observer(runner.get()); | 535 WaitHistoryLoadedObserver observer(runner.get()); |
| 538 ScopedObserver<history::HistoryService, history::HistoryServiceObserver> | 536 ScopedObserver<history::HistoryService, history::HistoryServiceObserver> |
| 539 scoped_observer(&observer); | 537 scoped_observer(&observer); |
| 540 scoped_observer.Add(history_service); | 538 scoped_observer.Add(history_service); |
| 541 runner->Run(); | 539 runner->Run(); |
| 542 } | 540 } |
| 543 } | 541 } |
| 544 | 542 |
| 545 } // namespace ui_test_utils | 543 } // namespace ui_test_utils |
| OLD | NEW |