Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(229)

Side by Side Diff: chrome/browser/sessions/session_restore_uitest.cc

Issue 113722: Make automation proxy objects to ref_counted. That allows to process async no... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/session_history_uitest.cc ('k') | chrome/browser/ssl/ssl_uitest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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/command_line.h" 5 #include "base/command_line.h"
6 #include "base/file_path.h" 6 #include "base/file_path.h"
7 #include "base/scoped_ptr.h" 7 #include "base/scoped_ptr.h"
8 #include "base/string_util.h" 8 #include "base/string_util.h"
9 #include "chrome/app/chrome_dll_resource.h" 9 #include "chrome/app/chrome_dll_resource.h"
10 #include "chrome/common/chrome_paths.h" 10 #include "chrome/common/chrome_paths.h"
(...skipping 22 matching lines...) Expand all
33 UITest::TearDown(); 33 UITest::TearDown();
34 34
35 clear_profile_ = false; 35 clear_profile_ = false;
36 36
37 launch_arguments_.AppendSwitchWithValue(switches::kRestoreLastSession, 37 launch_arguments_.AppendSwitchWithValue(switches::kRestoreLastSession,
38 IntToWString(expected_tab_count)); 38 IntToWString(expected_tab_count));
39 UITest::SetUp(); 39 UITest::SetUp();
40 } 40 }
41 41
42 void CloseWindow(int window_index, int initial_count) { 42 void CloseWindow(int window_index, int initial_count) {
43 scoped_ptr<BrowserProxy> browser_proxy( 43 scoped_refptr<BrowserProxy> browser_proxy(
44 automation()->GetBrowserWindow(window_index)); 44 automation()->GetBrowserWindow(window_index));
45 ASSERT_TRUE(browser_proxy.get()); 45 ASSERT_TRUE(browser_proxy.get());
46 ASSERT_TRUE(browser_proxy->RunCommand(IDC_CLOSE_WINDOW)); 46 ASSERT_TRUE(browser_proxy->RunCommand(IDC_CLOSE_WINDOW));
47 int window_count; 47 int window_count;
48 automation()->GetBrowserWindowCount(&window_count); 48 automation()->GetBrowserWindowCount(&window_count);
49 ASSERT_EQ(initial_count - 1, window_count); 49 ASSERT_EQ(initial_count - 1, window_count);
50 browser_proxy.reset();
51 } 50 }
52 51
53 void AssertOneWindowWithOneTab() { 52 void AssertOneWindowWithOneTab() {
54 int window_count; 53 int window_count;
55 ASSERT_TRUE(automation()->GetBrowserWindowCount(&window_count)); 54 ASSERT_TRUE(automation()->GetBrowserWindowCount(&window_count));
56 ASSERT_EQ(1, window_count); 55 ASSERT_EQ(1, window_count);
57 GURL url; 56 GURL url;
58 AssertWindowHasOneTab(0, &url); 57 AssertWindowHasOneTab(0, &url);
59 } 58 }
60 59
61 void AssertWindowHasOneTab(int window_index, GURL* url) { 60 void AssertWindowHasOneTab(int window_index, GURL* url) {
62 scoped_ptr<BrowserProxy> browser_proxy( 61 scoped_refptr<BrowserProxy> browser_proxy(
63 automation()->GetBrowserWindow(window_index)); 62 automation()->GetBrowserWindow(window_index));
64 ASSERT_TRUE(browser_proxy.get()); 63 ASSERT_TRUE(browser_proxy.get());
65 64
66 int tab_count; 65 int tab_count;
67 ASSERT_TRUE(browser_proxy->GetTabCount(&tab_count)); 66 ASSERT_TRUE(browser_proxy->GetTabCount(&tab_count));
68 ASSERT_EQ(1, tab_count); 67 ASSERT_EQ(1, tab_count);
69 68
70 int active_tab_index; 69 int active_tab_index;
71 ASSERT_TRUE(browser_proxy->GetActiveTabIndex(&active_tab_index)); 70 ASSERT_TRUE(browser_proxy->GetActiveTabIndex(&active_tab_index));
72 ASSERT_EQ(0, active_tab_index); 71 ASSERT_EQ(0, active_tab_index);
73 72
74 scoped_ptr<TabProxy> tab_proxy(browser_proxy->GetActiveTab()); 73 scoped_refptr<TabProxy> tab_proxy(browser_proxy->GetActiveTab());
75 ASSERT_TRUE(tab_proxy->WaitForTabToBeRestored(action_timeout_ms())); 74 ASSERT_TRUE(tab_proxy->WaitForTabToBeRestored(action_timeout_ms()));
76 75
77 ASSERT_TRUE(tab_proxy->GetCurrentURL(url)); 76 ASSERT_TRUE(tab_proxy->GetCurrentURL(url));
78 } 77 }
79 78
80 GURL url1_; 79 GURL url1_;
81 GURL url2_; 80 GURL url2_;
82 GURL url3_; 81 GURL url3_;
83 82
84 private: 83 private:
85 DISALLOW_COPY_AND_ASSIGN(SessionRestoreUITest); 84 DISALLOW_COPY_AND_ASSIGN(SessionRestoreUITest);
86 }; 85 };
87 86
88 } // namespace 87 } // namespace
89 88
90 TEST_F(SessionRestoreUITest, Basic) { 89 TEST_F(SessionRestoreUITest, Basic) {
91 NavigateToURL(url1_); 90 NavigateToURL(url1_);
92 NavigateToURL(url2_); 91 NavigateToURL(url2_);
93 92
94 QuitBrowserAndRestore(1); 93 QuitBrowserAndRestore(1);
95 94
96 // NOTE: Don't use GetActiveWindow here, when run with the screen locked 95 // NOTE: Don't use GetActiveWindow here, when run with the screen locked
97 // active windows returns NULL. 96 // active windows returns NULL.
98 int window_count; 97 int window_count;
99 ASSERT_TRUE(automation()->GetBrowserWindowCount(&window_count) && 98 ASSERT_TRUE(automation()->GetBrowserWindowCount(&window_count) &&
100 window_count == 1); 99 window_count == 1);
101 scoped_ptr<BrowserProxy> browser_proxy(automation()->GetBrowserWindow(0)); 100 scoped_refptr<BrowserProxy> browser_proxy(automation()->GetBrowserWindow(0));
102 scoped_ptr<TabProxy> tab_proxy(browser_proxy->GetTab(0)); 101 scoped_refptr<TabProxy> tab_proxy(browser_proxy->GetTab(0));
103 ASSERT_TRUE(tab_proxy->WaitForTabToBeRestored(action_timeout_ms())); 102 ASSERT_TRUE(tab_proxy->WaitForTabToBeRestored(action_timeout_ms()));
104 103
105 ASSERT_EQ(url2_, GetActiveTabURL()); 104 ASSERT_EQ(url2_, GetActiveTabURL());
106 tab_proxy->GoBack(); 105 tab_proxy->GoBack();
107 ASSERT_EQ(url1_, GetActiveTabURL()); 106 ASSERT_EQ(url1_, GetActiveTabURL());
108 } 107 }
109 108
110 TEST_F(SessionRestoreUITest, RestoresForwardAndBackwardNavs) { 109 TEST_F(SessionRestoreUITest, RestoresForwardAndBackwardNavs) {
111 NavigateToURL(url1_); 110 NavigateToURL(url1_);
112 NavigateToURL(url2_); 111 NavigateToURL(url2_);
113 NavigateToURL(url3_); 112 NavigateToURL(url3_);
114 113
115 scoped_ptr<TabProxy> active_tab(GetActiveTab()); 114 scoped_refptr<TabProxy> active_tab(GetActiveTab());
116 ASSERT_TRUE(active_tab->GoBack()); 115 ASSERT_TRUE(active_tab->GoBack());
117 116
118 QuitBrowserAndRestore(1); 117 QuitBrowserAndRestore(1);
119 118
120 // NOTE: Don't use GetActiveWindow here, when run with the screen locked 119 // NOTE: Don't use GetActiveWindow here, when run with the screen locked
121 // active windows returns NULL. 120 // active windows returns NULL.
122 int window_count; 121 int window_count;
123 ASSERT_TRUE(automation()->GetBrowserWindowCount(&window_count) && 122 ASSERT_TRUE(automation()->GetBrowserWindowCount(&window_count) &&
124 window_count == 1); 123 window_count == 1);
125 scoped_ptr<BrowserProxy> browser_proxy(automation()->GetBrowserWindow(0)); 124 scoped_refptr<BrowserProxy> browser_proxy(automation()->GetBrowserWindow(0));
126 scoped_ptr<TabProxy> tab_proxy(browser_proxy->GetTab(0)); 125 scoped_refptr<TabProxy> tab_proxy(browser_proxy->GetTab(0));
127 ASSERT_TRUE(tab_proxy->WaitForTabToBeRestored(action_timeout_ms())); 126 ASSERT_TRUE(tab_proxy->WaitForTabToBeRestored(action_timeout_ms()));
128 127
129 ASSERT_TRUE(GetActiveTabURL() == url2_); 128 ASSERT_TRUE(GetActiveTabURL() == url2_);
130 ASSERT_TRUE(tab_proxy->GoForward()); 129 ASSERT_TRUE(tab_proxy->GoForward());
131 ASSERT_TRUE(GetActiveTabURL() == url3_); 130 ASSERT_TRUE(GetActiveTabURL() == url3_);
132 ASSERT_TRUE(tab_proxy->GoBack()); 131 ASSERT_TRUE(tab_proxy->GoBack());
133 ASSERT_TRUE(GetActiveTabURL() == url2_); 132 ASSERT_TRUE(GetActiveTabURL() == url2_);
134 ASSERT_TRUE(tab_proxy->GoBack()); 133 ASSERT_TRUE(tab_proxy->GoBack());
135 ASSERT_TRUE(GetActiveTabURL() == url1_); 134 ASSERT_TRUE(GetActiveTabURL() == url1_);
136 } 135 }
137 136
138 // Tests that the SiteInstances used for entries in a restored tab's history 137 // Tests that the SiteInstances used for entries in a restored tab's history
139 // are given appropriate max page IDs, so that going back to a restored 138 // are given appropriate max page IDs, so that going back to a restored
140 // cross-site page and then forward again works. (Bug 1204135) 139 // cross-site page and then forward again works. (Bug 1204135)
141 TEST_F(SessionRestoreUITest, RestoresCrossSiteForwardAndBackwardNavs) { 140 TEST_F(SessionRestoreUITest, RestoresCrossSiteForwardAndBackwardNavs) {
142 const wchar_t kDocRoot[] = L"chrome/test/data"; 141 const wchar_t kDocRoot[] = L"chrome/test/data";
143 scoped_refptr<HTTPTestServer> server = 142 scoped_refptr<HTTPTestServer> server =
144 HTTPTestServer::CreateServer(kDocRoot, NULL); 143 HTTPTestServer::CreateServer(kDocRoot, NULL);
145 ASSERT_TRUE(NULL != server.get()); 144 ASSERT_TRUE(NULL != server.get());
146 GURL cross_site_url(server->TestServerPageW(L"files/title2.html")); 145 GURL cross_site_url(server->TestServerPageW(L"files/title2.html"));
147 146
148 // Visit URLs on different sites. 147 // Visit URLs on different sites.
149 NavigateToURL(url1_); 148 NavigateToURL(url1_);
150 NavigateToURL(cross_site_url); 149 NavigateToURL(cross_site_url);
151 NavigateToURL(url2_); 150 NavigateToURL(url2_);
152 151
153 scoped_ptr<TabProxy> active_tab(GetActiveTab()); 152 scoped_refptr<TabProxy> active_tab(GetActiveTab());
154 ASSERT_TRUE(active_tab->GoBack()); 153 ASSERT_TRUE(active_tab->GoBack());
155 154
156 QuitBrowserAndRestore(1); 155 QuitBrowserAndRestore(1);
157 156
158 // NOTE: Don't use GetActiveWindow here, when run with the screen locked 157 // NOTE: Don't use GetActiveWindow here, when run with the screen locked
159 // active windows returns NULL. 158 // active windows returns NULL.
160 int window_count; 159 int window_count;
161 ASSERT_TRUE(automation()->GetBrowserWindowCount(&window_count) && 160 ASSERT_TRUE(automation()->GetBrowserWindowCount(&window_count) &&
162 window_count == 1); 161 window_count == 1);
163 scoped_ptr<BrowserProxy> browser_proxy(automation()->GetBrowserWindow(0)); 162 scoped_refptr<BrowserProxy> browser_proxy(automation()->GetBrowserWindow(0));
164 int tab_count; 163 int tab_count;
165 ASSERT_TRUE(browser_proxy->GetTabCount(&tab_count) && tab_count == 1); 164 ASSERT_TRUE(browser_proxy->GetTabCount(&tab_count) && tab_count == 1);
166 scoped_ptr<TabProxy> tab_proxy(browser_proxy->GetTab(0)); 165 scoped_refptr<TabProxy> tab_proxy(browser_proxy->GetTab(0));
167 ASSERT_TRUE(tab_proxy->WaitForTabToBeRestored(action_max_timeout_ms())); 166 ASSERT_TRUE(tab_proxy->WaitForTabToBeRestored(action_max_timeout_ms()));
168 167
169 // Check that back and forward work as expected. 168 // Check that back and forward work as expected.
170 GURL url; 169 GURL url;
171 ASSERT_TRUE(tab_proxy->GetCurrentURL(&url)); 170 ASSERT_TRUE(tab_proxy->GetCurrentURL(&url));
172 ASSERT_EQ(cross_site_url, url); 171 ASSERT_EQ(cross_site_url, url);
173 172
174 ASSERT_TRUE(tab_proxy->GoBack()); 173 ASSERT_TRUE(tab_proxy->GoBack());
175 ASSERT_TRUE(tab_proxy->GetCurrentURL(&url)); 174 ASSERT_TRUE(tab_proxy->GetCurrentURL(&url));
176 ASSERT_EQ(url1_, url); 175 ASSERT_EQ(url1_, url);
177 176
178 ASSERT_TRUE(tab_proxy->GoForward()); 177 ASSERT_TRUE(tab_proxy->GoForward());
179 ASSERT_TRUE(tab_proxy->GetCurrentURL(&url)); 178 ASSERT_TRUE(tab_proxy->GetCurrentURL(&url));
180 ASSERT_EQ(cross_site_url, url); 179 ASSERT_EQ(cross_site_url, url);
181 180
182 ASSERT_TRUE(tab_proxy->GoForward()); 181 ASSERT_TRUE(tab_proxy->GoForward());
183 ASSERT_TRUE(tab_proxy->GetCurrentURL(&url)); 182 ASSERT_TRUE(tab_proxy->GetCurrentURL(&url));
184 ASSERT_EQ(url2_, url); 183 ASSERT_EQ(url2_, url);
185 } 184 }
186 185
187 TEST_F(SessionRestoreUITest, TwoTabsSecondSelected) { 186 TEST_F(SessionRestoreUITest, TwoTabsSecondSelected) {
188 NavigateToURL(url1_); 187 NavigateToURL(url1_);
189 188
190 // NOTE: Don't use GetActiveWindow here, when run with the screen locked 189 // NOTE: Don't use GetActiveWindow here, when run with the screen locked
191 // active windows returns NULL. 190 // active windows returns NULL.
192 int window_count; 191 int window_count;
193 ASSERT_TRUE(automation()->GetBrowserWindowCount(&window_count) && 192 ASSERT_TRUE(automation()->GetBrowserWindowCount(&window_count) &&
194 window_count == 1); 193 window_count == 1);
195 scoped_ptr<BrowserProxy> browser_proxy(automation()->GetBrowserWindow(0)); 194 scoped_refptr<BrowserProxy> browser_proxy(automation()->GetBrowserWindow(0));
196 195
197 ASSERT_TRUE(browser_proxy->AppendTab(url2_)); 196 ASSERT_TRUE(browser_proxy->AppendTab(url2_));
198 197
199 QuitBrowserAndRestore(2); 198 QuitBrowserAndRestore(2);
200 browser_proxy.reset(); 199 browser_proxy = NULL;
201 200
202 ASSERT_TRUE(automation()->GetBrowserWindowCount(&window_count) && 201 ASSERT_TRUE(automation()->GetBrowserWindowCount(&window_count) &&
203 window_count == 1); 202 window_count == 1);
204 browser_proxy.reset(automation()->GetBrowserWindow(0)); 203 browser_proxy = automation()->GetBrowserWindow(0);
205 scoped_ptr<TabProxy> tab_proxy(browser_proxy->GetTab(0)); 204 scoped_refptr<TabProxy> tab_proxy(browser_proxy->GetTab(0));
206 205
207 int tab_count; 206 int tab_count;
208 ASSERT_TRUE(browser_proxy->GetTabCount(&tab_count)); 207 ASSERT_TRUE(browser_proxy->GetTabCount(&tab_count));
209 ASSERT_EQ(2, tab_count); 208 ASSERT_EQ(2, tab_count);
210 209
211 int active_tab_index; 210 int active_tab_index;
212 ASSERT_TRUE(browser_proxy->GetActiveTabIndex(&active_tab_index)); 211 ASSERT_TRUE(browser_proxy->GetActiveTabIndex(&active_tab_index));
213 ASSERT_EQ(1, active_tab_index); 212 ASSERT_EQ(1, active_tab_index);
214 213
215 tab_proxy.reset(browser_proxy->GetActiveTab()); 214 tab_proxy = browser_proxy->GetActiveTab();
216 ASSERT_TRUE(tab_proxy->WaitForTabToBeRestored(action_timeout_ms())); 215 ASSERT_TRUE(tab_proxy->WaitForTabToBeRestored(action_timeout_ms()));
217 216
218 ASSERT_TRUE(GetActiveTabURL() == url2_); 217 ASSERT_TRUE(GetActiveTabURL() == url2_);
219 218
220 ASSERT_TRUE(browser_proxy->ActivateTab(0)); 219 ASSERT_TRUE(browser_proxy->ActivateTab(0));
221 tab_proxy.reset(browser_proxy->GetActiveTab()); 220 tab_proxy = browser_proxy->GetActiveTab();
222 ASSERT_TRUE(tab_proxy->WaitForTabToBeRestored(action_timeout_ms())); 221 ASSERT_TRUE(tab_proxy->WaitForTabToBeRestored(action_timeout_ms()));
223 222
224 ASSERT_TRUE(GetActiveTabURL() == url1_); 223 ASSERT_TRUE(GetActiveTabURL() == url1_);
225 } 224 }
226 225
227 // Creates two tabs, closes one, quits and makes sure only one tab is restored. 226 // Creates two tabs, closes one, quits and makes sure only one tab is restored.
228 TEST_F(SessionRestoreUITest, ClosedTabStaysClosed) { 227 TEST_F(SessionRestoreUITest, ClosedTabStaysClosed) {
229 NavigateToURL(url1_); 228 NavigateToURL(url1_);
230 229
231 // NOTE: Don't use GetActiveWindow here, when run with the screen locked 230 // NOTE: Don't use GetActiveWindow here, when run with the screen locked
232 // active windows returns NULL. 231 // active windows returns NULL.
233 int window_count; 232 int window_count;
234 ASSERT_TRUE(automation()->GetBrowserWindowCount(&window_count) && 233 ASSERT_TRUE(automation()->GetBrowserWindowCount(&window_count) &&
235 window_count == 1); 234 window_count == 1);
236 scoped_ptr<BrowserProxy> browser_proxy(automation()->GetBrowserWindow(0)); 235 scoped_refptr<BrowserProxy> browser_proxy(automation()->GetBrowserWindow(0));
237 scoped_ptr<TabProxy> tab_proxy(browser_proxy->GetTab(0)); 236 scoped_refptr<TabProxy> tab_proxy(browser_proxy->GetTab(0));
238 237
239 browser_proxy->AppendTab(url2_); 238 browser_proxy->AppendTab(url2_);
240 239
241 scoped_ptr<TabProxy> active_tab(browser_proxy->GetActiveTab()); 240 scoped_refptr<TabProxy> active_tab(browser_proxy->GetActiveTab());
242 active_tab->Close(true); 241 active_tab->Close(true);
243 242
244 QuitBrowserAndRestore(1); 243 QuitBrowserAndRestore(1);
245 browser_proxy.reset(); 244 browser_proxy = NULL;
246 tab_proxy.reset(); 245 tab_proxy = NULL;
247 246
248 AssertOneWindowWithOneTab(); 247 AssertOneWindowWithOneTab();
249 248
250 ASSERT_TRUE(GetActiveTabURL() == url1_); 249 ASSERT_TRUE(GetActiveTabURL() == url1_);
251 } 250 }
252 251
253 #if defined(OS_WIN) 252 #if defined(OS_WIN)
254 // Creates a browser, goes incognito, closes browser, launches and make sure 253 // Creates a browser, goes incognito, closes browser, launches and make sure
255 // we don't restore. 254 // we don't restore.
256 TEST_F(SessionRestoreUITest, DontRestoreWhileIncognito) { 255 TEST_F(SessionRestoreUITest, DontRestoreWhileIncognito) {
257 NavigateToURL(url1_); 256 NavigateToURL(url1_);
258 257
259 // Make sure we have one window. 258 // Make sure we have one window.
260 int initial_window_count; 259 int initial_window_count;
261 ASSERT_TRUE(automation()->GetBrowserWindowCount(&initial_window_count) && 260 ASSERT_TRUE(automation()->GetBrowserWindowCount(&initial_window_count) &&
262 initial_window_count == 1); 261 initial_window_count == 1);
263 262
264 scoped_ptr<BrowserProxy> browser_proxy(automation()->GetBrowserWindow(0)); 263 scoped_refptr<BrowserProxy> browser_proxy(automation()->GetBrowserWindow(0));
265 264
266 // Create an off the record window. 265 // Create an off the record window.
267 ASSERT_TRUE(browser_proxy->RunCommand(IDC_NEW_INCOGNITO_WINDOW)); 266 ASSERT_TRUE(browser_proxy->RunCommand(IDC_NEW_INCOGNITO_WINDOW));
268 int window_count; 267 int window_count;
269 automation()->GetBrowserWindowCount(&window_count); 268 automation()->GetBrowserWindowCount(&window_count);
270 ASSERT_EQ(2, window_count); 269 ASSERT_EQ(2, window_count);
271 270
272 // Close the first window. 271 // Close the first window.
273 CloseWindow(0, 2); 272 CloseWindow(0, 2);
274 browser_proxy.reset(); 273 browser_proxy = NULL;
275 274
276 // Launch the browser again. Note, this doesn't spawn a new process, instead 275 // Launch the browser again. Note, this doesn't spawn a new process, instead
277 // it attaches to the current process. 276 // it attaches to the current process.
278 include_testing_id_ = false; 277 include_testing_id_ = false;
279 use_existing_browser_ = true; 278 use_existing_browser_ = true;
280 clear_profile_ = false; 279 clear_profile_ = false;
281 launch_arguments_.AppendSwitch(switches::kRestoreLastSession); 280 launch_arguments_.AppendSwitch(switches::kRestoreLastSession);
282 LaunchBrowser(launch_arguments_, false); 281 LaunchBrowser(launch_arguments_, false);
283 282
284 // A new window should appear; 283 // A new window should appear;
285 ASSERT_TRUE(automation()->WaitForWindowCountToBecome(2, action_timeout_ms())); 284 ASSERT_TRUE(automation()->WaitForWindowCountToBecome(2, action_timeout_ms()));
286 285
287 // And it shouldn't have url1_ in it. 286 // And it shouldn't have url1_ in it.
288 browser_proxy.reset(automation()->GetBrowserWindow(1)); 287 browser_proxy = automation()->GetBrowserWindow(1);
289 ASSERT_TRUE(browser_proxy.get()); 288 ASSERT_TRUE(browser_proxy.get());
290 scoped_ptr<TabProxy> tab_proxy(browser_proxy->GetTab(0)); 289 scoped_refptr<TabProxy> tab_proxy(browser_proxy->GetTab(0));
291 ASSERT_TRUE(tab_proxy.get()); 290 ASSERT_TRUE(tab_proxy.get());
292 ASSERT_TRUE(tab_proxy->WaitForTabToBeRestored(action_timeout_ms())); 291 ASSERT_TRUE(tab_proxy->WaitForTabToBeRestored(action_timeout_ms()));
293 GURL url; 292 GURL url;
294 ASSERT_TRUE(tab_proxy->GetCurrentURL(&url)); 293 ASSERT_TRUE(tab_proxy->GetCurrentURL(&url));
295 ASSERT_TRUE(url != url1_); 294 ASSERT_TRUE(url != url1_);
296 } 295 }
297 296
298 // Creates two windows, closes one, restores, make sure only one window open. 297 // Creates two windows, closes one, restores, make sure only one window open.
299 TEST_F(SessionRestoreUITest, TwoWindowsCloseOneRestoreOnlyOne) { 298 TEST_F(SessionRestoreUITest, TwoWindowsCloseOneRestoreOnlyOne) {
300 NavigateToURL(url1_); 299 NavigateToURL(url1_);
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
360 // we should have two new tabs running. (This test will pass in both 359 // we should have two new tabs running. (This test will pass in both
361 // process-per-site and process-per-site-instance, because we treat the new tab 360 // process-per-site and process-per-site-instance, because we treat the new tab
362 // as a special case in process-per-site-instance so that it only ever uses one 361 // as a special case in process-per-site-instance so that it only ever uses one
363 // process.) 362 // process.)
364 TEST_F(SessionRestoreUITest, ShareProcessesOnRestore) { 363 TEST_F(SessionRestoreUITest, ShareProcessesOnRestore) {
365 if (in_process_renderer()) { 364 if (in_process_renderer()) {
366 // No point in running this test in single process mode. 365 // No point in running this test in single process mode.
367 return; 366 return;
368 } 367 }
369 368
370 scoped_ptr<BrowserProxy> browser_proxy(automation()->GetBrowserWindow(0)); 369 scoped_refptr<BrowserProxy> browser_proxy(automation()->GetBrowserWindow(0));
371 ASSERT_TRUE(browser_proxy.get() != NULL); 370 ASSERT_TRUE(browser_proxy.get() != NULL);
372 int tab_count; 371 int tab_count;
373 ASSERT_TRUE(browser_proxy->GetTabCount(&tab_count)); 372 ASSERT_TRUE(browser_proxy->GetTabCount(&tab_count));
374 373
375 // Create two new tabs. 374 // Create two new tabs.
376 ASSERT_TRUE(browser_proxy->RunCommand(IDC_NEW_TAB)); 375 ASSERT_TRUE(browser_proxy->RunCommand(IDC_NEW_TAB));
377 int new_tab_count; 376 int new_tab_count;
378 ASSERT_TRUE(browser_proxy->GetTabCount(&new_tab_count)); 377 ASSERT_TRUE(browser_proxy->GetTabCount(&new_tab_count));
379 ASSERT_EQ(++tab_count, new_tab_count); 378 ASSERT_EQ(++tab_count, new_tab_count);
380 scoped_ptr<TabProxy> last_tab(browser_proxy->GetTab(tab_count - 1)); 379 scoped_refptr<TabProxy> last_tab(browser_proxy->GetTab(tab_count - 1));
381 ASSERT_TRUE(last_tab.get() != NULL); 380 ASSERT_TRUE(last_tab.get() != NULL);
382 // Do a reload to ensure new tab page has loaded. 381 // Do a reload to ensure new tab page has loaded.
383 ASSERT_TRUE(last_tab->Reload()); 382 ASSERT_TRUE(last_tab->Reload());
384 383
385 ASSERT_TRUE(browser_proxy->RunCommand(IDC_NEW_TAB)); 384 ASSERT_TRUE(browser_proxy->RunCommand(IDC_NEW_TAB));
386 ASSERT_TRUE(browser_proxy->GetTabCount(&new_tab_count)); 385 ASSERT_TRUE(browser_proxy->GetTabCount(&new_tab_count));
387 ASSERT_EQ(++tab_count, new_tab_count); 386 ASSERT_EQ(++tab_count, new_tab_count);
388 last_tab.reset(browser_proxy->GetTab(tab_count - 1)); 387 last_tab = browser_proxy->GetTab(tab_count - 1);
389 ASSERT_TRUE(last_tab.get() != NULL); 388 ASSERT_TRUE(last_tab.get() != NULL);
390 // Do a reload to ensure new tab page has loaded. 389 // Do a reload to ensure new tab page has loaded.
391 ASSERT_TRUE(last_tab->Reload()); 390 ASSERT_TRUE(last_tab->Reload());
392 391
393 int expected_process_count = GetBrowserProcessCount(); 392 int expected_process_count = GetBrowserProcessCount();
394 int expected_tab_count = tab_count; 393 int expected_tab_count = tab_count;
395 394
396 // Restart. 395 // Restart.
397 browser_proxy.reset(); 396 browser_proxy = NULL;
398 last_tab.reset(); 397 last_tab = NULL;
399 QuitBrowserAndRestore(3); 398 QuitBrowserAndRestore(3);
400 399
401 // Wait for each tab to finish being restored, then make sure the process 400 // Wait for each tab to finish being restored, then make sure the process
402 // count matches. 401 // count matches.
403 browser_proxy.reset(automation()->GetBrowserWindow(0)); 402 browser_proxy = automation()->GetBrowserWindow(0);
404 ASSERT_TRUE(browser_proxy.get() != NULL); 403 ASSERT_TRUE(browser_proxy.get() != NULL);
405 ASSERT_TRUE(browser_proxy->GetTabCount(&tab_count)); 404 ASSERT_TRUE(browser_proxy->GetTabCount(&tab_count));
406 ASSERT_EQ(expected_tab_count, tab_count); 405 ASSERT_EQ(expected_tab_count, tab_count);
407 406
408 scoped_ptr<TabProxy> tab_proxy(browser_proxy->GetTab(tab_count - 2)); 407 scoped_refptr<TabProxy> tab_proxy(browser_proxy->GetTab(tab_count - 2));
409 ASSERT_TRUE(tab_proxy.get() != NULL); 408 ASSERT_TRUE(tab_proxy.get() != NULL);
410 ASSERT_TRUE(tab_proxy->WaitForTabToBeRestored(action_timeout_ms())); 409 ASSERT_TRUE(tab_proxy->WaitForTabToBeRestored(action_timeout_ms()));
411 tab_proxy.reset(browser_proxy->GetTab(tab_count - 1)); 410 tab_proxy = browser_proxy->GetTab(tab_count - 1);
412 ASSERT_TRUE(tab_proxy.get() != NULL); 411 ASSERT_TRUE(tab_proxy.get() != NULL);
413 ASSERT_TRUE(tab_proxy->WaitForTabToBeRestored(action_timeout_ms())); 412 ASSERT_TRUE(tab_proxy->WaitForTabToBeRestored(action_timeout_ms()));
414 413
415 ASSERT_EQ(expected_process_count, GetBrowserProcessCount()); 414 ASSERT_EQ(expected_process_count, GetBrowserProcessCount());
416 } 415 }
417 #endif 416 #endif
OLDNEW
« no previous file with comments | « chrome/browser/session_history_uitest.cc ('k') | chrome/browser/ssl/ssl_uitest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698