OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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 "base/memory/scoped_ptr.h" | 5 #include "base/memory/scoped_ptr.h" |
6 #include "chrome/browser/sync/profile_sync_service_factory.h" | 6 #include "chrome/browser/sync/profile_sync_service_factory.h" |
7 #include "chrome/browser/sync/profile_sync_service_mock.h" | 7 #include "chrome/browser/sync/profile_sync_service_mock.h" |
8 #include "chrome/browser/sync/sync_startup_tracker.h" | 8 #include "chrome/browser/sync/sync_startup_tracker.h" |
9 #include "content/public/test/test_browser_thread_bundle.h" | 9 #include "content/public/test/test_browser_thread_bundle.h" |
10 #include "testing/gmock/include/gmock/gmock.h" | 10 #include "testing/gmock/include/gmock/gmock.h" |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
49 | 49 |
50 void TearDown() override { profile_.reset(); } | 50 void TearDown() override { profile_.reset(); } |
51 | 51 |
52 void SetupNonInitializedPSS() { | 52 void SetupNonInitializedPSS() { |
53 EXPECT_CALL(*mock_pss_, GetAuthError()) | 53 EXPECT_CALL(*mock_pss_, GetAuthError()) |
54 .WillRepeatedly(ReturnRef(no_error_)); | 54 .WillRepeatedly(ReturnRef(no_error_)); |
55 EXPECT_CALL(*mock_pss_, backend_initialized()) | 55 EXPECT_CALL(*mock_pss_, backend_initialized()) |
56 .WillRepeatedly(Return(false)); | 56 .WillRepeatedly(Return(false)); |
57 EXPECT_CALL(*mock_pss_, HasUnrecoverableError()) | 57 EXPECT_CALL(*mock_pss_, HasUnrecoverableError()) |
58 .WillRepeatedly(Return(false)); | 58 .WillRepeatedly(Return(false)); |
59 EXPECT_CALL(*mock_pss_, IsSyncEnabledAndLoggedIn()) | 59 EXPECT_CALL(*mock_pss_, CanSyncStart()).WillRepeatedly(Return(true)); |
60 .WillRepeatedly(Return(true)); | |
61 } | 60 } |
62 | 61 |
63 content::TestBrowserThreadBundle thread_bundle_; | 62 content::TestBrowserThreadBundle thread_bundle_; |
64 GoogleServiceAuthError no_error_; | 63 GoogleServiceAuthError no_error_; |
65 scoped_ptr<TestingProfile> profile_; | 64 scoped_ptr<TestingProfile> profile_; |
66 ProfileSyncServiceMock* mock_pss_; | 65 ProfileSyncServiceMock* mock_pss_; |
67 MockObserver observer_; | 66 MockObserver observer_; |
68 }; | 67 }; |
69 | 68 |
70 TEST_F(SyncStartupTrackerTest, SyncAlreadyInitialized) { | 69 TEST_F(SyncStartupTrackerTest, SyncAlreadyInitialized) { |
71 EXPECT_CALL(*mock_pss_, backend_initialized()).WillRepeatedly(Return(true)); | 70 EXPECT_CALL(*mock_pss_, backend_initialized()).WillRepeatedly(Return(true)); |
72 EXPECT_CALL(*mock_pss_, IsSyncEnabledAndLoggedIn()) | 71 EXPECT_CALL(*mock_pss_, CanSyncStart()).WillRepeatedly(Return(true)); |
73 .WillRepeatedly(Return(true)); | |
74 EXPECT_CALL(observer_, SyncStartupCompleted()); | 72 EXPECT_CALL(observer_, SyncStartupCompleted()); |
75 SyncStartupTracker tracker(profile_.get(), &observer_); | 73 SyncStartupTracker tracker(profile_.get(), &observer_); |
76 } | 74 } |
77 | 75 |
78 TEST_F(SyncStartupTrackerTest, SyncNotSignedIn) { | 76 TEST_F(SyncStartupTrackerTest, SyncNotSignedIn) { |
79 // Make sure that we get a SyncStartupFailed() callback if sync is not logged | 77 // Make sure that we get a SyncStartupFailed() callback if sync is not logged |
80 // in. | 78 // in. |
81 EXPECT_CALL(*mock_pss_, backend_initialized()).WillRepeatedly(Return(false)); | 79 EXPECT_CALL(*mock_pss_, backend_initialized()).WillRepeatedly(Return(false)); |
82 EXPECT_CALL(*mock_pss_, IsSyncEnabledAndLoggedIn()).WillRepeatedly( | 80 EXPECT_CALL(*mock_pss_, CanSyncStart()).WillRepeatedly(Return(false)); |
83 Return(false)); | |
84 EXPECT_CALL(observer_, SyncStartupFailed()); | 81 EXPECT_CALL(observer_, SyncStartupFailed()); |
85 SyncStartupTracker tracker(profile_.get(), &observer_); | 82 SyncStartupTracker tracker(profile_.get(), &observer_); |
86 } | 83 } |
87 | 84 |
88 TEST_F(SyncStartupTrackerTest, SyncAuthError) { | 85 TEST_F(SyncStartupTrackerTest, SyncAuthError) { |
89 // Make sure that we get a SyncStartupFailed() callback if sync gets an auth | 86 // Make sure that we get a SyncStartupFailed() callback if sync gets an auth |
90 // error. | 87 // error. |
91 EXPECT_CALL(*mock_pss_, backend_initialized()).WillRepeatedly(Return(false)); | 88 EXPECT_CALL(*mock_pss_, backend_initialized()).WillRepeatedly(Return(false)); |
92 EXPECT_CALL(*mock_pss_, IsSyncEnabledAndLoggedIn()).WillRepeatedly( | 89 EXPECT_CALL(*mock_pss_, CanSyncStart()).WillRepeatedly(Return(true)); |
93 Return(true)); | |
94 GoogleServiceAuthError error( | 90 GoogleServiceAuthError error( |
95 GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS); | 91 GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS); |
96 EXPECT_CALL(*mock_pss_, GetAuthError()).WillRepeatedly(ReturnRef(error)); | 92 EXPECT_CALL(*mock_pss_, GetAuthError()).WillRepeatedly(ReturnRef(error)); |
97 EXPECT_CALL(observer_, SyncStartupFailed()); | 93 EXPECT_CALL(observer_, SyncStartupFailed()); |
98 SyncStartupTracker tracker(profile_.get(), &observer_); | 94 SyncStartupTracker tracker(profile_.get(), &observer_); |
99 } | 95 } |
100 | 96 |
101 TEST_F(SyncStartupTrackerTest, SyncDelayedInitialization) { | 97 TEST_F(SyncStartupTrackerTest, SyncDelayedInitialization) { |
102 // Non-initialized PSS should result in no callbacks to the observer. | 98 // Non-initialized PSS should result in no callbacks to the observer. |
103 SetupNonInitializedPSS(); | 99 SetupNonInitializedPSS(); |
(...skipping 11 matching lines...) Expand all Loading... |
115 // Non-initialized PSS should result in no callbacks to the observer. | 111 // Non-initialized PSS should result in no callbacks to the observer. |
116 SetupNonInitializedPSS(); | 112 SetupNonInitializedPSS(); |
117 EXPECT_CALL(observer_, SyncStartupCompleted()).Times(0); | 113 EXPECT_CALL(observer_, SyncStartupCompleted()).Times(0); |
118 EXPECT_CALL(observer_, SyncStartupFailed()).Times(0); | 114 EXPECT_CALL(observer_, SyncStartupFailed()).Times(0); |
119 SyncStartupTracker tracker(profile_.get(), &observer_); | 115 SyncStartupTracker tracker(profile_.get(), &observer_); |
120 Mock::VerifyAndClearExpectations(&observer_); | 116 Mock::VerifyAndClearExpectations(&observer_); |
121 Mock::VerifyAndClearExpectations(mock_pss_); | 117 Mock::VerifyAndClearExpectations(mock_pss_); |
122 | 118 |
123 // Now, mark the PSS as having an auth error. | 119 // Now, mark the PSS as having an auth error. |
124 EXPECT_CALL(*mock_pss_, backend_initialized()).WillRepeatedly(Return(false)); | 120 EXPECT_CALL(*mock_pss_, backend_initialized()).WillRepeatedly(Return(false)); |
125 EXPECT_CALL(*mock_pss_, IsSyncEnabledAndLoggedIn()).WillRepeatedly( | 121 EXPECT_CALL(*mock_pss_, CanSyncStart()).WillRepeatedly(Return(true)); |
126 Return(true)); | |
127 GoogleServiceAuthError error( | 122 GoogleServiceAuthError error( |
128 GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS); | 123 GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS); |
129 EXPECT_CALL(*mock_pss_, GetAuthError()).WillRepeatedly(ReturnRef(error)); | 124 EXPECT_CALL(*mock_pss_, GetAuthError()).WillRepeatedly(ReturnRef(error)); |
130 EXPECT_CALL(observer_, SyncStartupFailed()); | 125 EXPECT_CALL(observer_, SyncStartupFailed()); |
131 tracker.OnStateChanged(); | 126 tracker.OnStateChanged(); |
132 } | 127 } |
133 | 128 |
134 TEST_F(SyncStartupTrackerTest, SyncDelayedUnrecoverableError) { | 129 TEST_F(SyncStartupTrackerTest, SyncDelayedUnrecoverableError) { |
135 // Non-initialized PSS should result in no callbacks to the observer. | 130 // Non-initialized PSS should result in no callbacks to the observer. |
136 SetupNonInitializedPSS(); | 131 SetupNonInitializedPSS(); |
137 EXPECT_CALL(observer_, SyncStartupCompleted()).Times(0); | 132 EXPECT_CALL(observer_, SyncStartupCompleted()).Times(0); |
138 EXPECT_CALL(observer_, SyncStartupFailed()).Times(0); | 133 EXPECT_CALL(observer_, SyncStartupFailed()).Times(0); |
139 SyncStartupTracker tracker(profile_.get(), &observer_); | 134 SyncStartupTracker tracker(profile_.get(), &observer_); |
140 Mock::VerifyAndClearExpectations(&observer_); | 135 Mock::VerifyAndClearExpectations(&observer_); |
141 Mock::VerifyAndClearExpectations(mock_pss_); | 136 Mock::VerifyAndClearExpectations(mock_pss_); |
142 | 137 |
143 // Now, mark the PSS as having an unrecoverable error. | 138 // Now, mark the PSS as having an unrecoverable error. |
144 EXPECT_CALL(*mock_pss_, backend_initialized()).WillRepeatedly(Return(false)); | 139 EXPECT_CALL(*mock_pss_, backend_initialized()).WillRepeatedly(Return(false)); |
145 EXPECT_CALL(*mock_pss_, IsSyncEnabledAndLoggedIn()).WillRepeatedly( | 140 EXPECT_CALL(*mock_pss_, CanSyncStart()).WillRepeatedly(Return(true)); |
146 Return(true)); | |
147 GoogleServiceAuthError error( | 141 GoogleServiceAuthError error( |
148 GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS); | 142 GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS); |
149 EXPECT_CALL(*mock_pss_, GetAuthError()).WillRepeatedly(ReturnRef(error)); | 143 EXPECT_CALL(*mock_pss_, GetAuthError()).WillRepeatedly(ReturnRef(error)); |
150 EXPECT_CALL(observer_, SyncStartupFailed()); | 144 EXPECT_CALL(observer_, SyncStartupFailed()); |
151 tracker.OnStateChanged(); | 145 tracker.OnStateChanged(); |
152 } | 146 } |
153 | 147 |
154 } // namespace | 148 } // namespace |
OLD | NEW |