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

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: Issue addressed. Created 4 years, 5 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 // Preserved method for package update test.
15 /*
16 bool AllProfilesHaveSameArcPackages() {
17 return SyncArcPackageHelper::GetInstance()->AllProfilesHaveSamePackages();
18 } */
19
20 bool AllProfilesHaveSameArcPackageDetails() {
21 return SyncArcPackageHelper::GetInstance()
22 ->AllProfilesHaveSamePackageDetails();
23 }
24
25 } // namespace
26
27 class TwoClientArcPackageSyncTest : public SyncTest {
28 public:
29 TwoClientArcPackageSyncTest()
30 : SyncTest(TWO_CLIENT_LEGACY), sync_helper_(nullptr) {
31 DisableVerifier();
32 }
33
34 ~TwoClientArcPackageSyncTest() override {}
35
36 bool SetupClients() override {
37 if (!SyncTest::SetupClients())
38 return false;
39
40 // Init SyncArcPackageHelper to ensure that the arc services are initialized
41 // for each Profile.
42 sync_helper_ = SyncArcPackageHelper::GetInstance();
43 return sync_helper_ != nullptr;
44 }
45
46 void CleanUp() { sync_helper_->CleanUp(); }
47
48 SyncArcPackageHelper* sync_helper() { return sync_helper_; }
49
50 private:
51 SyncArcPackageHelper* sync_helper_;
52
53 DISALLOW_COPY_AND_ASSIGN(TwoClientArcPackageSyncTest);
54 };
55
56 IN_PROC_BROWSER_TEST_F(TwoClientArcPackageSyncTest, StartWithNoPackages) {
57 ASSERT_TRUE(SetupSync());
58
59 ASSERT_TRUE(AllProfilesHaveSameArcPackageDetails());
60
61 CleanUp();
62 }
63
64 IN_PROC_BROWSER_TEST_F(TwoClientArcPackageSyncTest, StartWithSamePackages) {
65 ASSERT_TRUE(SetupClients());
66
67 constexpr size_t kNumPackages = 5;
68 for (size_t i = 0; i < kNumPackages; ++i) {
69 sync_helper()->InstallPackageWithIndex(GetProfile(0), i);
70 sync_helper()->InstallPackageWithIndex(GetProfile(1), i);
71 }
72
73 ASSERT_TRUE(SetupSync());
74
75 ASSERT_TRUE(AllProfilesHaveSameArcPackageDetails());
76
77 CleanUp();
78 }
79
80 // In this test, packages are installed before sync started. Client1 will have
81 // package 0 to 4 installed while client2 has no package installed.
82 IN_PROC_BROWSER_TEST_F(TwoClientArcPackageSyncTest,
83 OneClientHasPackagesAnotherHasNone) {
84 ASSERT_TRUE(SetupClients());
85
86 constexpr size_t kNumPackages = 5;
87 for (size_t i = 0; i < kNumPackages; ++i) {
88 sync_helper()->InstallPackageWithIndex(GetProfile(0), i);
89 }
90
91 ASSERT_FALSE(AllProfilesHaveSameArcPackageDetails());
92
93 ASSERT_TRUE(SetupSync());
94
95 ASSERT_TRUE(AllProfilesHaveSameArcPackageDetails());
96
97 CleanUp();
98 }
99
100 // In this test, packages are installed before sync started. Client1 will have
101 // package 0 to 9 installed and client2 will have package 0 to 4 installed.
102 IN_PROC_BROWSER_TEST_F(TwoClientArcPackageSyncTest,
103 OneClientHasPackagesAnotherHasSubSet) {
104 ASSERT_TRUE(SetupClients());
105
106 constexpr size_t kNumPackages = 5;
107 for (size_t i = 0; i < kNumPackages; ++i) {
108 sync_helper()->InstallPackageWithIndex(GetProfile(0), i);
109 sync_helper()->InstallPackageWithIndex(GetProfile(1), i);
110 }
111
112 for (size_t i = 0; i < kNumPackages; ++i) {
113 sync_helper()->InstallPackageWithIndex(GetProfile(0), i + kNumPackages);
114 }
115
116 ASSERT_FALSE(AllProfilesHaveSameArcPackageDetails());
117
118 ASSERT_TRUE(SetupSync());
119
120 EXPECT_TRUE(AllProfilesHaveSameArcPackageDetails());
121
122 CleanUp();
123 }
124
125 // In this test, packages are installed before sync started. Client1 will have
126 // package 0 to 4 installed and client2 will have package 1 to 5 installed.
127 IN_PROC_BROWSER_TEST_F(TwoClientArcPackageSyncTest,
128 StartWithDifferentPackages) {
129 ASSERT_TRUE(SetupClients());
130
131 constexpr size_t kNumPackages = 5;
132 constexpr size_t kPackageIdDiff = 1;
133 for (size_t i = 0; i < kNumPackages; ++i) {
134 sync_helper()->InstallPackageWithIndex(GetProfile(0), i);
135 sync_helper()->InstallPackageWithIndex(GetProfile(1), i + kPackageIdDiff);
136 }
137
138 EXPECT_FALSE(AllProfilesHaveSameArcPackageDetails());
139
140 ASSERT_TRUE(SetupSync());
141
142 EXPECT_TRUE(AllProfilesHaveSameArcPackageDetails());
143
144 CleanUp();
145 }
146
147 // Tests package installaton after sync started.
148 IN_PROC_BROWSER_TEST_F(TwoClientArcPackageSyncTest, Install) {
149 ASSERT_TRUE(SetupSync());
150 ASSERT_TRUE(AllProfilesHaveSameArcPackageDetails());
151
152 sync_helper()->InstallPackageWithIndex(GetProfile(0), 0);
153 ASSERT_TRUE(AwaitQuiescence());
154 EXPECT_TRUE(AllProfilesHaveSameArcPackageDetails());
155
156 CleanUp();
157 }
158
159 // In this test, packages are installed after sync started. Client1 installs
160 // package 0 to 4 and client2 installs package 3 to 7.
161 IN_PROC_BROWSER_TEST_F(TwoClientArcPackageSyncTest, InstallDifferent) {
162 ASSERT_TRUE(SetupSync());
163 ASSERT_TRUE(AllProfilesHaveSameArcPackageDetails());
164
165 constexpr size_t kNumPackages = 5;
166 constexpr size_t kPackageIdDiff = 3;
167 for (size_t i = 0; i < kNumPackages; ++i) {
168 sync_helper()->InstallPackageWithIndex(GetProfile(0), i);
169 sync_helper()->InstallPackageWithIndex(GetProfile(1), i + kPackageIdDiff);
170 }
171
172 ASSERT_TRUE(AwaitQuiescence());
173 EXPECT_TRUE(AllProfilesHaveSameArcPackageDetails());
174
175 CleanUp();
176 }
177
178 // Installs package from one client and uninstalls from another after sync
179 // started.
180 IN_PROC_BROWSER_TEST_F(TwoClientArcPackageSyncTest, Uninstall) {
181 ASSERT_TRUE(SetupSync());
182 ASSERT_TRUE(AllProfilesHaveSameArcPackageDetails());
183
184 sync_helper()->InstallPackageWithIndex(GetProfile(0), 1);
185 ASSERT_TRUE(AwaitQuiescence());
186 EXPECT_TRUE(AllProfilesHaveSameArcPackageDetails());
187
188 sync_helper()->UninstallPackageWithIndex(GetProfile(1), 1);
189 EXPECT_FALSE(AllProfilesHaveSameArcPackageDetails());
190 ASSERT_TRUE(AwaitQuiescence());
191 EXPECT_TRUE(AllProfilesHaveSameArcPackageDetails());
192
193 CleanUp();
194 }
195
196 } // namespace arc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698