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 "base/basictypes.h" | 5 #include "base/basictypes.h" |
6 #include "base/command_line.h" | 6 #include "base/command_line.h" |
7 #include "base/file_path.h" | 7 #include "base/file_path.h" |
8 #include "base/test/test_timeouts.h" | 8 #include "base/test/test_timeouts.h" |
9 #include "base/utf_string_conversions.h" | 9 #include "base/utf_string_conversions.h" |
10 #include "chrome/app/chrome_command_ids.h" | 10 #include "chrome/app/chrome_command_ids.h" |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
57 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); | 57 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); |
58 } | 58 } |
59 int tab_count = browser->tab_count(); | 59 int tab_count = browser->tab_count(); |
60 EXPECT_EQ(starting_tab_count + how_many, tab_count); | 60 EXPECT_EQ(starting_tab_count + how_many, tab_count); |
61 return tab_count; | 61 return tab_count; |
62 } | 62 } |
63 | 63 |
64 void CloseTab(int index) { | 64 void CloseTab(int index) { |
65 content::WebContents* new_tab = browser()->GetWebContentsAt(index); | 65 content::WebContents* new_tab = browser()->GetWebContentsAt(index); |
66 ui_test_utils::WindowedNotificationObserver tab_close_observer( | 66 ui_test_utils::WindowedNotificationObserver tab_close_observer( |
67 content::NOTIFICATION_TAB_CLOSED, | 67 content::NOTIFICATION_WEB_CONTENTS_DESTROYED, |
68 content::NotificationService::AllSources()); | 68 content::NotificationService::AllSources()); |
69 browser()->CloseTabContents(new_tab); | 69 browser()->CloseTabContents(new_tab); |
70 tab_close_observer.Wait(); | 70 tab_close_observer.Wait(); |
71 } | 71 } |
72 | 72 |
73 // Uses the undo-close-tab accelerator to undo a close-tab or close-window | 73 // Uses the undo-close-tab accelerator to undo a close-tab or close-window |
74 // operation. The newly restored tab is expected to appear in the | 74 // operation. The newly restored tab is expected to appear in the |
75 // window at index |expected_window_index|, at the |expected_tabstrip_index|, | 75 // window at index |expected_window_index|, at the |expected_tabstrip_index|, |
76 // and to be active. If |expected_window_index| is equal to the number of | 76 // and to be active. If |expected_window_index| is equal to the number of |
77 // current windows, the restored tab is expected to be created in a new | 77 // current windows, the restored tab is expected to be created in a new |
78 // window (since the index is 0-based). | 78 // window (since the index is 0-based). |
79 void RestoreTab(int expected_window_index, | 79 void RestoreTab(int expected_window_index, |
80 int expected_tabstrip_index) { | 80 int expected_tabstrip_index) { |
81 int window_count = static_cast<int>(BrowserList::size()); | 81 int window_count = static_cast<int>(BrowserList::size()); |
82 ASSERT_GT(window_count, 0); | 82 ASSERT_GT(window_count, 0); |
83 | 83 |
84 bool expect_new_window = (expected_window_index == window_count); | 84 bool expect_new_window = (expected_window_index == window_count); |
85 | 85 |
86 Browser* browser; | 86 Browser* browser; |
87 if (expect_new_window) { | 87 if (expect_new_window) { |
88 browser = *(BrowserList::begin()); | 88 browser = *(BrowserList::begin()); |
89 } else { | 89 } else { |
90 browser = GetBrowser(expected_window_index); | 90 browser = GetBrowser(expected_window_index); |
91 } | 91 } |
92 int tab_count = browser->tab_count(); | 92 int tab_count = browser->tab_count(); |
93 ASSERT_GT(tab_count, 0); | 93 ASSERT_GT(tab_count, 0); |
94 | 94 |
95 // Restore the tab. | 95 // Restore the tab. |
96 ui_test_utils::WindowedNotificationObserver tab_added_observer( | 96 ui_test_utils::WindowedNotificationObserver tab_added_observer( |
97 content::NOTIFICATION_TAB_PARENTED, | 97 chrome::NOTIFICATION_TAB_PARENTED, |
98 content::NotificationService::AllSources()); | 98 content::NotificationService::AllSources()); |
99 ui_test_utils::WindowedNotificationObserver tab_loaded_observer( | 99 ui_test_utils::WindowedNotificationObserver tab_loaded_observer( |
100 content::NOTIFICATION_LOAD_STOP, | 100 content::NOTIFICATION_LOAD_STOP, |
101 content::NotificationService::AllSources()); | 101 content::NotificationService::AllSources()); |
102 browser->RestoreTab(); | 102 browser->RestoreTab(); |
103 tab_added_observer.Wait(); | 103 tab_added_observer.Wait(); |
104 tab_loaded_observer.Wait(); | 104 tab_loaded_observer.Wait(); |
105 | 105 |
106 if (expect_new_window) { | 106 if (expect_new_window) { |
107 int new_window_count = static_cast<int>(BrowserList::size()); | 107 int new_window_count = static_cast<int>(BrowserList::size()); |
(...skipping 425 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
533 TabContentsWrapper* tab = browser()->GetTabContentsWrapperAt(1); | 533 TabContentsWrapper* tab = browser()->GetTabContentsWrapperAt(1); |
534 EnsureTabFinishedRestoring(tab->web_contents()); | 534 EnsureTabFinishedRestoring(tab->web_contents()); |
535 ASSERT_EQ(http_url, tab->web_contents()->GetURL()); | 535 ASSERT_EQ(http_url, tab->web_contents()->GetURL()); |
536 | 536 |
537 // Go back, and see if content is as expected. | 537 // Go back, and see if content is as expected. |
538 GoBack(browser()); | 538 GoBack(browser()); |
539 EXPECT_GT( | 539 EXPECT_GT( |
540 ui_test_utils::FindInPage(tab, ASCIIToUTF16("webkit"), true, false, NULL), | 540 ui_test_utils::FindInPage(tab, ASCIIToUTF16("webkit"), true, false, NULL), |
541 0); | 541 0); |
542 } | 542 } |
OLD | NEW |