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

Side by Side Diff: chrome/browser/sync/engine/download_updates_command_unittest.cc

Issue 8625005: [Sync] Make ModelSafeWorker a true interface (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Sync to head Created 9 years, 1 month 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
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 "chrome/browser/sync/engine/download_updates_command.h" 5 #include "chrome/browser/sync/engine/download_updates_command.h"
6 #include "chrome/browser/sync/protocol/autofill_specifics.pb.h" 6 #include "chrome/browser/sync/protocol/autofill_specifics.pb.h"
7 #include "chrome/browser/sync/protocol/bookmark_specifics.pb.h" 7 #include "chrome/browser/sync/protocol/bookmark_specifics.pb.h"
8 #include "chrome/browser/sync/protocol/preference_specifics.pb.h" 8 #include "chrome/browser/sync/protocol/preference_specifics.pb.h"
9 #include "chrome/browser/sync/protocol/sync.pb.h" 9 #include "chrome/browser/sync/protocol/sync.pb.h"
10 #include "chrome/browser/sync/syncable/directory_manager.h" 10 #include "chrome/browser/sync/syncable/directory_manager.h"
11 #include "chrome/browser/sync/test/engine/fake_model_worker.h"
11 #include "chrome/browser/sync/test/engine/proto_extension_validator.h" 12 #include "chrome/browser/sync/test/engine/proto_extension_validator.h"
12 #include "chrome/browser/sync/test/engine/syncer_command_test.h" 13 #include "chrome/browser/sync/test/engine/syncer_command_test.h"
13 14
14 using ::testing::_; 15 using ::testing::_;
15 namespace browser_sync { 16 namespace browser_sync {
16 17
17 using syncable::FIRST_REAL_MODEL_TYPE; 18 using syncable::FIRST_REAL_MODEL_TYPE;
18 using syncable::MODEL_TYPE_COUNT; 19 using syncable::MODEL_TYPE_COUNT;
19 20
20 // A test fixture for tests exercising DownloadUpdatesCommandTest. 21 // A test fixture for tests exercising DownloadUpdatesCommandTest.
21 class DownloadUpdatesCommandTest : public SyncerCommandTest { 22 class DownloadUpdatesCommandTest : public SyncerCommandTest {
22 protected: 23 protected:
23 DownloadUpdatesCommandTest() {} 24 DownloadUpdatesCommandTest() {}
24 25
25 virtual void SetUp() { 26 virtual void SetUp() {
26 workers()->clear(); 27 workers()->clear();
27 mutable_routing_info()->clear(); 28 mutable_routing_info()->clear();
28 // GROUP_PASSIVE worker. 29 workers()->push_back(
29 workers()->push_back(make_scoped_refptr(new ModelSafeWorker())); 30 make_scoped_refptr(new FakeModelWorker(GROUP_DB)));
31 workers()->push_back(
32 make_scoped_refptr(new FakeModelWorker(GROUP_UI)));
33 (*mutable_routing_info())[syncable::AUTOFILL] = GROUP_DB;
34 (*mutable_routing_info())[syncable::BOOKMARKS] = GROUP_UI;
35 (*mutable_routing_info())[syncable::PREFERENCES] = GROUP_UI;
30 SyncerCommandTest::SetUp(); 36 SyncerCommandTest::SetUp();
31 } 37 }
32 38
33 virtual void SetRoutingInfo(const syncable::ModelTypeSet& types) { 39 DownloadUpdatesCommand command_;
34 for (syncable::ModelTypeSet::const_iterator iter = types.begin();
35 iter != types.end(); ++iter) {
36 (*mutable_routing_info())[*iter] = GROUP_PASSIVE;
37 }
38 }
39 40
40 DownloadUpdatesCommand command_;
41 private: 41 private:
42 DISALLOW_COPY_AND_ASSIGN(DownloadUpdatesCommandTest); 42 DISALLOW_COPY_AND_ASSIGN(DownloadUpdatesCommandTest);
43 }; 43 };
44 44
45 TEST_F(DownloadUpdatesCommandTest, SetRequestedTypes) { 45 TEST_F(DownloadUpdatesCommandTest, SetRequestedTypes) {
46 { 46 {
47 SCOPED_TRACE("Several enabled datatypes, spread out across groups."); 47 SCOPED_TRACE("Several enabled datatypes, spread out across groups.");
48 syncable::ModelTypeBitSet enabled_types; 48 syncable::ModelTypeBitSet enabled_types;
49 enabled_types[syncable::BOOKMARKS] = true; 49 enabled_types[syncable::BOOKMARKS] = true;
50 enabled_types[syncable::AUTOFILL] = true; 50 enabled_types[syncable::AUTOFILL] = true;
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
99 sync_pb::EntitySpecifics get_updates_filter; 99 sync_pb::EntitySpecifics get_updates_filter;
100 command_.SetRequestedTypes(enabled_types, &get_updates_filter); 100 command_.SetRequestedTypes(enabled_types, &get_updates_filter);
101 ProtoExtensionValidator<sync_pb::EntitySpecifics> v(get_updates_filter); 101 ProtoExtensionValidator<sync_pb::EntitySpecifics> v(get_updates_filter);
102 v.ExpectHasExtension(sync_pb::preference); 102 v.ExpectHasExtension(sync_pb::preference);
103 v.ExpectNoOtherFieldsOrExtensions(); 103 v.ExpectNoOtherFieldsOrExtensions();
104 } 104 }
105 } 105 }
106 106
107 TEST_F(DownloadUpdatesCommandTest, ExecuteNoPayloads) { 107 TEST_F(DownloadUpdatesCommandTest, ExecuteNoPayloads) {
108 ConfigureMockServerConnection(); 108 ConfigureMockServerConnection();
109 109 mock_server()->ExpectGetUpdatesRequestTypes(
110 syncable::ModelTypeSet types; 110 ModelTypeBitSetFromSet(GetRoutingInfoTypes(routing_info())));
111 types.insert(syncable::AUTOFILL);
112 types.insert(syncable::BOOKMARKS);
113 types.insert(syncable::PREFERENCES);
114 SetRoutingInfo(types);
115 mock_server()->ExpectGetUpdatesRequestTypes(ModelTypeBitSetFromSet(types));
116 command_.ExecuteImpl(session()); 111 command_.ExecuteImpl(session());
117 } 112 }
118 113
119 TEST_F(DownloadUpdatesCommandTest, ExecuteWithPayloads) { 114 TEST_F(DownloadUpdatesCommandTest, ExecuteWithPayloads) {
120 ConfigureMockServerConnection(); 115 ConfigureMockServerConnection();
121
122 syncable::ModelTypeSet types;
123 types.insert(syncable::AUTOFILL);
124 types.insert(syncable::BOOKMARKS);
125 types.insert(syncable::PREFERENCES);
126 SetRoutingInfo(types);
127 sessions::SyncSourceInfo source; 116 sessions::SyncSourceInfo source;
128 source.types[syncable::AUTOFILL] = "autofill_payload"; 117 source.types[syncable::AUTOFILL] = "autofill_payload";
129 source.types[syncable::BOOKMARKS] = "bookmark_payload"; 118 source.types[syncable::BOOKMARKS] = "bookmark_payload";
130 source.types[syncable::PREFERENCES] = "preferences_payload"; 119 source.types[syncable::PREFERENCES] = "preferences_payload";
131 mock_server()->ExpectGetUpdatesRequestTypes(ModelTypeBitSetFromSet(types)); 120 mock_server()->ExpectGetUpdatesRequestTypes(
121 ModelTypeBitSetFromSet(GetRoutingInfoTypes(routing_info())));
132 mock_server()->ExpectGetUpdatesRequestPayloads(source.types); 122 mock_server()->ExpectGetUpdatesRequestPayloads(source.types);
133 command_.ExecuteImpl(session(source)); 123 command_.ExecuteImpl(session(source));
134 } 124 }
135 125
136 TEST_F(DownloadUpdatesCommandTest, VerifyAppendDebugInfo) { 126 TEST_F(DownloadUpdatesCommandTest, VerifyAppendDebugInfo) {
137 sync_pb::DebugInfo debug_info; 127 sync_pb::DebugInfo debug_info;
138 EXPECT_CALL(*(mock_debug_info_getter()), GetAndClearDebugInfo(_)) 128 EXPECT_CALL(*(mock_debug_info_getter()), GetAndClearDebugInfo(_))
139 .Times(1); 129 .Times(1);
140 command_.AppendClientDebugInfoIfNeeded(session(), &debug_info); 130 command_.AppendClientDebugInfoIfNeeded(session(), &debug_info);
141 131
142 // Now try to add it once more and make sure |GetAndClearDebugInfo| is not 132 // Now try to add it once more and make sure |GetAndClearDebugInfo| is not
143 // called. 133 // called.
144 command_.AppendClientDebugInfoIfNeeded(session(), &debug_info); 134 command_.AppendClientDebugInfoIfNeeded(session(), &debug_info);
145 } 135 }
146 136
147 } // namespace browser_sync 137 } // namespace browser_sync
OLDNEW
« no previous file with comments | « chrome/browser/sync/engine/apply_updates_command_unittest.cc ('k') | chrome/browser/sync/engine/mock_model_safe_workers.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698