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

Side by Side Diff: chrome/browser/sync/test/integration/two_client_arc_package_sync_test.cc

Issue 2174753004: arc:Integration test for Arc package Chrome sync. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@current
Patch Set: Rebase Created 4 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
OLDNEW
(Empty)
1 // Copyright 2016 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/test/integration/sync_arc_package_helper.h"
7 #include "chrome/browser/sync/test/integration/sync_integration_test_util.h"
8 #include "chrome/browser/sync/test/integration/sync_test.h"
9
10 namespace arc {
11
12 namespace {
13
14 bool AllProfilesHaveSameArcPackageDetails() {
15 return SyncArcPackageHelper::GetInstance()
16 ->AllProfilesHaveSamePackageDetails();
17 }
18
19 } // namespace
20
21 class TwoClientArcPackageSyncTest : public SyncTest {
22 public:
23 TwoClientArcPackageSyncTest()
24 : SyncTest(TWO_CLIENT_LEGACY), sync_helper_(nullptr) {
pavely 2016/07/29 23:01:03 Why do you pass TWO_CLIENT_LEGACY? Could you try r
lgcheng 2016/07/29 23:53:21 There are three main reasons for this: 1.TWO_CLIE
25 DisableVerifier();
26 }
27
28 ~TwoClientArcPackageSyncTest() override {}
29
30 bool SetupClients() override {
31 if (!SyncTest::SetupClients())
32 return false;
33
34 // Init SyncArcPackageHelper to ensure that the arc services are initialized
35 // for each Profile.
36 sync_helper_ = SyncArcPackageHelper::GetInstance();
37 return sync_helper_ != nullptr;
38 }
39
40 void CleanUp() { sync_helper_->CleanUp(); }
41
42 SyncArcPackageHelper* sync_helper() { return sync_helper_; }
43
44 private:
45 SyncArcPackageHelper* sync_helper_;
46
47 DISALLOW_COPY_AND_ASSIGN(TwoClientArcPackageSyncTest);
48 };
49
50 IN_PROC_BROWSER_TEST_F(TwoClientArcPackageSyncTest, StartWithNoPackages) {
51 ASSERT_TRUE(SetupSync());
52
53 ASSERT_TRUE(AllProfilesHaveSameArcPackageDetails());
54
55 CleanUp();
pavely 2016/07/29 23:01:03 ASSERT_TRUE returns early. To ensure cleanup code
lgcheng 2016/07/29 23:53:21 I put clearup code in TearDownOnMainThread(). Than
56 }
57
58 IN_PROC_BROWSER_TEST_F(TwoClientArcPackageSyncTest, StartWithSamePackages) {
59 ASSERT_TRUE(SetupClients());
60
61 constexpr size_t kNumPackages = 5;
62 for (size_t i = 0; i < kNumPackages; ++i) {
63 sync_helper()->InstallPackageWithIndex(GetProfile(0), i);
64 sync_helper()->InstallPackageWithIndex(GetProfile(1), i);
65 }
66
67 ASSERT_TRUE(SetupSync());
68
69 ASSERT_TRUE(AllProfilesHaveSameArcPackageDetails());
70
71 CleanUp();
72 }
73
74 // In this test, packages are installed before sync started. Client1 will have
75 // package 0 to 4 installed while client2 has no package installed.
76 IN_PROC_BROWSER_TEST_F(TwoClientArcPackageSyncTest,
77 OneClientHasPackagesAnotherHasNone) {
78 ASSERT_TRUE(SetupClients());
79
80 constexpr size_t kNumPackages = 5;
81 for (size_t i = 0; i < kNumPackages; ++i) {
82 sync_helper()->InstallPackageWithIndex(GetProfile(0), i);
83 }
84
85 ASSERT_FALSE(AllProfilesHaveSameArcPackageDetails());
86
87 ASSERT_TRUE(SetupSync());
88
89 ASSERT_TRUE(AllProfilesHaveSameArcPackageDetails());
90
91 CleanUp();
92 }
93
94 // In this test, packages are installed before sync started. Client1 will have
95 // package 0 to 9 installed and client2 will have package 0 to 4 installed.
96 IN_PROC_BROWSER_TEST_F(TwoClientArcPackageSyncTest,
97 OneClientHasPackagesAnotherHasSubSet) {
98 ASSERT_TRUE(SetupClients());
99
100 constexpr size_t kNumPackages = 5;
101 for (size_t i = 0; i < kNumPackages; ++i) {
102 sync_helper()->InstallPackageWithIndex(GetProfile(0), i);
103 sync_helper()->InstallPackageWithIndex(GetProfile(1), i);
104 }
105
106 for (size_t i = 0; i < kNumPackages; ++i) {
107 sync_helper()->InstallPackageWithIndex(GetProfile(0), i + kNumPackages);
108 }
109
110 ASSERT_FALSE(AllProfilesHaveSameArcPackageDetails());
111
112 ASSERT_TRUE(SetupSync());
113
114 EXPECT_TRUE(AllProfilesHaveSameArcPackageDetails());
115
116 CleanUp();
117 }
118
119 // In this test, packages are installed before sync started. Client1 will have
120 // package 0 to 4 installed and client2 will have package 1 to 5 installed.
121 IN_PROC_BROWSER_TEST_F(TwoClientArcPackageSyncTest,
122 StartWithDifferentPackages) {
123 ASSERT_TRUE(SetupClients());
124
125 constexpr size_t kNumPackages = 5;
126 constexpr size_t kPackageIdDiff = 1;
127 for (size_t i = 0; i < kNumPackages; ++i) {
128 sync_helper()->InstallPackageWithIndex(GetProfile(0), i);
129 sync_helper()->InstallPackageWithIndex(GetProfile(1), i + kPackageIdDiff);
130 }
131
132 EXPECT_FALSE(AllProfilesHaveSameArcPackageDetails());
133
134 ASSERT_TRUE(SetupSync());
135
136 EXPECT_TRUE(AllProfilesHaveSameArcPackageDetails());
137
138 CleanUp();
139 }
140
141 // Tests package installaton after sync started.
142 IN_PROC_BROWSER_TEST_F(TwoClientArcPackageSyncTest, Install) {
143 ASSERT_TRUE(SetupSync());
144 ASSERT_TRUE(AllProfilesHaveSameArcPackageDetails());
145
146 sync_helper()->InstallPackageWithIndex(GetProfile(0), 0);
147 ASSERT_TRUE(AwaitQuiescence());
148 EXPECT_TRUE(AllProfilesHaveSameArcPackageDetails());
149
150 CleanUp();
151 }
152
153 // In this test, packages are installed after sync started. Client1 installs
154 // package 0 to 4 and client2 installs package 3 to 7.
155 IN_PROC_BROWSER_TEST_F(TwoClientArcPackageSyncTest, InstallDifferent) {
156 ASSERT_TRUE(SetupSync());
157 ASSERT_TRUE(AllProfilesHaveSameArcPackageDetails());
158
159 constexpr size_t kNumPackages = 5;
160 constexpr size_t kPackageIdDiff = 3;
161 for (size_t i = 0; i < kNumPackages; ++i) {
162 sync_helper()->InstallPackageWithIndex(GetProfile(0), i);
163 sync_helper()->InstallPackageWithIndex(GetProfile(1), i + kPackageIdDiff);
164 }
165
166 ASSERT_TRUE(AwaitQuiescence());
167 EXPECT_TRUE(AllProfilesHaveSameArcPackageDetails());
168
169 CleanUp();
170 }
171
172 // Installs package from one client and uninstalls from another after sync
173 // started.
174 IN_PROC_BROWSER_TEST_F(TwoClientArcPackageSyncTest, Uninstall) {
175 ASSERT_TRUE(SetupSync());
176 ASSERT_TRUE(AllProfilesHaveSameArcPackageDetails());
177
178 sync_helper()->InstallPackageWithIndex(GetProfile(0), 1);
179 ASSERT_TRUE(AwaitQuiescence());
180 EXPECT_TRUE(AllProfilesHaveSameArcPackageDetails());
181
182 sync_helper()->UninstallPackageWithIndex(GetProfile(1), 1);
183 EXPECT_FALSE(AllProfilesHaveSameArcPackageDetails());
184 ASSERT_TRUE(AwaitQuiescence());
185 EXPECT_TRUE(AllProfilesHaveSameArcPackageDetails());
186
187 CleanUp();
188 }
189
190 } // namespace arc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698