blob: f12dd4441f9302afd5fea8aba81ebc8ac7ee1475 [file] [log] [blame]
// Copyright 2017 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 "chrome/browser/media/media_storage_id_salt.h"
#include "chrome/common/pref_names.h"
#include "components/prefs/testing_pref_service.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
TEST(MediaStorageIdSalt, Register) {
TestingPrefServiceSimple prefs;
MediaStorageIdSalt::RegisterProfilePrefs(prefs.registry());
}
TEST(MediaStorageIdSalt, Create) {
TestingPrefServiceSimple prefs;
MediaStorageIdSalt::RegisterProfilePrefs(prefs.registry());
std::vector<uint8_t> salt = MediaStorageIdSalt::GetSalt(&prefs);
EXPECT_EQ(static_cast<size_t>(MediaStorageIdSalt::kSaltLength), salt.size());
}
TEST(MediaStorageIdSalt, Recreate) {
TestingPrefServiceSimple prefs;
MediaStorageIdSalt::RegisterProfilePrefs(prefs.registry());
std::vector<uint8_t> original_salt = MediaStorageIdSalt::GetSalt(&prefs);
EXPECT_EQ(static_cast<size_t>(MediaStorageIdSalt::kSaltLength),
original_salt.size());
// Now that the salt is created, mess it up and then try fetching it again
// (should generate a new salt and log an error).
prefs.SetString(prefs::kMediaStorageIdSalt, "123");
std::vector<uint8_t> new_salt = MediaStorageIdSalt::GetSalt(&prefs);
EXPECT_EQ(static_cast<size_t>(MediaStorageIdSalt::kSaltLength),
new_salt.size());
EXPECT_NE(original_salt, new_salt);
}
TEST(MediaStorageIdSalt, FetchTwice) {
TestingPrefServiceSimple prefs;
MediaStorageIdSalt::RegisterProfilePrefs(prefs.registry());
std::vector<uint8_t> salt1 = MediaStorageIdSalt::GetSalt(&prefs);
EXPECT_EQ(static_cast<size_t>(MediaStorageIdSalt::kSaltLength), salt1.size());
// Fetch the salt again. Should be the same value.
std::vector<uint8_t> salt2 = MediaStorageIdSalt::GetSalt(&prefs);
EXPECT_EQ(static_cast<size_t>(MediaStorageIdSalt::kSaltLength), salt2.size());
EXPECT_EQ(salt1, salt2);
}