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

Unified Diff: sync/sessions/model_type_registry_unittest.cc

Issue 2130453004: [Sync] Move //sync to //components/sync. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase. Created 4 years, 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « sync/sessions/model_type_registry.cc ('k') | sync/sessions/nudge_tracker.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sync/sessions/model_type_registry_unittest.cc
diff --git a/sync/sessions/model_type_registry_unittest.cc b/sync/sessions/model_type_registry_unittest.cc
deleted file mode 100644
index 82ba8faabd88348217a0ece39f42f35a6c78fd15..0000000000000000000000000000000000000000
--- a/sync/sessions/model_type_registry_unittest.cc
+++ /dev/null
@@ -1,281 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "sync/sessions/model_type_registry.h"
-
-#include <utility>
-#include <vector>
-
-#include "base/deferred_sequenced_task_runner.h"
-#include "base/memory/ptr_util.h"
-#include "base/message_loop/message_loop.h"
-#include "sync/internal_api/public/activation_context.h"
-#include "sync/internal_api/public/base/model_type.h"
-#include "sync/internal_api/public/test/fake_model_type_processor.h"
-#include "sync/protocol/data_type_state.pb.h"
-#include "sync/syncable/directory.h"
-#include "sync/syncable/model_neutral_mutable_entry.h"
-#include "sync/syncable/syncable_model_neutral_write_transaction.h"
-#include "sync/test/engine/fake_model_worker.h"
-#include "sync/test/engine/mock_nudge_handler.h"
-#include "sync/test/engine/test_directory_setter_upper.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace syncer {
-
-class ModelTypeRegistryTest : public ::testing::Test {
- public:
- ModelTypeRegistryTest();
- void SetUp() override;
- void TearDown() override;
-
- ModelTypeRegistry* registry();
-
- static sync_pb::DataTypeState MakeInitialDataTypeState(ModelType type) {
- sync_pb::DataTypeState state;
- state.mutable_progress_marker()->set_data_type_id(
- GetSpecificsFieldNumberFromModelType(type));
- return state;
- }
-
- static std::unique_ptr<syncer_v2::ActivationContext> MakeActivationContext(
- const sync_pb::DataTypeState& data_type_state,
- std::unique_ptr<syncer_v2::ModelTypeProcessor> type_processor) {
- std::unique_ptr<syncer_v2::ActivationContext> context =
- base::WrapUnique(new syncer_v2::ActivationContext);
- context->data_type_state = data_type_state;
- context->type_processor = std::move(type_processor);
- return context;
- }
-
- void MarkInitialSyncEndedForDirectoryType(ModelType type) {
- syncable::ModelNeutralWriteTransaction trans(FROM_HERE, syncable::SYNCER,
- directory());
- syncable::ModelNeutralMutableEntry entry(
- &trans, syncable::CREATE_NEW_TYPE_ROOT, type);
- ASSERT_TRUE(entry.good());
- entry.PutServerIsDir(true);
- entry.PutUniqueServerTag(ModelTypeToRootTag(type));
- directory()->MarkInitialSyncEndedForType(&trans, type);
- }
-
- private:
- syncable::Directory* directory();
-
- base::MessageLoop message_loop_;
-
- TestDirectorySetterUpper dir_maker_;
- std::vector<scoped_refptr<ModelSafeWorker> > workers_;
- std::unique_ptr<ModelTypeRegistry> registry_;
- MockNudgeHandler mock_nudge_handler_;
-};
-
-ModelTypeRegistryTest::ModelTypeRegistryTest() {}
-
-void ModelTypeRegistryTest::SetUp() {
- dir_maker_.SetUp();
- scoped_refptr<ModelSafeWorker> passive_worker(
- new FakeModelWorker(GROUP_PASSIVE));
- scoped_refptr<ModelSafeWorker> ui_worker(
- new FakeModelWorker(GROUP_UI));
- scoped_refptr<ModelSafeWorker> db_worker(
- new FakeModelWorker(GROUP_DB));
- workers_.push_back(passive_worker);
- workers_.push_back(ui_worker);
- workers_.push_back(db_worker);
-
- registry_.reset(
- new ModelTypeRegistry(workers_, directory(), &mock_nudge_handler_));
-}
-
-void ModelTypeRegistryTest::TearDown() {
- registry_.reset();
- workers_.clear();
- dir_maker_.TearDown();
-}
-
-ModelTypeRegistry* ModelTypeRegistryTest::registry() {
- return registry_.get();
-}
-
-syncable::Directory* ModelTypeRegistryTest::directory() {
- return dir_maker_.directory();
-}
-
-// Create some directory update handlers and commit contributors.
-//
-// We don't get to inspect any of the state we're modifying. This test is
-// useful only for detecting crashes or memory leaks.
-TEST_F(ModelTypeRegistryTest, SetEnabledDirectoryTypes_Once) {
- ModelSafeRoutingInfo routing_info;
- routing_info.insert(std::make_pair(NIGORI, GROUP_PASSIVE));
- routing_info.insert(std::make_pair(BOOKMARKS, GROUP_UI));
- routing_info.insert(std::make_pair(AUTOFILL, GROUP_DB));
- routing_info.insert(std::make_pair(APPS, GROUP_NON_BLOCKING));
-
- registry()->SetEnabledDirectoryTypes(routing_info);
-
- UpdateHandlerMap* update_handler_map = registry()->update_handler_map();
- // Apps is non-blocking type, SetEnabledDirectoryTypes shouldn't instantiate
- // update_handler for it.
- EXPECT_TRUE(update_handler_map->find(APPS) == update_handler_map->end());
-}
-
-// Try two different routing info settings.
-//
-// We don't get to inspect any of the state we're modifying. This test is
-// useful only for detecting crashes or memory leaks.
-TEST_F(ModelTypeRegistryTest, SetEnabledDirectoryTypes_Repeatedly) {
- ModelSafeRoutingInfo routing_info1;
- routing_info1.insert(std::make_pair(NIGORI, GROUP_PASSIVE));
- routing_info1.insert(std::make_pair(BOOKMARKS, GROUP_PASSIVE));
- routing_info1.insert(std::make_pair(AUTOFILL, GROUP_PASSIVE));
- routing_info1.insert(std::make_pair(APPS, GROUP_NON_BLOCKING));
-
- registry()->SetEnabledDirectoryTypes(routing_info1);
-
- ModelSafeRoutingInfo routing_info2;
- routing_info2.insert(std::make_pair(NIGORI, GROUP_PASSIVE));
- routing_info2.insert(std::make_pair(BOOKMARKS, GROUP_UI));
- routing_info2.insert(std::make_pair(AUTOFILL, GROUP_DB));
- routing_info2.insert(std::make_pair(APPS, GROUP_NON_BLOCKING));
-
- registry()->SetEnabledDirectoryTypes(routing_info2);
-}
-
-// Test removing all types from the list.
-//
-// We don't get to inspect any of the state we're modifying. This test is
-// useful only for detecting crashes or memory leaks.
-TEST_F(ModelTypeRegistryTest, SetEnabledDirectoryTypes_Clear) {
- ModelSafeRoutingInfo routing_info1;
- routing_info1.insert(std::make_pair(NIGORI, GROUP_PASSIVE));
- routing_info1.insert(std::make_pair(BOOKMARKS, GROUP_UI));
- routing_info1.insert(std::make_pair(AUTOFILL, GROUP_DB));
- routing_info1.insert(std::make_pair(APPS, GROUP_NON_BLOCKING));
-
- registry()->SetEnabledDirectoryTypes(routing_info1);
-
- ModelSafeRoutingInfo routing_info2;
- registry()->SetEnabledDirectoryTypes(routing_info2);
-}
-
-// Test disabling then re-enabling some directory types.
-//
-// We don't get to inspect any of the state we're modifying. This test is
-// useful only for detecting crashes or memory leaks.
-TEST_F(ModelTypeRegistryTest, SetEnabledDirectoryTypes_OffAndOn) {
- ModelSafeRoutingInfo routing_info1;
- routing_info1.insert(std::make_pair(NIGORI, GROUP_PASSIVE));
- routing_info1.insert(std::make_pair(BOOKMARKS, GROUP_UI));
- routing_info1.insert(std::make_pair(AUTOFILL, GROUP_DB));
- routing_info1.insert(std::make_pair(APPS, GROUP_NON_BLOCKING));
-
- registry()->SetEnabledDirectoryTypes(routing_info1);
-
- ModelSafeRoutingInfo routing_info2;
- registry()->SetEnabledDirectoryTypes(routing_info2);
-
- registry()->SetEnabledDirectoryTypes(routing_info1);
-}
-
-TEST_F(ModelTypeRegistryTest, NonBlockingTypes) {
- EXPECT_TRUE(registry()->GetEnabledTypes().Empty());
-
- registry()->ConnectType(
- syncer::THEMES,
- MakeActivationContext(
- MakeInitialDataTypeState(THEMES),
- base::WrapUnique(new syncer_v2::FakeModelTypeProcessor())));
- EXPECT_EQ(ModelTypeSet(syncer::THEMES), registry()->GetEnabledTypes());
-
- registry()->ConnectType(
- syncer::SESSIONS,
- MakeActivationContext(
- MakeInitialDataTypeState(SESSIONS),
- base::WrapUnique(new syncer_v2::FakeModelTypeProcessor())));
- EXPECT_EQ(ModelTypeSet(syncer::THEMES, syncer::SESSIONS),
- registry()->GetEnabledTypes());
-
- registry()->DisconnectType(syncer::THEMES);
- EXPECT_EQ(ModelTypeSet(syncer::SESSIONS), registry()->GetEnabledTypes());
-
- // Allow ModelTypeRegistry destruction to delete the
- // Sessions' ModelTypeSyncWorker.
-}
-
-TEST_F(ModelTypeRegistryTest, NonBlockingTypesWithDirectoryTypes) {
- ModelSafeRoutingInfo routing_info1;
- routing_info1.insert(std::make_pair(NIGORI, GROUP_PASSIVE));
- routing_info1.insert(std::make_pair(BOOKMARKS, GROUP_UI));
- routing_info1.insert(std::make_pair(AUTOFILL, GROUP_DB));
- routing_info1.insert(std::make_pair(THEMES, GROUP_NON_BLOCKING));
- routing_info1.insert(std::make_pair(SESSIONS, GROUP_NON_BLOCKING));
-
- ModelTypeSet directory_types(NIGORI, BOOKMARKS, AUTOFILL);
-
- ModelTypeSet current_types;
- EXPECT_TRUE(registry()->GetEnabledTypes().Empty());
-
- // Add the themes non-blocking type.
- registry()->ConnectType(
- syncer::THEMES,
- MakeActivationContext(
- MakeInitialDataTypeState(THEMES),
- base::WrapUnique(new syncer_v2::FakeModelTypeProcessor())));
- current_types.Put(syncer::THEMES);
- EXPECT_EQ(current_types, registry()->GetEnabledTypes());
-
- // Add some directory types.
- registry()->SetEnabledDirectoryTypes(routing_info1);
- current_types.PutAll(directory_types);
- EXPECT_EQ(current_types, registry()->GetEnabledTypes());
-
- // Add sessions non-blocking type.
- registry()->ConnectType(
- syncer::SESSIONS,
- MakeActivationContext(
- MakeInitialDataTypeState(SESSIONS),
- base::WrapUnique(new syncer_v2::FakeModelTypeProcessor())));
- current_types.Put(syncer::SESSIONS);
- EXPECT_EQ(current_types, registry()->GetEnabledTypes());
-
- // Remove themes non-blocking type.
- registry()->DisconnectType(syncer::THEMES);
- current_types.Remove(syncer::THEMES);
- EXPECT_EQ(current_types, registry()->GetEnabledTypes());
-
- // Clear all directory types.
- ModelSafeRoutingInfo routing_info2;
- registry()->SetEnabledDirectoryTypes(routing_info2);
- current_types.RemoveAll(directory_types);
- EXPECT_EQ(current_types, registry()->GetEnabledTypes());
-}
-
-// Tests correct result returned from GetInitialSyncEndedTypes.
-TEST_F(ModelTypeRegistryTest, GetInitialSyncEndedTypes) {
- ModelSafeRoutingInfo routing_info;
- // Add two directory and two non-blocking types.
- routing_info.insert(std::make_pair(AUTOFILL, GROUP_PASSIVE));
- routing_info.insert(std::make_pair(BOOKMARKS, GROUP_PASSIVE));
- routing_info.insert(std::make_pair(THEMES, GROUP_NON_BLOCKING));
- routing_info.insert(std::make_pair(SESSIONS, GROUP_NON_BLOCKING));
- registry()->SetEnabledDirectoryTypes(routing_info);
-
- // Only Autofill and Themes types finished initial sync.
- MarkInitialSyncEndedForDirectoryType(AUTOFILL);
-
- sync_pb::DataTypeState data_type_state = MakeInitialDataTypeState(THEMES);
- data_type_state.set_initial_sync_done(true);
- registry()->ConnectType(
- syncer::THEMES,
- MakeActivationContext(
- data_type_state,
- base::WrapUnique(new syncer_v2::FakeModelTypeProcessor())));
-
- EXPECT_EQ(ModelTypeSet(AUTOFILL, THEMES),
- registry()->GetInitialSyncEndedTypes());
-}
-
-} // namespace syncer
« no previous file with comments | « sync/sessions/model_type_registry.cc ('k') | sync/sessions/nudge_tracker.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698