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

Side by Side Diff: sync/sessions/sync_session_unittest.cc

Issue 93433006: sync: Introduce ModelTypeRegistry and helpers (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Refactor map ownership Created 6 years, 11 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 | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright 2012 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 "sync/sessions/sync_session.h"
6
7 #include "base/compiler_specific.h"
8 #include "base/location.h"
9 #include "base/memory/ref_counted.h"
10 #include "base/message_loop/message_loop.h"
11 #include "sync/engine/syncer_types.h"
12 #include "sync/internal_api/public/base/model_type.h"
13 #include "sync/sessions/status_controller.h"
14 #include "sync/syncable/syncable_id.h"
15 #include "sync/syncable/syncable_write_transaction.h"
16 #include "sync/test/engine/fake_model_worker.h"
17 #include "sync/test/engine/test_directory_setter_upper.h"
18 #include "sync/util/extensions_activity.h"
19 #include "testing/gtest/include/gtest/gtest.h"
20
21 namespace syncer {
22
23 using syncable::WriteTransaction;
24
25 namespace sessions {
26 namespace {
27
28 class SyncSessionTest : public testing::Test,
29 public SyncSession::Delegate {
30 public:
31 SyncSessionTest() : controller_invocations_allowed_(false) {}
32
33 SyncSession* MakeSession() {
34 return SyncSession::Build(context_.get(), this);
35 }
36
37 virtual void SetUp() {
38 extensions_activity_ = new ExtensionsActivity();
39
40 routes_.clear();
41 routes_[BOOKMARKS] = GROUP_UI;
42 routes_[AUTOFILL] = GROUP_DB;
43 scoped_refptr<ModelSafeWorker> passive_worker(
44 new FakeModelWorker(GROUP_PASSIVE));
45 scoped_refptr<ModelSafeWorker> ui_worker(
46 new FakeModelWorker(GROUP_UI));
47 scoped_refptr<ModelSafeWorker> db_worker(
48 new FakeModelWorker(GROUP_DB));
49 workers_.clear();
50 workers_.push_back(passive_worker);
51 workers_.push_back(ui_worker);
52 workers_.push_back(db_worker);
53
54 std::vector<ModelSafeWorker*> workers;
55 GetWorkers(&workers);
56
57 context_.reset(
58 new SyncSessionContext(
59 NULL,
60 NULL,
61 workers,
62 extensions_activity_.get(),
63 std::vector<SyncEngineEventListener*>(),
64 NULL,
65 NULL,
66 true, // enable keystore encryption
67 false, // force enable pre-commit GU avoidance experiment
68 "fake_invalidator_client_id"));
69 context_->set_routing_info(routes_);
70
71 session_.reset(MakeSession());
72 }
73 virtual void TearDown() {
74 session_.reset();
75 context_.reset();
76 }
77
78 virtual void OnThrottled(const base::TimeDelta& throttle_duration) OVERRIDE {
79 FailControllerInvocationIfDisabled("OnThrottled");
80 }
81 virtual void OnTypesThrottled(
82 ModelTypeSet types,
83 const base::TimeDelta& throttle_duration) OVERRIDE {
84 FailControllerInvocationIfDisabled("OnTypesThrottled");
85 }
86 virtual bool IsCurrentlyThrottled() OVERRIDE {
87 FailControllerInvocationIfDisabled("IsSyncingCurrentlySilenced");
88 return false;
89 }
90 virtual void OnReceivedLongPollIntervalUpdate(
91 const base::TimeDelta& new_interval) OVERRIDE {
92 FailControllerInvocationIfDisabled("OnReceivedLongPollIntervalUpdate");
93 }
94 virtual void OnReceivedShortPollIntervalUpdate(
95 const base::TimeDelta& new_interval) OVERRIDE {
96 FailControllerInvocationIfDisabled("OnReceivedShortPollIntervalUpdate");
97 }
98 virtual void OnReceivedSessionsCommitDelay(
99 const base::TimeDelta& new_delay) OVERRIDE {
100 FailControllerInvocationIfDisabled("OnReceivedSessionsCommitDelay");
101 }
102 virtual void OnReceivedClientInvalidationHintBufferSize(
103 int size) OVERRIDE {
104 FailControllerInvocationIfDisabled(
105 "OnReceivedClientInvalidationHintBufferSize");
106 }
107 virtual void OnSyncProtocolError(
108 const sessions::SyncSessionSnapshot& snapshot) OVERRIDE {
109 FailControllerInvocationIfDisabled("SyncProtocolError");
110 }
111
112 void GetWorkers(std::vector<ModelSafeWorker*>* out) const {
113 out->clear();
114 for (std::vector<scoped_refptr<ModelSafeWorker> >::const_iterator it =
115 workers_.begin(); it != workers_.end(); ++it) {
116 out->push_back(it->get());
117 }
118 }
119 void GetModelSafeRoutingInfo(ModelSafeRoutingInfo* out) const {
120 *out = routes_;
121 }
122
123 StatusController* status() { return session_->mutable_status_controller(); }
124 protected:
125 void FailControllerInvocationIfDisabled(const std::string& msg) {
126 if (!controller_invocations_allowed_)
127 FAIL() << msg;
128 }
129
130 ModelTypeSet ParamsMeaningAllEnabledTypes() {
131 ModelTypeSet request_params(BOOKMARKS, AUTOFILL);
132 return request_params;
133 }
134
135 ModelTypeSet ParamsMeaningJustOneEnabledType() {
136 return ModelTypeSet(AUTOFILL);
137 }
138
139 base::MessageLoop message_loop_;
140 bool controller_invocations_allowed_;
141 scoped_ptr<SyncSession> session_;
142 scoped_ptr<SyncSessionContext> context_;
143 std::vector<scoped_refptr<ModelSafeWorker> > workers_;
144 ModelSafeRoutingInfo routes_;
145 scoped_refptr<ExtensionsActivity> extensions_activity_;
146 };
147
148 } // namespace
149 } // namespace sessions
150 } // namespace syncer
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698