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

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

Issue 1228723002: Extract duplicated code in browser_tests for closing a browser. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: s/WithoutWaiting/Asynchronously Created 5 years, 5 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
OLDNEW
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 <string> 5 #include <string>
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/files/file_path.h" 8 #include "base/files/file_path.h"
9 #include "base/files/file_util.h" 9 #include "base/files/file_util.h"
10 #include "base/lazy_instance.h" 10 #include "base/lazy_instance.h"
11 #include "base/path_service.h" 11 #include "base/path_service.h"
12 #include "base/prefs/pref_service.h" 12 #include "base/prefs/pref_service.h"
13 #include "base/strings/utf_string_conversions.h" 13 #include "base/strings/utf_string_conversions.h"
14 #include "chrome/browser/background/background_mode_manager.h" 14 #include "chrome/browser/background/background_mode_manager.h"
15 #include "chrome/browser/browser_process.h" 15 #include "chrome/browser/browser_process.h"
16 #include "chrome/browser/chrome_notification_types.h"
17 #include "chrome/browser/content_settings/cookie_settings_factory.h" 16 #include "chrome/browser/content_settings/cookie_settings_factory.h"
18 #include "chrome/browser/defaults.h" 17 #include "chrome/browser/defaults.h"
19 #include "chrome/browser/infobars/infobar_service.h" 18 #include "chrome/browser/infobars/infobar_service.h"
20 #include "chrome/browser/lifetime/application_lifetime.h" 19 #include "chrome/browser/lifetime/application_lifetime.h"
21 #include "chrome/browser/prefs/session_startup_pref.h" 20 #include "chrome/browser/prefs/session_startup_pref.h"
22 #include "chrome/browser/profiles/profile.h" 21 #include "chrome/browser/profiles/profile.h"
23 #include "chrome/browser/profiles/profile_impl.h" 22 #include "chrome/browser/profiles/profile_impl.h"
24 #include "chrome/browser/profiles/profile_manager.h" 23 #include "chrome/browser/profiles/profile_manager.h"
25 #include "chrome/browser/sessions/session_restore_test_helper.h" 24 #include "chrome/browser/sessions/session_restore_test_helper.h"
26 #include "chrome/browser/sessions/session_service_factory.h" 25 #include "chrome/browser/sessions/session_service_factory.h"
(...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after
303 EXPECT_EQ(text_present, 302 EXPECT_EQ(text_present,
304 post_interceptor_->DidLastUploadContain("posted-text")); 303 post_interceptor_->DidLastUploadContain("posted-text"));
305 EXPECT_EQ(text_present, 304 EXPECT_EQ(text_present,
306 post_interceptor_->DidLastUploadContain("text-entered")); 305 post_interceptor_->DidLastUploadContain("text-entered"));
307 EXPECT_EQ(password_present, 306 EXPECT_EQ(password_present,
308 post_interceptor_->DidLastUploadContain("posted-password")); 307 post_interceptor_->DidLastUploadContain("posted-password"));
309 EXPECT_EQ(password_present, 308 EXPECT_EQ(password_present,
310 post_interceptor_->DidLastUploadContain("password-entered")); 309 post_interceptor_->DidLastUploadContain("password-entered"));
311 } 310 }
312 311
313 void CloseBrowserSynchronously(Browser* browser, bool close_all_windows) {
314 content::WindowedNotificationObserver observer(
315 chrome::NOTIFICATION_BROWSER_CLOSED,
316 content::NotificationService::AllSources());
317 if (close_all_windows)
318 chrome::CloseAllBrowsers();
319 else
320 browser->window()->Close();
321 #if defined(OS_MACOSX)
322 // BrowserWindowController depends on the auto release pool being recycled
323 // in the message loop to delete itself, which frees the Browser object
324 // which fires this event.
325 AutoreleasePool()->Recycle();
326 #endif
327 observer.Wait();
328 }
329
330 virtual Browser* QuitBrowserAndRestore(Browser* browser, 312 virtual Browser* QuitBrowserAndRestore(Browser* browser,
331 bool close_all_windows) { 313 bool close_all_windows) {
332 Profile* profile = browser->profile(); 314 Profile* profile = browser->profile();
333 315
334 // Close the browser. 316 // Close the browser.
335 chrome::IncrementKeepAliveCount(); 317 chrome::IncrementKeepAliveCount();
336 CloseBrowserSynchronously(browser, close_all_windows); 318 if (close_all_windows)
319 CloseAllBrowsers();
320 else
321 CloseBrowserSynchronously(browser);
337 322
338 SessionServiceTestHelper helper; 323 SessionServiceTestHelper helper;
339 helper.SetService( 324 helper.SetService(
340 SessionServiceFactory::GetForProfileForSessionRestore(profile)); 325 SessionServiceFactory::GetForProfileForSessionRestore(profile));
341 helper.SetForceBrowserNotAliveWithNoWindows(true); 326 helper.SetForceBrowserNotAliveWithNoWindows(true);
342 helper.ReleaseService(); 327 helper.ReleaseService();
343 328
344 // Create a new window, which should trigger session restore. 329 // Create a new window, which should trigger session restore.
345 ui_test_utils::BrowserAddedObserver window_observer; 330 ui_test_utils::BrowserAddedObserver window_observer;
346 chrome::NewEmptyWindow(profile, chrome::HOST_DESKTOP_TYPE_NATIVE); 331 chrome::NewEmptyWindow(profile, chrome::HOST_DESKTOP_TYPE_NATIVE);
(...skipping 447 matching lines...) Expand 10 before | Expand all | Expand 10 after
794 // Tests that session cookies are cleared if the last window to close is a 779 // Tests that session cookies are cleared if the last window to close is a
795 // popup. 780 // popup.
796 IN_PROC_BROWSER_TEST_F(NoSessionRestoreTest, 781 IN_PROC_BROWSER_TEST_F(NoSessionRestoreTest,
797 SessionCookiesBrowserClosePopupLast) { 782 SessionCookiesBrowserClosePopupLast) {
798 StoreDataWithPage("session_cookies.html"); 783 StoreDataWithPage("session_cookies.html");
799 Browser* popup = new Browser(Browser::CreateParams( 784 Browser* popup = new Browser(Browser::CreateParams(
800 Browser::TYPE_POPUP, 785 Browser::TYPE_POPUP,
801 browser()->profile(), 786 browser()->profile(),
802 chrome::HOST_DESKTOP_TYPE_NATIVE)); 787 chrome::HOST_DESKTOP_TYPE_NATIVE));
803 popup->window()->Show(); 788 popup->window()->Show();
804 CloseBrowserSynchronously(browser(), false); 789 CloseBrowserSynchronously(browser());
805 Browser* new_browser = QuitBrowserAndRestore(popup, false); 790 Browser* new_browser = QuitBrowserAndRestore(popup, false);
806 if (browser_defaults::kBrowserAliveWithNoWindows) 791 if (browser_defaults::kBrowserAliveWithNoWindows)
807 NavigateAndCheckStoredData(new_browser, "session_cookies.html"); 792 NavigateAndCheckStoredData(new_browser, "session_cookies.html");
808 else 793 else
809 StoreDataWithPage(new_browser, "session_cookies.html"); 794 StoreDataWithPage(new_browser, "session_cookies.html");
810 } 795 }
811 796
812 IN_PROC_BROWSER_TEST_F(NoSessionRestoreTest, CookiesClearedOnBrowserClose) { 797 IN_PROC_BROWSER_TEST_F(NoSessionRestoreTest, CookiesClearedOnBrowserClose) {
813 StoreDataWithPage("cookies.html"); 798 StoreDataWithPage("cookies.html");
814 799
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
855 CookieSettingsFactory::GetForProfile(new_browser->profile()) 840 CookieSettingsFactory::GetForProfile(new_browser->profile())
856 ->SetDefaultCookieSetting(CONTENT_SETTING_SESSION_ONLY); 841 ->SetDefaultCookieSetting(CONTENT_SETTING_SESSION_ONLY);
857 // ... even if background mode is active. 842 // ... even if background mode is active.
858 EnableBackgroundMode(); 843 EnableBackgroundMode();
859 new_browser = QuitBrowserAndRestore(new_browser, true); 844 new_browser = QuitBrowserAndRestore(new_browser, true);
860 StoreDataWithPage(new_browser, "cookies.html"); 845 StoreDataWithPage(new_browser, "cookies.html");
861 DisableBackgroundMode(); 846 DisableBackgroundMode();
862 new_browser = QuitBrowserAndRestore(new_browser, true); 847 new_browser = QuitBrowserAndRestore(new_browser, true);
863 StoreDataWithPage(new_browser, "cookies.html"); 848 StoreDataWithPage(new_browser, "cookies.html");
864 } 849 }
OLDNEW
« no previous file with comments | « chrome/browser/profiles/profile_manager_browsertest.cc ('k') | chrome/browser/sessions/session_restore_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698