diff options
author | Stef Walter <stefw@collabora.co.uk> | 2011-04-25 03:26:42 +0200 |
---|---|---|
committer | Stef Walter <stefw@collabora.co.uk> | 2011-04-25 03:26:42 +0200 |
commit | f3fe9e23eb27fa264d33e4c38453b4701a2c46ca (patch) | |
tree | 455f4cb7575c7386833d42d754c240034ba09244 /pkcs11/secret-store | |
parent | 9454565c1c17d38a7720da433d9eeb8a436a4ceb (diff) | |
download | gnome-keyring-f3fe9e23eb27fa264d33e4c38453b4701a2c46ca.tar.gz |
secret-store: Add more example keyrings to parse.
* From RHEL and Solaris OpenCSW
https://bugzilla.gnome.org/show_bug.cgi?id=647766
Diffstat (limited to 'pkcs11/secret-store')
-rw-r--r-- | pkcs11/secret-store/tests/files/created-on-rhel.keyring | bin | 0 -> 105 bytes | |||
-rw-r--r-- | pkcs11/secret-store/tests/files/created-on-solaris-opencsw.keyring | bin | 0 -> 105 bytes | |||
-rw-r--r-- | pkcs11/secret-store/tests/test-secret-binary.c | 74 |
3 files changed, 48 insertions, 26 deletions
diff --git a/pkcs11/secret-store/tests/files/created-on-rhel.keyring b/pkcs11/secret-store/tests/files/created-on-rhel.keyring Binary files differnew file mode 100644 index 00000000..9df16d11 --- /dev/null +++ b/pkcs11/secret-store/tests/files/created-on-rhel.keyring diff --git a/pkcs11/secret-store/tests/files/created-on-solaris-opencsw.keyring b/pkcs11/secret-store/tests/files/created-on-solaris-opencsw.keyring Binary files differnew file mode 100644 index 00000000..11dbce6e --- /dev/null +++ b/pkcs11/secret-store/tests/files/created-on-solaris-opencsw.keyring diff --git a/pkcs11/secret-store/tests/test-secret-binary.c b/pkcs11/secret-store/tests/test-secret-binary.c index 6f2e71d4..f581e3f2 100644 --- a/pkcs11/secret-store/tests/test-secret-binary.c +++ b/pkcs11/secret-store/tests/test-secret-binary.c @@ -79,35 +79,39 @@ teardown (Test *test, gconstpointer unused) test_secret_module_leave_and_finalize (); } -static void -test_read (Test *test, gconstpointer unused) +static GkmDataResult +check_read_keyring_file (Test *test, const gchar *path) { GkmDataResult res; gchar *data; gsize n_data; - if (!g_file_get_contents (SRCDIR "/files/encrypted.keyring", &data, &n_data, NULL)) + if (!g_file_get_contents (path, &data, &n_data, NULL)) g_assert_not_reached (); res = gkm_secret_binary_read (test->collection, test->sdata, data, n_data); g_free (data); - test_secret_collection_validate (test->collection, test->sdata); + return res; +} + +static void +test_read_encrypted (Test *test, gconstpointer unused) +{ + GkmDataResult res; + + res = check_read_keyring_file (test, SRCDIR "/files/encrypted.keyring"); g_assert (res == GKM_DATA_SUCCESS); + + test_secret_collection_validate (test->collection, test->sdata); } static void test_read_wrong_format (Test *test, gconstpointer unused) { GkmDataResult res; - gchar *data; - gsize n_data; - - if (!g_file_get_contents (SRCDIR "/files/plain.keyring", &data, &n_data, NULL)) - g_assert_not_reached (); - res = gkm_secret_binary_read (test->collection, test->sdata, data, n_data); - g_free (data); + res = check_read_keyring_file (test, SRCDIR "/files/plain.keyring"); g_assert (res == GKM_DATA_UNRECOGNIZED); } @@ -116,18 +120,12 @@ test_read_wrong_master (Test *test, gconstpointer unused) { GkmDataResult res; GkmSecret *master; - gchar *data; - gsize n_data; master = gkm_secret_new_from_password ("wrong"); gkm_secret_data_set_master (test->sdata, master); g_object_unref (master); - if (!g_file_get_contents (SRCDIR "/files/encrypted.keyring", &data, &n_data, NULL)) - g_assert_not_reached (); - res = gkm_secret_binary_read (test->collection, test->sdata, data, n_data); - g_free (data); - + res = check_read_keyring_file (test, SRCDIR "/files/encrypted.keyring"); g_assert (res == GKM_DATA_LOCKED); } @@ -135,16 +133,10 @@ static void test_read_sdata_but_no_master (Test *test, gconstpointer unused) { GkmDataResult res; - gchar *data; - gsize n_data; gkm_secret_data_set_master (test->sdata, NULL); - if (!g_file_get_contents (SRCDIR "/files/encrypted.keyring", &data, &n_data, NULL)) - g_assert_not_reached (); - res = gkm_secret_binary_read (test->collection, test->sdata, data, n_data); - g_free (data); - + res = check_read_keyring_file (test, SRCDIR "/files/encrypted.keyring"); g_assert (res == GKM_DATA_LOCKED); } @@ -205,18 +197,48 @@ test_remove_unavailable (Test *test, gconstpointer unused) g_free (data); } +static void +test_read_created_on_solaris_opencsw (Test *test, gconstpointer unused) +{ + GkmDataResult res; + GkmSecret *master; + + master = gkm_secret_new_from_password ("test"); + gkm_secret_data_set_master (test->sdata, master); + g_object_unref (master); + + res = check_read_keyring_file (test, SRCDIR "/files/created-on-solaris-opencsw.keyring"); + g_assert_cmpint (res, ==, GKM_DATA_SUCCESS); +} + +static void +test_read_created_on_rhel (Test *test, gconstpointer unused) +{ + GkmDataResult res; + GkmSecret *master; + + master = gkm_secret_new_from_password ("test"); + gkm_secret_data_set_master (test->sdata, master); + g_object_unref (master); + + res = check_read_keyring_file (test, SRCDIR "/files/created-on-rhel.keyring"); + g_assert_cmpint (res, ==, GKM_DATA_SUCCESS); +} + int main (int argc, char **argv) { g_type_init (); g_test_init (&argc, &argv, NULL); - g_test_add ("/secret-store/binary/read", Test, NULL, setup, test_read, teardown); + g_test_add ("/secret-store/binary/read_encrypted", Test, NULL, setup, test_read_encrypted, teardown); g_test_add ("/secret-store/binary/read_wrong_format", Test, NULL, setup, test_read_wrong_format, teardown); g_test_add ("/secret-store/binary/read_wrong_master", Test, NULL, setup, test_read_wrong_master, teardown); g_test_add ("/secret-store/binary/read_sdata_but_no_master", Test, NULL, setup, test_read_sdata_but_no_master, teardown); g_test_add ("/secret-store/binary/write", Test, NULL, setup, test_write, teardown); g_test_add ("/secret-store/binary/remove_unavailable", Test, NULL, setup, test_remove_unavailable, teardown); + g_test_add ("/secret-store/binary/created_on_rhel", Test, NULL, setup, test_read_created_on_rhel, teardown); + g_test_add ("/secret-store/binary/created_on_solaris_opencsw", Test, NULL, setup, test_read_created_on_solaris_opencsw, teardown); return g_test_run (); } |