| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "sync/engine/sync_session_job.h" | 5 #include "sync/engine/sync_session_job.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/bind_helpers.h" | 8 #include "base/bind_helpers.h" |
| 9 #include "base/time.h" | 9 #include "base/time.h" |
| 10 #include "sync/internal_api/public/base/model_type_invalidation_map.h" | 10 #include "sync/internal_api/public/base/model_type_invalidation_map.h" |
| (...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 113 } | 113 } |
| 114 | 114 |
| 115 private: | 115 private: |
| 116 scoped_ptr<sessions::SyncSessionContext> context_; | 116 scoped_ptr<sessions::SyncSessionContext> context_; |
| 117 std::vector<scoped_refptr<ModelSafeWorker> > workers_; | 117 std::vector<scoped_refptr<ModelSafeWorker> > workers_; |
| 118 MockDelegate delegate_; | 118 MockDelegate delegate_; |
| 119 ModelSafeRoutingInfo routes_; | 119 ModelSafeRoutingInfo routes_; |
| 120 bool config_params_callback_invoked_; | 120 bool config_params_callback_invoked_; |
| 121 }; | 121 }; |
| 122 | 122 |
| 123 TEST_F(SyncSessionJobTest, Clone) { | |
| 124 SyncSessionJob job1(SyncSessionJob::NUDGE, TimeTicks::Now(), | |
| 125 MakeSourceInfo(), ConfigurationParams()); | |
| 126 | |
| 127 scoped_ptr<SyncSession> session1 = MakeSession().Pass(); | |
| 128 sessions::test_util::SimulateSuccess(session1.get(), | |
| 129 job1.start_step(), | |
| 130 job1.end_step()); | |
| 131 job1.Finish(false, session1.get()); | |
| 132 ModelSafeRoutingInfo new_routes; | |
| 133 new_routes[AUTOFILL] = GROUP_PASSIVE; | |
| 134 context()->set_routing_info(new_routes); | |
| 135 scoped_ptr<SyncSessionJob> clone1 = job1.Clone(); | |
| 136 | |
| 137 ExpectClones(&job1, clone1.get()); | |
| 138 | |
| 139 context()->set_routing_info(routes()); | |
| 140 scoped_ptr<SyncSession> session2 = MakeSession().Pass(); | |
| 141 sessions::test_util::SimulateSuccess(session2.get(), | |
| 142 clone1->start_step(), | |
| 143 clone1->end_step()); | |
| 144 clone1->Finish(false, session2.get()); | |
| 145 scoped_ptr<SyncSessionJob> clone2 = clone1->Clone(); | |
| 146 | |
| 147 ExpectClones(clone1.get(), clone2.get()); | |
| 148 | |
| 149 clone1.reset(); | |
| 150 ExpectClones(&job1, clone2.get()); | |
| 151 } | |
| 152 | |
| 153 TEST_F(SyncSessionJobTest, CloneAfterEarlyExit) { | |
| 154 scoped_ptr<SyncSession> session = MakeSession().Pass(); | |
| 155 SyncSessionJob job1(SyncSessionJob::NUDGE, TimeTicks::Now(), | |
| 156 MakeSourceInfo(), ConfigurationParams()); | |
| 157 job1.Finish(true, session.get()); | |
| 158 scoped_ptr<SyncSessionJob> job2 = job1.Clone(); | |
| 159 ExpectClones(&job1, job2.get()); | |
| 160 } | |
| 161 | |
| 162 // Tests interaction between Finish and sync cycle success / failure. | |
| 163 TEST_F(SyncSessionJobTest, Finish) { | |
| 164 SyncSessionJob job1(SyncSessionJob::NUDGE, TimeTicks::Now(), | |
| 165 MakeSourceInfo(), ConfigurationParams()); | |
| 166 | |
| 167 scoped_ptr<SyncSession> session1 = MakeSession().Pass(); | |
| 168 sessions::test_util::SimulateSuccess(session1.get(), | |
| 169 job1.start_step(), | |
| 170 job1.end_step()); | |
| 171 EXPECT_TRUE(job1.Finish(false /* early_exit */, session1.get())); | |
| 172 | |
| 173 scoped_ptr<SyncSessionJob> job2 = job1.Clone(); | |
| 174 scoped_ptr<SyncSession> session2 = MakeSession().Pass(); | |
| 175 sessions::test_util::SimulateConnectionFailure(session2.get(), | |
| 176 job2->start_step(), | |
| 177 job2->end_step()); | |
| 178 EXPECT_FALSE(job2->Finish(false, session2.get())); | |
| 179 } | |
| 180 | |
| 181 TEST_F(SyncSessionJobTest, FinishCallsReadyTask) { | 123 TEST_F(SyncSessionJobTest, FinishCallsReadyTask) { |
| 182 ConfigurationParams params; | 124 ConfigurationParams params; |
| 183 params.ready_task = base::Bind( | 125 params.ready_task = base::Bind( |
| 184 &SyncSessionJobTest::ConfigurationParamsCallback, | 126 &SyncSessionJobTest::ConfigurationParamsCallback, |
| 185 base::Unretained(this)); | 127 base::Unretained(this)); |
| 186 | 128 |
| 187 sessions::SyncSourceInfo info( | 129 sessions::SyncSourceInfo info( |
| 188 sync_pb::GetUpdatesCallerInfo::RECONFIGURATION, | 130 sync_pb::GetUpdatesCallerInfo::RECONFIGURATION, |
| 189 ModelTypeInvalidationMap()); | 131 ModelTypeInvalidationMap()); |
| 190 scoped_ptr<SyncSession> session( | 132 scoped_ptr<SyncSession> session( |
| (...skipping 24 matching lines...) Expand all Loading... |
| 215 | 157 |
| 216 SyncSessionJob job(SyncSessionJob::NUDGE, TimeTicks::Now(), | 158 SyncSessionJob job(SyncSessionJob::NUDGE, TimeTicks::Now(), |
| 217 source_one, ConfigurationParams()); | 159 source_one, ConfigurationParams()); |
| 218 | 160 |
| 219 job.CoalesceSources(source_two); | 161 job.CoalesceSources(source_two); |
| 220 | 162 |
| 221 EXPECT_EQ(source_two.updates_source, job.source_info().updates_source); | 163 EXPECT_EQ(source_two.updates_source, job.source_info().updates_source); |
| 222 } | 164 } |
| 223 | 165 |
| 224 } // namespace syncer | 166 } // namespace syncer |
| OLD | NEW |