single_client_typed_urls_sync_test.cc revision effb81e5f8246d0db0270817048dc992db66e9fb
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 3// found in the LICENSE file. 4 5#include "base/memory/scoped_vector.h" 6#include "chrome/browser/history/history_types.h" 7#include "chrome/browser/sessions/session_service.h" 8#include "chrome/browser/sync/test/integration/profile_sync_service_harness.h" 9#include "chrome/browser/sync/test/integration/sync_integration_test_util.h" 10#include "chrome/browser/sync/test/integration/sync_test.h" 11#include "chrome/browser/sync/test/integration/typed_urls_helper.h" 12 13using sync_integration_test_util::AwaitCommitActivityCompletion; 14using typed_urls_helper::AddUrlToHistory; 15using typed_urls_helper::AddUrlToHistoryWithTransition; 16using typed_urls_helper::AssertAllProfilesHaveSameURLsAsVerifier; 17using typed_urls_helper::DeleteUrlFromHistory; 18using typed_urls_helper::GetTypedUrlsFromClient; 19 20const std::string kSanityHistoryUrl = "http://www.sanity-history.google.com"; 21 22class SingleClientTypedUrlsSyncTest : public SyncTest { 23 public: 24 SingleClientTypedUrlsSyncTest() : SyncTest(SINGLE_CLIENT) {} 25 virtual ~SingleClientTypedUrlsSyncTest() {} 26 27 private: 28 DISALLOW_COPY_AND_ASSIGN(SingleClientTypedUrlsSyncTest); 29}; 30 31IN_PROC_BROWSER_TEST_F(SingleClientTypedUrlsSyncTest, Sanity) { 32 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 33 history::URLRows urls = GetTypedUrlsFromClient(0); 34 ASSERT_EQ(0U, urls.size()); 35 36 GURL new_url(kSanityHistoryUrl); 37 AddUrlToHistory(0, new_url); 38 39 urls = GetTypedUrlsFromClient(0); 40 ASSERT_EQ(1U, urls.size()); 41 ASSERT_EQ(new_url, urls[0].url()); 42 AssertAllProfilesHaveSameURLsAsVerifier(); 43 44 // Wait for sync and verify client did not change. 45 ASSERT_TRUE(AwaitCommitActivityCompletion(GetClient(0)->service())); 46 AssertAllProfilesHaveSameURLsAsVerifier(); 47} 48 49IN_PROC_BROWSER_TEST_F(SingleClientTypedUrlsSyncTest, TwoVisits) { 50 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 51 history::URLRows urls = GetTypedUrlsFromClient(0); 52 ASSERT_EQ(0U, urls.size()); 53 54 GURL new_url(kSanityHistoryUrl); 55 // Adding twice should add two visits with distinct timestamps. 56 AddUrlToHistory(0, new_url); 57 AddUrlToHistory(0, new_url); 58 59 urls = GetTypedUrlsFromClient(0); 60 ASSERT_EQ(1U, urls.size()); 61 ASSERT_EQ(new_url, urls[0].url()); 62 AssertAllProfilesHaveSameURLsAsVerifier(); 63 64 // Wait for sync and verify client did not change. 65 ASSERT_TRUE(AwaitCommitActivityCompletion(GetClient(0)->service())); 66 AssertAllProfilesHaveSameURLsAsVerifier(); 67} 68 69IN_PROC_BROWSER_TEST_F(SingleClientTypedUrlsSyncTest, DeleteTyped) { 70 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 71 history::URLRows urls = GetTypedUrlsFromClient(0); 72 ASSERT_EQ(0U, urls.size()); 73 74 GURL new_url(kSanityHistoryUrl); 75 // Adding twice should add two visits with distinct timestamps. 76 AddUrlToHistory(0, new_url); 77 AddUrlToHistory(0, new_url); 78 79 urls = GetTypedUrlsFromClient(0); 80 ASSERT_EQ(1U, urls.size()); 81 ASSERT_EQ(new_url, urls[0].url()); 82 AssertAllProfilesHaveSameURLsAsVerifier(); 83 84 // Wait for sync and verify client did not change. 85 ASSERT_TRUE(AwaitCommitActivityCompletion(GetClient(0)->service())); 86 AssertAllProfilesHaveSameURLsAsVerifier(); 87 88 // Now delete the URL we just added, wait for sync, and verify the deletion. 89 DeleteUrlFromHistory(0, new_url); 90 ASSERT_TRUE(AwaitCommitActivityCompletion(GetClient(0)->service())); 91 urls = GetTypedUrlsFromClient(0); 92 ASSERT_EQ(0U, urls.size()); 93 AssertAllProfilesHaveSameURLsAsVerifier(); 94} 95 96IN_PROC_BROWSER_TEST_F(SingleClientTypedUrlsSyncTest, DeleteNonTyped) { 97 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; 98 history::URLRows urls = GetTypedUrlsFromClient(0); 99 ASSERT_EQ(0U, urls.size()); 100 101 GURL new_url(kSanityHistoryUrl); 102 // Add a non-typed URL. 103 AddUrlToHistoryWithTransition(0, new_url, content::PAGE_TRANSITION_LINK, 104 history::SOURCE_BROWSED); 105 106 urls = GetTypedUrlsFromClient(0); 107 ASSERT_EQ(0U, urls.size()); 108 AssertAllProfilesHaveSameURLsAsVerifier(); 109 110 // Wait for sync and verify client did not change. 111 ASSERT_TRUE(AwaitCommitActivityCompletion(GetClient(0)->service())); 112 AssertAllProfilesHaveSameURLsAsVerifier(); 113 114 // Now delete the URL we just added, wait for sync and verify the deletion. 115 DeleteUrlFromHistory(0, new_url); 116 ASSERT_TRUE(AwaitCommitActivityCompletion(GetClient(0)->service())); 117 urls = GetTypedUrlsFromClient(0); 118 ASSERT_EQ(0U, urls.size()); 119 AssertAllProfilesHaveSameURLsAsVerifier(); 120} 121