mirror of
https://github.com/goharbor/harbor.git
synced 2024-09-29 13:57:33 +02:00
Add test case for oidc auth mode (#7860)
* Nightly test case user-view-logs failed several times, after debugging, the reason is checking too fast although the operation has not finsished, so I add a checking for end of the operation. Signed-off-by: danfengliu <danfengl@vmware.com> * Add test case Manage-Project-Member for oidc auth mode Jenkins pipeline, this test case reuse the same test case in common file. Signed-off-by: danfengliu <danfengl@vmware.com>
This commit is contained in:
parent
588287629a
commit
fed310a974
@ -37,3 +37,12 @@ Sign In Harbor With OIDC User
|
||||
${isVisible}= Run Keyword And Return Status Element Should Be Visible ${oidc_username_input}
|
||||
Run Keyword If '${isVisible}' == 'True' Run Keywords Retry Text Input ${oidc_username_input} ${username} AND Retry Element Click ${save_btn}
|
||||
Retry Wait Element ${head_username}
|
||||
|
||||
Get Secrete By API
|
||||
[Arguments] ${url} ${username}=${OIDC_USERNAME}
|
||||
${json}= Run Curl And Return Json curl -s -k -X GET --header 'Accept: application/json' -u '${HARBOR_ADMIN}:${HARBOR_PASSWORD}' '${url}/api/users/search?username=${username}'
|
||||
${user_info}= Set Variable ${json[0]}
|
||||
${user_id}= Set Variable ${user_info["user_id"]}
|
||||
${json}= Run Curl And Return Json curl -s -k -X GET --header 'Accept: application/json' -u '${HARBOR_ADMIN}:${HARBOR_PASSWORD}' '${url}/api/users/${user_id}'
|
||||
${secret}= Set Variable ${json["oidc_user_meta"]["secret"]}
|
||||
[Return] ${secret}
|
||||
|
@ -117,16 +117,19 @@ User Should Be Owner Of Project
|
||||
Logout Harbor
|
||||
|
||||
User Should Not Be A Member Of Project
|
||||
[Arguments] ${user} ${pwd} ${project}
|
||||
Sign In Harbor ${HARBOR_URL} ${user} ${pwd}
|
||||
[Arguments] ${user} ${pwd} ${project} ${is_oidc_mode}=${false}
|
||||
Run Keyword If ${is_oidc_mode} == ${false} Sign In Harbor ${HARBOR_URL} ${user} ${pwd}
|
||||
... ELSE Sign In Harbor With OIDC User ${HARBOR_URL} username=${user}
|
||||
${pwd}= Run Keyword And Return If ${is_oidc_mode} == ${true} Get Secrete By API ${HARBOR_URL}
|
||||
Project Should Not Display ${project}
|
||||
Logout Harbor
|
||||
Cannot Pull image ${ip} ${user} ${pwd} ${project} ${ip}/${project}/hello-world
|
||||
Cannot Push image ${ip} ${user} ${pwd} ${project} hello-world
|
||||
|
||||
Manage Project Member
|
||||
[Arguments] ${admin} ${pwd} ${project} ${user} ${op} ${has_image}=${true}
|
||||
Sign In Harbor ${HARBOR_URL} ${admin} ${pwd}
|
||||
[Arguments] ${admin} ${pwd} ${project} ${user} ${op} ${has_image}=${true} ${is_oidc_mode}=${false}
|
||||
Run Keyword If ${is_oidc_mode} == ${false} Sign In Harbor ${HARBOR_URL} ${admin} ${pwd}
|
||||
... ELSE Sign In Harbor With OIDC User ${HARBOR_URL} username=${admin}
|
||||
Go Into Project ${project} ${has_image}
|
||||
Switch To Member
|
||||
Run Keyword If '${op}' == 'Add' Add Guest Member To Project ${user}
|
||||
@ -135,15 +138,18 @@ Manage Project Member
|
||||
Logout Harbor
|
||||
|
||||
Change User Role In Project
|
||||
[Arguments] ${admin} ${pwd} ${project} ${user} ${role}
|
||||
Sign In Harbor ${HARBOR_URL} ${admin} ${pwd}
|
||||
[Arguments] ${admin} ${pwd} ${project} ${user} ${role} ${is_oidc_mode}=${false}
|
||||
Run Keyword If ${is_oidc_mode} == ${false} Sign In Harbor ${HARBOR_URL} ${admin} ${pwd}
|
||||
... ELSE Sign In Harbor With OIDC User ${HARBOR_URL} username=${admin}
|
||||
Wait Until Element Is Visible //clr-dg-cell//a[contains(.,'${project}')]
|
||||
Change Project Member Role ${project} ${user} ${role}
|
||||
Logout Harbor
|
||||
|
||||
User Should Be Guest
|
||||
[Arguments] ${user} ${pwd} ${project}
|
||||
Sign In Harbor ${HARBOR_URL} ${user} ${pwd}
|
||||
[Arguments] ${user} ${pwd} ${project} ${is_oidc_mode}=${false}
|
||||
Run Keyword If ${is_oidc_mode} == ${false} Sign In Harbor ${HARBOR_URL} ${user} ${pwd}
|
||||
... ELSE Sign In Harbor With OIDC User ${HARBOR_URL} username=${user}
|
||||
${pwd}= Run Keyword And Return If ${is_oidc_mode} == ${true} Get Secrete By API ${HARBOR_URL}
|
||||
Project Should Display ${project}
|
||||
Go Into Project ${project}
|
||||
Switch To Member
|
||||
@ -154,8 +160,10 @@ User Should Be Guest
|
||||
Cannot Push image ${ip} ${user} ${pwd} ${project} hello-world
|
||||
|
||||
User Should Be Developer
|
||||
[Arguments] ${user} ${pwd} ${project}
|
||||
Sign In Harbor ${HARBOR_URL} ${user} ${pwd}
|
||||
[Arguments] ${user} ${pwd} ${project} ${is_oidc_mode}=${false}
|
||||
Run Keyword If ${is_oidc_mode} == ${false} Sign In Harbor ${HARBOR_URL} ${user} ${pwd}
|
||||
... ELSE Sign In Harbor With OIDC User ${HARBOR_URL} username=${user}
|
||||
${pwd}= Run Keyword And Return If ${is_oidc_mode} == ${true} Get Secrete By API ${HARBOR_URL}
|
||||
Project Should Display ${project}
|
||||
Go Into Project ${project}
|
||||
Switch To Member
|
||||
@ -165,8 +173,10 @@ User Should Be Developer
|
||||
Push Image With Tag ${ip} ${user} ${pwd} ${project} hello-world v1
|
||||
|
||||
User Should Be Admin
|
||||
[Arguments] ${user} ${pwd} ${project} ${guest}
|
||||
Sign In Harbor ${HARBOR_URL} ${user} ${pwd}
|
||||
[Arguments] ${user} ${pwd} ${project} ${guest} ${is_oidc_mode}=${false}
|
||||
Run Keyword If ${is_oidc_mode} == ${false} Sign In Harbor ${HARBOR_URL} ${user} ${pwd}
|
||||
... ELSE Sign In Harbor With OIDC User ${HARBOR_URL} username=${user}
|
||||
${pwd}= Run Keyword And Return If ${is_oidc_mode} == ${true} Get Secrete By API ${HARBOR_URL}
|
||||
Project Should Display ${project}
|
||||
Go Into Project ${project}
|
||||
Switch To Member
|
||||
@ -177,8 +187,10 @@ User Should Be Admin
|
||||
Push Image With Tag ${ip} ${user} ${pwd} ${project} hello-world v2
|
||||
|
||||
User Should Be Master
|
||||
[Arguments] ${user} ${pwd} ${project}
|
||||
Sign In Harbor ${HARBOR_URL} ${user} ${pwd}
|
||||
[Arguments] ${user} ${pwd} ${project} ${is_oidc_mode}=${false}
|
||||
Run Keyword If ${is_oidc_mode} == ${false} Sign In Harbor ${HARBOR_URL} ${user} ${pwd}
|
||||
... ELSE Sign In Harbor With OIDC User ${HARBOR_URL} username=${user}
|
||||
${pwd}= Run Keyword And Return If ${is_oidc_mode} == ${true} Get Secrete By API ${HARBOR_URL}
|
||||
Project Should Display ${project}
|
||||
Go Into Project ${project}
|
||||
Delete Repo ${project}
|
||||
|
@ -120,4 +120,25 @@ Delete A Project Without Sign In Harbor
|
||||
Go Into Project project${d}
|
||||
Delete Repo project${d}
|
||||
Navigate To Projects
|
||||
Project Should Be Deleted project${d}
|
||||
Project Should Be Deleted project${d}
|
||||
|
||||
Manage Project Member Without Sign In Harbor
|
||||
[Arguments] ${sign_in_user}=user004 ${sign_in_pwd}=Test1@34 ${test_user1}=user005 ${test_user2}=user006 ${is_oidc_mode}=${false}
|
||||
${d}= Get current Date result_format=%m%s
|
||||
Create An New Project project${d}
|
||||
Push image ip=${ip} user=${sign_in_user} pwd=${sign_in_pwd} project=project${d} image=hello-world
|
||||
Logout Harbor
|
||||
|
||||
User Should Not Be A Member Of Project ${test_user1} ${sign_in_pwd} project${d} is_oidc_mode=${is_oidc_mode}
|
||||
Manage Project Member ${sign_in_user} ${sign_in_pwd} project${d} ${test_user1} Add is_oidc_mode=${is_oidc_mode}
|
||||
User Should Be Guest ${test_user1} ${sign_in_pwd} project${d} is_oidc_mode=${is_oidc_mode}
|
||||
Change User Role In Project ${sign_in_user} ${sign_in_pwd} project${d} ${test_user1} Developer is_oidc_mode=${is_oidc_mode}
|
||||
User Should Be Developer ${test_user1} ${sign_in_pwd} project${d} is_oidc_mode=${is_oidc_mode}
|
||||
Change User Role In Project ${sign_in_user} ${sign_in_pwd} project${d} ${test_user1} Admin is_oidc_mode=${is_oidc_mode}
|
||||
User Should Be Admin ${test_user1} ${sign_in_pwd} project${d} ${test_user2} is_oidc_mode=${is_oidc_mode}
|
||||
Change User Role In Project ${sign_in_user} ${sign_in_pwd} project${d} ${test_user1} Master is_oidc_mode=${is_oidc_mode}
|
||||
User Should Be Master ${test_user1} ${sign_in_pwd} project${d} is_oidc_mode=${is_oidc_mode}
|
||||
Manage Project Member ${sign_in_user} ${sign_in_pwd} project${d} ${test_user1} Remove is_oidc_mode=${is_oidc_mode}
|
||||
User Should Not Be A Member Of Project ${test_user1} ${sign_in_pwd} project${d} is_oidc_mode=${is_oidc_mode}
|
||||
Push image ip=${ip} user=${sign_in_user} pwd=${sign_in_pwd} project=project${d} image=hello-world
|
||||
User Should Be Guest ${test_user2} ${sign_in_pwd} project${d} is_oidc_mode=${is_oidc_mode}
|
@ -303,27 +303,8 @@ Test Case - User View Logs
|
||||
|
||||
Test Case - Manage Project Member
|
||||
Init Chrome Driver
|
||||
${d}= Get current Date result_format=%m%s
|
||||
|
||||
Sign In Harbor ${HARBOR_URL} user004 Test1@34
|
||||
Create An New Project project${d}
|
||||
Push image ip=${ip} user=user004 pwd=Test1@34 project=project${d} image=hello-world
|
||||
Logout Harbor
|
||||
|
||||
User Should Not Be A Member Of Project user005 Test1@34 project${d}
|
||||
Manage Project Member user004 Test1@34 project${d} user005 Add
|
||||
User Should Be Guest user005 Test1@34 project${d}
|
||||
Change User Role In Project user004 Test1@34 project${d} user005 Developer
|
||||
User Should Be Developer user005 Test1@34 project${d}
|
||||
Change User Role In Project user004 Test1@34 project${d} user005 Admin
|
||||
User Should Be Admin user005 Test1@34 project${d} user006
|
||||
Change User Role In Project user004 Test1@34 project${d} user005 Master
|
||||
User Should Be Master user005 Test1@34 project${d}
|
||||
Manage Project Member user004 Test1@34 project${d} user005 Remove
|
||||
User Should Not Be A Member Of Project user005 Test1@34 project${d}
|
||||
Push image ip=${ip} user=user004 pwd=Test1@34 project=project${d} image=hello-world
|
||||
User Should Be Guest user006 Test1@34 project${d}
|
||||
|
||||
Manage Project Member Without Sign In Harbor
|
||||
Close Browser
|
||||
|
||||
Test Case - Manage project publicity
|
||||
|
@ -27,6 +27,7 @@ Test Case - Get Harbor Version
|
||||
Get Harbor Version
|
||||
|
||||
Test Case - OIDC User Sign In
|
||||
#Sign in with all 9 users is for user population, other test cases might use these users.
|
||||
Sign In Harbor With OIDC User ${HARBOR_URL}
|
||||
Sleep 2
|
||||
Sign In Harbor With OIDC User ${HARBOR_URL} test2
|
||||
@ -48,18 +49,21 @@ Test Case - OIDC User Sign In
|
||||
Close Browser
|
||||
|
||||
Test Case - Create An New Project
|
||||
Sign In Harbor With OIDC User ${HARBOR_URL}
|
||||
Sign In Harbor With OIDC User ${HARBOR_URL}
|
||||
${d}= Get Current Date result_format=%M%S
|
||||
Create An New Project test${d}
|
||||
Close Browser
|
||||
|
||||
Test Case - Delete A Project
|
||||
Init Chrome Driver
|
||||
Sign In Harbor With OIDC User ${HARBOR_URL}
|
||||
${json}= Run Curl And Return Json curl -s -k -X GET --header 'Accept: application/json' -u '${HARBOR_ADMIN}:${HARBOR_PASSWORD}' 'https://${ip}/api/users/search?username=${OIDC_USERNAME}'
|
||||
${user_info}= Set Variable ${json[0]}
|
||||
${user_id}= Set Variable ${user_info["user_id"]}
|
||||
${json}= Run Curl And Return Json curl -s -k -X GET --header 'Accept: application/json' -u '${HARBOR_ADMIN}:${HARBOR_PASSWORD}' 'https://${ip}/api/users/${user_id}'
|
||||
${secret}= Set Variable ${json["oidc_user_meta"]["secret"]}
|
||||
Sign In Harbor With OIDC User ${HARBOR_URL}
|
||||
${secret}= Get Secrete By API ${HARBOR_URL}
|
||||
Delete A Project Without Sign In Harbor harbor_ip=${OIDC_HOSTNAME} username=${OIDC_USERNAME} password=${secret}
|
||||
Close Browser
|
||||
Close Browser
|
||||
|
||||
Test Case - Manage Project Member
|
||||
Init Chrome Driver
|
||||
Sign In Harbor With OIDC User ${HARBOR_URL}
|
||||
${secret}= Get Secrete By API ${HARBOR_URL}
|
||||
Manage Project Member Without Sign In Harbor sign_in_user=${OIDC_USERNAME} sign_in_pwd=${secret} test_user1=test2 test_user2=test3 is_oidc_mode=${true}
|
||||
Close Browser
|
||||
|
Loading…
Reference in New Issue
Block a user