Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / sync / test / integration / single_client_typed_urls_sync_test.cc
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/sessions/session_service.h"
7 #include "chrome/browser/sync/profile_sync_service.h"
8 #include "chrome/browser/sync/test/integration/sync_integration_test_util.h"
9 #include "chrome/browser/sync/test/integration/sync_test.h"
10 #include "chrome/browser/sync/test/integration/typed_urls_helper.h"
11 #include "components/history/core/browser/history_types.h"
12
13 using sync_integration_test_util::AwaitCommitActivityCompletion;
14 using typed_urls_helper::AddUrlToHistory;
15 using typed_urls_helper::AddUrlToHistoryWithTransition;
16 using typed_urls_helper::CheckAllProfilesHaveSameURLsAsVerifier;
17 using typed_urls_helper::DeleteUrlFromHistory;
18 using typed_urls_helper::GetTypedUrlsFromClient;
19
20 const std::string kSanityHistoryUrl = "http://www.sanity-history.google.com";
21
22 class SingleClientTypedUrlsSyncTest : public SyncTest {
23  public:
24   SingleClientTypedUrlsSyncTest() : SyncTest(SINGLE_CLIENT) {}
25   virtual ~SingleClientTypedUrlsSyncTest() {}
26
27  private:
28   DISALLOW_COPY_AND_ASSIGN(SingleClientTypedUrlsSyncTest);
29 };
30
31 IN_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   ASSERT_TRUE(CheckAllProfilesHaveSameURLsAsVerifier());
43
44   // Wait for sync and verify client did not change.
45   ASSERT_TRUE(AwaitCommitActivityCompletion(GetSyncService((0))));
46   ASSERT_TRUE(CheckAllProfilesHaveSameURLsAsVerifier());
47 }
48
49 IN_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   ASSERT_TRUE(CheckAllProfilesHaveSameURLsAsVerifier());
63
64   // Wait for sync and verify client did not change.
65   ASSERT_TRUE(AwaitCommitActivityCompletion(GetSyncService((0))));
66   ASSERT_TRUE(CheckAllProfilesHaveSameURLsAsVerifier());
67 }
68
69 IN_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   ASSERT_TRUE(CheckAllProfilesHaveSameURLsAsVerifier());
83
84   // Wait for sync and verify client did not change.
85   ASSERT_TRUE(AwaitCommitActivityCompletion(GetSyncService((0))));
86   ASSERT_TRUE(CheckAllProfilesHaveSameURLsAsVerifier());
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(GetSyncService((0))));
91   urls = GetTypedUrlsFromClient(0);
92   ASSERT_EQ(0U, urls.size());
93   ASSERT_TRUE(CheckAllProfilesHaveSameURLsAsVerifier());
94 }
95
96 IN_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, ui::PAGE_TRANSITION_LINK,
104                                 history::SOURCE_BROWSED);
105
106   urls = GetTypedUrlsFromClient(0);
107   ASSERT_EQ(0U, urls.size());
108   ASSERT_TRUE(CheckAllProfilesHaveSameURLsAsVerifier());
109
110   // Wait for sync and verify client did not change.
111   ASSERT_TRUE(AwaitCommitActivityCompletion(GetSyncService((0))));
112   ASSERT_TRUE(CheckAllProfilesHaveSameURLsAsVerifier());
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(GetSyncService((0))));
117   urls = GetTypedUrlsFromClient(0);
118   ASSERT_EQ(0U, urls.size());
119   ASSERT_TRUE(CheckAllProfilesHaveSameURLsAsVerifier());
120 }