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

Side by Side Diff: content/browser/tab_contents/navigation_controller_unittest.cc

Issue 6901031: Profile shouldn't own Session/TabRestore services. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase again and hope upload works this time Created 9 years, 8 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/test/testing_profile.cc ('k') | no next file » | 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) 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 "base/file_util.h" 5 #include "base/file_util.h"
6 #include "base/memory/scoped_ptr.h" 6 #include "base/memory/scoped_ptr.h"
7 #include "base/path_service.h" 7 #include "base/path_service.h"
8 #include "base/stl_util-inl.h" 8 #include "base/stl_util-inl.h"
9 #include "base/string_util.h" 9 #include "base/string_util.h"
10 #include "base/utf_string_conversions.h" 10 #include "base/utf_string_conversions.h"
11 #include "chrome/browser/history/history.h" 11 #include "chrome/browser/history/history.h"
12 #include "chrome/browser/profiles/profile_manager.h" 12 #include "chrome/browser/profiles/profile_manager.h"
13 #include "chrome/browser/sessions/session_service.h" 13 #include "chrome/browser/sessions/session_service.h"
14 #include "chrome/browser/sessions/session_service_factory.h"
14 #include "chrome/browser/sessions/session_service_test_helper.h" 15 #include "chrome/browser/sessions/session_service_test_helper.h"
15 #include "chrome/browser/sessions/session_types.h" 16 #include "chrome/browser/sessions/session_types.h"
16 #include "chrome/common/render_messages.h" 17 #include "chrome/common/render_messages.h"
17 #include "chrome/test/test_notification_tracker.h" 18 #include "chrome/test/test_notification_tracker.h"
18 #include "chrome/test/testing_profile.h" 19 #include "chrome/test/testing_profile.h"
19 #include "content/browser/renderer_host/test_render_view_host.h" 20 #include "content/browser/renderer_host/test_render_view_host.h"
20 #include "content/browser/site_instance.h" 21 #include "content/browser/site_instance.h"
21 #include "content/browser/tab_contents/navigation_controller.h" 22 #include "content/browser/tab_contents/navigation_controller.h"
22 #include "content/browser/tab_contents/navigation_entry.h" 23 #include "content/browser/tab_contents/navigation_entry.h"
23 #include "content/browser/tab_contents/tab_contents.h" 24 #include "content/browser/tab_contents/tab_contents.h"
(...skipping 30 matching lines...) Expand all
54 // lifetime is managed by profile_manager_. 55 // lifetime is managed by profile_manager_.
55 STLDeleteElements(&windows_); 56 STLDeleteElements(&windows_);
56 } 57 }
57 58
58 // testing::Test overrides. 59 // testing::Test overrides.
59 virtual void SetUp() { 60 virtual void SetUp() {
60 NavigationControllerTest::SetUp(); 61 NavigationControllerTest::SetUp();
61 62
62 // Force the session service to be created. 63 // Force the session service to be created.
63 SessionService* service = new SessionService(profile()); 64 SessionService* service = new SessionService(profile());
64 profile()->set_session_service(service); 65 SessionServiceFactory::SetForTestProfile(profile(), service);
65 service->SetWindowType(window_id, Browser::TYPE_NORMAL); 66 service->SetWindowType(window_id, Browser::TYPE_NORMAL);
66 service->SetWindowBounds(window_id, gfx::Rect(0, 1, 2, 3), false); 67 service->SetWindowBounds(window_id, gfx::Rect(0, 1, 2, 3), false);
67 service->SetTabIndexInWindow(window_id, 68 service->SetTabIndexInWindow(window_id,
68 controller().session_id(), 0); 69 controller().session_id(), 0);
69 controller().SetWindowID(window_id); 70 controller().SetWindowID(window_id);
70 71
71 session_helper_.set_service(service); 72 session_helper_.set_service(service);
72 } 73 }
73 74
74 virtual void TearDown() { 75 virtual void TearDown() {
75 // Release profile's reference to the session service. Otherwise the file 76 // Release profile's reference to the session service. Otherwise the file
76 // will still be open and we won't be able to delete the directory below. 77 // will still be open and we won't be able to delete the directory below.
77 session_helper_.ReleaseService(); // profile owns this 78 session_helper_.ReleaseService(); // profile owns this
78 profile()->set_session_service(NULL); 79 SessionServiceFactory::SetForTestProfile(profile(), NULL);
79 80
80 // Make sure we wait for history to shut down before continuing. The task 81 // Make sure we wait for history to shut down before continuing. The task
81 // we add will cause our message loop to quit once it is destroyed. 82 // we add will cause our message loop to quit once it is destroyed.
82 HistoryService* history = 83 HistoryService* history =
83 profile()->GetHistoryService(Profile::IMPLICIT_ACCESS); 84 profile()->GetHistoryService(Profile::IMPLICIT_ACCESS);
84 if (history) { 85 if (history) {
85 history->SetOnBackendDestroyTask(new MessageLoop::QuitTask); 86 history->SetOnBackendDestroyTask(new MessageLoop::QuitTask);
86 MessageLoop::current()->Run(); 87 MessageLoop::current()->Run();
87 } 88 }
88 89
89 // Do normal cleanup before deleting the profile directory below. 90 // Do normal cleanup before deleting the profile directory below.
90 NavigationControllerTest::TearDown(); 91 NavigationControllerTest::TearDown();
91 92
92 ASSERT_TRUE(file_util::Delete(test_dir_, true)); 93 ASSERT_TRUE(file_util::Delete(test_dir_, true));
93 ASSERT_FALSE(file_util::PathExists(test_dir_)); 94 ASSERT_FALSE(file_util::PathExists(test_dir_));
94 } 95 }
95 96
96 // Deletes the current profile manager and creates a new one. Indirectly this 97 // Deletes the current profile manager and creates a new one. Indirectly this
97 // shuts down the history database and reopens it. 98 // shuts down the history database and reopens it.
98 void ReopenDatabase() { 99 void ReopenDatabase() {
99 session_helper_.set_service(NULL); 100 session_helper_.set_service(NULL);
100 profile()->set_session_service(NULL); 101 SessionServiceFactory::SetForTestProfile(profile(), NULL);
101 102
102 SessionService* service = new SessionService(profile()); 103 SessionService* service = new SessionService(profile());
103 profile()->set_session_service(service); 104 SessionServiceFactory::SetForTestProfile(profile(), service);
104 session_helper_.set_service(service); 105 session_helper_.set_service(service);
105 } 106 }
106 107
107 void GetLastSession() { 108 void GetLastSession() {
108 profile()->GetSessionService()->TabClosed(controller().window_id(), 109 SessionServiceFactory::GetForProfile(profile())->TabClosed(
109 controller().session_id(), 110 controller().window_id(), controller().session_id(), false);
110 false);
111 111
112 ReopenDatabase(); 112 ReopenDatabase();
113 Time close_time; 113 Time close_time;
114 114
115 session_helper_.ReadWindows(&windows_); 115 session_helper_.ReadWindows(&windows_);
116 } 116 }
117 117
118 CancelableRequestConsumer consumer; 118 CancelableRequestConsumer consumer;
119 119
120 // URLs for testing. 120 // URLs for testing.
(...skipping 2114 matching lines...) Expand 10 before | Expand all | Expand 10 after
2235 TabNavigation nav(0, url0, GURL(), string16(), 2235 TabNavigation nav(0, url0, GURL(), string16(),
2236 webkit_glue::CreateHistoryStateForURL(url0), 2236 webkit_glue::CreateHistoryStateForURL(url0),
2237 PageTransition::LINK); 2237 PageTransition::LINK);
2238 session_helper_.AssertNavigationEquals(nav, 2238 session_helper_.AssertNavigationEquals(nav,
2239 windows_[0]->tabs[0]->navigations[0]); 2239 windows_[0]->tabs[0]->navigations[0]);
2240 nav.set_url(url2); 2240 nav.set_url(url2);
2241 session_helper_.AssertNavigationEquals(nav, 2241 session_helper_.AssertNavigationEquals(nav,
2242 windows_[0]->tabs[0]->navigations[1]); 2242 windows_[0]->tabs[0]->navigations[1]);
2243 } 2243 }
2244 */ 2244 */
OLDNEW
« no previous file with comments | « chrome/test/testing_profile.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698