Index: chrome/test/live_sync/live_sessions_sync_test.cc |
diff --git a/chrome/test/live_sync/live_sessions_sync_test.cc b/chrome/test/live_sync/live_sessions_sync_test.cc |
index abc8f1682290123b576a7dcaf6b1f822f77c6a6b..b72363fc41434a4403b8d16bce1713673e917782 100644 |
--- a/chrome/test/live_sync/live_sessions_sync_test.cc |
+++ b/chrome/test/live_sync/live_sessions_sync_test.cc |
@@ -38,35 +38,54 @@ bool LiveSessionsSyncTest::SetupClients() { |
return true; |
} |
+bool LiveSessionsSyncTest::GetLocalSession(int index, |
+ const SyncedSession** session) { |
+ return GetProfile(index)->GetProfileSyncService()-> |
+ GetSessionModelAssociator()->GetLocalSession(session); |
+} |
+ |
bool LiveSessionsSyncTest::ModelAssociatorHasTabWithUrl(int index, |
const GURL& url) { |
ui_test_utils::RunAllPendingInMessageLoop(); |
const SyncedSession* local_session; |
- if (!GetProfile(index)->GetProfileSyncService()-> |
- GetSessionModelAssociator()->GetLocalSession(&local_session)) { |
- return false; |
- } |
- if (local_session->windows.size() == 0 || |
- local_session->windows[0]->tabs.size() == 0 || |
- local_session->windows[0]->tabs[0]->navigations.size() == 0) { |
- VLOG(1) << "Bad vectors!"; |
+ if (!GetLocalSession(index, &local_session)) { |
return false; |
} |
- int nav_index = |
- local_session->windows[0]->tabs[0]->current_navigation_index; |
- TabNavigation nav = |
- local_session->windows[0]->tabs[0]->navigations[nav_index]; |
- if (nav.virtual_url() != url) { |
- VLOG(1) << "Bad url!"; |
+ if (local_session->windows.size() == 0) { |
+ VLOG(1) << "Empty windows vector"; |
return false; |
} |
- if (nav.title().empty()) { |
- VLOG(1) << "No title!"; |
- return false; |
+ |
+ int nav_index; |
+ TabNavigation nav; |
+ for (std::vector<SessionWindow*>::const_iterator it = |
+ local_session->windows.begin(); it != local_session->windows.end(); |
+ ++it) { |
+ if ((*it)->tabs.size() == 0) { |
+ VLOG(1) << "Empty tabs vector"; |
+ continue; |
+ } |
+ for (std::vector<SessionTab*>::const_iterator tab_it = |
+ (*it)->tabs.begin(); tab_it != (*it)->tabs.end(); ++tab_it) { |
+ if ((*tab_it)->navigations.size() == 0) { |
+ VLOG(1) << "Empty navigations vector"; |
+ continue; |
+ } |
+ nav_index = (*tab_it)->current_navigation_index; |
+ nav = (*tab_it)->navigations[nav_index]; |
+ if (nav.virtual_url() == url) { |
+ VLOG(1) << "Found tab with url " << url.spec(); |
+ if (nav.title().empty()) { |
+ VLOG(1) << "No title!"; |
+ continue; |
+ } |
+ return true; |
+ } |
+ } |
} |
- VLOG(1) << "Found tab with url " << url.spec(); |
- return true; |
+ VLOG(1) << "Could not find tab with url " << url.spec(); |
+ return false; |
} |
bool LiveSessionsSyncTest::OpenTab(int index, const GURL& url) { |
@@ -97,8 +116,7 @@ std::vector<SessionWindow*>* LiveSessionsSyncTest::GetLocalWindows(int index) { |
// The local session provided by GetLocalSession is owned, and has lifetime |
// controlled, by the model associator, so we must make our own copy. |
const SyncedSession* local_session; |
- if (!GetProfile(index)->GetProfileSyncService()->GetSessionModelAssociator()-> |
- GetLocalSession(&local_session)) { |
+ if (!GetLocalSession(index, &local_session)) { |
return NULL; |
} |
scoped_ptr<SyncedSession> session_copy(new SyncedSession()); |
@@ -142,8 +160,7 @@ bool LiveSessionsSyncTest::CheckInitialState(int index) { |
int LiveSessionsSyncTest::GetNumWindows(int index) { |
const SyncedSession* local_session; |
- if (!GetProfile(index)->GetProfileSyncService()->GetSessionModelAssociator()-> |
- GetLocalSession(&local_session)) { |
+ if (!GetLocalSession(index, &local_session)) { |
return 0; |
} |
return local_session->windows.size(); |