Index: components/os_crypt/key_storage_libsecret_unittest.cc |
diff --git a/components/os_crypt/key_storage_libsecret_unittest.cc b/components/os_crypt/key_storage_libsecret_unittest.cc |
index 35fa3f7166944e140d6127105113d1a582bbaa2c..94373c9ef9b6fe80e7329304ee7b36445506cc95 100644 |
--- a/components/os_crypt/key_storage_libsecret_unittest.cc |
+++ b/components/os_crypt/key_storage_libsecret_unittest.cc |
@@ -16,6 +16,8 @@ namespace { |
// 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; |
+// Likewise, we only need a SecretValue from SecretItem. |
+using MockSecretItem = MockSecretValue; |
const SecretSchema kKeystoreSchemaV1 = { |
"chrome_libsecret_os_crypt_password", |
@@ -61,13 +63,6 @@ class MockLibsecretLoader : public LibsecretLoader { |
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, |
@@ -82,6 +77,8 @@ class MockLibsecretLoader : public LibsecretLoader { |
GError** error, |
...); |
+ static MockSecretValue* mock_secret_item_get_secret(MockSecretItem* item); |
+ |
// MockLibsecretLoader owns these objects. |
static MockSecretValue* stored_password_mock_ptr_; |
static MockSecretValue* deprecated_password_mock_ptr_; |
@@ -111,38 +108,32 @@ gboolean MockLibsecretLoader::mock_secret_password_store_sync( |
} |
// static |
-MockSecretValue* MockLibsecretLoader::mock_secret_service_lookup_sync( |
+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) { |
bool is_known_schema = strcmp(schema->name, kKeystoreSchemaV2.name) == 0 || |
strcmp(schema->name, kKeystoreSchemaV1.name) == 0; |
EXPECT_TRUE(is_known_schema); |
+ EXPECT_TRUE(flags & SECRET_SEARCH_UNLOCK); |
+ EXPECT_TRUE(flags & SECRET_SEARCH_LOAD_SECRETS); |
+ |
+ MockSecretItem* item = nullptr; |
if (strcmp(schema->name, kKeystoreSchemaV2.name) == 0) |
- return stored_password_mock_ptr_; |
+ item = stored_password_mock_ptr_; |
else if (strcmp(schema->name, kKeystoreSchemaV1.name) == 0) |
- return deprecated_password_mock_ptr_; |
- |
- NOTREACHED(); |
- return nullptr; |
-} |
+ item = deprecated_password_mock_ptr_; |
-// 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; |
+ GList* result = nullptr; |
+ result = g_list_append(result, item); |
+ return result; |
vasilii
2016/10/21 14:10:07
Setting |error|?
cfroussios
2016/10/21 17:56:36
Done.
|
} |
// static |
@@ -151,6 +142,7 @@ gboolean MockLibsecretLoader::mock_secret_password_clear_sync( |
GCancellable* cancellable, |
GError** error, |
...) { |
+ // We would only delete entries in the deprecated schema. |
EXPECT_STREQ(kKeystoreSchemaV1.name, schema->name); |
delete deprecated_password_mock_ptr_; |
deprecated_password_mock_ptr_ = nullptr; |
@@ -158,22 +150,26 @@ gboolean MockLibsecretLoader::mock_secret_password_clear_sync( |
} |
// static |
+MockSecretValue* MockLibsecretLoader::mock_secret_item_get_secret( |
+ MockSecretItem* item) { |
+ return item; |
+} |
+ |
+// static |
bool MockLibsecretLoader::ResetForOSCrypt() { |
- // 4 methods used by KeyStorageLibsecret |
+ // 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; |
+ secret_service_search_sync = |
+ &MockLibsecretLoader::mock_secret_service_search_sync; |
+ secret_item_get_secret = |
+ (decltype(&::secret_item_get_secret))mock_secret_item_get_secret; |
vasilii
2016/10/21 14:10:07
What is the reason to change the type of the funct
cfroussios
2016/10/21 17:56:36
The mock method gets a MockSecretItem and returns
vasilii
2016/10/24 10:41:14
I see only one place where secret_item_get_secret
cfroussios
2016/10/24 11:25:55
NativeBackendLibsecret::ConvertFormList is never s
vasilii
2016/10/24 12:39:35
Here is incomplete list of why this is wrong:
- (c
cfroussios
2016/10/24 13:12:30
I copied the scheme from native_backend_libsecret_
|
// 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; |