vlc | branch: master | Thomas Guillem <[email protected]> | Mon Jan 23 10:07:43 2017 +0100| [9a682eb8028dee943718736b8491fa1551e8c935] | committer: Thomas Guillem
test/keystore: test if realm and authtype match > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=9a682eb8028dee943718736b8491fa1551e8c935 --- test/src/misc/keystore.c | 86 ++++++++++++++++++++++++++++-------------------- 1 file changed, 51 insertions(+), 35 deletions(-) diff --git a/test/src/misc/keystore.c b/test/src/misc/keystore.c index aadd763..220366f 100644 --- a/test/src/misc/keystore.c +++ b/test/src/misc/keystore.c @@ -42,13 +42,21 @@ struct cred const char *psz_pwd; }; +struct cred_res +{ + const char *psz_user; + const char *psz_pwd; + const char *psz_realm; + const char *psz_authtype; +}; + static const struct testcase { bool b_found; const char *psz_url; const char *psz_realm; const char *psz_authtype; - struct cred result; + struct cred_res result; struct cred opt; struct cred dialog; bool b_dialog_store; @@ -63,28 +71,28 @@ static const struct testcase /* First tests use sftp protocol: no realm and results doesn't depend on * path */ { true, SFTP("user1:[email protected]/testing/deprecated_url"), - { "user1", "pwd1" }, {} , {}, false }, + { "user1", "pwd1", NULL, NULL }, {} , {}, false }, { true, SFTP("ex.com/testing/opt"), - { "user1", "pwd1" }, { "user1", "pwd1" }, {}, false }, + { "user1", "pwd1", NULL, NULL }, { "user1", "pwd1" }, {}, false }, { true, SFTP("ex.com/testing/dial"), - { "user1", "pwd1" }, {}, { "user1", "pwd1" }, false }, + { "user1", "pwd1", NULL, NULL }, {}, { "user1", "pwd1" }, false }, WIPE_MEMORY_KEYSTORE, { true, SFTP("[email protected]/testing/url_dial"), - { "user1", "pwd1" }, { NULL, NULL }, { NULL, "pwd1" }, false }, + { "user1", "pwd1", NULL, NULL }, { NULL, NULL }, { NULL, "pwd1" }, false }, WIPE_MEMORY_KEYSTORE, { true, SFTP("ex.com/testing/opt_dial"), - { "user1", "pwd1" }, { "user1", NULL }, { NULL, "pwd1" }, false }, + { "user1", "pwd1", NULL, NULL }, { "user1", NULL }, { NULL, "pwd1" }, false }, WIPE_MEMORY_KEYSTORE, { true, SFTP("[email protected]/testing/url_opt_dial"), - { "user1", "pwd1" }, { "user1", NULL }, { NULL, "pwd1" }, false }, + { "user1", "pwd1", NULL, NULL }, { "user1", NULL }, { NULL, "pwd1" }, false }, WIPE_MEMORY_KEYSTORE, @@ -92,111 +100,111 @@ static const struct testcase * found by future tests */ { true, SFTP("ex.com/testing/mem_ks_store"), - { "user1", "pwd1" }, {}, { "user1", "pwd1" }, false }, + { "user1", "pwd1", NULL, NULL }, {}, { "user1", "pwd1" }, false }, { true, SFTP("ex.com/testing/mem_ks_find"), - { "user1", "pwd1" }, {}, {}, false }, + { "user1", "pwd1", NULL, NULL }, {}, {}, false }, WIPE_MEMORY_KEYSTORE, { false, SFTP("ex.com/testing/mem_ks_find"), - { "user1", "pwd1" }, {}, {}, false }, + { "user1", "pwd1", NULL, NULL }, {}, {}, false }, WIPE_MEMORY_KEYSTORE, /* Testing permanent keystore */ { true, SFTP("ex.com/testing/ks_store"), - { "user1", "pwd1" }, {}, { "user1", "pwd1" }, true }, + { "user1", "pwd1", NULL, NULL }, {}, { "user1", "pwd1" }, true }, WIPE_MEMORY_KEYSTORE, { true, SFTP("ex.com/testing/ks_find"), - { "user1", "pwd1" }, {}, {}, false }, + { "user1", "pwd1", NULL, NULL }, {}, {}, false }, { true, SFTP("ex.com:2022/testing/ks_store"), - { "user2", "pwd2" }, {}, { "user2", "pwd2" }, true }, + { "user2", "pwd2", NULL, NULL }, {}, { "user2", "pwd2" }, true }, WIPE_MEMORY_KEYSTORE, { true, SFTP("[email protected]/testing/ks_find"), - { "user1", "pwd1" }, {}, {}, false }, + { "user1", "pwd1", NULL, NULL }, {}, {}, false }, { true, SFTP("[email protected]:2022/testing/ks_find"), - { "user2", "pwd2" }, {}, {}, false }, + { "user2", "pwd2", NULL, NULL }, {}, {}, false }, { false, SFTP("user2@wrong_host.com:2022/testing/ks_find"), - { "user2", "pwd2" }, {}, {}, false }, + { "user2", "pwd2", NULL, NULL }, {}, {}, false }, { false, SFTP("[email protected]/testing/ks_find"), - { "user2", "pwd2" }, {}, {}, false }, + { "user2", "pwd2", NULL, NULL }, {}, {}, false }, { false, SMB("[email protected]:2022/testing/ks_find"), - { "user2", "pwd2" }, {}, {}, false }, + { "user2", "pwd2", NULL, NULL }, {}, {}, false }, WIPE_MEMORY_KEYSTORE, { true, SFTP("ex.com/testing/opt_not_storing_ks"), - { "user3", "pwd3" }, { "user3", "pwd3" }, {}, true }, + { "user3", "pwd3", NULL, NULL }, { "user3", "pwd3" }, {}, true }, WIPE_MEMORY_KEYSTORE, { false, SFTP("ex.com/testing/opt_not_storing_ks"), - { "user3", "pwd3" }, {}, {}, false }, + { "user3", "pwd3", NULL, NULL }, {}, {}, false }, WIPE_MEMORY_KEYSTORE, /* Testing reusing http credentials rfc7617#2.2 */ { true, HTTP("ex.com/testing/good_path/ks_store_realm", "Realm"), - { "user4", "pwd4" }, {}, { "user4", "pwd4" }, true }, + { "user4", "pwd4", "Realm", "Basic" }, {}, { "user4", "pwd4" }, true }, { false, HTTP("ex.com/testing/good_path/ks_find_realm", "Wrong realm"), - { "user4", "pwd4" }, {}, {}, false }, + { "user4", "pwd4", "Wrong realm", "Basic" }, {}, {}, false }, { true, HTTP("ex.com/testing/good_path/ks_find_realm", "Realm"), - { "user4", "pwd4" }, {}, {}, false }, + { "user4", "pwd4", "Realm", "Basic" }, {}, {}, false }, { true, HTTP("ex.com/testing/good_path/another_path/ks_find_realm", "Realm"), - { "user4", "pwd4" }, {}, {}, false }, + { "user4", "pwd4", "Realm", "Basic" }, {}, {}, false }, { false, HTTP("ex.com/testing/wrong_path/ks_find_realm", "Realm"), - { "user4", "pwd4" }, {}, {}, false }, + { "user4", "pwd4", "Realm", "Basic" }, {}, {}, false }, /* Testing reusing smb credentials */ { true, SMB("host/share/path1/path2/path3/ks_store"), - { "user5", "pwd5" }, {}, { "user5", "pwd5" }, false }, + { "user5", "pwd5", NULL, NULL }, {}, { "user5", "pwd5" }, false }, { true, SMB("host/share/path4/ks_find"), - { "user5", "pwd5" }, {}, {}, false }, + { "user5", "pwd5", NULL, NULL }, {}, {}, false }, { false, SMB("wrong_host/share/path4/ks_find"), - { "user5", "pwd5" }, {}, {}, false }, + { "user5", "pwd5", NULL, NULL }, {}, {}, false }, { false, SMB("host/wrong_share/path4/ks_find"), - { "user5", "pwd5" }, {}, {}, false }, + { "user5", "pwd5", NULL, NULL }, {}, {}, false }, WIPE_MEMORY_KEYSTORE, /* Testing smb realm split */ { true, SMB("host/share/path1/ks_store"), - { "user6", "pwd6" }, {}, { "domain;user6", "pwd6" }, false }, + { "user6", "pwd6", "domain", NULL }, {}, { "domain;user6", "pwd6" }, false }, { true, SMB("domain;user6@host/share/path1/ks_find"), - { "user6", "pwd6" }, {}, {}, false }, + { "user6", "pwd6", "domain", NULL }, {}, {}, false }, { false, SMB("wrong_domain;user6@host/share/path1/ks_find"), - { "user6", "pwd6" }, {}, {}, false }, + { "user6", "pwd6", "wrong_domain", NULL }, {}, {}, false }, WIPE_MEMORY_KEYSTORE, { false, "://invalid_url", NULL, NULL, - { "user1", "pwd1" }, {}, { "user1", "pwd1" }, false }, + { "user1", "pwd1", NULL, NULL }, {}, { "user1", "pwd1" }, false }, { false, "/invalid_path", NULL, NULL, - { "user1", "pwd1" }, {}, { "user1", "pwd1" }, false }, + { "user1", "pwd1", NULL, NULL }, {}, { "user1", "pwd1" }, false }, }; struct dialog_ctx @@ -281,7 +289,15 @@ test(vlc_object_t *p_obj, unsigned int i_id, const struct testcase *p_test) while (vlc_credential_get(&credential, p_obj, psz_opt_user, psz_opt_pwd, "test authentication", "this a test")) { - if (strcmp(credential.psz_username, p_test->result.psz_user) == 0 + bool realm_match = !p_test->result.psz_realm + || (credential.psz_realm + && strcmp(credential.psz_realm, p_test->result.psz_realm) == 0); + bool authtype_match = !p_test->result.psz_authtype + || (credential.psz_authtype + && strcmp(credential.psz_authtype, p_test->result.psz_authtype) == 0); + + if (realm_match && authtype_match + && strcmp(credential.psz_username, p_test->result.psz_user) == 0 && strcmp(credential.psz_password, p_test->result.psz_pwd) == 0) { b_found = true; _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
