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

Unified Diff: components/os_crypt/os_crypt_util_linux_unittest.cc

Issue 2292933002: Renamed os_crypt_util_linux_unittest.cc to key_storage_libsecret_unittest.cc (Closed)
Patch Set: Created 4 years, 4 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 | « components/os_crypt/key_storage_libsecret_unittest.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/os_crypt/os_crypt_util_linux_unittest.cc
diff --git a/components/os_crypt/os_crypt_util_linux_unittest.cc b/components/os_crypt/os_crypt_util_linux_unittest.cc
deleted file mode 100644
index ba9e3aae23a7fd2addd2954a56261f90f9811d44..0000000000000000000000000000000000000000
--- a/components/os_crypt/os_crypt_util_linux_unittest.cc
+++ /dev/null
@@ -1,243 +0,0 @@
-// Copyright 2016 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 <string>
-
-#include "base/macros.h"
-#include "components/os_crypt/key_storage_libsecret.h"
-#include "components/os_crypt/libsecret_util_linux.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace {
-
-// Mock functions use MockSecretValue, where SecretValue would appear, and are
-// cast to the correct signature. We can reduce SecretValue to an std::string,
-// because we don't use anything else from it.
-using MockSecretValue = std::string;
-
-const SecretSchema kKeystoreSchemaV1 = {
- "chrome_libsecret_os_crypt_password",
- SECRET_SCHEMA_NONE,
- {
- {nullptr, SECRET_SCHEMA_ATTRIBUTE_STRING},
- }};
-
-const SecretSchema kKeystoreSchemaV2 = {
- "chrome_libsecret_os_crypt_password_v2",
- SECRET_SCHEMA_DONT_MATCH_NAME,
- {
- {"application", SECRET_SCHEMA_ATTRIBUTE_STRING},
- {nullptr, SECRET_SCHEMA_ATTRIBUTE_STRING},
- }};
-
-// Replaces some of LibsecretLoader's methods with mocked ones.
-class MockLibsecretLoader : public LibsecretLoader {
- public:
- // Sets up the minimum mock implementation necessary for OSCrypt to work
- // with Libsecret. Also resets the state to mock a clean database.
- static bool ResetForOSCrypt();
-
- // Sets OSCrypt's password in the libsecret mock to a specific value
- static void SetOSCryptPassword(const char*);
-
- // Releases memory and restores LibsecretLoader to an uninitialized state.
- static void TearDown();
-
- // Set whether there is an old password that needs to be migrated from the
- // deprecated schema. Null means no such password. See crbug.com/639298
- static void SetDeprecatedOSCryptPassword(const char* value);
-
- private:
- // These methods are used to redirect calls through LibsecretLoader
- static const gchar* mock_secret_value_get_text(MockSecretValue* value);
-
- static gboolean mock_secret_password_store_sync(const SecretSchema* schema,
- const gchar* collection,
- const gchar* label,
- const gchar* password,
- GCancellable* cancellable,
- GError** error,
- ...);
-
- static MockSecretValue* mock_secret_service_lookup_sync(
- SecretService* service,
- const SecretSchema* schema,
- GHashTable* attributes,
- GCancellable* cancellable,
- GError** error);
-
- static void mock_secret_value_unref(gpointer value);
-
- static GList* mock_secret_service_search_sync(SecretService* service,
- const SecretSchema* schema,
- GHashTable* attributes,
- SecretSearchFlags flags,
- GCancellable* cancellable,
- GError** error);
-
- static gboolean mock_secret_password_clear_sync(const SecretSchema* schema,
- GCancellable* cancellable,
- GError** error,
- ...);
-
- // MockLibsecretLoader owns these objects.
- static MockSecretValue* stored_password_mock_ptr_;
- static MockSecretValue* deprecated_password_mock_ptr_;
-};
-
-MockSecretValue* MockLibsecretLoader::stored_password_mock_ptr_ = nullptr;
-MockSecretValue* MockLibsecretLoader::deprecated_password_mock_ptr_ = nullptr;
-
-const gchar* MockLibsecretLoader::mock_secret_value_get_text(
- MockSecretValue* value) {
- return value->c_str();
-}
-
-// static
-gboolean MockLibsecretLoader::mock_secret_password_store_sync(
- const SecretSchema* schema,
- const gchar* collection,
- const gchar* label,
- const gchar* password,
- GCancellable* cancellable,
- GError** error,
- ...) {
- EXPECT_STREQ(kKeystoreSchemaV2.name, schema->name);
- delete stored_password_mock_ptr_;
- stored_password_mock_ptr_ = new MockSecretValue(password);
- return true;
-}
-
-// static
-MockSecretValue* MockLibsecretLoader::mock_secret_service_lookup_sync(
- SecretService* service,
- const SecretSchema* schema,
- GHashTable* attributes,
- GCancellable* cancellable,
- GError** error) {
- bool is_known_schema = strcmp(schema->name, kKeystoreSchemaV2.name) == 0 ||
- strcmp(schema->name, kKeystoreSchemaV1.name) == 0;
- EXPECT_TRUE(is_known_schema);
-
- if (strcmp(schema->name, kKeystoreSchemaV2.name) == 0)
- return stored_password_mock_ptr_;
- else if (strcmp(schema->name, kKeystoreSchemaV1.name) == 0)
- return deprecated_password_mock_ptr_;
-
- NOTREACHED();
- return nullptr;
-}
-
-// static
-void MockLibsecretLoader::mock_secret_value_unref(gpointer value) {}
-
-// static
-GList* MockLibsecretLoader::mock_secret_service_search_sync(
- SecretService* service,
- const SecretSchema* schema,
- GHashTable* attributes,
- SecretSearchFlags flags,
- GCancellable* cancellable,
- GError** error) {
- *error = nullptr;
- return nullptr;
-}
-
-// static
-gboolean MockLibsecretLoader::mock_secret_password_clear_sync(
- const SecretSchema* schema,
- GCancellable* cancellable,
- GError** error,
- ...) {
- EXPECT_STREQ(kKeystoreSchemaV1.name, schema->name);
- delete deprecated_password_mock_ptr_;
- deprecated_password_mock_ptr_ = nullptr;
- return true;
-}
-
-// static
-bool MockLibsecretLoader::ResetForOSCrypt() {
- // 4 methods used by KeyStorageLibsecret
- secret_password_store_sync =
- &MockLibsecretLoader::mock_secret_password_store_sync;
- secret_value_get_text = (decltype(&::secret_value_get_text)) &
- MockLibsecretLoader::mock_secret_value_get_text;
- secret_value_unref = &MockLibsecretLoader::mock_secret_value_unref;
- secret_service_lookup_sync =
- (decltype(&::secret_service_lookup_sync)) &
- MockLibsecretLoader::mock_secret_service_lookup_sync;
- // Used by Migrate()
- secret_password_clear_sync =
- &MockLibsecretLoader::mock_secret_password_clear_sync;
- // 1 method used by LibsecretLoader::EnsureLibsecretLoaded()
- secret_service_search_sync =
- &MockLibsecretLoader::mock_secret_service_search_sync;
-
- delete stored_password_mock_ptr_;
- stored_password_mock_ptr_ = nullptr;
- libsecret_loaded_ = true;
-
- return true;
-}
-
-// static
-void MockLibsecretLoader::SetOSCryptPassword(const char* value) {
- delete stored_password_mock_ptr_;
- stored_password_mock_ptr_ = new MockSecretValue(value);
-}
-
-// static
-void MockLibsecretLoader::SetDeprecatedOSCryptPassword(const char* value) {
- delete deprecated_password_mock_ptr_;
- deprecated_password_mock_ptr_ = new MockSecretValue(value);
-}
-
-// static
-void MockLibsecretLoader::TearDown() {
- delete stored_password_mock_ptr_;
- stored_password_mock_ptr_ = nullptr;
- libsecret_loaded_ =
- false; // Function pointers will be restored when loading.
-}
-
-class LibsecretTest : public testing::Test {
- public:
- LibsecretTest() = default;
- ~LibsecretTest() override = default;
-
- void SetUp() override { MockLibsecretLoader::ResetForOSCrypt(); }
-
- void TearDown() override { MockLibsecretLoader::TearDown(); }
-
- private:
- DISALLOW_COPY_AND_ASSIGN(LibsecretTest);
-};
-
-TEST_F(LibsecretTest, LibsecretRepeats) {
- KeyStorageLibsecret libsecret;
- MockLibsecretLoader::ResetForOSCrypt();
- std::string password = libsecret.GetKey();
- EXPECT_FALSE(password.empty());
- std::string password_repeat = libsecret.GetKey();
- EXPECT_EQ(password, password_repeat);
-}
-
-TEST_F(LibsecretTest, LibsecretCreatesRandomised) {
- KeyStorageLibsecret libsecret;
- MockLibsecretLoader::ResetForOSCrypt();
- std::string password = libsecret.GetKey();
- MockLibsecretLoader::ResetForOSCrypt();
- std::string password_new = libsecret.GetKey();
- EXPECT_NE(password, password_new);
-}
-
-TEST_F(LibsecretTest, LibsecretMigratesFromSchemaV1ToV2) {
- KeyStorageLibsecret libsecret;
- MockLibsecretLoader::ResetForOSCrypt();
- MockLibsecretLoader::SetDeprecatedOSCryptPassword("swallow");
- std::string password = libsecret.GetKey();
- EXPECT_EQ("swallow", password);
-}
-
-} // namespace
« no previous file with comments | « components/os_crypt/key_storage_libsecret_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698