OLD | NEW |
1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <stddef.h> | 5 #include <stddef.h> |
6 | 6 |
7 #include "base/macros.h" | 7 #include "base/macros.h" |
8 #include "chrome/browser/sync/test/integration/printers_helper.h" | 8 #include "chrome/browser/sync/test/integration/printers_helper.h" |
9 #include "chrome/browser/sync/test/integration/sync_test.h" | 9 #include "chrome/browser/sync/test/integration/sync_test.h" |
10 #include "chrome/browser/sync/test/integration/updated_progress_marker_checker.h
" | 10 #include "chrome/browser/sync/test/integration/updated_progress_marker_checker.h
" |
11 #include "chromeos/printing/printer_configuration.h" | 11 #include "chromeos/printing/printer_configuration.h" |
12 | 12 |
13 using printers_helper::AddPrinter; | 13 using printers_helper::AddPrinter; |
14 using printers_helper::CreateTestPrinter; | 14 using printers_helper::CreateTestPrinter; |
15 using printers_helper::EditPrinterDescription; | 15 using printers_helper::EditPrinterDescription; |
16 using printers_helper::GetVerifierPrinterCount; | 16 using printers_helper::GetVerifierPrinterCount; |
17 using printers_helper::GetVerifierPrinterStore; | 17 using printers_helper::GetVerifierPrinterStore; |
18 using printers_helper::GetPrinterCount; | 18 using printers_helper::GetPrinterCount; |
19 using printers_helper::GetPrinterStore; | 19 using printers_helper::GetPrinterStore; |
20 using printers_helper::ProfileContainsSamePrintersAsVerifier; | 20 using printers_helper::ProfileContainsSamePrintersAsVerifier; |
21 using printers_helper::RemovePrinter; | 21 using printers_helper::RemovePrinter; |
22 | 22 |
23 class SingleClientPrintersSyncTest : public SyncTest { | 23 class SingleClientPrintersSyncTest : public SyncTest { |
24 public: | 24 public: |
25 SingleClientPrintersSyncTest() : SyncTest(SINGLE_CLIENT) {} | 25 SingleClientPrintersSyncTest() : SyncTest(SINGLE_CLIENT) {} |
26 ~SingleClientPrintersSyncTest() override {} | 26 ~SingleClientPrintersSyncTest() override {} |
27 | 27 |
28 bool SetupSync() override { | |
29 if (!SyncTest::SetupSync()) | |
30 return false; | |
31 | |
32 // Wait for sync to complete initialization before proceeding. | |
33 return UpdatedProgressMarkerChecker(GetSyncService(0)).Wait(); | |
34 } | |
35 | |
36 private: | 28 private: |
37 DISALLOW_COPY_AND_ASSIGN(SingleClientPrintersSyncTest); | 29 DISALLOW_COPY_AND_ASSIGN(SingleClientPrintersSyncTest); |
38 }; | 30 }; |
39 | 31 |
40 // Verify that printers aren't added with a sync call. | 32 // Verify that printers aren't added with a sync call. |
41 IN_PROC_BROWSER_TEST_F(SingleClientPrintersSyncTest, NoPrinters) { | 33 IN_PROC_BROWSER_TEST_F(SingleClientPrintersSyncTest, NoPrinters) { |
42 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | 34 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; |
| 35 // TODO(sync): Should not use UpdatedProgressMarkerChecker here since |
| 36 // UpdatedProgressMarkerChecker is for SyncableService datatype, but |
| 37 // syncer::PRINTERS is ModelTypeSyncBridge datatype. So maybe we should create |
| 38 // another checker for ModelTypeSyncBridge, or some other things to wait for |
| 39 // ModelTypeSyncBridge datatype. |
| 40 ASSERT_TRUE(UpdatedProgressMarkerChecker(GetSyncService(0)).Wait()); |
43 EXPECT_TRUE(ProfileContainsSamePrintersAsVerifier(0)); | 41 EXPECT_TRUE(ProfileContainsSamePrintersAsVerifier(0)); |
44 } | 42 } |
45 | 43 |
46 // Verify syncing doesn't randomly remove a printer. | 44 // Verify syncing doesn't randomly remove a printer. |
47 IN_PROC_BROWSER_TEST_F(SingleClientPrintersSyncTest, SingleNewPrinter) { | 45 IN_PROC_BROWSER_TEST_F(SingleClientPrintersSyncTest, SingleNewPrinter) { |
48 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | 46 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; |
49 | 47 |
50 ASSERT_EQ(0, GetVerifierPrinterCount()); | 48 ASSERT_EQ(0, GetVerifierPrinterCount()); |
51 | 49 |
52 AddPrinter(GetPrinterStore(0), printers_helper::CreateTestPrinter(0)); | 50 AddPrinter(GetPrinterStore(0), printers_helper::CreateTestPrinter(0)); |
53 AddPrinter(GetVerifierPrinterStore(), printers_helper::CreateTestPrinter(0)); | 51 AddPrinter(GetVerifierPrinterStore(), printers_helper::CreateTestPrinter(0)); |
54 ASSERT_EQ(1, GetPrinterCount(0)); | 52 ASSERT_EQ(1, GetPrinterCount(0)); |
55 ASSERT_EQ(1, GetVerifierPrinterCount()); | 53 ASSERT_EQ(1, GetVerifierPrinterCount()); |
56 | 54 |
57 ASSERT_TRUE(UpdatedProgressMarkerChecker(GetSyncService(0)).Wait()); | 55 ASSERT_TRUE(UpdatedProgressMarkerChecker(GetSyncService(0)).Wait()); |
58 EXPECT_EQ(1, GetVerifierPrinterCount()); | 56 EXPECT_EQ(1, GetVerifierPrinterCount()); |
59 EXPECT_TRUE(ProfileContainsSamePrintersAsVerifier(0)); | 57 EXPECT_TRUE(ProfileContainsSamePrintersAsVerifier(0)); |
60 } | 58 } |
61 | 59 |
62 // Verify editing a printer doesn't add it. | 60 // Verify editing a printer doesn't add it. |
63 // Flaky on ChromeOS. http://crbug.com/701999 | 61 IN_PROC_BROWSER_TEST_F(SingleClientPrintersSyncTest, EditPrinter) { |
64 #if defined(OS_CHROMEOS) | |
65 #define MAYBE_EditPrinter DISABLED_EditPrinter | |
66 #else | |
67 #define MAYBE_EditPrinter EditPrinter | |
68 #endif | |
69 IN_PROC_BROWSER_TEST_F(SingleClientPrintersSyncTest, MAYBE_EditPrinter) { | |
70 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | 62 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; |
71 | 63 |
72 AddPrinter(GetPrinterStore(0), printers_helper::CreateTestPrinter(0)); | 64 AddPrinter(GetPrinterStore(0), printers_helper::CreateTestPrinter(0)); |
73 AddPrinter(GetVerifierPrinterStore(), printers_helper::CreateTestPrinter(0)); | 65 AddPrinter(GetVerifierPrinterStore(), printers_helper::CreateTestPrinter(0)); |
74 | 66 |
75 ASSERT_TRUE( | 67 ASSERT_TRUE( |
76 EditPrinterDescription(GetPrinterStore(0), 0, "Updated description")); | 68 EditPrinterDescription(GetPrinterStore(0), 0, "Updated description")); |
77 | 69 |
78 EXPECT_EQ(1, GetPrinterCount(0)); | 70 EXPECT_EQ(1, GetPrinterCount(0)); |
79 EXPECT_EQ(1, GetVerifierPrinterCount()); | 71 EXPECT_EQ(1, GetVerifierPrinterCount()); |
80 EXPECT_FALSE(ProfileContainsSamePrintersAsVerifier(0)); | 72 EXPECT_FALSE(ProfileContainsSamePrintersAsVerifier(0)); |
81 } | 73 } |
82 | 74 |
83 // Verify that removing a printer works. | 75 // Verify that removing a printer works. |
84 IN_PROC_BROWSER_TEST_F(SingleClientPrintersSyncTest, RemovePrinter) { | 76 IN_PROC_BROWSER_TEST_F(SingleClientPrintersSyncTest, RemovePrinter) { |
85 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; | 77 ASSERT_TRUE(SetupSync()) << "SetupSync() failed."; |
86 | 78 |
87 AddPrinter(GetPrinterStore(0), printers_helper::CreateTestPrinter(0)); | 79 AddPrinter(GetPrinterStore(0), printers_helper::CreateTestPrinter(0)); |
88 EXPECT_EQ(1, GetPrinterCount(0)); | 80 EXPECT_EQ(1, GetPrinterCount(0)); |
89 | 81 |
90 RemovePrinter(GetPrinterStore(0), 0); | 82 RemovePrinter(GetPrinterStore(0), 0); |
91 EXPECT_EQ(0, GetPrinterCount(0)); | 83 EXPECT_EQ(0, GetPrinterCount(0)); |
92 } | 84 } |
93 | 85 |
94 // Verify that merging data added before sync works. | 86 // Verify that merging data added before sync works. |
95 // crbug.com/689662 | 87 IN_PROC_BROWSER_TEST_F(SingleClientPrintersSyncTest, AddBeforeSetup) { |
96 #if defined(OS_CHROMEOS) | |
97 #define MAYBE_AddBeforeSetup DISABLED_AddBeforeSetup | |
98 #else | |
99 #define MAYBE_AddBeforeSetup AddBeforeSetup | |
100 #endif | |
101 IN_PROC_BROWSER_TEST_F(SingleClientPrintersSyncTest, MAYBE_AddBeforeSetup) { | |
102 ASSERT_TRUE(SetupClients()); | 88 ASSERT_TRUE(SetupClients()); |
103 | 89 |
104 AddPrinter(GetPrinterStore(0), printers_helper::CreateTestPrinter(0)); | 90 AddPrinter(GetPrinterStore(0), printers_helper::CreateTestPrinter(0)); |
105 EXPECT_EQ(1, GetPrinterCount(0)); | 91 EXPECT_EQ(1, GetPrinterCount(0)); |
106 | 92 |
107 EXPECT_TRUE(SetupSync()) << "SetupSync() failed."; | 93 EXPECT_TRUE(SetupSync()) << "SetupSync() failed."; |
108 } | 94 } |
OLD | NEW |