| Index: chrome/browser/sync/test/integration/single_client_sessions_sync_test.cc
|
| diff --git a/chrome/browser/sync/test/integration/single_client_sessions_sync_test.cc b/chrome/browser/sync/test/integration/single_client_sessions_sync_test.cc
|
| index 8ef7f6c67d3cfe68e225198c6c4f452801b6e13c..69c51bc0f108aa593ab06e87307ff52c5bd97e41 100644
|
| --- a/chrome/browser/sync/test/integration/single_client_sessions_sync_test.cc
|
| +++ b/chrome/browser/sync/test/integration/single_client_sessions_sync_test.cc
|
| @@ -6,7 +6,6 @@
|
| #include "base/test/histogram_tester.h"
|
| #include "chrome/browser/sessions/session_service.h"
|
| #include "chrome/browser/sync/test/integration/profile_sync_service_harness.h"
|
| -#include "chrome/browser/sync/test/integration/session_hierarchy_match_checker.h"
|
| #include "chrome/browser/sync/test/integration/sessions_helper.h"
|
| #include "chrome/browser/sync/test/integration/sync_test.h"
|
| #include "chrome/browser/sync/test/integration/typed_urls_helper.h"
|
| @@ -18,6 +17,7 @@
|
| #include "components/sessions/core/session_types.h"
|
| #include "components/sync/base/time.h"
|
| #include "components/sync/driver/sync_driver_switches.h"
|
| +#include "components/sync/test/fake_server/fake_server_verifier.h"
|
| #include "components/sync/test/fake_server/sessions_hierarchy.h"
|
|
|
| #if defined(OS_CHROMEOS)
|
| @@ -32,12 +32,7 @@
|
| using sessions_helper::GetLocalWindows;
|
| using sessions_helper::GetSessionData;
|
| using sessions_helper::ModelAssociatorHasTabWithUrl;
|
| -using sessions_helper::MoveTab;
|
| -using sessions_helper::NavigateTab;
|
| -using sessions_helper::NavigateTabBack;
|
| -using sessions_helper::NavigateTabForward;
|
| -using sessions_helper::OpenTab;
|
| -using sessions_helper::OpenTabAtIndex;
|
| +using sessions_helper::OpenTabAndGetLocalWindows;
|
| using sessions_helper::ScopedWindowMap;
|
| using sessions_helper::SessionWindowMap;
|
| using sessions_helper::SyncedSessionVector;
|
| @@ -86,36 +81,6 @@
|
| #endif
|
| }
|
|
|
| - void ExpectNavigationChain(const std::vector<GURL>& urls) {
|
| - ScopedWindowMap windows;
|
| - ASSERT_TRUE(GetLocalWindows(0, &windows));
|
| - ASSERT_EQ(windows.begin()->second->tabs.size(), 1u);
|
| - sessions::SessionTab* tab = windows.begin()->second->tabs[0].get();
|
| -
|
| - int index = 0;
|
| - EXPECT_EQ(urls.size(), tab->navigations.size());
|
| - for (auto it = tab->navigations.begin(); it != tab->navigations.end();
|
| - ++it, ++index) {
|
| - EXPECT_EQ(urls[index], it->virtual_url());
|
| - }
|
| - }
|
| -
|
| - // Block until the expected hierarchy is recorded on the FakeServer for
|
| - // profile 0. This will time out if the hierarchy is never
|
| - // recorded.
|
| - void WaitForHierarchyOnServer(
|
| - const fake_server::SessionsHierarchy& hierarchy) {
|
| - SessionHierarchyMatchChecker checker(hierarchy, GetSyncService(0),
|
| - GetFakeServer());
|
| - EXPECT_TRUE(checker.Wait());
|
| - }
|
| -
|
| - // Shortcut to call WaitForHierarchyOnServer for only |url| in a single
|
| - // window.
|
| - void WaitForURLOnServer(const GURL& url) {
|
| - WaitForHierarchyOnServer({{url.spec()}});
|
| - }
|
| -
|
| private:
|
| DISALLOW_COPY_AND_ASSIGN(SingleClientSessionsSyncTest);
|
| };
|
| @@ -128,8 +93,7 @@
|
| // Add a new session to client 0 and wait for it to sync.
|
| ScopedWindowMap old_windows;
|
| GURL url = GURL("http://127.0.0.1/bubba");
|
| - ASSERT_TRUE(OpenTab(0, url));
|
| - ASSERT_TRUE(GetLocalWindows(0, &old_windows));
|
| + ASSERT_TRUE(OpenTabAndGetLocalWindows(0, url, &old_windows));
|
| ASSERT_TRUE(UpdatedProgressMarkerChecker(GetSyncService(0)).Wait());
|
|
|
| // Get foreign session data from client 0.
|
| @@ -142,13 +106,18 @@
|
| ASSERT_TRUE(GetLocalWindows(0, &new_windows));
|
| ASSERT_TRUE(WindowsMatch(old_windows, new_windows));
|
|
|
| - WaitForURLOnServer(url);
|
| + fake_server::FakeServerVerifier fake_server_verifier(GetFakeServer());
|
| + SessionsHierarchy expected_sessions;
|
| + expected_sessions.AddWindow(url.spec());
|
| + ASSERT_TRUE(fake_server_verifier.VerifySessions(expected_sessions));
|
| }
|
|
|
| IN_PROC_BROWSER_TEST_F(SingleClientSessionsSyncTest, NoSessions) {
|
| ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
|
|
|
| - WaitForHierarchyOnServer(SessionsHierarchy());
|
| + fake_server::FakeServerVerifier fake_server_verifier(GetFakeServer());
|
| + SessionsHierarchy expected_sessions;
|
| + ASSERT_TRUE(fake_server_verifier.VerifySessions(expected_sessions));
|
| }
|
|
|
| IN_PROC_BROWSER_TEST_F(SingleClientSessionsSyncTest, ChromeHistory) {
|
| @@ -156,8 +125,17 @@
|
|
|
| ASSERT_TRUE(CheckInitialState(0));
|
|
|
| - ASSERT_TRUE(OpenTab(0, GURL(chrome::kChromeUIHistoryURL)));
|
| - WaitForURLOnServer(GURL(chrome::kChromeUIHistoryURL));
|
| + // Add a new session to client 0 and wait for it to sync.
|
| + ScopedWindowMap old_windows;
|
| + ASSERT_TRUE(OpenTabAndGetLocalWindows(0, GURL(chrome::kChromeUIHistoryURL),
|
| + &old_windows));
|
| + std::vector<GURL> urls;
|
| + urls.push_back(GURL(chrome::kChromeUIHistoryURL));
|
| + ASSERT_TRUE(WaitForTabsToLoad(0, urls));
|
| +
|
| + // Verify the chrome history page synced.
|
| + ASSERT_TRUE(ModelAssociatorHasTabWithUrl(0,
|
| + GURL(chrome::kChromeUIHistoryURL)));
|
| }
|
|
|
| IN_PROC_BROWSER_TEST_F(SingleClientSessionsSyncTest, TimestampMatchesHistory) {
|
| @@ -169,8 +147,7 @@
|
| const GURL url("data:text/html,<html><title>Test</title></html>");
|
|
|
| ScopedWindowMap windows;
|
| - ASSERT_TRUE(OpenTab(0, url));
|
| - ASSERT_TRUE(GetLocalWindows(0, &windows));
|
| + ASSERT_TRUE(OpenTabAndGetLocalWindows(0, url, &windows));
|
|
|
| int found_navigations = 0;
|
| for (auto it = windows.begin(); it != windows.end(); ++it) {
|
| @@ -201,8 +178,7 @@
|
| const GURL url("data:text/html,<html><title>Test</title></html>");
|
|
|
| ScopedWindowMap windows;
|
| - ASSERT_TRUE(OpenTab(0, url));
|
| - ASSERT_TRUE(GetLocalWindows(0, &windows));
|
| + ASSERT_TRUE(OpenTabAndGetLocalWindows(0, url, &windows));
|
|
|
| int found_navigations = 0;
|
| for (auto it = windows.begin(); it != windows.end(); ++it) {
|
| @@ -218,132 +194,6 @@
|
| ASSERT_EQ(1, found_navigations);
|
| }
|
|
|
| -IN_PROC_BROWSER_TEST_F(SingleClientSessionsSyncTest, FragmentURLNavigation) {
|
| - ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
|
| - ASSERT_TRUE(CheckInitialState(0));
|
| -
|
| - GURL url = GURL("http://127.0.0.1/bubba");
|
| - ASSERT_TRUE(OpenTab(0, url));
|
| - WaitForURLOnServer(url);
|
| -
|
| - GURL fragment_url = GURL("http://127.0.0.1/bubba#fragment");
|
| - NavigateTab(0, fragment_url);
|
| - WaitForURLOnServer(fragment_url);
|
| -}
|
| -
|
| -IN_PROC_BROWSER_TEST_F(SingleClientSessionsSyncTest,
|
| - NavigationChainForwardBack) {
|
| - ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
|
| - ASSERT_TRUE(CheckInitialState(0));
|
| -
|
| - GURL first_url = GURL("http://127.0.0.1/foobar");
|
| - ASSERT_TRUE(OpenTab(0, first_url));
|
| - WaitForURLOnServer(first_url);
|
| -
|
| - GURL second_url = GURL("http://127.0.0.1/barbaz");
|
| - NavigateTab(0, second_url);
|
| - WaitForURLOnServer(second_url);
|
| -
|
| - NavigateTabBack(0);
|
| - WaitForURLOnServer(first_url);
|
| -
|
| - ExpectNavigationChain({first_url, second_url});
|
| -
|
| - NavigateTabForward(0);
|
| - WaitForURLOnServer(second_url);
|
| -
|
| - ExpectNavigationChain({first_url, second_url});
|
| -}
|
| -
|
| -IN_PROC_BROWSER_TEST_F(SingleClientSessionsSyncTest,
|
| - NavigationChainAlteredDestructively) {
|
| - ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
|
| - ASSERT_TRUE(CheckInitialState(0));
|
| -
|
| - GURL base_url = GURL("http://127.0.0.1/bubba");
|
| - ASSERT_TRUE(OpenTab(0, base_url));
|
| - WaitForURLOnServer(base_url);
|
| -
|
| - GURL first_url = GURL("http://127.0.0.1/foobar");
|
| - ASSERT_TRUE(NavigateTab(0, first_url));
|
| - WaitForURLOnServer(first_url);
|
| -
|
| - // Check that the navigation chain matches the above sequence of {base_url,
|
| - // first_url}.
|
| - ExpectNavigationChain({base_url, first_url});
|
| -
|
| - NavigateTabBack(0);
|
| - WaitForURLOnServer(base_url);
|
| -
|
| - GURL second_url = GURL("http://127.0.0.1/barbaz");
|
| - NavigateTab(0, second_url);
|
| - WaitForURLOnServer(second_url);
|
| -
|
| - NavigateTabBack(0);
|
| - WaitForURLOnServer(base_url);
|
| -
|
| - // Check that the navigation chain contains second_url where first_url was
|
| - // before.
|
| - ExpectNavigationChain({base_url, second_url});
|
| -}
|
| -
|
| -IN_PROC_BROWSER_TEST_F(SingleClientSessionsSyncTest, OpenNewTab) {
|
| - ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
|
| - ASSERT_TRUE(CheckInitialState(0));
|
| -
|
| - GURL base_url = GURL("http://127.0.0.1/bubba");
|
| - ASSERT_TRUE(OpenTabAtIndex(0, 0, base_url));
|
| -
|
| - WaitForURLOnServer(base_url);
|
| -
|
| - GURL new_tab_url = GURL("http://127.0.0.1/foobar");
|
| - ASSERT_TRUE(OpenTabAtIndex(0, 1, new_tab_url));
|
| -
|
| - WaitForHierarchyOnServer(
|
| - SessionsHierarchy({{base_url.spec(), new_tab_url.spec()}}));
|
| -}
|
| -
|
| -IN_PROC_BROWSER_TEST_F(SingleClientSessionsSyncTest, OpenNewWindow) {
|
| - ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
|
| - ASSERT_TRUE(CheckInitialState(0));
|
| -
|
| - GURL base_url = GURL("http://127.0.0.1/bubba");
|
| - ASSERT_TRUE(OpenTab(0, base_url));
|
| -
|
| - WaitForURLOnServer(base_url);
|
| -
|
| - GURL new_window_url = GURL("http://127.0.0.1/foobar");
|
| - AddBrowser(0);
|
| - ASSERT_TRUE(OpenTab(1, new_window_url));
|
| -
|
| - WaitForHierarchyOnServer(
|
| - SessionsHierarchy({{base_url.spec()}, {new_window_url.spec()}}));
|
| -}
|
| -
|
| -IN_PROC_BROWSER_TEST_F(SingleClientSessionsSyncTest, TabMovedToOtherWindow) {
|
| - ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
|
| - ASSERT_TRUE(CheckInitialState(0));
|
| -
|
| - GURL base_url = GURL("http://127.0.0.1/bubba");
|
| - GURL moved_tab_url = GURL("http://127.0.0.1/foobar");
|
| -
|
| - ASSERT_TRUE(OpenTab(0, base_url));
|
| - ASSERT_TRUE(OpenTabAtIndex(0, 1, moved_tab_url));
|
| -
|
| - GURL new_window_url = GURL("http://127.0.0.1/barbaz");
|
| - AddBrowser(0);
|
| - ASSERT_TRUE(OpenTab(1, new_window_url));
|
| -
|
| - WaitForHierarchyOnServer(SessionsHierarchy(
|
| - {{base_url.spec(), moved_tab_url.spec()}, {new_window_url.spec()}}));
|
| -
|
| - // Move tab 1 in browser 0 to browser 1.
|
| - MoveTab(0, 1, 1);
|
| -
|
| - WaitForHierarchyOnServer(SessionsHierarchy(
|
| - {{base_url.spec()}, {new_window_url.spec(), moved_tab_url.spec()}}));
|
| -}
|
| -
|
| IN_PROC_BROWSER_TEST_F(SingleClientSessionsSyncTest, CookieJarMismatch) {
|
| ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
|
|
|
| @@ -358,8 +208,9 @@
|
|
|
| // Add a new session to client 0 and wait for it to sync.
|
| GURL url = GURL("http://127.0.0.1/bubba");
|
| - ASSERT_TRUE(OpenTab(0, url));
|
| - WaitForURLOnServer(url);
|
| + ASSERT_TRUE(OpenTabAndGetLocalWindows(0, url, &old_windows));
|
| + TriggerSyncForModelTypes(0, syncer::ModelTypeSet(syncer::SESSIONS));
|
| + ASSERT_TRUE(UpdatedProgressMarkerChecker(GetSyncService(0)).Wait());
|
|
|
| // The cookie jar mismatch value will be true by default due to
|
| // the way integration tests trigger signin (which does not involve a normal
|
| @@ -368,7 +219,7 @@
|
| ASSERT_TRUE(message.commit().config_params().cookie_jar_mismatch());
|
|
|
| // It is possible that multiple sync cycles occured during the call to
|
| - // OpenTab, which would cause multiple identical samples.
|
| + // OpenTabAndGetLocalWindows, which would cause multiple identical samples.
|
| ExpectUniqueSampleGE(histogram_tester, "Sync.CookieJarMatchOnNavigation",
|
| false, 1);
|
| ExpectUniqueSampleGE(histogram_tester, "Sync.CookieJarEmptyOnMismatch",
|
| @@ -391,8 +242,7 @@
|
|
|
| // Trigger a sync and wait for it.
|
| GURL url = GURL("http://127.0.0.1/bubba2");
|
| - ASSERT_TRUE(OpenTab(0, url));
|
| - ASSERT_TRUE(GetLocalWindows(0, &old_windows));
|
| + ASSERT_TRUE(OpenTabAndGetLocalWindows(0, url, &old_windows));
|
| TriggerSyncForModelTypes(0, syncer::ModelTypeSet(syncer::SESSIONS));
|
| ASSERT_TRUE(UpdatedProgressMarkerChecker(GetSyncService(0)).Wait());
|
|
|
|
|