| 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 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 90 const ModelSafeRoutingInfo& routes() { return routes_; } | 90 const ModelSafeRoutingInfo& routes() { return routes_; } |
| 91 | 91 |
| 92 // Checks that the two jobs are "clones" as defined by SyncSessionJob, | 92 // Checks that the two jobs are "clones" as defined by SyncSessionJob, |
| 93 // minus location and SyncSession checking, for reuse in different | 93 // minus location and SyncSession checking, for reuse in different |
| 94 // scenarios. | 94 // scenarios. |
| 95 void ExpectClonesBase(SyncSessionJob* job, SyncSessionJob* clone) { | 95 void ExpectClonesBase(SyncSessionJob* job, SyncSessionJob* clone) { |
| 96 EXPECT_EQ(job->purpose(), clone->purpose()); | 96 EXPECT_EQ(job->purpose(), clone->purpose()); |
| 97 EXPECT_EQ(job->scheduled_start(), clone->scheduled_start()); | 97 EXPECT_EQ(job->scheduled_start(), clone->scheduled_start()); |
| 98 EXPECT_EQ(job->start_step(), clone->start_step()); | 98 EXPECT_EQ(job->start_step(), clone->start_step()); |
| 99 EXPECT_EQ(job->end_step(), clone->end_step()); | 99 EXPECT_EQ(job->end_step(), clone->end_step()); |
| 100 EXPECT_FALSE(clone->is_canary()); | |
| 101 } | 100 } |
| 102 | 101 |
| 103 private: | 102 private: |
| 104 scoped_ptr<sessions::SyncSessionContext> context_; | 103 scoped_ptr<sessions::SyncSessionContext> context_; |
| 105 std::vector<scoped_refptr<ModelSafeWorker> > workers_; | 104 std::vector<scoped_refptr<ModelSafeWorker> > workers_; |
| 106 MockDelegate delegate_; | 105 MockDelegate delegate_; |
| 107 ModelSafeRoutingInfo routes_; | 106 ModelSafeRoutingInfo routes_; |
| 108 bool config_params_callback_invoked_; | 107 bool config_params_callback_invoked_; |
| 109 }; | 108 }; |
| 110 | 109 |
| 111 TEST_F(SyncSessionJobTest, Clone) { | 110 TEST_F(SyncSessionJobTest, Clone) { |
| 112 SyncSessionJob job1(SyncSessionJob::NUDGE, TimeTicks::Now(), | 111 SyncSessionJob job1(SyncSessionJob::NUDGE, TimeTicks::Now(), |
| 113 NewLocalSession().Pass(), ConfigurationParams()); | 112 NewLocalSession().Pass(), ConfigurationParams()); |
| 114 | 113 |
| 115 sessions::test_util::SimulateSuccess(job1.mutable_session(), | 114 sessions::test_util::SimulateSuccess(job1.mutable_session(), |
| 116 job1.start_step(), | 115 job1.start_step(), |
| 117 job1.end_step()); | 116 job1.end_step()); |
| 118 job1.Finish(false); | 117 job1.Finish(false); |
| 119 ModelSafeRoutingInfo new_routes; | 118 ModelSafeRoutingInfo new_routes; |
| 120 new_routes[AUTOFILL] = GROUP_PASSIVE; | 119 new_routes[AUTOFILL] = GROUP_PASSIVE; |
| 121 context()->set_routing_info(new_routes); | 120 context()->set_routing_info(new_routes); |
| 122 scoped_ptr<SyncSessionJob> clone1 = job1.Clone(); | 121 scoped_ptr<SyncSessionJob> clone1 = job1.Clone(); |
| 123 | 122 |
| 124 ExpectClonesBase(&job1, clone1.get()); | 123 ExpectClonesBase(&job1, clone1.get()); |
| 125 EXPECT_NE(job1.session(), clone1->session()); | 124 EXPECT_NE(job1.session(), clone1->session()); |
| 126 | 125 |
| 127 context()->set_routing_info(routes()); | 126 context()->set_routing_info(routes()); |
| 128 clone1->GrantCanaryPrivilege(); | |
| 129 sessions::test_util::SimulateSuccess(clone1->mutable_session(), | 127 sessions::test_util::SimulateSuccess(clone1->mutable_session(), |
| 130 clone1->start_step(), | 128 clone1->start_step(), |
| 131 clone1->end_step()); | 129 clone1->end_step()); |
| 132 clone1->Finish(false); | 130 clone1->Finish(false); |
| 133 scoped_ptr<SyncSessionJob> clone2 = clone1->Clone(); | 131 scoped_ptr<SyncSessionJob> clone2 = clone1->Clone(); |
| 134 | 132 |
| 135 ExpectClonesBase(clone1.get(), clone2.get()); | 133 ExpectClonesBase(clone1.get(), clone2.get()); |
| 136 EXPECT_NE(clone1->session(), clone2->session()); | 134 EXPECT_NE(clone1->session(), clone2->session()); |
| 137 EXPECT_NE(clone1->session(), clone2->session()); | 135 EXPECT_NE(clone1->session(), clone2->session()); |
| 138 | 136 |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 200 SyncSessionJob job1(SyncSessionJob::CONFIGURATION, TimeTicks::Now(), | 198 SyncSessionJob job1(SyncSessionJob::CONFIGURATION, TimeTicks::Now(), |
| 201 session.Pass(), params); | 199 session.Pass(), params); |
| 202 sessions::test_util::SimulateSuccess(job1.mutable_session(), | 200 sessions::test_util::SimulateSuccess(job1.mutable_session(), |
| 203 job1.start_step(), | 201 job1.start_step(), |
| 204 job1.end_step()); | 202 job1.end_step()); |
| 205 job1.Finish(false); | 203 job1.Finish(false); |
| 206 EXPECT_TRUE(config_params_callback_invoked()); | 204 EXPECT_TRUE(config_params_callback_invoked()); |
| 207 } | 205 } |
| 208 | 206 |
| 209 } // namespace syncer | 207 } // namespace syncer |
| OLD | NEW |