Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(88)

Side by Side Diff: chrome/test/live_sync/single_client_live_bookmarks_sync_test.cc

Issue 7259005: Allow sync integration tests to operate on multiple datatypes: Preferences + Bookmarks (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase (no code changes) Created 9 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2011 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 "chrome/browser/profiles/profile.h"
6 #include "chrome/browser/sync/profile_sync_service_harness.h"
7 #include "chrome/test/live_sync/live_bookmarks_sync_test.h"
8
9 IN_PROC_BROWSER_TEST_F(SingleClientLiveBookmarksSyncTest, OfflineToOnline) {
10 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
11
12 DisableNetwork(GetProfile(0));
13 const BookmarkNode* node = AddFolder(0, L"title");
14 SetTitle(0, node, L"new_title");
15 ASSERT_FALSE(GetClient(0)->AwaitSyncCycleCompletion("Offline state change."));
16 ASSERT_EQ(ProfileSyncService::Status::OFFLINE_UNSYNCED,
17 GetClient(0)->GetStatus().summary);
18
19 EnableNetwork(GetProfile(0));
20 ASSERT_TRUE(GetClient(0)->AwaitSyncCycleCompletion("Commit changes."));
21 ASSERT_EQ(ProfileSyncService::Status::READY,
22 GetClient(0)->GetStatus().summary);
23 ASSERT_TRUE(ModelMatchesVerifier(0));
24 }
25
26 IN_PROC_BROWSER_TEST_F(SingleClientLiveBookmarksSyncTest, Sanity) {
27 ASSERT_TRUE(SetupClients()) << "SetupClients() failed.";
28
29 // Starting state:
30 // other_node
31 // -> top
32 // -> tier1_a
33 // -> http://mail.google.com "tier1_a_url0"
34 // -> http://www.pandora.com "tier1_a_url1"
35 // -> http://www.facebook.com "tier1_a_url2"
36 // -> tier1_b
37 // -> http://www.nhl.com "tier1_b_url0"
38 const BookmarkNode* top = AddFolder(0, GetOtherNode(0), 0, L"top");
39 const BookmarkNode* tier1_a = AddFolder(0, top, 0, L"tier1_a");
40 const BookmarkNode* tier1_b = AddFolder(0, top, 1, L"tier1_b");
41 const BookmarkNode* tier1_a_url0 = AddURL(0, tier1_a, 0, L"tier1_a_url0",
42 GURL("http://mail.google.com"));
43 const BookmarkNode* tier1_a_url1 = AddURL(0, tier1_a, 1, L"tier1_a_url1",
44 GURL("http://www.pandora.com"));
45 const BookmarkNode* tier1_a_url2 = AddURL(0, tier1_a, 2, L"tier1_a_url2",
46 GURL("http://www.facebook.com"));
47 const BookmarkNode* tier1_b_url0 = AddURL(0, tier1_b, 0, L"tier1_b_url0",
48 GURL("http://www.nhl.com"));
49
50 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
51 ASSERT_TRUE(GetClient(0)->AwaitSyncCycleCompletion(
52 "Waiting for initial sync completed."));
53 ASSERT_TRUE(ModelMatchesVerifier(0));
54
55 // Ultimately we want to end up with the following model; but this test is
56 // more about the journey than the destination.
57 //
58 // bookmark_bar
59 // -> CNN (www.cnn.com)
60 // -> tier1_a
61 // -> tier1_a_url2 (www.facebook.com)
62 // -> tier1_a_url1 (www.pandora.com)
63 // -> Porsche (www.porsche.com)
64 // -> Bank of America (www.bankofamerica.com)
65 // -> Seattle Bubble
66 // other_node
67 // -> top
68 // -> tier1_b
69 // -> Wired News (www.wired.com)
70 // -> tier2_b
71 // -> tier1_b_url0
72 // -> tier3_b
73 // -> Toronto Maple Leafs (mapleleafs.nhl.com)
74 // -> Wynn (www.wynnlasvegas.com)
75 // -> tier1_a_url0
76 const BookmarkNode* bar = GetBookmarkBarNode(0);
77 const BookmarkNode* cnn = AddURL(0, bar, 0, L"CNN",
78 GURL("http://www.cnn.com"));
79 ASSERT_TRUE(cnn != NULL);
80 Move(0, tier1_a, bar, 1); // 1 should be the end at this point.
81 ASSERT_TRUE(GetClient(0)->AwaitSyncCycleCompletion("Bookmark moved."));
82 ASSERT_TRUE(ModelMatchesVerifier(0));
83
84 const BookmarkNode* porsche = AddURL(0, bar, 2, L"Porsche",
85 GURL("http://www.porsche.com"));
86 // Rearrange stuff in tier1_a.
87 ASSERT_EQ(tier1_a, tier1_a_url2->parent());
88 ASSERT_EQ(tier1_a, tier1_a_url1->parent());
89 Move(0, tier1_a_url2, tier1_a, 0);
90 Move(0, tier1_a_url1, tier1_a, 2);
91 ASSERT_TRUE(GetClient(0)->AwaitSyncCycleCompletion(
92 "Rearrange stuff in tier1_a"));
93 ASSERT_TRUE(ModelMatchesVerifier(0));
94
95 ASSERT_EQ(1, tier1_a_url0->parent()->GetIndexOf(tier1_a_url0));
96 Move(0, tier1_a_url0, bar, bar->child_count());
97 const BookmarkNode* boa = AddURL(0, bar, bar->child_count(),
98 L"Bank of America", GURL("https://www.bankofamerica.com"));
99 ASSERT_TRUE(boa != NULL);
100 Move(0, tier1_a_url0, top, top->child_count());
101 const BookmarkNode* bubble = AddURL(0, bar, bar->child_count(),
102 L"Seattle Bubble", GURL("http://seattlebubble.com"));
103 ASSERT_TRUE(bubble != NULL);
104 const BookmarkNode* wired = AddURL(0, bar, 2, L"Wired News",
105 GURL("http://www.wired.com"));
106 const BookmarkNode* tier2_b = AddFolder(0, tier1_b, 0, L"tier2_b");
107 Move(0, tier1_b_url0, tier2_b, 0);
108 Move(0, porsche, bar, 0);
109 SetTitle(0, wired, L"News Wired");
110 SetTitle(0, porsche, L"ICanHazPorsche?");
111 ASSERT_TRUE(GetClient(0)->AwaitSyncCycleCompletion("Change title."));
112 ASSERT_TRUE(ModelMatchesVerifier(0));
113
114 ASSERT_EQ(tier1_a_url0->id(), top->GetChild(top->child_count() - 1)->id());
115 Remove(0, top, top->child_count() - 1);
116 Move(0, wired, tier1_b, 0);
117 Move(0, porsche, bar, 3);
118 const BookmarkNode* tier3_b = AddFolder(0, tier2_b, 1, L"tier3_b");
119 const BookmarkNode* leafs = AddURL(0, tier1_a, 0, L"Toronto Maple Leafs",
120 GURL("http://mapleleafs.nhl.com"));
121 const BookmarkNode* wynn = AddURL(0, bar, 1, L"Wynn",
122 GURL("http://www.wynnlasvegas.com"));
123
124 Move(0, wynn, tier3_b, 0);
125 Move(0, leafs, tier3_b, 0);
126 ASSERT_TRUE(GetClient(0)->AwaitSyncCycleCompletion(
127 "Move after addition of bookmarks."));
128 ASSERT_TRUE(ModelMatchesVerifier(0));
129 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698