blob: ed02d5e1f85ded0810bb4b5d623cb7f6c0c0a928 [file]
// Copyright 2020 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "components/sync/test/fake_server_nigori_helper.h"
#include <string>
#include <vector>
#include "components/sync/protocol/entity_specifics.pb.h"
#include "components/sync/protocol/nigori_specifics.pb.h"
#include "components/sync/protocol/sync_entity.pb.h"
#include "components/sync/test/fake_server.h"
#include "components/sync/test/nigori_test_utils.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace fake_server {
bool GetServerNigori(FakeServer* fake_server,
sync_pb::NigoriSpecifics* nigori) {
std::vector<sync_pb::SyncEntity> entity_list =
fake_server->GetPermanentSyncEntitiesByDataType(syncer::NIGORI);
if (entity_list.size() != 1U) {
return false;
}
*nigori = entity_list[0].specifics().nigori();
return true;
}
void SetNigoriInFakeServer(const sync_pb::NigoriSpecifics& nigori,
FakeServer* fake_server) {
std::vector<sync_pb::SyncEntity> nigoris =
fake_server->GetPermanentSyncEntitiesByDataType(syncer::NIGORI);
ASSERT_EQ(nigoris.size(), 1u);
std::string nigori_entity_id = nigoris[0].id_string();
ASSERT_NE(nigori_entity_id, "");
sync_pb::EntitySpecifics nigori_entity_specifics;
*nigori_entity_specifics.mutable_nigori() = nigori;
fake_server->ModifyEntitySpecifics(nigori_entity_id, nigori_entity_specifics);
}
void SetKeystoreNigoriInFakeServer(FakeServer* fake_server) {
const std::vector<std::vector<uint8_t>>& keystore_keys =
fake_server->GetKeystoreKeys();
ASSERT_EQ(keystore_keys.size(), 1u);
const syncer::KeyParamsForTesting keystore_key_params =
syncer::KeystoreKeyParamsForTesting(keystore_keys.back());
SetNigoriInFakeServer(syncer::BuildKeystoreNigoriSpecifics(
/*keybag_keys_params=*/{keystore_key_params},
/*keystore_decryptor_params=*/keystore_key_params,
/*keystore_key_params=*/keystore_key_params),
fake_server);
}
} // namespace fake_server