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