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

Side by Side Diff: chrome/test/live_sync/live_sessions_sync_test.cc

Issue 7562020: Sessions sync integration tests: check all windows and tabs when searching for a URL. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 4 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/live_sync/live_sessions_sync_test.h ('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 "chrome/test/live_sync/live_sessions_sync_test.h" 5 #include "chrome/test/live_sync/live_sessions_sync_test.h"
6 6
7 #include "base/test/test_timeouts.h" 7 #include "base/test/test_timeouts.h"
8 #include "base/time.h" 8 #include "base/time.h"
9 #include "chrome/browser/profiles/profile.h" 9 #include "chrome/browser/profiles/profile.h"
10 #include "chrome/browser/sync/profile_sync_service.h" 10 #include "chrome/browser/sync/profile_sync_service.h"
(...skipping 20 matching lines...) Expand all
31 } 31 }
32 32
33 // Go through and make the Browsers. 33 // Go through and make the Browsers.
34 for (int i = 0; i < num_clients(); ++i) { 34 for (int i = 0; i < num_clients(); ++i) {
35 browsers_.push_back(Browser::Create(GetProfile(i))); 35 browsers_.push_back(Browser::Create(GetProfile(i)));
36 } 36 }
37 37
38 return true; 38 return true;
39 } 39 }
40 40
41 bool LiveSessionsSyncTest::GetLocalSession(int index,
42 const SyncedSession** session) {
43 if (!GetProfile(index)->GetProfileSyncService()->
Nicolas Zea 2011/08/04 00:28:49 return GetProfile(index)->...
braffert 2011/08/04 00:38:36 Done.
44 GetSessionModelAssociator()->GetLocalSession(session)) {
45 return false;
46 }
47 return true;
48 }
49
41 bool LiveSessionsSyncTest::ModelAssociatorHasTabWithUrl(int index, 50 bool LiveSessionsSyncTest::ModelAssociatorHasTabWithUrl(int index,
42 const GURL& url) { 51 const GURL& url) {
43 ui_test_utils::RunAllPendingInMessageLoop(); 52 ui_test_utils::RunAllPendingInMessageLoop();
44 const SyncedSession* local_session; 53 const SyncedSession* local_session;
45 if (!GetProfile(index)->GetProfileSyncService()-> 54 if (!GetLocalSession(index, &local_session)) {
46 GetSessionModelAssociator()->GetLocalSession(&local_session)) {
47 return false;
48 }
49 if (local_session->windows.size() == 0 ||
50 local_session->windows[0]->tabs.size() == 0 ||
51 local_session->windows[0]->tabs[0]->navigations.size() == 0) {
52 VLOG(1) << "Bad vectors!";
53 return false; 55 return false;
54 } 56 }
55 57
56 int nav_index = 58 if (local_session->windows.size() == 0) {
57 local_session->windows[0]->tabs[0]->current_navigation_index; 59 VLOG(1) << "Empty windows vector";
58 TabNavigation nav =
59 local_session->windows[0]->tabs[0]->navigations[nav_index];
60 if (nav.virtual_url() != url) {
61 VLOG(1) << "Bad url!";
62 return false; 60 return false;
63 } 61 }
64 if (nav.title().empty()) { 62
65 VLOG(1) << "No title!"; 63 int nav_index;
66 return false; 64 TabNavigation nav;
65 for (std::vector<SessionWindow*>::const_iterator it =
66 local_session->windows.begin(); it != local_session->windows.end();
67 ++it) {
68 if ((*it)->tabs.size() == 0) {
69 VLOG(1) << "Empty tabs vector";
70 return false;
Nicolas Zea 2011/08/04 00:28:49 change to continue;
71 }
72 for (std::vector<SessionTab*>::const_iterator tab_it =
73 (*it)->tabs.begin(); tab_it != (*it)->tabs.end(); ++tab_it) {
74 if ((*tab_it)->navigations.size() == 0) {
75 VLOG(1) << "Empty navigations vector";
Nicolas Zea 2011/08/04 00:28:49 continue;
76 }
77 nav_index = (*tab_it)->current_navigation_index;
78 nav = (*tab_it)->navigations[nav_index];
79 if (nav.virtual_url() == url) {
80 VLOG(1) << "Found tab with url " << url.spec();
81 if (nav.title().empty()) {
82 VLOG(1) << "No title!";
83 return false;
Nicolas Zea 2011/08/04 00:28:49 change to continue;
braffert 2011/08/04 00:38:36 Done for all 3. I was trying to replicate the ori
84 }
85 return true;
86 }
87 }
67 } 88 }
68 VLOG(1) << "Found tab with url " << url.spec(); 89 VLOG(1) << "Could not find tab with url " << url.spec();
69 return true; 90 return false;
70 } 91 }
71 92
72 bool LiveSessionsSyncTest::OpenTab(int index, const GURL& url) { 93 bool LiveSessionsSyncTest::OpenTab(int index, const GURL& url) {
73 static const int timeout_milli = TestTimeouts::action_max_timeout_ms(); 94 static const int timeout_milli = TestTimeouts::action_max_timeout_ms();
74 VLOG(1) << "Opening tab: " << url.spec(); 95 VLOG(1) << "Opening tab: " << url.spec();
75 GetBrowser(index)->ShowSingletonTab(url); 96 GetBrowser(index)->ShowSingletonTab(url);
76 VLOG(1) << "Waiting for session to propagate to associator."; 97 VLOG(1) << "Waiting for session to propagate to associator.";
77 base::TimeTicks start_time = base::TimeTicks::Now(); 98 base::TimeTicks start_time = base::TimeTicks::Now();
78 base::TimeTicks end_time = start_time + 99 base::TimeTicks end_time = start_time +
79 base::TimeDelta::FromMilliseconds(timeout_milli); 100 base::TimeDelta::FromMilliseconds(timeout_milli);
(...skipping 10 matching lines...) Expand all
90 111
91 LOG(ERROR) << "Failed to find tab after " << timeout_milli/1000.0 112 LOG(ERROR) << "Failed to find tab after " << timeout_milli/1000.0
92 << " seconds."; 113 << " seconds.";
93 return false; 114 return false;
94 } 115 }
95 116
96 std::vector<SessionWindow*>* LiveSessionsSyncTest::GetLocalWindows(int index) { 117 std::vector<SessionWindow*>* LiveSessionsSyncTest::GetLocalWindows(int index) {
97 // The local session provided by GetLocalSession is owned, and has lifetime 118 // The local session provided by GetLocalSession is owned, and has lifetime
98 // controlled, by the model associator, so we must make our own copy. 119 // controlled, by the model associator, so we must make our own copy.
99 const SyncedSession* local_session; 120 const SyncedSession* local_session;
100 if (!GetProfile(index)->GetProfileSyncService()->GetSessionModelAssociator()-> 121 if (!GetLocalSession(index, &local_session)) {
101 GetLocalSession(&local_session)) {
102 return NULL; 122 return NULL;
103 } 123 }
104 scoped_ptr<SyncedSession> session_copy(new SyncedSession()); 124 scoped_ptr<SyncedSession> session_copy(new SyncedSession());
105 for (size_t w = 0; w < local_session->windows.size(); ++w) { 125 for (size_t w = 0; w < local_session->windows.size(); ++w) {
106 const SessionWindow& window = *local_session->windows.at(w); 126 const SessionWindow& window = *local_session->windows.at(w);
107 scoped_ptr<SessionWindow> new_window(new SessionWindow()); 127 scoped_ptr<SessionWindow> new_window(new SessionWindow());
108 for (size_t t = 0; t < window.tabs.size(); ++t) { 128 for (size_t t = 0; t < window.tabs.size(); ++t) {
109 const SessionTab& tab = *window.tabs.at(t); 129 const SessionTab& tab = *window.tabs.at(t);
110 scoped_ptr<SessionTab> new_tab(new SessionTab()); 130 scoped_ptr<SessionTab> new_tab(new SessionTab());
111 new_tab->navigations.resize(tab.navigations.size()); 131 new_tab->navigations.resize(tab.navigations.size());
(...skipping 23 matching lines...) Expand all
135 bool LiveSessionsSyncTest::CheckInitialState(int index) { 155 bool LiveSessionsSyncTest::CheckInitialState(int index) {
136 if (0 != GetNumWindows(index)) 156 if (0 != GetNumWindows(index))
137 return false; 157 return false;
138 if (0 != GetNumForeignSessions(index)) 158 if (0 != GetNumForeignSessions(index))
139 return false; 159 return false;
140 return true; 160 return true;
141 } 161 }
142 162
143 int LiveSessionsSyncTest::GetNumWindows(int index) { 163 int LiveSessionsSyncTest::GetNumWindows(int index) {
144 const SyncedSession* local_session; 164 const SyncedSession* local_session;
145 if (!GetProfile(index)->GetProfileSyncService()->GetSessionModelAssociator()-> 165 if (!GetLocalSession(index, &local_session)) {
146 GetLocalSession(&local_session)) {
147 return 0; 166 return 0;
148 } 167 }
149 return local_session->windows.size(); 168 return local_session->windows.size();
150 } 169 }
151 170
152 int LiveSessionsSyncTest::GetNumForeignSessions(int index) { 171 int LiveSessionsSyncTest::GetNumForeignSessions(int index) {
153 std::vector<const SyncedSession*> sessions; 172 std::vector<const SyncedSession*> sessions;
154 if (!GetProfile(index)->GetProfileSyncService()-> 173 if (!GetProfile(index)->GetProfileSyncService()->
155 GetSessionModelAssociator()->GetAllForeignSessions(&sessions)) 174 GetSessionModelAssociator()->GetAllForeignSessions(&sessions))
156 return 0; 175 return 0;
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
287 // sync profile. 306 // sync profile.
288 BrowserList::CloseAllBrowsers(); 307 BrowserList::CloseAllBrowsers();
289 ui_test_utils::RunAllPendingInMessageLoop(); 308 ui_test_utils::RunAllPendingInMessageLoop();
290 309
291 // All browsers should be closed at this point, else when the framework 310 // All browsers should be closed at this point, else when the framework
292 // calls QuitBrowsers() we could see memory corruption. 311 // calls QuitBrowsers() we could see memory corruption.
293 ASSERT_EQ(0U, BrowserList::size()); 312 ASSERT_EQ(0U, BrowserList::size());
294 313
295 LiveSyncTest::CleanUpOnMainThread(); 314 LiveSyncTest::CleanUpOnMainThread();
296 } 315 }
OLDNEW
« no previous file with comments | « chrome/test/live_sync/live_sessions_sync_test.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698